implement-issues
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseImplement issues (one tick)
实现问题(单次执行)
One issue implemented end-to-end per invocation, then stop.
Compose with for recurrence (,
); owns pacing. Never schedule yourself.
ready-for-agent/loop/loop /implement-issues/loop 1h /implement-issues/loopThis is the middle leg of the loop pipeline:
process-issues -> implement-issues -> process-prs
(ready-for- (non-draft PR, (review +
agent issue) Closes #N) recommend-* verdict, you merge)State derives entirely from GitHub (labels, assignees, branches, open PRs), so a
tick is idempotent: with no grabbable issue it costs one and
exits.
gh issue list每次调用端到端实现一个标记为的问题,然后停止。可与组合实现重复执行(、);负责控制执行节奏。切勿自行调度任务。
ready-for-agent/loop/loop /implement-issues/loop 1h /implement-issues/loop这是循环流程的中间环节:
process-issues -> implement-issues -> process-prs
(标记为ready-for- (非草稿PR, (审核 +
agent的问题) 包含Closes #N) 给出recommend-*结论,由你合并)状态完全源自GitHub(标签、经办人、分支、开放PR),因此单次执行具有幂等性:若没有可处理的问题,仅执行一次后就退出。
gh issue listRails
规则
- Never merge. The PR is opened for review; merging stays the maintainer's
hand (and 's verdict is a recommendation, not an action).
/process-prs - Never ship a guess. If the brief is underspecified or the work can't reach green, abort and demote (see below), never open a speculative PR.
- The finalize gates are mandatory, not optional. and
/review-fixrun on every change before the PR opens, whatever its size, and/recommitruns whenever the change is behavioral and a smoke is practical. "It's a one-line / test-only / obviously-correct change" is not grounds to skip/verifyor/review-fix, and a manual diff read is not a substitute for/recommit. That rationalization is exactly how unreviewed AI-slop lands in a PR. Skipping a gate that applies is a process violation; if one genuinely cannot run, say so explicitly in the report rather than silently dropping it./review-fix - Never take an issue owned by another loop. Only unassigned issues are grabbable; assignment is the ownership signal.
- Never touch clean-room / relicensing issues. Those are owned by their own dispatcher and run under a protocol that forbids reading the prior implementation. This pass reads the brief and explores the codebase normally, which would contaminate such work. The unassigned-only rail keeps it out, but treat this as a hard boundary.
- Every issue comment starts with a disclaimer:
.
> *This was generated by AI during implementation.*
- 切勿合并PR。PR仅用于提交审核;合并操作由维护者负责(给出的结论是建议,而非执行操作)。
/process-prs - 切勿提交猜测性内容。如果需求描述不明确,或无法通过所有检查,应中止任务并降级处理(见下文),切勿提交推测性PR。
- 最终检查环节为强制要求,不可跳过。无论改动大小,PR提交前必须运行和
/review-fix;若改动涉及业务逻辑且可进行冒烟测试,则必须运行/recommit。“这只是一行代码/仅修改测试/显然正确的改动”不能作为跳过/verify或/review-fix的理由,手动查看差异也不能替代/recommit。这种合理化借口正是未经审核的AI生成垃圾内容进入PR的原因。跳过适用的检查环节属于流程违规;若确实无法运行某环节,需在报告中明确说明原因,而非悄悄跳过。/review-fix - 切勿处理其他循环流程已认领的问题。仅可处理未分配的问题;分配状态是所有权的标识。
- 切勿处理clean-room/重许可问题。这些问题由专门的调度器负责,且遵循禁止查看原有实现的协议。本流程会读取需求描述并正常探索代码库,这会污染此类工作。仅处理未分配问题的规则可避免这种情况,但需将此视为硬性边界。
- 所有问题评论必须以免责声明开头:
> *This was generated by AI during implementation.*
0. Preflight
0. 预检
- Abort if not a git repo, or if there is no GitHub remote. This skill is
GitHub-only (, issues, pull requests).
gh - If the repo has no label, there is nothing to do; exit.
ready-for-agent
- 若当前目录不是git仓库,或没有GitHub远程仓库,则中止任务。本技能仅适用于GitHub(依赖、issues、pull requests)。
gh - 若仓库没有标签,则无任务可处理,直接退出。
ready-for-agent
1. Pick and claim one issue
1. 挑选并认领一个问题
Grabbable = and unassigned and not owned by another
active loop and has no existing branch or open PR for it.
ready-for-agentbash
gh issue list --state open --label ready-for-agent \
--json number,title,createdAt,assignees \
--jq '[.[] | select((.assignees | length) == 0)] | sort_by(.createdAt) | .[0]'( does not filter to unassigned, so the
unassigned check lives in the .)
gh issue list --assignee ""jqTake the oldest grabbable issue. If none, report and exit.
- The issue must carry an agent brief (the skill's
triagecontract). If it hasAGENT-BRIEF.mdbut no brief, that is a gate violation: comment, removeready-for-agent, applyready-for-agent, and stop. Do not implement from a bare title.needs-triage - Claim it: create the conventional branch in an isolated worktree with
(or
git wt feat/<N>-slugper the issue's category; ignored files travel into the worktree), and assign the issue to yourself (fix/<N>-slug). The branch and the assignee are the claim, so a later tick or another loop skips it.gh issue edit <N> --add-assignee @me
可处理的问题 = 标记为 且 未分配 且 未被其他活跃循环流程认领 且 没有对应的分支或开放PR。
ready-for-agentbash
gh issue list --state open --label ready-for-agent \
--json number,title,createdAt,assignees \
--jq '[.[] | select((.assignees | length) == 0)] | sort_by(.createdAt) | .[0]'(不会筛选出未分配的问题,因此未分配检查在中实现。)
gh issue list --assignee ""jq选择最早的可处理问题。若无符合条件的问题,提交报告并退出。
- 问题必须包含Agent需求说明(即技能的
triage约定内容)。若问题标记为AGENT-BRIEF.md但无需求说明,属于违反流程:需添加评论,移除ready-for-agent标签,添加ready-for-agent标签,然后停止任务。切勿仅根据标题进行实现。needs-triage - 认领问题:在独立工作树中创建符合规范的分支,命名格式为(或根据问题类型使用
git wt feat/<N>-slug;忽略文件会同步到工作树),并将问题分配给自己(fix/<N>-slug)。分支和经办人状态是认领标识,后续的单次执行或其他循环流程会跳过该问题。gh issue edit <N> --add-assignee @me
2. Implement and finalize
2. 实现与最终检查
Work entirely in the worktree, treating the agent brief as the contract (the
issue body is context); run the steps below in order:
- Implement the brief. Read code before changing it; touch only what the brief
requires; respect any ADRs / .
CONTEXT.md - Get the full test suite and lint/typecheck green.
- Confirm every acceptance criterion in the brief is satisfied.
- to a clean round (reviewers -> fixes -> re-verify; stop on a clean round or on oscillation). Invoke the skill; a hand review of the diff does not count.
/review-fix - into a clean, logical commit sequence.
/recommit - whenever the change is behavioral and a smoke is practical (the skill picks the method per project type). This is the one conditional gate: skip it only when the change is non-behavioral (e.g. test-only or docs) or no smoke is practical, and note the reason in the report.
/verify
完全在工作树中开展工作,以Agent需求说明为约定(问题正文为上下文);按以下顺序执行步骤:
- 实现需求说明中的内容。修改代码前先阅读现有代码;仅修改需求说明要求的部分;遵守任何ADRs/中的规定。
CONTEXT.md - 确保完整测试套件、代码检查/类型检查全部通过。
- 确认需求说明中的所有验收标准均已满足。
- 运行直至得到无问题结果(审核→修复→重新验证;在无问题结果或出现循环时停止)。必须调用该技能;手动查看差异不视为完成此步骤。
/review-fix - 运行整理出清晰、逻辑连贯的提交序列。
/recommit - 若改动涉及业务逻辑且可进行冒烟测试,则运行(该技能会根据项目类型选择测试方法)。这是唯一的可选检查环节:仅当改动不涉及业务逻辑(如仅修改测试或文档)或无法进行冒烟测试时才可跳过,并需在报告中说明原因。
/verify
3. Open the PR
3. 提交PR
/make-pr/make-branchCloses #N/process-prs/make-pr/process-prs运行:推送分支并提交一个非草稿PR(分支已符合规范,无需运行重命名),PR正文包含,经办人设置为当前git用户,不添加结论标签(会在独立审核时添加该标签)。默认会将自主提交的PR设为草稿,因此需**显式指定为就绪状态(非草稿)**以覆盖默认设置;否则PR会以草稿形式提交,的非草稿队列将无法处理该PR。在报告中记录PR链接并停止任务。
/make-pr/make-branchCloses #N/process-prs/make-pr/process-prs4. Abort and demote
4. 中止与降级处理
If the brief proves underspecified mid-implementation, or the work cannot reach
green:
- Remove the worktree and branch (releases the claim, leaves no cruft).
- Unassign the issue ().
gh issue edit <N> --remove-assignee @me - Post a disclaimer-prefixed comment naming the specific blocker (the ambiguous requirement, the failing behavior, what a human must decide).
- Demote by swapping the labels with
(GitHub labels are additive, so
gh issue edit <N> --remove-label ready-for-agent --add-label <state>must be removed explicitly).ready-for-agentis<state>if it needs the reporter, orneeds-infoif it needs a maintainer decision or a human to get it green.ready-for-human
No PR. The demoted issue re-enters the pipeline rather than dying silently.
若在实现过程中发现需求说明不明确,或无法通过所有检查:
- 删除工作树和分支(释放认领状态,不留下冗余内容)。
- 取消问题的分配()。
gh issue edit <N> --remove-assignee @me - 添加以免责声明开头的评论,说明具体的阻塞原因(如模糊的需求、失败的行为、需要人工决策的内容)。
- 降级处理:通过替换标签(GitHub标签为累加式,因此需显式移除
gh issue edit <N> --remove-label ready-for-agent --add-label <state>标签)。ready-for-agent若需要报告者补充信息则设为<state>,若需要维护者决策或人工介入以通过检查则设为needs-info。ready-for-human
不提交PR。降级后的问题会重新进入流程,而非静默终止。
Report
报告
End with one line for : the issue implemented and the PR url, the
abort + demotion, or "no unassigned ready-for-agent issue this tick." If a
finalize gate was skipped or could not run, note which and why alongside that
line.
/loop结尾添加一行供使用的内容:已实现的问题及PR链接、中止并降级处理的说明,或“本次执行无未分配的ready-for-agent问题”。若跳过或无法运行某个最终检查环节,需在该行旁注明具体环节及原因。
/loopComposition
组合使用
Consumes 's output and produces a PR that
finalizes and verdicts. Three single-purpose passes, each
-paced, none ever merging: triage, implement, finalize.
/process-issuesready-for-agent/process-prs/loop接收输出的问题,生成供完成最终处理并给出结论的PR。三个单一功能的环节,每个环节由控制节奏,均不执行合并操作:分类、实现、最终处理。
/process-issuesready-for-agent/process-prs/loop