@fitlab-ai/agent-infra 0.11.6 → 0.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/lib/git/primary-worktree.js +58 -0
  2. package/dist/lib/platform/pull-requests.js +29 -3
  3. package/dist/lib/sandbox/control/server.js +6 -2
  4. package/dist/lib/server/config.js +7 -27
  5. package/dist/lib/server/daemon.js +4 -3
  6. package/dist/lib/server/process-control.js +4 -2
  7. package/dist/lib/server/runner.js +4 -3
  8. package/dist/lib/task/artifact-lifecycle.js +42 -10
  9. package/dist/lib/task/artifact-receipts.js +62 -22
  10. package/dist/lib/task/capabilities.js +22 -4
  11. package/dist/lib/task/completion-facts.js +56 -0
  12. package/dist/lib/task/create-service.js +6 -2
  13. package/dist/lib/task/create.js +46 -82
  14. package/dist/lib/task/events.js +268 -195
  15. package/dist/lib/task/finalization-handoff.js +2 -1
  16. package/dist/lib/task/invalidation-command.js +4 -2
  17. package/dist/lib/task/invalidation.js +38 -9
  18. package/dist/lib/task/local-artifact-finalization.js +17 -3
  19. package/dist/lib/task/qualification-audit.js +23 -105
  20. package/dist/lib/task/review-finalization.js +7 -0
  21. package/dist/lib/task/review-identity.js +69 -0
  22. package/dist/lib/task/sections.js +6 -5
  23. package/dist/lib/task/task-execution-lock.js +6 -3
  24. package/dist/lib/task/verification-engine.js +14 -63
  25. package/dist/lib/task/verification.js +35 -38
  26. package/dist/lifecycle-build-manifest.json +3 -3
  27. package/lib/git/primary-worktree.ts +62 -0
  28. package/lib/platform/pull-requests.ts +27 -3
  29. package/lib/sandbox/control/server.ts +5 -2
  30. package/lib/server/config.ts +7 -29
  31. package/lib/server/daemon.ts +5 -3
  32. package/lib/server/process-control.ts +4 -2
  33. package/lib/server/runner.ts +7 -4
  34. package/lib/server/server.schema.json +0 -4
  35. package/lib/task/artifact-lifecycle.ts +35 -11
  36. package/lib/task/artifact-receipts.ts +55 -15
  37. package/lib/task/capabilities.ts +17 -3
  38. package/lib/task/completion-facts.ts +66 -0
  39. package/lib/task/create-service.ts +7 -3
  40. package/lib/task/create.ts +44 -71
  41. package/lib/task/events.ts +248 -182
  42. package/lib/task/finalization-handoff.ts +2 -1
  43. package/lib/task/invalidation-command.ts +4 -2
  44. package/lib/task/invalidation.ts +35 -10
  45. package/lib/task/local-artifact-finalization.ts +13 -3
  46. package/lib/task/qualification-audit.ts +21 -114
  47. package/lib/task/review-finalization.ts +7 -0
  48. package/lib/task/review-identity.ts +85 -0
  49. package/lib/task/sections.ts +6 -6
  50. package/lib/task/task-execution-lock.ts +7 -3
  51. package/lib/task/verification-engine.ts +13 -86
  52. package/lib/task/verification.ts +34 -38
  53. package/package.json +1 -1
  54. package/templates/.agents/rules/README.en.md +1 -0
  55. package/templates/.agents/rules/README.zh-CN.md +1 -0
  56. package/templates/.agents/rules/decision-qualification.en.md +4 -3
  57. package/templates/.agents/rules/decision-qualification.zh-CN.md +4 -3
  58. package/templates/.agents/rules/validation-output.en.md +19 -0
  59. package/templates/.agents/rules/validation-output.zh-CN.md +19 -0
  60. package/templates/.agents/skills/analyze-task/SKILL.en.md +3 -1
  61. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +3 -3
  62. package/templates/.agents/skills/block-task/SKILL.en.md +2 -0
  63. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +1 -1
  64. package/templates/.agents/skills/cancel-task/SKILL.en.md +2 -0
  65. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +1 -1
  66. package/templates/.agents/skills/code-task/SKILL.en.md +3 -1
  67. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +2 -2
  68. package/templates/.agents/skills/code-task/reference/report-template.en.md +4 -8
  69. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +4 -8
  70. package/templates/.agents/skills/commit/SKILL.en.md +1 -1
  71. package/templates/.agents/skills/commit/SKILL.zh-CN.md +1 -1
  72. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +1 -1
  73. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +1 -1
  74. package/templates/.agents/skills/complete-task/SKILL.en.md +2 -0
  75. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +2 -0
  76. package/templates/.agents/skills/create-pr/SKILL.en.md +2 -0
  77. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +1 -1
  78. package/templates/.agents/skills/create-task/SKILL.en.md +2 -0
  79. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +1 -1
  80. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -0
  81. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  82. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -0
  83. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  84. package/templates/.agents/skills/import-issue/SKILL.en.md +2 -0
  85. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
  86. package/templates/.agents/skills/plan-task/SKILL.en.md +3 -1
  87. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +3 -3
  88. package/templates/.agents/skills/review-analysis/SKILL.en.md +3 -1
  89. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +3 -1
  90. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +4 -8
  91. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +4 -8
  92. package/templates/.agents/skills/review-code/SKILL.en.md +13 -12
  93. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +11 -12
  94. package/templates/.agents/skills/review-code/config/verify.en.json +1 -3
  95. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -3
  96. package/templates/.agents/skills/review-code/reference/output-templates.en.md +23 -46
  97. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +27 -48
  98. package/templates/.agents/skills/review-code/reference/report-template.en.md +8 -11
  99. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +8 -11
  100. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +2 -2
  101. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +2 -2
  102. package/templates/.agents/skills/review-plan/SKILL.en.md +3 -1
  103. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +3 -1
  104. package/templates/.agents/skills/review-plan/reference/report-template.en.md +5 -9
  105. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +5 -9
  106. package/templates/.agents/skills/review-pr/SKILL.en.md +2 -0
  107. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +2 -0
  108. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +1 -1
  109. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +1 -1
  110. package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
  111. package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
  112. package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -0
  113. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +1 -1
  114. package/templates/.agents/templates/task.en.md +2 -2
  115. package/templates/.agents/templates/task.zh-CN.md +2 -2
