@fitlab-ai/agent-infra 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/bin/cli.ts +2 -2
  2. package/dist/bin/cli.js +2 -2
  3. package/dist/bin/internal-cli.js +98 -0
  4. package/dist/lib/decide.js +81 -90
  5. package/dist/lib/defaults.json +1 -0
  6. package/dist/lib/git/review-snapshot.js +79 -0
  7. package/dist/lib/git/workflow.js +101 -0
  8. package/dist/lib/internal/git-workflow.js +42 -0
  9. package/dist/lib/internal/platform-checks.js +119 -0
  10. package/dist/lib/internal/platform-comment.js +129 -0
  11. package/dist/lib/internal/platform-context.js +46 -0
  12. package/dist/lib/internal/platform-issue.js +142 -0
  13. package/dist/lib/internal/platform-pr.js +146 -0
  14. package/dist/lib/internal/release-workflow.js +217 -0
  15. package/dist/lib/internal/task-artifact.js +67 -0
  16. package/dist/lib/internal/task-context.js +43 -0
  17. package/dist/lib/internal/task-event.js +70 -0
  18. package/dist/lib/internal/task-ledger.js +114 -0
  19. package/dist/lib/internal/task-lifecycle.js +58 -0
  20. package/dist/lib/internal/task-short-id.js +83 -0
  21. package/dist/lib/internal/task-snapshot.js +47 -0
  22. package/dist/lib/internal/task-verify.js +50 -0
  23. package/dist/lib/internal/task-warning.js +74 -0
  24. package/dist/lib/platform/adapters.js +14 -0
  25. package/dist/lib/platform/context.js +146 -0
  26. package/dist/lib/platform/github-client.js +124 -0
  27. package/dist/lib/platform/issue-comments.js +409 -0
  28. package/dist/lib/platform/issue-metadata.js +183 -0
  29. package/dist/lib/platform/issues.js +617 -0
  30. package/dist/lib/platform/metadata-labels.js +28 -0
  31. package/dist/lib/platform/pr-checks.js +216 -0
  32. package/dist/lib/platform/pr-summary.js +88 -0
  33. package/dist/lib/platform/pull-request-metadata.js +38 -0
  34. package/dist/lib/platform/pull-requests.js +338 -0
  35. package/dist/lib/platform/releases.js +82 -0
  36. package/dist/lib/platform/types.js +22 -0
  37. package/dist/lib/platform/verification-required.js +78 -0
  38. package/dist/lib/platform/verification-sync.js +1014 -0
  39. package/dist/lib/platform/verification.js +6 -0
  40. package/dist/lib/release/channels.js +31 -0
  41. package/dist/lib/release/workflow.js +32 -0
  42. package/dist/lib/render.js +3 -2
  43. package/dist/lib/run/index.js +24 -7
  44. package/dist/lib/sandbox/capture.js +25 -3
  45. package/dist/lib/sandbox/commands/create.js +36 -22
  46. package/dist/lib/sandbox/commands/enter.js +34 -11
  47. package/dist/lib/sandbox/commands/list-running.js +10 -8
  48. package/dist/lib/sandbox/commands/show.js +2 -2
  49. package/dist/lib/sandbox/commands/start.js +53 -15
  50. package/dist/lib/sandbox/index.js +6 -6
  51. package/dist/lib/sandbox/mounts.js +36 -0
  52. package/dist/lib/sandbox/recovery.js +562 -0
  53. package/dist/lib/sandbox/task-resolver.js +5 -1
  54. package/dist/lib/sandbox/tools.js +19 -0
  55. package/dist/lib/server/protocol.js +5 -5
  56. package/dist/lib/task/activity-log.js +61 -0
  57. package/dist/lib/task/artifact-lifecycle.js +427 -0
  58. package/dist/lib/task/command-options.js +30 -0
  59. package/dist/lib/task/commands/cat.js +36 -6
  60. package/dist/lib/task/commands/decisions.js +80 -46
  61. package/dist/lib/task/commands/files.js +21 -7
  62. package/dist/lib/task/commands/grep.js +55 -7
  63. package/dist/lib/task/commands/issue-body.js +23 -14
  64. package/dist/lib/task/commands/log.js +27 -70
  65. package/dist/lib/task/commands/show.js +20 -7
  66. package/dist/lib/task/commands/status.js +18 -8
  67. package/dist/lib/task/decision-intents.js +154 -0
  68. package/dist/lib/task/decision-items.js +53 -0
  69. package/dist/lib/task/events.js +318 -0
  70. package/dist/lib/task/frontmatter.js +159 -1
  71. package/dist/lib/task/implementation-inputs.js +117 -0
  72. package/dist/lib/task/index.js +12 -9
  73. package/dist/lib/task/issue-form.js +19 -6
  74. package/dist/lib/task/ledger-intents.js +185 -0
  75. package/dist/lib/task/ledger.js +65 -35
  76. package/dist/lib/task/lifecycle.js +484 -0
  77. package/dist/lib/task/resolve-ref.js +152 -32
  78. package/dist/lib/task/review-artifacts.js +101 -0
  79. package/dist/lib/task/review-fingerprint.js +46 -0
  80. package/dist/lib/task/sections.js +358 -4
  81. package/dist/lib/task/short-id.js +292 -7
  82. package/dist/lib/task/snapshot.js +95 -0
  83. package/dist/lib/task/verification-checks.js +8 -0
  84. package/dist/lib/task/verification-config.js +14 -0
  85. package/dist/lib/task/verification-engine.js +906 -0
  86. package/dist/lib/task/verification-review.js +3 -0
  87. package/dist/lib/task/verification-types.js +2 -0
  88. package/dist/lib/task/verification.js +113 -0
  89. package/dist/lib/task/workflow-warning-intents.js +131 -0
  90. package/dist/lib/task/workflow-warnings.js +10 -78
  91. package/dist/lib/task/write.js +241 -0
  92. package/lib/decide.ts +57 -97
  93. package/lib/defaults.json +1 -0
  94. package/lib/git/review-snapshot.ts +73 -0
  95. package/lib/git/workflow.ts +101 -0
  96. package/lib/internal/git-workflow.ts +37 -0
  97. package/lib/internal/platform-checks.ts +101 -0
  98. package/lib/internal/platform-comment.ts +99 -0
  99. package/lib/internal/platform-context.ts +33 -0
  100. package/lib/internal/platform-issue.ts +116 -0
  101. package/lib/internal/platform-pr.ts +119 -0
  102. package/lib/internal/release-workflow.ts +186 -0
  103. package/lib/internal/task-artifact.ts +47 -0
  104. package/lib/internal/task-context.ts +35 -0
  105. package/lib/internal/task-event.ts +51 -0
  106. package/lib/internal/task-ledger.ts +86 -0
  107. package/lib/internal/task-lifecycle.ts +41 -0
  108. package/lib/internal/task-short-id.ts +55 -0
  109. package/lib/internal/task-snapshot.ts +32 -0
  110. package/lib/internal/task-verify.ts +33 -0
  111. package/lib/internal/task-warning.ts +50 -0
  112. package/lib/platform/adapters.ts +30 -0
  113. package/lib/platform/context.ts +164 -0
  114. package/lib/platform/github-client.ts +146 -0
  115. package/lib/platform/issue-comments.ts +479 -0
  116. package/lib/platform/issue-metadata.ts +250 -0
  117. package/lib/platform/issues.ts +691 -0
  118. package/lib/platform/metadata-labels.ts +33 -0
  119. package/lib/platform/pr-checks.ts +246 -0
  120. package/lib/platform/pr-summary.ts +90 -0
  121. package/lib/platform/pull-request-metadata.ts +69 -0
  122. package/lib/platform/pull-requests.ts +380 -0
  123. package/lib/platform/releases.ts +71 -0
  124. package/lib/platform/types.ts +74 -0
  125. package/lib/platform/verification-required.ts +83 -0
  126. package/{runtime/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +198 -367
  127. package/lib/platform/verification.ts +11 -0
  128. package/lib/release/channels.ts +30 -0
  129. package/lib/release/workflow.ts +31 -0
  130. package/lib/render.ts +3 -2
  131. package/lib/run/index.ts +25 -7
  132. package/lib/sandbox/capture.ts +29 -3
  133. package/lib/sandbox/commands/create.ts +43 -25
  134. package/lib/sandbox/commands/enter.ts +38 -11
  135. package/lib/sandbox/commands/list-running.ts +10 -8
  136. package/lib/sandbox/commands/show.ts +2 -2
  137. package/lib/sandbox/commands/start.ts +50 -16
  138. package/lib/sandbox/index.ts +6 -6
  139. package/lib/sandbox/mounts.ts +55 -0
  140. package/lib/sandbox/recovery.ts +828 -0
  141. package/lib/sandbox/task-resolver.ts +5 -1
  142. package/lib/sandbox/tools.ts +31 -0
  143. package/lib/server/protocol.ts +5 -5
  144. package/lib/task/activity-log.ts +62 -0
  145. package/lib/task/artifact-lifecycle.ts +484 -0
  146. package/lib/task/command-options.ts +32 -0
  147. package/lib/task/commands/cat.ts +22 -9
  148. package/lib/task/commands/decisions.ts +49 -47
  149. package/lib/task/commands/files.ts +14 -6
  150. package/lib/task/commands/grep.ts +34 -7
  151. package/lib/task/commands/issue-body.ts +16 -16
  152. package/lib/task/commands/log.ts +17 -70
  153. package/lib/task/commands/show.ts +14 -6
  154. package/lib/task/commands/status.ts +17 -7
  155. package/lib/task/decision-intents.ts +163 -0
  156. package/lib/task/decision-items.ts +64 -0
  157. package/lib/task/events.ts +320 -0
  158. package/lib/task/frontmatter.ts +202 -2
  159. package/lib/task/implementation-inputs.ts +137 -0
  160. package/lib/task/index.ts +12 -9
  161. package/lib/task/issue-form.ts +20 -6
  162. package/lib/task/ledger-intents.ts +201 -0
  163. package/lib/task/ledger.ts +77 -31
  164. package/lib/task/lifecycle.ts +458 -0
  165. package/lib/task/resolve-ref.ts +197 -36
  166. package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
  167. package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +17 -12
  168. package/lib/task/sections.ts +486 -4
  169. package/lib/task/short-id.ts +403 -9
  170. package/lib/task/snapshot.ts +143 -0
  171. package/lib/task/verification-checks.ts +9 -0
  172. package/lib/task/verification-config.ts +20 -0
  173. package/{templates/.agents/scripts/validate-artifact.js → lib/task/verification-engine.ts} +199 -406
  174. package/lib/task/verification-review.ts +9 -0
  175. package/lib/task/verification-types.ts +29 -0
  176. package/lib/task/verification.ts +156 -0
  177. package/lib/task/workflow-warning-intents.ts +142 -0
  178. package/lib/task/workflow-warnings.ts +10 -78
  179. package/lib/task/write.ts +468 -0
  180. package/package.json +4 -2
  181. package/templates/.agents/README.en.md +4 -3
  182. package/templates/.agents/README.zh-CN.md +4 -3
  183. package/templates/.agents/rules/README.en.md +6 -5
  184. package/templates/.agents/rules/README.zh-CN.md +6 -5
  185. package/templates/.agents/rules/create-issue.en.md +1 -1
  186. package/templates/.agents/rules/create-issue.github.en.md +5 -184
  187. package/templates/.agents/rules/create-issue.github.zh-CN.md +12 -178
  188. package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
  189. package/templates/.agents/rules/human-decision-context.en.md +36 -0
  190. package/templates/.agents/rules/human-decision-context.zh-CN.md +36 -0
  191. package/templates/.agents/rules/issue-fields.github.en.md +4 -148
  192. package/templates/.agents/rules/issue-fields.github.zh-CN.md +9 -144
  193. package/templates/.agents/rules/issue-pr-commands.en.md +43 -3
  194. package/templates/.agents/rules/issue-pr-commands.github.en.md +15 -220
  195. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +23 -213
  196. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +45 -3
  197. package/templates/.agents/rules/issue-sync.en.md +1 -1
  198. package/templates/.agents/rules/issue-sync.github.en.md +14 -301
  199. package/templates/.agents/rules/issue-sync.github.zh-CN.md +36 -287
  200. package/templates/.agents/rules/issue-sync.zh-CN.md +1 -1
  201. package/templates/.agents/rules/milestone-inference.en.md +1 -1
  202. package/templates/.agents/rules/milestone-inference.github.en.md +7 -119
  203. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +8 -108
  204. package/templates/.agents/rules/milestone-inference.zh-CN.md +1 -1
  205. package/templates/.agents/rules/next-step-output.en.md +12 -11
  206. package/templates/.agents/rules/next-step-output.zh-CN.md +12 -11
  207. package/templates/.agents/rules/no-mid-flow-questions.en.md +3 -3
  208. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +3 -3
  209. package/templates/.agents/rules/pr-checks-commands.en.md +16 -3
  210. package/templates/.agents/rules/pr-checks-commands.github.en.md +10 -54
  211. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +19 -47
  212. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +30 -3
  213. package/templates/.agents/rules/pr-sync.en.md +30 -3
  214. package/templates/.agents/rules/pr-sync.github.en.md +12 -115
  215. package/templates/.agents/rules/pr-sync.github.zh-CN.md +26 -104
  216. package/templates/.agents/rules/pr-sync.zh-CN.md +43 -3
  217. package/templates/.agents/rules/review-handshake.en.md +8 -5
  218. package/templates/.agents/rules/review-handshake.zh-CN.md +8 -5
  219. package/templates/.agents/rules/task-management.en.md +11 -2
  220. package/templates/.agents/rules/task-management.zh-CN.md +11 -3
  221. package/templates/.agents/rules/task-short-id.en.md +25 -29
  222. package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
  223. package/templates/.agents/scripts/lib/agent-infra-package.js +1 -9
  224. package/templates/.agents/scripts/task-short-id.js +71 -533
  225. package/templates/.agents/skills/analyze-task/SKILL.en.md +22 -55
  226. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +26 -59
  227. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
  228. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
  229. package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
  230. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
  231. package/templates/.agents/skills/block-task/config/verify.json +1 -2
  232. package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
  233. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
  234. package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
  235. package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
  236. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
  237. package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
  238. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
  239. package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
  240. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
  241. package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
  242. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
  243. package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
  244. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
  245. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
  246. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
  247. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
  248. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
  249. package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
  250. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
  251. package/templates/.agents/skills/commit/SKILL.en.md +13 -11
  252. package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -11
  253. package/templates/.agents/skills/commit/config/verify.json +1 -2
  254. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -11
  255. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -11
  256. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +4 -8
  257. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +4 -8
  258. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +6 -18
  259. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +5 -17
  260. package/templates/.agents/skills/commit/reference/task-status-update.en.md +13 -0
  261. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +13 -0
  262. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +13 -36
  263. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +13 -36
  264. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -3
  265. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -3
  266. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +10 -54
  267. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +10 -79
  268. package/templates/.agents/skills/complete-task/SKILL.en.md +59 -63
  269. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +59 -63
  270. package/templates/.agents/skills/complete-task/config/verify.en.json +11 -7
  271. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +11 -7
  272. package/templates/.agents/skills/create-pr/SKILL.en.md +19 -44
  273. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +19 -43
  274. package/templates/.agents/skills/create-pr/config/verify.json +1 -2
  275. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +8 -12
  276. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +7 -11
  277. package/templates/.agents/skills/create-task/SKILL.en.md +12 -13
  278. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +12 -13
  279. package/templates/.agents/skills/create-task/config/verify.json +1 -2
  280. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  281. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  282. package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
  283. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  284. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  285. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
  286. package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
  287. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
  288. package/templates/.agents/skills/import-issue/config/verify.json +1 -2
  289. package/templates/.agents/skills/plan-task/SKILL.en.md +17 -42
  290. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +22 -49
  291. package/templates/.agents/skills/plan-task/config/verify.en.json +1 -3
  292. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -3
  293. package/templates/.agents/skills/post-release/SKILL.en.md +11 -81
  294. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +8 -78
  295. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  296. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  297. package/templates/.agents/skills/release/SKILL.en.md +16 -163
  298. package/templates/.agents/skills/release/SKILL.zh-CN.md +15 -162
  299. package/templates/.agents/skills/restore-task/SKILL.en.md +11 -29
  300. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -29
  301. package/templates/.agents/skills/restore-task/config/verify.json +1 -2
  302. package/templates/.agents/skills/review-analysis/SKILL.en.md +13 -25
  303. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +13 -33
  304. package/templates/.agents/skills/review-analysis/config/verify.en.json +3 -4
  305. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +3 -4
  306. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +9 -12
  307. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +9 -12
  308. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +9 -2
  309. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +9 -2
  310. package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +7 -0
  311. package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +7 -0
  312. package/templates/.agents/skills/review-code/SKILL.en.md +22 -36
  313. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +23 -41
  314. package/templates/.agents/skills/review-code/config/verify.en.json +3 -4
  315. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +3 -4
  316. package/templates/.agents/skills/review-code/reference/output-templates.en.md +56 -18
  317. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +56 -18
  318. package/templates/.agents/skills/review-code/reference/report-template.en.md +11 -4
  319. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +11 -4
  320. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +7 -0
  321. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +7 -0
  322. package/templates/.agents/skills/review-plan/SKILL.en.md +13 -25
  323. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +13 -33
  324. package/templates/.agents/skills/review-plan/config/verify.en.json +3 -4
  325. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +3 -4
  326. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +9 -12
  327. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +9 -12
  328. package/templates/.agents/skills/review-plan/reference/report-template.en.md +9 -2
  329. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +9 -2
  330. package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +7 -0
  331. package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +7 -0
  332. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +1 -2
  333. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +1 -2
  334. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +3 -15
  335. package/templates/.agents/skills/watch-pr/SKILL.en.md +24 -14
  336. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +25 -15
  337. package/templates/.agents/skills/watch-pr/config/verify.json +1 -2
  338. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +2 -2
  339. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +2 -2
  340. package/templates/.agents/templates/task.en.md +6 -1
  341. package/templates/.agents/templates/task.zh-CN.md +6 -1
  342. package/templates/.claude/commands/analyze-task.en.md +1 -1
  343. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  344. package/templates/.claude/commands/block-task.en.md +1 -1
  345. package/templates/.claude/commands/block-task.zh-CN.md +1 -1
  346. package/templates/.claude/commands/cancel-task.en.md +1 -1
  347. package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
  348. package/templates/.claude/commands/check-task.en.md +1 -1
  349. package/templates/.claude/commands/check-task.zh-CN.md +1 -1
  350. package/templates/.claude/commands/code-task.en.md +1 -1
  351. package/templates/.claude/commands/code-task.zh-CN.md +1 -1
  352. package/templates/.claude/commands/commit.en.md +1 -0
  353. package/templates/.claude/commands/commit.zh-CN.md +1 -0
  354. package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
  355. package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
  356. package/templates/.claude/commands/complete-task.en.md +1 -1
  357. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  358. package/templates/.claude/commands/create-pr.en.md +1 -1
  359. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  360. package/templates/.claude/commands/plan-task.en.md +1 -1
  361. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  362. package/templates/.claude/commands/review-analysis.en.md +1 -1
  363. package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
  364. package/templates/.claude/commands/review-code.en.md +1 -1
  365. package/templates/.claude/commands/review-code.zh-CN.md +1 -1
  366. package/templates/.claude/commands/review-plan.en.md +1 -1
  367. package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
  368. package/templates/.claude/commands/watch-pr.en.md +1 -1
  369. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  370. package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
  371. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
  372. package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
  373. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
  374. package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
  375. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
  376. package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
  377. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
  378. package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
  379. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
  380. package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
  381. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
  382. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
  383. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
  384. package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
  385. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
  386. package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
  387. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
  388. package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
  389. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
  390. package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
  391. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
  392. package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
  393. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
  394. package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
  395. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
  396. package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
  397. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
  398. package/templates/.git-hooks/check-large-files.cjs +92 -0
  399. package/templates/.git-hooks/check-version-format.sh +5 -1
  400. package/templates/.git-hooks/pre-commit +1 -0
  401. package/templates/.opencode/commands/analyze-task.en.md +1 -1
  402. package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
  403. package/templates/.opencode/commands/check-task.en.md +1 -1
  404. package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
  405. package/templates/.opencode/commands/code-task.en.md +1 -1
  406. package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
  407. package/templates/.opencode/commands/commit.en.md +2 -0
  408. package/templates/.opencode/commands/commit.zh-CN.md +2 -0
  409. package/templates/.opencode/commands/complete-task.en.md +1 -1
  410. package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
  411. package/templates/.opencode/commands/plan-task.en.md +1 -1
  412. package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
  413. package/templates/.opencode/commands/review-analysis.en.md +1 -1
  414. package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
  415. package/templates/.opencode/commands/review-code.en.md +1 -1
  416. package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
  417. package/templates/.opencode/commands/review-plan.en.md +1 -1
  418. package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
  419. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +0 -40
  420. package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
  421. package/templates/.agents/scripts/review-diff-fingerprint.js +0 -170
  422. package/templates/.agents/scripts/workflow-warnings.js +0 -290
  423. package/templates/.agents/skills/code-task/scripts/detect-mode.js +0 -257
  424. package/templates/.agents/skills/release/scripts/manage-milestones.github.sh +0 -80
  425. package/templates/.agents/skills/release/scripts/manage-milestones.sh +0 -6
@@ -12,16 +12,16 @@ After `create-pr`, continuously watch the PR's required CI checks: when everythi
12
12
  ## Behavior Boundaries / Key Rules
13
13
 
14
14
  - Only watch + self-heal the current PR's required checks; make no changes unrelated to the failing check.
15
- - Self-heal modifies code and `git push`es to the PR branch, but **local tests for the affected area must pass before pushing**; fix attempts have a hard cap (default 2); only self-heal locatable code-layer failures (lint / format / test / type / build), and always route non-code failures (network / permission / external service / flaky) to the help exit.
15
+ - Self-heal publishes through Git workflow intents, but **affected tests must pass first**; the attempt cap and code-layer authorization remain unchanged.
16
16
  - The help exit is "produce-then-stop": end this round, output the blocker explanation, and wait for the user to trigger the next step — **never** ask mid-flow.
17
- - Bare numbers / `#NN` / `TASK-id` arguments are always resolved as task short ids (see `.agents/rules/task-short-id.md`); a PR number is passed only via `--pr <number>` / a PR URL / omission (current branch), never reusing the bare-number syntax.
17
+ - Bare numbers / `NN` / `TASK-id` arguments are always resolved as task short ids (see `.agents/rules/task-short-id.md`); a PR number is passed only via `--pr <number>` / a PR URL / omission (current branch), never reusing the bare-number syntax.
18
18
  - After running this skill (task-anchored path), you must update task.md.
19
19
 
20
20
  Version stamp rule: before creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` and write or refresh `agent_infra_version`.
21
21
 
22
- ## Task Argument Short-ID Alias
22
+ ## Task Context Resolution
23
23
 
24
- > If the `{task-id}` argument matches `^[#]?[0-9]+$` (a bare number or `#`-prefixed), first read the "SKILL argument parsing" section of `.agents/rules/task-short-id.md` to resolve it; subsequent commands treat `{task-id}` as the resolved full `TASK-YYYYMMDD-HHMMSS` form.
24
+ > Keep `--pr <number>` and PR URLs on the existing PR-anchored path. Otherwise, the task path may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments, then call `agent-infra-internal task-context resolve {task-scope}` and bind `{task-id}` to the returned full `taskId`. A PR anchor and task scope are mutually exclusive.
25
25
 
26
26
  ## Step Start: Write the started Marker
27
27
 
@@ -39,22 +39,22 @@ After prerequisites pass and before this round's first artifact action, append a
39
39
 
40
40
  Resolve the target PR number `{pr#}` and an optional `{task-id}` via these deterministic branches:
41
41
 
42
- - Scenario A (argument omitted): use the current branch's PR number per `.agents/rules/pr-checks-commands.md`; then determine `{task-id}` via "Reverse-lookup task" below.
43
- - Scenario B (`#NN` / bare number / `TASK-id`, **task-anchored primary path**): when matching `^[#]?[0-9]+$`, resolve to the full `{task-id}` via "Task Argument Short-ID Alias" (on failure pass through the exit code; do not rewrite error handling); a `TASK-id` is used directly. Read `.agents/workspace/active/{task-id}/task.md` for `pr_number` as `{pr#}`; if `pr_number` is empty, follow "Error Handling" to prompt running `create-pr` first, then stop.
42
+ - Scenario A (argument omitted): reverse-lookup the active task from the current branch, then read its `pr_number`.
43
+ - Scenario B (omitted task ref, positional task ref, or `--task/-t`, **task-anchored primary path**): resolve the full `{task-id}` via "Task Context Resolution" and read `.agents/workspace/active/{task-id}/task.md` for `pr_number` as `{pr#}`; if `pr_number` is empty, follow "Error Handling" to prompt running `create-pr` first, then stop.
44
44
  - Scenario C (`--pr <number>` or a PR URL): use that PR number directly as `{pr#}`; then determine `{task-id}` via "Reverse-lookup task".
45
- - Reverse-lookup task (scenarios A / C): search `.agents/workspace/active/*/task.md` for a task whose `pr_number == {pr#}`; on a hit, take that `{task-id}` (task-anchored); on a miss, enter the "watch-only" degraded path (no `{task-id}`, skip steps 5/6).
45
+ - Reverse-lookup task (scenarios A / C): use task context/query capabilities to find the unique active task bound to `{pr#}`. If none exists, stop and request binding first; the typed checks intent does not create a second taskless state machine.
46
46
 
47
47
  ### 2. Watch Required Checks
48
48
 
49
49
  Before running this step, read `reference/monitor-and-heal.md` and `.agents/rules/pr-checks-commands.md`.
50
50
 
51
- Using the watch command in `.agents/rules/pr-checks-commands.md`, poll `{pr#}`'s required checks (with an overall time cap, default 30 minutes), and classify the outcome per the "Outcome Classification" of `reference/monitor-and-heal.md` into the "all green" / "failure" / "pending" scenarios, routing to step 7 (green exit), step 3 (self-heal), or step 4 (help exit) respectively.
51
+ Initialize the in-memory list `repairCommits=[]` for this run. Run `agent-infra-internal platform-checks watch {task-id} --interval-seconds 30 --deadline-seconds 1800`, then route its structured `checks.state` to the all-green, failure, or pending path.
52
52
 
53
53
  ### 3. Failure Self-Heal Loop
54
54
 
55
55
  Before running this step, read the "Self-Heal Decision Tree" of `reference/monitor-and-heal.md` and "Resolve a Failing Run id and Pull Logs" of `.agents/rules/pr-checks-commands.md`.
56
56
 
57
- For a failing check: first deterministically resolve its failing run and pull the failure logs per the rule, then classify the failure; before making any local fix, read `.agents/rules/debugging-guide.md` and locate the root cause via its four-phase flow, never blindly patching and retrying; only when it is a locatable code-layer failure, make a minimal local fix, run the relevant tests until they pass, then **stage, commit, and push the fix** (`git add` only the related files → `git commit` per `.agents/rules/commit-and-pr.md` → `git push` to the current PR branch, recording the commit SHA), and return to step 2 to re-watch. Count fix attempts; on reaching the hard cap (default 2) or when the run is unlocatable, go to step 4.
57
+ For a locatable code-layer failure, make the minimum fix and run relevant tests. Then call `git-workflow commit` and `git-workflow push`; append only a remotely verified SHA to `repairCommits`.
58
58
 
59
59
  ### 4. Help Exit (Produce-Then-Stop)
60
60
 
@@ -77,7 +77,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
77
77
  - **Do not change** `pr_status` (keep `created`) or `current_step`
78
78
  - **Append** to `## Activity Log` (do not overwrite prior entries; `{N}` = number of existing Watch PR entries for this task + 1):
79
79
  ```
80
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {green: all required checks green / blocked: blocked: {summary}}
80
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {green: all required checks green, repair commits: {k} [{SHA summary}] / blocked: blocked: {summary}}
81
81
  ```
82
82
 
83
83
  ### 6. Verification Gate
@@ -87,7 +87,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
87
87
  Run the verification gate:
88
88
 
89
89
  ```bash
90
- node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active/{task-id} --format text
90
+ agent-infra-internal task-verify {task-id} watch-pr.completed --format text
91
91
  ```
92
92
 
93
93
  Handle the result:
@@ -101,10 +101,12 @@ Keep the gate output in your reply as the verification evidence. Without current
101
101
 
102
102
  > On the task-anchored path, execute this step only after the gate passes.
103
103
 
104
- > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name). Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the short id `#NN` (falling back to the full TASK-id when unallocated or released); (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
104
+ > **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name). Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the short id `NN` (falling back to the full TASK-id when unallocated or released); (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
105
105
 
106
106
  Output per scenario:
107
- - "All green" + task-anchored: state that all required checks passed and the PR is ready to merge, then render the next step from the template below (`{task-ref}` becomes the short id):
107
+ - "All green" + task-anchored: state that all required checks passed, then render exactly one exit based on whether this run created repair commits (`{task-ref}` becomes the short id):
108
+
109
+ `repairCommits.length == 0`:
108
110
 
109
111
  ```
110
112
  Next step - Complete and archive the task:
@@ -113,7 +115,15 @@ Output per scenario:
113
115
  - Codex CLI: $complete-task {task-ref}
114
116
  ```
115
117
 
116
- - "All green" + watch-only: state the PR is ready to merge; there is no linked task this run, so run `complete-task` against the relevant task (do not force a short-id command block when no `{task-ref}` is available).
118
+ `repairCommits.length > 0`:
119
+
120
+ ```
121
+ Next step - Re-run code review:
122
+ - Claude Code / OpenCode: /review-code {task-ref}
123
+ - Gemini CLI: /{{project}}:review-code {task-ref}
124
+ - Codex CLI: $review-code {task-ref}
125
+ ```
126
+
117
127
  - "Blocked": output only the step 4 blocker explanation; do not recommend a next-step command.
118
128
 
119
129
  ## Completion Checklist
@@ -12,16 +12,16 @@ description: >
12
12
  ## 行为边界 / 关键规则
13
13
 
14
14
  - 仅监控 + 自愈当前 PR 的 required checks;不做与失败 check 无关的改动。
15
- - 自愈会修改业务代码并 `git push` 到 PR 分支,但**推送前必须本地跑通相关测试**;修复尝试有硬上限(默认 2);仅对可定位的代码层失败(lint / format / test / 类型 / 构建)自愈,非代码层(网络 / 权限 / 外部服务 / flaky)一律转求助出口。
15
+ - 自愈通过 Git workflow intent 发布修复,但**发布前必须本地跑通相关测试**;修复上限与代码层分类授权不变。
16
16
  - 求助出口是「产出后停止」语义:停止本轮、输出阻塞说明、等待用户主动触发,**不**中途提问。
17
- - 裸数字 / `#NN` / `TASK-id` 入参一律按任务短号解析(见 `.agents/rules/task-short-id.md`);PR 号只走 `--pr <number>` / PR URL / 省略(当前分支),不复用裸数字语法。
17
+ - 裸数字 / `NN` / `TASK-id` 入参一律按任务短号解析(见 `.agents/rules/task-short-id.md`);PR 号只走 `--pr <number>` / PR URL / 省略(当前分支),不复用裸数字语法。
18
18
  - 执行本技能(任务锚定路径)后,必须更新 task.md。
19
19
 
20
20
  版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
21
21
 
22
- ## 任务入参短号别名
22
+ ## 任务上下文解析
23
23
 
24
- > 如果 `{task-id}` 入参匹配 `^[#]?[0-9]+$`(裸数字或带 `#` 前缀),先读取 `.agents/rules/task-short-id.md` 的「SKILL 入参解析」段执行解析;后续命令视 `{task-id}` 为解析后的全长 `TASK-YYYYMMDD-HHMMSS` 形式。
24
+ > 入口允许省略 task ref,也接受旧位置 task ref 或 `--task <ref>` / `-t <ref>`。先从完整参数中分离 task scope 并原样保留其他业务操作数,再调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空、位置 ref 或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为该完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
25
25
 
26
26
  ## 步骤开始:写入 started 标记
27
27
 
@@ -39,22 +39,22 @@ description: >
39
39
 
40
40
  按以下确定性分支解析出目标 PR 号 `{pr#}` 与可选 `{task-id}`:
41
41
 
42
- - 场景 A(省略入参):按 `.agents/rules/pr-checks-commands.md` 取当前分支的 PR 号;随后按下方「反查任务」确定 `{task-id}`。
43
- - 场景 B(`#NN` / 裸数字 / `TASK-id`,**任务锚定主路径**):匹配 `^[#]?[0-9]+$` 时按「任务入参短号别名」解析为完整 `{task-id}`(解析失败直接透传退出码,不重写错误处理);`TASK-id` 直接采用。读 `.agents/workspace/active/{task-id}/task.md` 取 `pr_number` 作为 `{pr#}`;`pr_number` 为空时按「错误处理」提示先 `create-pr`,停止。
42
+ - 场景 A(省略入参):从当前分支反查 active task;定位后读取其 `pr_number`。
43
+ - 场景 B(省略 task ref、旧位置 task ref 或 `--task/-t`,**任务锚定主路径**):按「任务上下文解析」取得完整 `{task-id}`。读 `.agents/workspace/active/{task-id}/task.md` 取 `pr_number` 作为 `{pr#}`;`pr_number` 为空时按「错误处理」提示先 `create-pr`,停止。
44
44
  - 场景 C(`--pr <number>` 或 PR URL):直接取该 PR 号为 `{pr#}`;随后按「反查任务」确定 `{task-id}`。
45
- - 反查任务(场景 A / C):在 `.agents/workspace/active/*/task.md` 中查找 `pr_number == {pr#}` 的任务;命中则取该 `{task-id}`(任务锚定);未命中则进入「仅监控」降级路径(无 `{task-id}`,跳过步骤 5/6)。
45
+ - 反查任务(场景 A / C):通过任务上下文/任务查询取得与 `{pr#}` 唯一绑定的 active task。未命中时停止并提示先绑定 PR;typed checks intent 不建立第二套无任务状态机。
46
46
 
47
47
  ### 2. 监控 required checks
48
48
 
49
49
  执行此步骤前,先读取 `reference/monitor-and-heal.md` 与 `.agents/rules/pr-checks-commands.md`。
50
50
 
51
- 按 `.agents/rules/pr-checks-commands.md` 的监控命令对 `{pr#}` 的 required checks 轮询(含总时长上限,默认 30 分钟),按 `reference/monitor-and-heal.md` 的「结果分类」分为「全绿」/「失败」/「挂起」三个场景,分别进入步骤 7 全绿出口、步骤 3 自愈、或步骤 4 求助。
51
+ 进入本轮时初始化内存列表 `repairCommits=[]`。调用 `agent-infra-internal platform-checks watch {task-id} --interval-seconds 30 --deadline-seconds 1800`,按结构化 `checks.state` 分为「全绿」/「失败」/「挂起」,分别进入步骤 7、步骤 3 或步骤 4。
52
52
 
53
53
  ### 3. 失败自愈循环
54
54
 
55
55
  执行此步骤前,先读取 `reference/monitor-and-heal.md` 的「自愈决策树」与 `.agents/rules/pr-checks-commands.md` 的「解析失败 run id 并拉日志」。
56
56
 
57
- 对失败 check:先按规则确定性解析其失败 run 并拉取失败日志、判定失败类别;本地修复前先读取 `.agents/rules/debugging-guide.md`,按其四阶段流程定位根因,禁止盲目改代码重试;仅当属可定位的代码层失败时,本地最小化修复、运行对应测试通过后**暂存并提交本次修复再推送**(`git add` 仅相关文件 → 按 `.agents/rules/commit-and-pr.md` `git commit` → `git push` 到当前 PR 分支,并记录 commit SHA),再回到步骤 2 重新监控。修复尝试计数,达硬上限(默认 2)或 run 不可定位 → 转步骤 4。
57
+ 只对可定位代码层失败最小修复并测试;通过后依次调用 `git-workflow commit` 与 `git-workflow push`,仅记录远端复核成功的 SHA。达硬上限或 run 不可定位时转步骤 4。
58
58
 
59
59
  ### 4. 求助出口(产出后停止)
60
60
 
@@ -77,7 +77,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
77
77
  - **不改** `pr_status`(保持 `created`)与 `current_step`
78
78
  - **追加**到 `## 活动日志`(不要覆盖之前的记录;`{N}` = 本任务已有 Watch PR 条目数 + 1):
79
79
  ```
80
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {全绿:all required checks green / 阻塞:blocked: {简述}}
80
+ - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {全绿:all required checks green, repair commits: {k} [{sha 摘要}] / 阻塞:blocked: {简述}}
81
81
  ```
82
82
 
83
83
  ### 6. 完成校验
@@ -87,7 +87,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
87
87
  运行完成校验:
88
88
 
89
89
  ```bash
90
- node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active/{task-id} --format text
90
+ agent-infra-internal task-verify {task-id} watch-pr.completed --format text
91
91
  ```
92
92
 
93
93
  处理结果:
@@ -101,10 +101,12 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
101
101
 
102
102
  > 任务锚定路径仅在校验通过后执行本步骤。
103
103
 
104
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号 `#NN`(未分配/已释放时回退完整 TASK-id);(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
104
+ > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号 `NN`(未分配/已释放时回退完整 TASK-id);(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
105
105
 
106
106
  按场景输出:
107
- - 「全绿」+ 任务锚定:说明所有 required checks 已通过、PR 可合入,并按下方模板渲染下一步(`{task-ref}` 替换为短号):
107
+ - 「全绿」+ 任务锚定:说明所有 required checks 已通过,并只按本轮是否产生修复 commit 渲染一个出口(`{task-ref}` 替换为短号):
108
+
109
+ `repairCommits.length == 0`:
108
110
 
109
111
  ```
110
112
  下一步 - 完成并归档任务:
@@ -113,7 +115,15 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
113
115
  - Codex CLI:$complete-task {task-ref}
114
116
  ```
115
117
 
116
- - 「全绿」+ 仅监控降级:说明 PR 可合入;本次无关联任务,请对相应任务运行 `complete-task`(无 `{task-ref}` 可渲染时不强行输出短号命令块)。
118
+ `repairCommits.length > 0`:
119
+
120
+ ```
121
+ 下一步 - 重新代码审查:
122
+ - Claude Code / OpenCode:/review-code {task-ref}
123
+ - Gemini CLI:/{{project}}:review-code {task-ref}
124
+ - Codex CLI:$review-code {task-ref}
125
+ ```
126
+
117
127
  - 「阻塞」:仅输出步骤 4 的阻塞说明,不推荐下一步命令。
118
128
 
119
129
  ## 完成检查清单
@@ -127,7 +137,7 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
127
137
 
128
138
  ## 停止
129
139
 
130
- 完成检查清单后立即停止。全绿出口等待用户运行 `complete-task`;阻塞出口等待用户裁定。
140
+ 完成检查清单后立即停止。全绿出口等待用户运行所选的 `complete-task` 或 `review-code`;阻塞出口等待用户裁定。
131
141
 
132
142
  ## 注意事项
133
143
 
@@ -15,8 +15,7 @@
15
15
  ]
16
16
  },
17
17
  "activity-log": {
18
- "expected_action_pattern": "(Watch PR|Watching PR) \\(Round \\d+\\)",
19
- "freshness_minutes": 30
18
+ "expected_action_pattern": "(Watch PR|Watching PR) \\(Round \\d+\\)"
20
19
  }
21
20
  }
22
21
  }
