@fitlab-ai/agent-infra 0.9.10 → 0.9.12

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 (375) hide show
  1. package/README.md +19 -9
  2. package/README.zh-CN.md +19 -9
  3. package/bin/cli.ts +17 -4
  4. package/dist/bin/cli.js +19 -4
  5. package/dist/bin/internal-cli.js +55 -4
  6. package/dist/lib/agent-client.js +0 -1
  7. package/dist/lib/agent-clients/adapters/codex-lifecycle/build-identity.js +71 -10
  8. package/dist/lib/agent-clients/adapters/opencode-sandbox.js +0 -4
  9. package/dist/lib/agent-clients/adapters/traecli.js +7 -8
  10. package/dist/lib/agent-clients/config.js +14 -99
  11. package/dist/lib/agent-clients/reconcile.js +1 -11
  12. package/dist/lib/agent-clients/schema.js +5 -4
  13. package/dist/lib/agent-clients/tokens.js +5 -15
  14. package/dist/lib/decide.js +14 -30
  15. package/dist/lib/defaults.json +8 -0
  16. package/dist/lib/git/workflow.js +43 -1
  17. package/dist/lib/init.js +3 -2
  18. package/dist/lib/internal/git-workflow.js +8 -1
  19. package/dist/lib/internal/platform-pr.js +8 -2
  20. package/dist/lib/internal/release-workflow.js +0 -1
  21. package/dist/lib/internal/task-delivery.js +59 -0
  22. package/dist/lib/internal/task-finalization.js +19 -9
  23. package/dist/lib/internal/task-ledger.js +8 -2
  24. package/dist/lib/internal/task-lifecycle.js +17 -93
  25. package/dist/lib/internal/task-orchestration.js +30 -216
  26. package/dist/lib/internal/task-validate.js +2 -1
  27. package/dist/lib/merge.js +205 -103
  28. package/dist/lib/platform/github-client.js +7 -1
  29. package/dist/lib/platform/pr-checks.js +8 -5
  30. package/dist/lib/platform/pr-summary.js +12 -8
  31. package/dist/lib/platform/pull-requests.js +393 -91
  32. package/dist/lib/platform/verification-required.js +13 -2
  33. package/dist/lib/platform/verification-sync.js +9 -4
  34. package/dist/lib/pr-review/evidence-grading.js +12 -4
  35. package/dist/lib/process-data/normalize.js +2 -9
  36. package/dist/lib/run/host.js +46 -16
  37. package/dist/lib/sandbox/agent-client-reconciler.js +4 -12
  38. package/dist/lib/sandbox/commands/create.js +3 -3
  39. package/dist/lib/sandbox/commands/enter.js +18 -4
  40. package/dist/lib/sandbox/config.js +8 -12
  41. package/dist/lib/sandbox/control/executor.js +131 -39
  42. package/dist/lib/sandbox/control/lifecycle.js +55 -24
  43. package/dist/lib/sandbox/control/server.js +18 -16
  44. package/dist/lib/sandbox/mounts.js +3 -2
  45. package/dist/lib/sandbox/recovery.js +123 -22
  46. package/dist/lib/sandbox/workspace-identity.js +14 -0
  47. package/dist/lib/sandbox/workspace-view.js +8 -9
  48. package/dist/lib/self-update.js +278 -0
  49. package/dist/lib/server/process-state.js +2 -2
  50. package/dist/lib/server/protocol.js +5 -5
  51. package/dist/lib/task/activity-log.js +4 -1
  52. package/dist/lib/task/artifact-lifecycle.js +6 -4
  53. package/dist/lib/task/codex-orchestration.js +1 -1
  54. package/dist/lib/task/command-options.js +1 -3
  55. package/dist/lib/task/commands/cat.js +0 -5
  56. package/dist/lib/task/commands/decisions.js +76 -92
  57. package/dist/lib/task/commands/files.js +6 -6
  58. package/dist/lib/task/commands/grep.js +25 -61
  59. package/dist/lib/task/commands/issue-body.js +6 -6
  60. package/dist/lib/task/commands/log.js +25 -10
  61. package/dist/lib/task/commands/show.js +5 -6
  62. package/dist/lib/task/commands/status.js +8 -8
  63. package/dist/lib/task/commit-intent.js +100 -0
  64. package/dist/lib/task/commit-operation.js +181 -91
  65. package/dist/lib/task/commit-policy.js +1 -1
  66. package/dist/lib/task/control-authority.js +431 -0
  67. package/dist/lib/task/create.js +39 -8
  68. package/dist/lib/task/current-contract.js +35 -0
  69. package/dist/lib/task/decision-details.js +218 -0
  70. package/dist/lib/task/decision-intents.js +5 -2
  71. package/dist/lib/task/delivery-target.js +97 -0
  72. package/dist/lib/task/delivery.js +153 -0
  73. package/dist/lib/task/events.js +11 -5
  74. package/dist/lib/task/human-override.js +5 -2
  75. package/dist/lib/task/index.js +19 -20
  76. package/dist/lib/task/ledger-intents.js +8 -9
  77. package/dist/lib/task/ledger.js +13 -6
  78. package/dist/lib/task/lifecycle.js +122 -9
  79. package/dist/lib/task/orchestration.js +105 -75
  80. package/dist/lib/task/pr-delivery-fact.js +182 -0
  81. package/dist/lib/task/review-artifacts.js +31 -12
  82. package/dist/lib/task/review-finalization.js +13 -4
  83. package/dist/lib/task/review-fingerprint.js +8 -0
  84. package/dist/lib/task/verification-engine.js +86 -39
  85. package/dist/lib/task/verification-review.js +2 -2
  86. package/dist/lib/task/workspace-snapshot.js +5 -11
  87. package/dist/lib/task/write.js +11 -1
  88. package/dist/lib/update.js +13 -35
  89. package/dist/lib/version.js +5 -1
  90. package/dist/lifecycle-build-manifest.json +3 -3
  91. package/lib/agent-client.ts +0 -1
  92. package/lib/agent-clients/adapters/codex-lifecycle/build-identity.ts +105 -10
  93. package/lib/agent-clients/adapters/codex-lifecycle/manifest-files.json +12 -1
  94. package/lib/agent-clients/adapters/opencode-sandbox.ts +0 -5
  95. package/lib/agent-clients/adapters/traecli.ts +7 -8
  96. package/lib/agent-clients/config.ts +14 -144
  97. package/lib/agent-clients/reconcile.ts +1 -12
  98. package/lib/agent-clients/schema.ts +5 -4
  99. package/lib/agent-clients/tokens.ts +5 -18
  100. package/lib/decide.ts +12 -22
  101. package/lib/defaults.json +8 -0
  102. package/lib/git/workflow.ts +38 -1
  103. package/lib/init.ts +5 -2
  104. package/lib/internal/git-workflow.ts +7 -1
  105. package/lib/internal/platform-pr.ts +8 -1
  106. package/lib/internal/release-workflow.ts +0 -1
  107. package/lib/internal/task-delivery.ts +53 -0
  108. package/lib/internal/task-finalization.ts +27 -13
  109. package/lib/internal/task-ledger.ts +8 -2
  110. package/lib/internal/task-lifecycle.ts +33 -76
  111. package/lib/internal/task-orchestration.ts +33 -190
  112. package/lib/internal/task-validate.ts +3 -2
  113. package/lib/merge.ts +236 -120
  114. package/lib/platform/github-client.ts +8 -1
  115. package/lib/platform/pr-checks.ts +7 -5
  116. package/lib/platform/pr-summary.ts +10 -7
  117. package/lib/platform/pull-requests.ts +425 -87
  118. package/lib/platform/verification-required.ts +12 -2
  119. package/lib/platform/verification-sync.ts +9 -4
  120. package/lib/pr-review/evidence-grading.ts +7 -4
  121. package/lib/process-data/normalize.ts +2 -8
  122. package/lib/run/host.ts +63 -14
  123. package/lib/sandbox/agent-client-reconciler.ts +5 -15
  124. package/lib/sandbox/commands/create.ts +4 -4
  125. package/lib/sandbox/commands/enter.ts +24 -4
  126. package/lib/sandbox/config.ts +9 -14
  127. package/lib/sandbox/control/container-identity.ts +2 -2
  128. package/lib/sandbox/control/executor.ts +148 -51
  129. package/lib/sandbox/control/lifecycle.ts +59 -31
  130. package/lib/sandbox/control/protocol.ts +1 -3
  131. package/lib/sandbox/control/server.ts +15 -12
  132. package/lib/sandbox/control/state.ts +7 -7
  133. package/lib/sandbox/mounts.ts +4 -3
  134. package/lib/sandbox/recovery.ts +162 -34
  135. package/lib/sandbox/tools.ts +1 -1
  136. package/lib/sandbox/workspace-identity.ts +28 -0
  137. package/lib/sandbox/workspace-view.ts +14 -10
  138. package/lib/self-update.ts +341 -0
  139. package/lib/server/process-state.ts +2 -2
  140. package/lib/server/protocol.ts +5 -5
  141. package/lib/task/activity-log.ts +6 -1
  142. package/lib/task/artifact-lifecycle.ts +7 -5
  143. package/lib/task/codex-orchestration.ts +2 -1
  144. package/lib/task/command-options.ts +1 -2
  145. package/lib/task/commands/cat.ts +0 -4
  146. package/lib/task/commands/decisions.ts +80 -75
  147. package/lib/task/commands/files.ts +6 -6
  148. package/lib/task/commands/grep.ts +23 -51
  149. package/lib/task/commands/issue-body.ts +6 -6
  150. package/lib/task/commands/log.ts +22 -10
  151. package/lib/task/commands/show.ts +5 -6
  152. package/lib/task/commands/status.ts +8 -8
  153. package/lib/task/commit-intent.ts +137 -0
  154. package/lib/task/commit-operation.ts +161 -79
  155. package/lib/task/commit-policy.ts +1 -2
  156. package/lib/task/control-authority.ts +563 -0
  157. package/lib/task/create.ts +40 -10
  158. package/lib/task/current-contract.ts +49 -0
  159. package/lib/task/decision-details.ts +280 -0
  160. package/lib/task/decision-intents.ts +7 -2
  161. package/lib/task/delivery-target.ts +130 -0
  162. package/lib/task/delivery.ts +160 -0
  163. package/lib/task/events.ts +10 -5
  164. package/lib/task/human-override.ts +5 -2
  165. package/lib/task/index.ts +19 -20
  166. package/lib/task/ledger-intents.ts +6 -8
  167. package/lib/task/ledger.ts +17 -7
  168. package/lib/task/lifecycle.ts +113 -4
  169. package/lib/task/orchestration.ts +102 -80
  170. package/lib/task/pr-delivery-fact.ts +254 -0
  171. package/lib/task/review-artifacts.ts +53 -15
  172. package/lib/task/review-finalization.ts +21 -5
  173. package/lib/task/review-fingerprint.ts +10 -0
  174. package/lib/task/verification-engine.ts +78 -46
  175. package/lib/task/verification-review.ts +3 -1
  176. package/lib/task/workspace-snapshot.ts +4 -13
  177. package/lib/task/write.ts +20 -1
  178. package/lib/update.ts +14 -38
  179. package/lib/version.ts +6 -1
  180. package/package.json +1 -1
  181. package/templates/.agents/README.en.md +5 -3
  182. package/templates/.agents/README.zh-CN.md +5 -3
  183. package/templates/.agents/rules/README.en.md +4 -2
  184. package/templates/.agents/rules/README.zh-CN.md +4 -2
  185. package/templates/.agents/rules/compatibility-policy.en.md +5 -4
  186. package/templates/.agents/rules/compatibility-policy.zh-CN.md +5 -4
  187. package/templates/.agents/rules/create-issue.en.md +11 -2
  188. package/templates/.agents/rules/create-issue.zh-CN.md +24 -2
  189. package/templates/.agents/rules/human-decision-context.en.md +9 -7
  190. package/templates/.agents/rules/human-decision-context.zh-CN.md +9 -7
  191. package/templates/.agents/rules/{issue-fields.github.en.md → issue-fields.en.md} +1 -1
  192. package/templates/.agents/rules/{issue-fields.github.zh-CN.md → issue-fields.zh-CN.md} +1 -1
  193. package/templates/.agents/rules/issue-pr-commands.en.md +5 -18
  194. package/templates/.agents/rules/issue-pr-commands.zh-CN.md +1 -1
  195. package/templates/.agents/rules/issue-sync.en.md +26 -5
  196. package/templates/.agents/rules/issue-sync.zh-CN.md +62 -5
  197. package/templates/.agents/rules/label-milestone-setup.en.md +15 -2
  198. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +15 -2
  199. package/templates/.agents/rules/local-artifact-repair.en.md +46 -0
  200. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +46 -0
  201. package/templates/.agents/rules/milestone-inference.en.md +12 -2
  202. package/templates/.agents/rules/milestone-inference.zh-CN.md +25 -3
  203. package/templates/.agents/rules/next-step-output.en.md +3 -3
  204. package/templates/.agents/rules/next-step-output.zh-CN.md +3 -3
  205. package/templates/.agents/rules/no-mid-flow-questions.en.md +1 -1
  206. package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +1 -1
  207. package/templates/.agents/rules/pr-sync.en.md +23 -14
  208. package/templates/.agents/rules/pr-sync.zh-CN.md +23 -2
  209. package/templates/.agents/rules/release-commands.en.md +42 -3
  210. package/templates/.agents/rules/release-commands.zh-CN.md +42 -3
  211. package/templates/.agents/rules/review-handshake.en.md +1 -1
  212. package/templates/.agents/rules/review-handshake.zh-CN.md +1 -1
  213. package/templates/.agents/rules/security-alerts.en.md +17 -2
  214. package/templates/.agents/rules/security-alerts.zh-CN.md +17 -2
  215. package/templates/.agents/rules/sync-content-generation.en.md +8 -0
  216. package/templates/.agents/rules/sync-content-generation.zh-CN.md +8 -0
  217. package/templates/.agents/rules/task-management.en.md +2 -3
  218. package/templates/.agents/rules/task-management.zh-CN.md +2 -3
  219. package/templates/.agents/scripts/security-alerts.github.sh +151 -0
  220. package/templates/.agents/scripts/security-alerts.sh +31 -0
  221. package/templates/.agents/skills/analyze-task/SKILL.en.md +4 -3
  222. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +4 -3
  223. package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
  224. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
  225. package/templates/.agents/skills/cancel-task/SKILL.en.md +2 -2
  226. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +2 -2
  227. package/templates/.agents/skills/check-task/SKILL.en.md +2 -2
  228. package/templates/.agents/skills/check-task/SKILL.zh-CN.md +2 -2
  229. package/templates/.agents/skills/close-codescan/SKILL.en.md +3 -3
  230. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +3 -3
  231. package/templates/.agents/skills/close-dependabot/SKILL.en.md +3 -3
  232. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +3 -3
  233. package/templates/.agents/skills/code-task/SKILL.en.md +8 -5
  234. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +9 -6
  235. package/templates/.agents/skills/commit/SKILL.en.md +30 -10
  236. package/templates/.agents/skills/commit/SKILL.zh-CN.md +6 -7
  237. package/templates/.agents/skills/commit/config/verify.json +1 -1
  238. package/templates/.agents/skills/commit/reference/commit-orchestration.en.md +3 -3
  239. package/templates/.agents/skills/commit/reference/commit-orchestration.zh-CN.md +3 -3
  240. package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +1 -1
  241. package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +1 -1
  242. package/templates/.agents/skills/commit/reference/task-status-update.en.md +2 -2
  243. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -2
  244. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +7 -6
  245. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +7 -6
  246. package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -1
  247. package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -1
  248. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +1 -1
  249. package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +1 -1
  250. package/templates/.agents/skills/complete-task/SKILL.en.md +13 -13
  251. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +13 -13
  252. package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +2 -2
  253. package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +2 -2
  254. package/templates/.agents/skills/create-pr/SKILL.en.md +9 -11
  255. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +9 -11
  256. package/templates/.agents/skills/create-pr/reference/change-report.en.md +9 -4
  257. package/templates/.agents/skills/create-pr/reference/change-report.zh-CN.md +9 -4
  258. package/templates/.agents/skills/create-pr/scripts/change-report.mjs +203 -0
  259. package/templates/.agents/skills/create-release-note/SKILL.en.md +5 -6
  260. package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +5 -6
  261. package/templates/.agents/skills/create-task/SKILL.en.md +2 -1
  262. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +2 -1
  263. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  264. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  265. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  266. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  267. package/templates/.agents/skills/import-issue/SKILL.en.md +1 -1
  268. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +1 -1
  269. package/templates/.agents/skills/init-labels/SKILL.en.md +9 -10
  270. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +9 -10
  271. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +57 -1
  272. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +27 -1
  273. package/templates/.agents/skills/init-milestones/SKILL.en.md +3 -5
  274. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +3 -5
  275. package/templates/.agents/skills/plan-task/SKILL.en.md +4 -3
  276. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +4 -3
  277. package/templates/.agents/skills/restore-task/SKILL.en.md +1 -1
  278. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +1 -1
  279. package/templates/.agents/skills/review-analysis/SKILL.en.md +8 -5
  280. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +8 -5
  281. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -0
  282. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -0
  283. package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +18 -0
  284. package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +18 -0
  285. package/templates/.agents/skills/review-code/SKILL.en.md +11 -8
  286. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +11 -8
  287. package/templates/.agents/skills/review-code/config/verify.en.json +1 -0
  288. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -0
  289. package/templates/.agents/skills/review-code/reference/migration-risks.en.md +2 -1
  290. package/templates/.agents/skills/review-code/reference/migration-risks.zh-CN.md +2 -1
  291. package/templates/.agents/skills/review-code/reference/output-templates.en.md +19 -1
  292. package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +19 -1
  293. package/templates/.agents/skills/review-code/reference/report-template.en.md +4 -2
  294. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +4 -2
  295. package/templates/.agents/skills/review-plan/SKILL.en.md +8 -5
  296. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +8 -5
  297. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -0
  298. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -0
  299. package/templates/.agents/skills/review-plan/reference/output-templates.en.md +18 -0
  300. package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +18 -0
  301. package/templates/.agents/skills/review-pr/SKILL.en.md +1 -0
  302. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +1 -0
  303. package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +2 -2
  304. package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +2 -2
  305. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +5 -0
  306. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +5 -0
  307. package/templates/.agents/skills/run-task/SKILL.en.md +5 -1
  308. package/templates/.agents/skills/run-task/SKILL.zh-CN.md +5 -1
  309. package/templates/.agents/skills/update-agent-infra/SKILL.en.md +2 -2
  310. package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +2 -2
  311. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +144 -109
  312. package/templates/.agents/skills/watch-pr/SKILL.en.md +5 -5
  313. package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +5 -5
  314. package/templates/.agents/templates/task.en.md +6 -2
  315. package/templates/.agents/templates/task.zh-CN.md +6 -2
  316. package/templates/.agents/workflows/bug-fix.en.yaml +9 -8
  317. package/templates/.agents/workflows/bug-fix.zh-CN.yaml +9 -8
  318. package/templates/.agents/workflows/feature-development.en.yaml +9 -8
  319. package/templates/.agents/workflows/feature-development.zh-CN.yaml +9 -8
  320. package/templates/.agents/workflows/refactoring.en.yaml +9 -8
  321. package/templates/.agents/workflows/refactoring.zh-CN.yaml +9 -8
  322. package/templates/.claude/commands/analyze-task.en.md +1 -1
  323. package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
  324. package/templates/.claude/commands/block-task.en.md +1 -1
  325. package/templates/.claude/commands/block-task.zh-CN.md +1 -1
  326. package/templates/.claude/commands/cancel-task.en.md +1 -1
  327. package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
  328. package/templates/.claude/commands/check-task.en.md +1 -1
  329. package/templates/.claude/commands/check-task.zh-CN.md +1 -1
  330. package/templates/.claude/commands/code-task.en.md +1 -1
  331. package/templates/.claude/commands/code-task.zh-CN.md +1 -1
  332. package/templates/.claude/commands/commit.en.md +1 -1
  333. package/templates/.claude/commands/commit.zh-CN.md +1 -1
  334. package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
  335. package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
  336. package/templates/.claude/commands/complete-task.en.md +1 -1
  337. package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
  338. package/templates/.claude/commands/create-pr.en.md +1 -1
  339. package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
  340. package/templates/.claude/commands/plan-task.en.md +1 -1
  341. package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
  342. package/templates/.claude/commands/review-analysis.en.md +1 -1
  343. package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
  344. package/templates/.claude/commands/review-code.en.md +1 -1
  345. package/templates/.claude/commands/review-code.zh-CN.md +1 -1
  346. package/templates/.claude/commands/review-plan.en.md +1 -1
  347. package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
  348. package/templates/.claude/commands/run-manual-validation.en.md +1 -1
  349. package/templates/.claude/commands/run-manual-validation.zh-CN.md +1 -1
  350. package/templates/.claude/commands/run-task.en.md +1 -1
  351. package/templates/.claude/commands/run-task.zh-CN.md +1 -1
  352. package/templates/.claude/commands/watch-pr.en.md +1 -1
  353. package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
  354. package/templates/{.trae/skills → .traecli/commands}/update-agent-infra.en.md +0 -1
  355. package/templates/{.trae/skills → .traecli/commands}/update-agent-infra.zh-CN.md +0 -1
  356. package/dist/lib/builtin-tuis.js +0 -40
  357. package/lib/builtin-tuis.ts +0 -56
  358. package/templates/.agents/rules/create-issue.github.en.md +0 -14
  359. package/templates/.agents/rules/create-issue.github.zh-CN.md +0 -27
  360. package/templates/.agents/rules/issue-pr-commands.github.en.md +0 -34
  361. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +0 -49
  362. package/templates/.agents/rules/issue-sync.github.en.md +0 -40
  363. package/templates/.agents/rules/issue-sync.github.zh-CN.md +0 -76
  364. package/templates/.agents/rules/label-milestone-setup.github.en.md +0 -60
  365. package/templates/.agents/rules/label-milestone-setup.github.zh-CN.md +0 -60
  366. package/templates/.agents/rules/milestone-inference.github.en.md +0 -15
  367. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +0 -27
  368. package/templates/.agents/rules/pr-checks-commands.github.en.md +0 -18
  369. package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +0 -34
  370. package/templates/.agents/rules/pr-sync.github.en.md +0 -43
  371. package/templates/.agents/rules/pr-sync.github.zh-CN.md +0 -69
  372. package/templates/.agents/rules/release-commands.github.en.md +0 -38
  373. package/templates/.agents/rules/release-commands.github.zh-CN.md +0 -38
  374. package/templates/.agents/rules/security-alerts.github.en.md +0 -43
  375. package/templates/.agents/rules/security-alerts.github.zh-CN.md +0 -43
