@fitlab-ai/agent-infra 0.8.5 → 0.9.1

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 (467) hide show
  1. package/README.md +6 -1
  2. package/README.zh-CN.md +5 -1
  3. package/bin/cli.ts +2 -2
  4. package/dist/bin/cli.js +2 -2
  5. package/dist/bin/internal-cli.js +103 -0
  6. package/dist/lib/decide.js +81 -90
  7. package/dist/lib/defaults.json +1 -0
  8. package/dist/lib/git/review-snapshot.js +79 -0
  9. package/dist/lib/git/workflow.js +101 -0
  10. package/dist/lib/internal/git-workflow.js +42 -0
  11. package/dist/lib/internal/platform-checks.js +119 -0
  12. package/dist/lib/internal/platform-comment.js +129 -0
  13. package/dist/lib/internal/platform-context.js +46 -0
  14. package/dist/lib/internal/platform-issue.js +142 -0
  15. package/dist/lib/internal/platform-pr.js +146 -0
  16. package/dist/lib/internal/platform-release-notes.js +53 -0
  17. package/dist/lib/internal/release-workflow.js +320 -0
  18. package/dist/lib/internal/task-artifact.js +67 -0
  19. package/dist/lib/internal/task-context.js +43 -0
  20. package/dist/lib/internal/task-event.js +70 -0
  21. package/dist/lib/internal/task-ledger.js +114 -0
  22. package/dist/lib/internal/task-lifecycle.js +58 -0
  23. package/dist/lib/internal/task-short-id.js +83 -0
  24. package/dist/lib/internal/task-snapshot.js +47 -0
  25. package/dist/lib/internal/task-verify.js +50 -0
  26. package/dist/lib/internal/task-warning.js +74 -0
  27. package/dist/lib/platform/adapters.js +14 -0
  28. package/dist/lib/platform/context.js +146 -0
  29. package/dist/lib/platform/github-client.js +124 -0
  30. package/dist/lib/platform/github-release-notes.js +96 -0
  31. package/dist/lib/platform/issue-comments.js +409 -0
  32. package/dist/lib/platform/issue-metadata.js +183 -0
  33. package/dist/lib/platform/issues.js +619 -0
  34. package/dist/lib/platform/merged-pr-equivalence.js +54 -0
  35. package/dist/lib/platform/metadata-labels.js +28 -0
  36. package/dist/lib/platform/pr-checks.js +216 -0
  37. package/dist/lib/platform/pr-summary.js +88 -0
  38. package/dist/lib/platform/pull-request-metadata.js +38 -0
  39. package/dist/lib/platform/pull-requests.js +340 -0
  40. package/dist/lib/platform/release-notes.js +143 -0
  41. package/dist/lib/platform/releases.js +82 -0
  42. package/dist/lib/platform/types.js +22 -0
  43. package/dist/lib/platform/verification-required.js +102 -0
  44. package/dist/lib/platform/verification-sync.js +1014 -0
  45. package/dist/lib/platform/verification.js +6 -0
  46. package/dist/lib/release/channels.js +31 -0
  47. package/dist/lib/release/workflow.js +32 -0
  48. package/dist/lib/render.js +3 -2
  49. package/dist/lib/run/index.js +24 -7
  50. package/dist/lib/sandbox/build-proxy.js +63 -0
  51. package/dist/lib/sandbox/capture.js +25 -3
  52. package/dist/lib/sandbox/commands/create.js +93 -31
  53. package/dist/lib/sandbox/commands/enter.js +34 -11
  54. package/dist/lib/sandbox/commands/list-running.js +10 -8
  55. package/dist/lib/sandbox/commands/rebuild.js +24 -7
  56. package/dist/lib/sandbox/commands/show.js +2 -2
  57. package/dist/lib/sandbox/commands/start.js +53 -15
  58. package/dist/lib/sandbox/image-build.js +2 -1
  59. package/dist/lib/sandbox/index.js +6 -6
  60. package/dist/lib/sandbox/mounts.js +36 -0
  61. package/dist/lib/sandbox/recovery.js +562 -0
  62. package/dist/lib/sandbox/runtimes/ai-tools.dockerfile +24 -3
  63. package/dist/lib/sandbox/runtimes/base.dockerfile +8 -1
  64. package/dist/lib/sandbox/runtimes/java17.dockerfile +8 -1
  65. package/dist/lib/sandbox/runtimes/java21.dockerfile +8 -1
  66. package/dist/lib/sandbox/runtimes/node20.dockerfile +8 -1
  67. package/dist/lib/sandbox/runtimes/node22.dockerfile +8 -1
  68. package/dist/lib/sandbox/runtimes/python3.dockerfile +8 -1
  69. package/dist/lib/sandbox/shell.js +2 -1
  70. package/dist/lib/sandbox/task-resolver.js +5 -1
  71. package/dist/lib/sandbox/tools.js +19 -0
  72. package/dist/lib/server/protocol.js +5 -5
  73. package/dist/lib/task/activity-log.js +61 -0
  74. package/dist/lib/task/artifact-lifecycle.js +427 -0
  75. package/dist/lib/task/command-options.js +30 -0
  76. package/dist/lib/task/commands/cat.js +36 -6
  77. package/dist/lib/task/commands/decisions.js +80 -46
  78. package/dist/lib/task/commands/files.js +21 -7
  79. package/dist/lib/task/commands/grep.js +55 -7
  80. package/dist/lib/task/commands/issue-body.js +33 -19
  81. package/dist/lib/task/commands/log.js +27 -70
  82. package/dist/lib/task/commands/show.js +20 -7
  83. package/dist/lib/task/commands/status.js +18 -8
  84. package/dist/lib/task/decision-intents.js +154 -0
  85. package/dist/lib/task/decision-items.js +53 -0
  86. package/dist/lib/task/events.js +318 -0
  87. package/dist/lib/task/frontmatter.js +159 -1
  88. package/dist/lib/task/implementation-inputs.js +117 -0
  89. package/dist/lib/task/index.js +12 -9
  90. package/dist/lib/task/issue-form.js +21 -6
  91. package/dist/lib/task/ledger-intents.js +185 -0
  92. package/dist/lib/task/ledger.js +65 -35
  93. package/dist/lib/task/lifecycle.js +484 -0
  94. package/dist/lib/task/resolve-ref.js +152 -32
  95. package/dist/lib/task/review-artifacts.js +101 -0
  96. package/dist/lib/task/review-fingerprint.js +55 -0
  97. package/dist/lib/task/sections.js +358 -4
  98. package/dist/lib/task/short-id.js +292 -7
  99. package/dist/lib/task/snapshot.js +95 -0
  100. package/dist/lib/task/verification-checks.js +8 -0
  101. package/dist/lib/task/verification-config.js +14 -0
  102. package/dist/lib/task/verification-engine.js +923 -0
  103. package/dist/lib/task/verification-review.js +3 -0
  104. package/dist/lib/task/verification-types.js +2 -0
  105. package/dist/lib/task/verification.js +113 -0
  106. package/dist/lib/task/workflow-warning-intents.js +131 -0
  107. package/dist/lib/task/workflow-warnings.js +10 -78
  108. package/dist/lib/task/write.js +241 -0
  109. package/lib/decide.ts +57 -97
  110. package/lib/defaults.json +1 -0
  111. package/lib/git/review-snapshot.ts +73 -0
  112. package/lib/git/workflow.ts +101 -0
  113. package/lib/internal/git-workflow.ts +37 -0
  114. package/lib/internal/platform-checks.ts +101 -0
  115. package/lib/internal/platform-comment.ts +99 -0
  116. package/lib/internal/platform-context.ts +33 -0
  117. package/lib/internal/platform-issue.ts +116 -0
  118. package/lib/internal/platform-pr.ts +119 -0
  119. package/lib/internal/platform-release-notes.ts +55 -0
  120. package/lib/internal/release-workflow.ts +288 -0
  121. package/lib/internal/task-artifact.ts +47 -0
  122. package/lib/internal/task-context.ts +35 -0
  123. package/lib/internal/task-event.ts +51 -0
  124. package/lib/internal/task-ledger.ts +86 -0
  125. package/lib/internal/task-lifecycle.ts +41 -0
  126. package/lib/internal/task-short-id.ts +55 -0
  127. package/lib/internal/task-snapshot.ts +32 -0
  128. package/lib/internal/task-verify.ts +33 -0
  129. package/lib/internal/task-warning.ts +50 -0
  130. package/lib/platform/adapters.ts +30 -0
  131. package/lib/platform/context.ts +164 -0
  132. package/lib/platform/github-client.ts +146 -0
  133. package/lib/platform/github-release-notes.ts +132 -0
  134. package/lib/platform/issue-comments.ts +479 -0
  135. package/lib/platform/issue-metadata.ts +250 -0
  136. package/lib/platform/issues.ts +693 -0
  137. package/lib/platform/merged-pr-equivalence.ts +70 -0
  138. package/lib/platform/metadata-labels.ts +33 -0
  139. package/lib/platform/pr-checks.ts +247 -0
  140. package/lib/platform/pr-summary.ts +90 -0
  141. package/lib/platform/pull-request-metadata.ts +69 -0
  142. package/lib/platform/pull-requests.ts +386 -0
  143. package/lib/platform/release-notes.ts +167 -0
  144. package/lib/platform/releases.ts +71 -0
  145. package/lib/platform/types.ts +74 -0
  146. package/lib/platform/verification-required.ts +109 -0
  147. package/{runtime/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +198 -367
  148. package/lib/platform/verification.ts +11 -0
  149. package/lib/release/channels.ts +30 -0
  150. package/lib/release/workflow.ts +31 -0
  151. package/lib/render.ts +3 -2
  152. package/lib/run/index.ts +25 -7
  153. package/lib/sandbox/build-proxy.ts +94 -0
  154. package/lib/sandbox/capture.ts +29 -3
  155. package/lib/sandbox/commands/create.ts +120 -36
  156. package/lib/sandbox/commands/enter.ts +38 -11
  157. package/lib/sandbox/commands/list-running.ts +10 -8
  158. package/lib/sandbox/commands/rebuild.ts +29 -7
  159. package/lib/sandbox/commands/show.ts +2 -2
  160. package/lib/sandbox/commands/start.ts +50 -16
  161. package/lib/sandbox/image-build.ts +4 -1
  162. package/lib/sandbox/index.ts +6 -6
  163. package/lib/sandbox/mounts.ts +55 -0
  164. package/lib/sandbox/recovery.ts +828 -0
  165. package/lib/sandbox/runtimes/ai-tools.dockerfile +24 -3
  166. package/lib/sandbox/runtimes/base.dockerfile +8 -1
  167. package/lib/sandbox/runtimes/java17.dockerfile +8 -1
  168. package/lib/sandbox/runtimes/java21.dockerfile +8 -1
  169. package/lib/sandbox/runtimes/node20.dockerfile +8 -1
  170. package/lib/sandbox/runtimes/node22.dockerfile +8 -1
  171. package/lib/sandbox/runtimes/python3.dockerfile +8 -1
  172. package/lib/sandbox/shell.ts +3 -1
  173. package/lib/sandbox/task-resolver.ts +5 -1
  174. package/lib/sandbox/tools.ts +31 -0
  175. package/lib/server/protocol.ts +5 -5
  176. package/lib/task/activity-log.ts +62 -0
  177. package/lib/task/artifact-lifecycle.ts +484 -0
  178. package/lib/task/command-options.ts +32 -0
  179. package/lib/task/commands/cat.ts +22 -9
  180. package/lib/task/commands/decisions.ts +49 -47
  181. package/lib/task/commands/files.ts +14 -6
  182. package/lib/task/commands/grep.ts +34 -7
  183. package/lib/task/commands/issue-body.ts +26 -21
  184. package/lib/task/commands/log.ts +17 -70
  185. package/lib/task/commands/show.ts +14 -6
  186. package/lib/task/commands/status.ts +17 -7
  187. package/lib/task/decision-intents.ts +163 -0
  188. package/lib/task/decision-items.ts +64 -0
  189. package/lib/task/events.ts +320 -0
  190. package/lib/task/frontmatter.ts +202 -2
  191. package/lib/task/implementation-inputs.ts +137 -0
  192. package/lib/task/index.ts +12 -9
  193. package/lib/task/issue-form.ts +24 -6
  194. package/lib/task/ledger-intents.ts +201 -0
  195. package/lib/task/ledger.ts +77 -31
  196. package/lib/task/lifecycle.ts +458 -0
  197. package/lib/task/resolve-ref.ts +197 -36
  198. package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
  199. package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +26 -12
  200. package/lib/task/sections.ts +486 -4
  201. package/lib/task/short-id.ts +403 -9
  202. package/lib/task/snapshot.ts +143 -0
  203. package/lib/task/verification-checks.ts +9 -0
  204. package/lib/task/verification-config.ts +20 -0
  205. package/{templates/.agents/scripts/validate-artifact.js → lib/task/verification-engine.ts} +230 -421
  206. package/lib/task/verification-review.ts +10 -0
  207. package/lib/task/verification-types.ts +29 -0
  208. package/lib/task/verification.ts +156 -0
  209. package/lib/task/workflow-warning-intents.ts +142 -0
  210. package/lib/task/workflow-warnings.ts +10 -78
  211. package/lib/task/write.ts +468 -0
  212. package/package.json +4 -2
  213. package/templates/.agents/README.en.md +4 -3
  214. package/templates/.agents/README.zh-CN.md +4 -3
  215. package/templates/.agents/rules/README.en.md +6 -5
  216. package/templates/.agents/rules/README.zh-CN.md +6 -5
  217. package/templates/.agents/rules/create-issue.en.md +1 -1
  218. package/templates/.agents/rules/create-issue.github.en.md +5 -184
  219. package/templates/.agents/rules/create-issue.github.zh-CN.md +12 -178
  220. package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
  221. package/templates/.agents/rules/human-decision-context.en.md +36 -0
  222. package/templates/.agents/rules/human-decision-context.zh-CN.md +36 -0
  223. package/templates/.agents/rules/issue-fields.github.en.md +4 -148
  224. package/templates/.agents/rules/issue-fields.github.zh-CN.md +9 -144
  225. package/templates/.agents/rules/issue-pr-commands.en.md +43 -3
  226. package/templates/.agents/rules/issue-pr-commands.github.en.md +15 -220
  227. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +23 -213
  228. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +45 -3
  229. package/templates/.agents/rules/issue-sync.en.md +1 -1
  230. package/templates/.agents/rules/issue-sync.github.en.md +14 -301
  231. package/templates/.agents/rules/issue-sync.github.zh-CN.md +36 -287
  232. package/templates/.agents/rules/issue-sync.zh-CN.md +1 -1
  233. package/templates/.agents/rules/milestone-inference.en.md +1 -1
  234. package/templates/.agents/rules/milestone-inference.github.en.md +7 -119
  235. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +8 -108
  236. package/templates/.agents/rules/milestone-inference.zh-CN.md +1 -1
  237. package/templates/.agents/rules/next-step-output.en.md +12 -11
  238. package/templates/.agents/rules/next-step-output.zh-CN.md +12 -11
  239. package/templates/.agents/rules/no-mid-flow-questions.en.md +3 -3
  240. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +3 -3
  241. package/templates/.agents/rules/pr-checks-commands.en.md +16 -3
  242. package/templates/.agents/rules/pr-checks-commands.github.en.md +10 -54
  243. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +19 -47
  244. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +30 -3
  245. package/templates/.agents/rules/pr-sync.en.md +30 -3
  246. package/templates/.agents/rules/pr-sync.github.en.md +12 -115
  247. package/templates/.agents/rules/pr-sync.github.zh-CN.md +26 -104
  248. package/templates/.agents/rules/pr-sync.zh-CN.md +43 -3
  249. package/templates/.agents/rules/release-commands.en.md +2 -2
  250. package/templates/.agents/rules/release-commands.github.en.md +10 -40
  251. package/templates/.agents/rules/release-commands.github.zh-CN.md +9 -39
  252. package/templates/.agents/rules/release-commands.zh-CN.md +2 -2
  253. package/templates/.agents/rules/review-handshake.en.md +10 -6
  254. package/templates/.agents/rules/review-handshake.zh-CN.md +10 -6
  255. package/templates/.agents/rules/task-management.en.md +11 -2
  256. package/templates/.agents/rules/task-management.zh-CN.md +11 -3
  257. package/templates/.agents/rules/task-short-id.en.md +25 -29
  258. package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
  259. package/templates/.agents/rules/testing-discipline.en.md +20 -2
  260. package/templates/.agents/rules/testing-discipline.zh-CN.md +20 -2
  261. package/templates/.agents/scripts/lib/agent-infra-package.js +1 -9
  262. package/templates/.agents/scripts/task-short-id.js +71 -533
  263. package/templates/.agents/skills/analyze-task/SKILL.en.md +26 -56
  264. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +30 -60
  265. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
  266. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
  267. package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
  268. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
  269. package/templates/.agents/skills/block-task/config/verify.json +1 -2
  270. package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
  271. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
  272. package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
  273. package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
  274. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
  275. package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
  276. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
  277. package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
  278. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
  279. package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
  280. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
  281. package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
  282. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
  283. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
  284. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
  285. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
  286. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
  287. package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
  288. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
  289. package/templates/.agents/skills/commit/SKILL.en.md +13 -11
  290. package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -11
  291. package/templates/.agents/skills/commit/config/verify.json +1 -2
  292. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -11
  293. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -11
  294. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +4 -8
  295. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +4 -8
  296. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +6 -18
  297. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +5 -17
  298. package/templates/.agents/skills/commit/reference/task-status-update.en.md +13 -0
  299. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +13 -0
  300. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +13 -36
  301. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +13 -36
  302. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -3
  303. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -3
  304. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +10 -54
  305. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +10 -79
  306. package/templates/.agents/skills/complete-task/SKILL.en.md +59 -63
  307. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +59 -63
  308. package/templates/.agents/skills/complete-task/config/verify.en.json +10 -7
  309. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +10 -7
  310. package/templates/.agents/skills/create-pr/SKILL.en.md +19 -44
  311. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +19 -43
  312. package/templates/.agents/skills/create-pr/config/verify.json +1 -2
  313. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +8 -12
  314. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +7 -11
  315. package/templates/.agents/skills/create-release-note/SKILL.en.md +17 -38
  316. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +16 -37
  317. package/templates/.agents/skills/create-task/SKILL.en.md +16 -13
  318. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +16 -13
  319. package/templates/.agents/skills/create-task/config/verify.json +1 -2
  320. package/templates/.agents/skills/create-task/reference/context-capture.en.md +29 -0
  321. package/templates/.agents/skills/create-task/reference/context-capture.zh-CN.md +29 -0
  322. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  323. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  324. package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
  325. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  326. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  327. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
  328. package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
  329. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
  330. package/templates/.agents/skills/import-issue/config/verify.json +1 -2
  331. package/templates/.agents/skills/plan-task/SKILL.en.md +17 -42
  332. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +22 -49
  333. package/templates/.agents/skills/plan-task/config/verify.en.json +1 -3
  334. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -3
  335. package/templates/.agents/skills/post-release/SKILL.en.md +11 -81
  336. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +8 -78
  337. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  338. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  339. package/templates/.agents/skills/release/SKILL.en.md +16 -163
  340. package/templates/.agents/skills/release/SKILL.zh-CN.md +15 -162
  341. package/templates/.agents/skills/restore-task/SKILL.en.md +11 -29
  342. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -29
  343. package/templates/.agents/skills/restore-task/config/verify.json +1 -2
  344. package/templates/.agents/skills/review-analysis/SKILL.en.md +13 -25
  345. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +13 -33
  346. package/templates/.agents/skills/review-analysis/config/verify.en.json +3 -4
  347. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +3 -4
  348. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +9 -12
  349. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +9 -12
  350. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +9 -2
  351. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +9 -2
  352. package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +7 -0
  353. package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +7 -0
  354. package/templates/.agents/skills/review-code/SKILL.en.md +22 -36
  355. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +23 -41
  356. package/templates/.agents/skills/review-code/config/verify.en.json +3 -4
  357. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +3 -4
  358. package/templates/.agents/skills/review-code/reference/output-templates.en.md +56 -18
  359. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +56 -18
  360. package/templates/.agents/skills/review-code/reference/report-template.en.md +11 -4
  361. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +11 -4
  362. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +7 -0
  363. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +7 -0
  364. package/templates/.agents/skills/review-plan/SKILL.en.md +13 -25
  365. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +13 -33
  366. package/templates/.agents/skills/review-plan/config/verify.en.json +3 -4
  367. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +3 -4
  368. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +9 -12
  369. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +9 -12
  370. package/templates/.agents/skills/review-plan/reference/report-template.en.md +9 -2
  371. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +9 -2
  372. package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +7 -0
  373. package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +7 -0
  374. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +1 -2
  375. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +1 -2
  376. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +3 -15
  377. package/templates/.agents/skills/watch-pr/SKILL.en.md +24 -14
  378. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +25 -15
  379. package/templates/.agents/skills/watch-pr/config/verify.json +1 -2
  380. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +2 -2
  381. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +2 -2
  382. package/templates/.agents/templates/task.en.md +24 -1
  383. package/templates/.agents/templates/task.zh-CN.md +24 -1
  384. package/templates/.claude/commands/analyze-task.en.md +1 -1
  385. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  386. package/templates/.claude/commands/block-task.en.md +1 -1
  387. package/templates/.claude/commands/block-task.zh-CN.md +1 -1
  388. package/templates/.claude/commands/cancel-task.en.md +1 -1
  389. package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
  390. package/templates/.claude/commands/check-task.en.md +1 -1
  391. package/templates/.claude/commands/check-task.zh-CN.md +1 -1
  392. package/templates/.claude/commands/code-task.en.md +1 -1
  393. package/templates/.claude/commands/code-task.zh-CN.md +1 -1
  394. package/templates/.claude/commands/commit.en.md +1 -0
  395. package/templates/.claude/commands/commit.zh-CN.md +1 -0
  396. package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
  397. package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
  398. package/templates/.claude/commands/complete-task.en.md +1 -1
  399. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  400. package/templates/.claude/commands/create-pr.en.md +1 -1
  401. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  402. package/templates/.claude/commands/plan-task.en.md +1 -1
  403. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  404. package/templates/.claude/commands/review-analysis.en.md +1 -1
  405. package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
  406. package/templates/.claude/commands/review-code.en.md +1 -1
  407. package/templates/.claude/commands/review-code.zh-CN.md +1 -1
  408. package/templates/.claude/commands/review-plan.en.md +1 -1
  409. package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
  410. package/templates/.claude/commands/watch-pr.en.md +1 -1
  411. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  412. package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
  413. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
  414. package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
  415. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
  416. package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
  417. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
  418. package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
  419. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
  420. package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
  421. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
  422. package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
  423. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
  424. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
  425. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
  426. package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
  427. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
  428. package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
  429. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
  430. package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
  431. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
  432. package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
  433. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
  434. package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
  435. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
  436. package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
  437. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
  438. package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
  439. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
  440. package/templates/.git-hooks/check-large-files.cjs +92 -0
  441. package/templates/.git-hooks/check-version-format.sh +5 -1
  442. package/templates/.git-hooks/pre-commit +1 -0
  443. package/templates/.opencode/commands/analyze-task.en.md +1 -1
  444. package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
  445. package/templates/.opencode/commands/check-task.en.md +1 -1
  446. package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
  447. package/templates/.opencode/commands/code-task.en.md +1 -1
  448. package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
  449. package/templates/.opencode/commands/commit.en.md +2 -0
  450. package/templates/.opencode/commands/commit.zh-CN.md +2 -0
  451. package/templates/.opencode/commands/complete-task.en.md +1 -1
  452. package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
  453. package/templates/.opencode/commands/plan-task.en.md +1 -1
  454. package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
  455. package/templates/.opencode/commands/review-analysis.en.md +1 -1
  456. package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
  457. package/templates/.opencode/commands/review-code.en.md +1 -1
  458. package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
  459. package/templates/.opencode/commands/review-plan.en.md +1 -1
  460. package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
  461. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +0 -40
  462. package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
  463. package/templates/.agents/scripts/review-diff-fingerprint.js +0 -170
  464. package/templates/.agents/scripts/workflow-warnings.js +0 -290
  465. package/templates/.agents/skills/code-task/scripts/detect-mode.js +0 -257
  466. package/templates/.agents/skills/release/scripts/manage-milestones.github.sh +0 -80
  467. package/templates/.agents/skills/release/scripts/manage-milestones.sh +0 -6
@@ -2,188 +2,41 @@
2
2
  name: release
3
3
  description: >
4
4
  执行版本发布流程。
5
- 当准备切出并发布新版本时使用。
5
+ 当准备切出并发布新版本时使用。参数:版本号(X.Y.Z)。
6
6
  ---
7
7
 
8
8
  # 版本发布
9
9
 
10
- 执行指定版本的版本发布流程。
10
+ 发布由事实驱动,并拆为独立授权的 prepare 与 publish。
11
11
 
12
- <!-- TODO: 根据你的项目发布流程调整以下步骤 -->
12
+ ## 1. 检查输入与 entropy 报告
13
13
 
14
- ## 执行流程
14
+ 确认 SemVer 和人工发布检查点已满足。
15
15
 
16
- ### 1. 解析并验证版本号
17
-
18
- 从参数中提取版本。必须匹配 `X.Y.Z` 格式。
19
-
20
- 解析组件:
21
- - MAJOR = X,MINOR = Y,PATCH = Z
22
- - 发布版本 = `X.Y.Z`
23
-
24
- 如果格式无效,报错:"Version format incorrect, expected X.Y.Z (e.g. 1.2.3)"
25
-
26
- ### 2. 验证工作区干净
16
+ ## 2. 检查事实
27
17
 
28
18
  ```bash
29
- git status --short
19
+ agent-infra-internal release-workflow inspect {version}
30
20
  ```
31
21
 
32
- 如果有未提交的变更,报错:"Workspace has uncommitted changes. Please commit or stash first."
33
-
34
- ### 3. 发布前验证
35
-
36
- <!-- TODO: 替换为你的项目发布前验证步骤 -->
37
-
38
- 运行所有在准备发布前必须通过的检查:
22
+ ## 3. 准备发布
39
23
 
40
24
  ```bash
41
- git branch --show-current
42
- # TODO: 替换为你的项目测试/构建验证命令
25
+ agent-infra-internal release-workflow prepare {version} --entropy-report {path}
43
26
  ```
44
27
 
45
- 验证要求:
46
- - 确认发布使用的是项目规定的分支
47
- - 运行你的发布流程要求的完整校验命令
48
-
49
- 处理规则:
50
- - 如果当前分支不符合预期,按项目策略输出警告或直接退出
51
- - 如果任何验证命令失败,停止发布流程并先修复问题
52
-
53
- ### 4. 更新版本引用
54
-
55
- <!-- TODO: 替换为你的项目版本更新步骤 -->
56
-
57
- 搜索项目文件中的版本引用并更新:
58
-
59
- ```bash
60
- # 查找包含版本引用的文件
61
- # 搜索当前版本模式
62
- # 更新版本字符串
63
- ```
28
+ prepare 后停止,不得隐式 publish。
64
29
 
65
- **常见需要更新的文件**:
66
- - `package.json`(Node.js)
67
- - `package-lock.json`(Node.js;更新 `package.json` 后运行 `npm install --package-lock-only` 同步锁文件)
68
- - `pom.xml`(Maven)
69
- - `setup.py` / `pyproject.toml`(Python)
70
- - `version.go`(Go)
71
- - `README.md`(文档)
72
- - `SECURITY.md` / `SECURITY.zh-CN.md`(支持版本表格)
73
-
74
- **排除以下目录的版本替换**:
75
- - `.agents/`、`.agents/workspace/`、`.claude/`、`.codex/`、`.gemini/`、`.opencode/`(AI 工具配置)
76
-
77
- 如果项目使用 `package-lock.json`,在更新 `package.json` 后运行 `npm install --package-lock-only`,确保锁文件中的版本号保持同步。
78
-
79
- ### 5. 重新生成构建产物
80
-
81
- <!-- TODO: 替换为你的项目产物重建步骤 -->
82
-
83
- 如果版本更新会影响生成文件、内嵌元数据或打包产物,现在重新生成它们:
84
-
85
- ```bash
86
- # TODO: 替换为你的项目构建/重建命令
87
- ```
88
-
89
- 执行要求:
90
- - 在更新版本引用后运行,确保生成产物使用最新版本号
91
- - 如果项目没有生成产物,请在项目特化版本中明确说明
92
- - 如果重建失败,停止发布流程并先修复构建问题
93
-
94
- ### 6. 创建发布提交
95
-
96
- ```bash
97
- git add -A
98
- git commit -m "chore: release v{version}"
99
- ```
30
+ ## 4. 独立发布
100
31
 
101
- ### 7. 创建 Git 标签
32
+ 仅在用户明确授权后执行:
102
33
 
103
34
  ```bash
104
- git tag v{version}
35
+ agent-infra-internal release-workflow publish {version}
105
36
  ```
106
37
 
107
- ### 8. 管理里程碑
108
-
109
- 为已发布版本关闭对应版本里程碑,并为下一轮创建缺失的规划里程碑。
110
-
111
- 执行:
112
-
113
- ```bash
114
- bash .agents/skills/release/scripts/manage-milestones.sh "$MAJOR" "$MINOR" "$PATCH"
115
- ```
116
-
117
- 脚本负责:
118
- - 执行前先读取 `.agents/rules/label-milestone-setup.md`
119
- - 使用其中的 milestone 查询与更新命令读取和调整当前里程碑
120
- - 在 `{MAJOR}.{MINOR}.{PATCH}` 存在且仍为开启状态时将其关闭
121
- - 确保 `{MAJOR}.{MINOR}.{PATCH+1}` 与 `{MAJOR}.{MINOR}.x` 存在
122
- - 当 `PATCH=0` 时,同时确保 `{MAJOR}.{MINOR+1}.0` 与 `{MAJOR}.{MINOR+1}.x`
123
- - 输出包含已发布里程碑动作和新建数量的汇总
124
-
125
- ### 9. 输出摘要
126
-
127
- > **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。
128
-
129
- ```
130
- 版本 v{version} 已准备好发布。
131
-
132
- 发布信息:
133
- - 版本:{version}
134
- - 发布提交:{commit-hash}
135
- - 标签:v{version}
136
-
137
- 已更新文件数:{数量}
138
-
139
- 下一步(手动执行):
140
-
141
- 1. 推送分支:
142
- git push origin {current-branch}
143
-
144
- 2. 推送标签:
145
- git push origin v{version}
146
-
147
- 3.(可选)生成发布说明:
148
- - Claude Code / OpenCode:/create-release-note {version}
149
- - Gemini CLI:/{{project}}:create-release-note {version}
150
- - Codex CLI:$create-release-note {version}
151
-
152
- 4.(可选)执行发布后处理:
153
- - Claude Code / OpenCode:/post-release
154
- - Gemini CLI:/{{project}}:post-release
155
- - Codex CLI:$post-release
156
- ```
157
-
158
- ### 回滚说明
159
-
160
- 如果出了问题:
161
- ```bash
162
- # 删除标签
163
- git tag -d v{version}
164
-
165
- # 重置提交
166
- git reset --soft HEAD~1
167
-
168
- # 恢复文件
169
- git checkout -- .
170
- ```
171
-
172
- ## 注意事项
173
-
174
- 1. **需要干净的工作区**:必须没有未提交的变更
175
- 2. **不自动推送**:所有操作仅在本地执行;用户手动推送
176
- 3. **发布前验证**:将步骤 3 的 TODO 替换为你的项目所需的分支、测试和验证命令
177
- 4. **生成产物**:如果版本变化会影响生成文件、打包产物或内嵌元数据,需要将步骤 5 的 TODO 替换为实际命令
178
- 5. **发布自动化**:如果推送标签会触发 CI/CD 或包发布,请先确认所需凭据和流水线配置
179
- 6. **版本替换范围**:通过搜索确定需要更新哪些文件;排除 AI 工具目录
180
- 7. **适配你的项目**:以上版本更新和产物重建步骤是通用的;请根据你的项目版本方案进行定制
181
- 8. **里程碑联动**:发布时自动创建下一轮里程碑;如果里程碑体系未初始化,建议先运行 `init-milestones`
38
+ 逐 ref 普通 push;部分成功可重放,禁止 force push。
182
39
 
183
- ## 错误处理
40
+ ## 5. 输出事实摘要
184
41
 
185
- - 版本格式无效:提示正确格式并退出
186
- - 工作区不干净:提示提交或暂存
187
- - 验证失败:显示失败的检查并停止发布流程
188
- - 产物重建失败:显示构建错误并停止发布流程
189
- - Git 操作失败:显示错误并提供回滚说明
42
+ 完整展示 snapshot 和后续 TUI 命令;unknown 必须视为 blocked。
@@ -12,7 +12,7 @@ Restore local task workspace files from platform Issue comments that contain syn
12
12
  ## Boundary / Critical Rules
13
13
 
14
14
  - Restore files only from comments that match the marker registry in `.agents/rules/issue-sync.md`
15
- - Restore into `.agents/workspace/active/{task-id}/` by default
15
+ - Restore into a controlled staging directory under `.agents/workspace/`, then let lifecycle validate and place it under `active/{task-id}/`
16
16
  - Stop immediately if the target directory already exists and ask the user to resolve the conflict first
17
17
  - After executing this skill, you **must** immediately update the restored `task.md`
18
18
 
@@ -22,15 +22,9 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
22
22
 
23
23
  > If `{task-id}` matches `^[#]?[0-9]+$` (bare numeric or `#`-prefixed), follow the "SKILL parameter resolver" section of `.agents/rules/task-short-id.md`; treat `{task-id}` as the resolved full `TASK-YYYYMMDD-HHMMSS` form for every downstream command.
24
24
 
25
- ## Step Start: Write the started Marker
25
+ ## Step Start: Local Lifecycle Boundary
26
26
 
27
- After prerequisites pass and before this step's first artifact action, append a started marker to task.md `## Activity Log` (same base action as this step's done entry plus a ` [started]` suffix, note `started`):
28
-
29
- ```
30
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Restore Task [started]** by {agent} — started
31
- ```
32
-
33
- `ai task log` pairs it with the done entry written on completion onto one row (in progress → done). See the "Activity Log started / done dual-marker convention" in `.agents/rules/task-management.md`.
27
+ Comment parsing must not write the formal active directory. Step 6 declares one restore intent that validates staging and atomically commits base metadata, the started/done pair, final placement, and short-id allocation.
34
28
 