@@ -30,8 +30,8 @@ For each failing check, decide "self-heal" vs "ask for help" in this order:
30
30
  - Before fixing, run `git status -s` to record the working tree and ensure only changes related to this failure are included.
31
31
  - Locate and make a minimal fix per the logs (touch only code / tests / config related to that failure).
32
32
  - Run the relevant tests: prefer the local command for the failing job; otherwise read the project `test` skill and select its declared core or full validation command. If neither command is known, ask for help. **Do not commit or push before tests pass.**
33
- - After tests pass, publish the fix: per `.agents/rules/commit-and-pr.md` stage only the related files (`git add <paths>`, avoid `git add -A` pulling in unrelated changes) → create the fix commit (`git commit`) → `git push` to the current PR branch.
34
- - Record the fix commit SHA, increment the fix count, and return to SKILL step 2 to re-watch.
33
+ - After tests pass, call `git-workflow commit` and `git-workflow push`, then verify the remote SHA.
34
+ - Append the fix commit SHA to this run's `repairCommits`, increment the fix count, and return to SKILL step 2. When checks turn green, an empty list routes to `complete-task`; a non-empty list routes to `review-code`.
35
35
  - Never make unrelated "drive-by" optimizations; never loosen / skip the failing assertion to "make it green".
36
36
 