@@ -15,7 +15,7 @@ Initialize the repository's standard labels taxonomy.
15
15
 
16
16
  Confirm that:
17
17
  - read `.agents/rules/label-milestone-setup.md` first
18
- - use its authentication commands to verify platform access
18
+ - the repository configuration and requested mapping are ready
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
@@ -28,9 +28,9 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
28
28
  ```
29
29
 
30
30
  The script and `.agents/rules/label-milestone-setup.md` are responsible for:
31
- - Capturing the current label snapshot before making changes
32
- - Creating or updating the standard label set with the platform-specific label command
33
- - Reporting unmatched platform-default labels such as `question` and `wontfix`
31
+ - Reading the configured `labels.in` mapping and preserving unrelated labels
32
+ - Selecting the provider leaf or returning a clear no-op/degraded result
33
+ - Creating or updating the standard label set and reporting the final summary
34
34
  - Printing the final execution summary
35
35
 
36
36
  ### 3. Standard taxonomy
@@ -69,8 +69,8 @@ Show the current mapping and ask whether it should be updated.
69
69
  #### 4.3 Write the mapping and create labels
70
70
 
71
71
  1. Write the final mapping to `.agents/.airc.json` under `labels.in`.
72
- 2. Create one `in: {key}` label for each mapping key by following the label-create command in `.agents/rules/label-milestone-setup.md`.
73
- 3. After user confirmation, delete stale `in:` labels that are no longer present in the final mapping.
72
+ 2. Run `bash .agents/skills/init-labels/scripts/init-labels.sh` to create or update one `in: {key}` label for each mapping key.
73
+ 3. After user confirmation, rerun the script with `--cleanup-stale-in` to delete stale `in:` labels that are no longer present in the final mapping.
74
74
 
75
75
  ### 5. Output and behavior guarantees
76
76
 
@@ -82,7 +82,7 @@ The summary must include:
82
82
  - Any unmatched platform-default labels still present
83
83
 
84
84
  Operational notes:
85
- - The operation is idempotent because the rule-file command updates or overwrites existing labels in place.
85
+ - The operation is idempotent because the provider leaf updates or overwrites existing labels in place.
86
86
  - `in:` labels are managed by the AI-guided step together with the `.airc.json` mapping.
87
87
 
88
88
  ### 6. Inform User
@@ -100,8 +100,7 @@ Next step - initialize milestones (optional):
100
100
 
101
101
  ## Error Handling
102
102
 
103
- - platform CLI not found: prompt "the platform CLI is not installed"
104
- - Authentication failed: prompt "the platform CLI is not authenticated"
105
- - Repository access failed: prompt "Unable to access the current repository with the platform CLI"
103
+ - Provider capability unavailable: report the script's `degraded` or `no-op` result without claiming remote changes.
104
+ - Provider authentication or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
106
105
  - Permission error: prompt "No permission to manage labels in this repository"
107
106
  - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -15,7 +15,7 @@ description: >
15
15
 
16
16
  确认以下条件成立:
17
17
  - 执行前先读取 `.agents/rules/label-milestone-setup.md`
18
- - 按其中的认证命令验证平台访问能力
18
+ - 仓库配置和请求的映射已准备完成
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
@@ -28,9 +28,9 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
28
28
  ```