35
29
  ## Steps
36
30
 
@@ -45,7 +39,7 @@ If the user provided `{task-id}`, validate the `TASK-{yyyyMMdd-HHmmss}` format.
45
39
 
46
40
  ### 2. Fetch Issue Comments
47
41
 
48
- Read all Issue comments by following the "Read Issue comments" command in `.agents/rules/issue-pr-commands.md`, preserving the original order and comment IDs.
42
+ Run `agent-infra-internal platform-comment list --issue {issue-number}` to read all paginated comments while preserving order and comment IDs; the intent owns platform context, authentication, and upstream resolution.
49
43
 
50
44
  ### 3. Determine the task-id and Files to Restore
51
45
 
@@ -77,40 +71,28 @@ For each file:
77
71
  - concatenate chunk bodies into the final file content
78
72
 
79
73
  Before writing any file, verify that:
80
- - `.agents/workspace/active/{task-id}/` does not exist
74
+ - no formal active, blocked, or completed directory exists for the task id
75
+ - the unique `.agents/workspace/.restore-staging-*` path shares the active workspace filesystem
81
76
 
82
77
  If the directory already exists, stop immediately and tell the user to handle it manually first.
83
78
 
84
79
  ### 5. Write the Local Files
85
80
 
86
- Create `.agents/workspace/active/{task-id}/` and write files back in this order:
81
+ Create the controlled staging directory and write files back in this order:
87
82
 
