@fitlab-ai/agent-infra 0.9.13 → 0.9.14

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 (280) hide show
  1. package/bin/cli.ts +26 -9
  2. package/dist/bin/cli.js +173 -157
  3. package/dist/bin/internal-cli.js +42 -21
  4. package/dist/lib/agent-client.js +5 -0
  5. package/dist/lib/internal/agent-client.js +5 -2
  6. package/dist/lib/internal/cli-route-inventory.js +152 -0
  7. package/dist/lib/internal/codex-lifecycle.js +9 -6
  8. package/dist/lib/internal/codex-sandbox-controller.js +8 -2
  9. package/dist/lib/internal/git-workflow.js +10 -6
  10. package/dist/lib/internal/platform-checks.js +16 -4
  11. package/dist/lib/internal/platform-comment.js +16 -4
  12. package/dist/lib/internal/platform-context.js +4 -1
  13. package/dist/lib/internal/platform-issue.js +12 -4
  14. package/dist/lib/internal/platform-metadata.js +88 -0
  15. package/dist/lib/internal/platform-pr-review.js +16 -3
  16. package/dist/lib/internal/platform-pr.js +24 -10
  17. package/dist/lib/internal/platform-release-notes.js +6 -3
  18. package/dist/lib/internal/platform-security.js +93 -0
  19. package/dist/lib/internal/pr-review-grade.js +14 -3
  20. package/dist/lib/internal/release-workflow.js +19 -5
  21. package/dist/lib/internal/sandbox-control.js +22 -5
  22. package/dist/lib/internal/task-activity.js +13 -4
  23. package/dist/lib/internal/task-artifact.js +186 -27
  24. package/dist/lib/internal/task-context.js +4 -1
  25. package/dist/lib/internal/task-create.js +48 -15
  26. package/dist/lib/internal/task-delivery.js +4 -1
  27. package/dist/lib/internal/task-event.js +4 -1
  28. package/dist/lib/internal/task-finalization.js +4 -1
  29. package/dist/lib/internal/task-invalidation.js +4 -1
  30. package/dist/lib/internal/task-ledger.js +12 -1
  31. package/dist/lib/internal/task-lifecycle.js +4 -1
  32. package/dist/lib/internal/task-operation-registry.js +421 -0
  33. package/dist/lib/internal/task-orchestration.js +12 -0
  34. package/dist/lib/internal/task-override.js +10 -3
  35. package/dist/lib/internal/task-qualification.js +90 -0
  36. package/dist/lib/internal/task-review.js +4 -1
  37. package/dist/lib/internal/task-short-id.js +11 -1
  38. package/dist/lib/internal/task-snapshot.js +4 -1
  39. package/dist/lib/internal/task-validate.js +7 -2
  40. package/dist/lib/internal/task-verify.js +5 -1
  41. package/dist/lib/internal/task-warning.js +8 -1
  42. package/dist/lib/platform/comment-safety.js +226 -0
  43. package/dist/lib/platform/github-provider.js +233 -6
  44. package/dist/lib/platform/issue-comments.js +146 -34
  45. package/dist/lib/platform/pr-change-report.js +6 -12
  46. package/dist/lib/platform/pr-summary.js +28 -7
  47. package/dist/lib/platform/provider-contract.d.ts +67 -1
  48. package/dist/lib/platform/provider-contract.js +6 -2
  49. package/dist/lib/platform/provider-validation.js +76 -3
  50. package/dist/lib/platform/pull-requests.js +115 -170
  51. package/dist/lib/platform/repository-metadata.js +377 -0
  52. package/dist/lib/platform/security-alerts.js +155 -0
  53. package/dist/lib/platform/verification-sync.js +33 -26
  54. package/dist/lib/process-data/index.js +7 -0
  55. package/dist/lib/run/index.js +5 -0
  56. package/dist/lib/sandbox/commands/control-status.js +22 -0
  57. package/dist/lib/sandbox/commands/create.js +32 -6
  58. package/dist/lib/sandbox/commands/ls.js +5 -0
  59. package/dist/lib/sandbox/commands/rm.js +827 -120
  60. package/dist/lib/sandbox/commands/show.js +16 -0
  61. package/dist/lib/sandbox/control/client.js +83 -9
  62. package/dist/lib/sandbox/control/completed-reentry.js +85 -0
  63. package/dist/lib/sandbox/control/container-identity.js +28 -31
  64. package/dist/lib/sandbox/control/executor.js +149 -14
  65. package/dist/lib/sandbox/control/lifecycle.js +621 -127
  66. package/dist/lib/sandbox/control/native-file-lock.js +177 -0
  67. package/dist/lib/sandbox/control/server.js +305 -35
  68. package/dist/lib/sandbox/control/state.js +5 -3
  69. package/dist/lib/sandbox/control/task-view.js +183 -0
  70. package/dist/lib/sandbox/engines/authority.js +289 -0
  71. package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
  72. package/dist/lib/sandbox/index.js +5 -0
  73. package/dist/lib/sandbox/recovery.js +21 -1
  74. package/dist/lib/sandbox/workspace-view.js +2 -1
  75. package/dist/lib/sandbox/worktree-safety.js +4 -1
  76. package/dist/lib/server/index.js +8 -0
  77. package/dist/lib/task/artifact-lifecycle.js +42 -13
  78. package/dist/lib/task/artifact-operations.js +520 -0
  79. package/dist/lib/task/artifact-repair-intent.js +59 -0
  80. package/dist/lib/task/artifact-schema.js +135 -0
  81. package/dist/lib/task/capabilities.js +72 -1
  82. package/dist/lib/task/control-authority.js +4 -0
  83. package/dist/lib/task/create-service.js +103 -4
  84. package/dist/lib/task/create.js +25 -0
  85. package/dist/lib/task/events.js +186 -67
  86. package/dist/lib/task/index.js +11 -3
  87. package/dist/lib/task/local-artifact-finalization.js +75 -150
  88. package/dist/lib/task/orchestration.js +192 -52
  89. package/dist/lib/task/qualification-audit.js +490 -0
  90. package/dist/lib/task/qualification-confirmation.js +109 -0
  91. package/dist/lib/task/qualification-intents.js +148 -0
  92. package/dist/lib/task/review-artifacts.js +22 -23
  93. package/dist/lib/task/review-finalization.js +121 -4
  94. package/dist/lib/task/sections.js +6 -4
  95. package/dist/lib/task/verification-config.js +11 -0
  96. package/dist/lib/task/verification-engine.js +54 -4
  97. package/dist/lifecycle-build-manifest.json +3 -3
  98. package/lib/agent-client.ts +9 -0
  99. package/lib/internal/agent-client.ts +4 -2
  100. package/lib/internal/cli-route-inventory.ts +140 -0
  101. package/lib/internal/codex-lifecycle.ts +8 -6
  102. package/lib/internal/codex-sandbox-controller.ts +7 -2
  103. package/lib/internal/git-workflow.ts +9 -6
  104. package/lib/internal/platform-checks.ts +12 -4
  105. package/lib/internal/platform-comment.ts +12 -4
  106. package/lib/internal/platform-context.ts +3 -1
  107. package/lib/internal/platform-issue.ts +11 -4
  108. package/lib/internal/platform-metadata.ts +70 -0
  109. package/lib/internal/platform-pr-review.ts +14 -3
  110. package/lib/internal/platform-pr.ts +23 -10
  111. package/lib/internal/platform-release-notes.ts +5 -3
  112. package/lib/internal/platform-security.ts +83 -0
  113. package/lib/internal/pr-review-grade.ts +10 -3
  114. package/lib/internal/release-workflow.ts +17 -5
  115. package/lib/internal/sandbox-control.ts +19 -5
  116. package/lib/internal/task-activity.ts +12 -4
  117. package/lib/internal/task-artifact.ts +164 -25
  118. package/lib/internal/task-context.ts +3 -1
  119. package/lib/internal/task-create.ts +76 -15
  120. package/lib/internal/task-delivery.ts +3 -1
  121. package/lib/internal/task-event.ts +3 -1
  122. package/lib/internal/task-finalization.ts +3 -1
  123. package/lib/internal/task-invalidation.ts +3 -1
  124. package/lib/internal/task-ledger.ts +11 -1
  125. package/lib/internal/task-lifecycle.ts +3 -1
  126. package/lib/internal/task-operation-registry.ts +482 -0
  127. package/lib/internal/task-orchestration.ts +12 -0
  128. package/lib/internal/task-override.ts +9 -3
  129. package/lib/internal/task-qualification.ts +61 -0
  130. package/lib/internal/task-review.ts +3 -1
  131. package/lib/internal/task-short-id.ts +10 -1
  132. package/lib/internal/task-snapshot.ts +3 -1
  133. package/lib/internal/task-validate.ts +6 -2
  134. package/lib/internal/task-verify.ts +4 -1
  135. package/lib/internal/task-warning.ts +7 -1
  136. package/lib/platform/comment-safety.ts +250 -0
  137. package/lib/platform/github-provider.ts +229 -7
  138. package/lib/platform/issue-comments.ts +160 -35
  139. package/lib/platform/pr-change-report.ts +6 -12
  140. package/lib/platform/pr-summary.ts +27 -6
  141. package/lib/platform/provider-contract.ts +78 -3
  142. package/lib/platform/provider-validation.ts +85 -3
  143. package/lib/platform/pull-requests.ts +126 -178
  144. package/lib/platform/repository-metadata.ts +453 -0
  145. package/lib/platform/security-alerts.ts +191 -0
  146. package/lib/platform/verification-sync.ts +32 -28
  147. package/lib/process-data/index.ts +7 -0
  148. package/lib/run/index.ts +5 -0
  149. package/lib/sandbox/commands/control-status.ts +26 -0
  150. package/lib/sandbox/commands/create.ts +46 -6
  151. package/lib/sandbox/commands/ls.ts +7 -0
  152. package/lib/sandbox/commands/rm.ts +1000 -87
  153. package/lib/sandbox/commands/show.ts +16 -0
  154. package/lib/sandbox/control/client.ts +103 -9
  155. package/lib/sandbox/control/completed-reentry.ts +98 -0
  156. package/lib/sandbox/control/container-identity.ts +27 -43
  157. package/lib/sandbox/control/executor.ts +177 -12
  158. package/lib/sandbox/control/lifecycle.ts +629 -17
  159. package/lib/sandbox/control/native-file-lock.ts +209 -0
  160. package/lib/sandbox/control/protocol.ts +5 -2
  161. package/lib/sandbox/control/server.ts +319 -37
  162. package/lib/sandbox/control/state.ts +6 -3
  163. package/lib/sandbox/control/task-view.ts +240 -0
  164. package/lib/sandbox/engines/authority.ts +365 -0
  165. package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
  166. package/lib/sandbox/index.ts +7 -0
  167. package/lib/sandbox/recovery.ts +21 -1
  168. package/lib/sandbox/workspace-view.ts +9 -3
  169. package/lib/sandbox/worktree-safety.ts +4 -1
  170. package/lib/server/index.ts +10 -0
  171. package/lib/task/artifact-lifecycle.ts +38 -16
  172. package/lib/task/artifact-operations.ts +626 -0
  173. package/lib/task/artifact-repair-intent.ts +71 -0
  174. package/lib/task/artifact-schema.ts +192 -0
  175. package/lib/task/capabilities.ts +70 -1
  176. package/lib/task/control-authority.ts +11 -1
  177. package/lib/task/create-service.ts +131 -6
  178. package/lib/task/create.ts +27 -0
  179. package/lib/task/events.ts +161 -65
  180. package/lib/task/index.ts +16 -3
  181. package/lib/task/local-artifact-finalization.ts +87 -218
  182. package/lib/task/orchestration.ts +172 -49
  183. package/lib/task/qualification-audit.ts +599 -0
  184. package/lib/task/qualification-confirmation.ts +117 -0
  185. package/lib/task/qualification-intents.ts +150 -0
  186. package/lib/task/review-artifacts.ts +21 -22
  187. package/lib/task/review-finalization.ts +133 -4
  188. package/lib/task/sections.ts +6 -4
  189. package/lib/task/verification-config.ts +12 -0
  190. package/lib/task/verification-engine.ts +55 -4
  191. package/package.json +6 -1
  192. package/templates/.agents/rules/README.en.md +2 -0
  193. package/templates/.agents/rules/README.zh-CN.md +2 -0
  194. package/templates/.agents/rules/decision-qualification.en.md +22 -0
  195. package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
  196. package/templates/.agents/rules/evidence-reporting.en.md +28 -0
  197. package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
  198. package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
  199. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
  200. package/templates/.agents/rules/local-artifact-repair.en.md +5 -1
  201. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +5 -1
  202. package/templates/.agents/rules/security-alerts.en.md +8 -8
  203. package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
  204. package/templates/.agents/skills/analyze-task/SKILL.en.md +15 -2
  205. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +19 -2
  206. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
  207. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
  208. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  209. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  210. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  211. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  212. package/templates/.agents/skills/code-task/SKILL.en.md +14 -1
  213. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +14 -1
  214. package/templates/.agents/skills/code-task/config/verify.en.json +5 -14
  215. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +5 -14
  216. package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
  217. package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
  218. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
  219. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
  220. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
  221. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
  222. package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
  223. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
  224. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +5 -1
  225. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +5 -1
  226. package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +2 -0
  227. package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +2 -0
  228. package/templates/.agents/skills/complete-task/SKILL.en.md +9 -22
  229. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +9 -22
  230. package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
  231. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
  232. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  233. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  234. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  235. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  236. package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
  237. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
  238. package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
  239. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
  240. package/templates/.agents/skills/plan-task/SKILL.en.md +14 -1
  241. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +16 -1
  242. package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
  243. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
  244. package/templates/.agents/skills/review-analysis/SKILL.en.md +14 -1
  245. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +14 -1
  246. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
  247. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
  248. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
  249. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
  250. package/templates/.agents/skills/review-code/SKILL.en.md +14 -1
  251. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +14 -1
  252. package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
  253. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
  254. package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
  255. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
  256. package/templates/.agents/skills/review-plan/SKILL.en.md +14 -1
  257. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +14 -1
  258. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
  259. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
  260. package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
  261. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
  262. package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
  263. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
  264. package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
  265. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
  266. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +5 -1
  267. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +5 -1
  268. package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +3 -1
  269. package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +3 -1
  270. package/templates/.agents/skills/test/SKILL.en.md +13 -2
  271. package/templates/.agents/skills/test/SKILL.zh-CN.md +13 -2
  272. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
  273. package/templates/.agents/templates/task.en.md +6 -0
  274. package/templates/.agents/templates/task.zh-CN.md +6 -0
  275. package/templates/.agents/scripts/security-alerts.github.sh +0 -151
  276. package/templates/.agents/scripts/security-alerts.sh +0 -31
  277. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
  278. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
  279. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
  280. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