29
29
 
30
30
  脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
- - 在修改前保存当前 label 快照
32
- - 使用平台对应的 label 创建或更新命令维护标准 label 集合
33
- - 提示仍然存在的平台预置 labels,例如 `question` 和 `wontfix`
31
+ - 读取配置的 `labels.in` 映射并保留无关 label
32
+ - 选择 provider 叶子,或返回明确的 no-op/degraded 结果
33
+ - 创建或更新标准 label 集合并输出最终摘要
34
34
  - 输出最终执行摘要
35
35
 
36
36
  ### 3. 标准分类体系
@@ -69,8 +69,8 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
69
69
  #### 4.3 写入配置并创建 label
70
70
 
71
71
  1. 将最终映射写入 `.agents/.airc.json` 的 `labels.in` 字段。
72
- 2. 为每个映射 key 按 `.agents/rules/label-milestone-setup.md` 的 label 创建命令创建 `in: {key}` label。
73
- 3. 询问用户确认后,清理不在最终映射中的旧 `in:` label。
72
+ 2. 执行 `bash .agents/skills/init-labels/scripts/init-labels.sh`,为每个映射 key 创建或更新 `in: {key}` label。
73
+ 3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行脚本,清理不在最终映射中的旧 `in:` label。
74
74
 
75
75
  ### 5. 输出与行为保证