37
37
  ## Help Report Template
@@ -30,8 +30,8 @@ unknown: help
30
30
  - 自愈前先 `git status -s` 记录当前工作树,确保后续只纳入与本次失败相关的改动。
31
31
  - 在本地按日志定位并最小化修复(只动与该失败相关的代码 / 测试 / 配置)。
32
32
  - 运行对应测试:优先失败 job 对应的本地命令;否则读取项目 `test` skill,选择其中声明的 core 或 full 验证命令。两者均未知时进入求助出口。**测试通过前不得提交或推送。**
33
- - 测试通过后发布修复:按 `.agents/rules/commit-and-pr.md` 仅暂存本次相关文件(`git add <相关路径>`,避免 `git add -A` 卷入无关改动)→ 创建修复 commit(`git commit`)→ `git push` 到当前 PR 分支。
34
- - 记录本次修复的 commit SHA,修复计数 +1,回到 SKILL 步骤 2 重新监控。
33
+ - 测试通过后发布修复:把相关路径、message 与 expected HEAD 写入 intent JSON,调用 `git-workflow commit`,再调用 `git-workflow push` 并复核远端 SHA。
34
+ - 将本次修复的 commit SHA 追加到当前运行的 `repairCommits`,修复计数 +1,回到 SKILL 步骤 2 重新监控;全绿时列表为空走 `complete-task`,非空走 `review-code`。
35
35
  - 绝不执行与失败无关的「顺手优化」;不放宽 / 跳过失败的断言来「修绿」。
