@fitlab-ai/agent-infra 0.9.12 → 0.9.14

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 (402) hide show
  1. package/README.md +11 -11
  2. package/README.zh-CN.md +11 -11
  3. package/bin/cli.ts +26 -9
  4. package/dist/bin/cli.js +173 -157
  5. package/dist/bin/internal-cli.js +66 -40
  6. package/dist/lib/agent-client.js +5 -0
  7. package/dist/lib/agent-clients/next-steps.js +6 -1
  8. package/dist/lib/decide.js +3 -3
  9. package/dist/lib/internal/agent-client.js +5 -2
  10. package/dist/lib/internal/cli-route-inventory.js +152 -0
  11. package/dist/lib/internal/codex-lifecycle.js +9 -6
  12. package/dist/lib/internal/codex-sandbox-controller.js +8 -2
  13. package/dist/lib/internal/git-workflow.js +10 -6
  14. package/dist/lib/internal/platform-checks.js +19 -7
  15. package/dist/lib/internal/platform-comment.js +25 -13
  16. package/dist/lib/internal/platform-context.js +6 -3
  17. package/dist/lib/internal/platform-issue.js +20 -13
  18. package/dist/lib/internal/platform-metadata.js +88 -0
  19. package/dist/lib/internal/platform-pr-review.js +26 -13
  20. package/dist/lib/internal/platform-pr.js +84 -31
  21. package/dist/lib/internal/platform-release-notes.js +9 -6
  22. package/dist/lib/internal/platform-security.js +93 -0
  23. package/dist/lib/internal/pr-review-grade.js +25 -12
  24. package/dist/lib/internal/release-workflow.js +23 -9
  25. package/dist/lib/internal/sandbox-control.js +50 -7
  26. package/dist/lib/internal/task-activity.js +16 -7
  27. package/dist/lib/internal/task-artifact.js +235 -24
  28. package/dist/lib/internal/task-context.js +4 -1
  29. package/dist/lib/internal/task-create.js +50 -17
  30. package/dist/lib/internal/task-delivery.js +4 -1
  31. package/dist/lib/internal/task-event.js +10 -4
  32. package/dist/lib/internal/task-finalization.js +6 -3
  33. package/dist/lib/internal/task-invalidation.js +63 -0
  34. package/dist/lib/internal/task-ledger.js +20 -6
  35. package/dist/lib/internal/task-lifecycle.js +6 -3
  36. package/dist/lib/internal/task-operation-registry.js +421 -0
  37. package/dist/lib/internal/task-orchestration.js +12 -0
  38. package/dist/lib/internal/task-override.js +14 -7
  39. package/dist/lib/internal/task-qualification.js +90 -0
  40. package/dist/lib/internal/task-review.js +7 -4
  41. package/dist/lib/internal/task-short-id.js +11 -1
  42. package/dist/lib/internal/task-snapshot.js +4 -1
  43. package/dist/lib/internal/task-validate.js +7 -2
  44. package/dist/lib/internal/task-verify.js +11 -7
  45. package/dist/lib/internal/task-warning.js +11 -4
  46. package/dist/lib/platform/adapters.js +1 -3
  47. package/dist/lib/platform/change-request-git-evidence.js +27 -7
  48. package/dist/lib/platform/comment-safety.js +226 -0
  49. package/dist/lib/platform/completion-backfill.js +6 -5
  50. package/dist/lib/platform/context.js +70 -130
  51. package/dist/lib/platform/github-client.js +1 -1
  52. package/dist/lib/platform/github-provider.js +1130 -0
  53. package/dist/lib/platform/in-label-sync.js +143 -0
  54. package/dist/lib/platform/issue-comments.js +237 -72
  55. package/dist/lib/platform/issues.js +335 -189
  56. package/dist/lib/platform/metadata-labels.js +6 -2
  57. package/dist/lib/platform/none-provider.js +28 -0
  58. package/dist/lib/platform/pr-change-report.js +545 -0
  59. package/dist/lib/platform/pr-checks.js +119 -104
  60. package/dist/lib/platform/pr-review.js +88 -72
  61. package/dist/lib/platform/pr-summary.js +541 -50
  62. package/dist/lib/platform/provider-bridge.js +45 -0
  63. package/dist/lib/platform/provider-contract.d.ts +553 -0
  64. package/dist/lib/platform/provider-contract.js +99 -0
  65. package/dist/lib/platform/provider-loader.js +251 -0
  66. package/dist/lib/platform/provider-validation.js +577 -0
  67. package/dist/lib/platform/pull-request-metadata.js +8 -6
  68. package/dist/lib/platform/pull-requests.js +734 -543
  69. package/dist/lib/platform/release-notes.js +78 -55
  70. package/dist/lib/platform/releases.js +79 -50
  71. package/dist/lib/platform/repository-metadata.js +377 -0
  72. package/dist/lib/platform/resource-identity.d.ts +26 -0
  73. package/dist/lib/platform/resource-identity.js +92 -0
  74. package/dist/lib/platform/security-alerts.js +155 -0
  75. package/dist/lib/platform/task-identities.js +31 -0
  76. package/dist/lib/platform/verification-required.js +11 -12
  77. package/dist/lib/platform/verification-sync.js +129 -248
  78. package/dist/lib/pr-review/evidence-grading.js +19 -6
  79. package/dist/lib/process-data/index.js +7 -0
  80. package/dist/lib/run/index.js +68 -23
  81. package/dist/lib/sandbox/commands/control-status.js +22 -0
  82. package/dist/lib/sandbox/commands/create.js +32 -6
  83. package/dist/lib/sandbox/commands/ls.js +5 -0
  84. package/dist/lib/sandbox/commands/rm.js +827 -120
  85. package/dist/lib/sandbox/commands/show.js +16 -0
  86. package/dist/lib/sandbox/control/client.js +174 -19
  87. package/dist/lib/sandbox/control/completed-reentry.js +85 -0
  88. package/dist/lib/sandbox/control/container-identity.js +28 -31
  89. package/dist/lib/sandbox/control/executor.js +151 -16
  90. package/dist/lib/sandbox/control/lifecycle.js +621 -127
  91. package/dist/lib/sandbox/control/native-file-lock.js +177 -0
  92. package/dist/lib/sandbox/control/protocol.js +77 -0
  93. package/dist/lib/sandbox/control/server.js +677 -34
  94. package/dist/lib/sandbox/control/state.js +209 -4
  95. package/dist/lib/sandbox/control/task-view.js +183 -0
  96. package/dist/lib/sandbox/engines/authority.js +289 -0
  97. package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
  98. package/dist/lib/sandbox/index.js +5 -0
  99. package/dist/lib/sandbox/recovery.js +21 -1
  100. package/dist/lib/sandbox/workspace-view.js +2 -1
  101. package/dist/lib/sandbox/worktree-safety.js +4 -1
  102. package/dist/lib/server/index.js +8 -0
  103. package/dist/lib/server/protocol.js +38 -1
  104. package/dist/lib/task/activity-log.js +8 -1
  105. package/dist/lib/task/artifact-lifecycle.js +75 -18
  106. package/dist/lib/task/artifact-operations.js +520 -0
  107. package/dist/lib/task/artifact-repair-intent.js +59 -0
  108. package/dist/lib/task/artifact-schema.js +135 -0
  109. package/dist/lib/task/capabilities.js +310 -0
  110. package/dist/lib/task/commands/status.js +32 -0
  111. package/dist/lib/task/commit-operation.js +12 -1
  112. package/dist/lib/task/control-authority.js +12 -5
  113. package/dist/lib/task/create-service.js +111 -12
  114. package/dist/lib/task/create.js +25 -0
  115. package/dist/lib/task/current-contract.js +5 -1
  116. package/dist/lib/task/decision-details.js +1 -1
  117. package/dist/lib/task/events.js +416 -17
  118. package/dist/lib/task/finalization.js +37 -13
  119. package/dist/lib/task/human-override.js +58 -36
  120. package/dist/lib/task/index.js +11 -3
  121. package/dist/lib/task/invalidation-command.js +86 -0
  122. package/dist/lib/task/invalidation.js +260 -0
  123. package/dist/lib/task/ledger-intents.js +37 -0
  124. package/dist/lib/task/local-artifact-finalization.js +299 -0
  125. package/dist/lib/task/orchestration.js +240 -144
  126. package/dist/lib/task/pr-delivery-fact.js +102 -101
  127. package/dist/lib/task/qualification-audit.js +490 -0
  128. package/dist/lib/task/qualification-confirmation.js +109 -0
  129. package/dist/lib/task/qualification-intents.js +148 -0
  130. package/dist/lib/task/review-artifacts.js +22 -23
  131. package/dist/lib/task/review-finalization.js +121 -4
  132. package/dist/lib/task/review-fingerprint.js +24 -2
  133. package/dist/lib/task/rework-intent.js +138 -0
  134. package/dist/lib/task/sections.js +6 -4
  135. package/dist/lib/task/skill-scope.js +23 -0
  136. package/dist/lib/task/task-execution-lock.js +27 -17
  137. package/dist/lib/task/verification-config.js +11 -0
  138. package/dist/lib/task/verification-engine.js +93 -16
  139. package/dist/lib/task/verification.js +3 -3
  140. package/dist/lib/task/workflow-warning-intents.js +1 -1
  141. package/dist/lib/task/write.js +11 -0
  142. package/dist/lib/version.js +11 -1
  143. package/dist/lifecycle-build-manifest.json +3 -3
  144. package/lib/agent-client.ts +9 -0
  145. package/lib/agent-clients/next-steps.ts +6 -1
  146. package/lib/decide.ts +3 -3
  147. package/lib/init.ts +1 -1
  148. package/lib/internal/agent-client.ts +4 -2
  149. package/lib/internal/cli-route-inventory.ts +140 -0
  150. package/lib/internal/codex-lifecycle.ts +8 -6
  151. package/lib/internal/codex-sandbox-controller.ts +7 -2
  152. package/lib/internal/git-workflow.ts +9 -6
  153. package/lib/internal/platform-checks.ts +14 -6
  154. package/lib/internal/platform-comment.ts +20 -12
  155. package/lib/internal/platform-context.ts +5 -3
  156. package/lib/internal/platform-issue.ts +17 -11
  157. package/lib/internal/platform-metadata.ts +70 -0
  158. package/lib/internal/platform-pr-review.ts +23 -12
  159. package/lib/internal/platform-pr.ts +65 -27
  160. package/lib/internal/platform-release-notes.ts +8 -6
  161. package/lib/internal/platform-security.ts +83 -0
  162. package/lib/internal/pr-review-grade.ts +20 -11
  163. package/lib/internal/release-workflow.ts +21 -9
  164. package/lib/internal/sandbox-control.ts +44 -6
  165. package/lib/internal/task-activity.ts +15 -7
  166. package/lib/internal/task-artifact.ts +204 -22
  167. package/lib/internal/task-context.ts +3 -1
  168. package/lib/internal/task-create.ts +78 -17
  169. package/lib/internal/task-delivery.ts +3 -1
  170. package/lib/internal/task-event.ts +9 -4
  171. package/lib/internal/task-finalization.ts +6 -4
  172. package/lib/internal/task-invalidation.ts +41 -0
  173. package/lib/internal/task-ledger.ts +21 -8
  174. package/lib/internal/task-lifecycle.ts +5 -3
  175. package/lib/internal/task-operation-registry.ts +482 -0
  176. package/lib/internal/task-orchestration.ts +12 -0
  177. package/lib/internal/task-override.ts +15 -9
  178. package/lib/internal/task-qualification.ts +61 -0
  179. package/lib/internal/task-review.ts +6 -4
  180. package/lib/internal/task-short-id.ts +10 -1
  181. package/lib/internal/task-snapshot.ts +3 -1
  182. package/lib/internal/task-validate.ts +6 -2
  183. package/lib/internal/task-verify.ts +10 -7
  184. package/lib/internal/task-warning.ts +10 -4
  185. package/lib/platform/adapters.ts +3 -2
  186. package/lib/platform/change-request-git-evidence.ts +36 -9
  187. package/lib/platform/comment-safety.ts +250 -0
  188. package/lib/platform/completion-backfill.ts +9 -8
  189. package/lib/platform/context.ts +97 -134
  190. package/lib/platform/github-client.ts +2 -2
  191. package/lib/platform/github-provider.ts +1132 -0
  192. package/lib/platform/in-label-sync.ts +208 -0
  193. package/lib/platform/issue-comments.ts +255 -80
  194. package/lib/platform/issues.ts +344 -174
  195. package/lib/platform/metadata-labels.ts +5 -2
  196. package/lib/platform/none-provider.ts +35 -0
  197. package/lib/platform/pr-change-report.ts +639 -0
  198. package/lib/platform/pr-checks.ts +126 -106
  199. package/lib/platform/pr-review.ts +88 -85
  200. package/lib/platform/pr-summary.ts +581 -53
  201. package/lib/platform/provider-bridge.ts +82 -0
  202. package/lib/platform/provider-contract.ts +611 -0
  203. package/lib/platform/provider-loader.ts +307 -0
  204. package/lib/platform/provider-validation.ts +611 -0
  205. package/lib/platform/pull-request-metadata.ts +10 -7
  206. package/lib/platform/pull-requests.ts +781 -550
  207. package/lib/platform/release-notes.ts +76 -59
  208. package/lib/platform/releases.ts +77 -43
  209. package/lib/platform/repository-metadata.ts +453 -0
  210. package/lib/platform/resource-identity.ts +121 -0
  211. package/lib/platform/security-alerts.ts +191 -0
  212. package/lib/platform/task-identities.ts +40 -0
  213. package/lib/platform/types.ts +4 -2
  214. package/lib/platform/verification-required.ts +11 -13
  215. package/lib/platform/verification-sync.ts +128 -304
  216. package/lib/pr-review/evidence-grading.ts +25 -8
  217. package/lib/process-data/index.ts +7 -0
  218. package/lib/run/index.ts +62 -22
  219. package/lib/sandbox/commands/control-status.ts +26 -0
  220. package/lib/sandbox/commands/create.ts +46 -6
  221. package/lib/sandbox/commands/ls.ts +7 -0
  222. package/lib/sandbox/commands/rm.ts +1000 -87
  223. package/lib/sandbox/commands/show.ts +16 -0
  224. package/lib/sandbox/control/client.ts +203 -19
  225. package/lib/sandbox/control/completed-reentry.ts +98 -0
  226. package/lib/sandbox/control/container-identity.ts +27 -43
  227. package/lib/sandbox/control/executor.ts +180 -15
  228. package/lib/sandbox/control/lifecycle.ts +629 -17
  229. package/lib/sandbox/control/native-file-lock.ts +209 -0
  230. package/lib/sandbox/control/protocol.ts +118 -2
  231. package/lib/sandbox/control/server.ts +724 -34
  232. package/lib/sandbox/control/state.ts +257 -4
  233. package/lib/sandbox/control/task-view.ts +240 -0
  234. package/lib/sandbox/engines/authority.ts +365 -0
  235. package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
  236. package/lib/sandbox/index.ts +7 -0
  237. package/lib/sandbox/recovery.ts +21 -1
  238. package/lib/sandbox/workspace-view.ts +9 -3
  239. package/lib/sandbox/worktree-safety.ts +4 -1
  240. package/lib/server/index.ts +10 -0
  241. package/lib/server/protocol.ts +36 -1
  242. package/lib/task/activity-log.ts +8 -0
  243. package/lib/task/artifact-lifecycle.ts +70 -22
  244. package/lib/task/artifact-operations.ts +626 -0
  245. package/lib/task/artifact-repair-intent.ts +71 -0
  246. package/lib/task/artifact-schema.ts +192 -0
  247. package/lib/task/capabilities.ts +331 -0
  248. package/lib/task/commands/status.ts +38 -0
  249. package/lib/task/commit-operation.ts +12 -1
  250. package/lib/task/control-authority.ts +22 -9
  251. package/lib/task/create-service.ts +139 -14
  252. package/lib/task/create.ts +27 -0
  253. package/lib/task/current-contract.ts +6 -1
  254. package/lib/task/decision-details.ts +6 -2
  255. package/lib/task/events.ts +392 -16
  256. package/lib/task/finalization.ts +50 -14
  257. package/lib/task/human-override.ts +70 -46
  258. package/lib/task/index.ts +16 -3
  259. package/lib/task/invalidation-command.ts +86 -0
  260. package/lib/task/invalidation.ts +332 -0
  261. package/lib/task/ledger-intents.ts +35 -1
  262. package/lib/task/local-artifact-finalization.ts +432 -0
  263. package/lib/task/orchestration.ts +223 -133
  264. package/lib/task/pr-delivery-fact.ts +131 -148
  265. package/lib/task/qualification-audit.ts +599 -0
  266. package/lib/task/qualification-confirmation.ts +117 -0
  267. package/lib/task/qualification-intents.ts +150 -0
  268. package/lib/task/review-artifacts.ts +21 -22
  269. package/lib/task/review-finalization.ts +133 -4
  270. package/lib/task/review-fingerprint.ts +23 -2
  271. package/lib/task/rework-intent.ts +165 -0
  272. package/lib/task/sections.ts +6 -4
  273. package/lib/task/skill-scope.ts +24 -0
  274. package/lib/task/task-execution-lock.ts +23 -14
  275. package/lib/task/verification-config.ts +12 -0
  276. package/lib/task/verification-engine.ts +103 -17
  277. package/lib/task/verification.ts +4 -4
  278. package/lib/task/workflow-warning-intents.ts +1 -1
  279. package/lib/task/write.ts +19 -0
  280. package/lib/update.ts +1 -1
  281. package/lib/version.ts +15 -1
  282. package/package.json +12 -1
  283. package/templates/.agents/rules/README.en.md +3 -1
  284. package/templates/.agents/rules/README.zh-CN.md +3 -1
  285. package/templates/.agents/rules/decision-qualification.en.md +22 -0
  286. package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
  287. package/templates/.agents/rules/evidence-reporting.en.md +28 -0
  288. package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
  289. package/templates/.agents/rules/issue-pr-commands.en.md +1 -1
  290. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +1 -1
  291. package/templates/.agents/rules/issue-sync.en.md +2 -0
  292. package/templates/.agents/rules/issue-sync.zh-CN.md +2 -0
  293. package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
  294. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
  295. package/templates/.agents/rules/local-artifact-repair.en.md +13 -2
  296. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +13 -2
  297. package/templates/.agents/rules/pr-sync.en.md +10 -4
  298. package/templates/.agents/rules/pr-sync.zh-CN.md +17 -4
  299. package/templates/.agents/rules/security-alerts.en.md +8 -8
  300. package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
  301. package/templates/.agents/rules/task-short-id.en.md +1 -4
  302. package/templates/.agents/rules/task-short-id.zh-CN.md +1 -3
  303. package/templates/.agents/skills/analyze-task/SKILL.en.md +28 -5
  304. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +29 -5
  305. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
  306. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
  307. package/templates/.agents/skills/check-task/SKILL.en.md +16 -37
  308. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -37
  309. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  310. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  311. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  312. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  313. package/templates/.agents/skills/code-task/SKILL.en.md +41 -9
  314. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +43 -11
  315. package/templates/.agents/skills/code-task/config/verify.en.json +6 -14
  316. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +6 -14
  317. package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
  318. package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
  319. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
  320. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
  321. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
  322. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
  323. package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
  324. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
  325. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +2 -0
  326. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +2 -0
  327. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +3 -3
  328. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +3 -3
  329. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +10 -4
  330. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +10 -4
  331. package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +2 -0
  332. package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +2 -0
  333. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +4 -3
  334. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +4 -3
  335. package/templates/.agents/skills/complete-task/SKILL.en.md +26 -21
  336. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +25 -21
  337. package/templates/.agents/skills/create-pr/SKILL.en.md +7 -6
  338. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +7 -7
  339. package/templates/.agents/skills/create-pr/config/verify.json +1 -0
  340. package/templates/.agents/skills/create-pr/reference/change-report.en.md +16 -4
  341. package/templates/.agents/skills/create-pr/reference/change-report.zh-CN.md +16 -4
  342. package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +5 -3
  343. package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +5 -3
  344. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +1 -1
  345. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +1 -1
  346. package/templates/.agents/skills/create-pr/scripts/change-report.mjs +3 -0
  347. package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
  348. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
  349. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  350. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  351. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  352. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  353. package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
  354. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
  355. package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
  356. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
  357. package/templates/.agents/skills/plan-task/SKILL.en.md +27 -4
  358. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +26 -4
  359. package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
  360. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
  361. package/templates/.agents/skills/review-analysis/SKILL.en.md +17 -4
  362. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +17 -4
  363. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
  364. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
  365. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
  366. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
  367. package/templates/.agents/skills/review-code/SKILL.en.md +18 -5
  368. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +18 -5
  369. package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
  370. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
  371. package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
  372. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
  373. package/templates/.agents/skills/review-plan/SKILL.en.md +17 -4
  374. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +17 -4
  375. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
  376. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
  377. package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
  378. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
  379. package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
  380. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
  381. package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
  382. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
  383. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +9 -3
  384. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +9 -3
  385. package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +3 -1
  386. package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +3 -1
  387. package/templates/.agents/skills/test/SKILL.en.md +13 -2
  388. package/templates/.agents/skills/test/SKILL.zh-CN.md +13 -2
  389. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
  390. package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -2
  391. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +2 -2
  392. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +6 -0
  393. package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +6 -0
  394. package/templates/.agents/templates/task.en.md +24 -1
  395. package/templates/.agents/templates/task.zh-CN.md +24 -1
  396. package/templates/.github/workflows/pr-label.yml +7 -26
  397. package/templates/.agents/scripts/security-alerts.github.sh +0 -151
  398. package/templates/.agents/scripts/security-alerts.sh +0 -31
  399. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
  400. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
  401. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
  402. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