76
76
 
@@ -82,7 +82,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
82
82
  - 仍然存在的未匹配平台预置 labels
83
83
 
84
84
  执行说明:
85
- - 整个操作具备幂等性,因为规则文件中的 label 创建命令按覆盖或更新方式执行。
85
+ - 整个操作具备幂等性,因为 provider 叶子会按覆盖或更新方式处理已有 label。
86
86
  - `in:` labels 由 AI 引导步骤和 `.airc.json` 映射统一管理。
87
87
 
88
88
  ### 6. 告知用户
@@ -100,8 +100,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
100
100
 
101
101
  ## 错误处理
102
102
 
103
- - 未找到平台 CLI:提示 "the platform CLI is not installed"
104
- - 认证失败:提示 "the platform CLI is not authenticated"
105
- - 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
103
+ - provider 能力不可用:如实报告脚本的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
104
+ - provider 认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
106
105
  - 权限不足:提示 "No permission to manage labels in this repository"
107
106
  - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -2,6 +2,20 @@
2
2
 
3
3
  set -e
4
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
+
5
19
  if ! command -v gh >/dev/null 2>&1; then
6
20
  echo "GitHub CLI (\`gh\`) is not installed"
7
21
  exit 1
@@ -53,11 +67,46 @@ help wanted 008672 Extra attention is needed
53
67
  dependencies 0366d6 Pull requests that update a dependency file
