CLAUDE.md Starters
CLAUDE.md is the highest-leverage thing you can give Claude Code: persistent instructions it reads every session. Drop one of these at your repo root (or run /init to generate a starting point), then trim it to fit. Use the copy button on each block.
:::tip Keep it short and true A CLAUDE.md that's long, aspirational, or out of date hurts — Claude follows it literally. Describe how the project actually works, and prune ruthlessly. Details on the CLAUDE.md page. :::
Universal starter
# Project: <name>
## What this is
<One or two sentences: what the project does and who uses it.>
## Tech stack
- Language/runtime: <e.g. TypeScript, Node 20>
- Framework: <e.g. Next.js 14 App Router>
- Key libraries: <e.g. Prisma, tRPC, Tailwind>
## How to run
- Install: `<cmd>`
- Dev server: `<cmd>`
- Tests: `<cmd>`
- Lint/format: `<cmd>`
## Conventions
- <e.g. Use functional components; no class components.>
- <e.g. Co-locate tests as *.test.ts next to source.>
- <e.g. Conventional Commits for messages.>
## Guardrails
- Run the tests before saying a task is done.
- Don't edit files under `/generated` or `/vendor`.
- Never commit secrets or .env files.
## Good to know
- <Gotchas, non-obvious decisions, links to deeper docs.>
Node / TypeScript web app
# Project: <name> (Next.js + TypeScript)
## How to run
- Dev: `npm run dev`
- Build: `npm run build`
- Test: `npm test`
- Lint: `npm run lint` (must pass before commit)
## Conventions
- TypeScript strict; no `any` without a comment justifying it.
- Components in `src/components`, one folder per component.
- Data fetching via tRPC; never call the DB from a client component.
- Styling: Tailwind utility classes; no inline styles.
## Guardrails
- After any change, run `npm run lint && npm test`.
- Keep files under ~300 lines; split when larger.
- Do not modify `prisma/migrations` by hand.
Python service
# Project: <name> (FastAPI)
## How to run
- Install: `uv sync` (or `pip install -e .`)
- Dev: `uvicorn app.main:app --reload`
- Test: `pytest`
- Lint/format: `ruff check . && ruff format .`
## Conventions
- Type hints everywhere; prefer `pathlib` over `os.path`.
- Pydantic models for all request/response bodies.
- f-strings, not %-formatting.
## Guardrails
- Run `pytest` and `ruff check` before completing a task.
- Fail fast with descriptive errors; no silent excepts.
Tips that apply to all of them
- Layer it. A repo-root
CLAUDE.mdfor the whole project; nestedCLAUDE.mdfiles in subfolders for area-specific rules. - Use
@importsto pull in existing docs instead of duplicating them (see the CLAUDE.md reference). - Review it monthly. Stale instructions are worse than none.
Related
- The full how-to → CLAUDE.md & Memory Files
- More starters → SKILL.md templates, hooks & settings recipes
- Improve these → Contribute