writing-project-docslisted
Install: claude install-skill hk9890/claude-dev-tools
# Writing project docs
Every file in the set has one owner. Content placed outside that owner's boundary is a defect
**even when every sentence in it is true** — a reader who loads the file for its topic pays for the
stray content and still has to go find the real thing.
Only `README.md`, `AGENTS.md` and `CLAUDE.md` are required. Every topic doc under `docs/` is
optional and created lazily, when the repository has real local guidance for that topic.
**What to write or fix:** $ARGUMENTS — a doc path, a draft, or a request; with no argument, the doc
under discussion.
## Before you write a line
1. **Which file owns this?** [`references/project-setup.md`](references/project-setup.md) — the
canonical file set and every file's *Audience* / *Inside* / *Not inside* contract. Decide the
destination before the wording; content that fails the contract moves to the file that owns it
rather than getting softened to fit.
2. **What does that file look like?** [`examples/`](examples/) holds a worked example of every file
with real structure (`CLAUDE.md`'s is its single `@AGENTS.md` line, fixed in the contract).
Match its structure and register. `AGENTS.md` especially: `### <use case>` sections, each naming
the doc that **MUST** be read and the action that triggers it — there are no optional routes.
It routes; it never carries the procedure itself.
3. **How is it written?** [`references/project-doc-guidelines.md`](references/project-doc-guidelines.md)
— the six na