@fitlab-ai/agent-infra 0.8.5 → 0.9.0

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 (425) hide show
  1. package/bin/cli.ts +2 -2
  2. package/dist/bin/cli.js +2 -2
  3. package/dist/bin/internal-cli.js +98 -0
  4. package/dist/lib/decide.js +81 -90
  5. package/dist/lib/defaults.json +1 -0
  6. package/dist/lib/git/review-snapshot.js +79 -0
  7. package/dist/lib/git/workflow.js +101 -0
  8. package/dist/lib/internal/git-workflow.js +42 -0
  9. package/dist/lib/internal/platform-checks.js +119 -0
  10. package/dist/lib/internal/platform-comment.js +129 -0
  11. package/dist/lib/internal/platform-context.js +46 -0
  12. package/dist/lib/internal/platform-issue.js +142 -0
  13. package/dist/lib/internal/platform-pr.js +146 -0
  14. package/dist/lib/internal/release-workflow.js +217 -0
  15. package/dist/lib/internal/task-artifact.js +67 -0
  16. package/dist/lib/internal/task-context.js +43 -0
  17. package/dist/lib/internal/task-event.js +70 -0
  18. package/dist/lib/internal/task-ledger.js +114 -0
  19. package/dist/lib/internal/task-lifecycle.js +58 -0
  20. package/dist/lib/internal/task-short-id.js +83 -0
  21. package/dist/lib/internal/task-snapshot.js +47 -0
  22. package/dist/lib/internal/task-verify.js +50 -0
  23. package/dist/lib/internal/task-warning.js +74 -0
  24. package/dist/lib/platform/adapters.js +14 -0
  25. package/dist/lib/platform/context.js +146 -0
  26. package/dist/lib/platform/github-client.js +124 -0
  27. package/dist/lib/platform/issue-comments.js +409 -0
  28. package/dist/lib/platform/issue-metadata.js +183 -0
  29. package/dist/lib/platform/issues.js +617 -0
  30. package/dist/lib/platform/metadata-labels.js +28 -0
  31. package/dist/lib/platform/pr-checks.js +216 -0
  32. package/dist/lib/platform/pr-summary.js +88 -0
  33. package/dist/lib/platform/pull-request-metadata.js +38 -0
  34. package/dist/lib/platform/pull-requests.js +338 -0
  35. package/dist/lib/platform/releases.js +82 -0
  36. package/dist/lib/platform/types.js +22 -0
  37. package/dist/lib/platform/verification-required.js +78 -0
  38. package/dist/lib/platform/verification-sync.js +1014 -0
  39. package/dist/lib/platform/verification.js +6 -0
  40. package/dist/lib/release/channels.js +31 -0
  41. package/dist/lib/release/workflow.js +32 -0
  42. package/dist/lib/render.js +3 -2
  43. package/dist/lib/run/index.js +24 -7
  44. package/dist/lib/sandbox/capture.js +25 -3
  45. package/dist/lib/sandbox/commands/create.js +36 -22
  46. package/dist/lib/sandbox/commands/enter.js +34 -11
  47. package/dist/lib/sandbox/commands/list-running.js +10 -8
  48. package/dist/lib/sandbox/commands/show.js +2 -2
  49. package/dist/lib/sandbox/commands/start.js +53 -15
  50. package/dist/lib/sandbox/index.js +6 -6
  51. package/dist/lib/sandbox/mounts.js +36 -0
  52. package/dist/lib/sandbox/recovery.js +562 -0
  53. package/dist/lib/sandbox/task-resolver.js +5 -1
  54. package/dist/lib/sandbox/tools.js +19 -0
  55. package/dist/lib/server/protocol.js +5 -5
  56. package/dist/lib/task/activity-log.js +61 -0
  57. package/dist/lib/task/artifact-lifecycle.js +427 -0
  58. package/dist/lib/task/command-options.js +30 -0
  59. package/dist/lib/task/commands/cat.js +36 -6
  60. package/dist/lib/task/commands/decisions.js +80 -46
  61. package/dist/lib/task/commands/files.js +21 -7
  62. package/dist/lib/task/commands/grep.js +55 -7
  63. package/dist/lib/task/commands/issue-body.js +23 -14
  64. package/dist/lib/task/commands/log.js +27 -70
  65. package/dist/lib/task/commands/show.js +20 -7
  66. package/dist/lib/task/commands/status.js +18 -8
  67. package/dist/lib/task/decision-intents.js +154 -0
  68. package/dist/lib/task/decision-items.js +53 -0
  69. package/dist/lib/task/events.js +318 -0
  70. package/dist/lib/task/frontmatter.js +159 -1
  71. package/dist/lib/task/implementation-inputs.js +117 -0
  72. package/dist/lib/task/index.js +12 -9
  73. package/dist/lib/task/issue-form.js +19 -6
  74. package/dist/lib/task/ledger-intents.js +185 -0
  75. package/dist/lib/task/ledger.js +65 -35
  76. package/dist/lib/task/lifecycle.js +484 -0
  77. package/dist/lib/task/resolve-ref.js +152 -32
  78. package/dist/lib/task/review-artifacts.js +101 -0
  79. package/dist/lib/task/review-fingerprint.js +46 -0
  80. package/dist/lib/task/sections.js +358 -4
  81. package/dist/lib/task/short-id.js +292 -7
  82. package/dist/lib/task/snapshot.js +95 -0
  83. package/dist/lib/task/verification-checks.js +8 -0
  84. package/dist/lib/task/verification-config.js +14 -0
  85. package/dist/lib/task/verification-engine.js +906 -0
  86. package/dist/lib/task/verification-review.js +3 -0
  87. package/dist/lib/task/verification-types.js +2 -0
  88. package/dist/lib/task/verification.js +113 -0
  89. package/dist/lib/task/workflow-warning-intents.js +131 -0
  90. package/dist/lib/task/workflow-warnings.js +10 -78
  91. package/dist/lib/task/write.js +241 -0
  92. package/lib/decide.ts +57 -97
  93. package/lib/defaults.json +1 -0
  94. package/lib/git/review-snapshot.ts +73 -0
  95. package/lib/git/workflow.ts +101 -0
  96. package/lib/internal/git-workflow.ts +37 -0
  97. package/lib/internal/platform-checks.ts +101 -0
  98. package/lib/internal/platform-comment.ts +99 -0
  99. package/lib/internal/platform-context.ts +33 -0
  100. package/lib/internal/platform-issue.ts +116 -0
  101. package/lib/internal/platform-pr.ts +119 -0
  102. package/lib/internal/release-workflow.ts +186 -0
  103. package/lib/internal/task-artifact.ts +47 -0
  104. package/lib/internal/task-context.ts +35 -0
  105. package/lib/internal/task-event.ts +51 -0
  106. package/lib/internal/task-ledger.ts +86 -0
  107. package/lib/internal/task-lifecycle.ts +41 -0
  108. package/lib/internal/task-short-id.ts +55 -0
  109. package/lib/internal/task-snapshot.ts +32 -0
  110. package/lib/internal/task-verify.ts +33 -0
  111. package/lib/internal/task-warning.ts +50 -0
  112. package/lib/platform/adapters.ts +30 -0
  113. package/lib/platform/context.ts +164 -0
  114. package/lib/platform/github-client.ts +146 -0
  115. package/lib/platform/issue-comments.ts +479 -0
  116. package/lib/platform/issue-metadata.ts +250 -0
  117. package/lib/platform/issues.ts +691 -0
  118. package/lib/platform/metadata-labels.ts +33 -0
  119. package/lib/platform/pr-checks.ts +246 -0
  120. package/lib/platform/pr-summary.ts +90 -0
  121. package/lib/platform/pull-request-metadata.ts +69 -0
  122. package/lib/platform/pull-requests.ts +380 -0
  123. package/lib/platform/releases.ts +71 -0
  124. package/lib/platform/types.ts +74 -0
  125. package/lib/platform/verification-required.ts +83 -0
  126. package/{runtime/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +198 -367
  127. package/lib/platform/verification.ts +11 -0
  128. package/lib/release/channels.ts +30 -0
  129. package/lib/release/workflow.ts +31 -0
  130. package/lib/render.ts +3 -2
  131. package/lib/run/index.ts +25 -7
  132. package/lib/sandbox/capture.ts +29 -3
  133. package/lib/sandbox/commands/create.ts +43 -25
  134. package/lib/sandbox/commands/enter.ts +38 -11
  135. package/lib/sandbox/commands/list-running.ts +10 -8
  136. package/lib/sandbox/commands/show.ts +2 -2
  137. package/lib/sandbox/commands/start.ts +50 -16
  138. package/lib/sandbox/index.ts +6 -6
  139. package/lib/sandbox/mounts.ts +55 -0
  140. package/lib/sandbox/recovery.ts +828 -0
  141. package/lib/sandbox/task-resolver.ts +5 -1
  142. package/lib/sandbox/tools.ts +31 -0
  143. package/lib/server/protocol.ts +5 -5
  144. package/lib/task/activity-log.ts +62 -0
  145. package/lib/task/artifact-lifecycle.ts +484 -0
  146. package/lib/task/command-options.ts +32 -0
  147. package/lib/task/commands/cat.ts +22 -9
  148. package/lib/task/commands/decisions.ts +49 -47
  149. package/lib/task/commands/files.ts +14 -6
  150. package/lib/task/commands/grep.ts +34 -7
  151. package/lib/task/commands/issue-body.ts +16 -16
  152. package/lib/task/commands/log.ts +17 -70
  153. package/lib/task/commands/show.ts +14 -6
  154. package/lib/task/commands/status.ts +17 -7
  155. package/lib/task/decision-intents.ts +163 -0
  156. package/lib/task/decision-items.ts +64 -0
  157. package/lib/task/events.ts +320 -0
  158. package/lib/task/frontmatter.ts +202 -2
  159. package/lib/task/implementation-inputs.ts +137 -0
  160. package/lib/task/index.ts +12 -9
  161. package/lib/task/issue-form.ts +20 -6
  162. package/lib/task/ledger-intents.ts +201 -0
  163. package/lib/task/ledger.ts +77 -31
  164. package/lib/task/lifecycle.ts +458 -0
  165. package/lib/task/resolve-ref.ts +197 -36
  166. package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
  167. package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +17 -12
  168. package/lib/task/sections.ts +486 -4
  169. package/lib/task/short-id.ts +403 -9
  170. package/lib/task/snapshot.ts +143 -0
  171. package/lib/task/verification-checks.ts +9 -0
  172. package/lib/task/verification-config.ts +20 -0
  173. package/{templates/.agents/scripts/validate-artifact.js → lib/task/verification-engine.ts} +199 -406
  174. package/lib/task/verification-review.ts +9 -0
  175. package/lib/task/verification-types.ts +29 -0
  176. package/lib/task/verification.ts +156 -0
  177. package/lib/task/workflow-warning-intents.ts +142 -0
  178. package/lib/task/workflow-warnings.ts +10 -78
  179. package/lib/task/write.ts +468 -0
  180. package/package.json +4 -2
  181. package/templates/.agents/README.en.md +4 -3
  182. package/templates/.agents/README.zh-CN.md +4 -3
  183. package/templates/.agents/rules/README.en.md +6 -5
  184. package/templates/.agents/rules/README.zh-CN.md +6 -5
  185. package/templates/.agents/rules/create-issue.en.md +1 -1
  186. package/templates/.agents/rules/create-issue.github.en.md +5 -184
  187. package/templates/.agents/rules/create-issue.github.zh-CN.md +12 -178
  188. package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
  189. package/templates/.agents/rules/human-decision-context.en.md +36 -0
  190. package/templates/.agents/rules/human-decision-context.zh-CN.md +36 -0
  191. package/templates/.agents/rules/issue-fields.github.en.md +4 -148
  192. package/templates/.agents/rules/issue-fields.github.zh-CN.md +9 -144
  193. package/templates/.agents/rules/issue-pr-commands.en.md +43 -3
  194. package/templates/.agents/rules/issue-pr-commands.github.en.md +15 -220
  195. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +23 -213
  196. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +45 -3
  197. package/templates/.agents/rules/issue-sync.en.md +1 -1
  198. package/templates/.agents/rules/issue-sync.github.en.md +14 -301
  199. package/templates/.agents/rules/issue-sync.github.zh-CN.md +36 -287
  200. package/templates/.agents/rules/issue-sync.zh-CN.md +1 -1
  201. package/templates/.agents/rules/milestone-inference.en.md +1 -1
  202. package/templates/.agents/rules/milestone-inference.github.en.md +7 -119
  203. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +8 -108
  204. package/templates/.agents/rules/milestone-inference.zh-CN.md +1 -1
  205. package/templates/.agents/rules/next-step-output.en.md +12 -11
  206. package/templates/.agents/rules/next-step-output.zh-CN.md +12 -11
  207. package/templates/.agents/rules/no-mid-flow-questions.en.md +3 -3
  208. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +3 -3
  209. package/templates/.agents/rules/pr-checks-commands.en.md +16 -3
  210. package/templates/.agents/rules/pr-checks-commands.github.en.md +10 -54
  211. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +19 -47
  212. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +30 -3
  213. package/templates/.agents/rules/pr-sync.en.md +30 -3
  214. package/templates/.agents/rules/pr-sync.github.en.md +12 -115
  215. package/templates/.agents/rules/pr-sync.github.zh-CN.md +26 -104
  216. package/templates/.agents/rules/pr-sync.zh-CN.md +43 -3
  217. package/templates/.agents/rules/review-handshake.en.md +8 -5
  218. package/templates/.agents/rules/review-handshake.zh-CN.md +8 -5
  219. package/templates/.agents/rules/task-management.en.md +11 -2
  220. package/templates/.agents/rules/task-management.zh-CN.md +11 -3
  221. package/templates/.agents/rules/task-short-id.en.md +25 -29
  222. package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
  223. package/templates/.agents/scripts/lib/agent-infra-package.js +1 -9
  224. package/templates/.agents/scripts/task-short-id.js +71 -533
  225. package/templates/.agents/skills/analyze-task/SKILL.en.md +22 -55
  226. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +26 -59
  227. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
  228. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
  229. package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
  230. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
  231. package/templates/.agents/skills/block-task/config/verify.json +1 -2
  232. package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
  233. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
  234. package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
  235. package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
  236. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
  237. package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
  238. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
  239. package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
  240. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
  241. package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
  242. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
  243. package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
  244. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
  245. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
  246. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
  247. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
  248. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
  249. package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
  250. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
  251. package/templates/.agents/skills/commit/SKILL.en.md +13 -11
  252. package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -11
  253. package/templates/.agents/skills/commit/config/verify.json +1 -2
  254. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -11
  255. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -11
  256. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +4 -8
  257. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +4 -8
  258. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +6 -18
  259. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +5 -17
  260. package/templates/.agents/skills/commit/reference/task-status-update.en.md +13 -0
  261. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +13 -0
  262. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +13 -36
  263. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +13 -36
  264. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -3
  265. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -3
  266. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +10 -54
  267. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +10 -79
  268. package/templates/.agents/skills/complete-task/SKILL.en.md +59 -63
  269. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +59 -63
  270. package/templates/.agents/skills/complete-task/config/verify.en.json +11 -7
  271. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +11 -7
  272. package/templates/.agents/skills/create-pr/SKILL.en.md +19 -44
  273. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +19 -43
  274. package/templates/.agents/skills/create-pr/config/verify.json +1 -2
  275. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +8 -12
  276. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +7 -11
  277. package/templates/.agents/skills/create-task/SKILL.en.md +12 -13
  278. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +12 -13
  279. package/templates/.agents/skills/create-task/config/verify.json +1 -2
  280. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  281. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  282. package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
  283. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  284. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  285. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
  286. package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
  287. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
  288. package/templates/.agents/skills/import-issue/config/verify.json +1 -2
  289. package/templates/.agents/skills/plan-task/SKILL.en.md +17 -42
  290. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +22 -49
  291. package/templates/.agents/skills/plan-task/config/verify.en.json +1 -3
  292. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -3
  293. package/templates/.agents/skills/post-release/SKILL.en.md +11 -81
  294. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +8 -78
  295. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  296. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  297. package/templates/.agents/skills/release/SKILL.en.md +16 -163
  298. package/templates/.agents/skills/release/SKILL.zh-CN.md +15 -162
  299. package/templates/.agents/skills/restore-task/SKILL.en.md +11 -29
  300. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -29
  301. package/templates/.agents/skills/restore-task/config/verify.json +1 -2
  302. package/templates/.agents/skills/review-analysis/SKILL.en.md +13 -25
  303. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +13 -33
  304. package/templates/.agents/skills/review-analysis/config/verify.en.json +3 -4
  305. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +3 -4
  306. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +9 -12
  307. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +9 -12
  308. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +9 -2
  309. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +9 -2
  310. package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +7 -0
  311. package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +7 -0
  312. package/templates/.agents/skills/review-code/SKILL.en.md +22 -36
  313. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +23 -41
  314. package/templates/.agents/skills/review-code/config/verify.en.json +3 -4
  315. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +3 -4
  316. package/templates/.agents/skills/review-code/reference/output-templates.en.md +56 -18
  317. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +56 -18
  318. package/templates/.agents/skills/review-code/reference/report-template.en.md +11 -4
  319. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +11 -4
  320. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +7 -0
  321. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +7 -0
  322. package/templates/.agents/skills/review-plan/SKILL.en.md +13 -25
  323. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +13 -33
  324. package/templates/.agents/skills/review-plan/config/verify.en.json +3 -4
  325. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +3 -4
  326. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +9 -12
  327. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +9 -12
  328. package/templates/.agents/skills/review-plan/reference/report-template.en.md +9 -2
  329. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +9 -2
  330. package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +7 -0
  331. package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +7 -0
  332. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +1 -2
  333. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +1 -2
  334. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +3 -15
  335. package/templates/.agents/skills/watch-pr/SKILL.en.md +24 -14
  336. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +25 -15
  337. package/templates/.agents/skills/watch-pr/config/verify.json +1 -2
  338. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +2 -2
  339. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +2 -2
  340. package/templates/.agents/templates/task.en.md +6 -1
  341. package/templates/.agents/templates/task.zh-CN.md +6 -1
  342. package/templates/.claude/commands/analyze-task.en.md +1 -1
  343. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  344. package/templates/.claude/commands/block-task.en.md +1 -1
  345. package/templates/.claude/commands/block-task.zh-CN.md +1 -1
  346. package/templates/.claude/commands/cancel-task.en.md +1 -1
  347. package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
  348. package/templates/.claude/commands/check-task.en.md +1 -1
  349. package/templates/.claude/commands/check-task.zh-CN.md +1 -1
  350. package/templates/.claude/commands/code-task.en.md +1 -1
  351. package/templates/.claude/commands/code-task.zh-CN.md +1 -1
  352. package/templates/.claude/commands/commit.en.md +1 -0
  353. package/templates/.claude/commands/commit.zh-CN.md +1 -0
  354. package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
  355. package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
  356. package/templates/.claude/commands/complete-task.en.md +1 -1
  357. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  358. package/templates/.claude/commands/create-pr.en.md +1 -1
  359. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  360. package/templates/.claude/commands/plan-task.en.md +1 -1
  361. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  362. package/templates/.claude/commands/review-analysis.en.md +1 -1
  363. package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
  364. package/templates/.claude/commands/review-code.en.md +1 -1
  365. package/templates/.claude/commands/review-code.zh-CN.md +1 -1
  366. package/templates/.claude/commands/review-plan.en.md +1 -1
  367. package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
  368. package/templates/.claude/commands/watch-pr.en.md +1 -1
  369. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  370. package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
  371. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
  372. package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
  373. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
  374. package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
  375. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
  376. package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
  377. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
  378. package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
  379. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
  380. package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
  381. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
  382. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
  383. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
  384. package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
  385. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
  386. package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
  387. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
  388. package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
  389. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
  390. package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
  391. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
  392. package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
  393. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
  394. package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
  395. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
  396. package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
  397. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
  398. package/templates/.git-hooks/check-large-files.cjs +92 -0
  399. package/templates/.git-hooks/check-version-format.sh +5 -1
  400. package/templates/.git-hooks/pre-commit +1 -0
  401. package/templates/.opencode/commands/analyze-task.en.md +1 -1
  402. package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
  403. package/templates/.opencode/commands/check-task.en.md +1 -1
  404. package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
  405. package/templates/.opencode/commands/code-task.en.md +1 -1
  406. package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
  407. package/templates/.opencode/commands/commit.en.md +2 -0
  408. package/templates/.opencode/commands/commit.zh-CN.md +2 -0
  409. package/templates/.opencode/commands/complete-task.en.md +1 -1
  410. package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
  411. package/templates/.opencode/commands/plan-task.en.md +1 -1
  412. package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
  413. package/templates/.opencode/commands/review-analysis.en.md +1 -1
  414. package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
  415. package/templates/.opencode/commands/review-code.en.md +1 -1
  416. package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
  417. package/templates/.opencode/commands/review-plan.en.md +1 -1
  418. package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
  419. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +0 -40
  420. package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
  421. package/templates/.agents/scripts/review-diff-fingerprint.js +0 -170
  422. package/templates/.agents/scripts/workflow-warnings.js +0 -290
  423. package/templates/.agents/skills/code-task/scripts/detect-mode.js +0 -257
  424. package/templates/.agents/skills/release/scripts/manage-milestones.github.sh +0 -80
  425. package/templates/.agents/skills/release/scripts/manage-milestones.sh +0 -6
@@ -3,6 +3,7 @@ name: review-code
3
3
  description: >
4
4
  Review code implementation and output a code review report.
5
5
  Use when a code implementation needs review before merging.
6
+ Only invoke this skill automatically when the conversation includes a resolvable task reference.
6
7
  ---
7
8
 
8
9
  # Code Review
@@ -32,26 +33,20 @@ After loading workflow / skill / rules instructions, and before any task-state j
32
33
  Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
33
34
 
34
35
  ```bash
35
- git status -s
36
- ls -la .agents/workspace/active/{task-id}/
37
- tail .agents/workspace/active/{task-id}/task.md
36
+ agent-infra-internal task-snapshot {task-id} --format text
38
37
  ```
39
38
 
40
39
  Before the state check is complete, do not make external-state assertions such as "the code is unchanged", "tests passed", or "there are no other references", including in reasoning. This gate is only a structural floor; evidence pairing and authenticity still require the report template and review discipline.
41
40
 
42
- ## Task id short ref
41
+ ## Task Context Resolution
43
42
 
44
- > If `{task-id}` matches `^[#]?[0-9]+$` (bare numeric or `#`-prefixed), follow the "SKILL parameter resolver" section of `.agents/rules/task-short-id.md`; treat `{task-id}` as the resolved full `TASK-YYYYMMDD-HHMMSS` form for every downstream command.
43
+ > The entry point may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments while preserving every business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty, one positional ref, or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to that full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
45
44
 
46
- ## Step Start: Write the started Marker
47
-
48
- After prerequisites pass and before this round's first artifact action, append a started marker to task.md `## Activity Log` (same base action as this round's done entry plus a ` [started]` suffix, note `started`):
45
+ > Resolve the task reference, then confirm that the task is in a state or directory supported by this skill and that `task.md` exists; if it cannot be located, handle it as a missing task and stop.
49
46
 
