process-issues
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProcess issues (one tick)
处理问题(单次任务)
One pass over the repo's open issues per invocation, then stop. Compose with
for recurrence (, );
owns pacing. Never schedule yourself.
/loop/loop /process-issues/loop 1h /process-issues/loopThis is the autonomous sibling of the interactive skill: it runs the
same state machine and reuses the skill's bundled references (its
template, knowledge base, and needs-info
notes template) instead of duplicating them. The difference is that
waits for the maintainer at each step; this pass acts autonomously and parks
anything that needs a human.
/triagetriageAGENT-BRIEF.mdOUT-OF-SCOPE.md/triageState derives entirely from GitHub (labels, comment timestamps), so a tick is
idempotent: an empty queue costs one and exits.
gh issue list每次调用时对仓库的公开问题进行一次遍历,然后停止。可与组合实现重复执行(、);负责控制执行节奏。请勿自行设置调度。
/loop/loop /process-issues/loop 1h /process-issues/loop这是交互式技能的自动版本:它运行相同的状态机,并复用技能的内置参考内容(包括模板、知识库以及需要补充信息的注释模板),而非重复实现这些内容。两者的区别在于,会在每个步骤等待维护人员操作;而本任务会自动执行,并将需要人工处理的问题暂存。
/triage/triageAGENT-BRIEF.mdOUT-OF-SCOPE.md/triage状态完全源自GitHub(标签、评论时间戳),因此单次任务具有幂等性:若队列无内容,仅执行一次后即退出。
gh issue listRails
规则
- Never close an issue, never apply . Those are the maintainer's call. When this pass believes an issue is wontfix, a duplicate, out of scope, or a "do we even want this" scope question, it does not close it: it leaves a disclaimer-prefixed comment with the reasoning (and any
wontfixmatch or duplicate link) and parks it in.out-of-scope/for the maintainer to confirm-and-close.needs-triageis a recommendation, never an action.wontfix - Every comment starts with a disclaimer:
.
> *This was generated by AI during triage.* - Skip issues owned by another active loop. If another dispatcher already drives an issue (it is in that loop's queue), leave it untouched.
- 切勿关闭问题,切勿添加标签。 这些操作应由维护人员决定。当本任务判定问题属于
wontfix、重复问题、超出范围或需确认“是否需要该功能”时,不会直接关闭问题:而是添加一条带有免责声明前缀的注释说明理由(以及匹配的wontfix条目或重复问题链接),并将其标记为.out-of-scope/状态,交由维护人员确认并关闭。needs-triage仅为建议,绝非直接执行的操作。wontfix - 所有注释均以免责声明开头:
.
> *此内容由AI在分类过程中生成。* - 跳过由其他活跃循环处理的问题。 若问题已由其他调度器处理(处于该循环的队列中),则不对其进行任何操作。
0. Preflight
0. 预检
- Abort if not a git repo, or if there is no GitHub remote. This skill is
GitHub-only (, issues).
gh - Detect optional substrate; use what exists, skip what doesn't:
- Triage labels + wiring (mapping the canonical roles
docs/agents/triage-labels.md/needs-triage/needs-info/ready-for-agent/ready-for-human, and an issuewontfixaxis). If absent, offer to runtype:and stop: without state labels the tick can read but cannot record an outcome./setup-github-labels - directory. If present, read it during context-gathering (see the
.out-of-scope/skill'striage); if absent, skip out-of-scope matching.OUT-OF-SCOPE.md
- Triage labels + wiring (
- 若当前目录不是git仓库,或无GitHub远程仓库,则终止执行。本技能仅支持GitHub(依赖工具和GitHub Issues)。
gh - 检测可选基础组件;使用已存在的组件,跳过不存在的组件:
- 分类标签及关联配置(,映射标准角色标签
docs/agents/triage-labels.md/needs-triage/needs-info/ready-for-agent/ready-for-human,以及问题的wontfix分类轴)。若缺失,则提示运行type:并终止:若无状态标签,单次任务仅能读取问题,无法记录处理结果。/setup-github-labels - 目录。若存在,则在收集上下文时读取该目录内容(参考
.out-of-scope/技能的triage);若不存在,则跳过超出范围的匹配检查。OUT-OF-SCOPE.md
- 分类标签及关联配置(
States
状态
This pass routes each issue to exactly one canonical state (label strings come
from ). Every triaged issue also carries one category role
( / / ).
triage-labels.mdtype: bugtype: featuretype: task- : underspecified or unreproducible; waiting on the reporter.
needs-info - : fully specified, behind the strict gate below, with an agent brief. The handoff to an AFK agent (implemented by
ready-for-agent)./implement-issues - : wanted, but a human must implement it (judgment, access, or a design decision).
ready-for-human - : the parking spot for the maintainer. A wontfix / duplicate / out-of-scope / scope-call belief lands here with a comment. This pass never re-picks it.
needs-triage
本任务会将每个问题流转至唯一的标准状态(标签字符串来自)。每个已分类的问题还会带有一个分类角色标签( / / )。
triage-labels.mdtype: bugtype: featuretype: task- :描述不明确或无法复现;等待报告者补充信息。
needs-info - :描述完整,通过下方严格校验,且附带Agent任务简报。将交接给AFK Agent(由
ready-for-agent实现)处理。/implement-issues - :需求合理,但需人工实现(涉及判断、权限或设计决策)。
ready-for-human - :维护人员的暂存区。当判定问题为
needs-triage、重复问题、超出范围或需确认范围时,将问题置于此状态并附上注释。本任务不会重新处理该状态的问题。wontfix
Tick algorithm
单次任务算法
-
Build the queue. Two buckets:
- Open issues with no triage state label (never triaged, this pass's turn).
- issues where the reporter has replied since the last triage note (re-evaluation needed).
needs-info
bashgh issue list --state open --json number,title,labels,author,createdAt,updatedAt \ --jq '[.[] | {number, title, labels: [.labels[].name], author: .author.login, createdAt, updatedAt}]'Skip issues already wearing/ready-for-agent/ready-for-human, and do not re-pickwontfix(that is the parking spot, not a work queue).needs-triage -
Process up to ~5 issues this tick, oldest-first, each through the pipeline below, then stop.drains a larger backlog over later ticks.
/loop -
Report. A short dashboard: each issue processed and the state applied, recommendations parked for the maintainer, anything needing a human call.reads this to pace the next run.
/loop
-
构建队列。分为两类:
- 未添加任何分类状态标签的公开问题(从未被分类,由本次任务处理)。
- 状态下,报告者在最近一次分类注释后已回复的问题(需重新评估)。
needs-info
bashgh issue list --state open --json number,title,labels,author,createdAt,updatedAt \ --jq '[.[] | {number, title, labels: [.labels[].name], author: .author.login, createdAt, updatedAt}]'跳过已带有/ready-for-agent/ready-for-human标签的问题,且不重新处理wontfix状态的问题(该状态为暂存区,而非工作队列)。needs-triage -
本次任务最多处理约5个问题,按创建时间从早到晚排序,每个问题均通过下方流水线处理,然后终止。会在后续任务中处理更多积压问题。
/loop -
生成报告。简短的仪表盘:列出每个已处理的问题及应用的状态、提交给维护人员的建议、所有需要人工决策的内容。会根据此报告控制下一次运行的节奏。
/loop
Per-issue pipeline
单问题处理流水线
-
Gather context in a subagent (keep the main loop context clean): read the issue body, comments, labels, reporter, and dates; parse prior triage notes so resolved questions are not re-asked; read; quick-search open issues for a likely duplicate; explore the codebase. For bugs, attempt reproduction (trace the code, run tests). A confirmed repro makes a far stronger brief; a failed or impossible repro is a strong
.out-of-scope/signal.needs-info -
Classify the category →/
type: bug/type: feature.type: task -
Route to a state:
- Out-of-scope match or duplicate of an open issue → comment linking the
prior entry or the original issue, then park
.out-of-scope/. Never close.needs-triage - Underspecified / repro failed / missing information → , using the
needs-infoskill's needs-info notes template. Capture everything already established so the work is not lost; ask the reporter specific, actionable questions. This is the autonomous substitute fortriage's maintainer-grilling: ask the reporter, do not block on a human./triage - Passes the strict gate → with an agent brief written per the
ready-for-agentskill'striage. The gate requires all of: one reasonable interpretation, a complete brief with concrete testable acceptance criteria, verifiability by cheap or existing tests, and no product/design decision or human-only access required.AGENT-BRIEF.md - Wanted but a human must build it (judgment, access, design decision) →
, same brief structure, noting why it cannot be delegated.
ready-for-human - A "do we even want this" scope call → park with the reasoning.
needs-triage
When in doubt, escalate. Preferorready-for-humanoverneeds-triage: handing an AFK agent an underspecified brief is the failure mode this gate exists to prevent.ready-for-agent - Out-of-scope match or duplicate of an open issue → comment linking the
prior
-
在子Agent中收集上下文(保持主循环上下文清晰):读取问题正文、评论、标签、报告者信息及日期;解析之前的分类注释,避免重复询问已解决的问题;读取目录内容;快速搜索公开问题以查找可能的重复项;浏览代码库。对于Bug类问题,尝试复现(追踪代码、运行测试)。确认可复现能生成更完善的任务简报;复现失败或无法复现则是
.out-of-scope/状态的强烈信号。needs-info -
分类问题类型 →/
type: bug/type: feature。type: task -
流转至对应状态:
- 匹配超出范围条目或与公开问题重复 → 添加注释链接至对应的条目或原问题,然后标记为
.out-of-scope/状态暂存。切勿关闭问题。needs-triage - 描述不明确/复现失败/信息缺失 → 标记为状态,使用
needs-info技能的需要补充信息注释模板。记录所有已确认的信息,避免工作内容丢失;向报告者提出具体、可执行的问题。这是triage技能中人工询问环节的自动替代方案:直接询问报告者,无需等待人工操作。/triage - 通过严格校验 → 标记为状态,并按照
ready-for-agent技能的triage模板撰写Agent任务简报。校验需满足所有条件:仅有一个合理的解读方向、简报完整且包含具体可测试的验收标准、可通过低成本或现有测试验证、无需产品/设计决策或仅人工可访问的权限。AGENT-BRIEF.md - 需求合理但需人工实现(涉及判断、权限、设计决策) → 标记为状态,使用相同的简报结构,并说明无法委派给Agent的原因。
ready-for-human - 需确认“是否需要该功能”的范围决策 → 标记为状态暂存,并附上理由。
needs-triage
存疑时,升级处理。优先选择或ready-for-human状态,而非needs-triage:将描述不明确的简报交给AFK Agent是本校验机制旨在避免的失败场景。ready-for-agent - 匹配超出范围条目或与公开问题重复 → 添加注释链接至对应的
Composition
组合使用
Spin-off issues from land unlabeled, so this pass picks them up
and triages them on its next tick (escalations from arrive
already labeled and are left for the maintainer, not re-picked
here). An issue this pass marks is the handoff to
(this pass does not write code or open PRs itself); the
resulting PR is then handled by .
/process-prs/kaizen-codebaseneeds-triageready-for-agent/implement-issues/process-prs从衍生的问题未被标记标签,因此本任务会在下次运行时拾取并分类它们(从升级的问题已标记状态,将留给维护人员处理,不会被本任务重新拾取)。本任务标记为状态的问题将交接给处理(本任务本身不会编写代码或创建PR);生成的PR随后由处理。
/process-prs/kaizen-codebaseneeds-triageready-for-agent/implement-issues/process-prs