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
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ Observe │
|
||||
│ (probes, drift detectors, agent signals) │
|
||||
└────────────────────┬────────────────────────────────────────┘
|
||||
│
|
||||
┌────────────────────▼────────────────────────────────────────┐
|
||||
│ Orient │
|
||||
│ (ontology, context, state, entity relations) │
|
||||
└────────────────────┬────────────────────────────────────────┘
|
||||
│
|
||||
┌────────────────────▼────────────────────────────────────────┐
|
||||
│ Decide: Classify against oikos/policy.yaml │
|
||||
│ │
|
||||
│ ├─ read_only → [unattended, no ledger] │
|
||||
│ ├─ reversible_low → [unattended + ledger entry] │
|
||||
│ ├─ config_mutation → [ESCALATE: operator approval]│
|
||||
│ └─ destructive → [ESCALATE + confirmation] │
|
||||
└────────────────────┬────────────────────────────────────────┘
|
||||
│
|
||||
┌────────────┴────────────┐
|
||||
│ │
|
||||
┌────▼─────┐ ┌──────▼──────┐
|
||||
│ 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 │
|
||||
└───────────────────┘
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Observe["**Observe**<br/>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"]
|
||||
Act["**Act**<br/>homelab CLI, runbooks, skills"]
|
||||
Verify["**Verify**<br/>checklist from SKILL.md"]
|
||||
Ledger["**Ledger**<br/>mutation record: who/what/risk"]
|
||||
Document["**Document**<br/>wiki update, same-session rule"]
|
||||
|
||||
Observe --> Orient --> Decide
|
||||
Decide -->|read_only, reversible_low| Auto
|
||||
Decide -->|config_mutation, destructive| Escalate
|
||||
Auto --> Act
|
||||
Escalate -->|approval granted| Act
|
||||
Act --> Verify --> Ledger --> Document
|
||||
Document -.loop.-> Observe
|
||||
```
|
||||
|
||||
### Risk Classes (enforced, not advisory)
|
||||
|
||||
Reference in New Issue
Block a user