88
83
  1. `task.md`
89
84
  2. every other restored artifact file in filename order
90
85
 
91
86
  Write only files that were actually recovered from Issue comments. Do not invent missing files.
92
87
 
93
- ### 6. Update the Restored task.md
94
-
95
- Get the current time:
88
+ ### 6. Apply the Restore Lifecycle Intent
96
89
 
97
90
  ```bash
98
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
91
+ agent-infra-internal task-lifecycle {task-id} restore --agent {agent} \
92
+ --staging-dir "{staging-dir}" --issue-number {issue-number}
99
93
  ```
100
94
 
101
- Update the restored `task.md`:
102
- - `status`: `active`
103
- - `assigned_to`: {current AI agent}
104
- - `updated_at`: {current time}
105
- - `agent_infra_version`: value from `.agents/rules/version-stamp.md`
106
-
107
- Append an Activity Log entry indicating the task was restored from the platform Issue.
108
-
109
- **Re-allocate short id** (the task directory is back under `active/`; alloc a new `#N`, which may differ from the pre-archival value):
110
-
111
- ```bash
112
- node .agents/scripts/task-short-id.js alloc "$task_id"
113
- ```
95
+ Only `status=applied|no-op` means restore completed. The core validates task/Issue identity, file types, and artifact topology before exposing the active path, then commits metadata, Activity Log, placement, and short-id allocation. On `status=failed`, show recovery fields and retry the same intent; do not move staging or allocate manually.
114
96
 