@@ -107,7 +107,7 @@ agent-infra-internal task-verify {task-id} create-pr.completed --format text
107
107
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
108
108
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
109
109
 
110
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
110
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
111
111
 
112
112
  ### 11. 告知用户
113
113
 
@@ -153,6 +153,8 @@ The host `task-create` service runs the same typed gate before returning. Consum
153
153
  agent-infra-internal task-verify {task-id} create-task.completed --format text
154
154
  ```
155
155
 
156
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
157
+
156
158
  Handle the result as follows:
157
159
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
158
160
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -156,7 +156,7 @@ agent-infra-internal task-verify {task-id} create-task.completed --format text
156
156
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
157
157
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
158
158
 
159
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
159
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
160
160
 
161
161
  ### 6. 告知用户
162
162
 
@@ -86,6 +86,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
86
86
  agent-infra-internal task-verify {task-id} import-codescan.completed --format text
87
87
  ```
88
88
 
89
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
90
+
89
91
  Handle the result as follows:
90
92
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
91
93
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -91,7 +91,7 @@ agent-infra-internal task-verify {task-id} import-codescan.completed --format te
91
91
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
92
92
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
93
93
 
94
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
94
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
95
95
 
96
96
  ### 5. 告知用户
97
97
 
@@ -89,6 +89,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
89
89
  agent-infra-internal task-verify {task-id} import-dependabot.completed --format text
90
90
  ```
91
91
 
92
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
93
+
92
94
  Handle the result as follows:
93
95
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
94
96
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -94,7 +94,7 @@ agent-infra-internal task-verify {task-id} import-dependabot.completed --format
94
94
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
95
95
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
96
96
 
97
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
97
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
98
98
 
99
99
  ### 5. 告知用户
100
100
 
@@ -167,6 +167,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
167
167
  agent-infra-internal task-verify {task-id} import-issue.completed --format text
168
168
  ```
169
169
 
170
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
171
+
170
172
  Handle the result as follows:
171
173
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
172
174
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -172,7 +172,7 @@ agent-infra-internal task-verify {task-id} import-issue.completed --format text
172
172
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
173
173
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
174
174
 
175
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
175
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
176
176
 
177
177
  ### 7. 告知用户
178
178
 
@@ -21,7 +21,7 @@ This stage consumes only the canonical path fact parsed by core from the latest
21
21
 
22
22
  Before generating the plan report, read `.agents/rules/evidence-reporting.md`. Record the command, target scope, status or structured result, actual result, and uncovered parts for state checks and verification; include decisive raw excerpts only for failures, blocking conditions, or disputes.
23
23
 
24
- - When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the five qualification-audit tables in the plan artifact; unknown or unconfirmed constraints must not automatically exclude a candidate
24
+ - When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the three qualification-audit decision tables and snapshot in the plan artifact; unknown or unconfirmed constraints must not automatically exclude a candidate
25
25
  - This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
26
26
  - The full path proceeds to plan review; the standard path may proceed directly to implementation
27
27
  - Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
@@ -159,6 +159,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
159
159
  agent-infra-internal task-verify {task-id} plan.completed --artifact {plan-artifact} --format text
160
160
  ```
161
161
 
162
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
163
+
162
164
  Handle the result as follows:
163
165
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
164
166
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -21,7 +21,7 @@ description: >
21
21
 
22
22
  生成方案报告时,先读取 `.agents/rules/evidence-reporting.md`。状态核对和验证记录命令、目标范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议才附决定性原文摘录。
23
23
 
24
- - 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md 规范化约束/候选完成资格审计,并在方案产物记录五张资格审计表;不得把来源不明或未确认约束自动升级为排除条件
24
+ - 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md 规范化约束/候选完成资格审计,并在方案产物记录三张资格审计决策表和资格快照;不得把来源不明或未确认约束自动升级为排除条件
25
25
  - 本技能仅产出技术方案文档(`plan.md` 或 `plan-r{N}.md`)—— 不修改任何业务代码
26
26
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
27
27
  - 完整路径进入方案审查;标准路径完成方案后可直接进入实现阶段
@@ -92,7 +92,7 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
92
92
 
93
93
  ### 5. 设计技术方案
94
94
 
95
- 方案必须按 `.agents/rules/decision-qualification.md` 复核规范化约束和候选,并在方案产物保留五张资格审计表及真实上游关系;来源不明或未人工确认的约束不得自动排除候选。
95
+ 仅当方案阶段实际判断候选资格、约束依赖或人工裁决资格时,才按 `.agents/rules/decision-qualification.md` 复核规范化约束和候选,并在方案产物记录完整资格审计;否则省略整个审计段。来源不明或未人工确认的约束不得自动排除候选。
96
96
 
97
97
  遵循 `.agents/workflows/feature-development.yaml` 中的 `technical-design` 步骤:
98
98
 
@@ -160,7 +160,7 @@ agent-infra-internal task-verify {task-id} plan.completed --artifact {plan-artif
160
160
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
161
161
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
162
162
 
163
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
163
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
164
164
 
165
165
  ### 9. 告知用户
166
166
 
@@ -23,7 +23,7 @@ This stage consumes only the canonical path fact parsed by core from the latest
23
23
 
24
24
  Before generating the review report, read `.agents/rules/evidence-reporting.md`. Normal inspection records the command, scope, structured result, actual conclusion, and uncovered parts; findings, blocking conditions, or disputes retain reproducible locations and decisive excerpts, while identity fields remain exact.
25
25
 
26
- - When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the five qualification-audit tables, digests, QCR, and upstream relations; do not treat a process label as identity authentication
26
+ - When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the three qualification-audit decision tables, snapshot, digests, and QCR; do not treat a process label as identity authentication
27
27
  - This skill only reviews analysis artifacts and writes a report; it does not modify product code.
28
28
  - Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
29
29
  - After executing this skill, you **must** immediately update task.md.
@@ -111,6 +111,8 @@ Before writing the summary, the finalization intent checks decision-detail ids;
111
111
  agent-infra-internal task-verify {task-id} review-analysis.completed --artifact {review-artifact} --format text
112
112
  ```