54
68
  EOF
55
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
+
56
93
  while IFS="$(printf '\t')" read -r name color description; do
57
94
  [ -n "$name" ] || continue
58
95
  gh label create "$name" --color "$color" --description "$description" --force
59
96
  done < "$tmpdir/common.tsv"
60
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
+
61
110
  gh label list --limit 200 --json name --jq '.[].name' > "$tmpdir/final-names.txt"
62
111
  cp "$tmpdir/final-names.txt" "$tmpdir/final.txt"
63
112
 
@@ -69,11 +118,13 @@ for label in bug documentation duplicate enhancement invalid question wontfix; d
69
118
  done
70
119
 
71
120
  common_count="$(wc -l < "$tmpdir/common.tsv" | tr -d ' ')"
121
+ dynamic_count="$(wc -l < "$tmpdir/in.tsv" | tr -d ' ')"
72
122
 
73
123
  echo "GitHub Labels initialized."
74
124
  echo
75
125
  echo "Summary:"
76
126
  echo "- Common labels created or updated: $common_count"
127
+ echo "- in: labels created or updated: $dynamic_count"
77
128
  echo "- Exact-match GitHub defaults overwritten: good first issue, help wanted"
78
129
 
79
130
  if [ -s "$tmpdir/unmatched-defaults.txt" ]; then
@@ -87,4 +138,9 @@ echo
87
138
  echo "Notes:"
88
139
  echo "- theme: labels were intentionally not created."
89
140
  echo "- The operation is idempotent because every label uses gh label create --force."
90
- echo "- in: labels are managed by the AI-guided step in the SKILL."
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
@@ -2,5 +2,31 @@
2
2
 
3
3
  set -e
4
4
 
5
- echo "Label initialization skipped: this code platform does not provide a built-in label adapter." >&2
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
6
32
  exit 0
