@fitlab-ai/agent-infra 0.9.1 → 0.9.3

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 (476) hide show
  1. package/README.md +24 -11
  2. package/README.zh-CN.md +24 -11
  3. package/bin/cli.ts +12 -0
  4. package/dist/bin/cli.js +14 -0
  5. package/dist/bin/internal-cli.js +30 -0
  6. package/dist/lib/agent-client.js +163 -0
  7. package/dist/lib/agent-clients/adapter.js +337 -0
  8. package/dist/lib/agent-clients/adapters/antigravity-cli.js +64 -0
  9. package/dist/lib/agent-clients/adapters/claude-code.js +71 -0
  10. package/dist/lib/agent-clients/adapters/codex-sandbox.js +210 -0
  11. package/dist/lib/agent-clients/adapters/codex.js +63 -0
  12. package/dist/lib/agent-clients/adapters/index.js +20 -0
  13. package/dist/lib/agent-clients/adapters/opencode.js +73 -0
  14. package/dist/lib/agent-clients/config.js +215 -0
  15. package/dist/lib/agent-clients/custom-tuis.js +99 -0
  16. package/dist/lib/agent-clients/invocation.js +9 -0
  17. package/dist/lib/agent-clients/next-steps.js +47 -0
  18. package/dist/lib/agent-clients/project-assets.js +45 -0
  19. package/dist/lib/agent-clients/reconcile.js +236 -0
  20. package/dist/lib/agent-clients/registry.js +78 -0
  21. package/dist/lib/agent-clients/schema.js +75 -0
  22. package/dist/lib/agent-clients/tokens.js +49 -0
  23. package/dist/lib/agent-clients/types.js +29 -0
  24. package/dist/lib/builtin-tuis.js +9 -14
  25. package/dist/lib/defaults.json +85 -73
  26. package/dist/lib/git/review-snapshot.js +25 -10
  27. package/dist/lib/git/reviewed-commit-equivalence.js +110 -0
  28. package/dist/lib/git/workflow.js +54 -1
  29. package/dist/lib/init.js +47 -91
  30. package/dist/lib/internal/agent-client.js +174 -0
  31. package/dist/lib/internal/git-workflow.js +7 -2
  32. package/dist/lib/internal/platform-checks.js +3 -3
  33. package/dist/lib/internal/platform-comment.js +29 -2
  34. package/dist/lib/internal/platform-issue.js +7 -0
  35. package/dist/lib/internal/platform-pr-review.js +132 -0
  36. package/dist/lib/internal/platform-pr.js +20 -2
  37. package/dist/lib/internal/platform-release-notes.js +52 -16
  38. package/dist/lib/internal/pr-review-grade.js +140 -0
  39. package/dist/lib/internal/release-workflow.js +82 -20
  40. package/dist/lib/internal/task-activity.js +73 -0
  41. package/dist/lib/internal/task-event.js +17 -1
  42. package/dist/lib/internal/task-lifecycle.js +7 -0
  43. package/dist/lib/internal/task-orchestration.js +196 -0
  44. package/dist/lib/internal/task-review.js +70 -0
  45. package/dist/lib/merge.js +2 -1
  46. package/dist/lib/platform/adapters.js +45 -1
  47. package/dist/lib/platform/change-request-git-evidence.js +113 -0
  48. package/dist/lib/platform/completion-backfill.js +122 -0
  49. package/dist/lib/platform/issue-comments.js +3 -2
  50. package/dist/lib/platform/merged-pr-equivalence.js +156 -16
  51. package/dist/lib/platform/pr-checks.js +101 -50
  52. package/dist/lib/platform/pr-review.js +166 -0
  53. package/dist/lib/platform/pull-requests.js +432 -7
  54. package/dist/lib/platform/release-notes.js +85 -3
  55. package/dist/lib/platform/releases.js +1 -1
  56. package/dist/lib/platform/verification-required.js +8 -10
  57. package/dist/lib/pr-review/evidence-grading.js +229 -0
  58. package/dist/lib/prompt.js +15 -3
  59. package/dist/lib/release/channels.js +4 -1
  60. package/dist/lib/release/workflow.js +4 -2
  61. package/dist/lib/remove-dir.js +25 -0
  62. package/dist/lib/run/tui.js +11 -7
  63. package/dist/lib/sandbox/agent-client-reconciler.js +234 -0
  64. package/dist/lib/sandbox/clipboard/linux.js +2 -1
  65. package/dist/lib/sandbox/commands/create.js +76 -200
  66. package/dist/lib/sandbox/commands/enter.js +17 -1
  67. package/dist/lib/sandbox/commands/prune.js +2 -2
  68. package/dist/lib/sandbox/commands/rm.js +3 -2
  69. package/dist/lib/sandbox/commands/show.js +1 -1
  70. package/dist/lib/sandbox/config.js +21 -4
  71. package/dist/lib/sandbox/constants.js +3 -0
  72. package/dist/lib/sandbox/dockerfile.js +2 -1
  73. package/dist/lib/sandbox/managed-fs.js +10 -5
  74. package/dist/lib/sandbox/recovery.js +52 -36
  75. package/dist/lib/sandbox/shell.js +1 -1
  76. package/dist/lib/sandbox/tool-types.js +8 -0
  77. package/dist/lib/sandbox/tools.js +2 -126
  78. package/dist/lib/task/activity-intent.js +101 -0
  79. package/dist/lib/task/artifact-lifecycle.js +3 -50
  80. package/dist/lib/task/commands/decisions.js +50 -20
  81. package/dist/lib/task/commands/log.js +15 -14
  82. package/dist/lib/task/delegation-receipts.js +128 -0
  83. package/dist/lib/task/events.js +146 -8
  84. package/dist/lib/task/finalization-artifacts.js +35 -0
  85. package/dist/lib/task/lifecycle-execution.js +46 -0
  86. package/dist/lib/task/orchestration.js +784 -0
  87. package/dist/lib/task/review-artifacts.js +143 -59
  88. package/dist/lib/task/review-finalization.js +186 -0
  89. package/dist/lib/task/review-fingerprint.js +4 -0
  90. package/dist/lib/task/task-execution-lock.js +231 -0
  91. package/dist/lib/task/verification-checks.js +2 -1
  92. package/dist/lib/task/verification-engine.js +372 -28
  93. package/dist/lib/task/verification-review.js +1 -1
  94. package/dist/lib/task/verification.js +5 -2
  95. package/dist/lib/task/workspace-snapshot.js +46 -0
  96. package/dist/lib/update.js +42 -161
  97. package/lib/agent-client.ts +214 -0
  98. package/lib/agent-clients/adapter.ts +534 -0
  99. package/lib/agent-clients/adapters/antigravity-cli.ts +65 -0
  100. package/lib/agent-clients/adapters/claude-code.ts +79 -0
  101. package/lib/agent-clients/adapters/codex-sandbox.ts +245 -0
  102. package/lib/agent-clients/adapters/codex.ts +67 -0
  103. package/lib/agent-clients/adapters/index.ts +27 -0
  104. package/lib/agent-clients/adapters/opencode.ts +75 -0
  105. package/lib/agent-clients/config.ts +323 -0
  106. package/lib/agent-clients/custom-tuis.ts +149 -0
  107. package/lib/agent-clients/invocation.ts +19 -0
  108. package/lib/agent-clients/next-steps.ts +85 -0
  109. package/lib/agent-clients/project-assets.ts +96 -0
  110. package/lib/agent-clients/reconcile.ts +325 -0
  111. package/lib/agent-clients/registry.ts +154 -0
  112. package/lib/agent-clients/schema.ts +80 -0
  113. package/lib/agent-clients/tokens.ts +53 -0
  114. package/lib/agent-clients/types.ts +92 -0
  115. package/lib/benchmark/schemas/v1.0.0/case-manifest.schema.json +120 -0
  116. package/lib/benchmark/schemas/v1.0.0/common.schema.json +109 -0
  117. package/lib/benchmark/schemas/v1.0.0/grader-result.schema.json +160 -0
  118. package/lib/benchmark/schemas/v1.0.0/run-manifest.schema.json +122 -0
  119. package/lib/benchmark/schemas/v1.0.0/subject.schema.json +227 -0
  120. package/lib/builtin-tuis.ts +16 -15
  121. package/lib/defaults.json +24 -12
  122. package/lib/git/review-snapshot.ts +39 -9
  123. package/lib/git/reviewed-commit-equivalence.ts +135 -0
  124. package/lib/git/workflow.ts +66 -2
  125. package/lib/init.ts +53 -121
  126. package/lib/internal/agent-client.ts +186 -0
  127. package/lib/internal/git-workflow.ts +6 -2
  128. package/lib/internal/platform-checks.ts +4 -4
  129. package/lib/internal/platform-comment.ts +17 -2
  130. package/lib/internal/platform-issue.ts +4 -0
  131. package/lib/internal/platform-pr-review.ts +104 -0
  132. package/lib/internal/platform-pr.ts +14 -1
  133. package/lib/internal/platform-release-notes.ts +59 -16
  134. package/lib/internal/pr-review-grade.ts +130 -0
  135. package/lib/internal/release-workflow.ts +79 -20
  136. package/lib/internal/task-activity.ts +55 -0
  137. package/lib/internal/task-event.ts +9 -1
  138. package/lib/internal/task-lifecycle.ts +4 -0
  139. package/lib/internal/task-orchestration.ts +171 -0
  140. package/lib/internal/task-review.ts +70 -0
  141. package/lib/merge.ts +2 -1
  142. package/lib/platform/adapters.ts +169 -3
  143. package/lib/platform/change-request-git-evidence.ts +159 -0
  144. package/lib/platform/completion-backfill.ts +134 -0
  145. package/lib/platform/issue-comments.ts +3 -2
  146. package/lib/platform/merged-pr-equivalence.ts +178 -19
  147. package/lib/platform/pr-checks.ts +121 -66
  148. package/lib/platform/pr-review.ts +201 -0
  149. package/lib/platform/pull-requests.ts +529 -27
  150. package/lib/platform/release-notes.ts +100 -4
  151. package/lib/platform/releases.ts +1 -1
  152. package/lib/platform/verification-required.ts +12 -10
  153. package/lib/pr-review/evidence-grading.ts +318 -0
  154. package/lib/prompt.ts +16 -3
  155. package/lib/release/channels.ts +4 -1
  156. package/lib/release/workflow.ts +4 -3
  157. package/lib/remove-dir.ts +28 -0
  158. package/lib/run/tui.ts +12 -5
  159. package/lib/sandbox/agent-client-reconciler.ts +378 -0
  160. package/lib/sandbox/clipboard/linux.ts +2 -1
  161. package/lib/sandbox/commands/create.ts +111 -212
  162. package/lib/sandbox/commands/enter.ts +23 -1
  163. package/lib/sandbox/commands/prune.ts +2 -2
  164. package/lib/sandbox/commands/rm.ts +3 -2
  165. package/lib/sandbox/commands/show.ts +1 -1
  166. package/lib/sandbox/config.ts +31 -4
  167. package/lib/sandbox/constants.ts +6 -0
  168. package/lib/sandbox/dockerfile.ts +2 -1
  169. package/lib/sandbox/managed-fs.ts +18 -5
  170. package/lib/sandbox/recovery.ts +98 -67
  171. package/lib/sandbox/shell.ts +1 -1
  172. package/lib/sandbox/tool-types.ts +143 -0
  173. package/lib/sandbox/tools.ts +5 -157
  174. package/lib/server/server.schema.json +2 -2
  175. package/lib/task/activity-intent.ts +128 -0
  176. package/lib/task/artifact-lifecycle.ts +3 -39
  177. package/lib/task/commands/decisions.ts +53 -20
  178. package/lib/task/commands/log.ts +15 -14
  179. package/lib/task/delegation-receipts.ts +199 -0
  180. package/lib/task/events.ts +164 -11
  181. package/lib/task/finalization-artifacts.ts +58 -0
  182. package/lib/task/lifecycle-execution.ts +106 -0
  183. package/lib/task/orchestration.ts +1022 -0
  184. package/lib/task/review-artifacts.ts +201 -69
  185. package/lib/task/review-finalization.ts +306 -0
  186. package/lib/task/review-fingerprint.ts +5 -0
  187. package/lib/task/task-execution-lock.ts +296 -0
  188. package/lib/task/verification-checks.ts +2 -1
  189. package/lib/task/verification-engine.ts +424 -28
  190. package/lib/task/verification-review.ts +1 -0
  191. package/lib/task/verification.ts +8 -3
  192. package/lib/task/workspace-snapshot.ts +57 -0
  193. package/lib/update.ts +48 -184
  194. package/package.json +4 -4
  195. package/templates/.agents/QUICKSTART.en.md +25 -8
  196. package/templates/.agents/QUICKSTART.zh-CN.md +25 -8
  197. package/templates/.agents/README.en.md +29 -25
  198. package/templates/.agents/README.zh-CN.md +29 -25
  199. package/templates/.agents/hooks/lifecycle-delegation.js +75 -0
  200. package/templates/.agents/rules/README.en.md +2 -0
  201. package/templates/.agents/rules/README.zh-CN.md +2 -0
  202. package/templates/.agents/rules/commit-and-pr.en.md +1 -0
  203. package/templates/.agents/rules/commit-and-pr.zh-CN.md +1 -0
  204. package/templates/.agents/rules/create-issue.github.en.md +4 -2
  205. package/templates/.agents/rules/create-issue.github.zh-CN.md +4 -2
  206. package/templates/.agents/rules/human-decision-context.en.md +14 -12
  207. package/templates/.agents/rules/human-decision-context.zh-CN.md +14 -12
  208. package/templates/.agents/rules/issue-fields.github.en.md +3 -1
  209. package/templates/.agents/rules/issue-fields.github.zh-CN.md +3 -1
  210. package/templates/.agents/rules/issue-pr-commands.en.md +5 -3
  211. package/templates/.agents/rules/issue-pr-commands.github.en.md +5 -3
  212. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +5 -3
  213. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +5 -3
  214. package/templates/.agents/rules/issue-sync.github.en.md +7 -3
  215. package/templates/.agents/rules/issue-sync.github.zh-CN.md +8 -4
  216. package/templates/.agents/rules/lifecycle-orchestration.en.md +24 -0
  217. package/templates/.agents/rules/lifecycle-orchestration.zh-CN.md +24 -0
  218. package/templates/.agents/rules/milestone-inference.github.en.md +4 -2
  219. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +4 -2
  220. package/templates/.agents/rules/next-step-output.en.md +18 -0
  221. package/templates/.agents/rules/next-step-output.zh-CN.md +18 -0
  222. package/templates/.agents/rules/no-mid-flow-questions.en.md +19 -0
  223. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +19 -0
  224. package/templates/.agents/rules/pr-checks-commands.en.md +3 -3
  225. package/templates/.agents/rules/pr-checks-commands.github.en.md +2 -2
  226. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +2 -2
  227. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +3 -3
  228. package/templates/.agents/rules/pr-sync.en.md +3 -1
  229. package/templates/.agents/rules/pr-sync.github.en.md +11 -1
  230. package/templates/.agents/rules/pr-sync.github.zh-CN.md +11 -1
  231. package/templates/.agents/rules/pr-sync.zh-CN.md +3 -1
  232. package/templates/.agents/rules/release-commands.en.md +1 -1
  233. package/templates/.agents/rules/release-commands.github.en.md +21 -5
  234. package/templates/.agents/rules/release-commands.github.zh-CN.md +21 -5
  235. package/templates/.agents/rules/release-commands.zh-CN.md +1 -1
  236. package/templates/.agents/rules/review-handshake.en.md +4 -4
  237. package/templates/.agents/rules/review-handshake.zh-CN.md +4 -4
  238. package/templates/.agents/rules/review-method.en.md +113 -0
  239. package/templates/.agents/rules/review-method.zh-CN.md +98 -0
  240. package/templates/.agents/rules/task-management.en.md +11 -0
  241. package/templates/.agents/rules/task-management.zh-CN.md +11 -0
  242. package/templates/.agents/skills/analyze-task/SKILL.en.md +15 -12
  243. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +15 -12
  244. package/templates/.agents/skills/block-task/SKILL.en.md +11 -9
  245. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +11 -9
  246. package/templates/.agents/skills/cancel-task/SKILL.en.md +10 -8
  247. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +11 -9
  248. package/templates/.agents/skills/check-task/SKILL.en.md +16 -16
  249. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -16
  250. package/templates/.agents/skills/close-codescan/SKILL.en.md +7 -5
  251. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +7 -5
  252. package/templates/.agents/skills/close-dependabot/SKILL.en.md +7 -5
  253. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +7 -5
  254. package/templates/.agents/skills/code-task/SKILL.en.md +10 -7
  255. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +13 -10
  256. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +14 -16
  257. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +14 -16
  258. package/templates/.agents/skills/code-task/reference/output-template.en.md +3 -3
  259. package/templates/.agents/skills/code-task/reference/output-template.zh-CN.md +3 -3
  260. package/templates/.agents/skills/commit/SKILL.en.md +13 -1
  261. package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -1
  262. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -1
  263. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -1
  264. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +1 -1
  265. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +1 -1
  266. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +1 -1
  267. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +1 -1
  268. package/templates/.agents/skills/commit/reference/task-status-update.en.md +24 -28
  269. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +24 -28
  270. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +6 -4
  271. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +6 -4
  272. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +1 -1
  273. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +1 -1
  274. package/templates/.agents/skills/complete-task/SKILL.en.md +23 -8
  275. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +23 -8
  276. package/templates/.agents/skills/complete-task/config/verify.en.json +1 -0
  277. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +1 -0
  278. package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +17 -0
  279. package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +17 -0
  280. package/templates/.agents/skills/create-pr/SKILL.en.md +13 -11
  281. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +13 -11
  282. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +1 -1
  283. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +1 -1
  284. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +3 -3
  285. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +3 -3
  286. package/templates/.agents/skills/create-release-note/SKILL.en.md +17 -16
  287. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +17 -16
  288. package/templates/.agents/skills/create-task/SKILL.en.md +16 -14
  289. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +16 -14
  290. package/templates/.agents/skills/import-codescan/SKILL.en.md +5 -5
  291. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +5 -5
  292. package/templates/.agents/skills/import-dependabot/SKILL.en.md +5 -5
  293. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +5 -5
  294. package/templates/.agents/skills/import-issue/SKILL.en.md +10 -8
  295. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -8
  296. package/templates/.agents/skills/init-labels/SKILL.en.md +4 -4
  297. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +4 -4
  298. package/templates/.agents/skills/init-milestones/SKILL.en.md +4 -4
  299. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +4 -4
  300. package/templates/.agents/skills/plan-task/SKILL.en.md +13 -10
  301. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +13 -10
  302. package/templates/.agents/skills/post-release/SKILL.en.md +2 -0
  303. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +2 -0
  304. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  305. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  306. package/templates/.agents/skills/release/SKILL.en.md +16 -10
  307. package/templates/.agents/skills/release/SKILL.zh-CN.md +16 -10
  308. package/templates/.agents/skills/restore-task/SKILL.en.md +4 -1
  309. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +4 -1
  310. package/templates/.agents/skills/review-analysis/SKILL.en.md +18 -4
  311. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +19 -5
  312. package/templates/.agents/skills/review-analysis/config/verify.en.json +6 -0
  313. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +6 -0
  314. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +13 -15
  315. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +13 -15
  316. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +51 -5
  317. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +52 -6
  318. package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +25 -22
  319. package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +25 -22
  320. package/templates/.agents/skills/review-code/SKILL.en.md +35 -12
  321. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +35 -12
  322. package/templates/.agents/skills/review-code/config/verify.en.json +7 -0
  323. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +7 -0
  324. package/templates/.agents/skills/review-code/reference/concurrency-risks.en.md +25 -0
  325. package/templates/.agents/skills/review-code/reference/concurrency-risks.zh-CN.md +25 -0
  326. package/templates/.agents/skills/review-code/reference/cross-platform-risks.en.md +27 -0
  327. package/templates/.agents/skills/review-code/reference/cross-platform-risks.zh-CN.md +27 -0
  328. package/templates/.agents/skills/review-code/reference/documentation-antipatterns.en.md +13 -0
  329. package/templates/.agents/skills/review-code/reference/documentation-antipatterns.zh-CN.md +13 -0
  330. package/templates/.agents/skills/review-code/reference/migration-risks.en.md +25 -0
  331. package/templates/.agents/skills/review-code/reference/migration-risks.zh-CN.md +25 -0
  332. package/templates/.agents/skills/review-code/reference/output-templates.en.md +22 -24
  333. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +22 -24
  334. package/templates/.agents/skills/review-code/reference/report-template.en.md +54 -7
  335. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +54 -7
  336. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +29 -24
  337. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +29 -24
  338. package/templates/.agents/skills/review-code/reference/security-risks.en.md +25 -0
  339. package/templates/.agents/skills/review-code/reference/security-risks.zh-CN.md +25 -0
  340. package/templates/.agents/skills/review-plan/SKILL.en.md +18 -4
  341. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +19 -5
  342. package/templates/.agents/skills/review-plan/config/verify.en.json +6 -0
  343. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +6 -0
  344. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +13 -15
  345. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +13 -15
  346. package/templates/.agents/skills/review-plan/reference/report-template.en.md +61 -5
  347. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +61 -5
  348. package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +21 -24
  349. package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +21 -24
  350. package/templates/.agents/skills/review-pr/SKILL.en.md +158 -0
  351. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +158 -0
  352. package/templates/.agents/skills/review-pr/config/verify.en.json +37 -0
  353. package/templates/.agents/skills/review-pr/config/verify.zh-CN.json +37 -0
  354. package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +65 -0
  355. package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +65 -0
  356. package/templates/.agents/skills/review-pr/reference/output-guidance.en.md +18 -0
  357. package/templates/.agents/skills/review-pr/reference/output-guidance.zh-CN.md +18 -0
  358. package/templates/.agents/skills/review-pr/reference/report-template.en.md +85 -0
  359. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +85 -0
  360. package/templates/.agents/skills/run-task/SKILL.en.md +22 -0
  361. package/templates/.agents/skills/run-task/SKILL.zh-CN.md +22 -0
  362. package/templates/.agents/skills/run-task/config/verify.en.json +10 -0
  363. package/templates/.agents/skills/run-task/config/verify.zh-CN.json +10 -0
  364. package/templates/.agents/skills/run-task/reference/host-validation.en.md +20 -0
  365. package/templates/.agents/skills/run-task/reference/host-validation.zh-CN.md +20 -0
  366. package/templates/.agents/skills/test/SKILL.en.md +4 -4
  367. package/templates/.agents/skills/test/SKILL.zh-CN.md +4 -4
  368. package/templates/.agents/skills/test-integration/SKILL.en.md +4 -4
  369. package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +4 -4
  370. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +5 -5
  371. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +5 -5
  372. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +664 -246
  373. package/templates/.agents/skills/upgrade-dependency/SKILL.en.md +4 -4
  374. package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +4 -4
  375. package/templates/.agents/skills/watch-pr/SKILL.en.md +21 -21
  376. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +21 -21
  377. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +27 -6
  378. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +26 -5
  379. package/templates/.agents/templates/task.en.md +1 -1
  380. package/templates/.agents/templates/task.zh-CN.md +1 -1
  381. package/templates/.agents/workflows/bug-fix.en.yaml +3 -3
  382. package/templates/.agents/workflows/bug-fix.zh-CN.yaml +3 -3
  383. package/templates/.agents/workflows/code-review.en.yaml +1 -1
  384. package/templates/.agents/workflows/code-review.zh-CN.yaml +1 -1
  385. package/templates/.agents/workflows/feature-development.en.yaml +4 -4
  386. package/templates/.agents/workflows/feature-development.zh-CN.yaml +4 -4
  387. package/templates/.agents/workflows/refactoring.en.yaml +3 -3
  388. package/templates/.agents/workflows/refactoring.zh-CN.yaml +3 -3
  389. package/templates/.claude/agents/agent-infra-lifecycle-executor.en.md +6 -0
  390. package/templates/.claude/agents/agent-infra-lifecycle-executor.zh-CN.md +6 -0
  391. package/templates/.claude/agents/agent-infra-lifecycle-reviewer.en.md +6 -0
  392. package/templates/.claude/agents/agent-infra-lifecycle-reviewer.zh-CN.md +6 -0
  393. package/templates/.claude/commands/post-release.en.md +1 -0
  394. package/templates/.claude/commands/post-release.zh-CN.md +1 -0
  395. package/templates/.claude/commands/review-pr.en.md +8 -0
  396. package/templates/.claude/commands/review-pr.zh-CN.md +8 -0
  397. package/templates/.claude/commands/run-task.en.md +8 -0
  398. package/templates/.claude/commands/run-task.zh-CN.md +8 -0
  399. package/templates/.claude/settings.json +24 -0
  400. package/templates/.codex/agents/agent-infra-lifecycle-executor.en.toml +3 -0
  401. package/templates/.codex/agents/agent-infra-lifecycle-executor.zh-CN.toml +3 -0
  402. package/templates/.codex/agents/agent-infra-lifecycle-reviewer.en.toml +3 -0
  403. package/templates/.codex/agents/agent-infra-lifecycle-reviewer.zh-CN.toml +3 -0
  404. package/templates/.gemini/commands/_project_/review-pr.en.toml +10 -0
  405. package/templates/.gemini/commands/_project_/review-pr.zh-CN.toml +10 -0
  406. package/templates/.opencode/commands/post-release.en.md +2 -0
  407. package/templates/.opencode/commands/post-release.zh-CN.md +2 -0
  408. package/templates/.opencode/commands/review-pr.en.md +11 -0
  409. package/templates/.opencode/commands/review-pr.zh-CN.md +11 -0
  410. package/templates/.opencode/commands/run-task.en.md +11 -0
  411. package/templates/.opencode/commands/run-task.zh-CN.md +11 -0
  412. package/templates/.gemini/commands/_project_/analyze-task.en.toml +0 -10
  413. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +0 -10
  414. package/templates/.gemini/commands/_project_/archive-tasks.en.toml +0 -10
  415. package/templates/.gemini/commands/_project_/archive-tasks.zh-CN.toml +0 -10
  416. package/templates/.gemini/commands/_project_/block-task.en.toml +0 -10
  417. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +0 -10
  418. package/templates/.gemini/commands/_project_/cancel-task.en.toml +0 -10
  419. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +0 -10
  420. package/templates/.gemini/commands/_project_/check-task.en.toml +0 -10
  421. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +0 -10
  422. package/templates/.gemini/commands/_project_/close-codescan.en.toml +0 -8
  423. package/templates/.gemini/commands/_project_/close-codescan.zh-CN.toml +0 -8
  424. package/templates/.gemini/commands/_project_/close-dependabot.en.toml +0 -8
  425. package/templates/.gemini/commands/_project_/close-dependabot.zh-CN.toml +0 -8
  426. package/templates/.gemini/commands/_project_/code-task.en.toml +0 -10
  427. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +0 -10
  428. package/templates/.gemini/commands/_project_/commit.en.toml +0 -10
  429. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +0 -10
  430. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +0 -10
  431. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +0 -10
  432. package/templates/.gemini/commands/_project_/complete-task.en.toml +0 -10
  433. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +0 -10
  434. package/templates/.gemini/commands/_project_/create-pr.en.toml +0 -10
  435. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +0 -10
  436. package/templates/.gemini/commands/_project_/create-release-note.en.toml +0 -8
  437. package/templates/.gemini/commands/_project_/create-release-note.zh-CN.toml +0 -8
  438. package/templates/.gemini/commands/_project_/create-task.en.toml +0 -8
  439. package/templates/.gemini/commands/_project_/create-task.zh-CN.toml +0 -8
  440. package/templates/.gemini/commands/_project_/import-codescan.en.toml +0 -8
  441. package/templates/.gemini/commands/_project_/import-codescan.zh-CN.toml +0 -8
  442. package/templates/.gemini/commands/_project_/import-dependabot.en.toml +0 -8
  443. package/templates/.gemini/commands/_project_/import-dependabot.zh-CN.toml +0 -8
  444. package/templates/.gemini/commands/_project_/import-issue.en.toml +0 -8
  445. package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +0 -8
  446. package/templates/.gemini/commands/_project_/init-labels.en.toml +0 -8
  447. package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +0 -8
  448. package/templates/.gemini/commands/_project_/init-milestones.en.toml +0 -10
  449. package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +0 -10
  450. package/templates/.gemini/commands/_project_/plan-task.en.toml +0 -10
  451. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +0 -10
  452. package/templates/.gemini/commands/_project_/post-release.en.toml +0 -6
  453. package/templates/.gemini/commands/_project_/post-release.zh-CN.toml +0 -6
  454. package/templates/.gemini/commands/_project_/refine-title.en.toml +0 -8
  455. package/templates/.gemini/commands/_project_/refine-title.zh-CN.toml +0 -8
  456. package/templates/.gemini/commands/_project_/release.en.toml +0 -8
  457. package/templates/.gemini/commands/_project_/release.zh-CN.toml +0 -8
  458. package/templates/.gemini/commands/_project_/restore-task.en.toml +0 -8
  459. package/templates/.gemini/commands/_project_/restore-task.zh-CN.toml +0 -8
  460. package/templates/.gemini/commands/_project_/review-analysis.en.toml +0 -10
  461. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +0 -10
  462. package/templates/.gemini/commands/_project_/review-code.en.toml +0 -10
  463. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +0 -10
  464. package/templates/.gemini/commands/_project_/review-plan.en.toml +0 -10
  465. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +0 -10
  466. package/templates/.gemini/commands/_project_/test-integration.en.toml +0 -6
  467. package/templates/.gemini/commands/_project_/test-integration.zh-CN.toml +0 -6
  468. package/templates/.gemini/commands/_project_/test.en.toml +0 -6
  469. package/templates/.gemini/commands/_project_/test.zh-CN.toml +0 -6
  470. package/templates/.gemini/commands/_project_/update-agent-infra.en.toml +0 -6
  471. package/templates/.gemini/commands/_project_/update-agent-infra.zh-CN.toml +0 -6
  472. package/templates/.gemini/commands/_project_/upgrade-dependency.en.toml +0 -8
  473. package/templates/.gemini/commands/_project_/upgrade-dependency.zh-CN.toml +0 -8
  474. package/templates/.gemini/commands/_project_/watch-pr.en.toml +0 -10
  475. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +0 -10
  476. package/templates/.gemini/settings.json +0 -3