113
113
 
114
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
115
+
114
116
  ### 8. Tell the User
115
117
 
116
118
  Use the conclusion branch in `reference/output-templates.md` and render the selected next-step commands through the shared helper.
@@ -23,7 +23,7 @@ description: >
23
23
 
24
24
  生成审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常检视记录命令、范围、结构化结果、实际结论和未覆盖部分;finding、阻塞或争议保留可复现位置与决定性摘录,身份字段必须精确保留。
25
25
 
26
- - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的五张资格审计表、digest、QCR 和上游关系;不得把流程标签当作身份认证
26
+ - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的三张资格审计决策表、资格快照、digest 和 QCR;不得把流程标签当作身份认证
27
27
  - 本技能只审查分析产物并写报告,不修改业务代码
28
28
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
29
29
  - 执行本技能后,你**必须**立即更新 task.md
@@ -114,6 +114,8 @@ agent-infra-internal task-artifact {task-id} init --family review-analysis --art
114
114
  agent-infra-internal task-verify {task-id} review-analysis.completed --artifact {review-artifact} --format text
115
115
  ```
116
116
 
117
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;失败、阻塞和软警告保留必要诊断。
118
+
117
119
  校验通过后继续告知用户;校验失败则修复报告或 task 状态后重跑。
118
120
 
119
121
  ### 8. 告知用户
@@ -26,7 +26,7 @@ Use this template when writing `review-analysis.md` or `review-analysis-r{N}.md`
26
26
 
27
27
  ## Qualification Audit Review
28
28
 
29
- > Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
29
+ > Include this section only when this stage actually reviews candidate qualification, constraint dependencies, or human-decision eligibility. In that case, review all three decision tables and the qualification snapshot per `.agents/rules/decision-qualification.md`; otherwise omit this section entirely.
30
30
 
31
31
  ### Constraint Dependencies
32
32
  | constraint_id | constraint_digest | role | evidence |
@@ -40,13 +40,9 @@ Use this template when writing `review-analysis.md` or `review-analysis-r{N}.md`
40
40
  | decision_id | classification | evidence |
41
41
  | --- | --- | --- |
42
42
 
43
- ### Upstream Relations
44
- | upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
45
- | --- | --- | --- | --- | --- |
46
-
47
- ### Dependency Snapshot
48
- | task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
49
- | --- | --- | --- |
43
+ ### Qualification Snapshot
44
+ | task_input_digest | non_constraint_input_digest |
45
+ | --- | --- |
50
46
 
51
47
  ## Inspection Coverage
52
48
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  ## 资格审计复核
28
28
 
29
- > 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
29
+ > 仅当本阶段实际复核了候选资格、约束依赖或人工裁决资格时填写本节,并按 `.agents/rules/decision-qualification.md` 完整复核三张决策表和资格快照;否则删除整个审计段。
30
30
 
31
31
  ### 约束依赖
32
32
  | constraint_id | constraint_digest | role | evidence |
@@ -40,13 +40,9 @@
40
40
  | decision_id | classification | evidence |
41
41
  | --- | --- | --- |
42
42
 
43
- ### 上游关系
44
- | upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
45
- | --- | --- | --- | --- | --- |
46
-
47
- ### 依赖快照
48
- | task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
49
- | --- | --- | --- |
43
+ ### 资格快照
44
+ | task_input_digest | non_constraint_input_digest |
45
+ | --- | --- |
50
46
 
51
47
  ## 检视覆盖声明
52
48
 
@@ -23,7 +23,7 @@ This stage consumes only the canonical path fact parsed by core from the latest
23
23
 
24
24
  Before generating the review report, read `.agents/rules/evidence-reporting.md`. Normal inspection records the command, scope, structured result, actual conclusion, and uncovered parts; findings, blocking conditions, or disputes retain reproducible locations and decisive excerpts, while identity fields remain exact.
25
25
 
26
- - When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the five qualification-audit tables, digests, QCR, and upstream relations; do not treat a process label as identity authentication
26
+ - When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the three qualification-audit decision tables, snapshot, digests, and QCR; do not treat a process label as identity authentication
27
27
  - This skill reviews code and writes a report; it does not modify product code
28
28
  - Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
29
29
  - After executing this skill, you **must** immediately update task.md
@@ -67,30 +67,29 @@ After resolving the artifact context and before this round's first artifact acti
67
67
 
68
68
  Require:
69
69
  - `.agents/workspace/active/{task-id}/task.md`
70
- - at least one code artifact: `code.md` or `code-r{N}.md`
70
+ - a resolvable task branch and Git review target. Implementation artifacts are optional context and must not gate review eligibility.
71
71
 
72
72
  ### 2. Resolve the Artifact Context
73
73
 
74
- Run `agent-infra-internal task-artifact {task-id} inspect --family review-code`. Continue only for `ready`. When `selection.disposition` is `reuse`, reuse `selection.artifact`, do not run started/init or write a new artifact, and continue directly to completion verification and next-step guidance. Otherwise take the latest `{code-artifact}` from `inputs` and `{review-round}` / `{review-artifact}` from `next.round` / `next.name`. Do not scan rounds or construct names in the skill. Then run the started event and verify the returned identity.
74
+ Run `agent-infra-internal task-artifact {task-id} inspect --family review-code`. Continue only for `ready`. When `selection.disposition` is `reuse`, reuse `selection.artifact`, do not run started/init or write a new artifact, and continue directly to completion verification and next-step guidance. Otherwise take any available latest `{code-artifact}` and `{plan-artifact}` from `inputs`, and `{review-round}` / `{review-artifact}` from `next.round` / `next.name`. Do not scan rounds or construct names in the skill. If no code or plan artifact exists, review the Git diff and record the missing context in the report. Then run the started event and verify the returned identity.
75
75
 
76
76
  ### 3. Read Implementation and Refinement Context
77
77
 
78
- Read the highest-round code artifact and, if present, the highest-round fix artifact. After reading, record the actually reviewed highest-round code artifact (and the highest-round fix artifact, if present) by filename in the report's `Review Input` field; leave it blank when it cannot be reliably determined—do not fabricate.
78
+ Read the available code and plan context returned in step 2. Record the artifact filenames actually read in the report's `Review Input` field; identify missing context without fabricating an artifact. When no implementation artifact exists, review the Git diff as the review subject.
79
79
 
80
80
  ### 4. Perform the Review
81
81
 
82
- Follow `.agents/workflows/feature-development.yaml` and inspect the full change context:
82
+ Follow `.agents/workflows/feature-development.yaml` and inspect the full change context. HD-1 decided that changes within the reviewed scope must be committed first: before writing the started event, check the post-review paths and stop with an actionable commit instruction when tracked or untracked changes remain. Do not create a review report for a dirty reviewed scope. Bind the report identity to the exact HEAD of a clean worktree:
83
83
  - Resolve the task's bound delivery remote/base and read the target SHA once at review start, `M=$(git ls-remote --refs {remote} refs/heads/{baseRef})`; then capture the reviewed commit `R=$(git rev-parse HEAD)` once and compute `D=$(git merge-base "$R" "$M")`. Save M/D/R as historical evidence and never overwrite them with a later live target value
84
84
  - If the delivery target cannot be resolved or its target commit is unavailable, stop and record the target error; M/D/R must come from one fact-collection round and must not be replaced by PR-existence evidence
85
- - `git diff --binary "$D" -- <post-review-globs>` covers committed and uncommitted tracked changes from D to the current worktree
86
- - `git ls-files -o --exclude-standard -z -- <post-review-globs>` for untracked new files
87
- - Write `mode=worktree`, `baseline=R`, and `diffBase=D` to a temporary JSON file, then call `agent-infra-internal git-workflow snapshot --input {file}` to generate a reviewed diff fingerprint `F` for the complete committed range and a reviewed snapshot tree `T` for the current worktree; write M, R, D, F, and T into the report
85
+ - `git diff --binary "$D" "$R" -- <post-review-globs>` covers committed tracked changes from D to R; commit any uncommitted or untracked reviewed paths before starting, as required by HD-1
86
+ - Write `mode=worktree`, `baseline=R`, and `diffBase=D` to a temporary JSON file, then call `agent-infra-internal git-workflow snapshot --input {file}` to generate a reviewed diff fingerprint `F` for the committed range and a snapshot tree `T`; write M, R, D, F, and T into the report
88
87
 
89
88
  > After collecting those facts, read `.agents/rules/review-method.md`, use them as readiness evidence, and run Passes 2–5 for traceability, risk lenses, counterevidence, and classification; the report must record all five passes.
90
89
  > Detailed review criteria, severity rules, and reviewer expectations live in `reference/review-criteria.md`. Read `reference/review-criteria.md` before reviewing.
91
90
 
92
91
  Apply the shared five-pass protocol to code in this order:
93
- - Pass 1 reads the complete diff, untracked files, latest code artifact, approved plan/review-plan, task source, and raw test results.
92
+ - Pass 1 reads the complete diff, any available code/plan artifacts, task source, and raw test results; when code or plan context is missing, record that gap and continue with the Git diff.
94
93
  - Pass 2 maps acceptance/plan → implementation → verification and records changed lines, necessary callers/callees, state/data flow, and uncovered areas per file.
95
94
  - Pass 3 reviews overall design before per-file semantics, evaluates every shared registry trigger, and reads every matched reference in full. Test changes load `.agents/rules/testing-discipline.md` through the registry's `testing-discipline` lens; do not maintain a second trigger list.
96
95
  - Pass 4 checks guards, call constraints, test coverage, and narrower impact boundaries as counterevidence.
@@ -129,7 +128,7 @@ Update task.md:
129
128
 
130
129
  The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. After a failure, the model may edit the same controlled artifact and rerun the same intent only when the shared rule's mechanical gates pass; reassess convergence after every failure. The final complete result determines the verdict and counts from that same snapshot: `stageStatus.canAdvance=true` with an Approved conclusion permits cross-stage advancement; `stageStatus.canAdvance=false` still requires `agent-infra-internal task-event {task-id} review-code.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`, using `changes-requested` and routing to same-stage revision/review (use `rejected` when the report explicitly rejects). On failure, model stop, lack of progress, or the emergency cap, do not publish a completion event or cross-stage command; use the `repair-stop` scenario in `reference/output-templates.md` to show existing summary/findings, the artifact, actual repair attempts, the last diagnostic, and the stop reason
131
130
  - Only when `canAdvance=true`, the verdict is Approved, and `T == R^{tree}`, write `last_reviewed_commit: {R}`. Clear an old value for an Approved snapshot with uncommitted differences; otherwise preserve the existing value and do not advance it
132
- - For an Approved exit, collect PR and all-check facts as defined in `reference/output-templates.md`: route uncommitted/unpushed code to `commit`, no PR to `create-pr` (except no-PR flow), non-terminal checks to `watch-pr`, and route to `complete-task` only when `HEAD == last_reviewed_commit == PR head` with checks `passed|no-required`; never route by review round alone
131
+ - For an Approved exit, use `reference/output-templates.md` to select one branch and its `agent-client next-steps` helper to generate the next command.
133
132
  - After handling `last_reviewed_commit`, run `agent-infra-internal task-event {task-id} review-code.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`
134
133
 
135
134
  Always include the `Manual-validation: {n}` field in the done log, including when it is 0.
@@ -150,6 +149,8 @@ Run the verification gate to confirm the task artifact and sync state are valid:
150
149
  agent-infra-internal task-verify {task-id} review-code.completed --artifact {review-artifact} --format text
151
150
  ```