36
36
 
37
37
  ## 求助报告模板
@@ -62,7 +62,12 @@ pr_status: pending # PR status: pending (default) | created (PR crea
62
62
 
63
63
  ## Human Rulings
64
64
 
65
- <!-- Humans record rulings for needs-human-decision decisions here and flip matching HD- rows in the Review Disagreement Ledger to human-decided. -->
65
+ <!-- Use ai decide <task-ref> <ordinal|ledger-id> [--needs-implementation true|false] <decision> for needs-human-decision rulings; code-stage rulings must explicitly declare whether implementation is required. -->
66
+
67
+ ## Implementation Inputs
68
+
69
+ | id | ledger_id | decision_evidence | stage | needs_implementation | decided_at | status | consumed_by |
70
+ |----|-----------|-------------------|-------|----------------------|------------|--------|-------------|
66
71
 
67
72
  ## Workflow Warnings
68
73
 
@@ -62,7 +62,12 @@ pr_status: pending # PR 状态:pending(默认)| created(已
62
62
 
63
63
  ## 人工裁决
64
64
 
65
- <!-- 人类在此记录对 needs-human-decision 决策的裁定,并把 ## 审查分歧账本 对应 HD- 行翻为 human-decided。 -->
65
+ <!-- 使用 ai decide <task-ref> <序号|账本ID> [--needs-implementation true|false] <裁决内容> 写入 needs-human-decision 裁定;code 阶段必须显式声明是否需要实现。 -->
66
+
67
+ ## 实现输入
68
+
69
+ | id | ledger_id | decision_evidence | stage | needs_implementation | decided_at | status | consumed_by |
70
+ |----|-----------|-------------------|-------|----------------------|------------|--------|-------------|
66
71
 