@@ -15,22 +15,20 @@ Rules:
15
15
  - Do not mix text from multiple scenarios
16
16
  - If `Blocker > 0`, never use an approved template
17
17
  - Never count manual-validation items as blocker / major / minor or use them to trigger Scenario B/C/D
18
- - The selected scenario must include all TUI command formats
18
+ - The selected scenario must generate `{next-step-commands}` through the shared helper
19
19
  - The count line shows 4 numbers. `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.
20
20
 
21
- For Scenarios B/C/D, follow the revision commands with re-review commands: `/review-plan {task-ref}`, `/{{project}}:review-plan {task-ref}`, and `$review-plan {task-ref}`.
22
-
23
21
  ### Scenario A: Approved with no findings
24
22
 
23
+ Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}`.
24
+
25
25
  ```text
26
26
  Task {task-id} technical plan review completed. Verdict: approved.
27
27
  - Blockers: 0 | Major issues: 0 | Minor issues: 0 | Human-decision: {h}
28
28
  [- Review report: .agents/workspace/active/{task-id}/{review-artifact}]
29
29
 
30
30
  Next step - write code:
31
- - Claude Code / OpenCode: /code-task {task-ref}
32
- - Gemini CLI: /{{project}}:code-task {task-ref}
33
- - Codex CLI: $code-task {task-ref}
31
+ {next-step-commands}
34
32
 
35
33
  [When manual-validation > 0, append:]
36
34
  Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
@@ -38,15 +36,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
38
36
 
39
37
  ### Scenario B: Changes requested (major / minor)
40
38
 
39
+ Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
40
+
41
41
  ```text
