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
- 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. - Confirm. One question, one confirmation. Nothing is written before the user agrees.
- Steps 1–5. Create or skip each piece in order — git, README,
.wiki/,.tasks/,CLAUDE.md. Steps 3 and 4 delegate to the setup-skills. - Step 5.5. Write
bootstrap-manifest.mdrecording the versions ofproject-bootstrap,setup-wiki, andsetup-tasksused. - Step 5.6. Detect the official
superpowers@claude-plugins-officialplugin via~/.claude/plugins/installed_plugins.json. If absent, print a one-time chat recommendation with the install command and upstream link. Never auto-installs, never modifies project files. - Commit.
chore: bootstrap project structurefor fresh repos, orchore: upgrade project structureadding only the new files for existing ones. Pushes only on explicit user request. - 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
setup-wiki— companion, owns.wiki/layout.setup-tasks— companion, owns.tasks/layout.using-wiki— runtime policy for working with.wiki/.using-tasks— runtime policy for working with.tasks/.- Karpathy's LLM Wiki gist: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f