@@ -15,7 +15,7 @@ Initialize the repository's standard milestones taxonomy.
15
15
 
16
16
  Confirm that:
17
17
  - read `.agents/rules/label-milestone-setup.md` first
18
- - use its authentication commands to verify platform access
18
+ - the requested milestone arguments are ready
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
@@ -31,7 +31,7 @@ The script and `.agents/rules/label-milestone-setup.md` are responsible for:
31
31
  - Creating and cleaning up a temporary workspace
32
32
  - Detecting whether `--history` was requested
33
33
  - Scanning all `v*` Git tags, selecting the highest valid version by SemVer precedence, and using compatibility default `0.1.0` when none is valid, without reading ecosystem manifests
34
- - Listing current milestones with the platform-specific milestone query command
34
+ - Letting the provider leaf list and write current milestones
35
35
  - Building the desired milestone set and creating only the missing titles
36
36
  - Printing the final execution summary
37
37
 
@@ -78,9 +78,7 @@ Next step - initialize labels (optional):
78
78
 
79
79
  ## Error Handling
80
80
 
81
- - platform CLI not found: prompt "the platform CLI is not installed"
82
- - Authentication failed: prompt "the platform CLI is not authenticated"
83
- - Repository access failed: prompt "Unable to access the current repository with the platform CLI"
81
+ - Provider capability, authentication, or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
84
82
  - Version detection failed: prompt "Unable to determine current version baseline"
85
83
  - No valid SemVer `v*` tags found in `--history` mode: prompt "No valid SemVer history tags found matching v*; only standard milestones will be created"
86
84
  - Permission error: prompt "No permission to manage milestones in this repository"
@@ -15,7 +15,7 @@ description: >
15
15
 
16
16
  确认以下条件成立:
17
17
  - 执行前先读取 `.agents/rules/label-milestone-setup.md`
18
- - 按其中的认证命令验证平台访问能力
18
+ - 请求的 milestone 参数已准备完成
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
@@ -31,7 +31,7 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
31
31
  - 创建并清理临时工作目录
32
32
  - 检测是否传入 `--history`
33
33
  - 扫描所有 `v*` Git tag,按 SemVer precedence 选择最高合法版本;没有合法版本时使用兼容默认值 `0.1.0`,且不读取任何生态 manifest
34
- - 使用平台对应的 milestones 查询命令读取当前里程碑
34
+ - 由 provider 叶子读取并写入当前里程碑
35
35
  - 构建目标里程碑集合,并且只创建缺失标题
36
36
  - 输出最终执行摘要
37
37
 
@@ -78,9 +78,7 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
78
78
 
79
79
  ## 错误处理
80
80
 
81
- - 未找到平台 CLI:提示 "the platform CLI is not installed"
82
- - 认证失败:提示 "the platform CLI is not authenticated"
83
- - 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
81
+ - provider 能力、认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
84
82
  - 版本解析失败:提示 "Unable to determine current version baseline"
85
83
  - `--history` 模式下未找到合法 SemVer `v*` git tags:提示 "No valid SemVer history tags found matching v*; only standard milestones will be created"
86
84
  - 权限不足:提示 "No permission to manage milestones in this repository"
@@ -7,7 +7,7 @@ description: >
7
7
  ---
8
8
 
9
9
  # Design Technical Plan
10
- > `--agent` values follow the "Collaborator Token Specification" in `.agents/rules/task-management.md`: standard AI short tokens (`claude`/`codex`/`antigravity`/`opencode`/`cursor`), long-name normalization (`claude-code`->`claude`, `antigravity-cli`->`antigravity`), or the `human` manual exception.
10
+ > `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
11
11
 
12
12
  If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to the completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts.
13
13
 
@@ -15,6 +15,7 @@ If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--or
15
15
 
16
16
  - This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
17
17
  - This is a **mandatory human review checkpoint**; do not automatically proceed to implementation
18
+ - Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
18
19
  - When the plan touches compatibility, migration, old formats, or old entry points, read `.agents/rules/compatibility-policy.md` first. Do not design adapters, shims, dual writes, or parallel state machines without passing its admission gate
19
20
  - After executing this skill, you **must** immediately update task status in task.md
20
21
 
@@ -24,7 +25,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
24
25
 
25
26
  After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first. Reading instruction files does not count as an external-state action or conclusion.
26
27
 
27
- Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
28
+ Run these commands and paste the raw output into this round's `## State Check` section:
28
29
 
29
30
  ```bash
30
31
  agent-infra-internal task-snapshot {task-id} --format text
@@ -34,7 +35,7 @@ Before the state check is complete, do not make external-state assertions such a
34
35
 
35
36
  ## Task Context Resolution
36
37
 
37
- > 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.
38
+ > The entry point may omit the task ref; explicit task scope accepts only `--task <ref>` or `-t <ref>`, and positional task refs are not interpreted. Preserve every other business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to the full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
38
39
 
39
40
  > 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.
40
41
 
@@ -7,13 +7,14 @@ description: >
7
7
  ---
8
8
 
9
9
  # 设计技术方案
10
- > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」:标准 AI 短名(`claude`/`codex`/`antigravity`/`opencode`/`cursor`)、长名归一化(`claude-code`→`claude`、`antigravity-cli`→`antigravity`)或人工例外 `human`。
10
+ > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
11
11
 
12
12
  若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。
13
13
 
14
14
  ## 行为边界 / 关键规则
15
15
 
16
16
  - 本技能仅产出技术方案文档(`plan.md` 或 `plan-r{N}.md`)—— 不修改任何业务代码
17
+ - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
17
18
  - 这是一个**强制性的人工审查检查点** —— 不要自动进入实现阶段
18
19
  - 方案涉及兼容、迁移、旧格式或旧入口时,先读取 `.agents/rules/compatibility-policy.md`;未通过准入门槛时不得设计 adapter、shim、双写或并行状态机
19
20
  - 执行本技能后,你**必须**立即更新 task.md 中的任务状态
@@ -24,7 +25,7 @@ description: >
24
25
 
25
26
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
26
27
 
27
- 运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
28
+ 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
28
29
 
29
30
  ```bash
30
31
  agent-infra-internal task-snapshot {task-id} --format text
@@ -34,7 +35,7 @@ agent-infra-internal task-snapshot {task-id} --format text
34
35
 
