Document
Custom configuration for Claude Code that turns it into a disciplined engineering partner with structured workflows, strict guardrails, and domain-specific expertise.
npx -y skills add domengabrovsek/claude --skill documentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create or refresh technical engineering docs in the current repo's /docs/ tree. Diataxis layout, mermaid diagrams, ADR support, drift audit. Use when the user says 'write docs', 'document this', 'audit the docs', or '/document'.
SKILL.md
8.1 KB, as published. Nobody here has run it
Generate or update engineering documentation for: $ARGUMENTS
This skill writes docs that are dual-audience: engineers reading on GitHub AND Claude agents reading the repo. Apply the rules below without exception.
Subcommands
why-not-mechanizable: skill workflow guidance; each step requires understanding the surrounding context (repo, task shape, prior state).
Parse the first word of $ARGUMENTS as the subcommand:
explain <topic>- create/updatedocs/explanation/<topic>.md(the why and how it fits together)(review-time: see section note)reference <topic>- create/updatedocs/reference/<topic>.md(lookup tables, env vars, schemas, enums)(review-time: see section note)how-to <task>- create/updatedocs/how-to/<task>.md(a recipe to do one thing)(review-time: see section note)tutorial <topic>- create/updatedocs/tutorials/<topic>.md(learning path, onboarding)(review-time: see section note)adr "<title>"- draft the next-numbered ADR indocs/adr/(review-time: see section note)diagram <type> <topic>- add or update a mermaid diagram inside the matching doc(review-time: see section note)audit- read everydocs/**/*.md, compare against current code, produce a drift report (read-only, no edits)(review-time: see section note)bootstrap- create the fulldocs/skeleton in a repo that has none yet (uses~/.claude/templates/docs-readme.mdand~/.claude/templates/adr.md)(review-time: see section note)
If no subcommand matches, ask the user which one they meant before writing anything.
Diataxis routing
If a topic does not clearly fit one quadrant, ask. Do not split a single topic across quadrants.
| Quadrant | Use when... | Don't use when... |
|---|---|---|
| explanation | Reader asks why does this exist or how does this fit together | They want to do a concrete task |
| reference | Reader needs to look up an exact value, name, or signature | They want narrative context |
| how-to | Reader has a goal and needs steps | They are still trying to understand the concept |
| tutorial | Reader is new and learning end-to-end | They already know the system |
Quality rules (apply to every doc you write)
- One topic per file. If two H1-worthy ideas appear, split into two files.
(review-time: see section note) - Lead with TL;DR in 3 sentences or fewer, before any heading. Body expands.
(review-time: see section note) - Cite source files with backticked relative paths (
src/foo/bar.ts). Link, do not paste. Inline code blocks longer than 15 lines are forbidden - link to the file instead.(review-time: see section note) - Tables over prose for any list of more than 3 parallel items.
(review-time: see section note) - Diagrams for relationships only. No diagram if a 3-row table conveys it. Mermaid by default; drawio for complex per
rules/diagrams.md. The/diagramskill picks format and writes the source.(review-time: see section note) - Why before how. Every explanation doc opens with the problem the thing solves.
(review-time: see section note) - No forward-looking content. Document only behavior that exists now. No "we plan to", no "in the future".
(review-time: see section note) - No issue/PR/ticket numbers. They rot. Put them in PR descriptions and git history, not docs.
(review-time: see section note) - ADRs are immutable once Accepted. A new decision = a new ADR with
Status: Supersedes NNNN. Never edit the body of an Accepted ADR.(review-time: see section note) - Max 300 lines per doc. If longer, split by sub-topic.
(review-time: see section note) - No emoji unless the user explicitly asked for them.
(review-time: see section note) - No em dashes. Use a regular hyphen.
(review-time: see section note)
Diagram conventions
Mermaid is the default. Use ```mermaid fenced blocks - GitHub renders natively. Diagram type by purpose:
flowchart TDfor high-level architecture and decision trees(review-time: see section note)sequenceDiagramfor request flows, auth flows, async messaging(review-time: see section note)erDiagramfor data models(review-time: see section note)stateDiagram-v2for state machines (order status, sync status)(review-time: see section note)flowchart LRwith subgraphs for C4-context (services, queues, datastores)(review-time: see section note)
Keep node labels short. Long descriptions go in adjacent prose. One diagram per doc maximum unless the doc is explicitly an architecture overview.
Switch to drawio when the diagram needs custom shapes, cloud icons, >2 swimlanes, multi-layer architecture, or precise layout. Source lives at docs/diagrams/<topic>.drawio with a committed PNG at docs/diagrams/<topic>.png (GitHub previews need the PNG; maintainers need the source). Embed via:

*Source: [`<topic>.drawio`](diagrams/<topic>.drawio)*
Use the /diagram skill (or mcp__drawio__* tools directly) to author drawio diagrams. Full policy in rules/diagrams.md.
File layout the skill produces or expects
<repo>/
docs/
README.md # index grouped by Diataxis quadrant
explanation/
reference/
how-to/
tutorials/
adr/
README.md # ADR index, table of {NNNN, title, status, date}
NNNN-<slug>.md
diagrams/ # optional shared .mmd snippets, only if reused
ADR procedure
When adr "<title>":
- Scan
docs/adr/for highest existing number. New file =NNNN-<kebab-title>.md, zero-padded to 4 digits.(review-time: see section note) - Use
~/.claude/templates/adr.mdas the body. Fill<Title>, today's date, statusProposed.(review-time: see section note) - Append a row to
docs/adr/README.mdtable.(review-time: see section note) - Ask the user for Context, Decision, Consequences before finalizing - never invent a decision.
(review-time: see section note)
Audit procedure
When audit:
- Walk
docs/**/*.md.(review-time: see section note) - For each doc, extract source-file citations (backticked paths). Verify they exist with
Glob/Read. Report missing files.(review-time: see section note) - For each ADR, verify
Statusis one of {Proposed, Accepted, Superseded by NNNN, Deprecated}. Flag malformed ADRs.(review-time: see section note) - For each
docs/reference/*.md, scan referenced enums/configs (e.g.src/**/enums/*.ts) and report mismatches between doc tables and code.(review-time: see section note) - Report doc files exceeding 300 lines.
(review-time: see section note) - Report any
docs/**/*.mdnot linked fromdocs/README.md.(review-time: see section note) - Output a report only - do NOT edit files. The user runs targeted subcommands afterward to fix drift.
(review-time: see section note)
CLAUDE.md integration
After bootstrapping or significant doc changes, update the repo's CLAUDE.md so it points to docs/README.md in its Documentation section. This keeps Claude's auto-discovery working.
Verification before finishing
markdownlint-cli2 docs/**/*.mdif the repo has it configured (check for.markdownlint*files).(review-time: see section note)- All mermaid blocks are syntactically valid (rough check: balanced fences, recognized diagram type).
(review-time: see section note) - All source-file citations resolve.
(review-time: see section note) - The doc fits the quality rules above.
(review-time: see section note)
If any check fails, fix it before reporting done.
Out of scope
- Generated API references (Swagger/OpenAPI, TypeDoc) - separate tooling.
(review-time: see section note) - Product specs - those live in their own repo / system.
(review-time: see section note) - Anything outside
docs/in the current repo.(review-time: see section note)