Project bootstrap
Bootstrap a project under ~/Projects with the standard agent scaffolding, stamped from the starter kit at shared/Development/templates/starter-kit - a CLAUDE.md from the house template, the stack-agnostic core (.editorconfig, .gitignore, .claude settings/launch, worktree-port script), an optional stack layer, and a row in the ~/Projects/CLAUDE.md root map. Use when creating a new project or repo, or when an existing repo is missing its CLAUDE.md. Trigger on "bootstrap this project", "new project setup", "stamp a CLAUDE.md", "set up agent scaffolding", "give this repo a CLAUDE.md".From its SKILL.md
npx -y skills add jerseycheese/agent-skills --skill project-bootstrapAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 1 credential source: `.env.example`.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 2 commands, including `git log --oneline -15` and 1 more.
SKILL.md
5.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Project Bootstrap
Purpose
Every repo should hand an agent the same things up front: what it is, how to run it, how to test it, and what not to break. This skill stamps that scaffolding from one source of truth - the starter kit - so cold sessions (and cheaper models) execute instead of rediscovering. The CLAUDE.md is the deliverable; it gets smoke-tested before it counts.
The starter kit (single source of truth)
All scaffolding lives at ~/Projects/shared/Development/templates/starter-kit/. Never re-author these files inline - copy them from the kit and fill the placeholders.
core/- stamped into every project, any stack:CLAUDE.md.template,README.md.template- filled with judgment from recon.editorconfig,.gitignore- copied verbatim.claude/settings.json- copied verbatim (committed canon: minimal safe permissions).claude/settings.local.json.template- copied tosettings.local.json, adjusted to stack; only if absent.claude/launch.json.template- filled with dev command + portscripts/worktree-port.cjs- copied verbatim (stable per-worktree dev port)
layers/<stack>/- opt-in, applied over the core; each has its own README with steps:frontend-vite- React + Vite + TS + current Storybook + design-token enforcement (ready)js-ts,python,static-11ty- planned; skip if the directory isn't there yet
Inputs
Ask only for what can't be discovered: the project's name and one-line purpose if there's no README. Everything else comes from recon.
Process
-
Recon the repo (skip whatever doesn't exist):
package.json/pyproject.toml/composer.json- scripts and deps (these also tell you the stack -> which layer, if any)- Server entry: grep for
PORT|listen; check.env.examplefor required vars - Existing docs (README, AGENTS.md, docs/) - the CLAUDE.md points at them, never duplicates
git log --oneline -15- recent themes become "Common tasks" candidatesgit worktree list- decides whether the worktrees section applies
-
Pick a port (web projects only): read the Active projects table in
~/Projects/CLAUDE.mdand pick one nothing else claims. Already taken: 3000 (narraitor, rcv-simulator-va main), 3101, 4173, 4174, 5173, 6006. -
Stamp the core from
starter-kit/core/:- Copy verbatim:
.editorconfig,.claude/settings.json,scripts/worktree-port.cjs. .gitignore: copy if the repo has none; if it already has one, ensure the kit's.claudecommit-canon block is present.- Write CLAUDE.md by filling
CLAUDE.md.template: every section gets exact commands and literal ports/paths, written for a weaker model - imperative, do-X-then-verify-Y, minimal cleverness required of the reader. Target 100-250 lines. No emojis. (Never overwrite an existing CLAUDE.md - diff instead.) - Write
README.mdfromREADME.md.templateonly if the repo has none. - Write
.claude/launch.jsonfromlaunch.json.templatewith the chosen dev command and port. - Write
.claude/settings.local.jsonfromsettings.local.json.template, adjusted to the stack (python3, composer, etc.) - only if it doesn't already exist. Keep it small;/fewer-permission-promptsgrows it later from real usage.
- Copy verbatim:
-
Apply a stack layer (only if one matches the project): for a React + Vite frontend, follow
layers/frontend-vite/README.md- scaffold the baseline with the official tools, then overlay the layer's files. Skip this step if the project's stack has no layer yet. -
Register it: append a row to the Active projects table in
~/Projects/CLAUDE.md(project path, stack, canonical ports). -
Smoke-test the doc: following ONLY the new CLAUDE.md, start the dev server, hit its verify step, run the test command, then stop anything started. If a step doesn't work as written, fix the doc - not the expectations.
-
Commit CLAUDE.md (plus the tracked
.claude/canon and core files, if the repo tracks them) with a message saying what the manual covers.settings.local.jsonstays uncommitted.
Rules
- The starter kit is the one source of truth - copy from it, never re-author scaffolding inline. If a template needs improving, fix it in the kit, not here.
- Never overwrite an existing CLAUDE.md unasked - present a diff instead.
- Point at existing docs; never paste their content into CLAUDE.md.
- The smoke test is the acceptance test. A CLAUDE.md that hasn't been executed cold doesn't ship.
- If ports or stack change later, update the root-map row too - one canonical port table.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in ~1.2k tokens
Counted across 1,553 of the 3,091 authors here whose files we hold, read 2026-09-06
- Write the configuration filein 36 of 1553
- Create the directory structurein 35 of 1553, across 33 files
- Verify the setupin 31 of 1553, across 28 files
- Run the setup scriptin 30 of 1553, across 29 files
- Pre-determine the required sample sizein 29 of 1553, across 12 files
- Check if the configuration already existsin 29 of 1553
- Document every testin 26 of 1553, across 10 files
- Start with a hypothesisin 26 of 1553, across 11 files
- Ask one question at a timein 22 of 1553
- Test a single variable per testin 21 of 1553, across 9 files
- Read product marketing context before asking questionsin 19 of 1553, across 8 files
- Do not peek and stop earlyin 18 of 1553, across 7 files
Said here and by no other author read
- Copy scaffolding from the starter kit
- Recon the repo before writing files
- Pick an available port for web projects
- Fill CLAUDE.md template with exact commands
- Apply a stack layer if one matches
- Register the project in the root map
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.