@@ -14,6 +14,10 @@ description: >
14
14
 
15
15
  ## 行为边界 / 关键规则
16
16
 
17
+ ### 持久化报告证据
18
+
19
+ 生成收尾报告或同步内容时,先读取 `.agents/rules/evidence-reporting.md`。成功检查记录命令、范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议保留复现入口、准确位置和决定性摘录。
20
+
17
21
  - 本命令更新任务元数据并物理移动任务目录
18
22
  - 除非强制执行,不要转移有未完成工作流步骤的任务
19
23
  - 入口接受可选 `--external-pr <N>`;仅用于外部交付候选歧义时的显式选择,不绕过身份或平台门禁
@@ -24,7 +28,7 @@ description: >
24
28
 
25
29
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
26
30
 
27
- 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
31
+ 运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
28
32
 
29
33
  ```bash
30
34
  agent-infra-internal task-snapshot {task-id} --format text
@@ -122,7 +126,7 @@ Please satisfy the hard prerequisite first, then retry complete-task.
122
126
  ### 3. 完成业务内容更新
123
127
 
124
128
  在 `.agents/workspace/active/{task-id}/task.md` 中只更新生命周期核心不负责的业务内容:
125
- - 新增或更新 `## 状态核对` 段,粘贴第 0 步审计命令原文(含 `$ ` 前缀行),放在 `## 活动日志` 之前
129
+ - 新增或更新 `## 状态核对` 段,记录第 0 步审计命令、任务/产物范围、关键结果和未覆盖部分;正常成功不复制完整目录清单或 `task.md` 尾部,失败、阻塞、身份不一致或争议时附决定性原文行,放在 `## 活动日志` 之前
126
130
  - 标记所有工作流步骤为已完成
