docs: convert OODA loop diagram to real Mermaid syntax
The operating-model diagram in README was ASCII box art in a plain code fence, not an actual Mermaid diagram — it wouldn't render as a graph on Gitea/GitHub. Replaced with a `flowchart TD` matching the convention already used by oikos/gen-topology.py's generated topology.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
73
README.md
73
README.md
@@ -46,60 +46,25 @@ Before you act, **classify your action against [oikos/policy.yaml](oikos/policy.
|
|||||||
|
|
||||||
### The Oikos OODA Loop + Decision Tree
|
### The Oikos OODA Loop + Decision Tree
|
||||||
|
|
||||||
```
|
```mermaid
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
flowchart TD
|
||||||
│ Observe │
|
Observe["**Observe**<br/>probes, drift detectors, agent signals"]
|
||||||
│ (probes, drift detectors, agent signals) │
|
Orient["**Orient**<br/>ontology, context, state, entity relations"]
|
||||||
└────────────────────┬────────────────────────────────────────┘
|
Decide{"**Decide**<br/>classify against oikos/policy.yaml"}
|
||||||
│
|
Auto["Auto-act<br/>(unattended)"]
|
||||||
┌────────────────────▼────────────────────────────────────────┐
|
Escalate["Escalate<br/>homelab approval request"]
|
||||||
│ Orient │
|
Act["**Act**<br/>homelab CLI, runbooks, skills"]
|
||||||
│ (ontology, context, state, entity relations) │
|
Verify["**Verify**<br/>checklist from SKILL.md"]
|
||||||
└────────────────────┬────────────────────────────────────────┘
|
Ledger["**Ledger**<br/>mutation record: who/what/risk"]
|
||||||
│
|
Document["**Document**<br/>wiki update, same-session rule"]
|
||||||
┌────────────────────▼────────────────────────────────────────┐
|
|
||||||
│ Decide: Classify against oikos/policy.yaml │
|
Observe --> Orient --> Decide
|
||||||
│ │
|
Decide -->|read_only, reversible_low| Auto
|
||||||
│ ├─ read_only → [unattended, no ledger] │
|
Decide -->|config_mutation, destructive| Escalate
|
||||||
│ ├─ reversible_low → [unattended + ledger entry] │
|
Auto --> Act
|
||||||
│ ├─ config_mutation → [ESCALATE: operator approval]│
|
Escalate -->|approval granted| Act
|
||||||
│ └─ destructive → [ESCALATE + confirmation] │
|
Act --> Verify --> Ledger --> Document
|
||||||
└────────────────────┬────────────────────────────────────────┘
|
Document -.loop.-> Observe
|
||||||
│
|
|
||||||
┌────────────┴────────────┐
|
|
||||||
│ │
|
|
||||||
┌────▼─────┐ ┌──────▼──────┐
|
|
||||||
│ Auto-act │ │ Escalate │
|
|
||||||
└────┬─────┘ │ (get approval
|
|
||||||
│ │ via homelab │
|
|
||||||
┌───────▼──────────────────┴──────────┐ │
|
|
||||||
│ Act │ │
|
|
||||||
│ (homelab CLI, runbooks, skills) │ │
|
|
||||||
└────────────────┬─────────────────────┘ │
|
|
||||||
│ │
|
|
||||||
┌────▼────────────────────────┘
|
|
||||||
│
|
|
||||||
┌───────────▼──────────────────────────────┐
|
|
||||||
│ Verify │
|
|
||||||
│ (checklist from SKILL.md) │
|
|
||||||
└───────────┬──────────────────────────────┘
|
|
||||||
│
|
|
||||||
┌───────────▼──────────────────────────────┐
|
|
||||||
│ Ledger │
|
|
||||||
│ (mutation record: who/what/risk) │
|
|
||||||
└───────────┬──────────────────────────────┘
|
|
||||||
│
|
|
||||||
┌───────────▼──────────────────────────────┐
|
|
||||||
│ Document │
|
|
||||||
│ (wiki update, same-session rule) │
|
|
||||||
└───────────┬──────────────────────────────┘
|
|
||||||
│
|
|
||||||
└─────────────────┐
|
|
||||||
│
|
|
||||||
┌─────────▼─────────┐
|
|
||||||
│ Loop back to │
|
|
||||||
│ Observe │
|
|
||||||
└───────────────────┘
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Risk Classes (enforced, not advisory)
|
### Risk Classes (enforced, not advisory)
|
||||||
|
|||||||
Reference in New Issue
Block a user