diff --git a/README.md b/README.md index 8c369f6..44b50cb 100644 --- a/README.md +++ b/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**
probes, drift detectors, agent signals"] + Orient["**Orient**
ontology, context, state, entity relations"] + Decide{"**Decide**
classify against oikos/policy.yaml"} + Auto["Auto-act
(unattended)"] + Escalate["Escalate
homelab approval request"] + Act["**Act**
homelab CLI, runbooks, skills"] + Verify["**Verify**
checklist from SKILL.md"] + Ledger["**Ledger**
mutation record: who/what/risk"] + Document["**Document**
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)