mcpField
S
ship

ship

github.com/eljun开发076 次安装2 周前更新
代码仓库

关于 ship

用于仓库任务工作流的 Pull Request 准备 skill。它运行可用的发货前检查、根据 diff 推导操作步骤,并将任务推进到 Ready To Ship 后复核跟踪表。

主要功能

  1. 01运行可用的发货前检查
  2. 02依据任务产物检测跳过的阶段
  3. 03检查意外改动和秘密信息
  4. 04根据 diff 推导部署和操作步骤
  5. 05创建或复用分支并创建 Pull Request
  6. 06将任务移至 Ready To Ship 并复核

适用场景

  1. 01准备任务变更以供 Pull Request 审查
  2. 02在 PR 中说明跳过的工作流阶段
  3. 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。

工作流

  1. 阅读 AGENTS.md。
  2. 确定任务 ID 并阅读任务文档。
  3. 根据持久化产物(见下表)计算 Skipped Stages。不要根据 TASKS.md 当前所在部分推断跳过的阶段——跟踪表恰恰可能过时,信任它会让这个问题再次出现。
  4. 发货前检查仍有帮助;缺少产物不会阻止发货,只需说明即可。
  5. 运行项目或任务文档中记载的发货前检查。
  6. 检查变更文件是否包含意外编辑和机密信息。
  7. 根据差异计算操作员步骤(见下文)。不要从任务文档中复制。
  8. 创建或复用合适的分支。
  9. 创建拉取请求,并附上任务文档、测试报告、Skipped Stages 说明和 Operator Steps 的链接。
  10. 在 TASKS.md 中将任务移至 Ready To Ship,并从其当前所在的部分中删除该行。
  11. 重新读取 TASKS.md,确认任务行现在位于 Ready To Ship 下,且不在之前的部分中。如果该行不在预期部分,说明遗漏了移动操作;请在移交前立即编辑修正。

(这是为了检查模型是否忘记了该步骤,而不是检查 Edit 是否失败。此项检查成本低,而且能发现跟踪表过时最常见的原因。)

跳过阶段检测

根据持久化产物检测,而不是根据跟踪表所在部分。跟踪表可能过时;产物才是事实依据。

阶段存在以下产物时视为“已运行”
implement任务文档包含 Implementation Notes 部分
simplify任务文档包含 Quality Gate Notes 部分,且结果为 Result: PASS 或 FAIL
testdocs/testing/{ID}-{task-name}.md 存在
documentdocs/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