127
131
  - 逐项验证并勾选 `## 完成检查清单` 中的所有条目(将 `- [ ]` 改为 `- [x]`)
128
132
 
@@ -166,36 +170,19 @@ agent-infra-internal task-verify {task-id} complete-task.preflight --format text
166
170
 
167
171
  `--force` 不能解除身份、并发、本地原子性或 required-PR hard gate;这些能力失败时必须停止。其余审查、人工校验和平台证据由 terminal verification 记录为 warning/pending,并通过后续重试恢复。
168
172
 
169
- ### 6. 执行宿主 finalization 入口并验证终态
173
+ ### 6. 执行宿主 finalization 入口
170
174
 
171
175
  ```bash
172
176
  agent-infra-internal task-finalization {task-id} complete --agent {standard-agent-token}
173
177
  ```
174
178
 
175
- finalization 按 lifecycle → task 评论 → `complete-task.completed` 校验的固定顺序执行,并将每一步的状态写入宿主 receipt。`result=completed` 即表示 lifecycle 已安全完成;若还有外围 warning,返回 `result=completed_with_warnings`、warnings 和 pending steps。`result=failed` 或 `result=blocked` 仅用于硬失败或 receipt/capability 失败,修复原因后以同一入口重试,不得宣称完成或手工补写局部状态。
176
-
177
- ```bash
178
- ls .agents/workspace/completed/{task-id}/task.md
179
- ```
180
-
181
- 仅在 finalization 返回 `status=completed` 后确认任务目录已成功移动。
179
+ finalization 按 lifecycle → task 评论 → `complete-task.completed` 校验的固定顺序执行,并将每一步的状态写入宿主 receipt。`result=completed` 即表示宿主已依据结构化结果和 receipt 安全完成;若还有外围 warning,返回 `result=completed_with_warnings`、warnings 和 pending steps。`result=failed` 或 `result=blocked` 仅用于硬失败或 receipt/capability 失败,修复原因后以同一入口重试,不得宣称完成或手工补写局部状态。沙箱不得从旧挂载执行 `ls completed` 或本地终态校验来重新裁决该结果。
182
180
 