@@ -1,146 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- cleanup_stale_in=false
6
- while [ "$#" -gt 0 ]; do
7
- case "$1" in
8
- --cleanup-stale-in)
9
- cleanup_stale_in=true
10
- ;;
11
- *)
12
- echo "Unknown option: $1" >&2
13
- exit 2
14
- ;;
15
- esac
16
- shift
17
- done
18
-
19
- if ! command -v gh >/dev/null 2>&1; then
20
- echo "GitHub CLI (\`gh\`) is not installed"
21
- exit 1
22
- fi
23
-
24
- if ! gh auth token >/dev/null 2>&1; then
25
- echo "GitHub CLI is not authenticated"
26
- exit 1
27
- fi
28
-
29
- if ! gh repo view --json nameWithOwner >/dev/null 2>&1; then
30
- echo "Unable to access the current repository with gh"
31
- exit 1
32
- fi
33
-
34
- tmpdir="$(mktemp -d)"
35
- trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM
36
-
37
- gh label list --limit 200 --json name --jq '.[].name' > "$tmpdir/existing-names.txt"
38
- cp "$tmpdir/existing-names.txt" "$tmpdir/existing.txt"
39
- echo "Existing labels:"
40
- cat "$tmpdir/existing-names.txt"
41
-
42
- cat <<'EOF' > "$tmpdir/common.tsv"
43
- type: bug DED6F9 A general bug
44
- type: enhancement DED6F9 A general enhancement
45
- type: feature DED6F9 A general feature
46
- type: documentation DED6F9 A documentation task
47
- type: dependency-upgrade DED6F9 A dependency upgrade
48
- type: task DED6F9 A general task
49
- status: waiting-for-triage FCF1C4 An issue we've not yet triaged or decided on
50
- status: waiting-for-feedback FCF1C4 We need additional information before we can continue
51
- status: feedback-provided FCF1C4 Feedback has been provided
52
- status: feedback-reminder FCF1C4 We've sent a reminder that we need additional information before we can continue
53
- status: pending-design-work FCF1C4 Needs design work before any code can be developed
54
- status: in-progress FCF1C4 Work is actively being developed
55
- status: on-hold FCF1C4 We can't start working on this issue yet
56
- status: blocked FCF1C4 An issue that's blocked on an external project change
57
- status: declined FCF1C4 A suggestion or change that we don't feel we should currently apply
58
- status: duplicate FCF1C4 A duplicate of another issue
59
- status: invalid FCF1C4 An issue that we don't feel is valid
60
- status: superseded FCF1C4 An issue that has been superseded by another
61
- status: bulk-closed FCF1C4 An outdated, unresolved issue that's closed in bulk as part of a cleaning process
62
- status: ideal-for-contribution FCF1C4 An issue that a contributor can help us with
63
- status: backported FCF1C4 An issue that has been backported to maintenance branches
64
- status: waiting-for-internal-feedback FCF1C4 An issue that needs input from a member or another team
65
- good first issue F9D9E6 Good for newcomers
66
- help wanted 008672 Extra attention is needed
67
- dependencies 0366d6 Pull requests that update a dependency file
68
- EOF
69
-
70
- node - ".agents/.airc.json" > "$tmpdir/in.tsv" <<'NODE'
71
- const fs = require("node:fs");
72
-
73
- const configPath = process.argv[2];
74
- const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
75
- const mapping = config.labels?.in;
76
- if (mapping === undefined) process.exit(0);
77
- if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) {
78
- throw new Error("labels.in must be an object");
79
- }
80
-
81
- for (const key of Object.keys(mapping).sort()) {
82
- if (!key || key.includes("\n") || key.includes("\r") || key.includes("\t")) {
83
- throw new Error("labels.in keys must be non-empty single-line values");
84
- }
85
- process.stdout.write(`in: ${key}\tBFD4F2\tModule label for ${key}\n`);
86
- }
87
- NODE
88
-
89
- cut -f1 "$tmpdir/in.tsv" > "$tmpdir/in-names.txt"
90
-
91
- cat "$tmpdir/in.tsv" >> "$tmpdir/common.tsv"
92
-
93
- while IFS="$(printf '\t')" read -r name color description; do
94
- [ -n "$name" ] || continue
95
- gh label create "$name" --color "$color" --description "$description" --force
96
- done < "$tmpdir/common.tsv"
97
-
98
- if [ "$cleanup_stale_in" = true ]; then
99
- while IFS= read -r name; do
100
- case "$name" in
101
- in:*)
102
- if ! grep -Fqx "$name" "$tmpdir/in-names.txt"; then
103
- gh label delete "$name" --yes
104
- fi
105
- ;;
106
- esac
107
- done < "$tmpdir/existing-names.txt"
108
- fi
109
-
110
- gh label list --limit 200 --json name --jq '.[].name' > "$tmpdir/final-names.txt"
111
- cp "$tmpdir/final-names.txt" "$tmpdir/final.txt"
112
-
113
- : > "$tmpdir/unmatched-defaults.txt"
114
- for label in bug documentation duplicate enhancement invalid question wontfix; do
115
- if grep -Fqx "$label" "$tmpdir/final-names.txt"; then
116
- printf '%s\n' "$label" >> "$tmpdir/unmatched-defaults.txt"
117
- fi
118
- done
119
-
120
- common_count="$(wc -l < "$tmpdir/common.tsv" | tr -d ' ')"
121
- dynamic_count="$(wc -l < "$tmpdir/in.tsv" | tr -d ' ')"
122
-
123
- echo "GitHub Labels initialized."
124
- echo
125
- echo "Summary:"
126
- echo "- Common labels created or updated: $common_count"
127
- echo "- in: labels created or updated: $dynamic_count"
128
- echo "- Exact-match GitHub defaults overwritten: good first issue, help wanted"
129
-
130
- if [ -s "$tmpdir/unmatched-defaults.txt" ]; then
131
- echo "- Unmatched GitHub defaults still present:"
132
- sed 's/^/ - /' "$tmpdir/unmatched-defaults.txt"
133
- else
134
- echo "- Unmatched GitHub defaults still present: none"
135
- fi
136
-
137
- echo
138
- echo "Notes:"
139
- echo "- theme: labels were intentionally not created."
140
- echo "- The operation is idempotent because every label uses gh label create --force."
141
- echo "- in: labels are derived from .agents/.airc.json labels.in."
142
- if [ "$cleanup_stale_in" = true ]; then
143
- echo "- Stale in: labels were removed only for labels absent from the confirmed mapping."
144
- else
145
- echo "- Stale in: labels were preserved; pass --cleanup-stale-in after mapping confirmation to remove them."
146
- fi
@@ -1,32 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- cleanup_stale_in=false
6
- while [ "$#" -gt 0 ]; do
7
- case "$1" in
8
- --cleanup-stale-in)
9
- cleanup_stale_in=true
10
- ;;
11
- *)
12
- echo "Unknown option: $1" >&2
13
- exit 2
14
- ;;
15
- esac
16
- shift
17
- done
18
-
19
- node - "$cleanup_stale_in" <<'NODE'
20
- const cleanupStaleIn = process.argv[2] === "true";
21
- process.stdout.write(`${JSON.stringify({
22
- status: "degraded",
23
- operation: "init-labels",
24
- error: {
25
- code: "PLATFORM_LABELS_UNSUPPORTED",
26
- message: cleanupStaleIn
27
- ? "The current platform does not provide a label adapter; stale labels were not removed."
28
- : "The current platform does not provide a label adapter."
29
- }
30
- })}\n`);
31
- NODE
32
- exit 0
@@ -1,294 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- arguments=""
6
- if [ "$#" -gt 0 ]; then
7
- arguments="$*"
8
- fi
9
-
10
- if ! command -v gh >/dev/null 2>&1; then
11
- echo "GitHub CLI (\`gh\`) is not installed"
12
- exit 1
13
- fi
14
-
15
- if ! gh auth token >/dev/null 2>&1; then
16
- echo "GitHub CLI is not authenticated"
17
- exit 1
18
- fi
19
-
20
- if ! gh repo view --json nameWithOwner >/dev/null 2>&1; then
21
- echo "Unable to access the current repository with gh"
22
- exit 1
23
- fi
24
-
25
- tmpdir="$(mktemp -d)"
26
- trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM
27
-
28
- history_mode="false"
29
-
30
- case " $arguments " in
31
- *" --history "*) history_mode="true" ;;
32
- esac
33
-
34
- echo "History mode: $history_mode"
35
-
36
- parse_semver_tags() {
37
- LC_ALL=C awk -v mode="$1" '
38
- function valid_core_number(value) {
39
- return value ~ /^(0|[1-9][0-9]*)$/
40
- }
41
-
42
- function valid_identifiers(value, prerelease, count, index_, identifiers) {
43
- if (value == "") return 0
44
- count = split(value, identifiers, ".")
45
- for (index_ = 1; index_ <= count; index_++) {
46
- if (identifiers[index_] !~ /^[0-9A-Za-z-]+$/) return 0
47
- if (prerelease && identifiers[index_] ~ /^[0-9]+$/ && identifiers[index_] !~ /^(0|[1-9][0-9]*)$/) return 0
48
- }
49
- return 1
50
- }
51
-
52
- function parse_version(tag, version, main, core, plus_at, dash_at, count) {
53
- if (substr(tag, 1, 1) != "v") return 0
54
- version = substr(tag, 2)
55
- main = version
56
- parsed_build = ""
57
- plus_at = index(main, "+")
58
- if (plus_at > 0) {
59
- parsed_build = substr(main, plus_at + 1)
60
- main = substr(main, 1, plus_at - 1)
61
- if (!valid_identifiers(parsed_build, 0)) return 0
62
- }
63
-
64
- parsed_prerelease = ""
65
- dash_at = index(main, "-")
66
- if (dash_at > 0) {
67
- parsed_prerelease = substr(main, dash_at + 1)
68
- main = substr(main, 1, dash_at - 1)
69
- if (!valid_identifiers(parsed_prerelease, 1)) return 0
70
- }
71
-
72
- count = split(main, core, ".")
73
- if (count != 3) return 0
74
- if (!valid_core_number(core[1]) || !valid_core_number(core[2]) || !valid_core_number(core[3])) return 0
75
-
76
- parsed_tag = tag
77
- parsed_major = core[1]
78
- parsed_minor = core[2]
79
- parsed_patch = core[3]
80
- return 1
81
- }
82
-
83
- function compare_decimal(left, right, index_, left_digit, right_digit) {
84
- if (length(left) != length(right)) return length(left) > length(right) ? 1 : -1
85
- for (index_ = 1; index_ <= length(left); index_++) {
86
- left_digit = substr(left, index_, 1) + 0
87
- right_digit = substr(right, index_, 1) + 0
88
- if (left_digit != right_digit) return left_digit > right_digit ? 1 : -1
89
- }
90
- return 0
91
- }
92
-
93
- function compare_ascii(left, right, alphabet, limit, index_, left_rank, right_rank) {
94
- alphabet = "+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
95
- limit = length(left) < length(right) ? length(left) : length(right)
96
- for (index_ = 1; index_ <= limit; index_++) {
97
- left_rank = index(alphabet, substr(left, index_, 1))
98
- right_rank = index(alphabet, substr(right, index_, 1))
99
- if (left_rank != right_rank) return left_rank > right_rank ? 1 : -1
100
- }
101
- if (length(left) == length(right)) return 0
102
- return length(left) > length(right) ? 1 : -1
103
- }
104
-
105
- function compare_prerelease(left, right, left_count, right_count, limit, index_, comparison, left_numeric, right_numeric, left_ids, right_ids) {
106
- if (left == "" || right == "") {
107
- if (left == right) return 0
108
- return left == "" ? 1 : -1
109
- }
110
-
111
- left_count = split(left, left_ids, ".")
112
- right_count = split(right, right_ids, ".")
113
- limit = left_count < right_count ? left_count : right_count
114
- for (index_ = 1; index_ <= limit; index_++) {
115
- left_numeric = left_ids[index_] ~ /^[0-9]+$/
116
- right_numeric = right_ids[index_] ~ /^[0-9]+$/
117
- if (left_numeric && right_numeric) {
118
- comparison = compare_decimal(left_ids[index_], right_ids[index_])
119
- } else if (left_numeric != right_numeric) {
120
- comparison = left_numeric ? -1 : 1
121
- } else {
122
- comparison = compare_ascii(left_ids[index_], right_ids[index_])
123
- }
124
- if (comparison != 0) return comparison
125
- }
126
-
127
- if (left_count == right_count) return 0
128
- return left_count > right_count ? 1 : -1
129
- }
130
-
131
- function candidate_is_higher( comparison) {
132
- comparison = compare_decimal(parsed_major, best_major)
133
- if (comparison != 0) return comparison > 0
134
- comparison = compare_decimal(parsed_minor, best_minor)
135
- if (comparison != 0) return comparison > 0
136
- comparison = compare_decimal(parsed_patch, best_patch)
137
- if (comparison != 0) return comparison > 0
138
- comparison = compare_prerelease(parsed_prerelease, best_prerelease)
139
- if (comparison != 0) return comparison > 0
140
- return compare_ascii(parsed_tag, best_tag) > 0
141
- }
142
-
143
- function increment_decimal(value, index_, digit, output) {
144
- output = ""
145
- for (index_ = length(value); index_ >= 1; index_--) {
146
- digit = substr(value, index_, 1) + 0
147
- if (digit < 9) return substr(value, 1, index_ - 1) (digit + 1) output
148
- output = "0" output
149
- }
150
- return "1" output
151
- }
152
-
153
- parse_version($0) {
154
- if (mode == "history") {
155
- printf "%s\t%s\t%s\n", parsed_major, parsed_minor, parsed_patch
156
- next
157
- }
158
-
159
- if (!have_best || candidate_is_higher()) {
160
- have_best = 1
161
- best_tag = parsed_tag
162
- best_major = parsed_major
163
- best_minor = parsed_minor
164
- best_patch = parsed_patch
165
- best_prerelease = parsed_prerelease
166
- }
167
- }
168
-
169
- END {
170
- if (mode == "history") exit
171
- if (!have_best) {
172
- best_tag = "-"
173
- best_major = "0"
174
- best_minor = "1"
175
- best_patch = "0"
176
- }
177
- printf "%s\t%s\t%s\t%s\t%s\n", best_tag, best_major, best_minor, best_patch, increment_decimal(best_patch)
178
- }
179
- '
180
- }
181
-
182
- selection="$(git tag --list 'v*' | parse_semver_tags select)"
183
- previous_ifs="$IFS"
184
- IFS="$(printf '\t')" read -r selected_tag major minor patch next_patch <<EOF
185
- $selection
186
- EOF
187
- IFS="$previous_ifs"
188
-
189
- current_version="$major.$minor.$patch"
190
- if [ "$selected_tag" = "-" ]; then
191
- version_source="compatibility default"
192
- version_milestone="$current_version"
193
- else
194
- version_source="git tag $selected_tag"
195
- version_milestone="$major.$minor.$next_patch"
196
- fi
197
-
198
- line_milestone="$major.$minor.x"
199
-
200
- echo "Detected version baseline: $current_version"
201
- echo "Version baseline source: $version_source"
202
- echo "Line milestone: $line_milestone"
203
- echo "Next version milestone: $version_milestone"
204
-
205
- repo="$(gh repo view --json nameWithOwner --jq '.nameWithOwner')"
206
-
207
- gh api "repos/$repo/milestones?state=all" --paginate \
208
- --jq '.[] | [.title, .state] | @tsv' > "$tmpdir/existing.tsv"
209
-
210
- cut -f1 "$tmpdir/existing.tsv" > "$tmpdir/existing-titles.txt"
211
- echo "Existing milestones:"
212
- cat "$tmpdir/existing.tsv"
213
-
214
- cat <<EOF > "$tmpdir/desired.tsv"
215
- General Backlog All unsorted backlogged tasks may be completed in a future version. open
216
- $line_milestone Issues that we want to resolve in $major.$minor line. open
217
- $version_milestone Issues that we want to release in v$version_milestone. open
218
- EOF
219
-
220
- if [ "$history_mode" = "true" ]; then
221
- git tag --list 'v*' | parse_semver_tags history > "$tmpdir/history-versions.tsv"
222
-
223
- if [ ! -s "$tmpdir/history-versions.tsv" ]; then
224
- echo "No valid SemVer history tags found matching v*; only standard milestones will be created."
225
- else
226
- while IFS="$(printf '\t')" read -r h_major h_minor h_patch; do
227
- printf '%s\t%s\t%s\n' \
228
- "$h_major.$h_minor.x" \
229
- "Issues that we want to resolve in $h_major.$h_minor line." \
230
- "open" >> "$tmpdir/desired.tsv"
231
-
232
- printf '%s\t%s\t%s\n' \
233
- "$h_major.$h_minor.$h_patch" \
234
- "Issues that we want to release in v$h_major.$h_minor.$h_patch." \
235
- "closed" >> "$tmpdir/desired.tsv"
236
- done < "$tmpdir/history-versions.tsv"
237
- fi
238
- fi
239
-
240
- : > "$tmpdir/created.txt"
241
- : > "$tmpdir/skipped.txt"
242
-
243
- while IFS="$(printf '\t')" read -r title description state; do
244
- [ -n "$title" ] || continue
245
- state="${state:-open}"
246
-
247
- if grep -Fqx "$title" "$tmpdir/existing-titles.txt"; then
248
- printf '%s\n' "$title" >> "$tmpdir/skipped.txt"
249
- echo "Skip existing milestone: $title"
250
- continue
251
- fi
252
-
253
- gh api "repos/$repo/milestones" \
254
- -f title="$title" \
255
- -f description="$description" \
256
- -f state="$state" >/dev/null
257
-
258
- printf '%s\n' "$title" >> "$tmpdir/created.txt"
259
- printf '%s\n' "$title" >> "$tmpdir/existing-titles.txt"
260
- echo "Created milestone: $title ($state)"
261
- done < "$tmpdir/desired.tsv"
262
-
263
- created_count="$(wc -l < "$tmpdir/created.txt" | tr -d ' ')"
264
- skipped_count="$(wc -l < "$tmpdir/skipped.txt" | tr -d ' ')"
265
-
266
- echo "GitHub Milestones initialized."
267
- echo
268
- echo "Summary:"
269
- echo "- Version baseline: $current_version"
270
- echo "- Version baseline source: $version_source"
271
- echo "- History mode: $history_mode"
272
- echo "- Created milestones: $created_count"
273
- echo "- Skipped existing milestones: $skipped_count"
274
-
275
- if [ -s "$tmpdir/created.txt" ]; then
276
- echo "- Newly created:"
277
- sed 's/^/ - /' "$tmpdir/created.txt"
278
- fi
279
-
280
- if [ -s "$tmpdir/skipped.txt" ]; then
281
- echo "- Already present:"
282
- sed 's/^/ - /' "$tmpdir/skipped.txt"
283
- fi
284
-
285
- echo
286
- echo "Notes:"
287
- echo "- Milestone titles are treated as the idempotency key."
288
- echo "- General Backlog is the fallback milestone for unsorted work."
289
- echo "- Without --history, a single version milestone is created based on the detected baseline."
290
-
291
- if [ "$history_mode" = "true" ]; then
292
- echo "- Historical X.Y.Z tags create X.Y.x milestones as open and X.Y.Z milestones as closed."
293
- echo "- Repositories with many tags may hit the GitHub API rate limit."
294
- fi
@@ -1,6 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- echo "Milestone initialization skipped: this code platform does not provide a built-in milestone adapter." >&2
6
- exit 0