SkillAtlasSkill 详情

write-docs

An agentic development harness for Claude Code & Codex: agent-routed workflows from raw requirem...

审核状态:已审核Quality 72Security 70

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年9月13日

Ship: AI-Powered Software Development Harness

An agentic development harness for Claude Code & Codex: agent-routed workflows from raw requirement to green PR.

Ship helps agents choose and run the right amount of software delivery process: one standalone phase, a grouped quality/build bundle, or the full raw-input-to-green-PR flow.

Ship workflow: gated stages, disk artifacts, fresh subagents

How It Works

Ship is a harness, not a copilot. It doesn't help AI write code — it constrains AI to produce reliable results through mechanically enforced quality gates.

The problem Ship solves: AI coding agents are capable but unreliable. They skip tests, hallucinate about code they haven't read, review their own work and call it good, and declare victory without evidence. Ship makes these failure modes structurally impossible.

  • Use Ship chooses the right route. /ship:use-ship decides whether the task needs one skill, a phase bundle, or the full /ship:auto workflow.
  • Production artifacts stay organized. When a task needs durable docs, agents use the repo's existing convention or create a focused docs/ship/<task-id>/ folder for requirements, design, engineering, quality, delivery, and archive notes.
  • Atomic skills stay standalone. Focused skills like /ship:dev, /ship:e2e, /ship:review, /ship:qa, /ship:refactor, and /ship:handoff work directly without a full workflow.
  • Input, state, and outputs are separate. Raw requirements live under input/. The orchestrator keeps only minimal run state. Markdown artifacts and repository code are the deliverables.
  • Every phase is isolated. The reviewer has never seen the implementation context. The QA evaluator can only see the spec, the diff, and the running application. Fresh context per phase means no accumulated bias.
  • Plans are adversarially tested. An independent peer challenger produces code-grounded objections with file paths and snippets. The planner must respond with evidence, not hand-waving. Two rounds before you see anything.
  • Evidence is hierarchical. L1 (screenshot, curl response, console log) is the only acceptable proof. L2 (HTTP 200, "tests passed") is insufficient. L3 ("should work based on the code") is an automatic FAIL.
  • State lives on disk, not in memory. The current phase is tracked in local state, and dev keeps a per-story ledger. On resume — or after context compaction — the orchestrator reads disk and picks up where it left off instead of redoing finished work. A stop-gate hook blocks session exit while the workflow is active.
  • Context moves as files, judgment stays expensive. Story briefs, implementer reports, and review diffs are handed to subagents as file paths, not pasted text — nothing bulky parks in the host's context. Every subagent dispatch names its model tier: mechanical transcription can go a tier down, reviewers have a mid-tier floor, and judgment calls never leave the host (adopted from superpowers v6's measured results).
  • The host can't game its own reviewers. Reviewer dispatches carry the spec's constraints verbatim, never "don't flag X" or pre-rated severity. Reviews are read-only, implementer rationales don't downgrade findings, and a defect the plan itself mandates still gets reported — the user decides.
  • The finish line is checks green, not PR created. After opening the PR, Ship enters a goal-directed fix loop — read CI failures, fix the smallest real cause, address review comments, resolve merge conflicts — and keeps going while each round makes progress. It escalates on evidence, not a counter: the same failure surviving a fix aimed at it, an issue needing human judgment, or an external blocker.
  • Test-driven implementation. Stories follow a RED-GREEN-REFACTOR cycle with per-story code review before merge.
image

Installation

Claude Code

/plugin marketplace add heliohq/ship
/plugin install ship@heliohq

Codex

/plugins

Search for Ship, then install it. In Codex App, open Plugins in the sidebar and install Ship from there. Codex loads Ship's skills, MCP config, and hooks from .codex-plugin/plugin.json — the same routing hint and quality gates as Claude Code.

Verify Installation

Open a fresh session and confirm the /ship:* skills are available — for example, run /ship:use-ship plan out a user authentication system.

Updating

/plugin update ship

Skills

Run /ship:use-ship when you want the agent to choose the right Ship route. Run /ship:auto when you explicitly want the full staged workflow. Or run individual phases when you only need one; atomic skills do not require an active auto run.

SkillDescription
/ship:use-shipRoute the request to a standalone skill, phase bundle, or full flow
/ship:autoStaged workflow: input → design/spec+plan → dev → E2E → review → QA → refactor → handoff
/ship:designAdversarial spec + plan with peer challenge rounds
/ship:devHost implements, peer cross-validates; parallel waves for file-independent stories
/ship:e2eCodify the change's acceptance criteria as persistent E2E tests, detect or scaffold the framework, run them against the real app
/ship:reviewBug-focused diff review — no style nits
/ship:qaExploratory sweep against the running app, finds what codified tests missed
/ship:handoffPR creation + CI fix loop until checks green
/ship:refactorFour-lens scan, classify by risk, apply with verification
/ship:arch-designSystem-design thinking — nine falsifiable lenses, self-interview method, red-team pass — hands off to write-docs
/ship:write-docsProject documentation with frontmatter, lifecycle, and indexing, incl. design docs and ADRs

Skills are available through the host plugin catalog and direct /ship:* commands. At startup, Ship injects only a tiny hint to consult /ship:use-ship when Ship may apply; it does not inject docs, memory, or artifact content.

See docs/skills.md for detailed guides.

License

MIT

Acknowledgments

Ship is built on ideas from:

  • agent-browser — Browser automation CLI for AI agents
  • Superpowers — Jesse Vincent's agentic skills framework for Claude Code
  • gstack — Garry Tan's opinionated Claude Code setup
  • Claude Code — Agent workflows and the cleanup pattern that inspired /ship:refactor's four-lens scan
