@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,4 +1,5 @@
1
1
  import { execFileSync } from "node:child_process";
2
+ import { createHash } from "node:crypto";
2
3
 
3
4
  function fail(message) {
4
5
  process.stderr.write(`${message}\n`);
@@ -128,6 +129,7 @@ function numericLineCount(value) {
128
129
  function main() {
129
130
  const options = parseArgs(process.argv.slice(2));
130
131
  const mergeBase = git(["merge-base", options.base, options.head], options).trim();
132
+ const patch = git(["diff", "--no-ext-diff", "--binary", "--find-renames", mergeBase, options.head], options, null);
131
133
  const diffArgs = ["diff", "--no-ext-diff", "--find-renames", "-z", mergeBase, options.head];
132
134
  const files = parseRawDiff(git([...diffArgs.slice(0, 2), "--raw", "--abbrev=64", ...diffArgs.slice(2)], options, null));
133
135
  const numstat = parseNumstat(git([...diffArgs.slice(0, 2), "--numstat", ...diffArgs.slice(2)], options, null));
@@ -191,6 +193,7 @@ function main() {
191
193
  base: options.base,
192
194
  head: options.head,
193
195
  mergeBase,
196
+ patchSha256: createHash("sha256").update(patch).digest("hex"),
194
197
  files: reportFiles,
195
198
  totals
196
199
  }, null, 2)}\n`);
@@ -126,6 +126,14 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
126
126
  - `blocked`: retain the candidate and retry the same file after the transient problem is fixed.
127
127
  - `failed`: report the stable error code. Never modify and retry a candidate under the same idempotency key.
128
128
 
129
+ A controlled invocation may return `control` request evidence: `accepted: true`
130
+ with `recovery: none` means the current result can be consumed; `accepted: false`
131
+ with `recovery: new-request-id` means the request was not admitted and the same
132
+ candidate may be retried with a new outer request ID after the transient problem
133
+ is fixed; `recovery: same-request-id` or `recovery: inspect-domain-state` means
134
+ the request was accepted, so do not create a new candidate or replay it
135
+ automatically. Recover with the original request or inspect host task state first.
136
+
129
137
  ### 4. Platform Failure Compatibility
130
138
 
131
139
  The host service owns platform cascading. The compatibility recovery commands remain visible in the host warning and are not run from the sandbox:
@@ -125,6 +125,13 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
125
125
  - `blocked`:保留 candidate 文件,修复暂态问题后用同一文件重试。
126
126
  - `failed`:报告稳定错误码;幂等冲突时不得改写原 key 或原 candidate 后重试。
127
127
 
128
+ 受控调用可能在结果中返回 `control` 请求证据:`accepted: true` 且
129
+ `recovery: none` 表示可以消费当前结果;`accepted: false` 且
130
+ `recovery: new-request-id` 表示请求尚未受理,暂态问题恢复后才能用同一份
131
+ candidate 和新的 outer request ID 重试;`recovery: same-request-id` 或
132
+ `recovery: inspect-domain-state` 表示请求已经受理,不得创建新的 candidate 或
133
+ 自动重放,必须先使用原 request 检查结果或宿主任务状态。
134
+
128
135
  ### 4. 平台失败兼容说明
129
136
 
130
137
  平台级联由宿主服务完成。兼容的人工恢复命令仍由宿主 warning 指引,不在沙箱内执行:
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
34
34
 
35
35
  ### 1. Retrieve Alert Information
36
36
 
37
- Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}` and parse its JSON result to fetch the alert details.
37
+ Read `.agents/rules/security-alerts.md` before this step, then run `agent-infra-internal platform-security read --kind code-scanning --number {alert-number}` and parse its JSON result to fetch the alert details.
38
38
 
39
39
  Extract key information:
40
40
  - `number`: alert number
@@ -34,7 +34,7 @@ description: >
34
34
 
35
35
  ### 1. 获取告警信息
36
36
 
37
- 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}`,解析其 JSON 结果获取告警详情。
37
+ 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `agent-infra-internal platform-security read --kind code-scanning --number {alert-number}`,解析其 JSON 结果获取告警详情。
38
38
 
39
39
  提取关键信息:
40
40
  - `number`:告警编号
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
34
34
 
35
35
  ### 1. Retrieve Alert Information
36
36
 
37
- Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}` and parse its JSON result to fetch the alert details.
37
+ Read `.agents/rules/security-alerts.md` before this step, then run `agent-infra-internal platform-security read --kind dependabot --number {alert-number}` and parse its JSON result to fetch the alert details.
38
38
 
