Fill this in per project. Keep it lean — project-WIDE context only. Task-specific detail belongs in the task prompt, not here. See
docs/PROMPTS.mdfor a prompt that drafts this file for you.
<1–3 sentences: domain, what it does, who uses it.>
- Language / runtime:
- Package manager:
- Key directories (mirror
.claude/gates.json→modules):path/— what lives here
- Code style / lint rules of note:
- Testing approach (frameworks, where tests live):
- Definition of done: <e.g. builds, lints, types pass, tests + coverage ≥ threshold, reviewers approve>
This repo is set up for orchestrated multi-agent development. See docs/USAGE.md.
- Agents:
.claude/agents/— orchestrator, implementer (worktree-isolated), reviewer, test-runner. - Adapter:
.claude/gates.json— module map, gate commands, model routing. This is the file to keep current. - Gates run via
.claude/scripts/gate.sh <name>and the hooks in.claude/settings.json. - Workflow:
.claude/workflows/feature-fanout.jsfor deterministic fan-out.
A worker assigned to a module MUST NOT edit files outside that module's path. Cross-module work is
re-scoped by the orchestrator, never reached across by a worker.
<pr-per-agent | orchestrated-sequential-merge> — base branch main. (Mirror in gates.json → merge.)
- Don't put secrets in the repo.
- Don't bypass the gates.
- Don't
git add -A/git add ./git commit -a— stage explicit paths by name. Under the sandbox, masked config paths (.mcp.json,.gitconfig,.claude/{launch.json,routines,…}, editor dirs) appear as/dev/nullcharacter-device nodes; git can't index a device node, so a blanket add aborts the whole commit (can only add regular files, symbolic links or git-directories). Ignore anycrw-entries ingit status— they're sandbox masks, not your changes. Seedocs/HARDENING.md→ Caveats.