arch-design
System-design thinking before any doc or code: goals/non-goals, back-of-envelope numbers, components and contracts, failure modes, operability, security,…
Create or update structured docs under docs/ with frontmatter, numbering, lifecycle status, and index regeneration — guides, references, troubleshooting, design docs and ADRs. Use for "write a doc", "document this", "create a guide", "write an ADR", "update the docs". For the
$ npx -y skills add heliohq/ship --skill write-docs --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/write-docsContext preview
The summary Claude sees to decide when to auto-load this skill.
Create or update structured docs under docs/ with frontmatter, numbering, lifecycle status, and index regeneration — guides, references, troubleshooting, design docs and ADRs. Use for "write a doc", "document this", "create a guide", "write an ADR", "update the docs". For the
name: write-docs description: > Create or update structured docs under docs/ with frontmatter, numbering, lifecycle status, and index regeneration — guides, references, troubleshooting, design docs and ADRs. Use for "write a doc", "document this", "create a guide", "write an ADR", "update the docs". For the system-design thinking itself (architecture, trade-offs, failure modes) use /ship:arch-design first — it hands back here to record the decision.
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.
For design docs and ADRs, the thinking is a separate job: `/ship:arch-design` walks the design lenses (numbers, failure modes, trade-offs, red-team) and hands the decision back here. This skill governs how the result is recorded — design category conventions below, Boundaries required. If a design doc is requested and no analysis exists yet, run `/ship:arch-design` first.
**Never:**
that's a description, not a design
Every 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" ---
After creating or updating a doc, regenerate the index:
# SKILL_DIR = this skill's base directory (announced as "Base directory # for this skill" when the skill loaded) — your cwd is the user's repo, # so a bare relative path will not find the plugin's scripts. bash "$SKILL_DIR/../../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.
docs/<category>/{number}-{kebab-case-topic}.mdExample: `docs/design/029-prototype-v3-web-migration.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 artAn agentic development harness for Claude Code & Codex: agent-routed workflows from raw requirement to green PR.
System-design thinking before any doc or code: goals/non-goals, back-of-envelope numbers, components and contracts, failure modes, operability, security,…
Run Ship's full production workflow from raw requirement to PR: design, dev, E2E, review, QA, refactor, and handoff. Use only for explicit /ship:auto, auto…
Plan implementation before coding: investigate the repo, write spec and plan, and validate with a peer. Use for "plan", "design approach", "scope", or any…
Implement from a spec or plan: extract stories, build in safe waves, test, commit, and get peer review per story. Use for "implement", "build/code this plan",…
Add durable end-to-end tests for user/API-visible behavior. Detect or scaffold the E2E framework, write tests, run the app, and store evidence. Use for E2E,…