67
72
  ## 工作流告警
68
73
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Analyze a task and produce a requirements document"
3
- usage: "/analyze-task <task-id>"
3
+ usage: "/analyze-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the analyze-task skill from `.agents/skills/analyze-task/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "分析任务并输出需求分析文档"
3
- usage: "/analyze-task <task-id>"
3
+ usage: "/analyze-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/analyze-task/SKILL.md` 中的 analyze-task 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Mark a task as blocked and record the reason"
3
- usage: "/block-task <task-id> [reason]"
3
+ usage: "/block-task [task-ref | --task <ref>] [reason]"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "标记任务为阻塞状态并记录原因"
3
- usage: "/block-task <task-id> [reason]"
3
+ usage: "/block-task [task-ref | --task <ref>] [reason]"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Cancel a task and archive it"
3
- usage: "/cancel-task <task-id> <reason>"
3
+ usage: "/cancel-task [task-ref | --task <ref>] <reason>"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "取消任务并归档"
3
- usage: "/cancel-task <task-id> <reason>"
3
+ usage: "/cancel-task [task-ref | --task <ref>] <reason>"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Check a task's current status and progress"
3
- usage: "/check-task <task-id>"
3
+ usage: "/check-task [task-ref | --task <ref>]"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "查看任务的当前状态和进度"
3
- usage: "/check-task <task-id>"
3
+ usage: "/check-task [task-ref | --task <ref>]"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Code a task from its technical plan and output a report"
3
- usage: "/code-task <task-id>"
3
+ usage: "/code-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the code-task skill from `.agents/skills/code-task/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "根据技术方案编码任务并输出报告"
3
- usage: "/code-task <task-id>"
3
+ usage: "/code-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/code-task/SKILL.md` 中的 code-task 技能。
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Commit the current changes to Git"
3
+ usage: "/commit [task-ref | --task <ref>]"
3
4
  ---
