architect
Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with end conditions that Archon can…
Unified router that auto-routes user intent to the right direct action, skill, orchestrator, or explicit Operation Control plan. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command,
$ npx -y skills add SethGammon/Citadel --skill do --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/doContext preview
The summary Claude sees to decide when to auto-load this skill.
Unified router that auto-routes user intent to the right direct action, skill, orchestrator, or explicit Operation Control plan. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command,
name: do license: MIT description: >- Unified router that auto-routes user intent to the right direct action, skill, orchestrator, or explicit Operation Control plan. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command, skill, marshal, archon, or fleet. Single entry point for all work. user-invocable: true auto-trigger: false trigger_keywords: - route this - which tool - auto-route - unified router last-updated: 2026-07-31
Use `/do` when the user wants something done but doesn't know (or care) which tool handles it. **Don't use when:** you know the destination — invoke /marshal, /archon, /fleet, or any skill directly.
| Command | Behavior | |---|---| | `/do [anything]` | Classify intent, route to cheapest capable path | | `/do status` | Show full harness dashboard (/dashboard) | | `/do next` | Run the decision-first operator console for the next useful harness action | | `/do operator` | Show the operator console without executing repairs | | `/do preview <request>` | Show exact resolution or generated candidates and their boundary without executing | | `/do --route /skill -- <request>` | Use an explicit validated route without bypassing activation or safety boundaries | | `/do continue` | Resolve and run the deterministic continuation action | | `/do --list` | Show all skills grouped by category with trigger keywords | | `/do setup` | First-run experience — configure the harness for this project |
Classification runs top-to-bottom. Exact commands resolve first. Natural-language requests use keyword matches only as candidate evidence for semantic classification.
Compare installed skill directories with `core/skills/routing-table.json`. If they match, continue without reading skill bodies. For each unknown skill, read only its frontmatter and use `name`, `description`, and `trigger_keywords` as session-local Tier 2 match targets, then report: `"Discovered {N} new skill(s): {names}. Run /do setup to regenerate routing."` Do not write registration fields into `harness.json`; schema-v2 config is exact and generated routing is a projection, not config authority.
Normalize case, apostrophes, and whitespace, then compare the **entire input**. Never match a Tier 0 command because its word appears inside a larger request.
<!-- BEGIN GENERATED: exact-command-table --> | Exact normalized input | Action | |---|---| | "status", "dashboard", "what's happening", "what's going on", "show activity" | `node scripts/dashboard.js` | | "next", "what should i do next", "fix harness state", "repair harness" | `node scripts/operator-console.js --run` | | "operator", "operator console", "approval capsule", "what's up", "what should happen next" | `node scripts/operator-console.js` | | "continue", "keep going" | `node scripts/continue-action.js --run` | | "setup", "first run", "configure harness" | `/do setup` | | "setup --express" | `/do setup --express` | | "--list", "list", "list skills" | `/do --list` | | "test", "tests", "run test", "run tests" | `npm run test` only when `package.json#scripts.test` exists; otherwise non-final | | "build", "run build" | `npm run build` only when `package.json#scripts.build` exists; otherwise non-final | | "typecheck", "type check", "run typecheck", "run type check" | `npm run typecheck` only when `package.json#scripts.typecheck` exists; otherwise non-final | <!-- END GENERATED: exact-command-table -->
`/do preview <request>` strips the `preview` wrapper and reuses the shared exact command and built-in candidate preflight. It does **not** inspect Tier 1 active state, discover project-local custom skills, or run the Tier 3 LLM classifier. Therefore every natural-language preview is non-final, has no command, and stops at `semantic-classification-required`. `/do --route /skill -- <request>` passes the requested route through `scripts/route-preview.js --route`; an unknown route is rejected, and a valid override still goes through activation, worktree, and approval boundaries.
If the whole input matches an exact command, execute it and stop. The `test`, `build`, and `typecheck` commands are final only when the target project's `package.json` declares the corresponding non-empty script. Otherwise they remain non-executable. Do not execute a command merely because its word appears inside a larger request; continue to active-state and semantic routing.
Check for active campaigns or fleet sessions that match the input scope:
0. For input exactly equivalent to `continue`, first run:
node scripts/continue-action.js --run
1. Read `.planning/campaigns/` for files with `Status: active` or `status: active` in frontmatter 2. Read `.planning/fleet/` for session files with `status: active` or `needs-continue` 3. **Review-package campaigns:** if the campaign status is `needs-review-package` or its `review-package` Exit Evidence row is pending while prior phases are complete, route to `node scripts/package-delivery.js <slug>` before Archon. 4. **Improve campaigns (type: improve):** if the active campaign has `type: improve` in frontmatter, route to `/improve {target} --continue` where `{target}` is the campaign's `target` field. Do NOT route improve campaigns to archon -- improve is its own orchestrator. 5. I
An open-source operating layer for Claude Code and OpenAI Codex. Citadel routes requests, preserves repository state between sessions, coordinates parallel work, applies repository safeguards, and records evidence and handoffs around the coding agent you
Repo: SethGammon/Citadel
Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with end conditions that Archon can…
Autonomous multi-session campaign agent. Decomposes large work into phases, delegates to sub-agents, reviews output, and maintains campaign state across…
Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid approach so alignment is guaranteed…
Intake-to-delivery pipeline. Processes pending items from .planning/intake/: briefs new ideas, executes approved work through research → plan → build → verify.…
Deep cost exploration and transparency. Shows real token usage, session costs, campaign spend, burn rates, and model breakdown. Reads Claude Code's native…
End-to-end app creation from a single description. Five tiers: blank project, guided, templated, fully generated, or feature addition to existing codebase.…