Skip to content

Key Files

Every Playbook project has the same set of governing files. They fall into three groups by purpose.

CLAUDE.md — project-level instructions Claude Code reads at session start. Holds the rules that should shape every prompt in this project. See CLAUDE.md for what belongs there.

.claude/settings.json — hard rules Claude Code cannot violate. Most important: the file-read denylist that blocks Claude Code from ever opening .env.local, even if you ask it to. This is the single highest-leverage file in the security model.

.claude/agents/ and .claude/skills/ — optional project-scoped homes for subagents and skills. Bootstrap doesn’t create them; add them when you need them. See Subagents and Skills for when each is the right primitive.

.claude/ is committed to the repo (it’s not a secret). .env.local is not (it is).

docs/prd.md — what to build, for whom, why. You write this. The Out of Scope section is the most operationally important part — it stops Claude Code building things you didn’t ask for.

PLAN.md — how to build it. Claude Code writes this at the end of the bootstrap and stops. Component tree, routes, file count estimate, deviations from spec. The Plan Gate sits here.

memory.md — running log of decisions made during the build. Claude Code can propose entries during a session; review them before they land. Useful when revisiting a project months later.

FileAuthorAnswersWhen
docs/prd.mdYou (human)What to build, for whom, why. Out of scope.Before Prompt 02. Reference doc throughout.
PLAN.mdClaude CodeHow to build it. Component tree, routes, file count.End of Prompt 01. Approval gate.

.env.local — real secret values. Gitignored. Lives only on your laptop and inside Vercel (where production values are held separately).

.env.example — same key names as .env.local, empty values. Committed. Acts as a template for anyone else cloning the repo.

Pattern A — Empty scaffold (default). Bootstrap creates an empty docs/. You write docs/prd.md later as Prompt 02. Feature briefs land in docs/features/ as you go.

Pattern B — Pre-populated. You manually create docs/ and drop pre-written specs in before running bootstrap. Use when you have substantial prior context (multi-module specs, UX docs, prototypes) that Claude Code should read during orientation.

Most simple projects use Pattern A. Use Pattern B when you’ve already done meaningful design work that Claude Code needs to honour from the first prompt.

The full list of files a Full Bootstrap creates, who maintains them, and whether they’re committed.

File Created by Maintained by Committed
CLAUDE.md Bootstrap You + Claude Code yes
.claude/settings.json Bootstrap You (rarely) yes
PLAN.md Bootstrap You (rarely) yes
memory.md Bootstrap You + Claude Code yes
.env.local Bootstrap You no
.env.example Bootstrap You (adding keys) yes
docs/ Bootstrap (full) You + Claude Code yes