#946 by GitHub stars
SethGammon/Citadel
The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/architect/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/archon/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/ascii-diagram/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/autopilot/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/cost/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/create-app/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/create-skill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/daemon/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/decision-map/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/deploy-steward/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/design/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/do/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/doc-gen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/evolve/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/experiment/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/fleet/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/grill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/houseclean/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/improve/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/infra-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/learn/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/live-preview/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/loop/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/map/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/marshal/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/merge-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/organize/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/postmortem/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/pr-watch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/prd/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/qa/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/refactor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/research/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/scaffold/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/schedule/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/session-handoff/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/systematic-debugging/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/telemetry/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/test-gen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/triage/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/unharness/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/verify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/watch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/wiki/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
skills/workspace/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
c26c4329634a → e1a3d45697a0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → c26c4329634a
No earlier version was observed for comparison.
Verified commit e1a3d45697a0f323aaedcbea0ab6a0387b5fe722
git clone --filter=blob:none --no-checkout https://github.com/SethGammon/Citadel.git .hotskills/sethgammon-citadel && git -C .hotskills/sethgammon-citadel checkout --detach e1a3d45697a0f323aaedcbea0ab6a0387b5fe722
# Copy each selected skill directory from .hotskills/sethgammon-citadel into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/SethGammon/Citadel.git .hotskills/sethgammon-citadel && git -C .hotskills/sethgammon-citadel checkout --detach e1a3d45697a0f323aaedcbea0ab6a0387b5fe722
# Copy each selected skill directory from .hotskills/sethgammon-citadel into .agents/skills/<skill-name>/Heat
1.6- Star growth, last 7 daysAhead of 6% of tracked repositories
- Star growth, last 24 hoursAhead of 3% of tracked repositories
- Rank movement, last 7 daysAhead of 8% of tracked repositories
- Commits, last 30 daysAhead of 94% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- template-skill
scripts/fixtures/ecosystem/anthropics-template-skill - architect
skills/architect - archon
skills/archon - ascii-diagram
skills/ascii-diagram - autopilot
skills/autopilot - cost
skills/cost - create-app
skills/create-app - create-skill
skills/create-skill - daemon
skills/daemon - dashboard
skills/dashboard - decision-map
skills/decision-map - deploy-steward
skills/deploy-steward - design
skills/design - do
skills/do - doc-gen
skills/doc-gen - evolve
skills/evolve - experiment
skills/experiment - fleet
skills/fleet - grill
skills/grill - houseclean
skills/houseclean - improve
skills/improve - infra-audit
skills/infra-audit - learn
skills/learn - live-preview
skills/live-preview - loop
skills/loop - map
skills/map - marshal
skills/marshal - merge-review
skills/merge-review - organize
skills/organize - postmortem
skills/postmortem - pr-watch
skills/pr-watch - prd
skills/prd - qa
skills/qa - refactor
skills/refactor - research
skills/research - review
skills/review - scaffold
skills/scaffold - schedule
skills/schedule - session-handoff
skills/session-handoff - setup
skills/setup - systematic-debugging
skills/systematic-debugging - telemetry
skills/telemetry - test-gen
skills/test-gen - triage
skills/triage - unharness
skills/unharness - verify
skills/verify - watch
skills/watch - wiki
skills/wiki - workspace
skills/workspace
How it works
template-skill
When your agent uses it
Replace with description of the skill and when Claude should use it.
What it loads into context
Frontmatter
21 tokensAlways available to the agent
SKILL.md
28 tokensWhen the skill is activated
Reference documents
100 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Scripts executed separately
../../../../hooks_src/circuit-breaker.js../../../../hooks_src/circuit-breaker.js../../../../hooks_src/complexity-check.js../../../../hooks_src/complexity-check.js../../../../hooks_src/complexity-check.js../../../../hooks_src/config-change.js../../../../hooks_src/config-change.js../../../../hooks_src/cost-tracker.js../../../../hooks_src/cost-tracker.js../../../../hooks_src/cwd-changed.js../../../../hooks_src/cwd-changed.js../../../../hooks_src/elicitation.js../../../../hooks_src/elicitation.js../../../../hooks_src/external-action-gate.js../../../../hooks_src/external-action-gate.js../../../../hooks_src/external-action-gate.js../../../../hooks_src/file-changed.js../../../../hooks_src/file-changed.js../../../../hooks_src/governance.js../../../../hooks_src/governance.js../../../../hooks_src/init-project.js../../../../hooks_src/init-project.js../../../../hooks_src/init-project.js../../../../hooks_src/instructions-loaded.js../../../../hooks_src/instructions-loaded.js../../../../hooks_src/instructions-watch.js../../../../hooks_src/instructions-watch.js../../../../hooks_src/intake-scanner.js../../../../hooks_src/intake-scanner.js../../../../hooks_src/notification.js../../../../hooks_src/notification.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/organize-enforce.js../../../../hooks_src/permission-request.js../../../../hooks_src/permission-request.js../../../../hooks_src/post-compact.js../../../../hooks_src/post-compact.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-edit.js../../../../hooks_src/post-tool-batch.js../../../../hooks_src/post-tool-batch.js../../../../hooks_src/pre-compact.js../../../../hooks_src/pre-compact.js../../../../hooks_src/protect-files.js../../../../hooks_src/protect-files.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/quality-gate.js../../../../hooks_src/restore-compact.js../../../../hooks_src/restore-compact.js../../../../hooks_src/session-end.js../../../../hooks_src/session-end.js../../../../hooks_src/session-end.js../../../../hooks_src/session-end.js../../../../hooks_src/stop-failure.js../../../../hooks_src/stop-failure.js../../../../hooks_src/subagent-start.js../../../../hooks_src/subagent-start.js../../../../hooks_src/subagent-stop.js../../../../hooks_src/subagent-stop.js../../../../hooks_src/task-events.js../../../../hooks_src/task-events.js../../../../hooks_src/teammate-idle.js../../../../hooks_src/teammate-idle.js../../../../hooks_src/user-prompt-expansion.js../../../../hooks_src/user-prompt-expansion.js../../../../hooks_src/user-prompt-submit.js../../../../hooks_src/user-prompt-submit.js../../../../hooks_src/worktree-remove.js../../../../hooks_src/worktree-remove.js../../../../hooks_src/worktree-remove.js../../../../hooks_src/worktree-setup.js../../../../hooks_src/worktree-setup.js../../../../mcp-servers/citadel-state/index.js../../../../mcp-servers/codebase-memory/index.js../../../install-hooks.js../../../permission-audit.js../../../repository-memory.js../../../run-with-timeout.js../../../run-with-timeout.js
Files
../../../../.claude-plugin/.mcp.jsonasset1,145 bytes../../../../.claude-plugin/marketplace.jsonasset482 bytes../../../../.claude-plugin/plugin.jsonasset489 bytes../../../../hooks/README.mddoc495 bytes../../../../hooks/bundle-map.jsonasset1,196 bytes../../../../hooks/hooks-template.jsonasset9,237 bytes../../../../hooks_src/circuit-breaker.jsruns8,018 bytes../../../../hooks_src/circuit-breaker.jsruns8,018 bytes../../../../hooks_src/complexity-check.jsruns3,828 bytes../../../../hooks_src/complexity-check.jsruns3,828 bytes../../../../hooks_src/complexity-check.jsruns3,828 bytes../../../../hooks_src/config-change.jsruns2,307 bytes../../../../hooks_src/config-change.jsruns2,307 bytes../../../../hooks_src/cost-tracker.jsruns12,331 bytes../../../../hooks_src/cost-tracker.jsruns12,331 bytes../../../../hooks_src/cwd-changed.jsruns1,998 bytes../../../../hooks_src/cwd-changed.jsruns1,998 bytes../../../../hooks_src/elicitation.jsruns2,126 bytes../../../../hooks_src/elicitation.jsruns2,126 bytes../../../../hooks_src/external-action-gate.jsruns9,933 bytes../../../../hooks_src/external-action-gate.jsruns9,933 bytes../../../../hooks_src/external-action-gate.jsruns9,933 bytes../../../../hooks_src/file-changed.jsruns4,016 bytes../../../../hooks_src/file-changed.jsruns4,016 bytes../../../../hooks_src/governance.jsruns2,031 bytes../../../../hooks_src/governance.jsruns2,031 bytes../../../../hooks_src/init-project.jsruns21,455 bytes../../../../hooks_src/init-project.jsruns21,455 bytes../../../../hooks_src/init-project.jsruns21,455 bytes../../../../hooks_src/instructions-loaded.jsruns1,971 bytes../../../../hooks_src/instructions-loaded.jsruns1,971 bytes../../../../hooks_src/instructions-watch.jsruns2,294 bytes../../../../hooks_src/instructions-watch.jsruns2,294 bytes../../../../hooks_src/intake-scanner.jsruns4,568 bytes../../../../hooks_src/intake-scanner.jsruns4,568 bytes../../../../hooks_src/notification.jsruns2,251 bytes../../../../hooks_src/notification.jsruns2,251 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/organize-enforce.jsruns14,304 bytes../../../../hooks_src/permission-request.jsruns5,768 bytes../../../../hooks_src/permission-request.jsruns5,768 bytes../../../../hooks_src/post-compact.jsruns3,547 bytes../../../../hooks_src/post-compact.jsruns3,547 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-edit.jsruns29,319 bytes../../../../hooks_src/post-tool-batch.jsruns3,815 bytes../../../../hooks_src/post-tool-batch.jsruns3,815 bytes../../../../hooks_src/pre-compact.jsruns7,881 bytes../../../../hooks_src/pre-compact.jsruns7,881 bytes../../../../hooks_src/protect-files.jsruns20,531 bytes../../../../hooks_src/protect-files.jsruns20,531 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/quality-gate.jsruns22,213 bytes../../../../hooks_src/restore-compact.jsruns2,303 bytes../../../../hooks_src/restore-compact.jsruns2,303 bytes../../../../hooks_src/session-end.jsruns27,243 bytes../../../../hooks_src/session-end.jsruns27,243 bytes../../../../hooks_src/session-end.jsruns27,243 bytes../../../../hooks_src/session-end.jsruns27,243 bytes../../../../hooks_src/stop-failure.jsruns1,879 bytes../../../../hooks_src/stop-failure.jsruns1,879 bytes../../../../hooks_src/subagent-start.jsruns1,809 bytes../../../../hooks_src/subagent-start.jsruns1,809 bytes../../../../hooks_src/subagent-stop.jsruns1,767 bytes../../../../hooks_src/subagent-stop.jsruns1,767 bytes../../../../hooks_src/task-events.jsruns1,923 bytes../../../../hooks_src/task-events.jsruns1,923 bytes../../../../hooks_src/teammate-idle.jsruns2,585 bytes../../../../hooks_src/teammate-idle.jsruns2,585 bytes../../../../hooks_src/user-prompt-expansion.jsruns3,679 bytes../../../../hooks_src/user-prompt-expansion.jsruns3,679 bytes../../../../hooks_src/user-prompt-submit.jsruns2,371 bytes../../../../hooks_src/user-prompt-submit.jsruns2,371 bytes../../../../hooks_src/worktree-remove.jsruns6,834 bytes../../../../hooks_src/worktree-remove.jsruns6,834 bytes../../../../hooks_src/worktree-remove.jsruns6,834 bytes../../../../hooks_src/worktree-setup.jsruns3,247 bytes../../../../hooks_src/worktree-setup.jsruns3,247 bytes../../../../mcp-servers/citadel-state/index.jsruns14,316 bytes../../../../mcp-servers/codebase-memory/index.jsruns13,882 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytes../../../../runtimes/codex/hooks.jsonasset11,501 bytesSKILL.mdcore140 bytesprovenance.jsonasset968 bytes../../../install-hooks.jsruns4,287 bytes../../../permission-audit.jsruns6,485 bytes../../../repository-memory.jsruns5,751 bytes../../../run-with-timeout.jsruns5,620 bytes../../../run-with-timeout.jsruns5,620 bytes
architect
When your agent uses it
Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with end conditions that Archon can execute directly. Multi-candidate evaluation for key decisions.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
1,573 tokensWhen the skill is activated
Reference documents
401 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Inputs
- Mode Detection
- Protocol
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore6,597 bytesSKILL.mdcore6,597 bytesSKILL.mdcore6,597 bytes__benchmarks__/no-prd.mddoc791 bytes__benchmarks__/with-direction.mddoc897 bytes
Read SKILL.md
# /architect — Implementation Architecture from PRD
## When to Use
**Don't use when:** you already have an architecture and want to implement it (use /marshal or /archon); you need a PRD first (use /prd before /architect).
- After /prd produces an approved PRD (greenfield or feature mode)
- When the user has a clear direction + existing codebase (no PRD needed)
- When /do routes a build request
- When the user has a spec and wants a build plan
## Inputs
One of:View the complete source on GitHubarchon
When your agent uses it
Autonomous multi-session campaign agent. Decomposes large work into phases, delegates to sub-agents, reviews output, and maintains campaign state across context windows. Use for work that spans multiple sessions and needs persistent state, quality judgment, and strategic decomposition.
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
5,085 tokensWhen the skill is activated
Reference documents
456 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Health Diagnostic (Undirected Mode)
- Quality Gates
- Circuit Breakers
- Recovery
- Fringe Cases
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/evidence-validate.js../../scripts/evidence-validate.js../../scripts/map-index.js../../scripts/map-index.js../../scripts/package-delivery.js../../scripts/package-delivery.js../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js../../scripts/sandbox-provider.js../../scripts/sandbox-provider.js../../scripts/telemetry-log.cjs
Files
../../scripts/evidence-validate.jsruns3,041 bytes../../scripts/evidence-validate.jsruns3,041 bytes../../scripts/map-index.jsruns5,534 bytes../../scripts/map-index.jsruns5,534 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/sandbox-provider.jsruns3,348 bytes../../scripts/sandbox-provider.jsruns3,348 bytes../../scripts/telemetry-log.cjsruns1,890 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytesSKILL.mdcore22,298 bytes__benchmarks__/active-campaign-resume.mddoc924 bytes__benchmarks__/no-direction-no-campaign.mddoc951 bytes
Read SKILL.md
# /archon — Autonomous Strategist
You are Archon. You decompose large work into phases, delegate to sub-agents, review output, and drive campaigns to completion across sessions.
Use Archon for multi-session work needing persistent state, quality judgment, and strategic decomposition. Use Marshal for single-session work; Fleet for parallel execution.
## Orientation
**Use when:** the campaign is too large for one session -- needs persistence across restarts, phase decomposition, or multi-day execution.
**Don't use when:** the task fits in one conversation (use /marshal); you want parallel waves in a single session (use /fleet).
## Protocol
### Step 1: WAKE UPView the complete source on GitHubascii-diagram
When your agent uses it
Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid approach so alignment is guaranteed by math, not token prediction. Includes post-render verification.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
2,931 tokensWhen the skill is activated
Reference documents
457 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Style Guide
- Failure Modes & Recovery
- Complexity Thresholds
- Anti-Patterns (NEVER do these)
- Fringe Cases
- Quality Gates
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/grid.cjs../../scripts/verify.cjs
Files
../../scripts/grid.cjsruns7,248 bytes../../scripts/verify.cjsruns7,747 bytesSKILL.mdcore11,016 bytesSKILL.mdcore11,016 bytesSKILL.mdcore11,016 bytesSKILL.mdcore11,016 bytesSKILL.mdcore11,016 bytesSKILL.mdcore11,016 bytes__benchmarks__/no-citadel-scripts.mddoc974 bytes__benchmarks__/simple-pipeline.mddoc890 bytes
Read SKILL.md
# /ascii-diagram — Perfectly Aligned ASCII Diagrams
## Orientation
**Use when:**
- The user wants any kind of text/ASCII diagram: architecture, flow, sequence,
box-and-arrow, tree, table, org chart, network topology
- A diagram needs to be embedded in markdown, code comments, or plain text
- Visual alignment matters
**Do NOT use when:**
- The user wants an image (suggest Mermaid, PlantUML, or an image tool instead)
- The diagram is trivial (a single box or a one-line arrow)
View the complete source on GitHubautopilot
When your agent uses it
Intake-to-delivery pipeline. Processes pending items from .planning/intake/: briefs new ideas, executes approved work through research → plan → build → verify. Drop a file in .planning/intake/ and invoke this skill.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,244 tokensWhen the skill is activated
Reference documents
465 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Intake Item Format
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/deliver.js../../scripts/deliver.js../../scripts/package-delivery.js
Files
../../scripts/deliver.jsruns2,421 bytes../../scripts/deliver.jsruns2,421 bytes../../scripts/package-delivery.jsruns2,101 bytesSKILL.mdcore5,103 bytesSKILL.mdcore5,103 bytesSKILL.mdcore5,103 bytesSKILL.mdcore5,103 bytes__benchmarks__/briefed-item-build.mddoc924 bytes__benchmarks__/empty-intake.mddoc907 bytes
Read SKILL.md
# /autopilot — Intake Pipeline
## Orientation
Use Autopilot when:
- There are pending items in `.planning/intake/`
- You want to process intake items without manual orchestration
- The work is scoped and well-defined (Small or Medium complexity)
Do NOT use Autopilot for:
- Large, multi-session campaigns (use Archon)
- Parallel execution (use Fleet)
- Exploratory or open-ended work (use Marshal)
View the complete source on GitHubcost
When your agent uses it
Deep cost exploration and transparency. Shows real token usage, session costs, campaign spend, burn rates, and model breakdown. Reads Claude Code's native session data for exact numbers. Complements /dashboard with focused cost views.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
1,661 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Inputs
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/session-tokens.js../../scripts/session-tokens.js
Files
../../scripts/pricing.jsonasset589 bytes../../scripts/session-tokens.jsruns4,136 bytes../../scripts/session-tokens.jsruns4,136 bytesSKILL.mdcore6,617 bytesSKILL.mdcore6,617 bytes
Read SKILL.md
# /cost -- Session & Campaign Cost Explorer
## When to Use
- `/cost` -- current session cost and burn rate
- `/cost today` -- today's total spend
- `/cost week` -- this week's spend
- `/cost campaign {slug}` -- total spend for a specific campaign
- `/cost all` -- lifetime cost summary
- When /do routes "how much", "what's the cost", "spending", "tokens", "burn rate"
## Inputs
Optional arguments parsed from user message:View the complete source on GitHubcreate-app
When your agent uses it
End-to-end app creation from a single description. Five tiers: blank project, guided, templated, fully generated, or feature addition to existing codebase. Routes through PRD, architecture, and Archon campaign with verification at every step.
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
1,621 tokensWhen the skill is activated
Reference documents
435 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Tier Detection
- Protocol
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore6,830 bytesSKILL.mdcore6,830 bytesSKILL.mdcore6,830 bytes__benchmarks__/existing-codebase.mddoc912 bytes__benchmarks__/greenfield-vague.mddoc864 bytes
Read SKILL.md
# /create-app — From Description to Verified Application
## Orientation
**Use when:** building a new app from scratch -- full scaffold, design system, and feature set from a single description.
**Don't use when:** adding a feature to an existing app (use /marshal or /archon); generating a single component (use /scaffold).
## Tier Detection
Use when the user wants to create an app, add a feature, or scaffold a project. Classify the input into one of five tiers:
### Tier 1: Blank Project
- Trigger: "create a blank project", "new project", "scaffold"
- Action: Run /scaffold with stack detection. No PRD, no architecture.View the complete source on GitHubcreate-skill
When your agent uses it
Creates new skills from the user's repeating patterns. Interview-driven: discovers the task, analyzes failure modes, generates a production SKILL.md, installs it, tests it on a real target, and teaches the user how to use it. Use when a user wants to encode a repeating workflow; do NOT use for one-off tasks or modifying existing skills.
What it loads into context
Frontmatter
152 tokensAlways available to the agent
SKILL.md
1,904 tokensWhen the skill is activated
Reference documents
471 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore7,689 bytes__benchmarks__/repeated-pattern.mddoc1,233 bytes__benchmarks__/vague-pattern.mddoc771 bytes
Read SKILL.md
# /create-skill — Skill Creator
## Orientation
**Use when:**
- The user says "I keep doing this same thing" or "automate this for me"
- The user wants to encode a workflow they have refined through repetition
- The user says "create a skill for X" or "make a skill that does Y"
**Do NOT use when:**
- The user wants a one-off task done (just do it)
- The pattern has only happened once
- An existing skill already covers this
- The user wants to modify an existing skill (edit directly)View the complete source on GitHubdaemon
When your agent uses it
Continuous autonomous operation mode. Keeps campaigns running 24/7 by chaining Claude Code sessions via RemoteTrigger. Each session picks up from the campaign's continuation state, works until context runs low or the phase completes, then schedules the next session. Auto-stops on campaign completion or budget exhaustion. The thing that makes Citadel run overnight.
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
4,277 tokensWhen the skill is activated
Reference documents
2,113 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Default execution path (READ FIRST)
- Commands
- Protocol
- SessionStart Hook Bridge (Primary Bootstrap)
- Budget Tracking
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/codex-automation.js../../scripts/codex-automation.js../../scripts/memory-compile.js../../scripts/memory-compile.js
Files
../../docs/ISSUE-278-SECURITY.mddoc4,476 bytes../../docs/ROUTINE-QUOTA.mddoc3,231 bytes../../scripts/codex-automation.jsruns1,324 bytes../../scripts/codex-automation.jsruns1,324 bytes../../scripts/memory-compile.jsruns3,694 bytes../../scripts/memory-compile.jsruns3,694 bytesSKILL.mdcore17,781 bytes__benchmarks__/no-active-campaign.mddoc886 bytes__benchmarks__/start-local.mddoc982 bytes
Read SKILL.md
# /daemon -- Continuous Autonomous Operation
Architecture, daemon.json field reference, and rationale: docs/DAEMON.md.
## Orientation
**Use when:** running campaigns overnight or unattended -- chains sessions automatically until a ceiling or budget is hit.
**Don't use when:** a single autonomous session is enough (use /archon); you want manual control between cycles (use /loop).
## Default execution path (READ FIRST)
**`/daemon start` does NOT call `RemoteTrigger` by default.** The local runner is the default. Only pass `--remote` to use Anthropic's routine system, and only after explicit user confirmation.
**Why:** `RemoteTrigger` counts against the account-wide **15 routine runs / 24h** cap. A single overnight run can exhaust the quota and pause every other routine on the account (including unrelated ones). See [docs/ROUTINE-QUOTA.md](../../docs/ROUTINE-QUOTA.md).View the complete source on GitHubdashboard
When your agent uses it
Real-time harness observability dashboard. Reads campaigns, fleet sessions, telemetry, and pending queues to present a snapshot of harness state at a glance. Invoked by /dashboard, /do status, or phrases like "what's happening" and "show activity".
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
3,636 tokensWhen the skill is activated
Reference documents
641 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Inputs
- Protocol
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/campaign.js../../scripts/campaign.js../../scripts/dashboard.js../../scripts/package-delivery.js../../scripts/package-delivery.js../../scripts/session-tokens.js../../scripts/session-tokens.js
Files
../../scripts/campaign.jsruns3,418 bytes../../scripts/campaign.jsruns3,418 bytes../../scripts/dashboard.jsruns55,302 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/session-tokens.jsruns4,136 bytes../../scripts/session-tokens.jsruns4,136 bytesSKILL.mdcore14,293 bytesSKILL.mdcore14,293 bytesSKILL.mdcore14,293 bytes__benchmarks__/active-campaign.mddoc833 bytes__benchmarks__/no-planning-dir.mddoc977 bytes__benchmarks__/vague-status-phrase.mddoc817 bytes
Read SKILL.md
# /dashboard — Harness Observability Dashboard
## When to Use
- "What's happening?" / "Status?" / "What's going on?"
- "Show activity" / "Show me the dashboard"
- After returning to a project after time away
- When /do routes "status", "dashboard", "what's happening", "what's going on", "show activity"
- Directly: `/dashboard`
## Inputs
None required. Works with whatever state exists on disk.
View the complete source on GitHubdecision-map
When your agent uses it
Turn a loose idea into a git-tracked, session-resumable map of typed investigation tickets, then drive them to resolution one at a time. The planning-loop engine for work that is still being figured out — too fuzzy for a campaign, too big for a single intake item. Resolved tickets graduate into .planning/intake/ for the autopilot to build.
What it loads into context
Frontmatter
137 tokensAlways available to the agent
SKILL.md
1,352 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore5,653 bytes
Read SKILL.md
# Identity
You are the planning-loop engine. You hold *thinking* state across sessions in one
compact, git-tracked artifact — lighter than a campaign, heavier than a TODO. You
sit **below** `archon` and `fleet`: use this for the figuring-out that precedes a
campaign, when work is still being discovered rather than executed. When a ticket
resolves into buildable work, it graduates into `.planning/intake/` for `autopilot`.
## Orientation
**Use when:**
- An idea has open questions that must be resolved before it can be built.
- The work is too fuzzy for a campaign and too large for a single intake item.
- Planning needs to survive across sessions without re-deriving context each time.View the complete source on GitHubdeploy-steward
When your agent uses it
Mainline deploy steward. Consumes ready PRs, owns a lease on mainline landing, refreshes PR state, updates stale branches, waits for CI and deploy gates, merges or queues one candidate at a time, and opens repair tasks for failures.
What it loads into context
Frontmatter
153 tokensAlways available to the agent
SKILL.md
1,656 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Required Inputs
- Invocation Forms
- Protocol
- State Files
- Safety Rules
- Fringe Cases
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/citadel-config.js../../scripts/dashboard-server.js../../scripts/deploy-steward.js../../scripts/deploy-steward.js../../scripts/generate-fixtures.js../../scripts/generate-fixtures.js../../scripts/noop-ablate.js../../scripts/pr-ready.js../../scripts/pr-ready.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/skill-lint.js../../scripts/skill-lint.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-deploy-steward.js../../scripts/test-deploy-steward.js../../scripts/test-routing-sync.js../../scripts/test-routing-sync.js../../scripts/watch.js
Files
../../scripts/citadel-config.jsruns17,803 bytes../../scripts/dashboard-server.jsruns39,674 bytes../../scripts/deploy-steward.jsruns4,652 bytes../../scripts/deploy-steward.jsruns4,652 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/noop-ablate.jsruns12,545 bytes../../scripts/pr-ready.jsruns9,721 bytes../../scripts/pr-ready.jsruns9,721 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-lint.jsruns11,815 bytes../../scripts/skill-lint.jsruns11,815 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-deploy-steward.jsruns13,136 bytes../../scripts/test-deploy-steward.jsruns13,136 bytes../../scripts/test-routing-sync.jsruns6,128 bytes../../scripts/test-routing-sync.jsruns6,128 bytes../../scripts/watch.jsruns20,118 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytesSKILL.mdcore6,690 bytes
Read SKILL.md
# /deploy-steward - Mainline Deploy Steward
You are the deploy steward. You serialize mainline landing for parallel agent work.
Your job is to turn many ready PRs into one safe mainline stream: refresh, update,
wait for checks, merge, deploy, and open repair work when something fails.
## When to Use
Use this when the user asks to:
- land multiple ready PRs without a manual merge stampede
- keep agent PRs rebased or branch-updated against latest main
- merge only after required checks pass on current heads
- run a deploy command after each safe serial mergeView the complete source on GitHubdesign
When your agent uses it
Generates and maintains a design manifest for visual consistency. In existing projects, reads current styles and documents the design language. In new projects, asks a few questions and generates a starter manifest. The post-edit hook reads the manifest and flags deviations.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
1,537 tokensWhen the skill is activated
Reference documents
411 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Protocol
- Modes
- The Manifest
- Hook Integration
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore6,441 bytes__benchmarks__/extract-from-codebase.mddoc903 bytes__benchmarks__/no-existing-styles.mddoc858 bytes
Read SKILL.md
# /design — Design Manifest Generator
## When to Use
- At the start of a new project (generate starter manifest from preferences)
- On an existing project that has no manifest (extract patterns from existing code)
- When visual inconsistency is noticed ("why do we have 4 different button styles?")
- When /do routes "design", "style guide", "visual consistency", "design manifest"
## Protocol
### Step 1: DETECT MODE
Check for existing styles: look for `tailwind.config.*`, global CSS files, or component files with style patterns. If any exist, use Extract Mode. If none exist or the user says "new project", use Generate Mode.View the complete source on GitHubdo
When your agent uses it
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.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
5,969 tokensWhen the skill is activated
Reference documents
914 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- /do --list
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../scripts/campaign.js../../scripts/campaign.js../../scripts/citadel-config.js../../scripts/continue-action.js../../scripts/continue-action.js../../scripts/dashboard.js../../scripts/dashboard.js../../scripts/deliver.js../../scripts/deliver.js../../scripts/generate-routing.js../../scripts/generate-routing.js../../scripts/generate-routing.js../../scripts/next-action.js../../scripts/next-action.js../../scripts/operator-console.js../../scripts/operator-console.js../../scripts/operator-console.js../../scripts/package-delivery.js../../scripts/package-delivery.js../../scripts/pr-ready.js../../scripts/pr-ready.js../../scripts/route-preview.js../../scripts/route-preview.js../../scripts/stack-plan.js../../scripts/stack-plan.js../../scripts/telemetry-log.cjs
Files
../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../scripts/campaign.jsruns3,418 bytes../../scripts/campaign.jsruns3,418 bytes../../scripts/citadel-config.jsruns17,803 bytes../../scripts/continue-action.jsruns4,528 bytes../../scripts/continue-action.jsruns4,528 bytes../../scripts/dashboard.jsruns55,302 bytes../../scripts/dashboard.jsruns55,302 bytes../../scripts/deliver.jsruns2,421 bytes../../scripts/deliver.jsruns2,421 bytes../../scripts/generate-routing.jsruns11,000 bytes../../scripts/generate-routing.jsruns11,000 bytes../../scripts/generate-routing.jsruns11,000 bytes../../scripts/next-action.jsruns17,787 bytes../../scripts/next-action.jsruns17,787 bytes../../scripts/operator-console.jsruns16,344 bytes../../scripts/operator-console.jsruns16,344 bytes../../scripts/operator-console.jsruns16,344 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/package-delivery.jsruns2,101 bytes../../scripts/pr-ready.jsruns9,721 bytes../../scripts/pr-ready.jsruns9,721 bytes../../scripts/route-preview.jsruns18,801 bytes../../scripts/route-preview.jsruns18,801 bytes../../scripts/stack-plan.jsruns13,972 bytes../../scripts/stack-plan.jsruns13,972 bytes../../scripts/telemetry-log.cjsruns1,890 bytesSKILL.mdcore23,468 bytesSKILL.mdcore23,468 bytesSKILL.mdcore23,468 bytesSKILL.mdcore23,468 bytesSKILL.mdcore23,468 bytesSKILL.mdcore23,468 bytes__benchmarks__/no-planning-dir.mddoc944 bytes__benchmarks__/route-status.mddoc861 bytes__benchmarks__/status-command.mddoc794 bytes__benchmarks__/wrong-assumption-routing.mddoc1,100 bytes
Read SKILL.md
# /do — Unified Intent Router
## Orientation
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.
## Commands
| 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 |View the complete source on GitHubdoc-gen
When your agent uses it
Documentation generator with three modes: function-level (JSDoc/docstrings), module-level (directory READMEs), and API reference (endpoints/exports). Reads existing project doc style and matches it. Never generates docs that just restate what the signature already says.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
1,229 tokensWhen the skill is activated
Reference documents
380 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Commands
- Protocol
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore5,180 bytesSKILL.mdcore5,180 bytesSKILL.mdcore5,180 bytes__benchmarks__/generate-readme.mddoc783 bytes__benchmarks__/no-source-files.mddoc802 bytes
Read SKILL.md
# /doc-gen — Documentation Generator
## When to Use
- Add JSDoc/docstrings to functions in a file or set of files
- Write a README for a module or directory
- Document an HTTP API or exported library surface
Mode auto-detected from target:
- **File path** → function-level mode
- **Directory path** → module-level mode
- **Route file or API directory** → API reference mode
- **Explicit override**: `/doc-gen --mode function|module|api [target]`
View the complete source on GitHubevolve
When your agent uses it
Research-driven multi-cycle improvement director. Forms causal hypotheses about why scores are low, validates them with scout agents before attacking, dispatches axis-parallel fleet attacks, extracts transferable patterns, and runs indefinitely within a budget envelope. Accumulates a persistent belief model and pattern library across sessions.
What it loads into context
Frontmatter
160 tokensAlways available to the agent
SKILL.md
3,539 tokensWhen the skill is activated
Reference documents
470 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Invocation
- Campaign Artifacts
- Director Cycle Protocol
- Unlimited Mode
- Fringe Cases
- Quality Gates
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/citadel-config.js../../scripts/dashboard-server.js../../scripts/generate-fixtures.js../../scripts/generate-fixtures.js../../scripts/noop-ablate.js../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/watch.js
Files
../../scripts/citadel-config.jsruns17,803 bytes../../scripts/dashboard-server.jsruns39,674 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/noop-ablate.jsruns12,545 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/watch.jsruns20,118 bytesSKILL.mdcore14,834 bytes__benchmarks__/happy-path-status.mddoc990 bytes__benchmarks__/no-rubric.mddoc835 bytes
Read SKILL.md
# /evolve — Improvement Director
## Orientation
**Use when:** You want sustained autonomous quality advancement — the director
forms hypotheses, scouts before attacking, and builds a belief model that
compounds across cycles. Runs until a natural ceiling, budget exhaustion, or you
say stop.
**Don't use when:** You want a single scored loop (`/improve`), a known axis
attacked directly (`/improve --axis`), or a one-time audit (`/improve --score-only`).
**Key difference from `/improve`:** `/improve` follows the rubric mechanically.
`/evolve` asks *why* scores are where they are, validates those theories beforeView the complete source on GitHubexperiment
When your agent uses it
Automated optimization loop with scalar fitness function. Proposes changes in isolated worktrees, measures against a fixed baseline, and retains verified candidates locally. Supports convergence detection and diminishing returns.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
2,646 tokensWhen the skill is activated
Reference documents
1,438 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Identity
- Orientation
- Protocol
- Common Metrics
- Safety Rules
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Scripts executed separately
../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js../../scripts/telemetry-log.cjs
Files
../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/telemetry-log.cjsruns1,890 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytesSKILL.mdcore12,368 bytes__benchmarks__/dirty-workspace.mddoc2,642 bytes__benchmarks__/evaluator-tampering.mddoc1,770 bytes__benchmarks__/no-metric.mddoc893 bytes__benchmarks__/with-metric.mddoc1,354 bytes
Read SKILL.md
# /experiment — Metric-Driven Optimization Loop
## Identity
Coordinate bounded metric-driven experiments in isolated checkouts, retaining
candidates locally until the declared verification and independent review pass.
## Orientation
### When to Use
- When you want to optimize a measurable metric (bundle size, error count, test coverage, FPS)
- When you have a clear hypothesis but aren't sure which of several approaches wins
- When manual A/B testing would be too slow or error-proneView the complete source on GitHubfleet
When your agent uses it
Parallel campaign orchestrator. Runs multiple campaigns in coordinated waves within a single session. Spawns 2-3 agents per wave in isolated worktrees, collects discoveries, shares context between waves. Use when work decomposes into 3+ independent streams that can run simultaneously.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
5,773 tokensWhen the skill is activated
Reference documents
793 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- Fleet Session File Format
- Scope Overlap Prevention
- Budget Management
- Quality Gates
- Agent Timeouts
- Shared State Merge Strategies
- Consistency Voting (High-Stakes Decisions)
- Coordination Safety
- Fringe Cases
- Speculative Mode
- Quick Mode
- Teams Mode (experimental)
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/compress-discovery.cjs../../scripts/discovery-write.cjs../../scripts/evidence-validate.js../../scripts/evidence-validate.js../../scripts/fleet-steward.js../../scripts/fleet-steward.js../../scripts/map-index.js../../scripts/map-index.js../../scripts/momentum-read.cjs../../scripts/momentum-synthesize.cjs../../scripts/momentum-watch-start.cjs../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js../../scripts/sandbox-provider.js../../scripts/sandbox-provider.js../../scripts/telemetry-log.cjs
Files
../../scripts/compress-discovery.cjsruns1,449 bytes../../scripts/discovery-write.cjsruns1,246 bytes../../scripts/evidence-validate.jsruns3,041 bytes../../scripts/evidence-validate.jsruns3,041 bytes../../scripts/fleet-steward.jsruns14,615 bytes../../scripts/fleet-steward.jsruns14,615 bytes../../scripts/map-index.jsruns5,534 bytes../../scripts/map-index.jsruns5,534 bytes../../scripts/momentum-read.cjsruns864 bytes../../scripts/momentum-synthesize.cjsruns1,383 bytes../../scripts/momentum-watch-start.cjsruns1,405 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/sandbox-provider.jsruns3,348 bytes../../scripts/sandbox-provider.jsruns3,348 bytes../../scripts/telemetry-log.cjsruns1,890 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytesSKILL.mdcore25,368 bytes__benchmarks__/no-fleet-dir.mddoc1,082 bytes__benchmarks__/parallel-wave-execution.mddoc1,087 bytes__benchmarks__/teams-pilot.mddoc1,197 bytes
Read SKILL.md
# /fleet — Parallel Coordinator
Use for 3+ independent work streams that can run simultaneously in isolated worktrees. Do NOT use for single-file scope, linear work, or when a marshal or skill suffices.
## Orientation
**Use when:** Running 2+ independent work streams in parallel — tasks with non-overlapping file scopes that can execute simultaneously.
**Don't use when:** Work must execute sequentially or accumulate findings across phases (use `/archon`), a single orchestrated session is enough (use `/marshal`), or the task is simple enough for a bare skill.
## Commands
| Command | Behavior |
|---|---|View the complete source on GitHubgrill
When your agent uses it
Relentless one-question-at-a-time interview that sharpens a vague plan or design into shared understanding before any build. The elicitation engine other planning skills call instead of inventing their own interview. Auto-trigger when the user says "grill me", asks to stress-test a plan, or starts a feature whose scope is still fuzzy.
What it loads into context
Frontmatter
135 tokensAlways available to the agent
SKILL.md
1,153 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore4,919 bytes
Read SKILL.md
# Identity
You are the elicitation engine. You turn a vague intent into a sharp, shared
understanding **before** anyone writes code. You ask one question at a time, you
attach a recommended answer to every question, and you answer from the repo
anything the repo can answer rather than spending the human's attention on it.
This is a **discipline**, not an orchestrator. It never drives a build. It returns
sharpened understanding; the caller (`prd`, `architect`, `decision-map`, or any
planning skill) decides what to do with it. Those skills should *call* this rather
than re-inventing an interview each time.
## Orientation
View the complete source on GitHubhouseclean
When your agent uses it
Cross-drive storage audit and cleanup. Surveys all drives, finds orphaned git worktrees, large AI tool caches (.ollama, .gemini, .cursor, npm, pip), and buildable artifacts (node_modules, .venv). Produces a prioritized action plan with specific migration commands. Use when disk space is low or worktrees need cleanup; do NOT use for project structure issues (use /organize instead).
What it loads into context
Frontmatter
214 tokensAlways available to the agent
SKILL.md
2,402 tokensWhen the skill is activated
Reference documents
570 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Invocation Forms
- Protocol
- Fringe Cases
- Citadel Infrastructure Integration
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytesSKILL.mdcore9,024 bytes__benchmarks__/stale-worktree-cleanup.mddoc2,444 bytes
Read SKILL.md
# /houseclean — Storage Audit and Cleanup
Use when disk space is low, AI tool caches are bloated, or worktrees need cleanup.
Do NOT use for project structure issues (use `/organize`) or pre-merge worktree review (use `/merge-review`).
## Orientation
**Use when:** cross-drive storage audit -- finds orphaned repos, stale branches, and large directories across all drives.
**Don't use when:** auditing project infrastructure only (use /infra-audit); cleaning a specific directory (use Bash directly).
## Invocation Forms
```
/houseclean # Full audit — all phasesView the complete source on GitHubimprove
When your agent uses it
Autonomous quality improvement loop. Scores a target against a rubric, selects the highest-leverage axis, attacks it, verifies, documents, and loops. No pre-planning between iterations — each loop re-scores from scratch.
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
4,228 tokensWhen the skill is activated
Reference documents
459 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Invocation
- Campaign Mode
- Protocol
- Fringe Cases
- Quality Gates
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/citadel-config.js../../scripts/dashboard-server.js../../scripts/generate-fixtures.js../../scripts/generate-fixtures.js../../scripts/noop-ablate.js../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/watch.js
Files
../../scripts/citadel-config.jsruns17,803 bytes../../scripts/dashboard-server.jsruns39,674 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/noop-ablate.jsruns12,545 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/watch.jsruns20,118 bytesSKILL.mdcore17,091 bytes__benchmarks__/no-rubric.mddoc833 bytes__benchmarks__/score-only.mddoc940 bytes
Read SKILL.md
# /improve — Autonomous Quality Engine
## Orientation
**Use when:** Scoring a target against a rubric and iteratively improving it. Rubric required at `.planning/rubrics/{target}.md` (Phase 0 creates one if missing).
**Don't use when:** Refactoring without a rubric (use `/refactor`), one-time code review (use `/review`), or debugging a specific bug (use `/systematic-debugging`).
## Invocation
```
/improve {target} # Loop until plateau or all axes >= 8.0
/improve {target} --n=3 # Run exactly N loops then stop
/improve {target} --axis={name} # Force-attack a specific axis (skips scoring)View the complete source on GitHubinfra-audit
When your agent uses it
Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
2,080 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore8,220 bytesSKILL.mdcore8,220 bytes
Read SKILL.md
# /infra-audit -- Infrastructure Auditor
## When to Use
- Before adding a new database, cache, or queue to a project
- When onboarding to an unfamiliar codebase and need to understand its infra
- Before planning a workspace campaign that spans multiple services
- When someone asks "what systems does this project talk to?"
**Do not use when:**
- The user already knows the infra and just wants to wire something up (use `/architect`)
- The question is about code architecture, not infrastructure (use `/research`)
## ProtocolView the complete source on GitHublearn
When your agent uses it
Knowledge compiler. Extracts patterns, decisions, and anti-patterns from completed campaigns and evolve cycles, then compiles them into structured wiki pages that integrate with existing knowledge rather than appending isolated files. Implements flush→compile→lint pipeline. Auto-triggered by /postmortem and /evolve Phase 6.
What it loads into context
Frontmatter
138 tokensAlways available to the agent
SKILL.md
3,220 tokensWhen the skill is activated
Reference documents
420 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Invocation Forms
- Inputs
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../hooks_src/doc-sync.js../../scripts/memory-compile.js../../scripts/memory-compile.js
Files
../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../hooks_src/doc-sync.jsruns10,090 bytes../../scripts/memory-compile.jsruns3,694 bytes../../scripts/memory-compile.jsruns3,694 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytesSKILL.mdcore13,585 bytes__benchmarks__/campaign-no-postmortem.mddoc929 bytes__benchmarks__/no-completed-campaigns.mddoc816 bytes
Read SKILL.md
# /learn — Knowledge Compiler
## Orientation
**Use when:** You have a completed campaign or evolve cycle and want to compile
its findings into the project's growing knowledge wiki — so future sessions
start smarter, not from scratch.
**Don't use when:** You want a structured incident analysis first (use `/postmortem`
— run it before `/learn`); you haven't finished any campaigns (nothing to compile);
you want a context transfer only (use `/session-handoff`).
**Key difference from appending:** `/learn` doesn't create isolated per-campaign
files. It integrates new findings into existing wiki pages — updating evidenceView the complete source on GitHublive-preview
When your agent uses it
Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
1,558 tokensWhen the skill is activated
Reference documents
471 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- When to Use
- Protocol
- Integration with Archon
- What This Prevents
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/codex-app-artifacts.js
Files
../../scripts/codex-app-artifacts.jsruns1,634 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytesSKILL.mdcore6,525 bytes__benchmarks__/no-server.mddoc989 bytes__benchmarks__/visual-verify-pass.mddoc1,020 bytes
Read SKILL.md
# /live-preview — Build-Verify-Fix Loop
## Prerequisites
This skill requires a screenshot tool. Supported:
- **Playwright** (recommended): `npx playwright screenshot [url] [output.png]`
- **Puppeteer**: via a small script
- **Any tool that takes a URL and produces a screenshot**
If no screenshot tool is available, this skill will tell you what to install and exit.
## When to Use
- Any time .tsx, .jsx, .vue, .svelte, or .html files are modifiedView the complete source on GitHubloop
When your agent uses it
Bounded foreground repetition for the current session. Creates a loop contract, runs or coordinates an action plus verifier up to a declared attempt limit, and records evidence under .planning/loops/. Use for repeat-until-pass work that is too small for daemon and not time-based scheduling.
What it loads into context
Frontmatter
132 tokensAlways available to the agent
SKILL.md
1,400 tokensWhen the skill is activated
Reference documents
334 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/loop-runner.js../../scripts/loop-runner.js../../scripts/loops.js../../scripts/loops.js../../scripts/loops.js../../scripts/operating-proof.js../../scripts/operating-proof.js
Files
../../scripts/loop-runner.jsruns3,627 bytes../../scripts/loop-runner.jsruns3,627 bytes../../scripts/loops.jsruns11,905 bytes../../scripts/loops.jsruns11,905 bytes../../scripts/loops.jsruns11,905 bytes../../scripts/operating-proof.jsruns11,198 bytes../../scripts/operating-proof.jsruns11,198 bytesSKILL.mdcore5,736 bytesSKILL.mdcore5,736 bytesSKILL.mdcore5,736 bytesSKILL.mdcore5,736 bytesSKILL.mdcore5,736 bytes__benchmarks__/foreground-verify.mddoc848 bytes__benchmarks__/missing-verifier.mddoc425 bytes
Read SKILL.md
# /loop -- Bounded Foreground Loop
## Orientation
**Use when:** the user wants a visible repeat-until-pass cycle inside the
current session, such as "loop until lint passes" or "try this up to three
times and stop if tests still fail."
**Don't use when:** the work should run unattended across sessions (`/daemon`),
on a clock (`/schedule`), on file changes (`/watch`), or as a metric-driven
optimization experiment (`/experiment`).
## Commands
View the complete source on GitHubmap
When your agent uses it
Structural codebase index generator. Builds a compact JSON map of files, exports, imports, dependency graph, and roles. Queryable by keyword. Injected into fleet agents as context slices to reduce token usage on code navigation.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
1,697 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- Fleet Integration
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Scripts executed separately
../../scripts/map-index.js../../scripts/map-index.js
Files
../../scripts/map-index.jsruns5,534 bytes../../scripts/map-index.jsruns5,534 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytesSKILL.mdcore7,127 bytes
Read SKILL.md
# /map -- Codebase Intelligence
## Orientation
Use `/map` when:
- Starting work on an unfamiliar codebase (build the index first)
- A fleet or archon campaign needs agents to know "what files matter for X"
- You want a quick structural overview (stats, roles, dependency graph)
- You need to find files related to a keyword without exploratory reads
Do not use `/map` for:
- Reading file contents (use Read)
- Searching for string patterns inside files (use Grep)
- Single-file edits where you already know the pathView the complete source on GitHubmarshal
When your agent uses it
Meta-orchestrator that takes any direction — broad, specific, or vague — and autonomously chains skills and context into actionable work. Gathers context from codebase, docs, and memory. Only asks the user when it genuinely cannot proceed. Single-session orchestrator.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
1,357 tokensWhen the skill is activated
Reference documents
444 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- Agent Timeouts
- Fringe Cases
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore5,863 bytes__benchmarks__/audit-and-report.mddoc999 bytes__benchmarks__/vague-direction.mddoc948 bytes
Read SKILL.md
# /marshal — Session Commander
## Orientation
Use Marshal when the task is:
- Multi-step but bounded (completable in one session)
- Needs investigation before action
- Spans multiple skills but doesn't need campaign persistence
- Too complex for a single skill but doesn't need Archon/Fleet
**Don't use when:** the task spans multiple sessions (use /archon); work decomposes into 3+ parallel streams (use /fleet); you only need research with no action (use /research).
- Parallel execution (use Fleet)
## CommandsView the complete source on GitHubmerge-review
When your agent uses it
Reviews pending fleet worktree merges before they're accepted. Reads the merge-check queue, detects file-level conflicts between branches, proposes a safe merge order, and surfaces reconciliation plans for overlapping changes.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
1,596 tokensWhen the skill is activated
Reference documents
205 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- When to Route Here
- Invocation Forms
- Protocol
- Fringe Cases
- Integration Points
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore6,695 bytes__benchmarks__/empty-queue.mddoc846 bytes
Read SKILL.md
# /merge-review — Fleet Merge Arbitration
## Orientation
**Use when:** reviewing pending fleet worktree merges before accepting them into the main branch.
**Don't use when:** reviewing general code quality (use /review); checking CI status before merging (use /pr-watch).
## When to Route Here
- "check merges"
- "any conflicts"
- "what do the fleet agents want to merge"
- "review the pending branches"
- "is it safe to merge fleet output"View the complete source on GitHuborganize
When your agent uses it
Repository structure only: directory layout, file placement, naming conventions, and where-does-this-belong decisions. Detects the project's convention, audits files against it, and executes move plans with import-path updates. Never changes code inside files beyond the import updates a move forces; in-file restructuring is /refactor.
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
1,588 tokensWhen the skill is activated
Reference documents
346 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Boundary with /refactor
- Commands
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore6,763 bytesSKILL.mdcore6,763 bytesSKILL.mdcore6,763 bytesSKILL.mdcore6,763 bytes__benchmarks__/misplaced-files-move-plan.mddoc1,550 bytes
Read SKILL.md
# /organize -- Repository Structure
## Orientation
**Use when:** Deciding where a file belongs, auditing file placement against the project's conventions, running a naming-convention sweep, or moving files so the tree matches the declared layout.
**Don't use when:** You want a structural map of code relationships (use `/map`), you want to change code inside files (use `/refactor`), you need disk or artifact cleanup (use `/houseclean`), or you need a single known move executed (use `/refactor move`).
## Boundary with /refactor
/organize changes where files live and what they are named. Changing code structure within files (extract, inline, split functions or components, rename symbols) is /refactor. The only in-file edits /organize makes are import-path updates forced by a move or rename. If an audit reveals a file that should be split or merged, recommend /refactor; do not do it here.
## Commands
View the complete source on GitHubpostmortem
When your agent uses it
Auto-generates a structured postmortem from a completed campaign. Reads the campaign file, telemetry logs, and feature ledger. Produces a documented analysis of what broke, what the safety systems caught, and what patterns emerged. Can also be invoked manually for any incident.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
1,635 tokensWhen the skill is activated
Reference documents
392 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- When to Use
- Inputs
- Protocol
- What /postmortem Does NOT Do
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore6,852 bytes__benchmarks__/no-campaign.mddoc783 bytes__benchmarks__/with-completed.mddoc854 bytes
Read SKILL.md
# /postmortem — Campaign Postmortem Generator
## Orientation
**Use when:** A campaign just completed and you want a structured analysis of what broke, what safety systems caught, and what patterns emerged. Also for ad-hoc incident analysis from recent git history.
**Don't use when:** You want to preserve session context for the next conversation (use `/session-handoff`), extract reusable patterns from findings into the knowledge base (use `/learn`), or score and improve quality iteratively (use `/improve`).
## When to Use
- After any Archon campaign completes (Archon should suggest it)
- After a difficult debugging session
- When the user says "what just happened" or "what broke"
- When /do routes "postmortem", "retro", "what broke", "what happened"View the complete source on GitHubpr-watch
When your agent uses it
Local PR watcher. Monitors CI status, automatically fixes failing checks by reading failure logs and applying targeted fixes, then optionally merges when all checks pass. Local CLI analog to Claude Code's cloud auto-fix feature.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
2,329 tokensWhen the skill is activated
Reference documents
933 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Cloud Alternative
- Inputs
- Execution Protocol
- Circuit Breaker Rules
- Contextual Gates
- Quality Gates
- Anti-Patterns — Do NOT
- Fringe Cases
- Exit Protocol
Scripts executed separately
../../scripts/codex-automation.js../../scripts/codex-automation.js../../scripts/codex-pr-review.js../../scripts/codex-review-fetch.js
Files
../../scripts/codex-automation.jsruns1,324 bytes../../scripts/codex-automation.jsruns1,324 bytes../../scripts/codex-pr-review.jsruns1,788 bytes../../scripts/codex-review-fetch.jsruns4,268 bytesSKILL.mdcore9,195 bytesSKILL.mdcore9,195 bytesSKILL.mdcore9,195 bytes__benchmarks__/ci-watch-and-fix.mddoc1,059 bytes__benchmarks__/gh-not-available.mddoc983 bytes__benchmarks__/no-gh-auth.mddoc912 bytes__benchmarks__/no-pr-number.mddoc734 bytes
Read SKILL.md
# /pr-watch — Local PR Auto-fix
You are the PR watcher. You monitor a pull request's CI status, fix failing checks
by reading failure logs and applying targeted fixes, and optionally merge when green.
This is the local CLI analog to Claude Code's cloud auto-fix feature. Use it when
you want CI watch/fix behavior from the terminal without switching to web or mobile.
## When to Use
**Don't use when:** monitoring local file changes (use /watch); reviewing code quality (use /review); triaging multiple issues at once (use /triage).
- `/pr-watch` — watch the PR for the current branch
- `/pr-watch 42` — watch PR #42 specificallyView the complete source on GitHubprd
When your agent uses it
Generates a Product Requirements Document from a natural language app description. Asks clarifying questions, researches similar apps, defines scope, stack, architecture, and produces a structured PRD that Archon can decompose into a campaign.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
1,591 tokensWhen the skill is activated
Reference documents
399 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Mode Detection
- Protocol
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
- Stack Selection Principles
Files
SKILL.mdcore6,717 bytesSKILL.mdcore6,717 bytesSKILL.mdcore6,717 bytes__benchmarks__/specific-feature.mddoc838 bytes__benchmarks__/vague-idea.mddoc829 bytes
Read SKILL.md
# /prd — Product Requirements Document Generator
## When to Use
**Don't use when:** architecture is already defined and you need implementation (use /architect then /archon); adding a small feature to an existing app (use /marshal directly).
- User describes an app or feature to build (greenfield or feature mode)
- Before any Archon campaign for a new project or feature
## Mode Detection
Before starting, determine the mode:
**Greenfield mode**: No existing source files, or user explicitly says "new app" / "from scratch."View the complete source on GitHubqa
When your agent uses it
Browser-based QA verification. Launches a real browser, navigates the app, clicks buttons, fills forms, and tests user flows. Works as a standalone skill or as a phase end condition in campaigns. Requires Playwright (optional dependency, graceful skip if not installed).
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
2,002 tokensWhen the skill is activated
Reference documents
392 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Dependency: Playwright
- When to Use
- Protocol
- Cookie and Auth Support
- Fallback: No Playwright
- What /qa Does NOT Do
- Quality Gates
- Fringe Cases
- Codex App Artifact Manifest
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/codex-app-artifacts.js
Files
../../scripts/codex-app-artifacts.jsruns1,634 bytesSKILL.mdcore8,335 bytesSKILL.mdcore8,335 bytesSKILL.mdcore8,335 bytesSKILL.mdcore8,335 bytesSKILL.mdcore8,335 bytes__benchmarks__/no-playwright.mddoc797 bytes__benchmarks__/no-server.mddoc826 bytes
Read SKILL.md
# /qa — Browser QA Verification
## Dependency: Playwright
/qa requires Playwright. It's an optional dependency.
**If Playwright is installed:** full browser QA works.
**If Playwright is NOT installed:** the skill offers to install it, or falls
back to /live-preview (screenshot-only verification).
Detection:
```bash
npx playwright --version 2>/dev/null
```View the complete source on GitHubrefactor
When your agent uses it
Safe multi-file refactoring with automatic rollback. Establishes a type/test baseline, plans all changes, executes file-by-file, and verifies zero regressions. Reverts if verification fails after two fix attempts. Handles renames, extracts, moves, splits, merges, and inlines.
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
1,941 tokensWhen the skill is activated
Reference documents
369 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Commands
- Protocol
- Fringe Cases
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js
Files
../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytesSKILL.mdcore8,263 bytesSKILL.mdcore8,263 bytes__benchmarks__/no-target.mddoc714 bytes__benchmarks__/specific-refactor.mddoc774 bytes
Read SKILL.md
# /refactor — Safe Multi-File Refactoring
## Orientation
Use `/refactor` when you need to:
- Rename a symbol, file, or module across the codebase
- Extract a function, component, hook, class, or module from existing code
- Inline a function or module back into its callers
- Move a file or set of files to a new location
- Split a large file into smaller pieces
- Merge related files into one
- Change a function signature and update all call sites
**Don't use when:** debugging a specific bug (use /systematic-debugging); adding new features (use /marshal or /scaffold); deleting dead code (use /marshal for a targeted cleanup).View the complete source on GitHubresearch
When your agent uses it
Focused research investigations. Converts questions into structured findings with confidence levels and source citations. Single agent by default; with --parallel (or when the question decomposes into 3+ independent angles) it spawns scout agents whose findings are compressed into a unified brief. Does not make decisions; produces information that informs the next step.
What it loads into context
Frontmatter
151 tokensAlways available to the agent
SKILL.md
3,057 tokensWhen the skill is activated
Reference documents
1,056 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Modes
- Protocol (Single Mode)
- Parallel Mode (--parallel)
- What /research Does NOT Do
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/operation-graph-effects.js../../scripts/operation-graph-runner.js../../scripts/telemetry-log.cjs
Files
../../scripts/operation-graph-effects.jsruns6,966 bytes../../scripts/operation-graph-runner.jsruns9,316 bytes../../scripts/telemetry-log.cjsruns1,890 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytesSKILL.mdcore13,396 bytes__benchmarks__/external-library-research.mddoc1,044 bytes__benchmarks__/no-web-results.mddoc1,155 bytes__benchmarks__/parallel-decompose-angles.mddoc1,279 bytes__benchmarks__/parallel-no-research-dir.mddoc1,147 bytes
Read SKILL.md
# /research — Focused Investigation
## When to Use
- Evaluating whether a dependency has a newer version or has been superseded
- Finding community best practices for a specific technical problem
- Reading official documentation for an API or library
- Investigating how other projects solve a similar problem
- Checking if a pattern used in the codebase has known issues
- Any time you need external information before making a decision
**Don't use when:** you need to act on findings immediately (use /marshal which calls /research internally).
## ModesView the complete source on GitHubreview
When your agent uses it
5-pass structured code review — correctness, security, performance, readability, consistency
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
1,924 tokensWhen the skill is activated
Reference documents
388 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Step 1 — Resolve scope
- Step 2 — Load project conventions
- Step 3 — Execute 5 passes
- Step 4 — Format findings
- Step 5 — Produce verdict
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore8,317 bytesSKILL.mdcore8,317 bytesSKILL.mdcore8,317 bytes__benchmarks__/no-files-changed.mddoc759 bytes__benchmarks__/specific-file.mddoc815 bytes
Read SKILL.md
## Orientation
**Use when:** reviewing code for correctness, security, performance, and readability.
**Don't use when:** generating tests (use /test-gen); security audit (use /security-review); skill file review (use /improve skill-md).
# Identity
You are a senior code reviewer executing a structured 5-pass review. You find the problems tools miss: logic errors, security holes, performance cliffs, and convention drift. Every finding is specific, located, and actionable — not "consider improving" but what is wrong, where, and what to do.
# Orientation
**Input**: A review target — one of:
- A file path (`/review src/auth/session.ts`)
- A directory (`/review src/auth/`)View the complete source on GitHubscaffold
When your agent uses it
Project-aware file generation. Reads existing codebase conventions (naming, structure, imports, exports, test patterns) then generates new files that match exactly. Wires generated files into the project's registration points.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
1,964 tokensWhen the skill is activated
Reference documents
460 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore8,462 bytes__benchmarks__/component-from-exemplar.mddoc1,053 bytes__benchmarks__/existing-dir.mddoc983 bytes
Read SKILL.md
# /scaffold — Project-Aware File Generator
## Orientation
**Use when:** Creating a new component, module, service, route, hook, domain, or utility with existing examples in the project.
**Do NOT use when:** The file has no precedent (use `/marshal` for unconstrained generation), you're modifying existing files (use `/refactor`), or the project has no conventions yet.
**Needs:** target type, name, and optional description.
## Protocol
### Step 1: IDENTIFY THE TARGET
View the complete source on GitHubschedule
When your agent uses it
Manages recurring and one-off scheduled tasks. Session-scoped scheduling via CronCreate/CronDelete/CronList. Documents the cloud path for tasks that need to survive machine sleep or network drops.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
1,984 tokensWhen the skill is activated
Reference documents
2,081 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Default execution path (READ FIRST)
- When to Route Here
- Protocol
- Session-Scoped vs. Cloud-Persistent Scheduling
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/codex-automation.js../../scripts/local-schedule.js../../scripts/local-schedule.js
Files
../../docs/ISSUE-278-SECURITY.mddoc4,476 bytes../../docs/ROUTINE-QUOTA.mddoc3,231 bytes../../scripts/codex-automation.jsruns1,324 bytes../../scripts/local-schedule.jsruns10,022 bytes../../scripts/local-schedule.jsruns10,022 bytesSKILL.mdcore8,309 bytesSKILL.mdcore8,309 bytesSKILL.mdcore8,309 bytes__benchmarks__/list-empty.mddoc716 bytes__benchmarks__/natural-language-interval.mddoc1,099 bytes
Read SKILL.md
# /schedule — Task Scheduling
## Orientation
**Use when:** scheduling a recurring or one-off remote agent run (cron-style, outside the current session).
**Don't use when:** repeating work within the current session (use /loop); continuous unattended campaigns (use /daemon).
## Default execution path (READ FIRST)
**`/schedule add` does NOT call `CronCreate` by default.** It shells out to
`node scripts/local-schedule.js` which installs a native OS entry (Windows
Task Scheduler or Unix cron). Only pass `--remote` to use Anthropic's routine
system, and only after explicit user confirmation.
View the complete source on GitHubsession-handoff
When your agent uses it
Synthesizes the current session into a structured HANDOFF block for context transfer between sessions. Captures what was built, decisions made, and unresolved items.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
917 tokensWhen the skill is activated
Reference documents
395 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Identity
- Orientation
- Protocol
- Output Format
- Quality Gates
- Fringe Cases
- Contextual Gates
- Exit Protocol
Files
SKILL.mdcore4,235 bytes__benchmarks__/mid-campaign.mddoc802 bytes__benchmarks__/no-active-work.mddoc806 bytes
Read SKILL.md
# /session-handoff — Context Transfer
## Identity
You summarize the current task accurately and economically so another session can continue it.
## Orientation
Use when ending a session and wanting to preserve context for the next one.
Also used automatically by orchestrators (Archon, Fleet) at session boundaries.
**Don't use when:** You want to extract reusable patterns from a completed campaign (use `/learn`), write a structured postmortem for a failed campaign (use `/postmortem`), or produce documentation rather than a context transfer.
## ProtocolView the complete source on GitHubsetup
When your agent uses it
First-run experience for the harness. Three modes: Recommended (guided, ~3 min), Full Tour (guided + skill walkthrough, ~8 min), and Express (zero questions, ~30 sec). Installs hooks first, detects stack, configures harness.json, runs a live demo on real code, and prints a reference card.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
4,489 tokensWhen the skill is activated
Reference documents
403 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/adopt.js../../scripts/adopt.js../../scripts/adopt.js../../scripts/adopt.js../../scripts/adopt.js../../scripts/adopt.js../../scripts/adopt.js../../scripts/bootstrap-project-guidance.js../../scripts/citadel-config.js../../scripts/generate-routing.js../../scripts/install-hooks.js../../scripts/repository-memory.js
Files
../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/adopt.jsruns19,403 bytes../../scripts/bootstrap-project-guidance.jsruns1,903 bytes../../scripts/citadel-config.jsruns17,803 bytes../../scripts/generate-routing.jsruns11,000 bytes../../scripts/install-hooks.jsruns4,287 bytes../../scripts/repository-memory.jsruns5,751 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytesSKILL.mdcore18,183 bytes__benchmarks__/already-configured.mddoc851 bytes__benchmarks__/fresh-project.mddoc847 bytes
Read SKILL.md
# /do setup — First-Run Experience
Configures the harness for a specific project: installs hooks, detects stack, writes harness.json, and optionally demos the system on real code. Flag: `/do setup --express` skips mode selection and runs Express directly. Reference tables and layouts: docs/SETUP_REFERENCE.md.
## Orientation
**Use when:** first-run configuration of Citadel on a new project -- installs hooks, generates harness.json, scaffolds .planning/.
**Don't use when:** harness is already configured and you want to verify it (use /verify); adding a single skill to an existing project (copy SKILL.md manually).
## Protocol
### Step -1: ARCHIVE DETECTION (all modes, before anything else)
Run `ls docs/citadel/ 2>/dev/null`. If `docs/citadel/` exists and contains `.md` files with `citadel-archive: true` in frontmatter, extract the `exported-at` date and prompt once:View the complete source on GitHubsystematic-debugging
When your agent uses it
4-phase root cause analysis: observe, hypothesize, verify, fix. Enforces investigation before any code changes. Emergency stop after 2 failed fixes. Prevents shotgun debugging and fix cascades.
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
1,276 tokensWhen the skill is activated
Reference documents
384 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Emergency Stop Rule
- What This Skill Prevents
- Contextual Gates
- Quality Gates
- Fringe Cases
- Exit Protocol
Files
SKILL.mdcore5,449 bytesSKILL.mdcore5,449 bytes__benchmarks__/no-error-info.mddoc771 bytes__benchmarks__/with-error.mddoc907 bytes
Read SKILL.md
# /systematic-debugging — Root Cause Before Fix
## Orientation
**Use when:** root cause is unknown and premature fixes keep failing -- enforces observe -> hypothesize -> verify before touching code.
**Don't use when:** root cause is already known (use /marshal to implement the fix); the bug is shallow and the stack trace is enough (use /do).
## Protocol
### Phase 1: OBSERVATION & REPRODUCTION
1. Read the error message, stack trace, or bug description
2. Reproduce the issue:
- If it's a type error: run typecheck and read the full errorView the complete source on GitHubtelemetry
When your agent uses it
Unified telemetry hub. Shows current session cost, today's spend, all-time totals, hook activity, trust level, and a directory of every telemetry command available. Also the control surface to toggle telemetry on/off and tune thresholds. Single entry point for anyone asking "what does this cost" or "what telemetry does Citadel have".
What it loads into context
Frontmatter
196 tokensAlways available to the agent
SKILL.md
3,010 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Commands
- Protocol
- What Telemetry Covers
- OTLP Export
- Quality Gates
- Fringe Cases
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../scripts/session-tokens.js../../scripts/session-tokens.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/telemetry-otlp-export.js../../scripts/test-telemetry-otlp.js../../scripts/test-telemetry-otlp.js../../scripts/verify-telemetry-integrity.js../../scripts/verify-telemetry-integrity.js
Files
../../scripts/session-tokens.jsruns4,136 bytes../../scripts/session-tokens.jsruns4,136 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/telemetry-otlp-export.jsruns15,130 bytes../../scripts/test-telemetry-otlp.jsruns15,318 bytes../../scripts/test-telemetry-otlp.jsruns15,318 bytes../../scripts/verify-telemetry-integrity.jsruns3,141 bytes../../scripts/verify-telemetry-integrity.jsruns3,141 bytesSKILL.mdcore11,817 bytesSKILL.mdcore11,817 bytesSKILL.mdcore11,817 bytesSKILL.mdcore11,817 bytesSKILL.mdcore11,817 bytes
Read SKILL.md
# /telemetry — Telemetry Hub
## When to Use
- "What does Citadel track?" / "What telemetry does it have?"
- "What did this session cost?" / "How much have I spent?"
- "How do I turn off the cost alerts?" / "Can I disable telemetry?"
- "Show me hook activity" / "What hooks fired?"
- "What trust level am I at?"
- Directly: `/telemetry`
Routed here by `/do` for: "telemetry", "what did this cost", "session stats",
"session cost", "how much did that cost", "what hooks fired", "trust level",
"show me telemetry", "cost breakdown", "spending".View the complete source on GitHubtest-gen
When your agent uses it
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
1,377 tokensWhen the skill is activated
Reference documents
381 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Step 1 — Detect test framework
- Step 2 — Analyze the target
- Step 3 — Generate tests
- Step 4 — Write the test file
- Step 5 — Run and verify
- Step 6 — Coverage check
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/run-with-timeout.js../../scripts/run-with-timeout.js
Files
../../scripts/run-with-timeout.jsruns5,620 bytes../../scripts/run-with-timeout.jsruns5,620 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytesSKILL.mdcore6,142 bytes__benchmarks__/no-source.mddoc689 bytes__benchmarks__/specific-file.mddoc864 bytes
Read SKILL.md
# Identity
You write tests that run on the first try. Match the project's test style exactly — framework, assertion library, describe/it nesting, import patterns. Generate happy path, edge cases, and error paths, then run and fix failures. Never ship a red suite. Mock only external services, I/O, and time.
## Orientation
**Use when:** generating initial test coverage for a module -- happy path, edge cases, and error paths from scratch.
**Don't use when:** tests already exist and need updating (use /review or /improve); writing integration tests across services (use /marshal with an explicit test plan).
# Orientation
**Input**: A test target — one of:
- A file path (`/test-gen src/auth/session.ts`)
- A specific function (`/test-gen src/auth/session.ts:validateToken`)View the complete source on GitHubtriage
When your agent uses it
GitHub issue and PR investigator. Pulls open issues/PRs, classifies them, searches the codebase for root cause or reviews contributed code, proposes fixes with file:line references, and optionally implements fixes. Use for investigating GitHub issues and reviewing PRs; do NOT use for general code review unrelated to GitHub issues.
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
2,807 tokensWhen the skill is activated
Reference documents
410 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Codex PR review integration
- Inputs
- Execution Protocol
- Label Taxonomy
- Auto-fix Handoff
- Contextual Gates
- Quality Gates
- Fringe Cases
- Anti-Patterns — Do NOT
- gh CLI Notes
- Exit Protocol
Scripts executed separately
../../scripts/codex-pr-review.js../../scripts/codex-review-fetch.js
Files
../../scripts/codex-pr-review.jsruns1,788 bytes../../scripts/codex-review-fetch.jsruns4,268 bytesSKILL.mdcore10,938 bytesSKILL.mdcore10,938 bytesSKILL.mdcore10,938 bytes__benchmarks__/no-gh-cli.mddoc805 bytes__benchmarks__/specific-issue.mddoc867 bytes
Read SKILL.md
# Triage — GitHub Issue & PR Investigator
## When to Use
**Don't use when:** fixing a specific already-diagnosed issue (use /marshal); monitoring a single PR's CI (use /pr-watch); reviewing code quality outside of GitHub issues (use /review).
- `/triage` — triage all open, unlabeled issues
- `/triage 10` — investigate issue #10 specifically
- `/triage pr 13` — review PR #13
- `/triage prs` — review all open PRs
- `/triage --batch` — pull all open issues, classify, investigate, report
- `/triage --stale` — find issues older than 14 days with no activity
- After the `issue-monitor` SessionStart hook reports new issues
View the complete source on GitHubunharness
When your agent uses it
Safely leave Citadel using the active adoption receipt. Produces a no-write, reviewable plan, preserves a portable archive, removes only exact owned material, and reports modified or externally registered surfaces as retained or unknown. Legacy installs must be imported before exact leave is claimed.
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
1,008 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Protocol
- Export-only compatibility
- Fringe Cases
- Quality gates
- Exit Protocol
Scripts executed separately
../../scripts/adopt.js../../scripts/unharness.js
Files
../../scripts/adopt.jsruns19,403 bytes../../scripts/unharness.jsruns10,772 bytesSKILL.mdcore4,535 bytesSKILL.mdcore4,535 bytesSKILL.mdcore4,535 bytesSKILL.mdcore4,535 bytesSKILL.mdcore4,535 bytesSKILL.mdcore4,535 bytes
Read SKILL.md
# /unharness - Receipt-owned exit from Citadel
## Orientation
Use this skill when the user wants Citadel removed from a project. Exit is a
two-step, receipt-owned operation. A plan never mutates the project. Apply
requires the exact saved plan and its confirmation token.
Do not infer ownership from familiar paths. Do not delete `.planning/`,
`.citadel/`, runtime settings, hooks, skills, or registrations merely because
they look Citadel-related.
## Protocol
View the complete source on GitHubverify
When your agent uses it
Self-test the Citadel hook pipeline from within a live session. Exercises real tool calls (Write, Edit, Bash, Read) and checks that hooks fired, telemetry accumulated, and no errors occurred. Reports HOOK HEALTH: PASS or HOOK HEALTH: FAIL with a per-hook breakdown.
What it loads into context
Frontmatter
131 tokensAlways available to the agent
SKILL.md
1,152 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Protocol
- Edge Cases
- What This Does NOT Test
- Quality Gates
- Contextual Gates
- Exit Protocol
Scripts executed separately
../../hooks_src/governance.js../../hooks_src/governance.js../../hooks_src/init-project.js../../hooks_src/init-project.js../../hooks_src/init-project.js../../scripts/citadel-config.js../../scripts/dashboard-server.js../../scripts/generate-fixtures.js../../scripts/generate-fixtures.js../../scripts/noop-ablate.js../../scripts/repository-memory.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/skill-bench.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/test-all.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/verify-hooks.js../../scripts/watch.js
Files
../../hooks_src/governance.jsruns2,031 bytes../../hooks_src/governance.jsruns2,031 bytes../../hooks_src/init-project.jsruns21,455 bytes../../hooks_src/init-project.jsruns21,455 bytes../../hooks_src/init-project.jsruns21,455 bytes../../scripts/citadel-config.jsruns17,803 bytes../../scripts/dashboard-server.jsruns39,674 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/generate-fixtures.jsruns4,213 bytes../../scripts/noop-ablate.jsruns12,545 bytes../../scripts/repository-memory.jsruns5,751 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/skill-bench.jsruns44,201 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/test-all.jsruns53,783 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/verify-hooks.jsruns50,084 bytes../../scripts/watch.jsruns20,118 bytesSKILL.mdcore4,569 bytes
Read SKILL.md
# /verify — Hook Pipeline Self-Test
Use this when:
- Hooks were recently updated and you want a live sanity check
- Something feels wrong (tools seem too slow, quality-gate not firing)
- After installing Citadel in a new project
## Protocol
### Step 1: Baseline
Read the current telemetry state:
```
.planning/telemetry/hook-timing.jsonl → count lines (baseline_timing)View the complete source on GitHubwatch
When your agent uses it
File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills. Poll-based via git diff against the last scan commit. Writes intake items for batch processing and routes marker actions through /do. Use for automatic reactions to file changes; do NOT use for one-off inspection or tasks needing human judgment per file.
What it loads into context
Frontmatter
167 tokensAlways available to the agent
SKILL.md
2,992 tokensWhen the skill is activated
Reference documents
538 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Default execution path (READ FIRST)
- Commands
- Protocol
- Integration Points
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore11,543 bytes__benchmarks__/marker-dedup-two-scans.mddoc2,175 bytes
Read SKILL.md
# /watch -- File Sentinel
Use when the user wants automatic reactions to file changes or marker comments (`@citadel:`).
Do NOT use for one-off file inspection or tasks that need human judgment per file.
## Orientation
**Use when:** running a file sentinel that triggers a skill or command automatically when watched paths change.
**Don't use when:** monitoring CI status on a PR (use /pr-watch); running a one-shot verification check (use /verify).
## Default execution path (READ FIRST)
**`/watch start` does NOT call `CronCreate` by default.** Only pass `--remote`
to use Anthropic's routine system, and only after explicit user confirmation.View the complete source on GitHubwiki
When your agent uses it
Markdown-first knowledge base where the LLM acts as librarian. Ingests raw sources, compiles and interlinks topic files, self-maintains an index. No vector DB or embeddings required -- uses LLM-native navigation over structured markdown up to ~400K words.
What it loads into context
Frontmatter
148 tokensAlways available to the agent
SKILL.md
1,496 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Orientation
- Directory Structure
- Commands
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Files
SKILL.mdcore6,064 bytesSKILL.mdcore6,064 bytesSKILL.mdcore6,064 bytesSKILL.mdcore6,064 bytesSKILL.mdcore6,064 bytesSKILL.mdcore6,064 bytes
Read SKILL.md
# /wiki -- LLM-Native Knowledge Base
## Orientation
**Use when:** building and querying a markdown-first knowledge base -- ingests raw notes, deduplicates, surfaces answers.
**Don't use when:** capturing session learnings into the evolve pipeline (use /learn); generating structured code documentation (use /doc-gen).
## Directory Structure
```text
wiki/
index.md # Master index
raw/ # Unprocessed sources (timestamped files)
topics/ # Compiled topic files (one per topic, interlinked)View the complete source on GitHubworkspace
When your agent uses it
Multi-repo campaign coordinator. Same lifecycle as fleet -- scope claims, discovery relay, wave-based execution -- but the unit of work is a repo, not a file. Coordinates campaigns across repositories with shared context.
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
1,768 tokensWhen the skill is activated
Reference documents
429 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Protocol
- Fringe Cases
- Contextual Gates
- Quality Gates
- Exit Protocol
Scripts executed separately
../../scripts/discovery-write.cjs../../scripts/momentum-read.cjs../../scripts/momentum-synthesize.cjs../../scripts/momentum-watch-start.cjs
Files
../../scripts/discovery-write.cjsruns1,246 bytes../../scripts/momentum-read.cjsruns864 bytes../../scripts/momentum-synthesize.cjsruns1,383 bytes../../scripts/momentum-watch-start.cjsruns1,405 bytesSKILL.mdcore7,509 bytesSKILL.mdcore7,509 bytesSKILL.mdcore7,509 bytesSKILL.mdcore7,509 bytesSKILL.mdcore7,509 bytesSKILL.mdcore7,509 bytes__benchmarks__/multi-repo-direction.mddoc1,102 bytes__benchmarks__/no-repos-configured.mddoc739 bytes
Read SKILL.md
# /workspace -- Multi-Repo Campaign Coordinator
## When to Use
- Adding infrastructure that spans repos (new database, shared service, API contract)
- Coordinating changes across a frontend repo, backend repo, and infra repo
- Breaking a monolith into services (each service becomes a repo-scoped campaign)
- Any task where changes in repo A depend on or inform changes in repo B
**Do not use when:**
- All work is in one repo (use `/fleet` or `/archon`)
- The repos are truly independent with no shared contracts (just run separate campaigns)
## ProtocolView the complete source on GitHubSkills included
- template-skill
- architect
- archon
- ascii-diagram
- autopilot
- cost
- create-app
- create-skill
- daemon
- dashboard
- decision-map
- deploy-steward
- design
- do
- doc-gen
- evolve
- experiment
- fleet
- grill
- houseclean
- improve
- infra-audit
- learn
- live-preview
- loop
- map
- marshal
- merge-review
- organize
- postmortem
- pr-watch
- prd
- qa
- refactor
- research
- review
- scaffold
- schedule
- session-handoff
- setup
- systematic-debugging
- telemetry
- test-gen
- triage
- unharness
- verify
- watch
- wiki
- workspace
Repository facts
- License
- MIT
- Created
- Mar 20, 2026
- Last pushed
- Nov 5, 2026
- Forks
- 84
- Open issues
- 0
- Project activity
- Active
Rank over the last 12 weeks
Now #946 · best #608 · down 214 in 30 days
- #932 on Nov 1
- #937 on Nov 2
- #942 on Nov 3
- #944 on Nov 4
- #945 on Nov 5
- #946 since Nov 6
38 earlier periods
- #628 on Aug 2
- #617 on Aug 7
- #613 from Aug 8 to Aug 9
- #631 on Aug 10
- #626 on Aug 11
- #621 on Aug 12
- #624 on Aug 13
- #624 on Aug 17
- #626 on Aug 19
- #623 on Aug 20
- #608 on Aug 22
- #648 on Aug 24
- #647 on Aug 27
- #622 on Aug 30
- #652 on Aug 31
- #665 on Sep 1
- #651 on Sep 2
- #647 on Sep 6
- #680 on Sep 8
- #669 on Sep 9
- #658 on Sep 11
- #664 on Sep 12
- #686 on Sep 14
- #675 on Sep 20
- #676 on Sep 24
- #674 on Oct 3
- #732 on Oct 7
- #776 on Oct 8
- #743 on Oct 9
- #726 on Oct 11
- #742 on Oct 17
- #775 on Oct 19
- #772 on Oct 22
- #897 on Oct 25
- #916 on Oct 28
- #922 on Oct 29
- #927 on Oct 30
- #929 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Changed on Nov 4, 2026
New signal: Dangerous shell operation
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 383 notes
hooks_src/circuit-breaker.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/complexity-check.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/complexity-check.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/config-change.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/cost-tracker.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/cwd-changed.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/elicitation.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/external-action-gate.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/external-action-gate.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/file-changed.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/governance.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/init-project.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/init-project.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/instructions-loaded.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/instructions-watch.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/intake-scanner.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/notification.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/organize-enforce.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/organize-enforce.js:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks_src/organize-enforce.js:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 7 dangerous shell commandsin 7 files: scripts/test-telemetry-otlp.js:57 scripts/verify-hooks.js:822 architect/SKILL.md:147 and 4 more
- 106 network referencesin 14 files: scripts/dashboard-server.js:750 scripts/test-deploy-steward.js:33 scripts/skill-bench.js:532 and 11 more
- No hidden or obfuscated text
- 1 instruction override signalin 1 file: setup/SKILL.md:91
- 333 executable scriptsin 93 files: scripts/test-all.js:1 scripts/run-with-timeout.js:1 hooks_src/organize-enforce.js:1 and 90 more
- 24 references to secretsin 5 files: hooks_src/protect-files.js:7 hooks_src/external-action-gate.js:9 scripts/verify-hooks.js:328 and 2 more
- No requests to vote in Hot
Show all 471 signals by file
.claude-plugin/plugin.json
- Network accessline 6
"name": "SethGammon" }, "homepage": "https://github.com/SethGammon/Citadel", - Network accessline 7
}, "homepage": "https://github.com/SethGammon/Citadel", "repository": "https://github.com/SethGammon/Citadel", - Network accessline 8
"homepage": "https://github.com/SethGammon/Citadel", - Network accessline 9
"repository": "https://github.com/SethGammon/Citadel",
hooks_src/circuit-breaker.js
hooks_src/complexity-check.js
hooks_src/config-change.js
hooks_src/cost-tracker.js
hooks_src/cwd-changed.js
hooks_src/doc-sync.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
hooks_src/elicitation.js
hooks_src/external-action-gate.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 151
[Credential-related source omitted]
hooks_src/file-changed.js
hooks_src/governance.js
hooks_src/init-project.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
hooks_src/instructions-loaded.js
hooks_src/instructions-watch.js
hooks_src/intake-scanner.js
hooks_src/notification.js
hooks_src/organize-enforce.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
hooks_src/permission-request.js
hooks_src/post-compact.js
hooks_src/post-edit.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
hooks_src/post-tool-batch.js
hooks_src/pre-compact.js
hooks_src/protect-files.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 7
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 150
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 179
[Credential-related source omitted] - Access to secretsline 182
[Credential-related source omitted] - Access to secretsline 183
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 198
[Credential-related source omitted] - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted]
hooks_src/quality-gate.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
hooks_src/restore-compact.js
hooks_src/session-end.js
hooks_src/stop-failure.js
hooks_src/subagent-start.js
hooks_src/subagent-stop.js
hooks_src/task-events.js
hooks_src/teammate-idle.js
hooks_src/user-prompt-expansion.js
hooks_src/user-prompt-submit.js
hooks_src/worktree-remove.js
hooks_src/worktree-setup.js
mcp-servers/citadel-state/index.js
- Executable scriptline 1
#!/usr/bin/env node
mcp-servers/codebase-memory/index.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/adopt.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node
scripts/bootstrap-project-guidance.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/campaign.js
scripts/citadel-config.js
scripts/codex-app-artifacts.js
scripts/codex-automation.js
scripts/codex-pr-review.js
scripts/codex-review-fetch.js
scripts/compress-discovery.cjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/continue-action.js
scripts/dashboard-server.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Network accessline 750
function expectedOrigin() { const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 750
function expectedOrigin() { const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 750
function expectedOrigin() { const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 750
function expectedOrigin() { const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 751
const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; } - Network accessline 751
const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; } - Network accessline 751
const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; } - Network accessline 751
const address = server.address(); return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; } - Network accessline 752
return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 752
return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 752
return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 752
return address && typeof address === 'object' ? `http://${BIND_HOST}:${address.port}` : null; - Network accessline 785
const server = http.createServer((req, res) => { const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 785
const server = http.createServer((req, res) => { const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 785
const server = http.createServer((req, res) => { const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 785
const server = http.createServer((req, res) => { const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 786
const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 786
const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 786
const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 786
const url = new URL(req.url, `http://${BIND_HOST}`); - Network accessline 980
}); server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 980
}); server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 980
}); server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 980
}); server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 981
server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; console.log(`Citadel dashboard: ${urlString} (project: ${options.projectRoot})`); - Network accessline 981
server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; console.log(`Citadel dashboard: ${urlString} (project: ${options.projectRoot})`); - Network accessline 981
server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; console.log(`Citadel dashboard: ${urlString} (project: ${options.projectRoot})`); - Network accessline 981
server.listen(options.port, BIND_HOST, () => { const urlString = `http://${BIND_HOST}:${options.port}/`; console.log(`Citadel dashboard: ${urlString} (project: ${options.projectRoot})`); - Network accessline 982
const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 982
const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 982
const urlString = `http://${BIND_HOST}:${options.port}/`; - Network accessline 982
const urlString = `http://${BIND_HOST}:${options.port}/`;
scripts/dashboard.js
scripts/deliver.js
scripts/deploy-steward.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Network accessline 65
' node scripts/deploy-steward.js --run', ' node scripts/deploy-steward.js --scan --run --deploy-command "npm run deploy"', ' node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run', - Network accessline 66
' node scripts/deploy-steward.js --scan --run --deploy-command "npm run deploy"', ' node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run', '', - Network accessline 67
' node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run',
scripts/discovery-write.cjs
scripts/evidence-validate.js
scripts/fixtures/ecosystem/anthropics-template-skill/provenance.json
- Network accessline 1
{ "schema_version": 1, "source_url": "https://github.com/anthropics/skills/blob/9d2f1ae187231d8199c64b5b762e1bdf2244733d/template/SKILL.md", - Network accessline 2
"schema_version": 1, "source_url": "https://github.com/anthropics/skills/blob/9d2f1ae187231d8199c64b5b762e1bdf2244733d/template/SKILL.md", "source_repository": "https://github.com/anthropics/skills", - Network accessline 3
"source_url": "https://github.com/anthropics/skills/blob/9d2f1ae187231d8199c64b5b762e1bdf2244733d/template/SKILL.md", - Network accessline 4
"source_repository": "https://github.com/anthropics/skills", - Network accessline 11
"license": "Apache-2.0", "license_verification": "inferred for the non-document template from the repository README licensing statement; no root LICENSE file was verified", "license_url": "https://github.com/anthropics/skills/blob/9d2f1 - Network accessline 12
"license_verification": "inferred for the non-document template from the repository README licensing statement; no root LICENSE file was verified", "license_url": "https://github.com/anthropics/skills/blob/9d2f1ae187231d8199c64b5b762e1bdf - Network accessline 13
"license_url": "https://github.com/anthropics/skills/blob/9d2f1ae187231d8199c64b5b762e1bdf2244733d/README.md#about-this-repository",
scripts/fleet-steward.js
scripts/generate-fixtures.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable
scripts/generate-routing.js
scripts/grid.cjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/install-hooks.js
scripts/local-schedule.js
scripts/loop-runner.js
scripts/loops.js
scripts/map-index.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable
scripts/memory-compile.js
scripts/momentum-read.cjs
scripts/momentum-synthesize.cjs
scripts/momentum-watch-start.cjs
scripts/next-action.js
scripts/noop-ablate.js
scripts/operating-proof.js
scripts/operation-graph-effects.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/operation-graph-runner.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/operator-console.js
scripts/package-delivery.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable
scripts/permission-audit.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/pr-ready.js
scripts/pricing.json
- Network accessline 1
{ "_version": "2025-05", "_source": "https://docs.anthropic.com/en/docs/about-claude/models", - Network accessline 2
"_version": "2025-05", "_source": "https://docs.anthropic.com/en/docs/about-claude/models", "_note": "Per million tokens, USD. Update when Anthropic changes pricing.", - Network accessline 3
"_source": "https://docs.anthropic.com/en/docs/about-claude/models",
scripts/repository-memory.js
scripts/route-preview.js
scripts/run-with-timeout.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable
scripts/sandbox-provider.js
scripts/session-tokens.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable
scripts/skill-bench.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 532
try { execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 532
try { execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 532
try { execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 532
try { execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 533
execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); execSync('git config user.email "bench@citadel.test"', { cwd: tmpD - Network accessline 533
execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); execSync('git config user.email "bench@citadel.test"', { cwd: tmpD - Network accessline 533
execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); execSync('git config user.email "bench@citadel.test"', { cwd: tmpD - Network accessline 533
execSync('git init', { cwd: tmpDir, stdio: 'pipe' }); execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); execSync('git config user.email "bench@citadel.test"', { cwd: tmpD - Network accessline 534
execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 534
execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 534
execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' }); - Network accessline 534
execSync('git remote add origin https://github.com/example/test-repo.git', { cwd: tmpDir, stdio: 'pipe' });
scripts/skill-lint.js
scripts/stack-plan.js
scripts/telemetry-log.cjs
scripts/telemetry-otlp-export.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
scripts/test-all.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
scripts/test-deploy-steward.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Network accessline 33
status = 'ready', branch = 'codex/feature-a', pr = 'https://github.com/acme/app/pull/12', - Network accessline 34
branch = 'codex/feature-a', pr = 'https://github.com/acme/app/pull/12', head = 'abc1234', - Network accessline 35
pr = 'https://github.com/acme/app/pull/12', - Network accessline 43
`Generated: ${generatedAt}`, `Status: ${status}`, `PR: ${pr}`, - Network accessline 44
`Status: ${status}`, `PR: ${pr}`, `Branch: ${branch}`, - Network accessline 45
`PR: ${pr}`, - Network accessline 85
return { state: 'open', url: 'https://github.com/acme/app/pull/12', - Network accessline 86
state: 'open', url: 'https://github.com/acme/app/pull/12', head: 'abc1234', - Network accessline 87
url: 'https://github.com/acme/app/pull/12', - Network accessline 97
writeFile(path.join(root, '.planning', 'pr-readiness', `agent-${String(number).padStart(2, '0')}.md`), readinessReport({ branch: `agent/${number}`, pr: `https://github.com/acme/app/pull/${number}`, - Network accessline 98
branch: `agent/${number}`, pr: `https://github.com/acme/app/pull/${number}`, head: `agent-${number}-v0`, - Network accessline 99
pr: `https://github.com/acme/app/pull/${number}`, - Network accessline 116
runTest('parseGitHubPr extracts owner/repo/number', () => { assert.deepEqual(parseGitHubPr('https://github.com/acme/app/pull/12?foo=bar'), { - Network accessline 117
assert.deepEqual(parseGitHubPr('https://github.com/acme/app/pull/12?foo=bar'), { - Network accessline 120
number: 12, repoSlug: 'acme/app', url: 'https://github.com/acme/app/pull/12', - Network accessline 121
repoSlug: 'acme/app', url: 'https://github.com/acme/app/pull/12', }); - Network accessline 122
url: 'https://github.com/acme/app/pull/12', - Network accessline 131
status: 'blocked', branch: 'codex/feature-b', pr: 'https://github.com/acme/app/pull/13', - Network accessline 132
branch: 'codex/feature-b', pr: 'https://github.com/acme/app/pull/13', head: 'def5678', - Network accessline 133
pr: 'https://github.com/acme/app/pull/13', - Network accessline 239
prs.set(`pr-acme-app-${number}`, { number, url: `https://github.com/acme/app/pull/${number}`, - Network accessline 240
number, url: `https://github.com/acme/app/pull/${number}`, branch: `agent/${number}`, - Network accessline 241
url: `https://github.com/acme/app/pull/${number}`,
scripts/test-routing-sync.js
scripts/test-telemetry-otlp.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Dangerous shell operationline 57
for (const rm of payload.resourceMetrics || []) { - Network accessline 150
}); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const endpoint = `http://127.0.0.1:${server.address().port}`; - Network accessline 152
const endpoint = `http://127.0.0.1:${server.address().port}`;
scripts/unharness.js
- Executable scriptline 1
#!/usr/bin/env node
scripts/verify-hooks.js
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 328
[Credential-related source omitted] - Access to secretsline 331
[Credential-related source omitted] - Dangerous shell operationline 822
tool_input: { command: 'rm -rf /' },
scripts/verify-telemetry-integrity.js
scripts/verify.cjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/watch.js
skills/architect/SKILL.md
- Dangerous shell operationline 147
**Reversibility:** green — creates `.planning/architecture-{slug}.md` only; undo with `rm .planning/architecture-{slug}.md`.
skills/autopilot/SKILL.md
- Network accessline 65
node scripts/package-delivery.js {campaign-slug} --pr https://github.com/{owner}/{repo}/pull/{number}
skills/deploy-steward/SKILL.md
- Network accessline 61
If `gh` is not installed or is not authenticated, stop before `--run` and ask the operator to run `gh auth status` / `gh auth login`. Do not substitute raw tokens or ad hoc curl commands inside the steward. - Network accessline 63
or ad hoc curl commands inside the steward. - Network accessline 69
node scripts/deploy-steward.js --scan --run node scripts/deploy-steward.js --run --deploy-command "npm run deploy" node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run - Network accessline 70
node scripts/deploy-steward.js --run --deploy-command "npm run deploy" node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run node scripts/deploy-steward.js --run --merge-mode merge-queue - Network accessline 71
node scripts/deploy-steward.js --enqueue-pr https://github.com/OWNER/REPO/pull/123 --run
skills/infra-audit/SKILL.md
- Dangerous shell operationline 203
**Reversibility:** green — read-only audit; only writes `.planning/infra-manifest.md`; undo with `rm .planning/infra-manifest.md`.
skills/live-preview/SKILL.md
- Network accessline 59
npx playwright screenshot http://localhost:{port}/{route} .planning/screenshots/{route-slug}.png --full-page
skills/postmortem/SKILL.md
- Dangerous shell operationline 186
- Reversibility: green — one file written to .planning/postmortems/; git rm to undo
skills/qa/SKILL.md
- Network accessline 82
1. Check if a dev server is already running (try curl localhost:3000, 5173, 8080) - Network accessline 101
// Navigate await page.goto('http://localhost:3000'); - Network accessline 102
await page.goto('http://localhost:3000'); - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 194
[Credential-related source omitted]
skills/research/SKILL.md
- Network accessline 247
> - Use **WebSearch** to find information about repos (search snippets contain what you need) > - If you need a repo's README content, fetch the **raw** URL: > `https://raw.githubusercontent.com/{user}/{repo}/{branch}/README.md` - Network accessline 248
> - If you need a repo's README content, fetch the **raw** URL: > `https://raw.githubusercontent.com/{user}/{repo}/{branch}/README.md` > - Never fetch rendered GitHub pages: issues, pull requests, repo root, or file views - Network accessline 249
> `https://raw.githubusercontent.com/{user}/{repo}/{branch}/README.md` - Network accessline 252
This restriction exists because a real research-fleet run hung for 38+ minutes on `WebFetch(https://github.com/jehna/readme-best-practices)` with zero output. - Network accessline 253
on `WebFetch(https://github.com/jehna/readme-best-practices)` with zero output.
skills/review/SKILL.md
- Dangerous shell operationline 70
- **Unsafe deserialization**: `eval()`, `Function()`, `JSON.parse` on untrusted input without schema validation, `pickle.loads`, `yaml.load` without SafeLoader
skills/setup/SKILL.md
- Instruction override signalline 91
**Confirmation (Recommended + Full Tour only):** output `Detected: {language}{+ framework if any} · {packageManager} · {testFramework if any}`, then `Correct? [y/n/edit]`. y/Enter → proceed; n/edit → ask for corrections inline. Express: ski - Access to secretsline 179
[Credential-related source omitted]
skills/telemetry/SKILL.md
- Network accessline 225
# Export new records to a local collector (/v1/metrics appended when the url has no path) node scripts/telemetry-otlp-export.js --endpoint http://localhost:4318 - Network accessline 226
node scripts/telemetry-otlp-export.js --endpoint http://localhost:4318 - Network accessline 242
config (OTLP HTTP receiver on 4318, debug exporter to stdout) and a README with the two-command flow: `docker run` with the config mounted, then `node scripts/telemetry-otlp-export.js --endpoint http://localhost:4318`. Without - Network accessline 243
two-command flow: `docker run` with the config mounted, then `node scripts/telemetry-otlp-export.js --endpoint http://localhost:4318`. Without Docker, `--dry-run` prints the exact OTLP payload instead. - Network accessline 244
`node scripts/telemetry-otlp-export.js --endpoint http://localhost:4318`. Without
skills/verify/SKILL.md
- Dangerous shell operationline 61
5. **Delete** the temp file: `rm .planning/verify-temp.ts` or equivalent
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 457 facts
- Executable script in code of a file that runshooks_src/circuit-breaker.js:1High confidence
- Executable script in code of a file that runshooks_src/circuit-breaker.js:1High confidence
- Executable script in code of a file that runshooks_src/complexity-check.js:1High confidence
- Executable script in code of a file that runshooks_src/complexity-check.js:1High confidence
- Executable script in code of a file that runshooks_src/complexity-check.js:1High confidence
- Executable script in code of a file that runshooks_src/config-change.js:1High confidence
- Executable script in code of a file that runshooks_src/config-change.js:1High confidence
- Executable script in code of a file that runshooks_src/cost-tracker.js:1High confidence
- Executable script in code of a file that runshooks_src/cost-tracker.js:1High confidence
- Executable script in code of a file that runshooks_src/cwd-changed.js:1High confidence
- Executable script in code of a file that runshooks_src/cwd-changed.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/doc-sync.js:1High confidence
- Executable script in code of a file that runshooks_src/elicitation.js:1High confidence
- Executable script in code of a file that runshooks_src/elicitation.js:1High confidence
- Executable script in code of a file that runshooks_src/external-action-gate.js:1High confidence
- Executable script in code of a file that runshooks_src/external-action-gate.js:1High confidence
- Executable script in code of a file that runshooks_src/external-action-gate.js:1High confidence
- Access to secrets in a comment of a file that runshooks_src/external-action-gate.js:9Low confidence
- Access to secrets in code of a file that runshooks_src/external-action-gate.js:150High confidence
- Access to secrets in code of a file that runshooks_src/external-action-gate.js:151High confidence
- Executable script in code of a file that runshooks_src/file-changed.js:1High confidence
- Executable script in code of a file that runshooks_src/file-changed.js:1High confidence
- Executable script in code of a file that runshooks_src/governance.js:1High confidence
- Executable script in code of a file that runshooks_src/governance.js:1High confidence
- Executable script in code of a file that runshooks_src/governance.js:1High confidence
- Executable script in code of a file that runshooks_src/governance.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/init-project.js:1High confidence
- Executable script in code of a file that runshooks_src/instructions-loaded.js:1High confidence
- Executable script in code of a file that runshooks_src/instructions-loaded.js:1High confidence
- Executable script in code of a file that runshooks_src/instructions-watch.js:1High confidence
- Executable script in code of a file that runshooks_src/instructions-watch.js:1High confidence
- Executable script in code of a file that runshooks_src/intake-scanner.js:1High confidence
- Executable script in code of a file that runshooks_src/intake-scanner.js:1High confidence
- Executable script in code of a file that runshooks_src/notification.js:1High confidence
- Executable script in code of a file that runshooks_src/notification.js:1High confidence
- Executable script in code of a file that runshooks_src/organize-enforce.js:1High confidence
and 407 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md scripts/fixtures/ecosystem/anthropics-template-skill/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/sethgammon-citadel/)