文档与办公

中风险

  • 来源需自行核对维护者身份。
  • 包含脚本或命令调用,安装前请复核。
  • 可能需要外部 token、网络权限或第三方服务。
  • 未检测到高风险命令。
  • 扫描发现:2 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/heliohq/ship.git
  3. 将 "skills/write-docs" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/heliohq/ship.git
  3. 将 "skills/write-docs" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/heliohq/ship.git
  3. 将 "skills/write-docs" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/heliohq/ship.git
  3. 将 "skills/write-docs" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/heliohq/ship.git
  3. 将 "skills/write-docs" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
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.

Documentation Standard

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.

Red Flag

Never:

  • Lead with analysis instead of the decision
  • Include implementation details that belong in code
  • Mix languages within one document
  • Silently delete history — mark superseded sections, don't erase them
  • Create a doc without adding it to the docs index
  • Mark a doc as current without verifying claims against code
  • Skip the Boundaries section in design docs — it's the core anti-drift mechanism
  • Ship a design doc with zero numbers and zero rejected alternatives — that's a description, not a design
  • Use a duplicate number within a category

Frontmatter (Required)

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"
---

Required Fields

  • title: Match the # heading below the frontmatter. Use quotes if it contains special chars.
  • description: One concise sentence for the docs index — write it for an AI that needs to decide "should I read this doc?" without opening it. Max 120 chars.
  • category: Matches the subdirectory name (e.g., "design", "guides", "troubleshooting"). Must be one of the subdirectories under docs/.
  • number: Unique within its category. Zero-padded 3 digits (e.g., "002", "029"). Used for file naming (029-topic.md) and cross-referencing.
  • status: One of the 5 allowed values. See Status Lifecycle below.
  • last_modified: ISO date (YYYY-MM-DD) when the doc was last updated. Must be updated on every edit.

Conditional Fields

  • services: Array of affected directories or components.
  • superseded_by: Required when status is superseded. Points to the replacement doc as category/number.
  • related: Include when related docs exist. Array of category/number references for navigation.

Docs Index

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.

Status Lifecycle

draft → current → partially-outdated → superseded
                ↘ not-implemented (if design was never built)
StatusMeaning
draftProposed but not yet approved or implemented
currentContent matches production code
partially-outdatedCore content still applies but some details have drifted from code
supersededReplaced by another doc — must set superseded_by
not-implementedApproved but never built

When changing status, also update last_modified to today's date.

Numbering & File Naming

  • Next available number: check ls docs/<category>/ | sort and pick the next zero-padded 3-digit number (e.g., 003, 010).
  • No duplicate numbers within a category. Each top-level doc or directory within a category gets a unique number.
  • Sub-documents inside a directory (e.g., design/014-credentials-vault/plan-1-vault-service.md) share the parent number.
docs/<category>/{number}-{kebab-case-topic}.md

Example: docs/design/029-prototype-v3-web-migration.md

Document Structure

---
(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

Writing Rules

  • Lead with the decision or answer, not the analysis. Readers want to know "what" before "why."
  • Use concrete file paths, struct names, and API endpoints — not abstractions.
  • If the doc is in Chinese, keep it in Chinese. If in English, keep it in English. Don't mix.
  • Mark superseded sections inline with strikethrough or a note, don't silently delete history.
  • When content changes, update the existing doc rather than creating a new one — unless the change is a complete replacement (then supersede).

Category Conventions

design (architectural decisions)

  • Boundaries section required — the core anti-drift mechanism
  • Recommended body shape (adapt, don't pad — a small ADR needs only Context, Decision, Trade-offs, Revisit triggers): Context → Goals / Non-goals → Requirements & numbers → Design (components, data model, contracts) → Failure modes → Rollout & operations → Security → Alternatives considered → Assumptions → Revisit triggers
  • Trade-offs section recommended — what alternatives were considered, what was given up, and why this choice won
  • Assumptions section recommended — state what must be true for this design to hold (e.g., "assumes < 10k users", "assumes single-region"). When assumptions change, the doc is stale.

guide (how-to guides)

  • Step-by-step structure with numbered steps
  • Include prerequisites and expected outcomes
  • Code examples should be copy-pasteable

troubleshooting (debug playbooks)

  • Symptom → Diagnosis → Fix structure
  • Include exact error messages for searchability
  • Link to related design docs for context

reference (API docs, schemas, config reference)

  • Organized by entity or endpoint
  • Include examples for every parameter
  • Version-sensitive — note which versions apply

Other categories: any subdirectory under docs/ becomes a category; adapt the body to fit, universal rules still apply.

Cross-References

  • Reference docs in the same category by number: "see 023-agent-broker-architecture"
  • Reference docs in other categories with category prefix: "see guides/003-getting-started"
  • When renaming/renumbering, update ALL references. Use: grep -r "old-name" docs/

Verification

Before marking a doc as current, verify key claims against code:

  • Do referenced file paths exist?
  • Do referenced struct/function names exist?
  • Do referenced API endpoints exist?
  • Does the described architecture match the actual service boundaries?

Update last_modified when you complete verification.

Execution Handoff

After writing or updating a doc, regenerate the index and output the report card — read the format from ../shared/report-card.md (resolved against this skill's base directory, not the working directory):

## [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. **Deepen the design thinking** — /ship:arch-design if the analysis needs more depth
3. **Plan implementation** — /ship:design to turn the decision into executable stories
4. **Ship it** — /ship:handoff to create a PR with the doc changes

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!