183
181
  ### 7. 处理 finalization 重试与结果
184
182
 
185
183
  场景 A 与场景 B `finalization-retry` 都从宿主执行同一个 `task-finalization` 入口。receipt 只是重入提示,不是 canonical truth:每次重入都要重新验证终态 task 评论和完成校验;只有任务已处于 `completed` 且短号 registry 已释放时,才可跳过不可逆的 lifecycle。不得拆开调用旧的 lifecycle、评论同步或完成校验命令。若 task 评论或校验因网络问题返回 `blocked`,保留 receipt 和已完成状态,修复网络后重跑 complete-task;若生命周期仍未完成,任务保持 active 并从 receipt 的待处理步骤继续。
186
184
 
187
- 完成结果必须包含本次 finalization 的结构化输出,确认任务产物和同步状态符合规范:
188
-
189
- ```bash
190
- agent-infra-internal task-verify {task-id} complete-task.completed --format text
191
- ```
192
-
193
- 处理结果:
194
- - `status=completed` / 退出码 0(全部通过)-> 继续到「告知用户」步骤
195
- - `status=failed` / 退出码 1 -> 根据输出修复问题后重新运行 finalization
196
- - `status=blocked` / 退出码 2 -> 保留 receipt 与已完成的步骤并停止;稍后重跑 complete-task 进入 `finalization-retry`
197
-
198
- 将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
185
+ 完成结果必须直接消费本次宿主 finalization 的结构化输出、receipt 和 warning projection。`completed` 或 `completed_with_warnings` 才允许继续;`failed` / `blocked` / `unknown` 必须保留 receipt 并停止,之后通过同一 finalization 入口重试。不要在沙箱旧挂载中另行运行 `ls completed` 或 `task-verify complete-task.completed`,也不要用其结果推翻宿主结果。
199
186
 
200
187
  ### accepted 后的 sandbox-control 结果恢复
201
188
 
@@ -126,6 +126,14 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
126
126
  - `blocked`: retain the candidate and retry the same file after the transient problem is fixed.
127
127
  - `failed`: report the stable error code. Never modify and retry a candidate under the same idempotency key.
128
128
 