115
97
  ### 7. Inform User
116
98
 
@@ -12,7 +12,7 @@ description: >
12
12
  ## 行为边界 / 关键规则
13
13
 
14
14
  - 只从匹配 `.agents/rules/issue-sync.md` 标记注册表的评论恢复文件
15
- - 默认恢复到 `.agents/workspace/active/{task-id}/`
15
+ - 先恢复到 `.agents/workspace/` 内的受控 staging,校验后由 lifecycle 原子落位到 `active/{task-id}/`
16
16
  - 如果目标目录已存在,立即停止并提示用户先处理目录冲突
17
17
  - 执行本技能后,你**必须**立即更新恢复出的 `task.md`
18
18
 
@@ -22,15 +22,9 @@ description: >
22
22
 
23
23
  > 如果 `{task-id}` 入参匹配 `^[#]?[0-9]+$`(裸数字或带 `#` 前缀),先读取 `.agents/rules/task-short-id.md` 的「SKILL 入参解析」段执行解析;后续命令视 `{task-id}` 为解析后的全长 `TASK-YYYYMMDD-HHMMSS` 形式。
24
24
 
25
- ## 步骤开始:写入 started 标记
25
+ ## 步骤开始:本地生命周期边界
26
26
 
27
- 确认前置条件后、本步骤第一个产出动作之前,向 task.md `## 活动日志` 追加一条 started 标记(与本步骤 done 条目同基名 + ` [started]` 后缀,note 用 `started`):
28
-
29
- ```
30
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Restore Task [started]** by {agent} — started
31
- ```
32
-
33
- `ai task log` 会把它与完成时写入的 done 条目配对成一行(进行中 → 已完成)。约定见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
27
+ 评论解析阶段不写正式 active 目录。步骤 6 的单次 restore intent 统一校验 staging,并原子完成基础元数据、started/done 日志、正式落位和短号分配。
34
28
 
