skills/unharness/SKILL.md
Remove Citadel from a project. Exports valuable state (campaigns, postmortems, research, backlog, discoveries) to docs/citadel/ as human-readable markdown, then removes all harness files and hooks. The archive is detected by /do setup on re-install and offered for restore.
npx skillsauth add SethGammon/Citadel unharnessInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when: removing Citadel from a project entirely -- exports state and cleans up hooks before uninstall. Don't use when: pausing campaign work (just stop or use /session-handoff); removing a single skill (delete its directory manually).
/unharness # Export archive, then remove harness
/unharness --export-only # Export to docs/citadel/ without removing anything
Read .citadel/plugin-root.txt to locate the Citadel install.
If missing, use the directory containing this SKILL.md as the fallback.
cat .citadel/plugin-root.txt 2>/dev/null || echo "fallback"
Store as {citadelRoot}.
node {citadelRoot}/scripts/unharness.js
For --export-only:
node {citadelRoot}/scripts/unharness.js --export-only
The script:
.planning/ for valuable content (campaigns, postmortems, research, backlog, discoveries).citadel/project.md and .claude/harness.json for project metadatadocs/citadel/{category}.md files with citadel-archive: true frontmatter.planning/, .citadel/, .claude/agent-context/.claude/settings.json (preserves user hooks)Print the script output verbatim.
After the script completes, print:
If archive was written:
Archive is at docs/citadel/ — commit it, delete it, or leave it.
Run /do setup again anytime to reinstall Citadel.
If you run setup in this project, it will find the archive and offer to restore your history.
If nothing was exported (empty project):
Citadel removed. No history to archive.
Run /do setup again anytime to reinstall.
If --export-only:
Archive written to docs/citadel/. Harness files left in place.
Run /unharness without --export-only to complete the removal.
Script not found:
Report the error and explain the user can run the hook installer manually:
node /path/to/Citadel/scripts/unharness.js
No .planning/ directory (harness was installed but never used): The script handles this gracefully — it skips the export and proceeds to cleanup. Nothing special needed.
docs/citadel/ already exists from a previous unharness:
The script overwrites with the current timestamp. Prior archives are replaced.
If the user wants to keep prior archives, they should commit docs/citadel/ to git first.
User runs unharness on a project that was never set up: The script exits cleanly with "Nothing to export." and nothing is deleted that shouldn't be.
Disclosure: "Removing Citadel from [project]. Exporting state to [path] before deletion. This is irreversible without reinstalling." Reversibility: red — removes hooks, clears .claude/settings.json entries, deletes .planning/. State export is made first, but reinstalling requires /setup. Trust gates:
After the closing message in Step 3, output nothing further. Unharness is a terminal action — no HANDOFF block, no next-step suggestions. The session is now running without hooks.
development
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.
development
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.
tools
Unified router that auto-routes user intent to the right orchestrator or skill. 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.
data-ai
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".