39
39
  Extract key information:
40
40
  - `number`: alert number
@@ -34,7 +34,7 @@ description: >
34
34
 
35
35
  ### 1. 获取告警信息
36
36
 
37
- 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}`,解析其 JSON 结果获取告警详情。
37
+ 执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `agent-infra-internal platform-security read --kind dependabot --number {alert-number}`,解析其 JSON 结果获取告警详情。
38
38
 
39
39
  提取关键信息:
40
40
  - `number`:告警编号
@@ -19,17 +19,17 @@ Confirm that:
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
22
- ### 2. Run the bootstrap script
22
+ ### 2. Run the labels runtime intent
23
23
 
24
24
  Execute the complete label initialization flow with:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-labels/scripts/init-labels.sh
27
+ agent-infra-internal platform-metadata init-labels
28
28
  ```
29
29
 
30
- The script and `.agents/rules/label-milestone-setup.md` are responsible for:
30
+ The runtime intent and `.agents/rules/label-milestone-setup.md` are responsible for:
31
31
  - Reading the configured `labels.in` mapping and preserving unrelated labels
32
- - Selecting the provider leaf or returning a clear no-op/degraded result
32
+ - Selecting the platform capability or returning a clear no-op/degraded result
33
33
  - Creating or updating the standard label set and reporting the final summary
34
34
  - Printing the final execution summary
35
35
 
@@ -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. 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.
72
+ 2. Run `agent-infra-internal platform-metadata init-labels` to create or update one `in: {key}` label for each mapping key.
73
+ 3. After user confirmation, rerun the intent 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
 
@@ -100,7 +100,7 @@ Next step - initialize milestones (optional):
100
100
 
101
101
  ## Error Handling
102
102
 
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.
103
+ - Platform capability unavailable: report the runtime's `degraded` or `no-op` result without claiming remote changes.
104
+ - Platform authentication or repository access failure: report the runtime's non-zero exit status and diagnostic output; do not claim remote changes.
105
105
  - Permission error: prompt "No permission to manage labels in this repository"
106
106
  - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -19,17 +19,17 @@ description: >
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
22
- ### 2. 运行初始化脚本
22
+ ### 2. 运行 labels runtime intent
23
23
 
24
24
  执行以下命令,完成整套 label 初始化流程:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-labels/scripts/init-labels.sh
27
+ agent-infra-internal platform-metadata init-labels
28
28
  ```
29
29
 
30
- 脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
30
+ runtime intent 与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
31
  - 读取配置的 `labels.in` 映射并保留无关 label
32
- - 选择 provider 叶子,或返回明确的 no-op/degraded 结果
32
+ - 选择平台能力,或返回明确的 no-op/degraded 结果
33
33
  - 创建或更新标准 label 集合并输出最终摘要
34
34
  - 输出最终执行摘要
35
35
 
@@ -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. 执行 `bash .agents/skills/init-labels/scripts/init-labels.sh`,为每个映射 key 创建或更新 `in: {key}` label。
73
- 3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行脚本,清理不在最终映射中的旧 `in:` label。
72
+ 2. 执行 `agent-infra-internal platform-metadata init-labels`,为每个映射 key 创建或更新 `in: {key}` label。
73
+ 3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行 intent,清理不在最终映射中的旧 `in:` label。
74
74
 
75
75
  ### 5. 输出与行为保证
76
76
 
@@ -100,7 +100,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
100
100
 
101
101
  ## 错误处理
102
102
 
103
- - provider 能力不可用:如实报告脚本的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
104
- - provider 认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
103
+ - 平台能力不可用:如实报告 runtime 的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
104
+ - 平台认证或仓库访问失败:如实报告 runtime 的非零退出状态和诊断输出;不得声称远端已变更。
105
105
  - 权限不足:提示 "No permission to manage labels in this repository"
106
106
  - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -19,20 +19,18 @@ Confirm that:
19
19
 
20
20
  If any prerequisite fails, stop and report the matching error.
21
21
 
22
- ### 2. Run the bootstrap script
22
+ ### 2. Run the milestones runtime intent
23
23
 
24
24
  Execute the complete milestone initialization flow with:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
27
+ agent-infra-internal platform-metadata init-milestones $ARGUMENTS
28
28
  ```