35
29
  ## 执行步骤
36
30
  ### 1. 验证输入与环境
@@ -44,7 +38,7 @@ description: >
44
38
 
45
39
  ### 2. 获取 Issue 评论
46
40
 
47
- 按 `.agents/rules/issue-pr-commands.md` 中的 “Issue 评论读取” 命令读取 Issue 的全部评论,保留原始顺序和评论 ID。
41
+ 调用 `agent-infra-internal platform-comment list --issue {issue-number}` 读取全部分页评论,保留原始顺序和评论 ID;平台上下文、认证和 upstream 由 internal intent 处理。
48
42
 
49
43
  ### 3. 确定 task-id 与待恢复文件
50
44
 
@@ -76,40 +70,28 @@ description: >
76
70
  - 拼接得到最终文件内容
77
71
 
78
72
  在写文件前检查:
79
- - `.agents/workspace/active/{task-id}/` 不存在
73
+ - `.agents/workspace/active/{task-id}/`、`blocked/{task-id}/`、`completed/{task-id}/` 均不存在
74
+ - 创建唯一 `.agents/workspace/.restore-staging-*` 路径,且与 active 位于同一文件系统
80
75
 
81
76
  如果目录已存在,立即停止并提示用户先手动处理。
82
77
 
83
78
  ### 5. 写回本地文件
