@fitlab-ai/agent-infra 0.8.4 → 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 (443) 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 +9 -0
  6. package/dist/lib/git/review-snapshot.js +79 -0
  7. package/dist/lib/git/workflow.js +101 -0
  8. package/dist/lib/init.js +5 -0
  9. package/dist/lib/internal/git-workflow.js +42 -0
  10. package/dist/lib/internal/platform-checks.js +119 -0
  11. package/dist/lib/internal/platform-comment.js +129 -0
  12. package/dist/lib/internal/platform-context.js +46 -0
  13. package/dist/lib/internal/platform-issue.js +142 -0
  14. package/dist/lib/internal/platform-pr.js +146 -0
  15. package/dist/lib/internal/release-workflow.js +217 -0
  16. package/dist/lib/internal/task-artifact.js +67 -0
  17. package/dist/lib/internal/task-context.js +43 -0
  18. package/dist/lib/internal/task-event.js +70 -0
  19. package/dist/lib/internal/task-ledger.js +114 -0
  20. package/dist/lib/internal/task-lifecycle.js +58 -0
  21. package/dist/lib/internal/task-short-id.js +83 -0
  22. package/dist/lib/internal/task-snapshot.js +47 -0
  23. package/dist/lib/internal/task-verify.js +50 -0
  24. package/dist/lib/internal/task-warning.js +74 -0
  25. package/dist/lib/platform/adapters.js +14 -0
  26. package/dist/lib/platform/context.js +146 -0
  27. package/dist/lib/platform/github-client.js +124 -0
  28. package/dist/lib/platform/issue-comments.js +409 -0
  29. package/dist/lib/platform/issue-metadata.js +183 -0
  30. package/dist/lib/platform/issues.js +617 -0
  31. package/dist/lib/platform/metadata-labels.js +28 -0
  32. package/dist/lib/platform/pr-checks.js +216 -0
  33. package/dist/lib/platform/pr-summary.js +88 -0
  34. package/dist/lib/platform/pull-request-metadata.js +38 -0
  35. package/dist/lib/platform/pull-requests.js +338 -0
  36. package/dist/lib/platform/releases.js +82 -0
  37. package/dist/lib/platform/types.js +22 -0
  38. package/dist/lib/platform/verification-required.js +78 -0
  39. package/dist/lib/platform/verification-sync.js +1014 -0
  40. package/dist/lib/platform/verification.js +6 -0
  41. package/dist/lib/release/channels.js +31 -0
  42. package/dist/lib/release/workflow.js +32 -0
  43. package/dist/lib/render.js +3 -2
  44. package/dist/lib/run/index.js +24 -7
  45. package/dist/lib/sandbox/capture.js +25 -3
  46. package/dist/lib/sandbox/commands/create.js +66 -26
  47. package/dist/lib/sandbox/commands/enter.js +34 -11
  48. package/dist/lib/sandbox/commands/list-running.js +10 -8
  49. package/dist/lib/sandbox/commands/show.js +2 -2
  50. package/dist/lib/sandbox/commands/start.js +53 -15
  51. package/dist/lib/sandbox/engine.js +33 -3
  52. package/dist/lib/sandbox/engines/colima.js +2 -2
  53. package/dist/lib/sandbox/index.js +6 -6
  54. package/dist/lib/sandbox/mounts.js +36 -0
  55. package/dist/lib/sandbox/recovery.js +562 -0
  56. package/dist/lib/sandbox/runtimes/base.dockerfile +4 -0
  57. package/dist/lib/sandbox/task-resolver.js +5 -1
  58. package/dist/lib/sandbox/tools.js +19 -0
  59. package/dist/lib/server/daemon.js +9 -0
  60. package/dist/lib/server/process-control.js +66 -73
  61. package/dist/lib/server/process-state.js +168 -0
  62. package/dist/lib/server/protocol.js +5 -5
  63. package/dist/lib/task/activity-log.js +61 -0
  64. package/dist/lib/task/artifact-lifecycle.js +427 -0
  65. package/dist/lib/task/command-options.js +30 -0
  66. package/dist/lib/task/commands/cat.js +36 -6
  67. package/dist/lib/task/commands/decisions.js +80 -46
  68. package/dist/lib/task/commands/files.js +21 -7
  69. package/dist/lib/task/commands/grep.js +55 -7
  70. package/dist/lib/task/commands/issue-body.js +23 -14
  71. package/dist/lib/task/commands/log.js +27 -70
  72. package/dist/lib/task/commands/show.js +20 -7
  73. package/dist/lib/task/commands/status.js +18 -8
  74. package/dist/lib/task/decision-intents.js +154 -0
  75. package/dist/lib/task/decision-items.js +53 -0
  76. package/dist/lib/task/events.js +318 -0
  77. package/dist/lib/task/frontmatter.js +159 -1
  78. package/dist/lib/task/implementation-inputs.js +117 -0
  79. package/dist/lib/task/index.js +12 -9
  80. package/dist/lib/task/issue-form.js +19 -6
  81. package/dist/lib/task/ledger-intents.js +185 -0
  82. package/dist/lib/task/ledger.js +65 -35
  83. package/dist/lib/task/lifecycle.js +484 -0
  84. package/dist/lib/task/resolve-ref.js +152 -32
  85. package/dist/lib/task/review-artifacts.js +101 -0
  86. package/dist/lib/task/review-fingerprint.js +46 -0
  87. package/dist/lib/task/sections.js +358 -4
  88. package/dist/lib/task/short-id.js +292 -7
  89. package/dist/lib/task/snapshot.js +95 -0
  90. package/dist/lib/task/verification-checks.js +8 -0
  91. package/dist/lib/task/verification-config.js +14 -0
  92. package/dist/lib/task/verification-engine.js +906 -0
  93. package/dist/lib/task/verification-review.js +3 -0
  94. package/dist/lib/task/verification-types.js +2 -0
  95. package/dist/lib/task/verification.js +113 -0
  96. package/dist/lib/task/workflow-warning-intents.js +131 -0
  97. package/dist/lib/task/workflow-warnings.js +10 -78
  98. package/dist/lib/task/write.js +241 -0
  99. package/dist/lib/update.js +2 -0
  100. package/lib/decide.ts +57 -97
  101. package/lib/defaults.json +9 -0
  102. package/lib/git/review-snapshot.ts +73 -0
  103. package/lib/git/workflow.ts +101 -0
  104. package/lib/init.ts +9 -0
  105. package/lib/internal/git-workflow.ts +37 -0
  106. package/lib/internal/platform-checks.ts +101 -0
  107. package/lib/internal/platform-comment.ts +99 -0
  108. package/lib/internal/platform-context.ts +33 -0
  109. package/lib/internal/platform-issue.ts +116 -0
  110. package/lib/internal/platform-pr.ts +119 -0
  111. package/lib/internal/release-workflow.ts +186 -0
  112. package/lib/internal/task-artifact.ts +47 -0
  113. package/lib/internal/task-context.ts +35 -0
  114. package/lib/internal/task-event.ts +51 -0
  115. package/lib/internal/task-ledger.ts +86 -0
  116. package/lib/internal/task-lifecycle.ts +41 -0
  117. package/lib/internal/task-short-id.ts +55 -0
  118. package/lib/internal/task-snapshot.ts +32 -0
  119. package/lib/internal/task-verify.ts +33 -0
  120. package/lib/internal/task-warning.ts +50 -0
  121. package/lib/platform/adapters.ts +30 -0
  122. package/lib/platform/context.ts +164 -0
  123. package/lib/platform/github-client.ts +146 -0
  124. package/lib/platform/issue-comments.ts +479 -0
  125. package/lib/platform/issue-metadata.ts +250 -0
  126. package/lib/platform/issues.ts +691 -0
  127. package/lib/platform/metadata-labels.ts +33 -0
  128. package/lib/platform/pr-checks.ts +246 -0
  129. package/lib/platform/pr-summary.ts +90 -0
  130. package/lib/platform/pull-request-metadata.ts +69 -0
  131. package/lib/platform/pull-requests.ts +380 -0
  132. package/lib/platform/releases.ts +71 -0
  133. package/lib/platform/types.ts +74 -0
  134. package/lib/platform/verification-required.ts +83 -0
  135. package/{templates/.agents/scripts/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +221 -363
  136. package/lib/platform/verification.ts +11 -0
  137. package/lib/release/channels.ts +30 -0
  138. package/lib/release/workflow.ts +31 -0
  139. package/lib/render.ts +3 -2
  140. package/lib/run/index.ts +25 -7
  141. package/lib/sandbox/capture.ts +29 -3
  142. package/lib/sandbox/commands/create.ts +75 -28
  143. package/lib/sandbox/commands/enter.ts +38 -11
  144. package/lib/sandbox/commands/list-running.ts +10 -8
  145. package/lib/sandbox/commands/show.ts +2 -2
  146. package/lib/sandbox/commands/start.ts +50 -16
  147. package/lib/sandbox/engine.ts +37 -3
  148. package/lib/sandbox/engines/colima.ts +2 -2
  149. package/lib/sandbox/index.ts +6 -6
  150. package/lib/sandbox/mounts.ts +55 -0
  151. package/lib/sandbox/recovery.ts +828 -0
  152. package/lib/sandbox/runtimes/base.dockerfile +4 -0
  153. package/lib/sandbox/task-resolver.ts +5 -1
  154. package/lib/sandbox/tools.ts +31 -0
  155. package/lib/server/daemon.ts +9 -0
  156. package/lib/server/process-control.ts +70 -71
  157. package/lib/server/process-state.ts +183 -0
  158. package/lib/server/protocol.ts +5 -5
  159. package/lib/task/activity-log.ts +62 -0
  160. package/lib/task/artifact-lifecycle.ts +484 -0
  161. package/lib/task/command-options.ts +32 -0
  162. package/lib/task/commands/cat.ts +22 -9
  163. package/lib/task/commands/decisions.ts +49 -47
  164. package/lib/task/commands/files.ts +14 -6
  165. package/lib/task/commands/grep.ts +34 -7
  166. package/lib/task/commands/issue-body.ts +16 -16
  167. package/lib/task/commands/log.ts +17 -70
  168. package/lib/task/commands/show.ts +14 -6
  169. package/lib/task/commands/status.ts +17 -7
  170. package/lib/task/decision-intents.ts +163 -0
  171. package/lib/task/decision-items.ts +64 -0
  172. package/lib/task/events.ts +320 -0
  173. package/lib/task/frontmatter.ts +202 -2
  174. package/lib/task/implementation-inputs.ts +137 -0
  175. package/lib/task/index.ts +12 -9
  176. package/lib/task/issue-form.ts +20 -6
  177. package/lib/task/ledger-intents.ts +201 -0
  178. package/lib/task/ledger.ts +77 -31
  179. package/lib/task/lifecycle.ts +458 -0
  180. package/lib/task/resolve-ref.ts +197 -36
  181. package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
  182. package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +20 -10
  183. package/lib/task/sections.ts +486 -4
  184. package/lib/task/short-id.ts +403 -9
  185. package/lib/task/snapshot.ts +143 -0
  186. package/lib/task/verification-checks.ts +9 -0
  187. package/lib/task/verification-config.ts +20 -0
  188. package/{templates/.agents/scripts/validate-artifact.js → lib/task/verification-engine.ts} +257 -451
  189. package/lib/task/verification-review.ts +9 -0
  190. package/lib/task/verification-types.ts +29 -0
  191. package/lib/task/verification.ts +156 -0
  192. package/lib/task/workflow-warning-intents.ts +142 -0
  193. package/lib/task/workflow-warnings.ts +10 -78
  194. package/lib/task/write.ts +468 -0
  195. package/lib/update.ts +6 -0
  196. package/package.json +5 -2
  197. package/templates/.agents/README.en.md +6 -3
  198. package/templates/.agents/README.zh-CN.md +6 -3
  199. package/templates/.agents/rules/README.en.md +6 -5
  200. package/templates/.agents/rules/README.zh-CN.md +6 -5
  201. package/templates/.agents/rules/create-issue.en.md +1 -1
  202. package/templates/.agents/rules/create-issue.github.en.md +5 -184
  203. package/templates/.agents/rules/create-issue.github.zh-CN.md +12 -178
  204. package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
  205. package/templates/.agents/rules/human-decision-context.en.md +36 -0
  206. package/templates/.agents/rules/human-decision-context.zh-CN.md +36 -0
  207. package/templates/.agents/rules/issue-fields.github.en.md +4 -148
  208. package/templates/.agents/rules/issue-fields.github.zh-CN.md +9 -144
  209. package/templates/.agents/rules/issue-pr-commands.en.md +43 -3
  210. package/templates/.agents/rules/issue-pr-commands.github.en.md +15 -220
  211. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +23 -213
  212. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +45 -3
  213. package/templates/.agents/rules/issue-sync.en.md +1 -1
  214. package/templates/.agents/rules/issue-sync.github.en.md +14 -301
  215. package/templates/.agents/rules/issue-sync.github.zh-CN.md +36 -287
  216. package/templates/.agents/rules/issue-sync.zh-CN.md +1 -1
  217. package/templates/.agents/rules/milestone-inference.en.md +1 -1
  218. package/templates/.agents/rules/milestone-inference.github.en.md +7 -119
  219. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +8 -108
  220. package/templates/.agents/rules/milestone-inference.zh-CN.md +1 -1
  221. package/templates/.agents/rules/next-step-output.en.md +12 -11
  222. package/templates/.agents/rules/next-step-output.zh-CN.md +12 -11
  223. package/templates/.agents/rules/no-mid-flow-questions.en.md +3 -3
  224. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +3 -3
  225. package/templates/.agents/rules/pr-checks-commands.en.md +16 -3
  226. package/templates/.agents/rules/pr-checks-commands.github.en.md +10 -54
  227. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +19 -47
  228. package/templates/.agents/rules/pr-checks-commands.zh-CN.md +30 -3
  229. package/templates/.agents/rules/pr-sync.en.md +30 -3
  230. package/templates/.agents/rules/pr-sync.github.en.md +12 -115
  231. package/templates/.agents/rules/pr-sync.github.zh-CN.md +26 -104
  232. package/templates/.agents/rules/pr-sync.zh-CN.md +43 -3
  233. package/templates/.agents/rules/review-handshake.en.md +13 -9
  234. package/templates/.agents/rules/review-handshake.zh-CN.md +13 -9
  235. package/templates/.agents/rules/task-management.en.md +11 -2
  236. package/templates/.agents/rules/task-management.zh-CN.md +11 -3
  237. package/templates/.agents/rules/task-short-id.en.md +25 -29
  238. package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
  239. package/templates/.agents/scripts/lib/agent-infra-package.js +141 -0
  240. package/templates/.agents/scripts/task-short-id.js +71 -533
  241. package/templates/.agents/skills/analyze-task/SKILL.en.md +22 -55
  242. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +26 -59
  243. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
  244. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
  245. package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
  246. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
  247. package/templates/.agents/skills/block-task/config/verify.json +1 -2
  248. package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
  249. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
  250. package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
  251. package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
  252. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
  253. package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
  254. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
  255. package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
  256. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
  257. package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
  258. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
  259. package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
  260. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
  261. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
  262. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
  263. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
  264. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
  265. package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
  266. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
  267. package/templates/.agents/skills/commit/SKILL.en.md +18 -14
  268. package/templates/.agents/skills/commit/SKILL.zh-CN.md +18 -14
  269. package/templates/.agents/skills/commit/config/verify.json +1 -2
  270. package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -11
  271. package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -11
  272. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +4 -8
  273. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +4 -8
  274. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +6 -18
  275. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +5 -17
  276. package/templates/.agents/skills/commit/reference/task-status-update.en.md +42 -2
  277. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +42 -2
  278. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +13 -36
  279. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +13 -36
  280. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -3
  281. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -3
  282. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +10 -54
  283. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +10 -79
  284. package/templates/.agents/skills/complete-task/SKILL.en.md +59 -63
  285. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +59 -63
  286. package/templates/.agents/skills/complete-task/config/verify.en.json +11 -6
  287. package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +11 -6
  288. package/templates/.agents/skills/create-pr/SKILL.en.md +19 -44
  289. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +19 -43
  290. package/templates/.agents/skills/create-pr/config/verify.json +1 -2
  291. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +8 -12
  292. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +7 -11
  293. package/templates/.agents/skills/create-task/SKILL.en.md +12 -13
  294. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +12 -13
  295. package/templates/.agents/skills/create-task/config/verify.json +1 -2
  296. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  297. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  298. package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
  299. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  300. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  301. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
  302. package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
  303. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
  304. package/templates/.agents/skills/import-issue/config/verify.json +1 -2
  305. package/templates/.agents/skills/init-milestones/SKILL.en.md +2 -2
  306. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +2 -2
  307. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +5 -4
  308. package/templates/.agents/skills/plan-task/SKILL.en.md +17 -42
  309. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +22 -49
  310. package/templates/.agents/skills/plan-task/config/verify.en.json +1 -3
  311. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -3
  312. package/templates/.agents/skills/post-release/SKILL.en.md +11 -81
  313. package/templates/.agents/skills/post-release/SKILL.zh-CN.md +8 -78
  314. package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
  315. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
  316. package/templates/.agents/skills/release/SKILL.en.md +16 -163
  317. package/templates/.agents/skills/release/SKILL.zh-CN.md +15 -162
  318. package/templates/.agents/skills/restore-task/SKILL.en.md +11 -29
  319. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -29
  320. package/templates/.agents/skills/restore-task/config/verify.json +1 -2
  321. package/templates/.agents/skills/review-analysis/SKILL.en.md +13 -25
  322. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +13 -33
  323. package/templates/.agents/skills/review-analysis/config/verify.en.json +3 -4
  324. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +3 -4
  325. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +9 -12
  326. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +9 -12
  327. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +9 -2
  328. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +9 -2
  329. package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +7 -0
  330. package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +7 -0
  331. package/templates/.agents/skills/review-code/SKILL.en.md +22 -36
  332. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +23 -41
  333. package/templates/.agents/skills/review-code/config/verify.en.json +5 -5
  334. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +5 -5
  335. package/templates/.agents/skills/review-code/reference/output-templates.en.md +56 -18
  336. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +56 -18
  337. package/templates/.agents/skills/review-code/reference/report-template.en.md +12 -4
  338. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +12 -4
  339. package/templates/.agents/skills/review-code/reference/review-criteria.en.md +7 -0
  340. package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +7 -0
  341. package/templates/.agents/skills/review-plan/SKILL.en.md +13 -25
  342. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +13 -33
  343. package/templates/.agents/skills/review-plan/config/verify.en.json +3 -4
  344. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +3 -4
  345. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +9 -12
  346. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +9 -12
  347. package/templates/.agents/skills/review-plan/reference/report-template.en.md +9 -2
  348. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +9 -2
  349. package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +7 -0
  350. package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +7 -0
  351. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +6 -3
  352. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +6 -3
  353. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +177 -151
  354. package/templates/.agents/skills/watch-pr/SKILL.en.md +24 -14
  355. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +25 -15
  356. package/templates/.agents/skills/watch-pr/config/verify.json +1 -2
  357. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +2 -2
  358. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +2 -2
  359. package/templates/.agents/templates/task.en.md +6 -1
  360. package/templates/.agents/templates/task.zh-CN.md +6 -1
  361. package/templates/.claude/commands/analyze-task.en.md +1 -1
  362. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  363. package/templates/.claude/commands/block-task.en.md +1 -1
  364. package/templates/.claude/commands/block-task.zh-CN.md +1 -1
  365. package/templates/.claude/commands/cancel-task.en.md +1 -1
  366. package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
  367. package/templates/.claude/commands/check-task.en.md +1 -1
  368. package/templates/.claude/commands/check-task.zh-CN.md +1 -1
  369. package/templates/.claude/commands/code-task.en.md +1 -1
  370. package/templates/.claude/commands/code-task.zh-CN.md +1 -1
  371. package/templates/.claude/commands/commit.en.md +1 -0
  372. package/templates/.claude/commands/commit.zh-CN.md +1 -0
  373. package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
  374. package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
  375. package/templates/.claude/commands/complete-task.en.md +1 -1
  376. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  377. package/templates/.claude/commands/create-pr.en.md +1 -1
  378. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  379. package/templates/.claude/commands/plan-task.en.md +1 -1
  380. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  381. package/templates/.claude/commands/review-analysis.en.md +1 -1
  382. package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
  383. package/templates/.claude/commands/review-code.en.md +1 -1
  384. package/templates/.claude/commands/review-code.zh-CN.md +1 -1
  385. package/templates/.claude/commands/review-plan.en.md +1 -1
  386. package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
  387. package/templates/.claude/commands/watch-pr.en.md +1 -1
  388. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  389. package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
  390. package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
  391. package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
  392. package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
  393. package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
  394. package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
  395. package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
  396. package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
  397. package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
  398. package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
  399. package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
  400. package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
  401. package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
  402. package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
  403. package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
  404. package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
  405. package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
  406. package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
  407. package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
  408. package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
  409. package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
  410. package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
  411. package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
  412. package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
  413. package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
  414. package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
  415. package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
  416. package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
  417. package/templates/.git-hooks/check-large-files.cjs +92 -0
  418. package/templates/.git-hooks/check-version-format.sh +5 -1
  419. package/templates/.git-hooks/pre-commit +1 -0
  420. package/templates/.opencode/commands/analyze-task.en.md +1 -1
  421. package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
  422. package/templates/.opencode/commands/check-task.en.md +1 -1
  423. package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
  424. package/templates/.opencode/commands/code-task.en.md +1 -1
  425. package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
  426. package/templates/.opencode/commands/commit.en.md +2 -0
  427. package/templates/.opencode/commands/commit.zh-CN.md +2 -0
  428. package/templates/.opencode/commands/complete-task.en.md +1 -1
  429. package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
  430. package/templates/.opencode/commands/plan-task.en.md +1 -1
  431. package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
  432. package/templates/.opencode/commands/review-analysis.en.md +1 -1
  433. package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
  434. package/templates/.opencode/commands/review-code.en.md +1 -1
  435. package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
  436. package/templates/.opencode/commands/review-plan.en.md +1 -1
  437. package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
  438. package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
  439. package/templates/.agents/scripts/review-diff-fingerprint.js +0 -99
  440. package/templates/.agents/scripts/workflow-warnings.js +0 -290
  441. package/templates/.agents/skills/code-task/scripts/detect-mode.js +0 -257
  442. package/templates/.agents/skills/release/scripts/manage-milestones.github.sh +0 -80
  443. package/templates/.agents/skills/release/scripts/manage-milestones.sh +0 -6
@@ -2,6 +2,8 @@ description = "创建 Pull Request 到目标分支"
2
2
  prompt = """
3
3
  创建 PR:{{args}}
4
4
 
5
+ 任务 scope 可省略,或通过 `--task <ref>` / `-t <ref>` 显式覆盖;`--pr` 等专用锚点保持原语义。
6
+
5
7
  读取并执行 `.agents/skills/create-pr/SKILL.md` 中的 create-pr 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Design a technical plan for a task"
2
2
  prompt = """
3
3
  Design plan for 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 plan-task skill from `.agents/skills/plan-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/plan-task/SKILL.md` 中的 plan-task 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Review a requirement analysis report"
2
2
  prompt = """
3
3
  Review analysis for 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 review-analysis skill from `.agents/skills/review-analysis/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/review-analysis/SKILL.md` 中的 review-analysis 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Review code implementation and output a code review report"
2
2
  prompt = """
3
3
  Review code for 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 review-code skill from `.agents/skills/review-code/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/review-code/SKILL.md` 中的 review-code 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Review a technical plan"
2
2
  prompt = """
3
3
  Review plan for 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 review-plan skill from `.agents/skills/review-plan/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/review-plan/SKILL.md` 中的 review-plan 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -2,6 +2,8 @@ description = "Watch a PR's required checks and self-heal on failure"
2
2
  prompt = """
3
3
  Watch PR checks: {{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 watch-pr skill from `.agents/skills/watch-pr/SKILL.md`.
6
8
 
7
9
  Follow all steps defined in the skill exactly.
@@ -2,6 +2,8 @@ description = "监控 PR 的 required checks 并在失败时自愈"
2
2
  prompt = """
3
3
  监控 PR 检查:{{args}}
4
4
 
5
+ 任务 scope 可省略,或通过 `--task <ref>` / `-t <ref>` 显式覆盖;`--pr` 等专用锚点保持原语义。
6
+
5
7
  读取并执行 `.agents/skills/watch-pr/SKILL.md` 中的 watch-pr 技能。
6
8
 
7
9
  严格按照技能中定义的所有步骤执行。
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("node:fs");
4
+ const path = require("node:path");
5
+ const { spawnSync } = require("node:child_process");
6
+
7
+ const MAX_BLOB_BYTES = 1024 * 1024;
8
+ const ALLOWLIST_FILE = ".git-large-file-allowlist";
9
+
10
+ function runGit(args, options = {}) {
11
+ const result = spawnSync("git", args, {
12
+ encoding: "utf8",
13
+ maxBuffer: 16 * 1024 * 1024,
14
+ ...options
15
+ });
16
+
17
+ if (result.status !== 0) {
18
+ process.stderr.write(result.stderr || `git ${args[0]} failed.\n`);
19
+ process.exit(result.status || 1);
20
+ }
21
+
22
+ return result.stdout;
23
+ }
24
+
25
+ function readAllowlist(repositoryRoot) {
26
+ const allowlistPath = path.join(repositoryRoot, ALLOWLIST_FILE);
27
+ if (!fs.existsSync(allowlistPath)) {
28
+ return new Set();
29
+ }
30
+
31
+ return new Set(
32
+ fs.readFileSync(allowlistPath, "utf8")
33
+ .split(/\r?\n/)
34
+ .map((line) => line.trim())
35
+ .filter((line) => line.length > 0 && !line.startsWith("#"))
36
+ );
37
+ }
38
+
39
+ function stagedBlob(repositoryRoot, relativePath) {
40
+ const entry = runGit(["ls-files", "--stage", "-z", "--", relativePath], {
41
+ cwd: repositoryRoot
42
+ }).split("\0").find(Boolean);
43
+
44
+ if (!entry) {
45
+ return null;
46
+ }
47
+
48
+ const tabIndex = entry.indexOf("\t");
49
+ const [mode, objectId, stage] = entry.slice(0, tabIndex).split(" ");
50
+ if (stage !== "0" || mode === "160000") {
51
+ return null;
52
+ }
53
+
54
+ const size = Number(runGit(["cat-file", "-s", objectId], { cwd: repositoryRoot }).trim());
55
+ return Number.isFinite(size) ? { objectId, size } : null;
56
+ }
57
+
58
+ function formatBytes(bytes) {
59
+ return `${(bytes / (1024 * 1024)).toFixed(2)} MiB`;
60
+ }
61
+
62
+ const repositoryRoot = runGit(["rev-parse", "--show-toplevel"]).trim();
63
+ const allowlist = readAllowlist(repositoryRoot);
64
+ const stagedPaths = runGit(
65
+ ["diff", "--cached", "--name-only", "--diff-filter=ACMR", "-z"],
66
+ { cwd: repositoryRoot }
67
+ ).split("\0").filter(Boolean);
68
+
69
+ const oversized = [];
70
+ for (const relativePath of stagedPaths) {
71
+ if (allowlist.has(relativePath)) {
72
+ continue;
73
+ }
74
+
75
+ const blob = stagedBlob(repositoryRoot, relativePath);
76
+ if (blob && blob.size > MAX_BLOB_BYTES) {
77
+ oversized.push({ relativePath, size: blob.size });
78
+ }
79
+ }
80
+
81
+ if (oversized.length > 0) {
82
+ process.stderr.write(`Large-file check failed: staged Git blobs must not exceed 1 MiB.\n`);
83
+ for (const { relativePath, size } of oversized) {
84
+ process.stderr.write(` - ${relativePath} (${formatBytes(size)})\n`);
85
+ }
86
+ process.stderr.write(
87
+ `Use Git LFS so Git stores a small pointer, or add an exact repository-relative path to ${ALLOWLIST_FILE}.\n`
88
+ );
89
+ process.exit(1);
90
+ }
91
+
92
+ process.stdout.write("Large-file check passed.\n");
@@ -21,7 +21,11 @@ template_version=$(
21
21
  exit 1
22
22
  }
23
23
 
24
- if ! printf '%s\n' "$template_version" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$'; then
24
+ if ! node -e '
25
+ const version = process.argv[1];
26
+ const semver = /^v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:(?:0|[1-9]\d*)|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:(?:0|[1-9]\d*)|\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
27
+ process.exit(semver.test(version) ? 0 : 1);
28
+ ' "$template_version"; then
25
29
  echo "Error: .agents/.airc.json templateVersion must use v-prefixed semver (found: $template_version)."
26
30
  exit 1
27
31
  fi
@@ -6,3 +6,4 @@ script_dir=$(
6
6
  )
7
7
 
8
8
  "$script_dir/check-version-format.sh"
9
+ node "$script_dir/check-large-files.cjs"
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Analyze task $1.
7
+ Analyze task $ARGUMENTS.
8
8
 
9
9
  Read and execute the analyze-task skill from `.agents/skills/analyze-task/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 分析任务 $1。
7
+ 分析任务 $ARGUMENTS。
8
8
 
9
9
  读取并执行 `.agents/skills/analyze-task/SKILL.md` 中的 analyze-task 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Check status of task $1.
7
+ Check status of task $ARGUMENTS.
8
8
 
9
9
  Read and execute the check-task skill from `.agents/skills/check-task/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 查看任务 $1 的状态。
7
+ 查看任务 $ARGUMENTS 的状态。
8
8
 
9
9
  读取并执行 `.agents/skills/check-task/SKILL.md` 中的 check-task 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Code task $1.
7
+ Code task $ARGUMENTS.
8
8
 
9
9
  Read and execute the code-task skill from `.agents/skills/code-task/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 编码任务 $1。
7
+ 编码任务 $ARGUMENTS。
8
8
 
9
9
  读取并执行 `.agents/skills/code-task/SKILL.md` 中的 code-task 技能。
10
10
 
@@ -4,6 +4,8 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
+ Commit scope: $ARGUMENTS
8
+
7
9
  Read and execute the commit skill from `.agents/skills/commit/SKILL.md`.
8
10
 
9
11
  Follow all steps defined in the skill exactly.
@@ -4,6 +4,8 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
+ 提交 scope:$ARGUMENTS
8
+
7
9
  读取并执行 `.agents/skills/commit/SKILL.md` 中的 commit 技能。
8
10
 
9
11
  严格按照技能中定义的所有步骤执行。
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Complete task $1.
7
+ Complete task $ARGUMENTS.
8
8
 
9
9
  Read and execute the complete-task skill from `.agents/skills/complete-task/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 完成任务 $1。
7
+ 完成任务 $ARGUMENTS。
8
8
 
9
9
  读取并执行 `.agents/skills/complete-task/SKILL.md` 中的 complete-task 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Design plan for task $1.
7
+ Design plan for task $ARGUMENTS.
8
8
 
9
9
  Read and execute the plan-task skill from `.agents/skills/plan-task/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 为任务 $1 设计方案。
7
+ 为任务 $ARGUMENTS 设计方案。
8
8
 
9
9
  读取并执行 `.agents/skills/plan-task/SKILL.md` 中的 plan-task 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Review analysis for task $1.
7
+ Review analysis for task $ARGUMENTS.
8
8
 
9
9
  Read and execute the review-analysis skill from `.agents/skills/review-analysis/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 审查任务 $1 的需求分析。
7
+ 审查任务 $ARGUMENTS 的需求分析。
8
8
 
9
9
  读取并执行 `.agents/skills/review-analysis/SKILL.md` 中的 review-analysis 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Review code for task $1.
7
+ Review code for task $ARGUMENTS.
8
8
 
9
9
  Read and execute the review-code skill from `.agents/skills/review-code/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 审查任务 $1 的代码。
7
+ 审查任务 $ARGUMENTS 的代码。
8
8
 
9
9
  读取并执行 `.agents/skills/review-code/SKILL.md` 中的 review-code 技能。
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- Review plan for task $1.
7
+ Review plan for task $ARGUMENTS.
8
8
 
9
9
  Read and execute the review-plan skill from `.agents/skills/review-plan/SKILL.md`.
10
10
 
@@ -4,7 +4,7 @@ agent: general
4
4
  subtask: false
5
5
  ---
6
6
 
7
- 审查任务 $1 的技术方案。
7
+ 审查任务 $ARGUMENTS 的技术方案。
8
8
 
9
9
  读取并执行 `.agents/skills/review-plan/SKILL.md` 中的 review-plan 技能。
10
10
 
@@ -1,13 +0,0 @@
1
- export function getDefaults() {
2
- return {
3
- statusLabels: {},
4
- markers: {}
5
- };
6
- }
7
-
8
- export function check(_context, shared) {
9
- return shared.passResult(
10
- "platform-sync",
11
- "Skipped: this code platform does not provide a built-in platform-sync adapter"
12
- );
13
- }
@@ -1,99 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "node:fs";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import process from "node:process";
6
- import { execFileSync } from "node:child_process";
7
-
8
- import { resolvePostReviewGlobs } from "./lib/post-review-commit.js";
9
-
10
- const repoRoot = execFileSync("git", ["rev-parse", "--show-toplevel"], {
11
- cwd: process.cwd(),
12
- encoding: "utf8"
13
- }).trim();
14
-
15
- function usage() {
16
- console.error("Usage: node .agents/scripts/review-diff-fingerprint.js <worktree|staged> <baseline>");
17
- process.exit(2);
18
- }
19
-
20
- function git(args, options = {}) {
21
- return execFileSync("git", args, {
22
- cwd: repoRoot,
23
- encoding: options.encoding || "utf8",
24
- env: options.env || process.env
25
- });
26
- }
27
-
28
- function loadReviewConfig() {
29
- const configPath = path.join(repoRoot, ".agents", ".airc.json");
30
- if (!fs.existsSync(configPath)) {
31
- return {};
32
- }
33
-
34
- try {
35
- return JSON.parse(fs.readFileSync(configPath, "utf8")).review || {};
36
- } catch {
37
- return {};
38
- }
39
- }
40
-
41
- function splitNull(output) {
42
- return output.split("\0").filter((value) => value !== "");
43
- }
44
-
45
- function hashDiff(args, env = process.env) {
46
- const diff = execFileSync("git", args, {
47
- cwd: repoRoot,
48
- encoding: "buffer",
49
- env
50
- });
51
- return `sha256:${crypto.createHash("sha256").update(diff).digest("hex")}`;
52
- }
53
-
54
- function worktreeFingerprint(baseline, globs) {
55
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "agent-infra-review-index-"));
56
- const tempIndex = path.join(tempDir, "index");
57
- const env = { ...process.env, GIT_INDEX_FILE: tempIndex };
58
-
59
- try {
60
- execFileSync("git", ["read-tree", baseline], { cwd: repoRoot, env });
61
-
62
- const tracked = splitNull(git(["diff", "--name-only", "-z", baseline, "--", ...globs]));
63
- const untracked = splitNull(git(["ls-files", "-o", "--exclude-standard", "-z", "--", ...globs]));
64
- const paths = [...new Set([...tracked, ...untracked])];
65
-
66
- for (const filePath of paths) {
67
- const absolutePath = path.join(repoRoot, filePath);
68
- if (fs.existsSync(absolutePath)) {
69
- execFileSync("git", ["update-index", "--add", "--", filePath], { cwd: repoRoot, env });
70
- } else {
71
- execFileSync("git", ["update-index", "--remove", "--", filePath], { cwd: repoRoot, env });
72
- }
73
- }
74
-
75
- return hashDiff(["diff", "--cached", "--binary", baseline, "--", ...globs], env);
76
- } finally {
77
- fs.rmSync(tempDir, { recursive: true, force: true });
78
- }
79
- }
80
-
81
- function stagedFingerprint(baseline, globs) {
82
- return hashDiff(["diff", "--cached", "--binary", baseline, "--", ...globs]);
83
- }
84
-
85
- function main(argv) {
86
- const [mode, baseline] = argv;
87
- if (!["worktree", "staged"].includes(mode) || !baseline) {
88
- usage();
89
- }
90
-
91
- git(["rev-parse", "--verify", `${baseline}^{commit}`]);
92
- const globs = resolvePostReviewGlobs({}, loadReviewConfig());
93
- const fingerprint = mode === "worktree"
94
- ? worktreeFingerprint(baseline, globs)
95
- : stagedFingerprint(baseline, globs);
96
- process.stdout.write(`${fingerprint}\n`);
97
- }
98
-
99
- main(process.argv.slice(2));