29
29
 
30
- The script and `.agents/rules/label-milestone-setup.md` are responsible for:
31
- - Creating and cleaning up a temporary workspace
32
- - Detecting whether `--history` was requested
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
- - Letting the provider leaf list and write current milestones
35
- - Building the desired milestone set and creating only the missing titles
30
+ The runtime intent and `.agents/rules/label-milestone-setup.md` are responsible for:
31
+ - Receiving the `--history` request and planning the desired milestones
32
+ - Applying the established baseline, history, state, and title-idempotency contract
33
+ - Letting runtime/provider code list and write current milestones
36
34
  - Printing the final execution summary
37
35
 
38
36
  ### 3. Standard milestone definitions
@@ -78,8 +76,8 @@ Next step - initialize labels (optional):
78
76
 
79
77
  ## Error Handling
80
78
 
81
- - Provider capability, authentication, or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
82
- - Version detection failed: prompt "Unable to determine current version baseline"
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"
79
+ - Platform capability, authentication, or repository access failure: report the runtime's non-zero exit status and diagnostic output; do not claim remote changes.
80
+ - Version detection failed: report the runtime's version-baseline error
81
+ - No valid SemVer `v*` tags found in `--history` mode: report the runtime's history diagnostic
84
82
  - Permission error: prompt "No permission to manage milestones in this repository"
85
83
  - API rate limit: prompt "platform API rate limit reached, please retry later"
@@ -19,20 +19,18 @@ description: >
19
19
 
20
20
  如果任一条件失败,停止并输出对应错误。
21
21
 
22
- ### 2. 运行初始化脚本
22
+ ### 2. 运行 milestones runtime intent
23
23
 
24
24
  执行以下命令,完成整套里程碑初始化流程:
25
25
 
26
26
  ```bash
27
- bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
27
+ agent-infra-internal platform-metadata init-milestones $ARGUMENTS
28
28
  ```
29
29
 
30
- 脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
- - 创建并清理临时工作目录
32
- - 检测是否传入 `--history`
33
- - 扫描所有 `v*` Git tag,按 SemVer precedence 选择最高合法版本;没有合法版本时使用兼容默认值 `0.1.0`,且不读取任何生态 manifest
34
- - 由 provider 叶子读取并写入当前里程碑
35
- - 构建目标里程碑集合,并且只创建缺失标题
30
+ runtime intent 与 `.agents/rules/label-milestone-setup.md` 共同负责:
31
+ - 接收 `--history` 请求并规划目标里程碑
32
+ - 按既定基线、history、状态和标题幂等契约生成结果
33
+ - 由 runtime/provider 读取并写入当前里程碑
36
34
  - 输出最终执行摘要
37
35
 
38
36
  ### 3. 标准里程碑定义
@@ -78,8 +76,8 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
78
76
 
79
77
  ## 错误处理
80
78
 
81
- - provider 能力、认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
82
- - 版本解析失败:提示 "Unable to determine current version baseline"
83
- - `--history` 模式下未找到合法 SemVer `v*` git tags:提示 "No valid SemVer history tags found matching v*; only standard milestones will be created"
79
+ - 平台能力、认证或仓库访问失败:如实报告 runtime 的非零退出状态和诊断输出;不得声称远端已变更。
80
+ - 版本解析失败:报告 runtime 返回的版本基线错误
81
+ - `--history` 模式下未找到合法 SemVer `v*` git tags:报告 runtime 返回的 history 诊断
84
82
  - 权限不足:提示 "No permission to manage milestones in this repository"
85
83
  - API 限流:提示 "platform API rate limit reached, please retry later"
@@ -9,10 +9,15 @@ description: >
9
9
  # Design Technical Plan