152
151
 
152
+ Present the verification summary per `.agents/rules/validation-output.md`, retaining necessary failure, blocked, and soft-warning diagnostics.
153
+
153
154
  Handle the result as follows:
154
155
  - exit code 0 (all checks passed) -> continue to the "Inform User" step
155
156
  - exit code 1 (validation failed) -> fix the reported issues and run the gate again
@@ -161,7 +162,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
161
162
 
162
163
  > Execute this step only after the verification gate passes.
163
164
 
164
- > **Important — branch labels are not values for the verdict field**. The four labels below are user-output template categories (scenarios A/B/C/D), **not** values for the `**Overall Verdict**:` field. The field accepts exactly one of the three canonical values (`Approved` / `Changes Requested` / `Rejected`, or zh-CN `通过` / `需要修改` / `拒绝`); combined phrases like `Approved with issues` will be rejected by the verify gate.
165
+ > **Important — scenario labels are not values for the verdict field**. A/B/C are result scenarios; R displays existing results when lifecycle finalization stops. None are values for the `**Overall Verdict**:` field, which accepts exactly one of the three canonical values (`Approved` / `Changes Requested` / `Rejected`, or zh-CN `通过` / `需要修改` / `拒绝`).
165
166
 
166
167
  Choose exactly one branch based on the findings:
