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.