4
5
 
5
6
  Read and execute the commit skill from `.agents/skills/commit/SKILL.md`.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "提交当前变更到 Git"
3
+ usage: "/commit [task-ref | --task <ref>]"
3
4
  ---
4
5
 
5
6
  读取并执行 `.agents/skills/commit/SKILL.md` 中的 commit 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Mark PR manual validation as completed and update the summary comment"
3
- usage: "/complete-manual-validation <task-id> [pr-ref] <verification-summary>"
3
+ usage: "/complete-manual-validation [task-ref | --task <ref>] [pr-ref] <verification-summary>"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "标记 PR 人工验证已完成并更新摘要评论"
3
- usage: "/complete-manual-validation <task-id> [pr-ref] <verification-summary>"
3
+ usage: "/complete-manual-validation [task-ref | --task <ref>] [pr-ref] <verification-summary>"
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Mark a task as completed and archive it"
3
- usage: "/complete-task <task-id>"
3
+ usage: "/complete-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the complete-task skill from `.agents/skills/complete-task/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "标记任务完成并归档"
3
- usage: "/complete-task <task-id>"
3
+ usage: "/complete-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/complete-task/SKILL.md` 中的 complete-task 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Create a Pull Request to a target branch"
3
- usage: "/create-pr [task-id] [target-branch]"
3
+ usage: "/create-pr [task-ref | --task <ref>] [target-branch]"
4
4
  ---