42
42
  Task {task-id} technical plan review completed. Verdict: changes requested.
43
43
  - Blockers: 0 | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
44
44
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
45
45
 
46
46
  Next step - revise technical plan:
47
- - Claude Code / OpenCode: /plan-task {task-ref}
48
- - Gemini CLI: /{{project}}:plan-task {task-ref}
49
- - Codex CLI: $plan-task {task-ref}
47
+ {next-step-commands}
50
48
 
51
49
  [When manual-validation > 0, append:]
52
50
  Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
@@ -54,15 +52,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
54
52
 
55
53
  ### Scenario C: Changes requested
56
54
 
55
+ Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
56
+
57
57
  ```text
58
58
  Task {task-id} technical plan review completed. Verdict: changes requested.
59
59
  - Blockers: {n} | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
60
60
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
61
61
 
62
62
  Next step - revise technical plan:
63
- - Claude Code / OpenCode: /plan-task {task-ref}
64
- - Gemini CLI: /{{project}}:plan-task {task-ref}
65
- - Codex CLI: $plan-task {task-ref}
63
+ {next-step-commands}
66
64
 
67
65
  [When manual-validation > 0, append:]
68
66
  Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
@@ -70,15 +68,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
70
68
 
71
69
  ### Scenario D: Rejected
72
70
 
71
+ Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
72
+
73
73
  ```text
