@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
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: review-pr
3
+ description: >
4
+ 按证据分级审查 PR 并发布正式 Review。
5
+ 当需要审查一个 PR(无论是否已有可信生命周期记录)时使用。
6
+ 仅当对话包含可解析的 PR 编号或 PR URL 时才可自动调用本技能。
7
+ ---
8
+
9
+ # 审查 PR
10
+
11
+ 根据目标 PR 的生命周期证据完整度与变更风险,选择 `verify`(轻量复核)、`audit`(证据审计)或 `reconstruct`(重建式审查),并把可执行的检视结论作为正式 PR Review 发布到目标 PR,同时保留可追溯的审查过程证据(`pr-review.md` / `pr-review-r{N}.md`)。
12
+
13
+ ## 行为边界 / 关键规则
14
+
15
+ - 严格遵循方案中固化的证据分级主决策流:宿主解析 → 证据分类 → 新鲜度/对齐 → 风险分级 → 模式选择
16
+ - `pr-review*` 是独立 artifact family:不接入 analysis/plan/code 阶段依赖链,不修改 `current_step`
17
+ - PR 上只发布正式 PR Review(head SHA、结论、finding、receipt、Issue artifact 链接),不发第二份完整过程原文到 PR 普通评论
18
+ - 完整过程原文与 `task.md` 的可逆镜像只在关联 Issue 上同步;`restore-task` 保持 Issue-only 契约
19
+ - 不得为外部 PR 倒填或伪造已发生的 `analysis`/`plan`/`code` 生命周期历史
20
+ - head SHA 唯一记录于 `pr-review*` 与正式 PR Review;head 漂移必须进入新轮次,不得沿用旧结论
21
+ - 审查深度由证据完整度和变更风险决定,不由提交者身份决定
22
+ - 执行本技能后,你**必须**立即更新 task.md(经 `task-activity` typed intent)
23
+ - 绝不自动执行 `git add` 或 `git commit`
24
+ - 一次性检视路径(无任务/Issue)走 `.agents/workspace/reviews/{pr-number}/`,标记 `recoverable: false`,不承担可恢复承诺
25
+
26
+ ## 常见违规借口与反驳
27
+
28
+ | 借口 | 反驳 |
29
+ |------|------|
30
+ | 「代码 diff 直接看就行了,不需要重建上下文」 | 仅看 diff 会遗漏需求边界、架构选择与迁移策略;`reconstruct` 必须先产出最低充分重建记录。 |
31
+ | 「PR 没有关联任务,直接写个报告发出去」 | 默认阻塞并要求先关联 Issue/task;只有显式「仅一次性检视」才走不可恢复降级路径。 |
32
+ | 「把完整重建过程也发到 PR 普通评论,方便贡献者看」 | 过程原文只同步到 Issue artifact 评论;PR 只保留正式 Review,避免重复远端副本与恢复源混淆。 |
33
+ | 「审查完了顺手提交一下」 | 本技能绝不执行 `git add`/`git commit`;提交是用户显式发起的独立步骤。 |
34
+
35
+ ## 第 0 步:状态核对(执行前硬约束)
36
+
37
+ 在加载本技能与相关规则后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对:
38
+
39
+ ```bash
40
+ agent-infra-internal task-snapshot {task-id} --format text
41
+ ```
42
+
43
+ 任务锚定路径在开始前记录当前任务目录与既有 `pr-review*` 轮次;一次性路径(无任务)记录 PR 编号与目标目录。状态核对输出粘贴到本轮产物 `pr-review-rN.md` 的 `## 状态核对` 段。
44
+
45
+ ## 执行步骤
46
+
47
+ ### 1. 解析入参与宿主解析
48
+
49
+ 解析目标 PR 编号 `{pr-number}`(`--pr <number>`,或 PR URL,或省略时按当前分支反查)。执行:
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` 输出 `HostResolution`(`unique` / `ambiguous` / `none`),按以下策略分流:
57
+
58
+ - **唯一宿主**:绑定 `{task-id}`,用 artifact 枚举确定 `analysis*`/`plan*`/`code*`/`review-*`/`pr-review*` 的存在性(进入步骤 2)。
59
+ - **多宿主歧义**:`resolve-host` 返回 `ambiguous`,`decide` 会拒绝分类(fail closed)。立即停止并提示人工指定唯一宿主;不进入证据分类。
60
+ - **无宿主**:默认阻塞,要求先建立 Issue/task 关联(给出关联指引),不自动创建/导入 Issue。仅当用户显式选择「仅一次性检视」时,过程文件写入 `.agents/workspace/reviews/{pr-number}/`(`recoverable: false`)。
61
+
62
+ ### 2. 单次 decide:证据枚举 + 场景分类 + 风险分级 + 模式选择
63
+
64
+ 把宿主、artifact 存在性、head 状态与六个纯证据风险因素写入输入 JSON,调用一次:
65
+
66
+ ```bash
67
+ agent-infra-internal pr-review-grade decide --input-file {decide-input.json} [--cwd <path>]
68
+ ```
69
+
70
+ 一次返回完整 `DecisionRecord`(`scenario` / `freshness` / `alignment` / `risk` / `mode` / `firstReview` / `reason`)。把决策输入与输出原样记录到 `pr-review-rN.md` 的「证据清单」段(AC3 可追溯)。`host.kind === 'ambiguous'` 时命令拒绝,回到步骤 1 的阻塞出口。
71
+
72
+ ### 3. 生成 `pr-review-rN.md`
73
+
74
+ 按 `reference/report-template.md` 生成本轮产物。`reconstruct`(或 `audit` 证据不足)时,在行级 finding 之前先写「重建上下文」段(需求边界 / 架构选择 / 影响面 / 验证覆盖,见 `reference/evidence-grading.md`)。frontmatter 或首部记录 `recoverable: true|false`(一次性路径为 `false`)。
75
+
76
+ ### 4. 同步 Issue artifact 评论(任务锚定路径)
77
+
78
+ 依次同步 task 评论与 artifact 评论,取得稳定 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
+ 一次性路径(无任务/Issue)跳过本步。
86
+
87
+ ### 5. 核对 head 并发布正式 Review
88
+
89
+ 再次读取远端 head,确认未被审查期间漂移:
90
+
91
+ ```bash
92
+ agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
93
+ ```
94
+
95
+ 若 head 与步骤 1 记录一致,组装正文(head SHA / 结论 / finding / receipt / Issue artifact 链接,**不含 marker**),发布正式 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` 由 core 生成并校验 marker(首行),按 marker + commit 幂等(重放 no-op;marker 命中但 commit 不一致稳定失败)。head 漂移则停止并转入新轮次(重新执行步骤 1,轮次 `{round}+1`)。
103
+
104
+ ### 6. 回写发布结果与任务状态
105
+
106
+ - **任务锚定路径**:把 Review ID/URL 写入 `pr-review-rN.md`「发布结果」段,并追加活动日志:
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` 经 `writeTask` 原子完成 Activity Log 追加、`## 审查反馈` 链接与版本戳刷新;不改 `current_step`。
114
+
115
+ - **一次性路径(无任务)**:Review ID/URL 只写 `pr-review-rN.md`「发布结果」段,不调用 `task-activity`。
116
+
117
+ ### 7. 发布后回写再同步(任务锚定路径)
118
+
119
+ 步骤 6 已改写本地 `pr-review-rN.md`「发布结果」段与 task.md(活动日志),而步骤 4 同步的是旧快照。`verify_comment_content` / `verify_task_comment_content` 会全文比对,必须先再同步使本地与远端一致。依次调用:
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` 对既有 marker 评论是幂等原地更新,comment URL 不变。一次性路径无任务,跳过本步。
127
+
128
+ ### 8. 完成校验
129
+
130
+ - **任务锚定路径**:
131
+
132
+ ```bash
133
+ agent-infra-internal task-verify {task-id} review-pr.completed --artifact {pr-review-artifact} --format text
134
+ ```
135
+
136
+ - **一次性路径**:
137
+
138
+ ```bash
139
+ agent-infra-internal pr-review-grade verify-artifact --artifact-file {pr-review-artifact} [--cwd <path>]
140
+ ```
141
+
142
+ 退出码 0 通过;1 按输出修复后重跑;2 停止并告知用户需要人工介入。
143
+
144
+ ### 9. 告知用户
145
+
146
+ 按 `reference/output-guidance.md` 选择唯一出口(正常发布 / 阻塞要求关联 / 一次性检视),渲染下一步前读取 `.agents/rules/next-step-output.md`。
147
+
148
+ ## 完成检查清单
149
+
150
+ - [ ] 已按证据分级完成 PR 审查并产出 `pr-review-rN.md`
151
+ - [ ] 正式 Review 已发布到目标 PR,绑定被审 head SHA
152
+ - [ ] 任务锚定路径的 Issue artifact/task 评论已同步并再同步
153
+ - [ ] 已完成校验(`task-verify` 或 `verify-artifact`)
154
+ - [ ] 已更新 task.md 并追加 Activity Log(任务锚定路径)
155
+
156
+ ## 停止
157
+
158
+ 完成检查清单后立即停止。不要自动提交。
@@ -0,0 +1,37 @@
1
+ {
2
+ "skill": "review-pr",
3
+ "checks": {
4
+ "artifact": {
5
+ "file_pattern": "pr-review.md|pr-review-r{N}.md",
6
+ "required_sections": [
7
+ "Identity",
8
+ "Evidence List",
9
+ "Coverage Matrix",
10
+ "Findings",
11
+ "Publication Result",
12
+ "State Check",
13
+ "Evidence"
14
+ ],
15
+ "required_patterns": [
16
+ "^\\$ ",
17
+ "^- \\*\\*Reviewed Head SHA\\*\\*[::]\\s*[0-9a-f]{40}\\s*$",
18
+ "^- \\*\\*Review Mode\\*\\*[::]\\s*(?:verify|audit|reconstruct)\\s*$",
19
+ "^- \\*\\*Evidence Scenario\\*\\*[::]\\s*S[123]\\s*$",
20
+ "^- \\*\\*receipt\\*\\*[::]\\s*\\S"
21
+ ]
22
+ },
23
+ "activity-log": {
24
+ "expected_action_pattern": "Review PR \\(Round \\d+\\)"
25
+ },
26
+ "platform-sync": {
27
+ "when": "issue_number_exists",
28
+ "expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
29
+ "verify_comment_content": true,
30
+ "verify_task_comment_content": true,
31
+ "verify_issue_type": false,
32
+ "verify_issue_fields": false,
33
+ "verify_milestone": false,
34
+ "expected_comment_marker_key": "artifact"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "skill": "review-pr",
3
+ "checks": {
4
+ "artifact": {
5
+ "file_pattern": "pr-review.md|pr-review-r{N}.md",
6
+ "required_sections": [
7
+ "身份信息",
8
+ "证据清单",
9
+ "覆盖矩阵",
10
+ "问题清单",
11
+ "发布结果",
12
+ "状态核对",
13
+ "证据原文"
14
+ ],
15
+ "required_patterns": [
16
+ "^\\$ ",
17
+ "^- \\*\\*被审 head SHA\\*\\*[::]\\s*[0-9a-f]{40}\\s*$",
18
+ "^- \\*\\*审查模式\\*\\*[::]\\s*(?:verify|audit|reconstruct)\\s*$",
19
+ "^- \\*\\*证据场景\\*\\*[::]\\s*S[123]\\s*$",
20
+ "^- \\*\\*receipt\\*\\*[::]\\s*\\S"
21
+ ]
22
+ },
23
+ "activity-log": {
24
+ "expected_action_pattern": "Review PR \\(Round \\d+\\)"
25
+ },
26
+ "platform-sync": {
27
+ "when": "issue_number_exists",
28
+ "expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
29
+ "verify_comment_content": true,
30
+ "verify_task_comment_content": true,
31
+ "verify_issue_type": false,
32
+ "verify_issue_fields": false,
33
+ "verify_milestone": false,
34
+ "expected_comment_marker_key": "artifact"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,65 @@
1
+ # Evidence Grading Reference
2
+
3
+ This file fixes the evidence-graded decision flow of `review-pr`. All determinations are executed mechanically by the typed-core pure functions (`lib/pr-review/evidence-grading.ts`); the skill's prompt layer only orchestrates. This file explains the criteria and rationale; it does not replace the core.
4
+
5
+ ## Main Decision Flow
6
+
7
+ ```text
8
+ Resolve PR base/head and linked Issue/task (host resolution)
9
+ ├─ Unique host → bind the task, enumerate artifact presence → evidence classification
10
+ ├─ Ambiguous hosts → fail closed (decide refuses to classify; require a human-pinned host)
11
+ └─ No host → block by default and require linking; explicit one-shot → reviews/{pr-number}/
12
+ ↓
13
+ Evidence scenario classification (S1/S2/S3) → freshness/alignment → risk grading → mode selection
14
+ ```
15
+
16
+ ## Host Resolution
17
+
18
+ - Exactly one hit → `unique`; multiple without a unique winner → `ambiguous` (candidate list); zero hits → `none`.
19
+ - Ambiguous hosts fail closed and never enter evidence classification. `pr-review-grade resolve-host --pr <N>` returns a typed `HostResolution`, and `decide` explicitly rejects `ambiguous`.
20
+ - `Closes/Fixes #N` in the PR body (case-insensitive, comma/space separated, lists supported) is parsed by `extractClosingIssueNumbers`; a local `active/*/task.md` `pr_number` hit takes priority over the `issue_number` reverse lookup, and a task hit via both paths deduplicates to a single candidate.
21
+
22
+ ## Evidence Scenario Classification (S1 → S2 → S3)
23
+
24
+ | Scenario | Criteria |
25
+ |----------|----------|
26
+ | S1 complete & trusted | unique task with matching issue_number + complete `analysis`/`plan`/`code` and all three review families + latest `pr-review*` reviewed head == current head + trusted source |
27
+ | S2 partial / suspect | task exists but key artifacts are missing, or the head drifted, or the source is untrusted / cannot prove alignment with the current head |
28
+ | S3 PR-only | no host; or unique task with no lifecycle artifacts at all and no prior `pr-review*` |
29
+
30
+ - S3(b) symmetric criterion: `!hasAnalysis && !hasPlan && !hasCode && !hasReviewAnalysis && !hasReviewPlan && !hasReviewCode && !hasPriorPrReview`. A malformed task with only one review family (review-analysis / review-plan / review-code) falls to S2 → audit.
31
+ - On first review (no prior `pr-review*`) S1(c) is unsatisfied, so a complete-lifecycle task falls to S2 → audit.
32
+
33
+ ## Freshness and Alignment
34
+
35
+ - Freshness benchmark = the reviewed head SHA recorded by the latest `pr-review*`, compared character-for-character with the current head: match → `fresh`, otherwise → `stale`.
36
+ - Alignment = freshness is `fresh` and the `issue_number` / `pr_number` match the resolution result.
37
+ - No prior `pr-review*` → `n/a` / `n/a` (first-review special case).
38
+
39
+ ## Risk Grading (pure evidence)
40
+
41
+ | Factor | LOW | HIGH |
42
+ |--------|-----|------|
43
+ | Change size | few files, small net additions | many files, large net additions |
44
+ | Change sensitivity | no protected paths touched | touches lifecycle / rule / skill / config / security / auth / idempotency / concurrency paths |
45
+ | Structural change | no schema/frontmatter/migration/interface-contract changes | involves schema / frontmatter / migration / interface contract |
46
+ | Test coverage | tests present and passing | no tests or tests missing/failing |
47
+ | Source credibility | a reviewable trusted lifecycle exists and aligns with the current head | no trusted record, or the source is not reviewable |
48
+ | Recovery/merge impact | recovery contract unaffected | may break the recovery contract or create a dual-write source |
49
+
50
+ Aggregation: any priority factor (sensitivity / source credibility) HIGH → HIGH; otherwise any HIGH → MEDIUM; all LOW → LOW. Identity factors never participate in any factor determination.
51
+
52
+ ## Mode Selection Matrix
53
+
54
+ | Evidence scenario | Freshness/alignment | Risk | Mode |
55
+ |-------------------|---------------------|------|------|
56
+ | S1 | fresh + aligned | LOW/MEDIUM | verify (lightweight recheck) |
57
+ | S1 | fresh + aligned | HIGH | audit (evidence audit) |
58
+ | S2 | stale / misaligned / partial-missing | any | audit |
59
+ | S3 | n/a | any | reconstruct (reconstruction review) |
60
+
61
+ Running `review-pr` on a complete-lifecycle task for the first time falls to S2 → audit because there is no prior head record; "trusted lifecycle records → verify" corresponds to the re-review case where a prior `pr-review*` exists and the head has not drifted.
62
+
63
+ ## Minimum-Sufficient Reconstruction
64
+
65
+ When the mode is `reconstruct` (or `audit` with insufficient evidence), form a reconstruction record before the line-level review covering at least: requirement boundary, architecture choices, impact surface, validation coverage; the on-disk order is "Reconstruction Context → Coverage Matrix → line-level Findings".
@@ -0,0 +1,65 @@
1
+ # 证据分级参考
2
+
3
+ 本文件固化 `review-pr` 的证据分级主决策流。判定全部由 typed core 纯函数(`lib/pr-review/evidence-grading.ts`)机械执行,skill 提示词层只做编排;本文件用于解释判据与理由,不替代 core。
4
+
5
+ ## 主决策流
6
+
7
+ ```text
8
+ 解析 PR base/head 与关联 Issue/task(宿主解析)
9
+ ├─ 唯一宿主 → 绑定任务,枚举 artifact 存在性 → 证据分类
10
+ ├─ 多宿主歧义 → fail closed(decide 拒绝分类,要求人工指定)
11
+ └─ 无宿主 → 默认阻塞要求关联;显式一次性检视 → reviews/{pr-number}/
12
+ ↓
13
+ 证据场景分类(S1/S2/S3)→ 新鲜度/对齐 → 风险分级 → 模式选择
14
+ ```
15
+
16
+ ## 宿主解析
17
+
18
+ - 唯一命中 → `unique`;多个且无法唯一 → `ambiguous`(候选列表);零命中 → `none`。
19
+ - 多宿主歧义即 fail closed:不进入证据分类;由 `pr-review-grade resolve-host --pr <N>` 返回 typed `HostResolution`,`decide` 对 `ambiguous` 显式拒绝。
20
+ - PR body 的 `Closes/Fixes #N`(大小写不敏感、逗号/空格分隔、支持列表)经 `extractClosingIssueNumbers` 解析;本地 `active/*/task.md` 的 `pr_number` 命中优先于 `issue_number` 反查,同一任务经两条路径命中按单候选去重。
21
+
22
+ ## 证据场景分类(S1 → S2 → S3)
23
+
24
+ | 场景 | 判据 |
25
+ |------|------|
26
+ | S1 完整可信 | 唯一任务且 issue_number 与远端一致 + `analysis`/`plan`/`code` 及三族 review 齐全 + 最新 `pr-review*` 被审 head == 当前 head + 来源受信 |
27
+ | S2 部分/可疑 | 任务存在但 artifact 缺失关键产物,或 head 漂移,或来源不可信 / 无法证明与当前 head 对齐 |
28
+ | S3 仅 PR | 无宿主;或任务唯一但无任何生命周期 artifact 且无先前 `pr-review*` |
29
+
30
+ - S3(b) 判据(对称口径):`!hasAnalysis && !hasPlan && !hasCode && !hasReviewAnalysis && !hasReviewPlan && !hasReviewCode && !hasPriorPrReview`。仅含任一 review 产物(review-analysis / review-plan / review-code)的畸形任务落 S2 → audit。
31
+ - 首次审查(无先前 `pr-review*`)时 S1(c) 不满足,完整生命周期任务落入 S2 → audit。
32
+
33
+ ## 新鲜度与对齐
34
+
35
+ - 新鲜度基准 = 上一轮 `pr-review*` 记录的被审 head SHA,与当前 head 逐字符比对:一致 → `fresh`,否则 → `stale`。
36
+ - 对齐 = freshness 为 fresh 且 `issue_number` / `pr_number` 与解析结果一致。
37
+ - 无先前 `pr-review*` → `n/a` / `n/a`(首轮特例)。
38
+
39
+ ## 风险分级(纯证据口径)
40
+
41
+ | 因素 | LOW | HIGH |
42
+ |------|-----|------|
43
+ | 变更规模 | 文件少、净增行少 | 文件多、净增行大 |
44
+ | 变更敏感度 | 未触及受保护路径 | 触及 lifecycle / rule / skill / config / 安全 / 认证 / 幂等 / 并发路径 |
45
+ | 结构性变更 | 无 schema/frontmatter/迁移/接口契约变化 | 涉及 schema / frontmatter / 迁移 / 接口契约 |
46
+ | 测试覆盖 | 有配套测试且可通过 | 无测试或测试缺失/不可通过 |
47
+ | 证据来源可信度 | 存在可复核的受信生命周期且与当前 head 对齐 | 无受信记录,或来源不可复核 |
48
+ | 恢复/合并影响 | 不影响可恢复契约 | 可能破坏可恢复契约或形成双写真源 |
49
+
50
+ 聚合:任一优先因素(敏感度 / 证据来源可信度)HIGH → HIGH;否则任一 HIGH → MEDIUM;全 LOW → LOW。身份因素不参与任何因素判定。
51
+
52
+ ## 模式选择矩阵
53
+
54
+ | 证据场景 | 新鲜度/对齐 | 风险 | 模式 |
55
+ |----------|-------------|------|------|
56
+ | S1 | fresh + aligned | LOW/MEDIUM | verify(轻量复核) |
57
+ | S1 | fresh + aligned | HIGH | audit(证据审计) |
58
+ | S2 | stale / misaligned / 部分缺失 | 任意 | audit |
59
+ | S3 | n/a | 任意 | reconstruct(重建式审查) |
60
+
61
+ 首次对完整生命周期任务运行 `review-pr` 因无先前 head 记录落入 S2 → audit;「已有可信生命周期记录 → verify」对应「存在上轮 `pr-review*` 且 head 未漂移」的再审查场景。
62
+
63
+ ## 最低充分重建
64
+
65
+ 模式为 `reconstruct`(或 `audit` 证据不足)时,在行级审查前形成重建记录,至少覆盖:需求边界、架构选择、影响面、验证覆盖;顺序保证「重建上下文 → 覆盖矩阵 → 行级 finding」。
@@ -0,0 +1,18 @@
1
+ # Output Guidance
2
+
3
+ Read this file and `.agents/rules/next-step-output.md` before presenting the final result to the user. `review-pr` has exactly three exits; pick exactly one based on the run outcome.
4
+
5
+ ## Exit Selection
6
+
7
+ | Exit | Trigger | Present |
8
+ |------|---------|---------|
9
+ | A Published | the formal Review was published (applied/no-op) and verification passed | conclusion, mode, reviewed head SHA, Review URL, receipt, next step |
10
+ | B Blocked, requires linking | `resolve-host` returned none or ambiguous | linking guidance (create/link an Issue and task); do not auto-create an Issue; or explicitly choose the one-shot review |
11
+ | C One-shot review | the user explicitly chose a "one-shot review" | non-recoverable notice, artifact directory `.agents/workspace/reviews/{pr-number}/`, Review URL |
12
+
13
+ ## Presentation Requirements
14
+
15
+ - On publish (exit A) report: review mode (verify/audit/reconstruct), evidence scenario (S1/S2/S3), reviewed head SHA, finding count, formal Review URL, receipt.
16
+ - On block (exit B) provide concrete commands/steps to establish the link; if `resolve-host` returned `ambiguous`, list the candidate tasks and ask a human to pin the host.
17
+ - On one-shot (exit C) state clearly `recoverable: false` and make no recovery promise.
18
+ - Read `.agents/rules/next-step-output.md` before rendering the next step, and generate the "next step" command per its convention.
@@ -0,0 +1,18 @@
1
+ # 输出指引
2
+
3
+ 向用户呈现最终结果前先读取本文件与 `.agents/rules/next-step-output.md`。`review-pr` 有且仅有三个出口,按本次运行结果选一个,不要输出多个。
4
+
5
+ ## 出口选择
6
+
7
+ | 出口 | 触发条件 | 呈现内容 |
8
+ |------|----------|----------|
9
+ | A 正常发布 | 正式 Review 已发布(applied/no-op)且校验通过 | 结论、模式、被审 head SHA、Review URL、receipt、下一步 |
10
+ | B 阻塞要求关联 | `resolve-host` 返回 none 或 ambiguous | 关联指引(创建/关联 Issue 与 task),不自动创建 Issue;或显式选择一次性检视 |
11
+ | C 一次性检视 | 用户显式选择「仅一次性检视」 | 不可恢复提示、产物目录 `.agents/workspace/reviews/{pr-number}/`、Review URL |
12
+
13
+ ## 呈现要求
14
+
15
+ - 正常发布(出口 A)时报告:审查模式(verify/audit/reconstruct)、证据场景(S1/S2/S3)、被审 head SHA、finding 总数、正式 Review URL、receipt。
16
+ - 阻塞(出口 B)时给出建立关联的具体命令或步骤;如果 `resolve-host` 返回 ambiguous,列出候选任务并要求人工指定。
17
+ - 一次性检视(出口 C)明确 `recoverable: false`,不承诺可恢复。
18
+ - 渲染下一步前读取 `.agents/rules/next-step-output.md`,并按其中的「下一步」命令约定生成。
@@ -0,0 +1,85 @@
1
+ # PR Review Report Template
2
+
3
+ Use the following structure when creating `pr-review.md` or `pr-review-r{N}.md`.
4
+
5
+ ```markdown
6
+ # PR Review Report
7
+
8
+ - **Review Round**: Round {round}
9
+ - **Artifact File**: `pr-review.md` / `pr-review-r{N}.md`
10
+ - **Recoverable**: true (task-anchored path) / false (one-shot path)
11
+
12
+ ## State Check
13
+
14
+ > Paste the state-check command output verbatim; each command starts with `$ `.
15
+
16
+ ## Identity
17
+
18
+ - **PR Number**: {pr-number}
19
+ - **Base Branch**: {base-ref} (SHA `{base-sha}`)
20
+ - **Head Branch**: {head-ref}
21
+ - **Reviewed Head SHA**: {40 hex}
22
+ - **Linked Issue**: {issue-number or N/A}
23
+ - **Linked Task**: {task-id or N/A}
24
+ - **Task Directory**: {task-dir or N/A}
25
+
26
+ ## Evidence List
27
+
28
+ - **Host Resolution**: `unique` / `ambiguous` / `none`
29
+ - **Evidence Scenario**: S{1|2|3}
30
+ - **Freshness**: `fresh` / `stale` / `n/a`
31
+ - **Alignment**: `aligned` / `misaligned` / `n/a`
32
+ - **Review Mode**: `verify` / `audit` / `reconstruct`
33
+ - **Risk Level**: `LOW` / `MEDIUM` / `HIGH`
34
+ - **First Review**: true / false
35
+ - **receipt**: {receipt}
36
+ - **Decision Input and Output**: paste the full `pr-review-grade decide` input JSON and the output DecisionRecord (the decision input includes host, artifact presence, head state, and the six risk factors).
37
+
38
+ ### Reconstruction Context (reconstruct / audit with insufficient evidence)
39
+
40
+ Land the following in order before the line-level findings, without impersonating a standard lifecycle artifact:
41
+
42
+ 1. **Requirement boundary**: what the PR does and does not do.
43
+ 2. **Architecture choices**: key technical paths and trade-offs.
44
+ 3. **Impact surface**: modules / rules / contracts touched.
45
+ 4. **Validation coverage**: what tests should exist and whether current tests cover them.
46
+
47
+ ## Coverage Matrix
48
+
49
+ | Review Surface | Evidence | Conclusion | Uncovered / Gap |
50
+ |----------------|----------|------------|-----------------|
51
+ | Requirement boundary | {evidence} | {conclusion} | {gap} |
52
+ | Architecture choices | {evidence} | {conclusion} | {gap} |
53
+ | Impact surface | {evidence} | {conclusion} | {gap} |
54
+ | Validation coverage | {evidence} | {conclusion} | {gap} |
55
+
56
+ ## Findings
57
+
58
+ ### Blockers (must fix)
59
+
60
+ - **{title}**: {description} · `{file}:{line}` · Evidence: {evidence} · Impact: {impact} · Suggestion: {suggestion}
61
+
62
+ ### Major (should fix)
63
+
64
+ - **{title}**: {description} · `{file}:{line}` · Evidence: {evidence} · Impact: {impact} · Suggestion: {suggestion}
65
+
66
+ ### Minor (low impact, close the loop)
67
+
68
+ - **{title}**: {description} · `{file}:{line}` · Evidence: {evidence} · Impact: {impact} · Suggestion: {suggestion}
69
+
70
+ ## Publication Result
71
+
72
+ - **Formal Review Status**: {applied / no-op / blocked / failed}
73
+ - **Review ID**: {review-id or N/A}
74
+ - **Review URL**: {review-url or N/A}
75
+ - **Issue Artifact Comment URL**: {comment-url or N/A}
76
+
77
+ ## Evidence
78
+
79
+ > Every "I verified X" assertion must pair with the corresponding tool output verbatim; the gate only checks this section exists and has at least one `$ ` line.
80
+
81
+ - Assertion: {verified claim}
82
+ ```text
83
+ $ {command}
84
+ {raw output}
85
+ ```
@@ -0,0 +1,85 @@
1
+ # PR 审查报告模板
2
+
3
+ 创建 `pr-review.md` 或 `pr-review-r{N}.md` 时使用以下结构。
4
+
5
+ ```markdown
6
+ # PR 审查报告
7
+
8
+ - **审查轮次**:Round {round}
9
+ - **产物文件**:`pr-review.md` / `pr-review-r{N}.md`
10
+ - **可恢复**:true(任务锚定路径)/ false(一次性检视路径)
11
+
12
+ ## 状态核对
13
+
14
+ > 粘贴状态核对命令原文;每条命令以 `$ ` 开头。
15
+
16
+ ## 身份信息
17
+
18
+ - **PR 编号**:{pr-number}
19
+ - **Base 分支**:{base-ref}(SHA `{base-sha}`)
20
+ - **Head 分支**:{head-ref}
21
+ - **被审 head SHA**:{40 位 hex}
22
+ - **关联 Issue**:{issue-number 或 N/A}
23
+ - **关联任务**:{task-id 或 N/A}
24
+ - **关联任务目录**:{task-dir 或 N/A}
25
+
26
+ ## 证据清单
27
+
28
+ - **宿主解析结果**:`unique` / `ambiguous` / `none`
29
+ - **证据场景**:S{1|2|3}
30
+ - **新鲜度**:`fresh` / `stale` / `n/a`
31
+ - **对齐**:`aligned` / `misaligned` / `n/a`
32
+ - **审查模式**:`verify` / `audit` / `reconstruct`
33
+ - **风险等级**:`LOW` / `MEDIUM` / `HIGH`
34
+ - **是否首次审查**:true / false
35
+ - **receipt**:{receipt}
36
+ - **决策输入与输出**:粘贴 `pr-review-grade decide` 的完整输入 JSON 与输出 DecisionRecord(decision 输入含宿主、artifact 存在性、head 状态、六个风险因素)。
37
+
38
+ ### 重建上下文(reconstruct / audit 证据不足时)
39
+
40
+ 在行级 finding 之前按以下顺序落盘,不冒充标准生命周期产物:
41
+
42
+ 1. **需求边界**:PR 要实现什么、不做什么。
43
+ 2. **架构选择**:关键技术路径与取舍。
44
+ 3. **影响面**:改动波及的模块 / 规则 / 契约。
45
+ 4. **验证覆盖**:应有哪些测试、现有测试能否覆盖。
46
+
47
+ ## 覆盖矩阵
48
+
49
+ | 检视面 | 证据 | 结论 | 未覆盖/缺口 |
50
+ |--------|------|------|-------------|
51
+ | 需求边界 | {证据} | {结论} | {缺口} |
52
+ | 架构选择 | {证据} | {结论} | {缺口} |
53
+ | 影响面 | {证据} | {结论} | {缺口} |
54
+ | 验证覆盖 | {证据} | {结论} | {缺口} |
55
+
56
+ ## 问题清单
57
+
58
+ ### 阻塞项(必须修复)
59
+
60
+ - **{标题}**:{描述} · `{file}:{line}` · 证据:{evidence} · 影响:{impact} · 建议:{suggestion}
61
+
62
+ ### 主要问题(建议修复)
63
+
64
+ - **{标题}**:{描述} · `{file}:{line}` · 证据:{evidence} · 影响:{impact} · 建议:{suggestion}
65
+
66
+ ### 次要问题(低影响但需闭环)
67
+
68
+ - **{标题}**:{描述} · `{file}:{line}` · 证据:{evidence} · 影响:{impact} · 建议:{suggestion}
69
+
70
+ ## 发布结果
71
+
72
+ - **正式 Review 状态**:{applied / no-op / blocked / failed}
73
+ - **Review ID**:{review-id 或 N/A}
74
+ - **Review URL**:{review-url 或 N/A}
75
+ - **Issue artifact 评论 URL**:{comment-url 或 N/A}
76
+
77
+ ## 证据原文
78
+
79
+ > 每条「我验证了 X」断言都要配对对应 tool output 原文;gate 仅校验本段存在和至少一行 `$ `。
80
+
81
+ - 断言:{verified claim}
82
+ ```text
83
+ $ {command}
84
+ {raw output}
85
+ ```
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: run-task
3
+ description: >
4
+ Orchestrate lifecycle stages from the task's current state with fresh executors/reviewers and one-use provenance receipts.
5
+ Use when one entry should advance an existing task until a safe commit or stable pause.
6
+ ---
7
+
8
+ # Run Task Lifecycle
9
+
10
+ The orchestrator delegates only and never executes a stage skill itself. First read `.agents/rules/no-mid-flow-questions.md`, `.agents/rules/lifecycle-orchestration.md`, and `reference/host-validation.md`.
11
+
12
+ 1. Resolve the task, current Agent Client, and optional atomic policy flags `--executor-model`, `--executor-reasoning-effort`, `--reviewer-model`, and `--reviewer-reasoning-effort`, then run `task-snapshot`. If any explicit policy flag is present, all four role fields are required and must not be merged with configuration; both roles may use the same model.
13
+ 2. Run `task-orchestration {task-id} begin-or-resume --client {client}` with the complete explicit policy. With no explicit policy, core reads only that client's `agentClients[].orchestration`; an existing v2 run uses its persisted policy. Only on `ORCHESTRATION_MODEL_POLICY_REQUIRED`, show the complete/partial/interactive-only `agent-client model-selection` context and collect one complete policy; no answer means no run is created. Stop on paused/completed results.
14
+ 3. Run `route` and read its structured result. On `completed`, immediately run `agent-infra-internal task-verify {task-id} run-task.completed --format text` and stop. Only when the result is `running` with a non-null `next`, use its single action, role, round, artifact, `requestedModel`, and `requestedReasoningEffort`; never infer them from review prose, session defaults, or a partial tool schema.
15
+ 4. Only for the `running` result from step 3, run `prepare --client {client} --requested-model {requestedModel} --requested-reasoning-effort {requestedReasoningEffort}` so core validates both fields and host evidence before snapshotting. Claude Code's native start event currently cannot provide stable actual model/effort evidence, so it returns `ORCHESTRATION_CLIENT_UNSUPPORTED` and stops like any other client without that evidence. Only after validation succeeds, start a fresh native child with the same model/effort overrides and only the short task ref, skill name, literal `--orchestrated` execution marker, and minimal handoff. The child must forward that marker to every provenance-sensitive command in the stage.
16
+ 5. Native start/stop hooks correlate the unique pending delegation and let core compute workspace changes and seal the receipt. After the child returns, run `advance`. Repeat step 3 only for `running`; stop immediately for `paused` or `completed`.
17
+ 6. Create a new child every round and never follow up with an old reviewer. Native start must report actual model and actual reasoning effort; each requested/actual mismatch needs its own host fallback reason, and requested values must never be fabricated as actual evidence. Capability, hook, identity, evidence, ledger, or fingerprint failures must call `pause` and fail closed.
18
+ 7. On pause or completion, run the matching typed verification and report the structured run summary, pause reason, commit endpoint, or clean completion evidence.
19
+
20
+ ## Stop
21
+
22
+ Stop after a safe `commit` or reviewed-head-clean endpoint; do not create a PR, monitor checks, or archive the task.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: run-task
3
+ description: >
4
+ 从任务当前状态持续编排生命周期阶段,并用 fresh executor/reviewer 与一次性 receipt 验证隔离来源。
5
+ 当用户希望通过单一入口推进已有任务直到安全提交或稳定暂停时使用。
6
+ ---
7
+
8
+ # 运行任务生命周期
9
+
10
+ 总控只编排,不直接执行任何阶段技能。执行前先读取 `.agents/rules/no-mid-flow-questions.md`、`.agents/rules/lifecycle-orchestration.md` 与 `reference/host-validation.md`。
11
+
12
+ 1. 解析任务引用、当前 Agent Client,以及可选的原子策略 `--executor-model`、`--executor-reasoning-effort`、`--reviewer-model`、`--reviewer-reasoning-effort`,并执行 `agent-infra-internal task-snapshot {task-id} --format text`。任一显式策略字段出现时四个 role 字段必须完整,不得与配置拼接;两个角色可以使用同一模型。
13
+ 2. 调用 `agent-infra-internal task-orchestration {task-id} begin-or-resume --client {client}` 并转发完整显式策略。完全没有显式策略时由核心读取当前 client 的 `agentClients[].orchestration`;已有 v2 run 使用持久化策略。仅当核心返回 `ORCHESTRATION_MODEL_POLICY_REQUIRED` 时,先用 `agent-client model-selection` 展示 complete/partial/interactive-only 来源,再一次收集完整策略;未回答则不创建 run。若为 paused/completed,按结构化结果停止。
14
+ 3. 调用 `route` 并读取结构化结果。若返回 `completed`,立即运行 `agent-infra-internal task-verify {task-id} run-task.completed --format text` 并停止;仅当返回 `running` 且 `next` 非空时读取唯一 action、role、round、artifact、`requestedModel` 和 `requestedReasoningEffort`,不得从审查文案、会话默认或局部 tool schema 自行推断。
15
+ 4. 仅对步骤 3 的 `running` 结果调用 `prepare --client {client} --requested-model {requestedModel} --requested-reasoning-effort {requestedReasoningEffort}`;核心在记录工作区基线前校验两字段与宿主证据能力。当前 Claude Code 的原生 start 事件无法稳定提供 actual model/effort,因此与其他缺少该证据的客户端一样返回 `ORCHESTRATION_CLIENT_UNSUPPORTED` 并停止。只有校验成功时才用当前客户端的 fresh 原生子 Agent 启动指定角色,并显式覆盖同一 model/effort;只传短任务引用、skill 名、字面执行标记 `--orchestrated` 和最小交接摘要,不传 receipt identity,不继承总控历史。子 Agent 必须把该标记转发给本阶段所有 provenance 敏感命令。
16
+ 5. 原生 start/stop hook 通过唯一 pending delegation 自动关联任务,并由核心计算工作区变化、封存 receipt;子 Agent 返回后调用 `advance`。只有 `running` 才重复步骤 3;`paused` 或 `completed` 立即停止。
17
+ 6. 每轮创建新 child;禁止 follow-up 复用 reviewer。原生 start 必须回传 actual model 与 actual reasoning effort;任一 actual 与 requested 不同时必须有各自的宿主降级理由,缺失时不得用 requested 值补造。任何 capability、hook、身份、证据、账本或 fingerprint 异常都调用 `pause` 并失败关闭。
18
+ 7. 完成或暂停后运行对应 typed verification,并把结构化 run 摘要、暂停原因、commit 终点或 clean completion evidence 告知用户。
19
+
20
+ ## 停止
21
+
22
+ 在安全 `commit` 或 reviewed-head-clean 终点后结束;不要继续创建 PR、监控 checks 或归档任务。
@@ -0,0 +1,10 @@
1
+ {
2
+ "skill": "run-task",
3
+ "checks": {
4
+ "task-meta": {
5
+ "required_fields": ["id", "status", "updated_at", "agent_infra_version", "current_step", "assigned_to"]
6
+ },
7
+ "orchestration-state": {},
8
+ "orchestration-evidence": {}
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "skill": "run-task",
3
+ "checks": {
4
+ "task-meta": {
5
+ "required_fields": ["id", "status", "updated_at", "agent_infra_version", "current_step", "assigned_to"]
6
+ },
7
+ "orchestration-state": {},
8
+ "orchestration-evidence": {}
9
+ }
10
+ }