10
10
  > `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
11
11
 
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.
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. Lifecycle events also require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request`, `new-requirement`, or `upstream-fact-doubt`. Reuse the same values for started and completed.
13
13
 
14
14
  ## Boundary / Critical Rules
15
15
 
16
+ ### Persisted Report Evidence
17
+
18
+ Before generating the plan report, read `.agents/rules/evidence-reporting.md`. Record the command, target scope, status or structured result, actual result, and uncovered parts for state checks and verification; include decisive raw excerpts only for failures, blocking conditions, or disputes.
19
+
20
+ - When evaluating candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md`, audit normalized task constraints/candidates, and record the five qualification-audit tables in the plan artifact; unknown or unconfirmed constraints must not automatically exclude a candidate
16
21
  - This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
17
22
  - This is a **mandatory human review checkpoint**; do not automatically proceed to implementation
18
23
  - 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
@@ -25,7 +30,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
25
30
 
26
31
  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.
27
32
 
28
- Run these commands and paste the raw output into this round's `## State Check` section:
33
+ Run these commands and record the task/artifact scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -41,7 +46,7 @@ Before the state check is complete, do not make external-state assertions such a
41
46
 
42
47
  ## Step Start: Write the started Marker
43
48
 
44
- After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token}` and verify the returned `artifactContext`.
49
+ After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}` and verify the returned `artifactContext`.
45
50
 
46
51
  ## Steps
47
52
 
@@ -103,6 +108,14 @@ When this round introduces a new key design decision, first run `agent-infra-int
103
108
 
104
109
  ### 6. Output Plan Document
105
110
 
111
+ Before writing this round's `{plan-artifact}`, create the controlled report skeleton:
112
+
113
+ ```bash
114
+ agent-infra-internal task-artifact {task-id} init --family plan --artifact {plan-artifact} --locale en
115
+ ```
116
+
117
+ The skeleton contains identity metadata, stable section markers, and required headings only; real plan content is required before the completion gate can pass. If the finalizer returns one provably safe structural error, call `task-artifact {task-id} repair --family plan --artifact {plan-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`, then rerun the same finalizer.
118
+
106
119
  Create `.agents/workspace/active/{task-id}/{plan-artifact}`.
107
120
 
108
121
  ### 7. Update Task Status
@@ -115,7 +128,17 @@ Update `.agents/workspace/active/{task-id}/task.md`:
115
128
  - Overwrite the `effort` field in frontmatter with the new value
116
129
  - Append a `## Effort Re-estimate` section to this round's plan artifact `{plan-artifact}`, recording: `effort {old} → {new} (rationale: {short basis grounded in this plan})`
117
130
  If the re-estimated value matches the current value, skip it: do not write the `## Effort Re-estimate` section. The Flow A sync that follows reads the possibly updated frontmatter and propagates the new value to the Issue automatically.
118
- After the business fields are updated, run `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --artifact {plan-artifact} {execution-flag}` so the core atomically records the link, stage, agent, metadata, and Activity Log.
131
+ After writing the local artifact, run the pre-completion gate:
132
+
133
+ ```bash
134
+ agent-infra-internal task-artifact {task-id} finalize-local --family plan --artifact {plan-artifact}
135
+ ```
136
+
137
+ - On `status=passed`, save that result's `artifactSha256` and `semanticDigest`; the finalizer has recorded the matching one-shot local provenance intent.
138
+ - On `status=failed` with `repairable=true`, apply only the diagnostic's `replace-line` operation once, then rerun the same command completely; count an attempt only after bytes change, up to 8 attempts.
139
+ - The first repairable failure's `semanticDigest` is retained as the baseline; a retried `status=passed` result must match it. On baseline mismatch, any other failure, no progress, or a repeated diagnostic, stop without publishing a completed event.
140
+
141
+ Use the digests from that same `status=passed` result in `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {plan-artifact} --artifact-sha256 {artifact-sha256} --semantic-digest {semantic-digest} {execution-flag}` so the core records the link, stage, agent, metadata, and Activity Log atomically.
119
142
  - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Plan Task (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
120
143
  ```
121
144
 
@@ -9,10 +9,15 @@ description: >
9
9
  # 设计技术方案
10
10
  > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
11
11
 
12
- 若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。
12
+ 若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 `{trigger-initiator}=orchestrator`,否则使用 `model`;`{request-id}` 是本任务与本轮产物的稳定单行标识,`{reason-code}` 使用 `user-request`、`new-requirement` 或 `upstream-fact-doubt`;started 与 completed 使用同一组值。
13
13
 
14
14
  ## 行为边界 / 关键规则
15
15
 
16
+ ### 持久化报告证据
17
+
18
+ 生成方案报告时,先读取 `.agents/rules/evidence-reporting.md`。状态核对和验证记录命令、目标范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议才附决定性原文摘录。
19
+
20
+ - 涉及候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,基于 task.md 规范化约束/候选完成资格审计,并在方案产物记录五张资格审计表;不得把来源不明或未确认约束自动升级为排除条件
16
21
  - 本技能仅产出技术方案文档(`plan.md` 或 `plan-r{N}.md`)—— 不修改任何业务代码
17
22
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
18
23
  - 这是一个**强制性的人工审查检查点** —— 不要自动进入实现阶段
@@ -25,7 +30,7 @@ description: >
25
30
 
26
31
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
27
32
 
28
- 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
33
+ 运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -44,7 +49,7 @@ agent-infra-internal task-snapshot {task-id} --format text
44
49
  确认前置条件和轮次后、本轮第一个产出动作之前执行:
45
50
 
46
51
  ```bash
47
- agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token}
52
+ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}
48
53
  ```
49
54
 
50
55
  ## 执行步骤
@@ -83,6 +88,8 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
83
88
 
84
89
  ### 5. 设计技术方案
85
90
 
91
+ 方案必须按 `.agents/rules/decision-qualification.md` 复核规范化约束和候选,并在方案产物保留五张资格审计表及真实上游关系;来源不明或未人工确认的约束不得自动排除候选。
92
+
86
93
  遵循 `.agents/workflows/feature-development.yaml` 中的 `technical-design` 步骤:
87
94
 
88
95
  **必要任务**:
@@ -104,6 +111,14 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
104
111
 
105
112
  ### 6. 输出计划文档
106
113
 
114
+ 在首次写入本轮 `{plan-artifact}` 前,先创建受控报告骨架:
115
+
116
+ ```bash
117
+ agent-infra-internal task-artifact {task-id} init --family plan --artifact {plan-artifact}
118
+ ```
119
+
120
+ 骨架只包含身份元数据、稳定 section marker 和必需标题;必须填入真实方案内容后才能通过完成门禁。finalizer 返回可证明的单个结构错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family plan --artifact {plan-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`,然后完整重跑 finalizer。
121
+
107
122
  创建 `.agents/workspace/active/{task-id}/{plan-artifact}`。
