Skip to content
Development
Skill

/archon

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

From plugin
citadel
92948 skills7 agents

Claude Code

$ npx -y skills add SethGammon/Citadel --skill archon --agent claude-code

SKILL.md

archon.SKILL.md
name: archon
license: MIT
description: >-
  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.
user-invocable: true
auto-trigger: false
trigger_keywords:
  - campaign
  - multi-session
  - phases
last-updated: 2026-10-20

/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 UP

On every invocation:

1. Read AGENTS.md, then CLAUDE.md if present 2. Check `.planning/campaigns/` for active campaigns (not in `completed/`) 3. Check `.planning/coordination/claims/` for scope claims from other agents 4. Determine mode:

  • **Resuming**: active campaign exists → read it, continue from Active Context
  • **Directed**: user gave a direction → create new campaign, decompose, begin
  • **Undirected**: no direction, no active campaign → run Health Diagnostic

5. **Log campaign start** (new campaigns only): `node .citadel/scripts/telemetry-log.cjs --event campaign-start --agent archon --session {campaign-slug}`

Step 2: DECOMPOSE (new campaigns only)

Break the direction into 3-8 phases:

1. Analyze scope: which files, directories, and systems are involved? 2. Identify dependencies: what must happen before what? 3. Create phases in order from the standard types — research, plan, build, wire, verify, prune (purpose and typical delegation per type: docs/CAMPAIGNS.md#phase-types).

  • Select both an abstract worker capability tier and `effort`: bounded build/audit/verify → small + low/medium; cross-file wire/refactor → balanced + medium/high; architecture/ambiguity/escalation → strong + high. Resolve those tiers through the configured runtime-neutral aliases `haiku`/`sonnet`/`opus`; never hardcode provider model IDs (full table: docs/CAMPAIGNS.md#phase-effort-budgets).

4. For each phase, write machine-verifiable end conditions:

  • Every phase MUST have at least one non-manual condition
  • Condition types: `file_exists`, `command_passes`, `metric_threshold`, `visual_verify`, `manual`
  • `manual` is a required human gate unless explicitly labeled `advisory: true`; advisory review does not count toward required coverage
  • Write conditions to the Phase End Conditions table in the campaign file
  • Include a `validator_retries_remaining: 3` field per phase row (consumed by step 4.5)
  • Declare required, subject-bound rows for the phase in `## Exit Evidence`; an absent table or required row is `unknown`, not successful

5. Write the campaign file to `.planning/campaigns/{slug}.md` 6. Register a scope claim if `.planning/coordination/` exists

Step 2.5: DAEMONIZE? (new campaigns with 2+ estimated sessions)

1. Compute cost estimate: average `estimated_cost` from `.planning/telemetry/session-costs.jsonl` if it exists, else `$3` default per session. Total = per-session * estimated sessions. 2. Ask (single sentence): `This is multi-session work (~{N} sessions, ~${total}). Run continuously? [y/n]` 3. If **yes**:

  • Write `.planning/daemon.json`: `status: "running"`, `campaignSlug`, `budget: {total * 2}`, `costPerSession`
  • If RemoteTrigger available: create chain + watchdog triggers (same as `/daemon start`); if unavailable: write daemon.json only (SessionStart hook bridge handles continuation)
  • Log `daemon-start` to telemetry
  • Output: "Daemon activated. Budget: ${budget}. Use `/daemon status` to check progress."

4. If **no**: continue to Step 3.

**Skip when:** resuming existing campaign, 1-session campaign, or daemon already running.

Step 3: EXECUTE PHASES

For each phase:

1. **Direction check**: Is this phase still aligned with the campaign goal? 1.5. **Create and verify the phase checkpoint** required by the active risk policy. Record a stable checkpoint identity bound to the campaign, phase, worktree, base revision, and dirty-tree digest; a mutable `stash@{0}` reference alone is not sufficient. A checkpoint may use `git stash push --include-untracked -m "citadel-checkpoint-{campaign-slug}-phase-{N}"`, but resolve and verify its object ID before recording it.

  • For Green, dependency-independent, workspace-reversible work, checkpoint policy may be advisory. Record checkpoint failure as `unknown/CHECKPOINT_UNAVAILABLE` and continue only that reversible work.
  • For Amber/Red, shared-state, or nonrepeatable work, checkpoint policy is required. Hold the phase and every dependent phase until a verified checkpoint exists or a human records a scoped decision.

2. **Log delegation start**: `node .citadel/scripts/telemetry-log.cjs --event agent-start --agent {delegate-name} --session {campaign-slug}` 3. **Delegate**: Spawn a sub-agent with full context injection:

  • Invoke Marshal for research/plan/build/wire/prune as declared in the phase table; do not replace it with a raw general-purpose mega-prompt. If nested skill invocation is unavailable, follow Marshal's understand → plan → execute → report protocol and record that fallback.
  • CLAUDE.md content and `.claude/agent-context/rules-summary.md`
  • **Map slice** (if `.planning/map/index.json` exists): run `node scripts/map-index.js --slice "<phase scope keywords>" --max-files 15` and inject results
  • Phase-specific direction and scope
  • Sandbox provider status whe
Read more
@sethgammon
Ships withcitadel

An open-source operating layer for Claude Code and OpenAI Codex. Citadel routes requests, preserves repository state between sessions, coordinates parallel work, applies repository safeguards, and records evidence and handoffs around the coding agent you

92948 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
929
Star history of SethGammon/Citadel on GitHub, a chart by star-history.com

Other skills on citadel.

architect

architect

Given a PRD, produces an implementation architecture: file tree, component breakdown, data model, and a phased build plan with…

@sethgammon@sethgammonInstall Skill
ascii-diagram

ascii-diagram

Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid…

@sethgammon@sethgammonInstall Skill
autopilot

autopilot

Intake-to-delivery pipeline. Processes pending items from .planning/intake/: briefs new ideas, executes approved work through…

@sethgammon@sethgammonInstall Skill
cost

cost

Deep cost exploration and transparency. Shows real token usage, session costs, campaign spend, burn rates, and model breakdown.…

@sethgammon@sethgammonInstall Skill
create-app

create-app

End-to-end app creation from a single description. Five tiers: blank project, guided, templated, fully generated, or feature…

@sethgammon@sethgammonInstall Skill
create-skill

create-skill

Creates new skills from the user's repeating patterns. Interview-driven: discovers the task, analyzes failure modes, generates a…

@sethgammon@sethgammonInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about archon.

Which coding agents can use archon?
archon installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.