Migrating from Copy-Based Install
June 1, 2026 · View on GitHub
last-updated: 2026-03-28
If you previously installed Citadel by copying .claude/, .planning/, and scripts/
into your project, follow these steps to switch to the plugin model.
1. Back up your project config
These files are project-specific and should be kept:
.claude/harness.json — project config from /do setup
.planning/ — campaign state, fleet sessions, telemetry
.claude/settings.local.json — your personal hook config, if any
2. Remove the copied harness files
# These are now provided by the plugin — safe to delete
rm -rf .claude/hooks/
rm -rf .claude/skills/
rm -rf .claude/agents/
rm -rf scripts/
rm -f .claude/settings.json # Will be regenerated by install-hooks.js
Keep .claude/harness.json and .planning/ — they contain your project state.
3. Install the plugin
git clone https://github.com/SethGammon/Citadel.git ~/Citadel
cd /path/to/your-project
node ~/Citadel/scripts/claude-install.js --install --scope local
Manual Claude Code equivalent:
/plugin marketplace add /path/to/Citadel
/plugin install citadel@citadel-local --scope local
4. Re-run the hook installer
node /path/to/Citadel/scripts/install-hooks.js
This writes resolved absolute paths into your project's .claude/settings.json.
Do not use ${CLAUDE_PLUGIN_ROOT} in hook paths manually — it doesn't expand in
hook commands due to a known Claude Code issue.
The install script handles this automatically.
5. Start a new session
The init-project hook auto-scaffolds .citadel/scripts/ and verifies your
.planning/ directory on session start. Run /do setup to regenerate harness.json
if needed.