bootstrap-project
Set up Claude Code context for the current repository, a short project CLAUDE.md (what it is, layout, exact commands, conventions, gotchas) plus optional path-scoped rules, so later sessions can jump
SKILL.mdplugins/bud/skills/bootstrap-project/SKILL.md
GitHubBootstrap a project for Claude Code
Jason drives; you propose. Gather facts, show him the plan and the drafts, and write files only after he says go.
1. See what's already there
- Read any existing
CLAUDE.md,CLAUDE.local.md,AGENTS.md,.claude/(rules, settings, skills),.bud/rules.md, and a design doc such asBASE.mdwith its decision log. - If a
CLAUDE.mdexists, this is a refresh: propose edits to it and never replace it wholesale.
2. Map the code
- Run
repomap -root . -max 80if it's installed; otherwise usegit ls-filesandrg --filesto see the layout. - Take commands from the source, never from guesses:
go.mod,Makefile,justfile,Taskfile.yml,package.jsonscripts,Cargo.toml,pyproject.toml, and the CI workflows in.github/workflows/. - Note the entry points (main packages,
cmd/, servers), the main packages and how they depend on each other, generated code that shouldn't be edited, and how tests are laid out. - If Serena is connected and the repo has no
.serena/project.yml, offer to run Serena's onboarding so symbol lookups work in later sessions.
3. Draft
A project CLAUDE.md of about 100 lines, never more than 200:
- What this is: one or two sentences.
- Layout: the 5 to 15 paths that matter, one line each.
- Commands: build, test (all, and a single test), lint/format and run, exact and copy-pasteable, each one verified in step 2.
- Hard constraints: the decisions everything else depends on, by number
when there's a decision log (
Standard library only (D1)). - Conventions: only ones that differ from the language's defaults, from
the
bud:code-styleskill, or that a linter or CI check enforces. - Gotchas: generated files, slow or flaky tests, required environment variables (names only, never values).
Guidance that applies to only part of the tree goes in
.claude/rules/<topic>.md with paths: frontmatter instead of the main file.
4. Review with Jason
Show the plan and the drafts. Ask whether the file should be committed for
everyone (CLAUDE.md) or kept personal (CLAUDE.local.md, gitignored), then
write it.
5. Verify
Run one command from the Commands section, such as the single-test command, to prove it works. Fix the doc if it doesn't.