108
123
 
109
124
  ### 7. 更新任务状态
@@ -114,7 +129,14 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
114
129
  - 用新值覆盖 frontmatter 的 `effort` 字段
115
130
  - 在本轮方案产物 `{plan-artifact}` 中追加 `## 工作量重估` 段,记录一条:`effort {old} → {new} (rationale: {基于本轮方案的简短依据})`
116
131
  若重估值与当前值一致,跳过:不写入 `## 工作量重估` 段。后续 Flow A 同步会读取可能更新过的 frontmatter,并自动把新值同步到 Issue。
117
- - 完成业务内容更新后执行 `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --artifact {plan-artifact} {execution-flag}`,由核心原子登记链接、阶段、代理、时间、版本和 Activity Log。
132
+ - 完成本地产物后,先执行本地完成前门禁:
133
+ ```bash
134
+ agent-infra-internal task-artifact {task-id} finalize-local --family plan --artifact {plan-artifact}
135
+ ```
136
+ - `status=passed`:保存本次返回的 `artifactSha256` 和 `semanticDigest`;finalizer 已记录对应的一次性本地 provenance intent。
137
+ - `status=failed` 且 `repairable=true`:仅按诊断中的 `replace-line` 操作做一次最小修改,然后完整重跑同一命令;实际字节发生变化才计一次 `repairAttempts`,最多 8 次。
138
+ - 首次可修复失败的 `semanticDigest` 由 finalizer 保留为基线;重试后的 `status=passed` 必须匹配该基线。基线不匹配、其他失败、无进展或重复诊断:停止,不发布 completed 事件。
139
+ - 使用同一次 `status=passed` 返回的摘要执行 `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {plan-artifact} --artifact-sha256 {artifact-sha256} --semantic-digest {semantic-digest} {execution-flag}`,由核心登记链接、阶段、代理、时间、版本和 Activity Log。
118
140
 