74
74
  Task {task-id} technical plan review completed. Verdict: rejected, redesign required.
75
75
  - Blockers: {n} | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
76
76
  - Review report: .agents/workspace/active/{task-id}/{review-artifact}
77
77
 
78
78
  Next step - redesign:
79
- - Claude Code / OpenCode: /plan-task {task-ref}
80
- - Gemini CLI: /{{project}}:plan-task {task-ref}
81
- - Codex CLI: $plan-task {task-ref}
79
+ {next-step-commands}
82
80
 
83
81
  [When manual-validation > 0, append:]
84
82
  Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
@@ -15,22 +15,20 @@
15
15
  - 不要混用不同场景的文案
16
16
  - 只要 `Blocker > 0`,就绝对不能输出通过模板
17
17
  - manual-validation 项绝对不能被计入 blocker / major / minor 计数,也不能用作触发场景 B/C/D 的依据
18
- - 所选场景中必须包含所有 TUI 命令格式
18
+ - 所选场景必须通过统一 helper 生成 `{next-step-commands}`
19
19
  - 计数行固定显示 4 个数字。`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数;它属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
20
20
 
21
- 场景 B/C/D 在修订命令后继续列出复审命令:`/review-plan {task-ref}`、`/{{project}}:review-plan {task-ref}`、`$review-plan {task-ref}`。
22
-
23
21
  ### 场景 A:通过且无问题
24
22
 
23
+ 使用 `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
24
+
25
25
  ```text
26
26
  任务 {task-id} 技术方案审查完成。结论:通过。
27
27
  - 阻塞项:0 | 主要问题:0 | 次要问题:0 | 人工裁决:{h}
28
28
  [- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}]
29
29
 
30
30
  下一步 - 编写代码:
31
- - Claude Code / OpenCode:/code-task {task-ref}
32
- - Gemini CLI:/{{project}}:code-task {task-ref}
33
- - Codex CLI:$code-task {task-ref}
31
+ {next-step-commands}
34
32
 
35
33
  [当 manual-validation > 0 时,在最后附加一行:]
36
34
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
@@ -38,15 +36,15 @@
38
36
 
39
37
  ### 场景 B:需要修改(major / minor)
40
38
 
39
+ 使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
40
+
41
41
  ```text
