From citadel
Coordinates multi-repo campaigns with wave-based execution, dependency management, and shared context across git repositories. Use for cross-repo tasks like shared infrastructure or monolith splits.
npx claudepluginhub sethgammon/citadel --plugin citadelThis skill uses the workspace's default tool permissions.
- Adding infrastructure that spans repos (new database, shared service, API contract)
Orchestrates parallel campaigns in coordinated waves: spawns 2-3 agents per wave in isolated worktrees, collects discoveries, shares context between waves. For 3+ independent work streams.
Syncs workflow logs, process records, handoff documents, runtime state, and artifacts to per-project folders in a centralized GitHub workspace repo for clean targets and traceability.
Orchestrates worker agents to implement multiple ready tasks from Gitea backlogs. Use for autonomous multi-task execution, parallel or sequential processing, and merge coordination.
Share bugs, ideas, or general feedback.
Do not use when:
/fleet or /archon).planning/workspace/session-{slug}.md — resume if status: active or needs-continueCLAUDE.md, check .planning/campaigns/ for active campaigns (avoid collisions)node .citadel/scripts/momentum-watch-start.cjs
node .citadel/scripts/momentum-read.cjs
Skip momentum injection if output is empty.Break the direction into repo-scoped work items (one campaign per repo per wave). Table format: # | Repo | Campaign Direction | Scope | Deps | Wave.
Rules: items with no deps → Wave 1; dependents → Wave 2+. Max 3 repo-campaigns per wave. Scope format: {repo}:{path}.
For each inter-wave dependency, specify the cross-repo contract: what the producer will produce, what the consumer expects, and where the contract lives (shared types package, OpenAPI spec, env var).
Create .planning/workspace/session-{slug}.md with frontmatter: version, id, status: active, started, completed_at: null, direction, repos (path + name + branch per repo), wave_count, current_wave: 1, campaigns_total, campaigns_complete: 0.
Body sections: Direction, Repos table (name/path/branch/status), Work Queue (table from Step 2), Cross-Repo Contracts (producer/consumer/contract/location), Wave Execution Log (per wave: status, campaigns, started, completed), Shared Context (discovery relay accumulation).
For each wave:
For each repo-campaign in this wave:
git checkout -b workspace/{slug}/{repo-name}/archon for complex (3+ phases), /fleet if parallelizable, /marshal or direct skill for simple (1-2 steps)momentum.json via node .citadel/scripts/momentum-read.cjs, inject as === PRIOR SESSION CONTEXT ===, skip if empty), cross-repo contracts, relevant CLAUDE.md sections from other reposExtract HANDOFF blocks, compress into cross-repo discovery brief, write persistent discovery records:
node .citadel/scripts/discovery-write.cjs \
--session {session-slug} --agent {repo-name}-{campaign-type} \
--wave {wave-number} --status {success|partial|failed} \
--scope "{repo-name}:{scope-path}" --handoff "{json-array}" \
--decisions "{json-array}" --files "{json-array}" --failures "{json-array}"
Write workspace/briefs/wave{N}-{repo-name}.md for each completed campaign.
Also write workspace/briefs/wave{N}-cross-repo.md summarizing:
For each cross-repo contract: verify the producer created the expected output (file + export for types, route existence for endpoints). If verification fails, flag and do not proceed with consumers.
Mark completed campaigns, update wave status, write discovery relay, advance current_wave.
status: completed, completed_at: {ISO timestamp}node .citadel/scripts/momentum-synthesize.cjs.planning/workspace/ does not exist: Create it (and workspace/briefs/).{monorepo}:{package-path} as the scope identifier.Disclosure: "Running multi-repo campaign across [repos]. Changes committed to each repo independently." Reversibility: red — coordinates changes across multiple repositories; cross-repo commits are hard to revert in bulk. Trust gates:
active state on completion---HANDOFF---
- Workspace: {slug} -- {direction summary}
- Repos: {N} repos, {M} campaigns across {W} waves
- Results: {completed}/{total} campaigns succeeded
- Branches: {list branches ready for review}
- Merge order: {suggested order based on dependency graph}
- Unresolved: {any failed campaigns or broken contracts}
---