167
168
  - `stageStatus.canAdvance=true` -> approved
@@ -170,7 +171,7 @@ Choose exactly one branch based on the findings:
170
171
 
171
172
  manual-validation counts do not influence branch selection; they are displayed only as manual validation counts.
172
173
 
173
- > The full four-branch output templates, selection rules, and prohibition clauses live in `reference/output-templates.md`. Read `reference/output-templates.md` before reporting the review result.
174
+ > The A/B/C output templates, selection rules, and prohibition clauses live in `reference/output-templates.md`. Read `reference/output-templates.md` before reporting the review result.
174
175
 
175
176
  > Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the current task's short id `NN` (see that file for lookup and fallback), while other `{task-id}` placeholders (report titles, paths) keep the full TASK-id form; (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
176
177
 
@@ -23,7 +23,7 @@ description: >
23
23
 
24
24
  生成审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常检视记录命令、范围、结构化结果、实际结论和未覆盖部分;finding、阻塞或争议保留可复现位置与决定性摘录,身份字段必须精确保留。
25
25
 
26
- - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的五张资格审计表、digest、QCR 和上游关系;不得把流程标签当作身份认证
26
+ - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的三张资格审计决策表、资格快照、digest 和 QCR;不得把流程标签当作身份认证
27
27
  - 本技能只审查代码并写报告,不修改业务代码
28
28
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
29
29
  - 执行本技能后,你**必须**立即更新 task.md
@@ -66,24 +66,23 @@ agent-infra-internal task-snapshot {task-id} --format text
66
66
 
67
67
  要求存在:
68
68
  - `.agents/workspace/active/{task-id}/task.md`
69
- - 至少一个实现产物:`code.md` 或 `code-r{N}.md`
69
+ - 可解析的任务分支与 Git 审查目标。实现产物属于可选上下文,不得作为审查资格门槛。
70
70
 
71
71
  ### 2. 解析审查上下文
72
72
 
73
- 运行 `agent-infra-internal task-artifact {task-id} inspect --family review-code`。仅当结果为 `ready` 时继续。若 `selection.disposition` 为 `reuse`,复用 `selection.artifact`,不得执行 started、init 或写入新产物,并直接进入完成校验与下一步提示。其他状态从 `inputs` 取得最新 `{code-artifact}`,从 `next.round` / `next.name` 取得 `{review-round}` / `{review-artifact}`;不得自行扫描轮次或拼装文件名。随后执行 started 事件并复核返回身份。
73
+ 运行 `agent-infra-internal task-artifact {task-id} inspect --family review-code`。仅当结果为 `ready` 时继续。若 `selection.disposition` 为 `reuse`,复用 `selection.artifact`,不得执行 started、init 或写入新产物,并直接进入完成校验与下一步提示。其他状态从 `inputs` 读取可用的最新 `{code-artifact}` 和 `{plan-artifact}`,从 `next.round` / `next.name` 取得 `{review-round}` / `{review-artifact}`;不得自行扫描轮次或拼装文件名。若没有 code 或 plan artifact,直接审查 Git 差异,并在报告中说明缺少的上下文。随后执行 started 事件并复核返回身份。
74
74
 