129
+ A controlled invocation may return `control` request evidence: `accepted: true`
130
+ with `recovery: none` means the current result can be consumed; `accepted: false`
131
+ with `recovery: new-request-id` means the request was not admitted and the same
132
+ candidate may be retried with a new outer request ID after the transient problem
133
+ is fixed; `recovery: same-request-id` or `recovery: inspect-domain-state` means
134
+ the request was accepted, so do not create a new candidate or replay it
135
+ automatically. Recover with the original request or inspect host task state first.
136
+
129
137
  ### 4. Platform Failure Compatibility
130
138
 
131
139
  The host service owns platform cascading. The compatibility recovery commands remain visible in the host warning and are not run from the sandbox:
@@ -125,6 +125,13 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
125
125
  - `blocked`:保留 candidate 文件,修复暂态问题后用同一文件重试。
126
126
  - `failed`:报告稳定错误码;幂等冲突时不得改写原 key 或原 candidate 后重试。
127
127
 
128
+ 受控调用可能在结果中返回 `control` 请求证据:`accepted: true` 且
129
+ `recovery: none` 表示可以消费当前结果;`accepted: false` 且
130
+ `recovery: new-request-id` 表示请求尚未受理,暂态问题恢复后才能用同一份
131
+ candidate 和新的 outer request ID 重试;`recovery: same-request-id` 或
132
+ `recovery: inspect-domain-state` 表示请求已经受理,不得创建新的 candidate 或
133
+ 自动重放,必须先使用原 request 检查结果或宿主任务状态。
134
+
128
135
  ### 4. 平台失败兼容说明
129
136
 
130
137
  平台级联由宿主服务完成。兼容的人工恢复命令仍由宿主 warning 指引,不在沙箱内执行:
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
34
34
 
35
35
  ### 1. Retrieve Alert Information
36
36
 
37
- Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}` and parse its JSON result to fetch the alert details.
37
+ Read `.agents/rules/security-alerts.md` before this step, then run `agent-infra-internal platform-security read --kind code-scanning --number {alert-number}` and parse its JSON result to fetch the alert details.
38
38
 
39
39
  Extract key information:
40
40
  - `number`: alert number
@@ -34,7 +34,7 @@ description: >
34
34
 
35
35
  ### 1. 获取告警信息
36
36
 
37
- 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}`,解析其 JSON 结果获取告警详情。
37
+ 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `agent-infra-internal platform-security read --kind code-scanning --number {alert-number}`,解析其 JSON 结果获取告警详情。
38
38
 
39
39
  提取关键信息:
40
40
  - `number`:告警编号
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
34
34
 
35
35
  ### 1. Retrieve Alert Information
36
36
 
37
- Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}` and parse its JSON result to fetch the alert details.
37
+ Read `.agents/rules/security-alerts.md` before this step, then run `agent-infra-internal platform-security read --kind dependabot --number {alert-number}` and parse its JSON result to fetch the alert details.
38
38
 
39
39
  Extract key information:
40
40
  - `number`: alert number
@@ -34,7 +34,7 @@ description: >
34
34
 
35
35
  ### 1. 获取告警信息
36
36
 
37
- 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}`,解析其 JSON 结果获取告警详情。
37
+ 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `agent-infra-internal platform-security read --kind dependabot --number {alert-number}`,解析其 JSON 结果获取告警详情。
38
38
 
39
39
  提取关键信息:
40
40
  - `number`:告警编号
@@ -19,17 +19,17 @@ Confirm that:
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
22
- ### 2. Run the bootstrap script
22
+ ### 2. Run the labels runtime intent
23
23
 
24
24
  Execute the complete label initialization flow with:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-labels/scripts/init-labels.sh
27
+ agent-infra-internal platform-metadata init-labels
28
28
  ```
29
29
 
30
- The script and `.agents/rules/label-milestone-setup.md` are responsible for:
30
+ The runtime intent and `.agents/rules/label-milestone-setup.md` are responsible for:
31
31
  - Reading the configured `labels.in` mapping and preserving unrelated labels
32
- - Selecting the provider leaf or returning a clear no-op/degraded result
32
+ - Selecting the platform capability or returning a clear no-op/degraded result
33
33
  - Creating or updating the standard label set and reporting the final summary
34
34
  - Printing the final execution summary
35
35
 
@@ -69,8 +69,8 @@ Show the current mapping and ask whether it should be updated.
69
69
  #### 4.3 Write the mapping and create labels
70
70
 
71
71
  1. Write the final mapping to `.agents/.airc.json` under `labels.in`.
72
- 2. Run `bash .agents/skills/init-labels/scripts/init-labels.sh` to create or update one `in: {key}` label for each mapping key.
73
- 3. After user confirmation, rerun the script with `--cleanup-stale-in` to delete stale `in:` labels that are no longer present in the final mapping.
72
+ 2. Run `agent-infra-internal platform-metadata init-labels` to create or update one `in: {key}` label for each mapping key.
73
+ 3. After user confirmation, rerun the intent with `--cleanup-stale-in` to delete stale `in:` labels that are no longer present in the final mapping.
74
74
 
75
75
  ### 5. Output and behavior guarantees
76
76
 
@@ -100,7 +100,7 @@ Next step - initialize milestones (optional):
100
100
 
101
101
  ## Error Handling
102
102
 
103
- - Provider capability unavailable: report the script's `degraded` or `no-op` result without claiming remote changes.
104
- - Provider authentication or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
103
+ - Platform capability unavailable: report the runtime's `degraded` or `no-op` result without claiming remote changes.
104
+ - Platform authentication or repository access failure: report the runtime's non-zero exit status and diagnostic output; do not claim remote changes.
105
105
  - Permission error: prompt "No permission to manage labels in this repository"
106
106
  - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -19,17 +19,17 @@ description: >
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
22
- ### 2. 运行初始化脚本
22
+ ### 2. 运行 labels runtime intent
23
23
 
24
24
  执行以下命令,完成整套 label 初始化流程:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-labels/scripts/init-labels.sh
27
+ agent-infra-internal platform-metadata init-labels
28
28
  ```