42
42
  任务 {task-id} 技术方案审查完成。结论:需要修改。
43
43
  - 阻塞项:0 | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
44
44
  - 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
45
45
 
46
46
  下一步 - 修订技术方案:
47
- - Claude Code / OpenCode:/plan-task {task-ref}
48
- - Gemini CLI:/{{project}}:plan-task {task-ref}
49
- - Codex CLI:$plan-task {task-ref}
47
+ {next-step-commands}
50
48
 
51
49
  [当 manual-validation > 0 时,在最后附加一行:]
52
50
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
@@ -54,15 +52,15 @@
54
52
 
55
53
  ### 场景 C:需要修改
56
54
 
55
+ 使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
56
+
57
57
  ```text
58
58
  任务 {task-id} 技术方案审查完成。结论:需要修改。
59
59
  - 阻塞项:{n} | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
60
60
  - 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
61
61
 
62
62
  下一步 - 修订技术方案:
63
- - Claude Code / OpenCode:/plan-task {task-ref}
64
- - Gemini CLI:/{{project}}:plan-task {task-ref}
65
- - Codex CLI:$plan-task {task-ref}
63
+ {next-step-commands}
66
64
 
67
65
  [当 manual-validation > 0 时,在最后附加一行:]
68
66
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
@@ -70,15 +68,15 @@
70
68
 
71
69
  ### 场景 D:拒绝
72
70
 
71
+ 使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
72
+
73
73
  ```text
74
74
  任务 {task-id} 技术方案审查完成。结论:拒绝,需要重新设计。
75
75
  - 阻塞项:{n} | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
76
76
  - 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
77
77
 
78
78
  下一步 - 重新设计:
79
- - Claude Code / OpenCode:/plan-task {task-ref}
80
- - Gemini CLI:/{{project}}:plan-task {task-ref}
81
- - Codex CLI:$plan-task {task-ref}
79
+ {next-step-commands}
82
80
 
83
81
  [当 manual-validation > 0 时,在最后附加一行:]
84
82
  提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
@@ -22,7 +22,55 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
22
22
  - **Review Time**: {timestamp}
23
23
  - **Scope**: {file-count and major modules}
24
24
  - **Overall Verdict**: {Approved / Changes Requested / Rejected}
25
- - **Findings (AI-actionable)**: 0 blockers, 0 majors, 0 minors / **Manual validation**: 0
25
+ - **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
26
+
27
+ ## Review Coverage Declaration
28
+
29
+ | pass_id | scope | evidence | result | gaps_or_assumptions |
30
+ |---------|-------|----------|--------|---------------------|
31
+ | pass-1..5 | {scope actually reviewed} | {artifact / file:line / command} | {finding or conclusion} | {gap or assumption} |
32
+
33
+ | lens_id | trigger_evidence | loaded | result |
34
+ |---------|------------------|--------|--------|
35
+ | {registry token} | {trigger or non-trigger evidence} | {yes / no / not-applicable} | {lens result} |
36
+
37
+ ## Technical Plan Architecture Coverage
38
+
39
+ | assessment_id | classification | trigger_evidence | review_depth | result_or_gap |
40
+ |---------------|----------------|------------------|--------------|---------------|
41
+ | architecture-significance | {ordinary / architecture-significant} | {artifact / file:line / source_id} | {proportional / mini-atam} | {covered / gap} |
42
+
43
+ > Scenario A (`ordinary`): keep the table above, record `Mini-ATAM: not-applicable` with a reviewable reason, and delete the Scenario B tables.
44
+ >
45
+ > Scenario B (`architecture-significant`): keep the table above and the five tables below, and delete the Scenario A guidance.
46
+
47
+ | quality_scenario_id | source_id | business_driver | quality_attribute | priority | stimulus | context | expected_response | measure | result_or_gap |
48
+ |---------------------|-----------|-----------------|-------------------|----------|----------|---------|-------------------|---------|---------------|
49
+ | {stable identifier} | {source identifier} | {business driver} | {quality attribute} | {priority} | {stimulus} | {context} | {expected response} | {verifiable measure} | {covered / gap} |
50
+
51
+ | decision_id | selected_option | alternative_option | benefit | cost | assumption | rejection_reason | result_or_gap |
52
+ |-------------|-----------------|--------------------|---------|------|------------|------------------|---------------|
53
+ | {stable identifier} | {selected option} | {reasonable alternative} | {primary benefit} | {primary cost} | {assumption} | {rejection reason} | {covered / gap} |
54
+
55
+ | risk_id | decision_id | risk_or_sensitivity | affected_quality_attributes | tradeoff | mitigation_or_validation | result_or_gap |
56
+ |---------|-------------|---------------------|-----------------------------|----------|--------------------------|---------------|
57
+ | {stable identifier} | {decision identifier} | {risk or sensitivity point} | {affected quality attributes} | {trade-off} | {mitigation or validation} | {covered / gap} |
58
+
59
+ | decision_id | door_type | reversal_cost | migration_or_rollback | decision_status | result_or_gap |
60
+ |-------------|-----------|---------------|-----------------------|-----------------|---------------|
61
+ | {decision identifier} | {two-way / one-way} | {reversal cost} | {migration or rollback path} | {resolved / needs-human-decision} | {covered / gap} |
62
+
63
+ | evolution_id | scenario_type | source_id | confirmation_status | change_scenario | affected_scope | verification | result_or_gap |
64
+ |--------------|---------------|-----------|---------------------|-----------------|----------------|--------------|---------------|
65
+ | {stable identifier} | {evolution / migration / rollback / compatibility / operations} | {source identifier} | {confirmed / unconfirmed / not-applicable} | {change scenario} | {affected scope} | {verification and continuous-validation entry point} | {covered / gap / not-applicable} |
66
+
67
+ > An `unconfirmed` future scenario must not become a current hard requirement. Keep `not-applicable` with evidence for each inapplicable item.
68
+
69
+ ## Traceability Matrix
70
+
71
+ | source_id | upstream | reviewed_target | verification | status_or_gap |
72
+ |-----------|----------|-----------------|--------------|---------------|
73
+ | {source identifier} | {approved requirement} | {decision/step/test strategy} | {verification evidence} | {covered / gap} |
26
74
 
