Free CLAUDE.md templates for teams
Starting points for teams using Claude Code. Copy one into your repository, replace everything in <angle brackets>, and delete what doesn't apply.
Team CLAUDE.md for a shared repository
Every developer's Claude Code session reads this file at the start. Put the team's commands, layout, ownership, and rules here.
CLAUDE.md (repository root)# <Project name>
<One sentence: what this repo is and who uses it.>
## Commands
- Install: `<command>`
- Run locally: `<command>`
- Test (all): `<command>`
- Test (one file): `<command> <path>`
- Lint and format: `<command>` (must pass before any commit)
- Never run: `<command>` (<why: e.g. resets the shared dev database>)
## Layout
- `<folder>/`: <what lives here>
- `<folder>/`: <what lives here>
- Reference implementation for new <services/components/endpoints>: `<path>`
## Ownership
| Area | Owner | Reviews required |
|---|---|---|
| `<folder>/` | <team> | <n>, at least one from <team> |
| `<folder>/` | <team> | <n> |
## Rules
- Follow the pattern in `<reference path>` for new <things>. Do not invent a new structure.
- <Database> schema changes: write the migration and open a PR. Never apply it directly.
- Anything touching <billing/auth/data deletion>: stop and ask before writing code.
- Dependencies: patch upgrades are fine. Minor or major upgrades need a separate PR.
- If you can't verify something (a command, an API, a config value), say "I haven't verified this" and stop.
## Standards
- Test coverage on new code: <n>% minimum
- <Language>-specific: <e.g. no `any` in TypeScript, type hints on all public functions>
- Commit messages: <convention, e.g. Conventional Commits>
- PR size: under <n> lines changed where possible
## Glossary
- **<Term>**: <what it means here>. Not "<banned synonym>".
- **<Term>**: <what it means here>.
## Definition of done
- Tests pass locally and the linter is clean
- The change follows the reference implementation
- The PR description explains what changed and why, in plain language
Folder-level CLAUDE.md for one service
For a part of the codebase with its own rules. Claude Code picks it up when working in that folder, so the root file stays short.
<service>/CLAUDE.md# <Service name>
<One sentence: what this service does and who depends on it.>
## Commands
- Test this service only: `<command>`
- Run it locally: `<command>`
## Rules for this folder
- Copy the structure of `<path to reference file>` for new <handlers/jobs/components>.
- Use `<internal library>` for <logging/HTTP/database access>. Not `<popular alternative>`.
- Never call `<external API or other service>` directly. Go through `<client module>`.
- Public interfaces in `<path>` are used by <other teams>. Changing them needs a review from <owner>.
## Gotchas
- <A non-obvious fact that has caused bugs before, e.g. "timestamps in this service are stored in UTC">
- <Another one>
Personal CLAUDE.md for your own preferences
Your own habits, not the team's rules. It applies to every project on your machine and is never committed.
~/.claude/CLAUDE.md# My preferences
## How I like to work
- Keep explanations short. Show the change first, then one line on why.
- Ask before running anything that deletes files or touches a remote.
- When there are several reasonable options, recommend one instead of listing them all.
## My environment
- Editor: <editor>
- Shell: <zsh/bash/fish>
- Package managers I use: <npm/pnpm/uv/...>
## Don't
- Don't add comments that restate the code.
- Don't reformat files you didn't otherwise change.
Shared Claude Code permissions
Committed to the repo so every developer's agent starts with the same guardrails. Personal overrides go in .claude/settings.local.json, which stays out of version control.
.claude/settings.json{
"permissions": {
"allow": [
"Bash(<test command> *)",
"Bash(<lint command> *)",
"Bash(git status)",
"Bash(git diff *)"
],
"deny": [
"Bash(<destructive command> *)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}
Rather not fill these in by hand?
Upload the docs your team already has (onboarding guide, engineering handbook, ownership pages) and AI Workspace Builder generates the CLAUDE.md, a profile for each role, and an install script in 15 to 30 seconds. One free trial workspace, no card required.
Generate from your docsHow to use these well: what each section is for · making the agent follow your conventions