119
141
  如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
120
142
  - 调用 `agent-infra-internal platform-issue sync {task-id} --agent {standard-agent-token} --status pending-design-work --fields`
@@ -17,25 +17,15 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "plan.md|plan-r{N}.md",
20
- "required_sections": [
21
- "Problem Understanding",
22
- "Constraints",
23
- "Option Comparison",
24
- "Technical Approach",
25
- "Implementation Steps",
26
- "File List",
27
- "Verification Strategy",
28
- "State Check"
29
- ],
30
- "required_patterns": [
31
- "^\\$ "
32
- ]
20
+ "schema": "plan"
33
21
  },
34
22
  "activity-log": {
35
23
  "expected_action_pattern": "(Plan Task|Technical Design) \\(Round \\d+\\)"
36
24
  },
37
25
  "review-ledger": {
38
- "stage_scope": ["analysis"]
26
+ "stage_scope": [
27
+ "analysis"
28
+ ]
39
29
  },
40
30
  "platform-sync": {
41
31
  "when": "issue_number_exists",
@@ -17,25 +17,15 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "plan.md|plan-r{N}.md",
20
- "required_sections": [
21
- "问题理解",
22
- "约束条件",
23
- "方案对比",
24
- "技术方法",
25
- "实施步骤",
26
- "文件清单",
27
- "验证策略",
28
- "状态核对"
29
- ],
30
- "required_patterns": [
31
- "^\\$ "
32
- ]
20
+ "schema": "plan"
33
21
  },
34
22
  "activity-log": {
35
23
  "expected_action_pattern": "(Plan Task|Technical Design) \\(Round \\d+\\)"
36
24
  },
37
25
  "review-ledger": {
38
- "stage_scope": ["analysis"]
26
+ "stage_scope": [
27
+ "analysis"
28
+ ]
39
29
  },
40
30
  "platform-sync": {
41
31
  "when": "issue_number_exists",
@@ -9,12 +9,17 @@ description: >
9
9
  # Requirement Analysis Review
10
10
  > `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
11
11
 
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.
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. Lifecycle events also require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request` or `review-finding`. Reuse the same values for started and completed.
13
13
 
14
14
  Review the latest analysis artifact and produce `review-analysis.md` or `review-analysis-r{N}.md`.
15
15
 
16
16
  ## Boundary / Critical Rules
17
17
 
18
+ ### Persisted Report Evidence
19
+
20
+ Before generating the review report, read `.agents/rules/evidence-reporting.md`. Normal inspection records the command, scope, structured result, actual conclusion, and uncovered parts; findings, blocking conditions, or disputes retain reproducible locations and decisive excerpts, while identity fields remain exact.
21
+
22
+ - When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the five qualification-audit tables, digests, QCR, and upstream relations; do not treat a process label as identity authentication
18
23
  - This skill only reviews analysis artifacts and writes a report; it does not modify product code.
19
24
  - 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
20
25
  - After executing this skill, you **must** immediately update task.md.
@@ -25,7 +30,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
25
30
 
26
31
  After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first.
27
32
 
28
- Run these commands and paste the raw output into this round's `## State Check` section:
33
+ Run these commands and record the task/artifact scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -39,7 +44,7 @@ agent-infra-internal task-snapshot {task-id} --format text
39
44
 
40
45
  ## Step Start: Declare the started Event
41
46
 
42
- After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token}`.
47
+ After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`.
43
48
 
44
49
  ## Steps
45
50
 
@@ -64,6 +69,14 @@ Check requirement completeness, risks, affected scope, open questions, and effor
64
69
 
65
70
  ### 5. Write Review Report
66
71
 