75
75
  ### 3. 阅读实现与修复上下文
76
76
 
77
- 读取步骤 2 返回的最新 `{code-artifact}`。读取后,把本轮实际检视的 code artifact 按文件名回填到报告 `审查输入` 段;无法可靠取得时留空,不要伪造。
77
+ 读取步骤 2 返回的可用 code 与 plan 上下文。把实际读取的 artifact 文件名写入报告 `审查输入` 段;未提供的 artifact 说明为缺失,不要伪造。实现产物缺失时,仍以 Git 审查差异作为审查对象。
78
78
 
79
79
  ### 4. 执行审查
80
80
 
81
- 遵循 `.agents/workflows/feature-development.yaml`,并同时检查完整变更上下文:
81
+ 遵循 `.agents/workflows/feature-development.yaml`,并同时检查完整变更上下文。HD-1 已裁定受审范围内的改动必须先提交:在声明 started 前检查 post-review 路径;存在已跟踪或未跟踪改动时停止并提示先提交,不创建审查报告。报告身份必须绑定干净工作树的确切 HEAD commit:
82
82
  - 在审查开始时解析任务绑定的 delivery remote/base,并一次性读取目标分支 SHA `M=$(git ls-remote --refs {remote} refs/heads/{baseRef})`;随后一次性记录审查提交 `R=$(git rev-parse HEAD)`,计算 `D=$(git merge-base "$R" "$M")`。报告保存 M/D/R,不能用后续实时目标值覆盖本轮历史证据
83
83
  - 若 delivery target 无法解析或目标 commit 不可用,停止并记录 target 错误;M/D/R 必须来自同一轮事实采集,不以 PR 是否存在替代 delivery target 证据
84
- - `git diff --binary "$D" -- <post-review-globs>` 覆盖 `D` 到当前工作区的已提交与未提交跟踪变更
85
- - `git ls-files -o --exclude-standard -z -- <post-review-globs>` 覆盖未跟踪新文件
86
- - 把 `mode=worktree`、`baseline=R`、`diffBase=D` 写入临时 JSON,调用 `agent-infra-internal git-workflow snapshot --input {file}` 一次生成覆盖完整提交范围的审查差异指纹 `F` 与当前工作区审查快照树 `T`;把 M、R、D、F、T 全部写入报告
84
+ - `git diff --binary "$D" "$R" -- <post-review-globs>` 覆盖 `D` 到 `R` 的已提交跟踪变更;未提交或未跟踪的受审路径按 HD-1 先提交后再开始审查
85
+ - 把 `mode=worktree`、`baseline=R`、`diffBase=D` 写入临时 JSON,调用 `agent-infra-internal git-workflow snapshot --input {file}` 一次生成已提交范围的审查差异指纹 `F` 与快照树 `T`;把 M、R、D、F、T 全部写入报告
87
86
 
88
87
  > 上述事实采集完成后,先读取 `.agents/rules/review-method.md`,以其作为 readiness 证据并按 Pass 2–5 完成追踪、风险镜头、反证和归类;报告必须记录全部五遍覆盖。
89
88
  > 详细审查标准、严重程度划分和 reviewer 关注点见 `reference/review-criteria.md`。执行此步骤前先读取 `reference/review-criteria.md`。
@@ -127,7 +126,7 @@ agent-infra-internal task-artifact {task-id} init --family review-code --artifac
127
126
 
128
127
  该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。失败后,模型只能在共享规则的机械安全门通过时修改同一个受控 artifact,并完整重跑相同 intent;每次失败都重新判断是否收敛。最终一次完整成功返回决定同一快照的 verdict 和计数:`stageStatus.canAdvance=true` 且结论为 Approved 时允许跨阶段推进;`stageStatus.canAdvance=false` 时仍须执行 `agent-infra-internal task-event {task-id} review-code.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`,使用 `changes-requested` 并路由到同阶段修订/复审(报告明确拒绝时使用 `rejected`)。失败、模型停止、无进展或紧急熔断时,不发布完成事件或跨阶段命令,但必须按 `reference/output-templates.md` 的 `repair-stop` 场景展示已有 summary/findings、artifact、实际修复次数、最后诊断和停止原因
129
128
  - 仅当 `canAdvance=true`、本轮结论为 Approved 且 `T == R^{tree}` 时写入 `last_reviewed_commit: {R}`;Approved 快照包含未提交差异时清除旧值。否则保留既有值,不得推进或清空
130
- - Approved 出口继续按 `reference/output-templates.md` 采集 PR 与全部 checks 事实:未提交/未推送走 `commit`,无 PR 走 `create-pr`(无 PR 流程除外),checks 未终态走 `watch-pr`,仅 `HEAD == last_reviewed_commit == PR head` 且 checks 为 `passed|no-required` 时走 `complete-task`;不得仅按审查轮次分流
129
+ - Approved 出口按 `reference/output-templates.md` 选择唯一场景,并使用对应的 `agent-client next-steps` helper 生成下一步命令。
131
130
  - 完成 `last_reviewed_commit` 处理后执行 `agent-infra-internal task-event {task-id} review-code.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`
132
131
 
133
132
  完成日志必须始终写入 `Manual-validation: {n}` 字段,0 也保留。