29
29
 
30
- 脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
30
+ runtime intent 与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
31
  - 读取配置的 `labels.in` 映射并保留无关 label
32
- - 选择 provider 叶子,或返回明确的 no-op/degraded 结果
32
+ - 选择平台能力,或返回明确的 no-op/degraded 结果
33
33
  - 创建或更新标准 label 集合并输出最终摘要
34
34
  - 输出最终执行摘要
35
35
 
@@ -69,8 +69,8 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
69
69
  #### 4.3 写入配置并创建 label
70
70
 
71
71
  1. 将最终映射写入 `.agents/.airc.json` 的 `labels.in` 字段。
72
- 2. 执行 `bash .agents/skills/init-labels/scripts/init-labels.sh`,为每个映射 key 创建或更新 `in: {key}` label。
73
- 3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行脚本,清理不在最终映射中的旧 `in:` label。
72
+ 2. 执行 `agent-infra-internal platform-metadata init-labels`,为每个映射 key 创建或更新 `in: {key}` label。
73
+ 3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行 intent,清理不在最终映射中的旧 `in:` label。
74
74
 
75
75
  ### 5. 输出与行为保证
76
76
 
@@ -100,7 +100,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
100
100
 
101
101
  ## 错误处理
102
102
 
103
- - provider 能力不可用:如实报告脚本的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
104
- - provider 认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
103
+ - 平台能力不可用:如实报告 runtime 的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
104
+ - 平台认证或仓库访问失败:如实报告 runtime 的非零退出状态和诊断输出;不得声称远端已变更。
105
105
  - 权限不足:提示 "No permission to manage labels in this repository"
106
106
  - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -19,20 +19,18 @@ Confirm that:
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
22
- ### 2. Run the bootstrap script
22
+ ### 2. Run the milestones runtime intent
23
23
 
24
24
  Execute the complete milestone initialization flow with:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
27
+ agent-infra-internal platform-metadata init-milestones $ARGUMENTS
28
28
  ```
29
29
 
30
- The script and `.agents/rules/label-milestone-setup.md` are responsible for:
31
- - Creating and cleaning up a temporary workspace
32
- - Detecting whether `--history` was requested
33
- - Scanning all `v*` Git tags, selecting the highest valid version by SemVer precedence, and using compatibility default `0.1.0` when none is valid, without reading ecosystem manifests
34
- - Letting the provider leaf list and write current milestones
35
- - Building the desired milestone set and creating only the missing titles
30
+ The runtime intent and `.agents/rules/label-milestone-setup.md` are responsible for:
31
+ - Receiving the `--history` request and planning the desired milestones
32
+ - Applying the established baseline, history, state, and title-idempotency contract
33
+ - Letting runtime/provider code list and write current milestones
36
34
  - Printing the final execution summary
37
35
 
38
36
  ### 3. Standard milestone definitions
@@ -78,8 +76,8 @@ Next step - initialize labels (optional):
78
76
 
79
77
  ## Error Handling
80
78
 
81
- - Provider capability, authentication, or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
82
- - Version detection failed: prompt "Unable to determine current version baseline"
83
- - No valid SemVer `v*` tags found in `--history` mode: prompt "No valid SemVer history tags found matching v*; only standard milestones will be created"
79
+ - Platform capability, authentication, or repository access failure: report the runtime's non-zero exit status and diagnostic output; do not claim remote changes.
80
+ - Version detection failed: report the runtime's version-baseline error
81
+ - No valid SemVer `v*` tags found in `--history` mode: report the runtime's history diagnostic
84
82
  - Permission error: prompt "No permission to manage milestones in this repository"
85
83
  - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -19,20 +19,18 @@ description: >
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
22
- ### 2. 运行初始化脚本
22
+ ### 2. 运行 milestones runtime intent
23
23
 
24
24
  执行以下命令,完成整套里程碑初始化流程:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
27
+ agent-infra-internal platform-metadata init-milestones $ARGUMENTS
28
28
  ```
29
29
 
30
- 脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
- - 创建并清理临时工作目录
32
- - 检测是否传入 `--history`
33
- - 扫描所有 `v*` Git tag,按 SemVer precedence 选择最高合法版本;没有合法版本时使用兼容默认值 `0.1.0`,且不读取任何生态 manifest
34
- - 由 provider 叶子读取并写入当前里程碑
35
- - 构建目标里程碑集合,并且只创建缺失标题
30
+ runtime intent 与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
+ - 接收 `--history` 请求并规划目标里程碑
32
+ - 按既定基线、history、状态和标题幂等契约生成结果
33
+ - 由 runtime/provider 读取并写入当前里程碑
36
34
  - 输出最终执行摘要
