Four routing tiers — pattern match to full LLM. Stops at the first match. Most commands cost nothing.
Pure regex against the raw input string. No model call, no skill load. Catches exact-intent commands that need no classification — typos, renames, commits, status checks. If it matches here, Claude executes it directly and stops.
Tier 1 (active session context) is evaluated in live Claude Code sessions — skipped in this demo.
The input is scanned against a keyword table built from every installed skill. "review" → /review, "debug" → /systematic-debugging. New skills register their own keywords automatically. No LLM needed.
Classifies 6 dimensions: scope, complexity (1–5), intent, multi-session persistence, parallel execution, and taste. The result determines the dispatch — Archon for contained work, Fleet for platform-wide scope.
Real output from real sessions. No wireframes, no mockups.
Complex tasks run across sessions without losing direction — or your confidence.
Works on any Claude Code project.
No config required — Citadel detects your stack on first run.
.planning/ and installs hooks on first run. No manual setup required./do setup to create .claude/harness.json with project-specific settings — hook toggles, agent timeouts, doc sync, quality rules. All settings have working defaults so this step is optional./skill-name, or let /do route to the right one automatically.| Event | What it does |
|---|---|
| SessionStart | Scans .planning/intake/, restores compressed context, scaffolds .planning/ on first run. |
| PreCompact | Detects unwritten work before context compression. Auto-saves a handoff to disk. |
| PostCompact | Re-injects the saved handoff into the new compressed context so nothing is lost. |
| PreToolUse | Campaign scope enforcement — blocks edits outside a campaign's declared scope. |
| PostToolUse | Runs per-file typecheck on every Edit or Write. Failures surface immediately. |
| Stop | Quality gate before session ends. Checks for uncommitted work and open campaign phases. |
| StopFailure | API failure telemetry — logs to .planning/telemetry/ and triggers recovery if configured. |
| TaskCreated | Logs agent task boundary start events to the audit trail. |
| TaskCompleted | Logs task completion with duration and outcome to agent-runs.jsonl. |
| SubagentStop | Ensures sub-agents write a HANDOFF block and release scope claims before exiting. |
| SessionEnd | Campaign cleanup, triggers the doc sync queue. |
| WorktreeCreate | Installs hooks and scaffolds .planning/ in isolated Fleet worktrees. |
| WorktreeRemove | Fleet cleanup — triggers merge conflict check and logs worktree metrics. |
.claude/harness.json under the hooks key. Example: "postToolUse": { "enabled": false }/archon build a real-time notifications system — or let /do route there automatically. Archon creates a file at .planning/campaigns/{slug}.md before executing anything./do continue or /archon with no arguments. The SessionStart hook restores context. Archon reads the campaign's Active Context section and picks up at the exact sub-step./do routes to Fleet automatically when it detects platform-wide scope.