From af14c38fb2ad3cd25838b857886e6dec0b3a9e08 Mon Sep 17 00:00:00 2001 From: dtoro Date: Mon, 6 Jul 2026 20:49:46 +0200 Subject: [PATCH] docs: convert OODA loop diagram to real Mermaid syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- README.md | 73 +++++++++++++++---------------------------------------- 1 file changed, 19 insertions(+), 54 deletions(-) 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)