35
36
  ## 任务上下文解析
36
37
 
37
- > 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
38
+ > 入口可省略 task ref;显式 task scope 仅接受 `--task <ref>` 或 `-t <ref>`,不再解释位置 task ref。保留其余业务操作数后调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
38
39
 
39
40
  > 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
40
41
 
@@ -6,7 +6,7 @@ description: >
6
6
  ---
7
7
 
8
8
  # Restore Task
9
- > `--agent` values follow the "Collaborator Token Specification" in `.agents/rules/task-management.md`: standard AI short tokens (`claude`/`codex`/`antigravity`/`opencode`/`cursor`), long-name normalization (`claude-code`->`claude`, `antigravity-cli`->`antigravity`), or the `human` manual exception.
9
+ > `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
10
10
 
11
11
 
12
12
  Restore local task workspace files from platform Issue comments that contain sync markers.
@@ -6,7 +6,7 @@ description: >
6
6
  ---
7
7
 
8
8
  # 还原任务
9
- > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」:标准 AI 短名(`claude`/`codex`/`antigravity`/`opencode`/`cursor`)、长名归一化(`claude-code`→`claude`、`antigravity-cli`→`antigravity`)或人工例外 `human`。
9
+ > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
10
10
 
11
11
 
12
12
  从带有 sync 标记的平台 Issue 评论中恢复本地任务工作区文件。
@@ -7,7 +7,7 @@ description: >
7
7
  ---
8
8
 
9
9
  # Requirement Analysis Review
10
- > `--agent` values follow the "Collaborator Token Specification" in `.agents/rules/task-management.md`: standard AI short tokens (`claude`/`codex`/`antigravity`/`opencode`/`cursor`), long-name normalization (`claude-code`->`claude`, `antigravity-cli`->`antigravity`), or the `human` manual exception.
10
+ > `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
11
11
 
12
12
  If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to both the summary finalizer and completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts.
13
13
 
@@ -16,6 +16,7 @@ Review the latest analysis artifact and produce `review-analysis.md` or `review-
16
16
  ## Boundary / Critical Rules
17
17
 
18
18
  - This skill only reviews analysis artifacts and writes a report; it does not modify product code.
19
+ - Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
19
20
  - After executing this skill, you **must** immediately update task.md.
20
21
 
21
22
  Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
@@ -24,7 +25,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
24
25
 
25
26
  After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first.
26
27
 
27
- Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
28
+ Run these commands and paste the raw output into this round's `## State Check` section:
28
29
 
29
30
  ```bash
30
31
  agent-infra-internal task-snapshot {task-id} --format text
@@ -32,7 +33,7 @@ agent-infra-internal task-snapshot {task-id} --format text
32
33
 
33
34
  ## Task Context Resolution
34
35
 
35
- > 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.
36
+ > The entry point may omit the task ref; explicit task scope accepts only `--task <ref>` or `-t <ref>`, and positional task refs are not interpreted. Preserve every other business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to the full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
36
37
 
37
38
  > 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.
38
39
 
@@ -69,7 +70,7 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
69
70
 
70
71
  ### 6. Update Task Status
71
72
 
72
- 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-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}` exactly once.
73
+ 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, make the initial call to `agent-infra-internal task-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`; after a failure, follow `.agents/rules/local-artifact-repair.md` to decide whether to edit and rerun, and never treat an error type or `changed=false` as automatic authorization.
73
74
 
74
75
  Bind and reuse this structured mapping from that one response:
75
76
 
