Files
claude-skills/skills/project-bootstrap
vitya 01bc7147c9 feat(project-bootstrap): canonical template + Step 5.6 add session-handoff trigger [v1.12.0]
CLAUDE.md.template gains `session handoff: read on start, write on end`
between `pull remote before work` and `follow project discipline`
(session-lifecycle clustering). Step 5.6 trigger->fulfiller table gains
the corresponding row (template ↔ table source-of-truth invariant).

Greenfield-bootstrap'ed projects now ship handoff trigger из коробки.
Existing projects unaffected — CLAUDE.md merge in Step 5 is idempotent
and respects user removals.

Bump 1.11.0 -> 1.12.0 MINOR (new canonical trigger = new capability,
backward-compatible). dist/project-bootstrap.skill rebuilt.

Closes [session-handoff-bootstrap-template-extend].
Unblocks [session-handoff-existing-projects-upgrade] Path B.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 23:10:03 +03:00
..

project-bootstrap

Initializes or upgrades a project workspace in one pass: git, .gitignore, README.md, .wiki/ (Karpathy's LLM Wiki layout), .tasks/ (per-task board), and CLAUDE.md with skill triggers.

Operates in two modes, picked automatically:

  • init — empty or near-empty folder. Creates everything from scratch.
  • upgrade — existing project. Detects what's already there, only fills the gaps. Never overwrites without explicit confirmation.

When it triggers

The skill auto-activates on phrases like:

  • "initialize project", "bootstrap", "setup project"
  • "upgrade project", "add wiki", "add tasks"
  • "start project", "set everything up"
  • "let's start a project", "init"

It also triggers when an agent is launched in a fresh folder that the user clearly intends to turn into a workspace.

Prerequisites

project-bootstrap does not lay out .wiki/ or .tasks/ by itself — it delegates to two companion skills, which must be installed on the machine running it:

  • setup-wiki — creates the canonical .wiki/ layout.
  • setup-tasks — creates the canonical .tasks/ layout.

If either is missing, project-bootstrap stops with a clear error rather than falling back to ad-hoc creation. This keeps layout drift between projects bootstrapped at different times debuggable.

What it creates

Path Source Notes
.git/ git init Skipped if repo already initialized.
.gitignore assets/.gitignore.template Skipped if file exists.
README.md minimal stub Skipped if file exists.
.wiki/ delegated to setup-wiki Karpathy LLM Wiki layout — CLAUDE.md, index.md, log.md, overview.md, raw/, entities/, concepts/, packages/, sources/.
.tasks/ delegated to setup-tasks Canonical board — STATUS.md plus per-task <task-slug>.md files.
CLAUDE.md assets/CLAUDE.md.template Skill triggers (use superpowers, use project wiki, etc.). On non-Windows hosts, swap the we're on Windows line for we're on Linux / we're on macOS. On upgrade, the template is treated as a canonical set and merged idempotently — only missing trigger lines are appended after user confirm. Re-runs are no-ops.
.wiki/concepts/bootstrap-manifest.md generated Records which skill versions initialized the project, so cross-project layout drift is debuggable.

Workflow

  1. Detect mode. Inspect the current directory — git, .wiki/, .tasks/, CLAUDE.md, README.md — and print a single summary block: what was found, what will be created, what will be skipped.
  2. Confirm. One question, one confirmation. Nothing is written before the user agrees.
  3. Steps 15. Create or skip each piece in order — git, README, .wiki/, .tasks/, CLAUDE.md. Steps 3 and 4 delegate to the setup-skills.
  4. Step 5.5. Write bootstrap-manifest.md recording the versions of project-bootstrap, setup-wiki, setup-tasks, project-discipline, setup-interns, and using-interns used.
  5. Step 5.6. Skill dependencies check. Walk the canonical trigger list in CLAUDE.md, look each up in an embedded trigger → fulfiller map, detect what's missing on this host (~/.claude/skills/<name>/SKILL.md for skills, ~/.claude/plugins/installed_plugins.json for plugins), and print one chat-only block listing every missing fulfiller with a copy-pasteable install command. Prints a single line when nothing is missing. Never auto-installs, never modifies project files.
  6. Commit. chore: bootstrap project structure for fresh repos, or chore: upgrade project structure adding only the new files for existing ones. Pushes only on explicit user request.
  7. Summary. Final report — what was created, what was skipped, suggested next step.

Rules

  • Never overwrite an existing file without explicit user confirmation.
  • Always show the plan before touching the filesystem.
  • Never invent project details — read what's already there.
  • Commit only files just created — never touch the rest of the tree.
  • Push only after the user explicitly says so.

Install

From the repo root:

Windows (PowerShell):

bash scripts/install.sh project-bootstrap

Linux / macOS (bash):

bash scripts/install.sh project-bootstrap

install.sh works on Windows under git-bash. A native install.ps1 is planned but not required.

The skill installs to ~/.claude/skills/project-bootstrap/. Override the target with CLAUDE_SKILLS_DIR=/path bash scripts/install.sh ….

See also