关于 codely-plan-phase-implement-github
用于逐阶段实现以 GitHub Issue 编排的计划,每次只处理一个阶段。它涵盖仓库与阶段确认、实现、验证,并在继续或创建拉取请求前等待用户批准。
主要功能
- 01选择当前未完成阶段
- 02核对仓库及 Issue 关联
- 03每次仅实现一个阶段
- 04更新 Issue 检查清单
- 05停止前验证更改
- 06创建拉取请求前等待批准
适用场景
- 01实现父计划 Issue 中的一个阶段
- 02处理已关联的子阶段 Issue
- 03准备经过验证、供用户审阅的更改
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ codelytv/ agent-harness --skill codely-plan_phase-implement-github安装后在 Claude Code 中输入/codely-plan_phase-implement-github确认已加载。
详细介绍
🫡 实施一个计划阶段
[!CRITICAL] 每次调用只能实施一个阶段。完成当前阶段后,停止并等待用户审查更改。未经用户明确批准,绝不继续下一个阶段。
[!CRITICAL] 绝不合并拉取请求。 此技能可以创建功能分支、提交更改、推送分支并创建拉取请求,但何时合并由用户决定。合并后,阶段议题会关闭。
🎯 输入
调用此技能时使用 /codely-plan-phase-implement-github <github-issue-url>。URL 可以指向以下任一内容:
- 阶段(子)议题:实施该阶段。
- 父计划议题:找到当前阶段并实施(见下文)。
如果未提供 URL,请先向用户索要,然后再进行任何操作。
🗂️ 仓库
计划及其阶段以 GitHub 议题的形式存储在当前工作目录所属的仓库中,拉取请求也会在该仓库中创建。绝不硬编码仓库:让 gh 根据本地 Git 远程仓库解析。
gh issue view <number>
gh issue develop <number> --checkout
gh pr create --title "..." --body "..."
使用 gh repo view --json nameWithOwner --jq .nameWithOwner 确认 gh 解析出的仓库,并检查所提供的 URL 是否属于该仓库。如果不属于,请停止并要求用户从该仓库的克隆目录运行此技能:阶段分支必须创建在你实施任务的同一仓库中。
🔍 确定当前阶段
- 使用
gh issue view <url>查看给定议题。 - 如果该议题是阶段(子)议题(其中包含
Part of #<parent>引用和待办清单),则应实施该阶段。 - 如果该议题是父计划议题(其中包含指向子议题的
Phases清单),则应实施该清单中第一个仍处于开放状态的子议题。读取该子议题并实施它。 - 如果所有子议题都已关闭,请告知用户所有阶段均已完成,不要实施任何内容。
🪜 实施计划阶段的步骤
-
按照上述规则,确定要实施的阶段议题。
-
为该阶段议题创建并检出关联分支,使分支与议题关联:
gh issue develop <phase-issue-number> --checkout -
实施该阶段的待办事项。不要实施其他阶段的内容。
-
使用
gh issue edit <phase-issue-number> --body ...更新阶段议题正文,并勾选已完成的待办事项(- [x] ...)。 -
验证更改(类型检查、lint 和测试),并在继续之前修复发现的问题。
-
停止。 向用户说明所做的更改,并提供 3 个符合 Conventional Commits 规范的提交/拉取请求标题备选项(例如
feat:、fix:、refactor:、test:、docs:)。3 个备选项应使用不同且合理的类型。标题应简洁,方便用户回复“使用标题 1 创建 PR”之类的指示。 -
用户选定标题后,提交更改、推送分支,并创建引用阶段议题的拉取请求,以便合并时自动关闭该议题:
gh pr create \ --title "<chosen title>" \ --body "Closes #<phase-issue-number>"-
如果这是计划的最后一个阶段(完成此阶段后没有其他开放的子议题),还应在同一个拉取请求正文中关闭父议题:
Closes #<phase-issue-number> Closes #<parent-issue-number> -
不要合并拉取请求。告知用户,合并后将关闭阶段议题;如果这是最后一个阶段,父计划议题也会关闭。
-
-
如果这是计划的最后一个阶段,建议用户使用其 IDE 导出对话,并将其作为评论附加到父计划议题中。
🔄 如何更新 issue
- 在 子 issue 中,勾选当前阶段待办清单里已完成的复选框。
- 更新 父 issue 的
Next step部分,填写接下来要完成的阶段。 - 替换父 issue 中提及 Codely 的最后一句,并添加一个能与之前的 emoji 一起讲述故事的随机新 emoji。例如,如果之前的最后一句是 “Plan powered by Codely 🐢 💨”,新的最后一句可以是 “感谢 Codely 的 AI 工具,我们消灭了 bug。 🐛 < 🐢 💨”。
🔗 父子关系
- 合并后,每个阶段的 pull request 都会关闭对应的子 issue。
- 父计划 issue 通过
Phases检查清单跟踪子 issue;对应的子 issue 关闭后,GitHub 会勾选相应条目。 - 最后一个阶段的 pull request 也会关闭父 issue,因此完成最后一个阶段就会结束整个计划。
☝️ 总体注意事项
🧠 逻辑推理
- 使用 AGENTS.md 文件作为参考,以便:
- 提出应用服务、领域事件、测试等方案。
- 遵循代码约定和架构决策(都位于 docs/ 目录中)。
- 确定要创建、修改或删除的测试套件和测试用例。
- 在提供不同方案供用户选择时,使用可用的 Agent 工具:
- 如果你使用的是 Cursor,且有此工具可用,请使用
AskQuestion工具(仅部分模型支持,例如 Opus 4.5;Composer 1 等模型不支持)。 - 如果你使用的是 Claude Code,请使用
AskUserQuestion工具。
- 如果你使用的是 Cursor,且有此工具可用,请使用