@@ -153,13 +152,13 @@ agent-infra-internal task-verify {task-id} review-code.completed --artifact {rev
153
152
  - 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
154
153
  - 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
155
154
 
156
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
155
+ 按 `.agents/rules/validation-output.md` 展示当次校验摘要;没有当次校验输出,不得声明完成。
157
156
 
158
157
  ### 8. 告知用户
159
158
 
160
159
  > 仅在校验通过后执行本步骤。
161
160
 
162
- > **重要:分支名 ≠ 字段值**。以下 4 个标签是用户输出模板的分类(场景 A/B/C/D),**不是**产物 `**总体结论**:` 字段的取值。产物字段只取 3 个规范值之一(`通过` / `需要修改` / `拒绝`,或 EN 对应 `Approved` / `Changes Requested` / `Rejected`);写成 `通过但有问题`、`通过 / 需要修改` 等组合短语会被 verify gate 拦下。
161
+ > **重要:场景名 ≠ 字段值**。以下 A/B/C 是结果输出场景,R 只展示生命周期停止时已有的结果;它们都不是产物 `**总体结论**:` 字段的取值。产物字段只取 3 个规范值之一(`通过` / `需要修改` / `拒绝`,或 EN 对应 `Approved` / `Changes Requested` / `Rejected`)。
163
162
 
164
163
  必须先判断结果,再只选择一个输出分支:
165
164
  - `stageStatus.canAdvance=true` -> 通过
@@ -168,7 +167,7 @@ agent-infra-internal task-verify {task-id} review-code.completed --artifact {rev
168
167
 
169
168
  manual-validation 的数量不参与分支选择,只作为人工校验计数显示。
170
169
 
171
- > 完整的 4 分支输出模板、判断规则和禁止条款见 `reference/output-templates.md`。向用户汇报审查结论前先读取 `reference/output-templates.md`。
170
+ > 完整的 A/B/C 输出模板、判断规则和禁止条款见 `reference/output-templates.md`。向用户汇报审查结论前先读取 `reference/output-templates.md`。
172
171
 
173
172
  > 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
174
173
 
@@ -24,9 +24,7 @@
24
24
  "stage": "code"
25
25
  },
26
26
  "review-fact": {},
27
- "activity-log": {
28
- "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
29
- },
27
+ "activity-log": {},
30
28
  "platform-sync": {
31
29
  "when": "platform_issue_identity_exists"
32
30
  }
@@ -24,9 +24,7 @@
24
24
  "stage": "code"
25
25
  },
26
26
  "review-fact": {},
27
- "activity-log": {
28
- "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
29
- },
27
+ "activity-log": {},
30
28
  "platform-sync": {
31
29
  "when": "platform_issue_identity_exists"
32
30
  }
@@ -2,21 +2,20 @@
2
2
 
3
3
  Read this file before presenting the final review result to the user.
4
4
 
5
- > This file describes the four **user reply** categories (Branches A/B/C/D) used in the "Inform User" step. It is **not** the value of the review-code artifact's `**Overall Verdict**:` field — that field is fixed to one of three canonical tokens (`Approved` / `Changes Requested` / `Rejected`, or zh-CN `通过` / `需要修改` / `拒绝`). Do not mix the two.
5
+ > This file describes three result scenarios (A/B/C) used in the "Inform User" step. Scenario R displays existing results when lifecycle finalization stops; it is not a verdict category. The review-code artifact's `**Overall Verdict**:` field remains one of three canonical tokens (`Approved` / `Changes Requested` / `Rejected`, or zh-CN `通过` / `需要修改` / `拒绝`).
6
6
 
7
7
  ## Choose Exactly One Output Branch
8
8
 
9
9
  Select from `stage-status` (**manual-validation and advisory counts do not participate**):
10
10
  1. if `stageStatus.canAdvance=true`, use Branch A
11
- 2. if `stageStatus.canAdvance=false` and there are no blockers, use Branch B
12
- 3. if `Blocker > 0` and the work can be repaired in a focused refinement pass, use Branch C
13
- 4. if the task requires major redesign, broad reimplementation, or a restart, use Branch D
11
+ 2. if the verdict is changes requested and findings can be addressed locally, use Branch B regardless of blocker count
12
+ 3. if the task requires major redesign, broad reimplementation, or a restart, use Branch C
14
13
 
15
14
  Prohibitions:
16
15
  - never skip the branch-selection step
17
16
  - never mix text from different branches
18
17
  - if `Blocker > 0`, never output an approval template
19
- - never count manual-validation findings as blockers / major issues / minor issues, and never use them to trigger Branch B/C/D
18
+ - never count manual-validation findings as blockers / major issues / minor issues, and never use them to trigger Branch B/C
20
19
  - generate `{next-step-commands}` for the selected branch through the shared helper
21
20
  - The count line shows 5 numbers. Manual-validation (`{e}`) does not affect selection. `Human-decision` (`{h}`) counts this stage's `needs-human-decision` rows; because those rows are unresolved, `{h} > 0` means `canAdvance=false`. Expand the "Pending human-decision pre-block" from `.agents/rules/next-step-output.md` and show revision and re-review paths only.
22
21
 
@@ -40,13 +39,12 @@ If the summary cannot be parsed safely, set `{last-readable-review-result}` to "
40
39
 
41
40
  ### Branch A: Approved with No Findings
42
41
 
43
- Do not route by review round. Compare reviewed snapshot tree `T` with the tree of baseline `R`, then read `prFlow` / verified `pr_delivery_fact`; when a PR exists, call `agent-infra-internal platform-checks inspect {task-id}`. Select exactly one mutually exclusive exit:
42
+ Do not route by review round. Read `prFlow` / verified `pr_delivery_fact`; when a PR exists, call `agent-infra-internal platform-checks inspect {task-id}`. Select exactly one mutually exclusive exit:
44
43
 