84
79
 
85
- 创建 `.agents/workspace/active/{task-id}/`,按以下顺序写回:
80
+ 创建受控 staging 目录,按以下顺序写回:
86
81
 
87
82
  1. `task.md`
88
83
  2. 其余产物文件(按文件名排序)
89
84
 
90
85
  仅写回从 Issue 评论中实际恢复出的文件,不补造缺失文件。
91
86
 
92
- ### 6. 更新恢复后的 task.md
93
-
94
- 获取当前时间:
87
+ ### 6. 执行 restore 生命周期意图
95
88
 
96
89
  ```bash
97
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
90
+ agent-infra-internal task-lifecycle {task-id} restore --agent {agent} \
91
+ --staging-dir "{staging-dir}" --issue-number {issue-number}
98
92
  ```
99
93
 
100
- 更新恢复出的 `task.md`:
101
- - `status`:`active`
102
- - `assigned_to`:{当前 AI 代理}
103
- - `updated_at`:{当前时间}
104
- - `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
105
-
106
- 追加 Activity Log,说明任务已从平台 Issue 还原。
107
-
108
- **重新分配短号**(已把任务目录写回 `active/`,需要在锁内重新 alloc;新短号可能与归档前不同):
109
-
110
- ```bash
111
- node .agents/scripts/task-short-id.js alloc "$task_id"
112
- ```
94
+ 仅 `status=applied|no-op` 视为恢复完成。核心在正式 active 路径暴露前校验 task/Issue 身份、文件类型与 artifact topology,并统一更新 active 元数据、Activity Log、目录和短号。`status=failed` 时展示 recovery 字段,以同一 intent 重试;不得手工移动 staging 或分配短号。
113
95
 
114
96
  ### 7. 告知用户
115
97
 
@@ -17,8 +17,7 @@
17
17
  "require_issue_number": true
18
18
  },
19
19
  "activity-log": {
20
- "expected_action_pattern": "Restore Task",
21
- "freshness_minutes": 30
20
+ "expected_action_pattern": "Restore Task"
22
21
  },
23
22
  "platform-sync": null
24
23
  }
@@ -3,6 +3,7 @@ name: review-analysis
3
3
  description: >
4
4
  Review the requirement analysis artifact.
5
5
  Use when a requirements analysis needs an independent review before planning.
6
+ Only invoke this skill automatically when the conversation includes a resolvable task reference.
6
7
  ---
7
8
 
8
9
  # Requirement Analysis Review
@@ -23,24 +24,18 @@ After loading workflow / skill / rules instructions, and before any task-state j
23
24
  Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
24
25
 
25
26
  ```bash
