From cairn
Use when the SessionStart context flagged `bootstrap_required` for this clone — the project is cairn-adopted (`.cairn/config.yaml` present) but the local clone has not run the per-clone join step (no `core.hooksPath` set). Walks the operator through bootstrap inline by spawning the bundled `cli.mjs join` subprocess and surfacing the result. Skip when the SessionStart banner did not include the bootstrap warning.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cairn:cairn-bootstrapThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are bootstrapping a freshly-cloned repo so this developer's local
You are bootstrapping a freshly-cloned repo so this developer's local git hooks point at cairn's per-clone tooling. Bootstrap is per-clone, one-time, and silent — once finished, every commit on this machine attests through cairn's pre-commit / commit-msg / post-commit hooks.
Refer to docs/PLUGIN_ARCHITECTURE.md §17 Layer 4 for the full
bootstrap-banner contract.
Before doing anything, verify the SessionStart context included the
bootstrap_required warning. If not, exit with no output. The skill
is only meaningful when the SessionStart banner explicitly invited it.
Render exactly:
This project uses Cairn, but your clone isn't bootstrapped yet.
[a]bootstrap now (~5s)[b]skip — write surface disabled
Use AskUserQuestion. Do not preamble; the question is the entire
turn.
[a] → continue to Step 2.[b] → end the turn. The MCP write tools will continue to
refuse with BOOTSTRAP_REQUIRED; the operator can re-trigger this
skill from the next session's banner.Spawn this Bash command in the repo's working directory:
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.mjs" join
${CLAUDE_PLUGIN_ROOT} resolves to the plugin's cache dir at runtime;
the bundle is self-contained, so there's no npm install -g or npx
involved.
Expected stdout pattern:
cairn join: bootstrapped
✓ git hooks → .cairn/git-hooks
✓ post-merge cleanup wired
Per-step warnings are non-fatal (e.g. "no .cairn/git-hooks/ — re-run
init"). Surface the full stdout in a fenced text block so the
operator can review.
When the subprocess exits 0:
Bootstrap complete. Cairn's write surface is unblocked for this clone; commits will attest automatically.
When it exits non-zero, surface the failure inline:
Bootstrap failed at step .
[a]retry[b]abort + open.cairn/JOIN.mdfor manual recovery
cairn join via npx or a globally-installed CLI — the
plugin owns the bundle path; using anything else risks version
divergence between the plugin and the join logic.cairn join / cairn doctor /
npx ... in operator-facing chat output. The skill is the surface;
the bundle is the implementation.npx claudepluginhub isaacriehm/cairn --plugin cairnProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.