27
75
  ## Findings
28
76
 
@@ -30,15 +78,23 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
30
78
 
31
79
  #### 1. {Issue title}
32
80
  **File**: `{file-path}:{line-number}`
33
- **Description**: {details}
34
- **Suggested Fix**: {fix suggestion}
81
+ **Scenario**: {scenario}
82
+ **Impact**: {impact}
83
+ **Evidence**: {reproducible evidence}
84
+ **Confidence**: {high / medium / low}
85
+ **Unverified Assumptions**: {assumptions or none}
86
+ **Fix Direction**: {fix direction}
35
87
 
36
88
  ### Major Issues (should fix)
37
89
 
38
90
  #### 1. {Issue title}
39
91
  **File**: `{file-path}:{line-number}`
40
- **Description**: {details}
41
- **Suggested Fix**: {fix suggestion}
92
+ **Scenario**: {scenario}
93
+ **Impact**: {impact}
94
+ **Evidence**: {reproducible evidence}
95
+ **Confidence**: {high / medium / low}
96
+ **Unverified Assumptions**: {assumptions or none}
97
+ **Fix Direction**: {fix direction}
42
98
 
43
99
  ### Minor Issues (low impact, closure required)
44
100
 
@@ -22,7 +22,55 @@
22
22
  - **审查时间**:{timestamp}
23
23
  - **审查范围**:{file-count and major modules}
24
24
  - **总体结论**:{通过 / 需要修改 / 拒绝}
25
- - **发现(AI 可处理)**:0 阻塞项,0 主要,0 次要 / **人工校验**:0
25
+ - **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
26
+
27
+ ## 检视覆盖声明
28
+
29
+ | pass_id | scope | evidence | result | gaps_or_assumptions |
30
+ |---------|-------|----------|--------|---------------------|
31
+ | pass-1..5 | {本遍实际范围} | {artifact / file:line / command} | {发现或结论} | {缺口或假设} |
32
+
33
+ | lens_id | trigger_evidence | loaded | result |
34
+ |---------|------------------|--------|--------|
35
+ | {registry token} | {命中或未命中证据} | {yes / no / not-applicable} | {专项结论} |
36
+
37
+ ## 技术方案架构覆盖
38
+
39
+ | assessment_id | classification | trigger_evidence | review_depth | result_or_gap |
40
+ |---------------|----------------|------------------|--------------|---------------|
41
+ | architecture-significance | {ordinary / architecture-significant} | {artifact / file:line / source_id} | {proportional / mini-atam} | {covered / gap} |
42
+
43
+ > 场景 A(`ordinary`):保留上表,记录 `Mini-ATAM: not-applicable` 及可复核理由,并删除场景 B 的表格。
44
+ >
45
+ > 场景 B(`architecture-significant`):保留上表和以下五张表,并删除场景 A 的说明。
46
+
47
+ | quality_scenario_id | source_id | business_driver | quality_attribute | priority | stimulus | context | expected_response | measure | result_or_gap |
48
+ |---------------------|-----------|-----------------|-------------------|----------|----------|---------|-------------------|---------|---------------|
49
+ | {稳定标识} | {来源标识} | {业务驱动} | {质量属性} | {优先级} | {触发} | {上下文} | {期望响应} | {可验证度量} | {covered / gap} |
50
+
51
+ | decision_id | selected_option | alternative_option | benefit | cost | assumption | rejection_reason | result_or_gap |
52
+ |-------------|-----------------|--------------------|---------|------|------------|------------------|---------------|
53
+ | {稳定标识} | {所选方案} | {合理替代方案} | {主要收益} | {主要代价} | {假设} | {不采用原因} | {covered / gap} |
54
+
55
+ | risk_id | decision_id | risk_or_sensitivity | affected_quality_attributes | tradeoff | mitigation_or_validation | result_or_gap |
56
+ |---------|-------------|---------------------|-----------------------------|----------|--------------------------|---------------|
57
+ | {稳定标识} | {决策标识} | {风险或敏感点} | {受影响质量属性} | {权衡} | {缓解或验证} | {covered / gap} |
58
+
59
+ | decision_id | door_type | reversal_cost | migration_or_rollback | decision_status | result_or_gap |
60
+ |-------------|-----------|---------------|-----------------------|-----------------|---------------|
61
+ | {决策标识} | {two-way / one-way} | {逆转成本} | {迁移或回滚路径} | {resolved / needs-human-decision} | {covered / gap} |
62
+
63
+ | evolution_id | scenario_type | source_id | confirmation_status | change_scenario | affected_scope | verification | result_or_gap |
64
+ |--------------|---------------|-----------|---------------------|-----------------|----------------|--------------|---------------|
65
+ | {稳定标识} | {evolution / migration / rollback / compatibility / operations} | {来源标识} | {confirmed / unconfirmed / not-applicable} | {变化场景} | {影响范围} | {验证方式与持续验证入口} | {covered / gap / not-applicable} |
66
+
67
+ > `unconfirmed` 的未来场景不得升级为当前硬性需求;不适用项保留 `not-applicable` 及证据。
68
+
69
+ ## 追踪矩阵
70
+
71
+ | source_id | upstream | reviewed_target | verification | status_or_gap |
72
+ |-----------|----------|-----------------|--------------|---------------|
73
+ | {来源标识} | {已批准需求} | {设计决策/步骤/测试策略} | {验证证据} | {covered / gap} |
26
74
 
27
75
  ## 问题清单
28
76
 
@@ -30,15 +78,23 @@
30
78
 
31
79
  #### 1. {问题标题}
32
80
  **文件**:`{file-path}:{line-number}`
33
- **说明**:{details}
34
- **修复建议**:{fix suggestion}
81
+ **场景**:{scenario}
82
+ **影响**:{impact}
83
+ **证据**:{reproducible evidence}
84
+ **置信度**:{high / medium / low}
85
+ **未验证假设**:{assumptions or none}
86
+ **修复方向**:{fix direction}
35
87
 
36
88
  ### 主要问题(建议修复)
37
89
 
38
90
  #### 1. {问题标题}
39
91
  **文件**:`{file-path}:{line-number}`
40
- **说明**:{details}
41
- **修复建议**:{fix suggestion}
92
+ **场景**:{scenario}
93
+ **影响**:{impact}
94
+ **证据**:{reproducible evidence}
95
+ **置信度**:{high / medium / low}
96
+ **未验证假设**:{assumptions or none}
97
+ **修复方向**:{fix direction}
42
98
 
43
99
  ### 次要问题(低影响但需闭环)
44
100
 
@@ -23,35 +23,32 @@ Follow the `design-review` step in `.agents/workflows/feature-development.yaml`.
23
23
  - Introducing unnecessary abstractions, configuration, or frameworks for a single-use requirement
24
24
  - Asserting a `file:line` or behavior from memory or impression without verifying via rg/nl
25
25
 
26
- ## Common Review Principles
26
+ ## Shared Method and Classification Boundary
27
27
 
28
- 1. **Strict but fair**: identify issues and acknowledge solid work
29
- 2. **Specific**: cite exact file paths and line numbers
30
- 3. **Actionable**: suggest a concrete fix
31
- 4. **Severity-based**: clearly distinguish blockers, major issues, and minor issues
28
+ Read `.agents/rules/review-method.md` first and apply its five-pass protocol, risk lenses, and finding evidence contract. Finding, manual-validation, advisory, and `needs-human-decision` state semantics remain governed by `.agents/rules/review-handshake.md`. This file adds only plan-stage criteria.
32
29
 
33
- ## Three-category Decision Tree
34
-
35
- 1. A gap in constraints, risks, interface boundaries, validation strategy, or implementability is a formal finding. Assign blocker / major / minor by impact; severity does not control closure, so minor findings must also reach a terminal state.
36
- 2. When there is no known defect but validation requires a real environment, permission, or human operation, classify it as manual-validation.
37
- 3. Only a future optimization that does not affect the current plan's completeness, correctness, or acceptance is an advisory. Put it only in Non-blocking Advisories; do not add it to the ledger, finding counts, or verdict.
30
+ Also inspect the latest technical plan artifact, latest requirement-analysis review artifact, and `task.md` Activity Log so the report reflects the full design context.
38
31
 
39
- ## Manual Validation Classification
32
+ ## Technical Plan Architecture Coverage
40
33
 
41
- Some findings cannot be closed by an AI agent in the current execution environment, for example:
34
+ First record an `architecture-significance` classification with locatable evidence in every round. Classify the plan as `architecture-significant` when any of these areas changes materially:
42
35
 