5
5
 
6
6
  Read and execute the create-pr skill from `.agents/skills/create-pr/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "创建 Pull Request 到目标分支"
3
- usage: "/create-pr [task-id] [target-branch]"
3
+ usage: "/create-pr [task-ref | --task <ref>] [target-branch]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/create-pr/SKILL.md` 中的 create-pr 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Design a technical plan for a task"
3
- usage: "/plan-task <task-id>"
3
+ usage: "/plan-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the plan-task skill from `.agents/skills/plan-task/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "为任务设计技术方案和实施计划"
3
- usage: "/plan-task <task-id>"
3
+ usage: "/plan-task [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/plan-task/SKILL.md` 中的 plan-task 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Review a requirement analysis report"
3
- usage: "/review-analysis <task-id>"
3
+ usage: "/review-analysis [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the review-analysis skill from `.agents/skills/review-analysis/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "审查需求分析报告"
3
- usage: "/review-analysis <task-id>"
3
+ usage: "/review-analysis [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/review-analysis/SKILL.md` 中的 review-analysis 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Review code implementation and output a code review report"
3
- usage: "/review-code <task-id>"
3
+ usage: "/review-code [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the review-code skill from `.agents/skills/review-code/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "审查代码实现并输出代码审查报告"
3
- usage: "/review-code <task-id>"
3
+ usage: "/review-code [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/review-code/SKILL.md` 中的 review-code 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Review a technical plan"
3
- usage: "/review-plan <task-id>"
3
+ usage: "/review-plan [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  Read and execute the review-plan skill from `.agents/skills/review-plan/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "审查技术方案"
3
- usage: "/review-plan <task-id>"
3
+ usage: "/review-plan [task-ref | --task <ref>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/review-plan/SKILL.md` 中的 review-plan 技能。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "Watch a PR's required checks and self-heal on failure"
3
- usage: "/watch-pr [task-id | --pr <number>]"
3
+ usage: "/watch-pr [task-ref | --task <ref> | --pr <number>]"
4
4
  ---
