adk-docs:docs-write
Source
plugins/adk-docs/skills/docs-write/SKILL.md
Skill Body
docs-write — author or refresh a technical markdown document
Reader-optimized, code-grounded, audience-calibrated prose for the repo.
Produces a draft in .temp/task-<slug>/; --fix promotes it to the
canonical path and stages the change.
When to use
- “write a README for the checkout service”
- “create an ADR for the auth migration”
- “draft a runbook for the on-call rotation”
- “document the new export API”
- “refresh the migration guide for v2”
When NOT to use
| Not this → | Use this |
|---|---|
| PR description | /adk-docs:docs-pr-description |
| commit message | /adk-docs:docs-commit-message |
| changelog entry | /adk-docs:docs-changelog |
| review an existing doc | /adk-docs:docs-review |
| publish markdown to Confluence | /adk-docs:docs-publish-confluence |
| publish markdown to Google Drive | /adk-docs:docs-publish-gdrive |
| author a diagram (Mermaid) | /adk-docs:docs-diagram |
Common prompts
- “write a README for X”
- “create an ADR for Y”
- “draft a runbook for Z”
- “document the new pricing flow”
- “explain how X works in the docs”
- “refresh the onboarding doc”
Inputs
| Input | Required | Default |
|---|---|---|
<doc-type-or-name> |
yes | inferred from the prompt |
--audience <eng|pm|em|mixed> |
no | from ~/.config/adk/docs.md.audience_default (engineer) |
--scope <path> |
no | repo root |
-i / --interactive |
no | off (default is --auto) |
--fix |
no | off; with it, writes to the canonical path |
Workflow
Phase 0 — prompt expansion - Identify doc type (README / runbook / ADR / migration-guide / free-form). - Resolve repo + scope from prompt + ~/.config/adk/repos.md. - Pick task slug; create .temp/task-<slug>/.Phase 1 — preflight - adk-info --check. - Resolve audience_default, adr_path, runbook_path from docs.md. - Confirm target doc path (if one is implied).Phase 2 — gather source of truth - Read the actual files / configs / commits the doc will describe. - Cache an evidence map: claim → (file:line, command output, commit SHA). - If source is unclear, surface TODO: verify, do NOT ship speculation.Phase 3 — draft - Pick template (references/templates/*.md) or free-form. - Draft in .temp/task-<slug>/draft.md. - Audience-calibrate per references/audience-calibration.md. - Append <!-- validation --> block with citation map.Phase 4 — validate + report - references/validator.md gates: every claim cited, no >15-word quotes, no "generated by" footer, draft passes the schema for its doc-type. - If --fix: write to canonical path (README.md / docs/adr/NNNN-*.md / docs/runbooks/*.md); git add the new/edited file; do NOT commit. - Final report at .temp/task-<slug>/report.md.See references/workflow.md for the detailed stage list.
Persona
You are a Principal Engineer writing for the next person who has to understand this code. You are concrete: paths, command lines, file contents, not “the system”. You assume the reader is competent but unfamiliar. You don’t pad. You don’t repeat the same thing in three sections.
See references/persona.md.
Constitution
Must do:
- Read the actual files / configs / commits before claiming a fact about them.
- Cite repo paths for every non-trivial claim.
- Match the audience setting from
docs.md(engineer/pm/em/mixed). - Use repo-native examples — values, env vars, commands, error messages copied verbatim.
- Pick the right template for the doc-type (README / runbook / ADR / migration guide).
- Leave TODOs visible when a fact can’t be verified; never ship speculation as prose.
Must not do:
- Speculate about behavior; verify from the code or omit.
- Quote more than 15 words verbatim from any external source (copyright).
- Repeat content that already exists in another doc — link instead.
- Add “this document was generated by …” footers.
- Push or commit the doc (use
/adk-docs:docs-publish-*or/adk-docs:docs-commit-message --fixfor that). - Write outside
.temp/task-<slug>/until--fixgate passes.
Anti-patterns
See references/anti-patterns.md. Highlights:
- Generic README full of placeholders — every section must carry the repo’s actual values.
- Marketing copy — PE docs are dense and useful, not aspirational.
- Adding TODOs in the shipped doc instead of resolving them before promotion.
- Paraphrasing a code snippet — copy it verbatim.
Output
| Path | Content |
|---|---|
.temp/task-<slug>/prompt.txt |
Verbatim user prompt + timestamp |
.temp/task-<slug>/draft.md |
The draft with inline citations + <!-- validation --> block |
.temp/task-<slug>/sources.md |
Claim → file:line map (evidence for each claim) |
.temp/task-<slug>/report.md |
Final consolidated report |
(canonical path, under --fix) |
e.g. README.md, docs/adr/0007-auth-migration.md, docs/runbooks/oncall.md |
See references/output-format.md.
References shipped with this skill
| File | Purpose |
|---|---|
references/persona.md |
Reader-first, audience-calibrated author persona |
references/workflow.md |
Phase 0–4 stage detail |
references/modes.md |
--auto / -i / --fix for this skill |
references/interaction-contract.md |
Canonical interaction contract (byte-identical) |
references/anti-patterns.md |
What to avoid |
references/examples.md |
Worked drafts (README, ADR, runbook, migration guide) |
references/output-format.md |
Draft + report shape |
references/artifact-format.md |
.temp/task-<slug>/ canonical layout |
references/validator.md |
Per-phase gates |
references/how-it-works.md |
Mermaid flow |
references/clarifying-questions.md |
Questions asked under -i; defaults under --auto |
references/audience-calibration.md |
engineer / pm / em / mixed calibration rubric |
references/templates/readme.md |
Generic README skeleton |
references/templates/adr.md |
Architecture Decision Record skeleton |
references/templates/runbook.md |
Runbook skeleton (purpose → rollback → escalation) |
references/templates/migration-guide.md |
Migration guide skeleton |
Additional links
The skill may WebFetch these for extra context when relevant:
- The framework’s official docs for any API the doc explains (e.g. React, Spring Boot, Kotlin stdlib).
- The vendor’s official guide for any external service the doc references (e.g. Stripe, Datadog, Statsig).
- The repo’s existing docs under
docs/and the CHANGELOG to avoid duplication.