From ship
Creates or updates structured docs under docs/ with frontmatter, numbering, lifecycle status, and index regeneration. Use for guides, references, decisions, and architecture docs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ship:write-docsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
All structured docs live under `docs/`. Each subdirectory is a category (e.g., `docs/design/`, `docs/guides/`, `docs/troubleshooting/`). Follow this standard when creating new docs or modifying existing ones.
All structured docs live under docs/. Each subdirectory is a category (e.g., docs/design/, docs/guides/, docs/troubleshooting/). Follow this standard when creating new docs or modifying existing ones.
Never:
current without verifying claims against codeEvery managed doc MUST start with YAML frontmatter:
---
title: "Human-readable title"
description: "One sentence, under 120 chars — enough for an AI to decide whether to read the doc."
category: "design"
number: "002"
status: current | partially-outdated | superseded | draft | not-implemented
services: [scripts, hooks] # only when specific dirs/components are affected
superseded_by: "034" # only when status is superseded
related: ["design/001", "guides/003"] # category-qualified when cross-category
last_modified: "2026-04-13"
---
# heading below the frontmatter. Use quotes if it contains special chars."design", "guides", "troubleshooting"). Must be one of the subdirectories under docs/."002", "029"). Used for file naming (029-topic.md) and cross-referencing.YYYY-MM-DD) when the doc was last updated. Must be updated on every edit.superseded. Points to the replacement doc as category/number.category/number references for navigation.After creating or updating a doc, regenerate the index:
bash "../../scripts/generate-docs-index.sh"
This produces docs/DOCS_INDEX.md — a compact table (Category, #, Status, Name, Description, Last Modified, Path) that agents can read on demand to see what docs exist without opening each one. Superseded docs are excluded from the index.
draft → current → partially-outdated → superseded
↘ not-implemented (if design was never built)
| Status | Meaning |
|---|---|
draft | Proposed but not yet approved or implemented |
current | Content matches production code |
partially-outdated | Core content still applies but some details have drifted from code |
superseded | Replaced by another doc — must set superseded_by |
not-implemented | Approved but never built |
When changing status, also update last_modified to today's date.
ls docs/<category>/ | sort and pick the next zero-padded 3-digit number (e.g., 003, 010).design/014-credentials-vault/plan-1-vault-service.md) share the parent number.docs/<category>/{number}-{kebab-case-topic}.md
Examples:
docs/design/029-prototype-v3-web-migration.mddocs/guides/003-getting-started.mddocs/troubleshooting/001-auth-failures.md---
(frontmatter)
---
# {Number} — {Title}
## Status
{Status explanation with context — why it has this status, what changed}
## Summary
{2-3 sentences: what problem this solves and the key content}
## (Body sections — flexible per topic and category)
## References
- Related docs, external links, prior art
Each category has its own natural structure. The frontmatter and status lifecycle are universal; the body structure varies by category.
currentdocs/ becomes a categoryguides/003-getting-started"grep -r "old-name" docs/Before marking a doc as current, verify key claims against code:
Update last_modified when you complete verification.
After writing or updating a doc, regenerate the index and output the report card (read skills/.shared/report-card.md for the standard format):
## [Write Docs] Report Card
| Field | Value |
|-------|-------|
| Status | <DONE / BLOCKED> |
| Summary | <category/number: doc title — created / updated / superseded> |
### Metrics
| Metric | Value |
|--------|-------|
| Docs created | <N> |
| Docs updated | <N> |
| Index regenerated | yes / no |
### Artifacts
| File | Purpose |
|------|---------|
| docs/<category>/<number>-<topic>.md | The doc |
| docs/DOCS_INDEX.md | Regenerated index |
### Next Steps
1. **Review the doc** — read it and verify claims against code
2. **Design thinking** — /ship:arch-design if the architectural analysis needs more depth
3. **Ship it** — /ship:handoff to create a PR with the doc changes
npx claudepluginhub heliohq/ship --plugin shipGuides project documentation structure, content requirements, and best practices. Includes templates for README, ARCHITECTURE, API docs, and change history.
Authors technical documentation through a repeatable workflow: audience analysis, Diátaxis-mode selection, structure, draft, review, publish. Covers READMEs, ADRs, API docs, and runbooks.