5
5
 
6
6
  Read and execute the watch-pr skill from `.agents/skills/watch-pr/SKILL.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: "监控 PR 的 required checks 并在失败时自愈"
3
- usage: "/watch-pr [task-id | --pr <number>]"
3
+ usage: "/watch-pr [task-ref | --task <ref> | --pr <number>]"
4
4
  ---
5
5
 
6
6
  读取并执行 `.agents/skills/watch-pr/SKILL.md` 中的 watch-pr 技能。
@@ -2,6 +2,8 @@ description = "Analyze a task and produce a requirements document"
2
2
  prompt = """
3
3
  Analyze task {{args}}.
4
4
 
5
+ Task scope may be omitted or explicitly overridden with `--task <ref>` / `-t <ref>`; dedicated anchors such as `--pr` retain their existing meaning.
6
+
5
7
  Read and execute the analyze-task skill from `.agents/skills/analyze-task/SKILL.md`.
6
8
 
7
9
  Follow all steps defined in the skill exactly.
@@ -2,6 +2,8 @@ description = "分析任务并输出需求分析文档"
2
2
  prompt = """
3
3
  分析任务 {{args}}。
4
4
 
5
+ 任务 scope 可省略,或通过 `--task <ref>` / `-t <ref>` 显式覆盖;`--pr` 等专用锚点保持原语义。
6
+
5
7
  读取并执行 `.agents/skills/analyze-task/SKILL.md` 中的 analyze-task 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Mark a task as blocked and record the reason"
2
2
  prompt = """
3
3
  Block task: {{args}}
4
4
 
5
+ Task scope may be omitted or explicitly overridden with `--task <ref>` / `-t <ref>`; dedicated anchors such as `--pr` retain their existing meaning.
6
+
5
7
  Read and execute the block-task skill from `.agents/skills/block-task/SKILL.md`.
6
8
 
7
9
  Follow all steps defined in the skill exactly.
@@ -2,6 +2,8 @@ description = "标记任务为阻塞状态并记录原因"
2
2
  prompt = """
3
3
  阻塞任务:{{args}}
4
4
 
5
+ 任务 scope 可省略,或通过 `--task <ref>` / `-t <ref>` 显式覆盖;`--pr` 等专用锚点保持原语义。
6
+
5
7
  读取并执行 `.agents/skills/block-task/SKILL.md` 中的 block-task 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Cancel a task and archive it"
2
2
  prompt = """
3
3
  Cancel task: {{args}}
4
4
 
5
+ Task scope may be omitted or explicitly overridden with `--task <ref>` / `-t <ref>`; dedicated anchors such as `--pr` retain their existing meaning.
6
+
5
7
  Read and execute the cancel-task skill from `.agents/skills/cancel-task/SKILL.md`.
6
8
 
7
9
  Follow all steps defined in the skill exactly.
@@ -2,6 +2,8 @@ description = "取消任务并归档"
2
2
  prompt = """
3
3
  取消任务:{{args}}
4
4
 
5
+ 任务 scope 可省略,或通过 `--task <ref>` / `-t <ref>` 显式覆盖;`--pr` 等专用锚点保持原语义。
6
+
5
7
  读取并执行 `.agents/skills/cancel-task/SKILL.md` 中的 cancel-task 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。