72
+ Before writing this round's `{review-artifact}`, create the controlled review skeleton:
73
+
74
+ ```bash
75
+ agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact} --locale en
76
+ ```
77
+
78
+ The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error, call `task-artifact {task-id} repair --family review-analysis --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`, then rerun the original finalizer.
79
+
67
80
  Create `.agents/workspace/active/{task-id}/{review-artifact}`.
68
81
 
69
82
  > Read `reference/report-template.md` before writing the report.
@@ -80,7 +93,7 @@ Bind and reuse this structured mapping from that one response:
80
93
  {unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
81
94
  ```
82
95
 
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.
96
+ 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} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --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.
84
97
 
85
98
  `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.
86
99
 
@@ -9,12 +9,17 @@ description: >
9
9
  # 需求分析审查
10
10
  > `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
11
11
 
12
- 若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。
12
+ 若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 `{trigger-initiator}=orchestrator`,否则使用 `model`;`{request-id}` 是本任务与本轮产物的稳定单行标识,`{reason-code}` 使用 `user-request` 或 `review-finding`;started 与 completed 使用同一组值。
13
13
 
14
14
  审查最新需求分析产物,并产出 `review-analysis.md` 或 `review-analysis-r{N}.md`。
15
15
 
16
16
  ## 行为边界 / 关键规则
17
17
 
18
+ ### 持久化报告证据
19
+
20
+ 生成审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常检视记录命令、范围、结构化结果、实际结论和未覆盖部分;finding、阻塞或争议保留可复现位置与决定性摘录,身份字段必须精确保留。
21
+
22
+ - 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的五张资格审计表、digest、QCR 和上游关系;不得把流程标签当作身份认证
18
23
  - 本技能只审查分析产物并写报告,不修改业务代码
19
24
  - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
20
25
  - 执行本技能后,你**必须**立即更新 task.md
@@ -25,7 +30,7 @@ description: >
25
30
 
26
31
  在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
27
32
 
28
- 运行以下命令,并把原文粘贴到本轮产物的 `## 状态核对` 段:
33
+ 运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
29
34
 
30
35
  ```bash
31
36
  agent-infra-internal task-snapshot {task-id} --format text
@@ -41,7 +46,7 @@ agent-infra-internal task-snapshot {task-id} --format text
41
46
 
42
47
  ## 步骤开始:声明 started 事件
43
48
 
44
- 确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token}`。
49
+ 确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`。
45
50
 
46
51
  ## 执行步骤
47
52
  ### 1. 验证前置条件
@@ -67,6 +72,14 @@ agent-infra-internal task-snapshot {task-id} --format text
67
72
 
68
73
  ### 5. 编写审查报告
69
74
 
75
+ 在首次写入本轮 `{review-artifact}` 前,先创建受控审查骨架:
76
+
77
+ ```bash
78
+ agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact}
79
+ ```
80
+
81
+ 骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family review-analysis --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`,再重跑原 finalizer。
82
+
70
83
  创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
71
84
 
72
85
  > 报告格式见 `reference/report-template.md`。写报告前先读取 `reference/report-template.md`。
@@ -83,7 +96,7 @@ agent-infra-internal task-snapshot {task-id} --format text
83
96
  {unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
84
97
  ```
85
98
 
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、实际修复次数、最后诊断和停止原因。
99
+ 该 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} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --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、实际修复次数、最后诊断和停止原因。
87
100
 
88
101
  `manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
89
102
 
@@ -17,24 +17,7 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "review-analysis.md|review-analysis-r{N}.md",
20
- "required_sections": [
21
- "Review Summary",
22
- "Review Coverage Declaration",
23
- "Requirement Analysis Coverage",
24
- "Traceability Matrix",
25
- "Findings",
26
- "Non-blocking Advisories",
27
- "Manual Validation Items",
28
- "Conclusion and Recommendations",
29
- "State Check",
30
- "Evidence",
31
- "Self-Doubt",
32
- "Review Disagreement Ledger Writeback"
33
- ],
34
- "required_patterns": [
35
- "^### Approval Decision$",
36
- "^\\$ "
37
- ]
20
+ "schema": "review-analysis"
38
21
  },
39
22
  "decision-details": {},
40
23
  "review-summary": {