"Maintain project instructions and human docs: architecture, ADRs, plans, audits and handoffs. Use for documentation work or saving project progress."
Resources
1Install
npx skillscat add nbfrodri/agent-tack/project-docs Install via the SkillsCat registry.
Project documentation
Documentation exists so that someone new, whether a person or an AI, can understand the project and work on it without asking. That only works if it's short, precise and current. A page nobody reads, or one that's out of date, is worse than none.
Writing rules
- Simple, precise, concise. Short sentences, lists and tables over paragraphs, one topic per file. Each document starts with one or two lines saying what it is for.
- Show, don't narrate. Use a diagram (Mermaid), a table or a command instead of a paragraph describing them. Use real, copy-pasteable commands that you've run.
- No filler. No marketing, no restating the code, no generic advice ("write clean code"). If a section has nothing specific to say, leave it out.
- One source of truth. Each fact lives in one place; other docs link to it instead of repeating it.
- Same change, same PR. Docs are updated in the change that makes them outdated (see the checklist in
dev-workflow→references/documentation.md). - Delegate large updates. Docs pending in 3 or more files after a commit go to the
docs-writeragent (economical model); ADRs and design decisions stay with the main assistant. - English (as decided in
conventions.md), Markdown, file names in kebab-case.
Two audiences, one set of docs
| Entry point | For | Content |
|---|---|---|
README.md |
Humans | What it is, quick start, links into docs/. Readable in two minutes. |
AGENTS.md (+ CLAUDE.md containing @AGENTS.md) |
AI assistants | Terse and imperative: commands, architecture in five lines, conventions and rules specific to this repo, a map of docs/. Under ~100 lines. |
docs/ |
Both | The detail. Written for humans, structured enough for an AI to navigate (clear headings, tables, consistent file names). |
Structure
README.md
AGENTS.md
CLAUDE.md # contains: @AGENTS.md
docs/
README.md # index: one line per document
overview.md # technical sheet
architecture.md # components, data flow, decisions, with Mermaid diagrams
development.md # setup, commands, tests, project structure, conventions specific to this repo
deployment.md # environments, how to deploy and roll back
glossary.md # domain terms (English term, original term, meaning)
api.md / api/ # API reference, or a link to the generated OpenAPI
adr/NNNN-title.md # architecture decision records
runbooks/<task>.md # step-by-step operational procedures (incidents, restores, rotations)
plans/YYYY-MM-DD-slug.md
audits/YYYY-MM-DD-<type>-slug.md # security, performance, code review, accessibility…
handoffs/YYYY-MM-DD-slug.md
archive/{plans,handoffs,audits}/ # finished working documents (git keeps their history)
ai/README.md # AI policy for this project
ai/log.md # AI work log
ai/prompts.md # prompts that worked well here
assets/screenshots/YYYY-MM-DD-slug.png
assets/diagrams/ # only for diagrams that can't be MermaidCreate documents when there's something to put in them, not empty placeholders. The tack scaffold creates only AGENTS.md, CLAUDE.md, docs/architecture.md and docs-map.txt. The structure above is a menu. During initialization, follow new-project → references/onboarding.md to select useful additions with the user. Plans, handoffs and the AI log arise from actual work and its mode, not empty template copies.
Templates for every document are in this skill's assets/ (assets/README.md, assets/AGENTS.md, assets/docs/...). Copy them, fill them in, and delete any section that doesn't apply.
Working documents (plans, audits, handoffs)
These are committed so the reasons behind the work stay in history and anyone can pick the work up from another machine.
- Plans: at the strict workflow level, when a plan is approved (from you or the
planneragent), save it todocs/plans/withStatus: approved. Update the status todone(orabandoned, with the reason) when the work finishes and move it todocs/archive/plans/, sodocs/plans/shows only open work. Commit with the work it describes when you can, asdocs(plans): …otherwise. - Audits: reports from
code-reviewer,security-auditorandperformance-analyzer(or manual reviews) that matter beyond the current conversation, such as pre-release audits or large reviews, go todocs/audits/, with findings and their status. The agents are read-only, so the main agent saves the file. Commit asdocs(audits): …. Once every finding is fixed or tracked elsewhere, move it todocs/archive/audits/. - Handoffs (continuous checkpoints): a session can stop at any moment (usage limits, context running out, a crash), and the AI cannot query the remaining usage, so don't wait until the end to write the handoff:
- Create
docs/handoffs/YYYY-MM-DD-slug.md(template inassets/,Status: in progress) when the work will span sessions or be delegated, or when context or usage looks low; lite never needs one.unleashcreates one from the start. - Update it at milestones (a merged PR, a plan step), not every commit: done, next step, open questions, how to verify. Edit the file without a commit each time; it survives on disk even if the session dies, and commit it with the next change.
- Refresh it immediately when there are signs the session may end soon: a low remaining-context or token budget, a usage-limit warning, a very long session, or before a risky or long-running step.
- Commit it (
docs(handoffs): …) when stopping without finishing, before switching machine or AI tool, or when the user asks for a handoff. - When the task is finished, set
Status: doneand move it todocs/archive/handoffs/; startup context reads onlydocs/handoffs/. - Another AI or person must be able to continue from it alone.
- Create
- Screenshots: UI changes, bugs and audits can include screenshots in
docs/assets/screenshots/, referenced from the relevant document. Never include real personal data in screenshots.
AI usage
The project documents how AI is used. This is the place for it: commits stay free of AI attribution (as the user decided), and this log is where AI involvement is recorded.
docs/ai/README.md: which assistants are used and with which configuration (skills, hooks, MCP servers), what the AI may do on its own and what needs human review.docs/ai/log.md: after each strict-level task (and any audit), append one row in the same commit as the change it records, not in a separate commit: date, tool and model, task, outcome (the branch or PR; a commit cannot name its own SHA), what a human reviewed. Keep the newest entries at the top.docs/ai/prompts.md: when a prompt or request worked notably well for this project, offer to save it (one line saying when to use it, then the prompt).
Architecture docs
Document actual architecture in docs/architecture.md (or link to the project's established source there). Link it from the README and docs index when those files exist. During onboarding, select missing files with the user; later keep architecture current in the same authorized change that alters components, dependencies or flows. Never invent a stack or link to nonexistent documents.
Use Mermaid, which GitHub renders, and keep each diagram small:
- a context diagram: the system, its users and the external systems it talks to;
- a container diagram: the apps and services, databases and queues, and how they communicate;
- a sequence diagram only for the one or two flows that are hard to follow in code (checkout, auth).
Below the diagrams, write a short list per component: responsibility, technology, where its code is. Explain significant decisions in ADRs and link to them.