43
- - Missing Docker / sandbox access for end-to-end validation
44
- - Missing a specific OS for macOS-only behavior
45
- - Missing third-party accounts / OAuth
46
- - Missing privileged operations such as root, sudo, or special network access
36
+ - responsibility or component boundaries;
37
+ - cross-component data or control flow;
38
+ - public or compatibility interfaces;
39
+ - data ownership or persistence;
40
+ - deployment or operations topology;
41
+ - trust boundaries;
42
+ - trade-offs between priority quality attributes;
43
+ - high-cost or irreversible decisions.
47
44
 
48
- **Decision tree**: "Can the AI agent close this item independently without changing the environment?"
49
- - Yes -> blocker / major / minor, based on risk
50
- - No -> **manual-validation** (a manual-validation meta-category, not part of severity ordering)
45
+ If none applies, classify the plan as `ordinary`, use `proportional` depth, and record only the classification evidence plus a reviewable reason why Mini-ATAM is `not-applicable`. If any applies, use `mini-atam` depth and complete this review:
51
46
 
52
- Where manual-validation items go:
53
- - Record them in an independent review report section named "Manual Validation Items"
54
- - Record the done-note source field as `Manual-validation: 1`; `ai task log` normalizes it into review rows
55
- - Do **not** include them in the code-task fix loop; maintainers carry them in the PR description under manual verification
47
+ 1. Trace business drivers and sourced priority quality attributes to approved requirements and constraints.
48
+ 2. Record stimulus, context, expected response, and a verifiable measure for each quality-attribute scenario.
49
+ 3. Compare each selected architecture decision with at least one reasonable alternative across benefit, cost, assumption, and rejection reason. Architecture-style or design-pattern counts are not evidence of fitness.
50
+ 4. Identify risks, sensitivity points, and quality-attribute trade-offs, including mitigation or validation.
51
+ 5. Mark each key decision as `two-way` or `one-way`, including reversal cost and migration or rollback path.
52
+ 6. Consider `evolution`, `migration`, `rollback`, `compatibility`, and `operations` scenarios individually, mapping affected scope, verification, and the continuous-validation entry point.
56
53
 
57
- Also inspect the latest technical plan artifact, latest requirement-analysis review artifact, and `task.md` Activity Log so the report reflects the full design context.
54
+ For an inapplicable lifecycle scenario, record `not-applicable` and evidence. An `unconfirmed` future scenario must not become a current hard requirement. `one-way` describes reversibility only; upgrade a decision to `needs-human-decision` only when it also meets the existing source and impact tests.
@@ -23,35 +23,32 @@
23
23
  - 为单次需求引入不必要的新抽象、配置或框架
24
24
  - 凭印象或记忆断言 `file:line`/行为,没有用 rg/nl 复核就下结论
25
25
 
26
- ## 通用审查原则
26
+ ## 共享方法与分类边界
27
27
 
28
- 1. **严格但公正**:既要指出问题,也要承认做得好的部分
29
- 2. **具体**:引用准确的文件路径和行号
30
- 3. **可执行**:给出明确可落地的修复建议
31
- 4. **按严重程度分类**:明确区分 blocker、major 和 minor
28
+ 先读取 `.agents/rules/review-method.md`,按其五遍协议、风险镜头和 finding 证据契约执行;finding、manual-validation、advisory 与 `needs-human-decision` 的状态语义以 `.agents/rules/review-handshake.md` 为准。本文件只补充技术方案阶段的专项判断。
32
29
 
33
- ## 三类审查项决策树
34
-
35
- 1. 若问题揭示当前方案缺少约束、风险、接口边界、验证策略或可实施性,登记为正式 finding,并按影响赋予 blocker / major / minor;severity 只表示影响大小,minor 也必须闭环。
36
- 2. 若没有已知缺陷,但只能依赖真实环境、权限或人工操作完成验证,归为 manual-validation。
37
- 3. 仅当建议属于未来优化且不影响当前方案的完整性、正确性和验收时,归为 advisory。advisory 只写入「非阻塞建议」,不进入账本、问题计数或 verdict。
30
+ 同时检查最新技术方案产物、最新需求分析审查产物和 `task.md` Activity Log,确保报告反映完整的设计上下文。
38
31
 
39
- ## 人工校验项分类
32
+ ## 技术方案架构专项覆盖
40
33
 
41
- 某些发现项是 AI agent 在本执行环境**无法闭环**的,例如:
34
+ 每轮先用可定位证据记录 `architecture-significance` 分类。以下任一项发生实质变化即分类为 `architecture-significant`:
42
35
 
43
- - 缺 Docker / 沙箱而无法跑端到端验证
44
- - 缺特定 OS(macOS-only 行为)
45
- - 缺第三方账号 / OAuth
46
- - 缺特权操作(root、sudo、特殊网络)
36
+ - 职责或组件边界;
37
+ - 跨组件数据流或控制流;
38
+ - 公开接口或兼容接口;
39
+ - 数据所有权或持久化;
40
+ - 部署或运维拓扑;
41
+ - 信任边界;
42
+ - 优先质量属性之间的权衡;
43
+ - 高成本或不可逆决策。
47
44
 
48
- **分类决策树**:「AI agent 能否在不改环境的前提下独立闭环这一项?」
49
- - 是 -> blocker / major / minor 之一(按风险定档)
50
- - 否 -> **manual-validation**(人工校验元类目,不参与严重程度排序)
45
+ 未命中时分类为 `ordinary`,使用 `proportional` 深度,只记录分类证据以及 Mini-ATAM `not-applicable` 的可复核理由。命中时使用 `mini-atam` 深度并完成以下检视:
51
46
 
52
- manual-validation 项的去向:
53
- - 写入 review 报告独立段落「人工校验项」
54
- - 在 done note 中写入源字段 `Manual-validation: 1`;`ai task log` 归一化展示到 review 行
55
- - **不**进入 code-task 修复循环;维护者在 PR description 中以「待人工验证」清单形式承接
47
+ 1. 从已批准需求和约束追踪业务驱动及有来源的优先质量属性。
48
+ 2. 为质量属性场景记录 stimulus、context、expected response 和可验证 measure。
49
+ 3. 对所选架构决策与至少一个合理替代方案比较 benefit、cost、assumption 和 rejection reason;不得以架构风格或设计模式数量代替适配性判断。
50
+ 4. 识别风险、敏感点及质量属性间的 trade-off,并记录缓解或验证方式。
51
+ 5. 将关键决策标记为 `two-way` 或 `one-way`,记录逆转成本以及迁移或回滚路径。
52
+ 6. 逐项考虑 `evolution`、`migration`、`rollback`、`compatibility`、`operations` 场景,并映射影响范围、验证方式和持续验证入口。
56
53
 
