关于 ship
用于仓库任务工作流的 Pull Request 准备 skill。它运行可用的发货前检查、根据 diff 推导操作步骤,并将任务推进到 Ready To Ship 后复核跟踪表。
主要功能
- 01运行可用的发货前检查
- 02依据任务产物检测跳过的阶段
- 03检查意外改动和秘密信息
- 04根据 diff 推导部署和操作步骤
- 05创建或复用分支并创建 Pull Request
- 06将任务移至 Ready To Ship 并复核
适用场景
- 01准备任务变更以供 Pull Request 审查
- 02在 PR 中说明跳过的工作流阶段
- 03识别部署、迁移或配置步骤
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ eljun/ claude-workflow-skills --skill ship安装后在 Claude Code 中输入/ship确认已加载。
详细介绍
ship - Pull Request 阶段
不变量
- 始终将任务移至
TASKS.md中的Ready To Ship,并重新读取跟踪表,确认该行已移至目标位置后再移交。过时的跟踪表会阻塞下游流程和无头会话。 - 如果跳过了中间阶段,请自动修正:不要因为任务不在
Approved中而中止。检测当前所属部分,记录Skipped Stages列表,并在 PR 正文和移交文本中说明。 - 创建拉取请求前,运行可用的发货前检查。
- 不要自动合并。
- 已发布版本相关工作留给
release阶段处理。
运行时适配器可以将此阶段作为斜杠命令、菜单操作或自然语言技能调用提供。可移植的阶段名称是 ship。
工作流
- 阅读
AGENTS.md。 - 确定任务 ID 并阅读任务文档。
- 根据持久化产物(见下表)计算
Skipped Stages。不要根据TASKS.md当前所在部分推断跳过的阶段——跟踪表恰恰可能过时,信任它会让这个问题再次出现。 - 发货前检查仍有帮助;缺少产物不会阻止发货,只需说明即可。
- 运行项目或任务文档中记载的发货前检查。
- 检查变更文件是否包含意外编辑和机密信息。
- 根据差异计算操作员步骤(见下文)。不要从任务文档中复制。
- 创建或复用合适的分支。
- 创建拉取请求,并附上任务文档、测试报告、
Skipped Stages说明和Operator Steps的链接。 - 在
TASKS.md中将任务移至Ready To Ship,并从其当前所在的部分中删除该行。 - 重新读取
TASKS.md,确认任务行现在位于Ready To Ship下,且不在之前的部分中。如果该行不在预期部分,说明遗漏了移动操作;请在移交前立即编辑修正。
(这是为了检查模型是否忘记了该步骤,而不是检查 Edit 是否失败。此项检查成本低,而且能发现跟踪表过时最常见的原因。)
跳过阶段检测
根据持久化产物检测,而不是根据跟踪表所在部分。跟踪表可能过时;产物才是事实依据。
| 阶段 | 存在以下产物时视为“已运行” |
|---|---|
implement | 任务文档包含 Implementation Notes 部分 |
simplify | 任务文档包含 Quality Gate Notes 部分,且结果为 Result: PASS 或 FAIL |
test | docs/testing/{ID}-{task-name}.md 存在 |
document | docs/learnings/{ID}-{task-name}.md 存在,或此任务更新了功能/指南文档 |
没有对应产物的阶段视为“已跳过”。在 PR 正文和移交内容中列出跳过的阶段。
操作员步骤(计算得出)
如果仅合并无法应用变更(例如需要单独部署函数、服务或工作线程,或涉及迁移、配置),请根据差异推导出必须执行的操作:
- 部署: 对每个可部署入口点,检查差异是否改动了该入口点,或其传递导入的任何模块。共享模块的变更会影响所有导入该模块的可部署项目;请全部列出,而不只是显而易见的项目。
- 是否已上线? 如果项目允许只读检查已部署状态(部署时间戳,或各可部署项目对应最新提交的版本),请逐项报告为已部署或“需要部署”。
- 迁移/配置/数据: 按应用顺序列出。如果项目要求数据写入由负责人执行,请将其标记为负责人执行。
将结果写入 PR 正文。如果无需执行任何操作,请写“无:合并即可”。
发货前检查
运行可用的项目检查,例如:
pnpm build
pnpm typecheck
pnpm lint
pnpm test
使用目标项目中实际存在的命令。如果某个命令不可用,请记录该检查已跳过及原因。
拉取请求正文
## Summary
- {Change summary}
## Verification
- {Command or report}
## Skipped Stages
- {Comma-separated list, or "None"}
## Operator Steps
- {Computed deploys (with already-live status if checkable), migrations, config; or "None: merge is enough"}
## Post-Deploy Checks
- {Each `post-deploy` acceptance check and `Deferred` test check: the exact command/query and the expected result, or "None"}
## Workflow References
- Task: docs/task/{ID}-{task-name}.md
- Test report: docs/testing/{ID}-{task-name}.md or N/A
- Feature docs: {path or N/A}
移交
Ship preparation complete for task {ID}
Task status: Ready To Ship (verified in TASKS.md)
Skipped stages: {list or "None"}
PR: {url}
Post-deploy checks pending: {count, listed in the PR, or "None"}
Next stage after merge (and deploy): run the post-deploy checks, then release
评论
支持 Markdown