@@ -79,12 +80,14 @@ Bind and reuse this structured mapping from that one response:
79
80
  {unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
80
81
  ```
81
82
 
82
- The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. If finalization fails or a response field is missing, stop before the completion event. Derive the verdict and next-step branch from the same response's `stageStatus.canAdvance`: only `canAdvance=true` permits `approved`; otherwise use `changes-requested` or `rejected`. Then run `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`.
83
+ The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. After a failure, the model may edit the same controlled artifact and rerun the same intent only when the shared rule's mechanical gates pass; reassess convergence after every failure. The final complete result determines the verdict and counts from that same snapshot: `stageStatus.canAdvance=true` with an Approved conclusion permits cross-stage advancement; `stageStatus.canAdvance=false` still requires `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`, using `changes-requested` and routing to same-stage revision/review (use `rejected` when the report explicitly rejects). On failure, model stop, lack of progress, or the emergency cap, do not publish a completion event or cross-stage command; use the `repair-stop` scenario in `reference/output-templates.md` to show existing summary/findings, the artifact, actual repair attempts, the last diagnostic, and the stop reason.
83
84
 
84
85
  `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.
85
86
 
86
87
  If task.md has a valid `issue_number`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`.
87
88
 
89
+ Before writing the summary, the finalization intent checks decision-detail ids; any visible duplicate returns a structured failure and preserves the artifact bytes, while the model decides whether a minimal edit is safe under the shared rule. If the safety gates fail, diagnostics repeat, no byte-level progress occurs, or the emergency cap is reached, stop before the completion event; the stop path must still show the existing review result instead of hiding the artifact.
90
+
88
91
  ### 7. Run Completion Gate
89
92
 
90
93
  ```bash
@@ -7,7 +7,7 @@ description: >
7
7
  ---
8
8
 
9
9
  # 需求分析审查
10
- > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」:标准 AI 短名(`claude`/`codex`/`antigravity`/`opencode`/`cursor`)、长名归一化(`claude-code`→`claude`、`antigravity-cli`→`antigravity`)或人工例外 `human`。
10
+ > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
11
11
 
12
12
  若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。
13
13
 
@@ -16,6 +16,7 @@ description: >
16
16
  ## 行为边界 / 关键规则
17
17
 
18
18
  - 本技能只审查分析产物并写报告,不修改业务代码
19
+ - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
19
20
  - 执行本技能后,你**必须**立即更新 task.md
20
21
 
21
22
  版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
@@ -24,7 +25,7 @@ description: >
24
25
 
25
26
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
26
27
 
27
- 运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
28
+ 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
28
29
 
29
30
  ```bash
30
31
  agent-infra-internal task-snapshot {task-id} --format text
@@ -34,7 +35,7 @@ agent-infra-internal task-snapshot {task-id} --format text
34
35
 
35
36
  ## 任务上下文解析
36
37
 
37
- > 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
38
+ > 入口可省略 task ref;显式 task scope 仅接受 `--task <ref>` 或 `-t <ref>`,不再解释位置 task ref。保留其余业务操作数后调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
38
39
 
39
40
  > 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
40
41
 
@@ -72,7 +73,7 @@ agent-infra-internal task-snapshot {task-id} --format text
72
73
 
73
74
  ### 6. 更新任务状态
74
75
 
75
- 报告完成后,新 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-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`。
76
+ 报告完成后,新 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-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`;失败后是否继续编辑并重跑,必须遵循 `.agents/rules/local-artifact-repair.md`,不能把失败类型或 `changed=false` 当作自动授权。
76
77
 
77
78
  从该次返回值绑定并复用以下结构化映射:
78
79
 
@@ -82,12 +83,14 @@ agent-infra-internal task-snapshot {task-id} --format text
82
83
  {unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
83
84
  ```
84
85
 
85
- 该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。最终化失败或返回字段缺失时,停止在完成事件之前。以同一次返回的 `stageStatus.canAdvance` 决定 verdict 和下一步:仅 `canAdvance=true` 可用 `approved`,否则必须用 `changes-requested` 或 `rejected`。随后执行 `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`。
86
+ 该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。失败后,模型只能在共享规则的机械安全门通过时修改同一个受控 artifact,并完整重跑相同 intent;每次失败都重新判断是否收敛。最终一次完整成功返回决定同一快照的 verdict 和计数:`stageStatus.canAdvance=true` 且结论为 Approved 时允许跨阶段推进;`stageStatus.canAdvance=false` 时仍须执行 `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`,使用 `changes-requested` 并路由到同阶段修订/复审(报告明确拒绝时使用 `rejected`)。失败、模型停止、无进展或紧急熔断时,不发布完成事件或跨阶段命令,但必须按 `reference/output-templates.md` 的 `repair-stop` 场景展示已有 summary/findings、artifact、实际修复次数、最后诊断和停止原因。
86
87
 
87
88
  `manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
88
89
 
89
90
  如果 task.md 中存在有效的 `issue_number`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
90
91
 
92
+ 最终化 intent 会在写入摘要前检查详情块 ID;任何可见重复都返回结构化失败并保持 artifact 字节不变,由模型按共享规则判断是否进行最小编辑。无法通过安全门、诊断重复、没有实际字节变化或达到紧急熔断时,停止在完成事件之前;停止路径仍必须展示已有审查结果,不得吞掉 artifact 内容。
93
+
91
94
  ### 7. 完成校验
92
95
 
93
96
  ```bash
@@ -36,6 +36,7 @@
36
36
  "^\\$ "
37
37
  ]
38
38
  },
39
+ "decision-details": {},
39
40
  "review-summary": {
40
41
  "stage": "analysis"
41
42
  },
@@ -36,6 +36,7 @@
36
36
  "^\\$ "
37
37
  ]
38
38
  },
39
+ "decision-details": {},
39
40
  "review-summary": {
40
41
  "stage": "analysis"
41
42
  },
@@ -18,6 +18,24 @@ Rules:
18
18
  - The selected scenario must generate `{next-step-commands}` through the shared helper
19
19
  - The count line shows 4 numbers. `Human-decision` (`{h}`) counts this stage's `needs-human-decision` rows; because those rows are unresolved, `{h} > 0` means `canAdvance=false`. Expand the "Pending human-decision pre-block" from `.agents/rules/next-step-output.md` and show revision and re-review paths only.
20
20
 
21
+ ### Scenario R: Finalization stopped with results visible
22
+
23
+ When the finalizer fails, or the model stops because of a safety gate, lack of progress, repeated diagnostics, or the emergency cap, use this scenario. Do not call the shared helper or output cross-stage commands.
24
+
25
+ ```text
26
+ Task {task-id} review results were generated, but lifecycle advancement stopped.
27
+ - Review artifact: .agents/workspace/active/{task-id}/{review-artifact}
28
+ - Last valid summary/findings: {last-readable-review-result}
29
+ - Local repair attempts: {repairAttempts}
30
+ - Last diagnostic: {last-structured-diagnostic}
31
+ - Stop reason: {stop-reason}
32
+ - Completion event: not published | Cross-stage commands: not generated
33
+
34
+ Note: only lifecycle advancement stopped; the existing review result remains available. Handle it manually or rerun the current review skill.
35
+ ```
36
+
37
+ If the summary cannot be parsed safely, set `{last-readable-review-result}` to "summary could not be parsed safely" and retain the artifact path and raw structured diagnostic; do not infer counts or add a conclusion.
38
+
21
39
  ### Scenario A: Approved with no findings
22
40
 
23
41
  Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
@@ -18,6 +18,24 @@
18
18
  - 所选场景必须通过统一 helper 生成 `{next-step-commands}`
19
19
  - 计数行固定显示 4 个数字。`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数;它属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
20
20
 
21
+ ### 场景 R:最终化停止但结果可见
22
+
23
+ 当 finalizer 失败,或模型因安全门、无进展、重复诊断或紧急熔断停止时,使用本场景,不调用统一 helper,也不输出跨阶段命令。
24
+
25
+ ```text
26
+ 任务 {task-id} 审查结果已生成,但生命周期未推进。
27
+ - 审查产物:.agents/workspace/active/{task-id}/{review-artifact}
28
+ - 最后有效 summary/findings:{last-readable-review-result}
29
+ - 本地修复次数:{repairAttempts}
30
+ - 最后诊断:{last-structured-diagnostic}
31
+ - 停止原因:{stop-reason}
32
+ - 完成事件:未发布 | 跨阶段命令:未生成
33
+
34
+ 说明:本次仅停止生命周期推进,已有审查结果仍可查看。请先进行人工处理,或重新运行当前审查技能。
35
+ ```
36
+
37
+ 如果 summary 无法安全解析,`{last-readable-review-result}` 必须改为“摘要不可安全解析”,并保留 artifact 路径和原始结构化诊断;不得推算计数或补写结论。
38
+
21
39
  ### 场景 A:通过且无问题
22
40
 
23
41
  使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。