37
35
 
38
36
  ### 3. 标准里程碑定义
@@ -78,8 +76,8 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
78
76
 
79
77
  ## 错误处理
80
78
 
81
- - provider 能力、认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
82
- - 版本解析失败:提示 "Unable to determine current version baseline"
83
- - `--history` 模式下未找到合法 SemVer `v*` git tags:提示 "No valid SemVer history tags found matching v*; only standard milestones will be created"
79
+ - 平台能力、认证或仓库访问失败:如实报告 runtime 的非零退出状态和诊断输出;不得声称远端已变更。
80
+ - 版本解析失败:报告 runtime 返回的版本基线错误
81
+ - `--history` 模式下未找到合法 SemVer `v*` git tags:报告 runtime 返回的 history 诊断
84
82
  - 权限不足:提示 "No permission to manage milestones in this repository"
85
83
  - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -13,6 +13,11 @@ If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--or
13
13
 
14
14
  ## Boundary / Critical Rules
15
15
 
16
+ ### Persisted Report Evidence
17
+
18
+ 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.
19
+
20
+ - 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
16
21
  - This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
17
22
  - This is a **mandatory human review checkpoint**; do not automatically proceed to implementation
18
23
  - 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
@@ -25,7 +30,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
25
30
 
26
31
  After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first. Reading instruction files does not count as an external-state action or conclusion.
27
32
 
28
- Run these commands and paste the raw output into this round's `## State Check` section:
33
+ Run these commands and record the task/artifact scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -103,6 +108,14 @@ When this round introduces a new key design decision, first run `agent-infra-int
103
108
 
104
109
  ### 6. Output Plan Document
105
110
 
111
+ Before writing this round's `{plan-artifact}`, create the controlled report skeleton:
112
+
113
+ ```bash
114
+ agent-infra-internal task-artifact {task-id} init --family plan --artifact {plan-artifact} --locale en
115
+ ```
116
+
117
+ The skeleton contains identity metadata, stable section markers, and required headings only; real plan content is required before the completion gate can pass. If the finalizer returns one provably safe structural error, call `task-artifact {task-id} repair --family plan --artifact {plan-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`, then rerun the same finalizer.
118
+
106
119
  Create `.agents/workspace/active/{task-id}/{plan-artifact}`.
107
120
 
108
121
  ### 7. Update Task Status
@@ -13,6 +13,11 @@ description: >
13
13
 
14
14
  ## 行为边界 / 关键规则
15
15
 
16
+ ### 持久化报告证据
17
+
18
+ 生成方案报告时,先读取 `.agents/rules/evidence-reporting.md`。状态核对和验证记录命令、目标范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议才附决定性原文摘录。
19
+
20
+ - 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md 规范化约束/候选完成资格审计,并在方案产物记录五张资格审计表;不得把来源不明或未确认约束自动升级为排除条件
16
21
  - 本技能仅产出技术方案文档(`plan.md` 或 `plan-r{N}.md`)—— 不修改任何业务代码
17
22
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
18
23
  - 这是一个**强制性的人工审查检查点** —— 不要自动进入实现阶段
@@ -25,7 +30,7 @@ description: >
25
30
 
26
31
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
27
32
 
28
- 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
33
+ 运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -83,6 +88,8 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
83
88
 
84
89
  ### 5. 设计技术方案
85
90
 
91
+ 方案必须按 `.agents/rules/decision-qualification.md` 复核规范化约束和候选,并在方案产物保留五张资格审计表及真实上游关系;来源不明或未人工确认的约束不得自动排除候选。
92
+
86
93
  遵循 `.agents/workflows/feature-development.yaml` 中的 `technical-design` 步骤:
87
94
 
88
95
  **必要任务**:
@@ -104,6 +111,14 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
104
111
 
105
112
  ### 6. 输出计划文档
106
113
 
114
+ 在首次写入本轮 `{plan-artifact}` 前,先创建受控报告骨架:
115
+
116
+ ```bash
117
+ agent-infra-internal task-artifact {task-id} init --family plan --artifact {plan-artifact}
118
+ ```
119
+
120
+ 骨架只包含身份元数据、稳定 section marker 和必需标题;必须填入真实方案内容后才能通过完成门禁。finalizer 返回可证明的单个结构错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family plan --artifact {plan-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`,然后完整重跑 finalizer。
121
+
107
122
  创建 `.agents/workspace/active/{task-id}/{plan-artifact}`。
108
123
 
109
124
  ### 7. 更新任务状态
@@ -17,25 +17,15 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "plan.md|plan-r{N}.md",
20
- "required_sections": [
21
- "Problem Understanding",
22
- "Constraints",
23
- "Option Comparison",
24
- "Technical Approach",
25
- "Implementation Steps",
26
- "File List",
27
- "Verification Strategy",
28
- "State Check"
29
- ],
30
- "required_patterns": [
31
- "^\\$ "
32
- ]
20
+ "schema": "plan"
33
21
  },
34
22
  "activity-log": {
35
23
  "expected_action_pattern": "(Plan Task|Technical Design) \\(Round \\d+\\)"
36
24
  },