26
- git status -s
27
- ls -la .agents/workspace/active/{task-id}/
28
- tail .agents/workspace/active/{task-id}/task.md
27
+ agent-infra-internal task-snapshot {task-id} --format text
29
28
  ```
30
29
 
31
- ## Task id short ref
30
+ ## Task Context Resolution
32
31
 
33
- > If `{task-id}` matches `^[#]?[0-9]+$` (bare numeric or `#`-prefixed), follow the "SKILL parameter resolver" section of `.agents/rules/task-short-id.md`; treat `{task-id}` as the resolved full `TASK-YYYYMMDD-HHMMSS` form for every downstream command.
32
+ > The entry point may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments while preserving every business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty, one positional ref, or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to that full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
34
33
 
35
- ## Step Start: Write the started Marker
34
+ > Resolve the task reference, then confirm that the task is in a state or directory supported by this skill and that `task.md` exists; if it cannot be located, handle it as a missing task and stop.
36
35
 
37
- After prerequisites pass and before this round's first artifact action, append a started marker to task.md `## Activity Log` (same base action as this round's done entry plus a ` [started]` suffix, note `started`):
36
+ ## Step Start: Declare the started Event
38
37
 
39
- ```
40
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Analysis (Round {N}) [started]** by {agent} — started
41
- ```
42
-
43
- `ai task log` pairs it with the done entry written when the review completes onto one row (in progress → done). Format and pairing rules: see the "Activity Log started / done dual-marker convention" in `.agents/rules/task-management.md`.
38
+ After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-analysis.started --agent {agent}`.
44
39
 
45
40
  ## Steps
46
41
 
@@ -48,9 +43,9 @@ After prerequisites pass and before this round's first artifact action, append a
48
43
 
49
44
  Require `task.md` and at least one analysis artifact: `analysis.md` or `analysis-r{N}.md`.
50
45
 
51
- ### 2. Determine Review Round
46
+ ### 2. Resolve Review Context
52
47
 
53
- Record `{analysis-artifact}`, `{review-round}`, and `{review-artifact}` (`review-analysis.md` or `review-analysis-r{N}.md`).
48
+ Run `agent-infra-internal task-artifact {task-id} inspect --family review-analysis`. Continue only for `ready`; take `{analysis-artifact}` from `inputs` and `{review-round}` / `{review-artifact}` from `next.round` / `next.name`. Do not scan rounds or construct names in the skill.
54
49
 
55
50
  ### 3. Read Analysis Context
56
51
 
@@ -70,27 +65,20 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
70
65
 
71
66
  ### 6. Update Task Status
72
67
 
73
- Get the current time:
74
-
75
- ```bash
76
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
77
- ```
78
-
79
- Set `current_step` to `requirement-analysis-review`, refresh task metadata, and append:
80
- `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Analysis (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {review-artifact}`
68
+ After the report, submit each new finding with `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`; submit prior-response dispositions with `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {evidence}`. Do not scan ids or edit ledger rows. After all ledger writes, call `agent-infra-internal task-ledger {task-id} stage-status --stage analysis` exactly once. Derive the verdict and next-step branch from `stageStatus.canAdvance`, and blocker/major/minor event counts from `unresolvedFindingCounts`: only `canAdvance=true` permits `approved`; otherwise use `changes-requested` or `rejected`. Then run `agent-infra-internal task-event {task-id} review-analysis.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`.
81
69
 
82
70
  `manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
83
71
 
84
- If task.md has a valid `issue_number`, read `.agents/rules/issue-sync.md`, sync the task comment, and publish the `{review-artifact}` comment.
72
+ If task.md has a valid `issue_number`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`.
85
73
 
86
74
  ### 7. Run Completion Gate
87
75
 
88
76
  ```bash
89
- node .agents/scripts/validate-artifact.js gate review-analysis .agents/workspace/active/{task-id} {review-artifact} --format text
77
+ agent-infra-internal task-verify {task-id} review-analysis.completed --artifact {review-artifact} --format text
90
78
  ```
91
79
 
92
80
  ### 8. Tell the User
93
81
 
94
82
  Use the conclusion branch in `reference/output-templates.md` and show all TUI command formats.
95
83
 
96
- > Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the current task's short id `#NN` (see that file for lookup and fallback), while other `{task-id}` placeholders (report titles, paths) keep the full TASK-id form; (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
84
+ > Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the current task's short id `NN` (see that file for lookup and fallback), while other `{task-id}` placeholders (report titles, paths) keep the full TASK-id form; (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
@@ -3,6 +3,7 @@ name: review-analysis
3
3
  description: >
4
4
  审查需求分析报告。
5
5
  当需求分析需要在进入方案前接受独立审查时使用。
6
+ 仅当对话包含可解析的任务引用时才可自动调用本技能。
6
7
  ---
7
8
 
8
9
  # 需求分析审查
@@ -23,26 +24,20 @@ description: >
23
24
  运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
24
25
 
25
26
  ```bash
26
- git status -s
27
- ls -la .agents/workspace/active/{task-id}/
28
- tail .agents/workspace/active/{task-id}/task.md
27
+ agent-infra-internal task-snapshot {task-id} --format text
29
28
  ```
30
29
 
31
30
  状态核对完成前,禁止任何关于外部状态的断言。
32
31
 
33
- ## 任务入参短号别名
32
+ ## 任务上下文解析
34
33
 
35
- > 如果 `{task-id}` 入参匹配 `^[#]?[0-9]+$`(裸数字或带 `#` 前缀),先读取 `.agents/rules/task-short-id.md` 的「SKILL 入参解析」段执行解析;后续命令视 `{task-id}` 为解析后的全长 `TASK-YYYYMMDD-HHMMSS` 形式。
34
+ > 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
36
35
 
37
- ## 步骤开始:写入 started 标记
36
+ > 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
38
37
 
39
- 确认前置条件后、本轮第一个产出动作之前,向 task.md `## 活动日志` 追加一条 started 标记(与本轮 done 条目同基名 + ` [started]` 后缀,note 用 `started`):
38
+ ## 步骤开始:声明 started 事件
40
39
 
41
- ```
42
- - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Analysis (Round {N}) [started]** by {agent} — started
43
- ```
44
-
45
- `ai task log` 会把它与审查完成时写入的 done 条目配对成一行(进行中 → 已完成)。格式与配对规则见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
40
+ 确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-analysis.started --agent {agent}`。
46
41
 
47
42
  ## 执行步骤
48
43
  ### 1. 验证前置条件
@@ -51,12 +46,9 @@ tail .agents/workspace/active/{task-id}/task.md
51
46
  - `.agents/workspace/active/{task-id}/task.md`
52
47
  - 至少一个分析产物:`analysis.md` 或 `analysis-r{N}.md`
53
48
 
54
- ### 2. 确定审查轮次
49
+ ### 2. 解析审查上下文
55
50
 
56
- 扫描任务目录并记录:
57
- - `{analysis-artifact}`:最高轮次的分析产物
58
- - `{review-round}`
59
- - `{review-artifact}`:`review-analysis.md` 或 `review-analysis-r{N}.md`
51
+ 运行 `agent-infra-internal task-artifact {task-id} inspect --family review-analysis`。仅当结果为 `ready` 时继续;从 `inputs` 取得 `{analysis-artifact}`,从 `next.round` / `next.name` 取得 `{review-round}` / `{review-artifact}`。不得自行扫描轮次或拼装文件名。随后执行 started 事件并复核返回身份。
60
52
 
61
53
  ### 3. 阅读分析上下文
62
54
 
@@ -76,28 +68,16 @@ tail .agents/workspace/active/{task-id}/task.md
76
68
 
77
69
  ### 6. 更新任务状态
78
70
 
79
- 获取当前时间:
80
-
81
- ```bash
82
- date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
83
- ```
84
-
85
- 更新 task.md:
86
- - `current_step`:requirement-analysis-review
87
- - `assigned_to`:{当前代理}
88
- - `updated_at`:{当前时间}
89
- - `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
90
- - 追加:
91
- `- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Analysis (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {review-artifact}`
71
+ 报告完成后,新 finding 逐条调用 `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`;复核上一轮响应时调用 `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {相称证据}`。不得扫描编号或手写账本行。全部账本写入完成后只调用一次 `agent-infra-internal task-ledger {task-id} stage-status --stage analysis`,以 `stageStatus.canAdvance` 决定 verdict 和下一步,并以 `unresolvedFindingCounts` 填写 blocker/major/minor:仅 `canAdvance=true` 可用 `approved`,否则必须用 `changes-requested` 或 `rejected`。随后执行 `agent-infra-internal task-event {task-id} review-analysis.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`。
92
72
 
93
73
  `manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
94
74
 
95
- 如果 task.md 中存在有效的 `issue_number`,执行前先读取 `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测,然后同步 task 评论并发布 `{review-artifact}` 评论。
75
+ 如果 task.md 中存在有效的 `issue_number`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
96
76
 
97
77
  ### 7. 完成校验
98
78
 
99
79
  ```bash
100
- node .agents/scripts/validate-artifact.js gate review-analysis .agents/workspace/active/{task-id} {review-artifact} --format text
80
+ agent-infra-internal task-verify {task-id} review-analysis.completed --artifact {review-artifact} --format text
101
81
  ```
102
82
 
103
83
  校验通过后继续告知用户;校验失败则修复报告或 task 状态后重跑。
@@ -106,7 +86,7 @@ node .agents/scripts/validate-artifact.js gate review-analysis .agents/workspace
106
86
 
107
87
  按 `reference/output-templates.md` 的结论分支输出,并展示所有 TUI 的下一步命令。
108
88
 
109
- > 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `#NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
89
+ > 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
110
90
 
111
91
  ## 完成检查清单
112
92
 
@@ -20,6 +20,7 @@
20
20
  "required_sections": [
21
21
  "Review Summary",
22
22
  "Findings",
23
+ "Non-blocking Advisories",
23
24
  "Manual Validation Items",
24
25
  "Conclusion and Recommendations",
25
26
  "State Check",
@@ -30,12 +31,10 @@
30
31
  "required_patterns": [
31
32
  "^### Approval Decision$",
32
33
  "^\\$ "
33
- ],
34
- "freshness_minutes": 30
34
+ ]
35
35
  },
36
36
  "activity-log": {
37
- "expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)",
38
- "freshness_minutes": 30
37
+ "expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)"
39
38
  },
40
39
  "platform-sync": {
41
40
  "when": "issue_number_exists",
@@ -20,6 +20,7 @@
20
20
  "required_sections": [
21
21
  "审查摘要",
22
22
  "问题清单",
23
+ "非阻塞建议",
23
24
  "人工校验项",
24
25
  "结论与建议",
25
26
  "状态核对",
@@ -30,12 +31,10 @@
30
31
  "required_patterns": [
31
32
  "^### 审查决定$",
32
33
  "^\\$ "
33
- ],
34
- "freshness_minutes": 30
34
+ ]
35
35
  },
36
36
  "activity-log": {
37
- "expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)",
38
- "freshness_minutes": 30
37
+ "expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)"
39
38
  },
40
39
  "platform-sync": {
41
40
  "when": "issue_number_exists",