45
- - `T != R^{tree}`: Branch A1 (commit).
46
- - `T == R^{tree}` without a PR: Branch A4 for `prFlow=disabled`, otherwise Branch A2 (create PR).
47
- - Existing PR with PR head != `R`: Branch A1 (commit/push).
48
- - PR head = `R` with `pending|failed|cancelled` checks or temporarily unavailable platform state: Branch A3 (watch); never show completion.
49
- - PR head = `R` with `passed|no-required` checks: Branch A4 (complete).
44
+ - No PR: use Branch A3 (complete) when `prFlow=disabled`; otherwise use Branch A1 (create PR).
45
+ - Existing PR with PR head != `R`: Branch A1 (create or update the PR).
46
+ - PR head = `R` with `pending|failed|cancelled` checks or temporarily unavailable platform state: Branch A2 (watch); never show completion.
47
+ - PR head = `R` with `passed|no-required` checks: Branch A3 (complete).
50
48
 
51
49
  Common Branch A summary:
52
50
 
@@ -54,21 +52,9 @@ Common Branch A summary:
54
52
  Task {task-id} review completed. Verdict: approved.
55
53
  - Blockers: 0 | Major: 0 | Minor: 0 | Manual-validation: {e} | Human-decision: {h}
56
54
  [- Review report: .agents/workspace/active/{task-id}/{review-artifact}]
57
-
58
- [When manual-validation > 0, append this final line:]
59
- Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
60
- ```
61
-
62
- #### Branch A1: Commit or Push
63
-
64
- Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill commit --task-ref {task-ref}`.
65
-
66
- ```text
67
- Next step - commit or push the code:
68
- {next-step-commands}
69
55
  ```
70
56
 
71
- #### Branch A2: Create a Pull Request
57
+ #### Branch A1: Create a Pull Request
72
58
 
73
59
  Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill create-pr --task-ref {task-ref}`.
74
60
 
@@ -77,7 +63,7 @@ Next step - create a Pull Request:
77
63
  {next-step-commands}
78
64
  ```
79
65
 
80
- #### Branch A3: Watch All Checks
66
+ #### Branch A2: Watch All Checks
81
67
 
82
68
  Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill watch-pr --task-ref {task-ref}`.
83
69
 
@@ -86,7 +72,7 @@ Next step - watch PR checks:
86
72
  {next-step-commands}
87
73
  ```
88
74
 
89
- #### Branch A4: Complete and Archive
75
+ #### Branch A3: Complete and Archive
90
76
 
91
77
  Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill complete-task --task-ref {task-ref}`.
92
78
 
@@ -95,52 +81,43 @@ Next step - complete and archive the task:
95
81
  {next-step-commands}
96
82
  ```
97
83
 
98
- ### Branch B: Changes Requested (Major / Minor)
84
+ ### Branch B: Local Fixes Needed
99
85
 
100
- Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}`.
86
+ Use this scenario for findings that can be fixed locally, regardless of blocker count. Fill in `{blockers}`, `{major}`, and `{minor}` with the unresolved counts. When `h > 0`, show the pending human-decision block required by `.agents/rules/next-step-output.md`; after those decisions, generate the re-review command with the `review-code` helper and do not show `code-task`. When `h = 0`, generate the repair command with the `code-task` helper.
87
+
88
+ When `h = 0`, populate `{next-step-commands}` by running `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}`:
101
89
 
102
90
  ```text
103
91
  Task {task-id} review completed. Verdict: changes requested.
104
- - Blockers: 0 | Major: {n} | Minor: {n} | Manual-validation: {e} | Human-decision: {h}
92
+ - Blockers: {blockers} | Major: {major} | Minor: {minor} | Manual-validation: {e} | Human-decision: {h}
105
93
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
106
94
 
107
95
  Next step - fix the findings:
108
96
  {next-step-commands}
109
97
 
110
- [When manual-validation > 0, append this final line:]
111
- Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
112
98
  ```
113
99
 
114
- ### Branch C: Changes Requested
100
+ When `h > 0`, run `agent-infra-internal agent-client next-steps --skill review-code --task-ref {task-ref}` to generate `{next-step-commands}` for use after resolving the human decisions; show the required decision block before the command.
115
101
 
116
- Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}`.
102
+ ## Manual-validation Reminder
117
103
 
118
- ```text
119
- Task {task-id} review completed. Verdict: changes requested.
120
- - Blockers: {n} | Major: {n} | Minor: {n} | Manual-validation: {e} | Human-decision: {h}
121
- - Review report: .agents/workspace/active/{task-id}/{review-artifact}
104
+ For scenarios A/B/C, append this reminder after the selected scenario when `{e} > 0`. Do not use it for scenario R.
122
105
 
123
- Next step - fix the findings:
124
- {next-step-commands}
125
-
126
- [When manual-validation > 0, append this final line:]
106
+ ```text
127
107
  Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
128
108
  ```
129
109
 
130
- ### Branch D: Rejected
110
+ ### Branch C: Rejected and Re-design
131
111
 
132
112
  Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
133
113
 
134
114
  ```text
135
115
  Task {task-id} review completed. Verdict: rejected, re-design the technical plan.
136
- - Blockers: {n} | Major: {n} | Minor: {n} | Manual-validation: {e} | Human-decision: {h}
116
+ - Blockers: {blockers} | Major: {major} | Minor: {minor} | Manual-validation: {e} | Human-decision: {h}
137
117
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
138
118
 
139
119
  Next step - re-design the technical plan:
140
120
  {next-step-commands}
141
121
 
142
122
  > Note: Rejected means the implementation direction needs to be reworked end-to-end, not patched locally. Core artifact lifecycle branch #7 refuses a direct `/code-task` and requires a fresh plan first.
143
-
144
- [When manual-validation > 0, append this final line:]
145
- Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
146
123
  ```