37
25
  "review-ledger": {
38
- "stage_scope": ["analysis"]
26
+ "stage_scope": [
27
+ "analysis"
28
+ ]
39
29
  },
40
30
  "platform-sync": {
41
31
  "when": "issue_number_exists",
@@ -17,25 +17,15 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "plan.md|plan-r{N}.md",
20
- "required_sections": [
21
- "问题理解",
22
- "约束条件",
23
- "方案对比",
24
- "技术方法",
25
- "实施步骤",
26
- "文件清单",
27
- "验证策略",
28
- "状态核对"
29
- ],
30
- "required_patterns": [
31
- "^\\$ "
32
- ]
20
+ "schema": "plan"
33
21
  },
34
22
  "activity-log": {
35
23
  "expected_action_pattern": "(Plan Task|Technical Design) \\(Round \\d+\\)"
36
24
  },
37
25
  "review-ledger": {
38
- "stage_scope": ["analysis"]
26
+ "stage_scope": [
27
+ "analysis"
28
+ ]
39
29
  },
40
30
  "platform-sync": {
41
31
  "when": "issue_number_exists",
@@ -15,6 +15,11 @@ Review the latest analysis artifact and produce `review-analysis.md` or `review-
15
15
 
16
16
  ## Boundary / Critical Rules
17
17
 
18
+ ### Persisted Report Evidence
19
+
20
+ 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.
21
+
22
+ - 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
18
23
  - This skill only reviews analysis artifacts and writes a report; it does not modify product code.
19
24
  - 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
20
25
  - After executing this skill, you **must** immediately update task.md.
@@ -25,7 +30,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
25
30
 
26
31
  After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first.
27
32
 
28
- Run these commands and paste the raw output into this round's `## State Check` section:
33
+ Run these commands and record the task/artifact scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -64,6 +69,14 @@ Check requirement completeness, risks, affected scope, open questions, and effor
64
69
 
65
70
  ### 5. Write Review Report
66
71
 
72
+ Before writing this round's `{review-artifact}`, create the controlled review skeleton:
73
+
74
+ ```bash
75
+ agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact} --locale en
76
+ ```
77
+
78
+ The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error, call `task-artifact {task-id} repair --family review-analysis --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`, then rerun the original finalizer.
79
+
67
80
  Create `.agents/workspace/active/{task-id}/{review-artifact}`.
68
81
 
69
82
  > Read `reference/report-template.md` before writing the report.
@@ -15,6 +15,11 @@ description: >
15
15
 
16
16
  ## 行为边界 / 关键规则
17
17
 
18
+ ### 持久化报告证据
19
+
20
+ 生成审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常检视记录命令、范围、结构化结果、实际结论和未覆盖部分;finding、阻塞或争议保留可复现位置与决定性摘录,身份字段必须精确保留。
21
+
22
+ - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的五张资格审计表、digest、QCR 和上游关系;不得把流程标签当作身份认证
18
23
  - 本技能只审查分析产物并写报告,不修改业务代码
19
24
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
20
25
  - 执行本技能后,你**必须**立即更新 task.md
@@ -25,7 +30,7 @@ description: >
25
30
 
26
31
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
27
32
 
28
- 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
33
+ 运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -67,6 +72,14 @@ agent-infra-internal task-snapshot {task-id} --format text
67
72
 
68
73
  ### 5. 编写审查报告
69
74
 
75
+ 在首次写入本轮 `{review-artifact}` 前,先创建受控审查骨架:
76
+
77
+ ```bash
78
+ agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact}
79
+ ```
80
+
81
+ 骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family review-analysis --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`,再重跑原 finalizer。
82
+
70
83
  创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
71
84
 
72
85
  > 报告格式见 `reference/report-template.md`。写报告前先读取 `reference/report-template.md`。
@@ -17,24 +17,7 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "review-analysis.md|review-analysis-r{N}.md",
20
- "required_sections": [
21
- "Review Summary",
22
- "Review Coverage Declaration",
23
- "Requirement Analysis Coverage",
24
- "Traceability Matrix",
25
- "Findings",
26
- "Non-blocking Advisories",
27
- "Manual Validation Items",
28
- "Conclusion and Recommendations",
29
- "State Check",
30
- "Evidence",
31
- "Self-Doubt",
32
- "Review Disagreement Ledger Writeback"
33
- ],
34
- "required_patterns": [
35
- "^### Approval Decision$",
36
- "^\\$ "
37
- ]
20
+ "schema": "review-analysis"
38
21
  },
39
22
  "decision-details": {},
40
23
  "review-summary": {
@@ -17,24 +17,7 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "review-analysis.md|review-analysis-r{N}.md",
20
- "required_sections": [
21
- "审查摘要",
22
- "检视覆盖声明",
23
- "需求分析专项覆盖",
24
- "追踪矩阵",
25
- "问题清单",
26
- "非阻塞建议",
27
- "人工校验项",
28
- "结论与建议",
29
- "状态核对",
30
- "证据原文",
31
- "自我质疑",
32
- "审查分歧账本回写"
33
- ],
34
- "required_patterns": [
35
- "^### 审查决定$",
36
- "^\\$ "
37
- ]
20
+ "schema": "review-analysis"
38
21
  },
39
22
  "decision-details": {},
40
23
  "review-summary": {