doc-writer
Skill1 starsChanged 38 days agoMITView on GitHub
Create, update, and manage technical documentation in the docs/ folder. Use when: writing architecture docs, BA specs, test plans, API references, ADRs, or any project documentation. Triggers: 'write doc', 'create architecture doc', 'add BA spec', 'test plan', 'update docs', 'generate index', 'document this', 'ADR', 'clean up docs folder'.
20 other projects use a version of this.
Adopted by
Most recently taken up by
- ayushgoel/skillstheir own version, first seen Nov 5, 2026
- k1lgor/virtual-companytheir own version, first seen Nov 1, 2026
- claude-world/director-mode-litetheir own version, first seen Nov 1, 2026
- TaiMaBenJi/taima-skillstheir own version, first seen Oct 11, 2026
- redai-infra/Relaxtheir own version, first seen Oct 8, 2026
- mitchdenny/hex1btheir own version, first seen Oct 8, 2026
Used with
Projects with it also use code-review.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
GoogleSkillcode-review
Adversarial systems, concurrency, memory-model, and architecture code review protocol. Use this skill whenever asked to review code, PRs, diffs, or branches in Filament.
Also in 3 projects that use this
Other versions20 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 20
- microsoft/vscode-docs★ 6.7ksame name
- redai-infra/Relax★ 675same name
- microsoft/aspire.dev★ 202same name
- mitchdenny/hex1b★ 182same name
- claude-world/director-mode-lite★ 80same name
- zeroclaw-labs/zeroclaw-skills★ 65same name
- nimbalyst/skills★ 28same name
- k1lgor/virtual-company★ 4same name
- dqtx760/skills-manage★ 2same name
- GeziP/doc-wiki★ 2same name
10 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository24 other files it gives its agents.
- .github/skills/hand-drawn-diagrams/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/skills/hand-drawn-diagrams/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- canvas-designSkill
- baSkill
- consultantSkill
- critical-thinkingSkill
- cybersecuritySkill
- debuggerSkill
- designerSkill
- frontend-designSkill
- git-workflowSkill
- hand-drawn-diagramsSkill
- marketingSkill
- philosopherSkill
- pmSkill
- psychologistSkill
- qcSkill
- remotion-best-practicesSkill
- setup-copilotSkill
- technical-leadSkill
- test-data-generatorSkill
- unit-testingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 9 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Use kebab-case only: arch-translation-service.md, not ArchTranslationService.md
- Distinctive: line 33
Never use spaces or uppercase in filenames
- Distinctive: line 37
No duplicate content across files — link instead
- Very specific: line 38
Keep _index.md up to date after every add/rename/delete (see automation below)
- Very specific: line 45
Every .md doc in docs/ must begin with this YAML frontmatter block:
- Very specific: line 68
Always update updated: and version: when editing an existing doc.
- Distinctive: line 100
After adding or changing docs, regenerate the index.
- Distinctive: line 125
Always prefer Mermaid diagrams embedded directly in Markdown (renders on GitHub, in VS Code with the Markdown Preview Mermaid extension, …
- Distinctive: line 127
Use these diagram types:
- Very specific: line 137
If an image is needed (e.g., screenshots, hand-drawn diagrams), store it in docs/images/ and link as !alt.
- Distinctive: line 190
Use this when embedding a diagram image is preferred over inline Mermaid (e.g., for PDF exports or external sharing).
- Distinctive: line 258
Write the content using the structure for that type
- Very specific: line 259
Run python .github/skills/doc-writer/generate_docs_index.py to update the index
- Distinctive: line 263
Read the current file — understand its version and scope
- Very specific: line 270
Add a notice at the top: > ⚠️ This document is deprecated as of YYYY-MM-DD.
- Distinctive: line 278
Before finishing any doc:
“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Doc Writer
Creates, updates, and manages technical documentation in the docs/ folder, following consistent structure, versioning, and quality standards suited to this project.
Folder Structure & Organization
The docs/ folder uses a flat, category-prefixed layout — no deep nesting. Every file is discoverable from the root.
docs/
├── _index.md # Auto-generated navigation index (do not edit manually)
├── arch-{feature}.md # Architecture / system design docs
├── adr-{NNN}-{slug}.md # Architecture Decision Records (numbered, sequential)
├── api-{feature}.md # API reference / endpoint docs
├── ba-{feature}.md # Business Analysis / requirements specs
├── test-{feature}.md # Test plans and QA strategies
├── ops-{topic}.md # DevOps, deployment, runbooks
└── guide-{topic}.md # Developer how-to guidesNaming rules:
- Use kebab-case only:
arch-translation-service.md, notArchTranslationService.md - Be specific:
arch-doc-translation-v2.mdnotarchitecture.md - ADRs are numbered sequentially from
001:adr-001-use-mysql.md - Never use spaces or uppercase in filenames
Cleanliness rules:
- One topic per file — split if a file exceeds ~300 lines
- No duplicate content across files — link instead
- Keep
_index.mdup to date after every add/rename/delete (see automation below) - Deprecated docs: add
status: deprecatedin frontmatter and move todocs/archive/
Document Frontmatter (Version Tracking)
Every .md doc in docs/ must begin with this YAML frontmatter block:
---
title: "Human-Readable Title"
type: arch | adr | api | ba | test | ops | guide
status: draft | review | stable | deprecated
version: 1.0.0
created: YYYY-MM-DD
updated: YYYY-MM-DD
authors: [Name]
related:
- docs/arch-related-feature.md
---Versioning conventions (SemVer-lite):
| Change type | Bump |
| Typo / minor wording fix | patch: 1.0.0 → 1.0.1 |
| Section added / significantly expanded | minor: 1.0.0 → 1.1.0 |
| Document restructured or scope changed | major: 1.0.0 → 2.0.0 |
Always update updated: and version: when editing an existing doc.
Git history is the full audit trail. The frontmatter is a human-readable signal only.
Document Templates by Type
Each doc type has a ready-to-use template file in the templates/ directory. Copy the relevant template, rename it following the naming rules above, and fill in the placeholders.
| Type | Template | Filename pattern |
| Architecture | arch-template.md | arch-{feature}.md |
| Business Analysis | ba-template.md | ba-{feature}.md |
| Test Plan | test-template.md | test-{feature}.md |
| ADR | adr-template.md | adr-{NNN}-{slug}.md |
| API Reference | api-template.md | api-{feature}.md |
Key structure highlights by type:
| Type | Must include | Mermaid diagrams |
arch | Context, System Overview, Data Flow, NFRs | C4Context + sequenceDiagram |
ba | User Stories, Business Rules, Data Model, Workflows | erDiagram + flowchart |
test | Scope, Test Cases table, Coverage Goals | — |
adr | Context, Decision, Consequences, Alternatives | — |
api | Base URL, Auth, Endpoints with request/response examples | — |
Generating the Index (docs/_index.md)
After adding or changing docs, regenerate the index. The agent should write or run a small inline script that:
- Scans all
.mdfiles indocs/(excluding_index.mdandarchive/) - Parses frontmatter (
title,type,status,version,updated) - Groups by
typeand writes a Markdown table per group todocs/_index.md
Expected output format:
# Documentation Index
_Auto-generated. Do not edit manually. Run `python .github/skills/doc-writer/generate_docs_index.py` to refresh._
## Architecture
| File | Title | Status | Version | Updated |
|---|---|---|---|---|
| [arch-translation.md](arch-translation.md) | Architecture: Translation Service | stable | 1.2.0 | 2026-03-01 |
## ADRs
| File | Title | Status | Version | Updated |
...Diagrams — Mermaid First
Always prefer Mermaid diagrams embedded directly in Markdown (renders on GitHub, in VS Code with the Markdown Preview Mermaid extension, and in most doc platforms).
Use these diagram types:
| Need | Mermaid type |
| System/component overview | C4Context, C4Container |
| Request flow | sequenceDiagram |
| Process / state machine | flowchart LR or stateDiagram-v2 |
| Data model / ERD | erDiagram |
| Deployment / infra | graph TD |
| Timeline / Gantt | gantt |
If an image is needed (e.g., screenshots, hand-drawn diagrams), store it in docs/images/ and link as .
Scripts
Three helper scripts live alongside this SKILL.md and can be invoked directly by the agent or by the user.
generate_docs_index.py — Regenerate docs/_index.md
Scans all .md files in docs/, parses frontmatter, and writes an auto-generated navigation index.
# Default (docs/ relative to cwd)
uv run .github/skills/doc-writer/generate_docs_index.py
# Custom docs directory
uv run .github/skills/doc-writer/generate_docs_index.py --docs-dir path/to/docsOptions: --docs-dir (default: docs/)
render_mermaid.py — Mermaid → Image
Renders any Mermaid diagram to PNG, SVG, or PDF using the mermaid.ink API. No local Node.js required.
# From a .mmd file
uv run .github/skills/doc-writer/render_mermaid.py \
--input diagram.mmd \
--output docs/images/flow.png
# Inline code
uv run .github/skills/doc-writer/render_mermaid.py \
--code "graph LR; A[Start] --> B[Process] --> C[End]" \
--output docs/images/flow.svg
# From stdin
cat diagram.mmd | uv run .github/skills/doc-writer/render_mermaid.py \
--output docs/images/flow.png
# Dark theme
uv run .github/skills/doc-writer/render_mermaid.py \
--input diagram.mmd --theme dark \
--output docs/images/flow.pngOptions: --input / --code / stdin, --output (required), --theme (default/dark/forest/neutral)
Use this when embedding a diagram image is preferred over inline Mermaid (e.g., for PDF exports or external sharing).
render_chart.py — Data → Chart / Dashboard
Renders bar, line, area, pie, donut, and horizontal bar charts, plus multi-chart dashboards, from a JSON data file. Requires matplotlib (uv add matplotlib).
# Single bar chart
uv run .github/skills/doc-writer/render_chart.py \
--input data.json --type bar \
--output docs/images/revenue.png
# Pie chart
uv run .github/skills/doc-writer/render_chart.py \
--input data.json --type pie \
--output docs/images/share.png
# Multi-chart dashboard
uv run .github/skills/doc-writer/render_chart.py \
--input dashboard.json --type dashboard \
--output docs/images/dashboard.pngSupported types: bar, line, area, pie, donut, horizontal_bar, dashboard
Input JSON format — bar / line / area:
{
"title": "Monthly Revenue",
"xlabel": "Month", "ylabel": "Revenue ($)",
"series": [
{ "label": "2025", "x": ["Jan","Feb","Mar"], "y": [100, 200, 150] }
]
}Input JSON format — pie / donut:
{
"title": "Market Share",
"labels": ["A", "B", "C"],
"values": [45, 30, 25]
}Input JSON format — dashboard:
{
"title": "Project Dashboard",
"charts": [
{ "type": "bar", "title": "Weekly Calls", "series": [...] },
{ "type": "pie", "title": "Status", "labels": [...], "values": [...] }
]
}Options: --input (required), --type (default: bar), --output (required), --dpi (default: 150)
Workflow
Creating a new doc
- Choose the correct type prefix and filename
- Copy the matching template above
- Fill in the frontmatter (
status: draft,version: 1.0.0) - Write the content using the structure for that type
- Run
python .github/skills/doc-writer/generate_docs_index.pyto update the index - Set
status: stablewhen content is reviewed and complete
Updating an existing doc
- Read the current file — understand its version and scope
- Make targeted changes
- Bump
versionand updateupdateddate in frontmatter - Regenerate the index if the title or status changed
Deprecating a doc
- Change
status: deprecatedin frontmatter - Add a notice at the top:
> ⚠️ This document is deprecated as of YYYY-MM-DD. See [replacement](link). - Move file to
docs/archive/ - Regenerate the index
Quality Checklist
Before finishing any doc:
- Frontmatter present with all required fields
versionandupdatedcorrect- At least one Mermaid diagram for arch/ba/flow-heavy docs
- All tables have headers and consistent columns
- No broken internal links
docs/_index.mdregenerated- Filename follows
{type}-{slug}.mdkebab-case convention
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