57
- 同时检查最新技术方案产物、最新需求分析审查产物和 `task.md` Activity Log,确保报告反映完整的设计上下文。
54
+ 不适用的生命周期场景必须写 `not-applicable` 及证据。`unconfirmed` 的未来场景不得升级为当前硬性需求。`one-way` 只描述可逆性;只有同时满足既有来源测试和影响测试时,才升级为 `needs-human-decision`。
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: review-pr
3
+ description: >
4
+ Review a pull request by evidence grade and publish a formal PR review.
5
+ Use when a PR needs review (regardless of whether trusted lifecycle records exist).
6
+ Only invoke this skill automatically when the conversation includes a resolvable PR number or PR URL.
7
+ ---
8
+
9
+ # Review Pull Request
10
+
11
+ Based on the target PR's lifecycle-evidence completeness and change risk, select `verify` (lightweight recheck), `audit` (evidence audit), or `reconstruct` (reconstruction review), publish the actionable review conclusion as a formal PR Review on the target PR, and retain traceable review-process evidence (`pr-review.md` / `pr-review-r{N}.md`).
12
+
13
+ ## Boundary / Critical Rules
14
+
15
+ - Strictly follow the fixed evidence-grading decision flow: host resolution → evidence classification → freshness/alignment → risk grading → mode selection
16
+ - `pr-review*` is an independent artifact family: it does not join the analysis/plan/code stage chain and never changes `current_step`
17
+ - Only a formal PR Review (head SHA, conclusion, findings, receipt, Issue artifact link) is published on the PR; no second full process copy goes to a regular PR comment
18
+ - The full process copy and the reversible `task.md` mirror are synced only to the linked Issue; `restore-task` keeps its Issue-only contract
19
+ - Never backfill or fabricate `analysis`/`plan`/`code` lifecycle history for an external PR
20
+ - The head SHA is recorded only in `pr-review*` and the formal PR Review; on head drift you must start a new round and never reuse an old conclusion
21
+ - Review depth is driven by evidence completeness and change risk, never by the submitter's identity
22
+ - After executing this skill you **must** immediately update task.md (via the `task-activity` typed intent)
23
+ - Never run `git add` or `git commit` automatically
24
+ - The one-shot path (no task/Issue) uses `.agents/workspace/reviews/{pr-number}/` with `recoverable: false` and carries no recovery promise
25
+
26
+ ## Common Rationalizations and Rebuttals
27
+
28
+ | Rationalization | Rebuttal |
29
+ |-----------------|----------|
30
+ | "Just read the diff; no reconstruction needed" | Reading only the diff misses requirement boundaries, architecture choices, and migration strategy; `reconstruct` must first produce the minimum-sufficient reconstruction record. |
31
+ | "The PR has no linked task; just post a report" | Block by default and require linking an Issue/task first; only an explicit "one-shot review" takes the non-recoverable fallback path. |
32
+ | "Also post the full reconstruction to a regular PR comment for contributors" | The process copy is synced only to the Issue artifact comment; the PR keeps only the formal Review to avoid duplicate remote copies and restore-source confusion. |
33
+ | "Commit while I'm at it" | This skill never runs `git add`/`git commit`; committing is a separate, explicitly user-triggered step. |
34
+
35
+ ## Step 0: State Check (pre-execution hard gate)
36
+
37
+ Before making any task-state judgment or user-visible conclusion, run the state check:
38
+
39
+ ```bash
40
+ agent-infra-internal task-snapshot {task-id} --format text
41
+ ```
42
+
43
+ The task-anchored path records the current task directory and existing `pr-review*` rounds before starting; the one-shot path (no task) records the PR number and target directory. Paste the state-check output into the `## State Check` section of this round's `pr-review-rN.md`.
44
+
45
+ ## Steps
46
+
47
+ ### 1. Resolve the Input and the Host
48
+
49
+ Resolve the target PR number `{pr-number}` (`--pr <number>`, a PR URL, or by reverse lookup from the current branch). Run:
50
+
51
+ ```bash
52
+ agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
53
+ agent-infra-internal pr-review-grade resolve-host --pr {pr-number} [--cwd <path>]
54
+ ```
55
+
56
+ `resolve-host` returns a typed `HostResolution` (`unique` / `ambiguous` / `none`). Branch as follows:
57
+
58
+ - **Unique host**: bind `{task-id}` and enumerate `analysis*`/`plan*`/`code*`/`review-*`/`pr-review*` presence (go to step 2).
59
+ - **Ambiguous hosts**: `resolve-host` returns `ambiguous` and `decide` refuses to classify (fail closed). Stop and ask a human to pin the unique host; do not enter evidence classification.
60
+ - **No host**: block by default and require linking an Issue/task first (show linking guidance); never auto-create/import an Issue. Only when the user explicitly chooses a "one-shot review" do process files land in `.agents/workspace/reviews/{pr-number}/` (`recoverable: false`).
61
+
62
+ ### 2. Single decide: evidence enumeration + classification + risk + mode
63
+
64
+ Write the host, artifact presence, head state, and the six pure-evidence risk factors to an input JSON, then call once:
65
+
66
+ ```bash
67
+ agent-infra-internal pr-review-grade decide --input-file {decide-input.json} [--cwd <path>]
68
+ ```
69
+
70
+ Returns the full `DecisionRecord` (`scenario` / `freshness` / `alignment` / `risk` / `mode` / `firstReview` / `reason`) in one call. Record the decision input and output verbatim in the `pr-review-rN.md` "Evidence List" section (AC3 traceability). When `host.kind === 'ambiguous'`, the command refuses; return to step 1's blocking exit.
71
+
72
+ ### 3. Generate `pr-review-rN.md`
73
+
74
+ Generate this round's artifact per `reference/report-template.md`. In `reconstruct` mode (or `audit` with insufficient evidence), write a "Reconstruction Context" section (requirement boundary / architecture choices / impact surface / validation coverage, see `reference/evidence-grading.md`) before the line-level findings. Record `recoverable: true|false` in the frontmatter or header (the one-shot path sets `false`).
75
+
76
+ ### 4. Sync the Issue artifact comments (task-anchored path)
77
+
78
+ Sync the task comment, then the artifact comment, and capture a stable comment URL:
79
+
80
+ ```bash
81
+ agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
82
+ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {pr-review-artifact} --agent {agent}
83
+ ```
84
+
85
+ The one-shot path (no task/Issue) skips this step.
86
+
87
+ ### 5. Recheck the head and publish the formal Review
88
+
89
+ Read the remote head again to confirm it did not drift during the review:
90
+
91
+ ```bash
92
+ agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
93
+ ```
94
+
95
+ If the head matches step 1, assemble the body (head SHA / conclusion / findings / receipt / Issue artifact link, **without a marker**) and publish the formal Review:
96
+
97
+ ```bash
98
+ agent-infra-internal platform-pr-review publish --pr {pr-number} --scope {taskId|pr{pr-number}} --round {round} \
99
+ --commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body.md} [--dry-run] [--cwd <path>]
100
+ ```
101
+
102
+ `publish` generates and validates the marker (first line) in core and is idempotent per marker + commit (replay is a no-op; marker hit on a different commit fails stably). On head drift, stop and start a new round (re-run step 1 with round `{round}+1`).
103
+
104
+ ### 6. Write back the publication result and task state
105
+
106
+ - **Task-anchored path**: write the Review ID/URL into the `pr-review-rN.md` "Publication Result" section and append the Activity Log entry:
107
+
108
+ ```bash
109
+ agent-infra-internal task-activity {task-id} append --step "Review PR (Round {round})" --agent {agent} \
110
+ --note "receipt {receipt} · Review URL {review-url}" --artifact {pr-review-artifact}
111
+ ```
112
+
113
+ `task-activity` atomically completes the Activity Log append, the `## Review Feedback` link, and the version-stamp refresh via `writeTask`; it never changes `current_step`.
114
+
115
+ - **One-shot path (no task)**: write the Review ID/URL only into the `pr-review-rN.md` "Publication Result" section; do not call `task-activity`.
116
+
117
+ ### 7. Re-sync after write-back (task-anchored path)
118
+
119
+ Step 6 rewrote the local `pr-review-rN.md` "Publication Result" section and task.md (Activity Log), while step 4 synced the older snapshot. `verify_comment_content` / `verify_task_comment_content` compare full content, so you must re-sync first to align local and remote. Run in order:
120
+
121
+ ```bash
122
+ agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
123
+ agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {pr-review-artifact} --agent {agent}
124
+ ```
125
+
126
+ `platform-comment sync` updates an existing marker comment in place (idempotent), so the comment URL is unchanged. The one-shot path has no task and skips this step.
127
+
128
+ ### 8. Run the completion verification
129
+
130
+ - **Task-anchored path**:
131
+
132
+ ```bash
133
+ agent-infra-internal task-verify {task-id} review-pr.completed --artifact {pr-review-artifact} --format text
134
+ ```
135
+
136
+ - **One-shot path**:
137
+
138
+ ```bash
139
+ agent-infra-internal pr-review-grade verify-artifact --artifact-file {pr-review-artifact} [--cwd <path>]
140
+ ```
141
+
142
+ Exit code 0 passes; 1 means fix per the output and re-run; 2 means stop and ask for human intervention.
143
+
144
+ ### 9. Inform the user
145
+
146
+ Pick the single exit branch per `reference/output-guidance.md` (published / blocked-requires-link / one-shot), and read `.agents/rules/next-step-output.md` before rendering the next step.
147
+
148
+ ## Completion Checklist
149
+
150
+ - [ ] Completed the evidence-graded PR review and produced `pr-review-rN.md`
151
+ - [ ] Published the formal Review on the target PR, bound to the reviewed head SHA
152
+ - [ ] Synced and re-synced the Issue artifact/task comments on the task-anchored path
153
+ - [ ] Ran the completion verification (`task-verify` or `verify-artifact`)
154
+ - [ ] Updated task.md and appended the Activity Log entry (task-anchored path)
155
+
156
+ ## Stop
157
+
158
+ Stop as soon as the checklist is complete. Do not commit automatically.