50
- ```
51
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Code (Round {N}) [started]** by {agent} — started
52
- ```
47
+ ## Step Start: Write the started Marker
53
48
 
54
- `ai task log` pairs it with the done entry written when the review completes onto one row (in progress → done). Format and pairing rules: see the "Activity Log started / done dual-marker convention" in `.agents/rules/task-management.md`.
49
+ After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-code.started --agent {agent}`.
55
50
 
56
51
  ## Steps
57
52
 
@@ -61,11 +56,9 @@ Require:
61
56
  - `.agents/workspace/active/{task-id}/task.md`
62
57
  - at least one code artifact: `code.md` or `code-r{N}.md`
63
58
 
64
- ### 2. Determine Review Round
59
+ ### 2. Resolve the Artifact Context
65
60
 
66
- Scan the task directory and record:
67
- - `{review-round}`
68
- - `{review-artifact}` as `review-code.md` or `review-code-r{N}.md`
61
+ Run `agent-infra-internal task-artifact {task-id} inspect --family review-code`. Continue only for `ready`; 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.
69
62
 
70
63
  ### 3. Read Implementation and Refinement Context
71
64
 
@@ -77,7 +70,7 @@ Follow `.agents/workflows/feature-development.yaml` and inspect the full change
77
70
  - Capture `R=$(git rev-parse HEAD)` exactly once; reuse that R for this round's report, fingerprint, and task review fact, and do not re-read HEAD later as a substitute
78
71
  - `git diff --binary "$R" -- <post-review-globs>` for tracked changes
79
72
  - `git ls-files -o --exclude-standard -z -- <post-review-globs>` for untracked new files
80
- - `node .agents/scripts/review-diff-fingerprint.js worktree "$R" --format json` to generate the reviewed diff fingerprint `F` and reviewed snapshot tree `T` together; write both into the report
73
+ - Write `mode=worktree` and baseline `R` to a temporary JSON file, then call `agent-infra-internal git-workflow snapshot --input {file}` to generate the reviewed diff fingerprint `F` and reviewed snapshot tree `T` together; write both into the report
81
74
 
82
75
  > Detailed review criteria, severity rules, and reviewer expectations live in `reference/review-criteria.md`. Read `reference/review-criteria.md` before reviewing.
83
76
  > Test review gate: when `git diff` touches test files, read `.agents/rules/testing-discipline.md` first and check it item by item, especially "do not add negative assertions when a positive assertion already covers the behavior".
@@ -90,33 +83,27 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
90
83
 
91
84
  ### 6. Update Task Status
92
85
 
93
- Get the current time:
94
-
95
- ```bash
96
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
97
- ```
98
-
99
86
  Update task.md:
100
- - When this round's `Overall Verdict` / `总体结论` is `Approved` / `通过` and `T == R^{tree}`, write `last_reviewed_commit: {R}`; when the Approved snapshot contains uncommitted changes, clear any existing `last_reviewed_commit` until `commit` anchors it
101
- - When this round is not Approved, preserve the existing `last_reviewed_commit`; do not advance or clear it
102
- - Append:
103
- `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Code (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {artifact-filename}`
87
+ - After the report, submit each new finding with `agent-infra-internal task-ledger {task-id} finding-upsert --stage code --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`; submit prior-response dispositions with `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {evidence}`. Do not scan ids or edit ledger rows
88
+ - After all ledger writes, call `agent-infra-internal task-ledger {task-id} stage-status --stage code` exactly once. Derive the verdict and next-step branch from `stageStatus.canAdvance`, and blocker/major/minor event counts from `unresolvedFindingCounts`; only `canAdvance=true` permits Approved
89
+ - 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
90
+ - For an Approved exit, collect PR and required-checks 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
91
+ - After handling `last_reviewed_commit`, run `agent-infra-internal task-event {task-id} review-code.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`
104
92
 
105
93
  Always include the `Manual-validation: {n}` field in the done log, including when it is 0.
106
94
  `manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
107
95
 
108
96
  If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
109
- - Read `.agents/rules/issue-sync.md` before syncing, and complete upstream repository detection plus permission detection
110
- - Set `status: in-progress` by following issue-sync.md
111
- - Create or update the task comment marker defined in `.agents/rules/issue-sync.md` (follow the task.md comment sync rule in issue-sync.md)
112
- - Publish the `{review-artifact}` comment
97
+ - Run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status in-progress`
98
+ - Run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
99
+ - Run `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`
113
100
 
114
101
  ### 7. Verification Gate
115
102
 
116
103
  Run the verification gate to confirm the task artifact and sync state are valid:
117
104
 
118
105
  ```bash
119
- node .agents/scripts/validate-artifact.js gate review-code .agents/workspace/active/{task-id} {review-artifact} --format text
106
+ agent-infra-internal task-verify {task-id} review-code.completed --artifact {review-artifact} --format text
120
107
  ```
121
108
 
122
109
  Handle the result as follows:
@@ -133,16 +120,15 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
133
120
  > **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.
134
121
 
135
122
  Choose exactly one branch based on the findings:
136
- - no blockers, no major, no minor -> approved with no issues
137
- - no blockers, but major or minor findings -> approved with issues
138
- - blockers that can be fixed in a focused pass -> changes requested
123
+ - `stageStatus.canAdvance=true` -> approved
124
+ - `stageStatus.canAdvance=false` and focused fixes are sufficient -> changes requested
139
125
  - major redesign or re-implementation needed -> rejected
140
126
 
141
127
  manual-validation counts do not influence branch selection; they are displayed only as manual validation counts.
142
128
 
143
129
  > 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.
144
130
 
145
- > 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).
131
+ > 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).
146
132
 
147
133
  Include all TUI command formats in the next-step output. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name).
148
134
 
@@ -3,6 +3,7 @@ name: review-code
3
3
  description: >
4
4
  审查代码实现并输出代码审查报告。
5
5
  当代码实现需要在合入前接受审查时使用。
6
+ 仅当对话包含可解析的任务引用时才可自动调用本技能。
6
7
  ---
7
8
 
8
9
  # 代码审查
@@ -32,26 +33,20 @@ description: >
32
33
  运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
33
34
 
34
35
  ```bash
35
- git status -s
36
- ls -la .agents/workspace/active/{task-id}/
37
- tail .agents/workspace/active/{task-id}/task.md
36
+ agent-infra-internal task-snapshot {task-id} --format text
38
37
  ```
39
38
 
40
39
  状态核对完成前,禁止任何关于外部状态的断言(例如“代码没变”“测试已通过”“没有其他引用”),包括思考阶段。本门禁只提供结构下限;逐条证据配对和真实性仍需按报告模板与审查要求核对。
41
40
 
42
- ## 任务入参短号别名
41
+ ## 任务上下文解析
43
42
 
44
- > 如果 `{task-id}` 入参匹配 `^[#]?[0-9]+$`(裸数字或带 `#` 前缀),先读取 `.agents/rules/task-short-id.md` 的「SKILL 入参解析」段执行解析;后续命令视 `{task-id}` 为解析后的全长 `TASK-YYYYMMDD-HHMMSS` 形式。
43
+ > 入口允许省略 task ref,也接受旧位置 task ref 或 `--task <ref>` / `-t <ref>`。先从完整参数中分离 task scope 并原样保留其他业务操作数,再调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空、位置 ref 或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为该完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
45
44
 
46
- ## 步骤开始:写入 started 标记
45
+ > 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
47
46
 
48
- 确认前置条件后、本轮第一个产出动作之前,向 task.md `## 活动日志` 追加一条 started 标记(与本轮 done 条目同基名 + ` [started]` 后缀,note 用 `started`):
47
+ ## 步骤开始:声明 started 事件
49
48
 
50
- ```
51
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Code (Round {N}) [started]** by {agent} — started
52
- ```
53
-
54
- `ai task log` 会把它与审查完成时写入的 done 条目配对成一行(进行中 → 已完成)。格式与配对规则见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
49
+ 确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-code.started --agent {agent}`。
55
50
 
56
51
  ## 执行步骤
57
52
  ### 1. 验证前置条件
@@ -60,15 +55,13 @@ tail .agents/workspace/active/{task-id}/task.md
60
55
  - `.agents/workspace/active/{task-id}/task.md`
61
56
  - 至少一个实现产物:`code.md` 或 `code-r{N}.md`
62
57
 
63
- ### 2. 确定审查轮次
58
+ ### 2. 解析审查上下文
64
59
 
65
- 扫描任务目录并记录:
66
- - `{review-round}`
67
- - 作为本轮产物的 `{review-artifact}`,格式为 `review-code.md` 或 `review-code-r{N}.md`
60
+ 运行 `agent-infra-internal task-artifact {task-id} inspect --family review-code`。仅当结果为 `ready` 时继续;从 `inputs` 取得最新 `{code-artifact}`,从 `next.round` / `next.name` 取得 `{review-round}` / `{review-artifact}`。不得自行扫描轮次或拼装文件名。随后执行 started 事件并复核返回身份。
68
61
 
69
62
  ### 3. 阅读实现与修复上下文
70
63
 
71
- 读取最高轮次的实现产物;如存在修复产物,也读取最高轮次的修复产物。读取后,把本轮实际检视的最高轮 code artifact(及如存在的最高轮修复产物)按文件名回填到报告 `审查输入` 段;无法可靠取得时留空,不要伪造。
64
+ 读取步骤 2 返回的最新 `{code-artifact}`。读取后,把本轮实际检视的 code artifact 按文件名回填到报告 `审查输入` 段;无法可靠取得时留空,不要伪造。
72
65
 
73
66
  ### 4. 执行审查
74
67
 
@@ -76,7 +69,7 @@ tail .agents/workspace/active/{task-id}/task.md
76
69
  - 一次性记录 `R=$(git rev-parse HEAD)`;本轮报告、指纹和任务审查事实都复用该 R,禁止稍后重新读取 HEAD 代替
77
70
  - `git diff --binary "$R" -- <post-review-globs>` 覆盖已跟踪变更
78
71
  - `git ls-files -o --exclude-standard -z -- <post-review-globs>` 覆盖未跟踪新文件
79
- - `node .agents/scripts/review-diff-fingerprint.js worktree "$R" --format json` 一次生成审查差异指纹 `F` 与审查快照树 `T`,并写入报告
72
+ - 把 `mode=worktree`、基线 `R` 写入临时 JSON,调用 `agent-infra-internal git-workflow snapshot --input {file}` 一次生成审查差异指纹 `F` 与审查快照树 `T`,并写入报告
80
73
 
81
74
  > 详细审查标准、严重程度划分和 reviewer 关注点见 `reference/review-criteria.md`。执行此步骤前先读取 `reference/review-criteria.md`。
82
75
  > 测试审查硬门禁:当 `git diff` 触及测试文件时,必须先读取 `.agents/rules/testing-discipline.md` 并逐条核对(尤其"正向已覆盖时不应再加反向断言")。
@@ -89,36 +82,26 @@ tail .agents/workspace/active/{task-id}/task.md
89
82
 
90
83
  ### 6. 更新任务状态
91
84
 
92
- 获取当前时间:
93
-
94
- ```bash
95
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
96
- ```
97
-
98
- - `current_step`:code-review
99
- - `assigned_to`:{当前代理}
100
- - `updated_at`:{当前时间}
101
- - `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
102
- - 若本轮 `总体结论` / `Overall Verdict` 为 `通过` / `Approved` 且 `T == R^{tree}`,写入 `last_reviewed_commit: {R}`;若 Approved 快照包含未提交差异,则清除既有 `last_reviewed_commit`,等待 `commit` 锚定
103
- - 若本轮结论不是 Approved,保留既有 `last_reviewed_commit`,不得推进或清空
104
- - 追加:
105
- `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Code (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {artifact-filename}`
85
+ - 报告完成后,新 finding 逐条调用 `agent-infra-internal task-ledger {task-id} finding-upsert --stage code --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`;复核上一轮响应时调用 `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {相称证据}`。不得扫描编号或手写账本行
86
+ - 全部账本写入完成后只调用一次 `agent-infra-internal task-ledger {task-id} stage-status --stage code`。以 `stageStatus.canAdvance` 决定 verdict 和下一步,并以 `unresolvedFindingCounts` 填写 blocker/major/minor;仅 `canAdvance=true` 可用 Approved
87
+ - 仅当 `canAdvance=true`、本轮结论为 Approved 且 `T == R^{tree}` 时写入 `last_reviewed_commit: {R}`;Approved 快照包含未提交差异时清除旧值。否则保留既有值,不得推进或清空
88
+ - Approved 出口继续按 `reference/output-templates.md` 采集 PR 与 required-checks 事实:未提交/未推送走 `commit`,无 PR 走 `create-pr`(无 PR 流程除外),checks 未终态走 `watch-pr`,仅 `HEAD == last_reviewed_commit == PR head` 且 checks 为 `passed|no-required` 时走 `complete-task`;不得仅按审查轮次分流
89
+ - 完成 `last_reviewed_commit` 处理后执行 `agent-infra-internal task-event {task-id} review-code.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`
106
90
 
107
91
  完成日志必须始终写入 `Manual-validation: {n}` 字段,0 也保留。
108
92
  `manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
109
93
 
110
94
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
111
- - 执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测
112
- - 按 issue-sync.md 设置 `status: in-progress`
113
- - 创建或更新 `.agents/rules/issue-sync.md` 中定义的 task 评论标记(按 issue-sync.md 的 task.md 评论同步规则)
114
- - 发布 `{review-artifact}` 评论
95
+ - 调用 `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status in-progress`
96
+ - 调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
97
+ - 调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`
115
98
 
116
99
  ### 7. 完成校验
117
100
 
118
101
  运行完成校验,确认任务产物和同步状态符合规范:
119
102
 
120
103
  ```bash
121
- node .agents/scripts/validate-artifact.js gate review-code .agents/workspace/active/{task-id} {review-artifact} --format text
104
+ agent-infra-internal task-verify {task-id} review-code.completed --artifact {review-artifact} --format text
122
105
  ```
123
106
 
124
107
  处理结果:
@@ -135,16 +118,15 @@ node .agents/scripts/validate-artifact.js gate review-code .agents/workspace/act
135
118
  > **重要:分支名 ≠ 字段值**。以下 4 个标签是用户输出模板的分类(场景 A/B/C/D),**不是**产物 `**总体结论**:` 字段的取值。产物字段只取 3 个规范值之一(`通过` / `需要修改` / `拒绝`,或 EN 对应 `Approved` / `Changes Requested` / `Rejected`);写成 `通过但有问题`、`通过 / 需要修改` 等组合短语会被 verify gate 拦下。
136
119
 
137
120
  必须先判断结果,再只选择一个输出分支:
138
- - 无 blocker、major、minor -> 通过且无问题
139
- - 无 blocker,但有 major 或 minor -> 通过但有问题
140
- - 有 blocker,且可集中修复 -> 需要修改
121
+ - `stageStatus.canAdvance=true` -> 通过
122
+ - `stageStatus.canAdvance=false` 且可集中修复 -> 需要修改
141
123
  - 需要重大返工或重新实现 -> 拒绝
142
124
 
143
125
  manual-validation 的数量不参与分支选择,只作为人工校验计数显示。
144
126
 
145
127
  > 完整的 4 分支输出模板、判断规则和禁止条款见 `reference/output-templates.md`。向用户汇报审查结论前先读取 `reference/output-templates.md`。
146
128
 
147
- > 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `#NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
129
+ > 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
148
130
 
149
131
  向用户展示下一步时,必须包含所有 TUI 命令格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
150
132
 
@@ -20,6 +20,7 @@
20
20
  "required_sections": [
21
21
  "Review Summary",
22
22
  "Findings",
23
+ "Non-blocking Advisories",
23
24
  "Manual Validation Items",
24
25
  "Conclusion and Recommendations",
25
26
  "State Check",
@@ -34,13 +35,11 @@
34
35
  "^- \\*\\*Review Baseline Commit\\*\\*[::]\\s*\\S",
35
36
  "^- \\*\\*Reviewed Diff Fingerprint\\*\\*[::]\\s*sha256:[0-9a-f]{64}\\s*$",
36
37
  "^- \\*\\*Reviewed Snapshot Tree\\*\\*[::]\\s*[0-9a-f]{40,64}\\s*$"
37
- ],
38
- "freshness_minutes": 30
38
+ ]
39
39
  },
40
40
  "review-fact": {},
41
41
  "activity-log": {
42
- "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)",
43
- "freshness_minutes": 30
42
+ "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
44
43
  },
45
44
  "platform-sync": {
46
45
  "when": "issue_number_exists",
@@ -20,6 +20,7 @@
20
20
  "required_sections": [
21
21
  "审查摘要",
22
22
  "问题清单",
23
+ "非阻塞建议",
23
24
  "人工校验项",
24
25
  "结论与建议",
25
26
  "状态核对",
@@ -34,13 +35,11 @@
34
35
  "^- \\*\\*审查基线提交\\*\\*[::]\\s*\\S",
35
36
  "^- \\*\\*审查差异指纹\\*\\*[::]\\s*sha256:[0-9a-f]{64}\\s*$",
36
37
  "^- \\*\\*审查快照树\\*\\*[::]\\s*[0-9a-f]{40,64}\\s*$"
37
- ],
38
- "freshness_minutes": 30
38
+ ]
39
39
  },
40
40
  "review-fact": {},
41
41
  "activity-log": {
42
- "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)",
43
- "freshness_minutes": 30
42
+ "expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
44
43
  },
45
44
  "platform-sync": {
46
45
  "when": "issue_number_exists",
@@ -6,9 +6,9 @@ Read this file before presenting the final review result to the user.
6
6
 
7
7
  ## Choose Exactly One Output Branch
8
8
 
9
- Apply these rules in order (**note: manual-validation counts do not participate in selection**):
10
- 1. if `Blocker = 0` and `Major = 0` and `Minor = 0`, use Branch A (regardless of whether manual-validation > 0)
11
- 2. if `Blocker = 0` and (`Major > 0` or `Minor > 0`), use Branch B
9
+ Select from `stage-status` (**manual-validation and advisory counts do not participate**):
10
+ 1. if `stageStatus.canAdvance=true`, use Branch A
11
+ 2. if `stageStatus.canAdvance=false` and there are no blockers, use Branch B
12
12
  3. if `Blocker > 0` and the work can be repaired in a focused refinement pass, use Branch C
13
13
  4. if the task requires major redesign, broad reimplementation, or a restart, use Branch D
14
14
 
@@ -18,41 +18,79 @@ Prohibitions:
18
18
  - if `Blocker > 0`, never output an approval template
19
19
  - never count manual-validation findings as blockers / major issues / minor issues, and never use them to trigger Branch B/C/D
20
20
  - always include every TUI command format in the selected branch
21
- - the count line always shows 5 numbers: the first three (Blockers / Major / Minor) must be 0 to proceed; the last two are "pending human" items and need not be zero — `Manual-validation` (`{e}`) = this round's manual-validation count, `Human-decision` (`{h}`) = the number of rows in task.md `## 审查分歧账本` with `stage=code` and `status=needs-human-decision`; neither participates in branch selection. When `{h} > 0`, before the selected scenario's "Next steps" commands you must expand each pending ruling per the "Pending human-decision pre-block" in `.agents/rules/next-step-output.md` and prompt to resolve them first
21
+ - 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
+
23
+ For Branches B/C/D, follow the revision commands with re-review commands: `/review-code {task-ref}`, `/{{project}}:review-code {task-ref}`, and `$review-code {task-ref}`.
22
24
 
23
25
  ### Branch A: Approved with No Findings
24
26
 
27
+ Do not route by review round. Compare reviewed snapshot tree `T` with the tree of baseline `R`, then read `prFlow` / `pr_number`; when a PR exists, call `agent-infra-internal platform-checks inspect {task-id}`. Select exactly one mutually exclusive exit:
28
+
29
+ - `T != R^{tree}`: Branch A1 (commit).
30
+ - `T == R^{tree}` without a PR: Branch A4 for `prFlow=disabled`, otherwise Branch A2 (create PR).
31
+ - Existing PR with PR head != `R`: Branch A1 (commit/push).
32
+ - PR head = `R` with `pending|failed|cancelled` checks or temporarily unavailable platform state: Branch A3 (watch); never show completion.
33
+ - PR head = `R` with `passed|no-required` checks: Branch A4 (complete).
34
+
35
+ Common Branch A summary:
36
+
25
37
  ```text
26
38
  Task {task-id} review completed. Verdict: approved.
27
39
  - Blockers: 0 | Major: 0 | Minor: 0 | Manual-validation: {e} | Human-decision: {h}
28
40
  [- Review report: .agents/workspace/active/{task-id}/{review-artifact}]
29
41
 
30
- Next step - commit the code:
31
- - Claude Code / OpenCode: /commit
32
- - Gemini CLI: /{{project}}:commit
33
- - Codex CLI: $commit
34
-
35
42
  [When manual-validation > 0, append this final line:]
36
43
  Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
37
44
  ```
38
45
 
39
- ### Branch B: Approved with Findings
46
+ #### Branch A1: Commit or Push
40
47
 
41
48
  ```text
42
- Task {task-id} review completed. Verdict: approved.
49
+ Next step - commit or push the code:
50
+ - Claude Code / OpenCode: /commit {task-ref}
51
+ - Gemini CLI: /{{project}}:commit {task-ref}
52
+ - Codex CLI: $commit {task-ref}
53
+ ```
54
+
55
+ #### Branch A2: Create a Pull Request
56
+
57
+ ```text
58
+ Next step - create a Pull Request:
59
+ - Claude Code / OpenCode: /create-pr {task-ref}
60
+ - Gemini CLI: /{{project}}:create-pr {task-ref}
61
+ - Codex CLI: $create-pr {task-ref}
62
+ ```
63
+
64
+ #### Branch A3: Watch Required Checks
65
+
66
+ ```text
67
+ Next step - watch PR checks:
68
+ - Claude Code / OpenCode: /watch-pr {task-ref}
69
+ - Gemini CLI: /{{project}}:watch-pr {task-ref}
70
+ - Codex CLI: $watch-pr {task-ref}
71
+ ```
72
+
73
+ #### Branch A4: Complete and Archive
74
+
75
+ ```text
76
+ Next step - complete and archive the task:
77
+ - Claude Code / OpenCode: /complete-task {task-ref}
78
+ - Gemini CLI: /{{project}}:complete-task {task-ref}
79
+ - Codex CLI: $complete-task {task-ref}
80
+ ```
81
+
82
+ ### Branch B: Changes Requested (Major / Minor)
83
+
84
+ ```text
85
+ Task {task-id} review completed. Verdict: changes requested.
43
86
  - Blockers: 0 | Major: {n} | Minor: {n} | Manual-validation: {e} | Human-decision: {h}
44
87
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
45
88
 
46
- Next step - fix before commit (recommended):
89
+ Next step - fix the findings:
47
90
  - Claude Code / OpenCode: /code-task {task-ref}
48
91
  - Gemini CLI: /{{project}}:code-task {task-ref}
49
92
  - Codex CLI: $code-task {task-ref}
50
93
 
51
- Or commit directly (skip fix):
52
- - Claude Code / OpenCode: /commit
53
- - Gemini CLI: /{{project}}:commit
54
- - Codex CLI: $commit
55
-
56
94
  [When manual-validation > 0, append this final line:]
57
95
  Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
58
96
  ```
@@ -85,7 +123,7 @@ Next step - re-design the technical plan:
85
123
  - Gemini CLI: /{{project}}:plan-task {task-ref}
86
124
  - Codex CLI: $plan-task {task-ref}
87
125
 
88
- > Note: Rejected means the implementation direction needs to be reworked end-to-end, not patched locally. `code-task/scripts/detect-mode.js` branch #7 refuses a direct `/code-task` and requires a fresh plan first.
126
+ > 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.
89
127
 
90
128
  [When manual-validation > 0, append this final line:]
91
129
  Reminder: manual-validation findings must be carried in the PR description as a "manual verification required" checklist and should not trigger /code-task.
@@ -6,9 +6,9 @@
6
6
 
7
7
  ## 选择唯一输出场景
8
8
 
9
- 按以下顺序判断(**注意:manual-validation 数量不参与判断**):
10
- 1. 如果 `Blocker = 0` 且 `Major = 0` 且 `Minor = 0`,使用场景 A(不管 manual-validation 是否 > 0)
11
- 2. 如果 `Blocker = 0` 且(`Major > 0` 或 `Minor > 0`),使用场景 B
9
+ 按 `stage-status` 结果判断(**注意:manual-validation 和 advisory 数量不参与判断**):
10
+ 1. 如果 `stageStatus.canAdvance=true`,使用场景 A
11
+ 2. 如果 `stageStatus.canAdvance=false` 且无 blocker,使用场景 B
12
12
  3. 如果 `Blocker > 0`,且问题可以通过一次聚焦修复解决,使用场景 C
13
13
  4. 如果任务需要重大重构、大范围重写或整体重来,使用场景 D
14
14
 
@@ -18,41 +18,79 @@
18
18
  - 只要 `Blocker > 0`,就绝对不能输出通过模板
19
19
  - manual-validation 项绝对不能被计入 blocker / major / minor 计数,也不能用作触发场景 B/C/D 的依据
20
20
  - 所选场景中必须包含所有 TUI 命令格式
21
- - 计数行固定显示 5 个数字:前三项(阻塞 / 主要 / 次要)必须为 0 才进下一步;后两项是「待人处理」项、不要求归零——`人工校验点`(`{e}`)= 本轮 manual-validation 计数,`人工裁决`(`{h}`)= task.md `## 审查分歧账本` 中 `stage=code` 且 `status=needs-human-decision` 的行数;二者均不参与场景判断。当 `{h} > 0` 时,必须在选定场景的「下一步」命令之前,按 `.agents/rules/next-step-output.md`「人工裁决待办前置块」逐项展开裁决项并提示先完成裁决
21
+ - 计数行固定显示 5 个数字。manual-validation(`{e}`)不影响分支;`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数,属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
22
+
23
+ 场景 B/C/D 在修订命令后继续列出复审命令:`/review-code {task-ref}`、`/{{project}}:review-code {task-ref}`、`$review-code {task-ref}`。
22
24
 
23
25
  ### 场景 A:通过且无问题
24
26
 
27
+ 通过后不得按轮次路由。先比较审查快照树 `T` 与基线 `R` 的树,再读取任务的 `prFlow` / `pr_number`;存在 PR 时调用 `agent-infra-internal platform-checks inspect {task-id}`。只选择以下一个互斥出口:
28
+
29
+ - `T != R^{tree}`:场景 A1(提交)。
30
+ - `T == R^{tree}` 且无 PR:`prFlow=disabled` 用场景 A4(完成),否则用场景 A2(创建 PR)。
31
+ - 已有 PR 但 PR head != `R`:场景 A1(提交/推送)。
32
+ - PR head = `R`,checks 为 `pending|failed|cancelled` 或平台暂不可用:场景 A3(监控),不得输出完成命令。
33
+ - PR head = `R`,checks 为 `passed|no-required`:场景 A4(完成)。
34
+
35
+ 场景 A 的共同摘要:
36
+
25
37
  ```text
26
38
  任务 {task-id} 代码审查完成。结论:通过。
27
39
  - 阻塞项:0 | 主要问题:0 | 次要问题:0 | 人工校验点:{e} | 人工裁决:{h}
28
40
  [- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}]
29
41
 
30
- 下一步 - 提交代码:
31
- - Claude Code / OpenCode:/commit
32
- - Gemini CLI:/{{project}}:commit
33
- - Codex CLI:$commit
34
-
35
42
  [当 manual-validation > 0 时,在最后附加一行:]
36
43
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /code-task。
37
44
  ```
38
45
 
39
- ### 场景 B:通过但有问题
46
+ #### 场景 A1:提交或推送
40
47
 
41
48
  ```text
42
- 任务 {task-id} 代码审查完成。结论:通过。
49
+ 下一步 - 提交或推送代码:
50
+ - Claude Code / OpenCode:/commit {task-ref}
51
+ - Gemini CLI:/{{project}}:commit {task-ref}
52
+ - Codex CLI:$commit {task-ref}
53
+ ```
54
+
55
+ #### 场景 A2:创建 Pull Request
56
+
57
+ ```text
58
+ 下一步 - 创建 Pull Request:
59
+ - Claude Code / OpenCode:/create-pr {task-ref}
60
+ - Gemini CLI:/{{project}}:create-pr {task-ref}
61
+ - Codex CLI:$create-pr {task-ref}
62
+ ```
63
+
64
+ #### 场景 A3:监控 required checks
65
+
66
+ ```text
67
+ 下一步 - 监控 PR 检查:
68
+ - Claude Code / OpenCode:/watch-pr {task-ref}
69
+ - Gemini CLI:/{{project}}:watch-pr {task-ref}
70
+ - Codex CLI:$watch-pr {task-ref}
71
+ ```
72
+
73
+ #### 场景 A4:完成并归档
74
+
75
+ ```text
76
+ 下一步 - 完成并归档任务:
77
+ - Claude Code / OpenCode:/complete-task {task-ref}
78
+ - Gemini CLI:/{{project}}:complete-task {task-ref}
79
+ - Codex CLI:$complete-task {task-ref}
80
+ ```
81
+
82
+ ### 场景 B:需要修改(major / minor)
83
+
84
+ ```text
85
+ 任务 {task-id} 代码审查完成。结论:需要修改。
43
86
  - 阻塞项:0 | 主要问题:{n} | 次要问题:{n} | 人工校验点:{e} | 人工裁决:{h}
44
87
  - 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
45
88
 
46
- 下一步 - 修复问题后提交(推荐):
89
+ 下一步 - 修复问题:
47
90
  - Claude Code / OpenCode:/code-task {task-ref}
48
91
  - Gemini CLI:/{{project}}:code-task {task-ref}
49
92
  - Codex CLI:$code-task {task-ref}
50
93
 
51
- 或直接提交(跳过修复):
52
- - Claude Code / OpenCode:/commit
53
- - Gemini CLI:/{{project}}:commit
54
- - Codex CLI:$commit
55
-
56
94
  [当 manual-validation > 0 时,在最后附加一行:]
57
95
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /code-task。
58
96
  ```
@@ -85,7 +123,7 @@
85
123
  - Gemini CLI:/{{project}}:plan-task {task-ref}
86
124
  - Codex CLI:$plan-task {task-ref}
87
125
 
88
- > 注意:Rejected 表示实现方向需要整体重做,不是局部修复。`code-task/scripts/detect-mode.js` 分支 #7 会拒绝直接 `/code-task`,要求先重新方案设计。
126
+ > 注意:Rejected 表示实现方向需要整体重做,不是局部修复。核心 artifact lifecycle 的分支 #7 会拒绝直接 `/code-task`,要求先重新方案设计。
89
127
 
90
128
  [当 manual-validation > 0 时,在最后附加一行:]
91
129
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /code-task。
@@ -22,8 +22,8 @@ Use this template when writing `review-code.md` or `review-code-r{N}.md`.
22
22
  - **Review Time**: {timestamp}
23
23
  - **Scope**: {file-count and major modules}
24
24
  - **Review Baseline Commit**: {raw R captured once for this round} (diff base only; see `.agents/rules/review-handshake.md`)
25
- - **Reviewed Diff Fingerprint**: {raw node .agents/scripts/review-diff-fingerprint.js worktree "$R"}
26
- - **Reviewed Snapshot Tree**: {tree field from node .agents/scripts/review-diff-fingerprint.js worktree "$R" --format json}
25
+ - **Reviewed Diff Fingerprint**: {fingerprint field from git-workflow snapshot}
26
+ - **Reviewed Snapshot Tree**: {tree field from git-workflow snapshot}
27
27
  - **Overall Verdict**: {Approved / Changes Requested / Rejected} (pick exactly one; combined phrases will fail the verify gate)
28
28
  - **Findings (AI-actionable)**: 0 blockers, 0 majors, 0 minors / **Manual validation**: 0
29
29
 
@@ -43,12 +43,18 @@ Use this template when writing `review-code.md` or `review-code-r{N}.md`.
43
43
  **Description**: {details}
44
44
  **Suggested Fix**: {fix suggestion}
45
45
 
46
- ### Minor Issues (optional improvements)
46
+ ### Minor Issues (low impact, closure required)
47
47
 
48
48
  #### 1. {Improvement point}
49
49
  **File**: `{file-path}:{line-number}`
50
50
  **Suggestion**: {improvement suggestion}
51
51
 
52
+ ## Non-blocking Advisories
53
+
54
+ > Record only future optimizations that do not affect the current artifact's completeness, correctness, or acceptance. Advisories do not enter the disagreement ledger, finding counts, or verdict.
55
+
56
+ - {future optimization}
57
+
52
58
  ## Manual Validation Items
53
59
 
54
60
  > Items the AI agent cannot close in the current execution environment; they do not participate in the next code round. Maintainers carry them in the PR description as a "manual verification required" checklist.
@@ -64,7 +70,8 @@ Use this template when writing `review-code.md` or `review-code-r{N}.md`.
64
70
 
65
71
  ## Review Disagreement Ledger Writeback
66
72
 
67
- > Upsert each finding this round into the task.md disagreement ledger: append an `open` row for new findings (id prefix `CD-`, stage=code); per the hand-back duty set the executor's prior-round responses to `confirmed` / back to `open` / `needs-human-decision`. State machine and evidence rules: `.agents/rules/review-handshake.md`.
73
+ > Record the structured intents to submit: use `task-ledger finding-upsert` for new findings and `finding-review` for prior responses. The core allocates `CD-N` and validates transitions; do not edit task.md table rows.
74
+ > Every finding escalated to `needs-human-decision` must include a self-contained detail block per `.agents/rules/human-decision-context.md`, with evidence pointing to that stable anchor.
68
75
 
69
76
  ## Evidence
70
77