@fitlab-ai/agent-infra 0.9.13 → 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 (280) hide show
  1. package/bin/cli.ts +26 -9
  2. package/dist/bin/cli.js +173 -157
  3. package/dist/bin/internal-cli.js +42 -21
  4. package/dist/lib/agent-client.js +5 -0
  5. package/dist/lib/internal/agent-client.js +5 -2
  6. package/dist/lib/internal/cli-route-inventory.js +152 -0
  7. package/dist/lib/internal/codex-lifecycle.js +9 -6
  8. package/dist/lib/internal/codex-sandbox-controller.js +8 -2
  9. package/dist/lib/internal/git-workflow.js +10 -6
  10. package/dist/lib/internal/platform-checks.js +16 -4
  11. package/dist/lib/internal/platform-comment.js +16 -4
  12. package/dist/lib/internal/platform-context.js +4 -1
  13. package/dist/lib/internal/platform-issue.js +12 -4
  14. package/dist/lib/internal/platform-metadata.js +88 -0
  15. package/dist/lib/internal/platform-pr-review.js +16 -3
  16. package/dist/lib/internal/platform-pr.js +24 -10
  17. package/dist/lib/internal/platform-release-notes.js +6 -3
  18. package/dist/lib/internal/platform-security.js +93 -0
  19. package/dist/lib/internal/pr-review-grade.js +14 -3
  20. package/dist/lib/internal/release-workflow.js +19 -5
  21. package/dist/lib/internal/sandbox-control.js +22 -5
  22. package/dist/lib/internal/task-activity.js +13 -4
  23. package/dist/lib/internal/task-artifact.js +186 -27
  24. package/dist/lib/internal/task-context.js +4 -1
  25. package/dist/lib/internal/task-create.js +48 -15
  26. package/dist/lib/internal/task-delivery.js +4 -1
  27. package/dist/lib/internal/task-event.js +4 -1
  28. package/dist/lib/internal/task-finalization.js +4 -1
  29. package/dist/lib/internal/task-invalidation.js +4 -1
  30. package/dist/lib/internal/task-ledger.js +12 -1
  31. package/dist/lib/internal/task-lifecycle.js +4 -1
  32. package/dist/lib/internal/task-operation-registry.js +421 -0
  33. package/dist/lib/internal/task-orchestration.js +12 -0
  34. package/dist/lib/internal/task-override.js +10 -3
  35. package/dist/lib/internal/task-qualification.js +90 -0
  36. package/dist/lib/internal/task-review.js +4 -1
  37. package/dist/lib/internal/task-short-id.js +11 -1
  38. package/dist/lib/internal/task-snapshot.js +4 -1
  39. package/dist/lib/internal/task-validate.js +7 -2
  40. package/dist/lib/internal/task-verify.js +5 -1
  41. package/dist/lib/internal/task-warning.js +8 -1
  42. package/dist/lib/platform/comment-safety.js +226 -0
  43. package/dist/lib/platform/github-provider.js +233 -6
  44. package/dist/lib/platform/issue-comments.js +146 -34
  45. package/dist/lib/platform/pr-change-report.js +6 -12
  46. package/dist/lib/platform/pr-summary.js +28 -7
  47. package/dist/lib/platform/provider-contract.d.ts +67 -1
  48. package/dist/lib/platform/provider-contract.js +6 -2
  49. package/dist/lib/platform/provider-validation.js +76 -3
  50. package/dist/lib/platform/pull-requests.js +115 -170
  51. package/dist/lib/platform/repository-metadata.js +377 -0
  52. package/dist/lib/platform/security-alerts.js +155 -0
  53. package/dist/lib/platform/verification-sync.js +33 -26
  54. package/dist/lib/process-data/index.js +7 -0
  55. package/dist/lib/run/index.js +5 -0
  56. package/dist/lib/sandbox/commands/control-status.js +22 -0
  57. package/dist/lib/sandbox/commands/create.js +32 -6
  58. package/dist/lib/sandbox/commands/ls.js +5 -0
  59. package/dist/lib/sandbox/commands/rm.js +827 -120
  60. package/dist/lib/sandbox/commands/show.js +16 -0
  61. package/dist/lib/sandbox/control/client.js +83 -9
  62. package/dist/lib/sandbox/control/completed-reentry.js +85 -0
  63. package/dist/lib/sandbox/control/container-identity.js +28 -31
  64. package/dist/lib/sandbox/control/executor.js +149 -14
  65. package/dist/lib/sandbox/control/lifecycle.js +621 -127
  66. package/dist/lib/sandbox/control/native-file-lock.js +177 -0
  67. package/dist/lib/sandbox/control/server.js +305 -35
  68. package/dist/lib/sandbox/control/state.js +5 -3
  69. package/dist/lib/sandbox/control/task-view.js +183 -0
  70. package/dist/lib/sandbox/engines/authority.js +289 -0
  71. package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
  72. package/dist/lib/sandbox/index.js +5 -0
  73. package/dist/lib/sandbox/recovery.js +21 -1
  74. package/dist/lib/sandbox/workspace-view.js +2 -1
  75. package/dist/lib/sandbox/worktree-safety.js +4 -1
  76. package/dist/lib/server/index.js +8 -0
  77. package/dist/lib/task/artifact-lifecycle.js +42 -13
  78. package/dist/lib/task/artifact-operations.js +520 -0
  79. package/dist/lib/task/artifact-repair-intent.js +59 -0
  80. package/dist/lib/task/artifact-schema.js +135 -0
  81. package/dist/lib/task/capabilities.js +72 -1
  82. package/dist/lib/task/control-authority.js +4 -0
  83. package/dist/lib/task/create-service.js +103 -4
  84. package/dist/lib/task/create.js +25 -0
  85. package/dist/lib/task/events.js +186 -67
  86. package/dist/lib/task/index.js +11 -3
  87. package/dist/lib/task/local-artifact-finalization.js +75 -150
  88. package/dist/lib/task/orchestration.js +192 -52
  89. package/dist/lib/task/qualification-audit.js +490 -0
  90. package/dist/lib/task/qualification-confirmation.js +109 -0
  91. package/dist/lib/task/qualification-intents.js +148 -0
  92. package/dist/lib/task/review-artifacts.js +22 -23
  93. package/dist/lib/task/review-finalization.js +121 -4
  94. package/dist/lib/task/sections.js +6 -4
  95. package/dist/lib/task/verification-config.js +11 -0
  96. package/dist/lib/task/verification-engine.js +54 -4
  97. package/dist/lifecycle-build-manifest.json +3 -3
  98. package/lib/agent-client.ts +9 -0
  99. package/lib/internal/agent-client.ts +4 -2
  100. package/lib/internal/cli-route-inventory.ts +140 -0
  101. package/lib/internal/codex-lifecycle.ts +8 -6
  102. package/lib/internal/codex-sandbox-controller.ts +7 -2
  103. package/lib/internal/git-workflow.ts +9 -6
  104. package/lib/internal/platform-checks.ts +12 -4
  105. package/lib/internal/platform-comment.ts +12 -4
  106. package/lib/internal/platform-context.ts +3 -1
  107. package/lib/internal/platform-issue.ts +11 -4
  108. package/lib/internal/platform-metadata.ts +70 -0
  109. package/lib/internal/platform-pr-review.ts +14 -3
  110. package/lib/internal/platform-pr.ts +23 -10
  111. package/lib/internal/platform-release-notes.ts +5 -3
  112. package/lib/internal/platform-security.ts +83 -0
  113. package/lib/internal/pr-review-grade.ts +10 -3
  114. package/lib/internal/release-workflow.ts +17 -5
  115. package/lib/internal/sandbox-control.ts +19 -5
  116. package/lib/internal/task-activity.ts +12 -4
  117. package/lib/internal/task-artifact.ts +164 -25
  118. package/lib/internal/task-context.ts +3 -1
  119. package/lib/internal/task-create.ts +76 -15
  120. package/lib/internal/task-delivery.ts +3 -1
  121. package/lib/internal/task-event.ts +3 -1
  122. package/lib/internal/task-finalization.ts +3 -1
  123. package/lib/internal/task-invalidation.ts +3 -1
  124. package/lib/internal/task-ledger.ts +11 -1
  125. package/lib/internal/task-lifecycle.ts +3 -1
  126. package/lib/internal/task-operation-registry.ts +482 -0
  127. package/lib/internal/task-orchestration.ts +12 -0
  128. package/lib/internal/task-override.ts +9 -3
  129. package/lib/internal/task-qualification.ts +61 -0
  130. package/lib/internal/task-review.ts +3 -1
  131. package/lib/internal/task-short-id.ts +10 -1
  132. package/lib/internal/task-snapshot.ts +3 -1
  133. package/lib/internal/task-validate.ts +6 -2
  134. package/lib/internal/task-verify.ts +4 -1
  135. package/lib/internal/task-warning.ts +7 -1
  136. package/lib/platform/comment-safety.ts +250 -0
  137. package/lib/platform/github-provider.ts +229 -7
  138. package/lib/platform/issue-comments.ts +160 -35
  139. package/lib/platform/pr-change-report.ts +6 -12
  140. package/lib/platform/pr-summary.ts +27 -6
  141. package/lib/platform/provider-contract.ts +78 -3
  142. package/lib/platform/provider-validation.ts +85 -3
  143. package/lib/platform/pull-requests.ts +126 -178
  144. package/lib/platform/repository-metadata.ts +453 -0
  145. package/lib/platform/security-alerts.ts +191 -0
  146. package/lib/platform/verification-sync.ts +32 -28
  147. package/lib/process-data/index.ts +7 -0
  148. package/lib/run/index.ts +5 -0
  149. package/lib/sandbox/commands/control-status.ts +26 -0
  150. package/lib/sandbox/commands/create.ts +46 -6
  151. package/lib/sandbox/commands/ls.ts +7 -0
  152. package/lib/sandbox/commands/rm.ts +1000 -87
  153. package/lib/sandbox/commands/show.ts +16 -0
  154. package/lib/sandbox/control/client.ts +103 -9
  155. package/lib/sandbox/control/completed-reentry.ts +98 -0
  156. package/lib/sandbox/control/container-identity.ts +27 -43
  157. package/lib/sandbox/control/executor.ts +177 -12
  158. package/lib/sandbox/control/lifecycle.ts +629 -17
  159. package/lib/sandbox/control/native-file-lock.ts +209 -0
  160. package/lib/sandbox/control/protocol.ts +5 -2
  161. package/lib/sandbox/control/server.ts +319 -37
  162. package/lib/sandbox/control/state.ts +6 -3
  163. package/lib/sandbox/control/task-view.ts +240 -0
  164. package/lib/sandbox/engines/authority.ts +365 -0
  165. package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
  166. package/lib/sandbox/index.ts +7 -0
  167. package/lib/sandbox/recovery.ts +21 -1
  168. package/lib/sandbox/workspace-view.ts +9 -3
  169. package/lib/sandbox/worktree-safety.ts +4 -1
  170. package/lib/server/index.ts +10 -0
  171. package/lib/task/artifact-lifecycle.ts +38 -16
  172. package/lib/task/artifact-operations.ts +626 -0
  173. package/lib/task/artifact-repair-intent.ts +71 -0
  174. package/lib/task/artifact-schema.ts +192 -0
  175. package/lib/task/capabilities.ts +70 -1
  176. package/lib/task/control-authority.ts +11 -1
  177. package/lib/task/create-service.ts +131 -6
  178. package/lib/task/create.ts +27 -0
  179. package/lib/task/events.ts +161 -65
  180. package/lib/task/index.ts +16 -3
  181. package/lib/task/local-artifact-finalization.ts +87 -218
  182. package/lib/task/orchestration.ts +172 -49
  183. package/lib/task/qualification-audit.ts +599 -0
  184. package/lib/task/qualification-confirmation.ts +117 -0
  185. package/lib/task/qualification-intents.ts +150 -0
  186. package/lib/task/review-artifacts.ts +21 -22
  187. package/lib/task/review-finalization.ts +133 -4
  188. package/lib/task/sections.ts +6 -4
  189. package/lib/task/verification-config.ts +12 -0
  190. package/lib/task/verification-engine.ts +55 -4
  191. package/package.json +6 -1
  192. package/templates/.agents/rules/README.en.md +2 -0
  193. package/templates/.agents/rules/README.zh-CN.md +2 -0
  194. package/templates/.agents/rules/decision-qualification.en.md +22 -0
  195. package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
  196. package/templates/.agents/rules/evidence-reporting.en.md +28 -0
  197. package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
  198. package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
  199. package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
  200. package/templates/.agents/rules/local-artifact-repair.en.md +5 -1
  201. package/templates/.agents/rules/local-artifact-repair.zh-CN.md +5 -1
  202. package/templates/.agents/rules/security-alerts.en.md +8 -8
  203. package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
  204. package/templates/.agents/skills/analyze-task/SKILL.en.md +15 -2
  205. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +19 -2
  206. package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
  207. package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
  208. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  209. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  210. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  211. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  212. package/templates/.agents/skills/code-task/SKILL.en.md +14 -1
  213. package/templates/.agents/skills/code-task/SKILL.zh-CN.md +14 -1
  214. package/templates/.agents/skills/code-task/config/verify.en.json +5 -14
  215. package/templates/.agents/skills/code-task/config/verify.zh-CN.json +5 -14
  216. package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
  217. package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
  218. package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
  219. package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
  220. package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
  221. package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
  222. package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
  223. package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
  224. package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +5 -1
  225. package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +5 -1
  226. package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +2 -0
  227. package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +2 -0
  228. package/templates/.agents/skills/complete-task/SKILL.en.md +9 -22
  229. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +9 -22
  230. package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
  231. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
  232. package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
  233. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
  234. package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
  235. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
  236. package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
  237. package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
  238. package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
  239. package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
  240. package/templates/.agents/skills/plan-task/SKILL.en.md +14 -1
  241. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +16 -1
  242. package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
  243. package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
  244. package/templates/.agents/skills/review-analysis/SKILL.en.md +14 -1
  245. package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +14 -1
  246. package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
  247. package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
  248. package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
  249. package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
  250. package/templates/.agents/skills/review-code/SKILL.en.md +14 -1
  251. package/templates/.agents/skills/review-code/SKILL.zh-CN.md +14 -1
  252. package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
  253. package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
  254. package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
  255. package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
  256. package/templates/.agents/skills/review-plan/SKILL.en.md +14 -1
  257. package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +14 -1
  258. package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
  259. package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
  260. package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
  261. package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
  262. package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
  263. package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
  264. package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
  265. package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
  266. package/templates/.agents/skills/run-manual-validation/SKILL.en.md +5 -1
  267. package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +5 -1
  268. package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +3 -1
  269. package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +3 -1
  270. package/templates/.agents/skills/test/SKILL.en.md +13 -2
  271. package/templates/.agents/skills/test/SKILL.zh-CN.md +13 -2
  272. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
  273. package/templates/.agents/templates/task.en.md +6 -0
  274. package/templates/.agents/templates/task.zh-CN.md +6 -0
  275. package/templates/.agents/scripts/security-alerts.github.sh +0 -151
  276. package/templates/.agents/scripts/security-alerts.sh +0 -31
  277. package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
  278. package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
  279. package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
  280. package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
@@ -15,6 +15,11 @@ description: >
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
@@ -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-plan --artifact {review-artifact}
79
+ ```
80
+
81
+ 骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family review-plan --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`。
@@ -17,24 +17,7 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "review-plan.md|review-plan-r{N}.md",
20
- "required_sections": [
21
- "Review Summary",
22
- "Review Coverage Declaration",
23
- "Technical Plan Architecture 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-plan"
38
21
  },
39
22
  "decision-details": {},
40
23
  "review-summary": {
@@ -17,24 +17,7 @@
17
17
  },
18
18
  "artifact": {
19
19
  "file_pattern": "review-plan.md|review-plan-r{N}.md",
20
- "required_sections": [
21
- "审查摘要",
22
- "检视覆盖声明",
23
- "技术方案架构覆盖",
24
- "追踪矩阵",
25
- "问题清单",
26
- "非阻塞建议",
27
- "人工校验项",
28
- "结论与建议",
29
- "状态核对",
30
- "证据原文",
31
- "自我质疑",
32
- "审查分歧账本回写"
33
- ],
34
- "required_patterns": [
35
- "^### 审查决定$",
36
- "^\\$ "
37
- ]
20
+ "schema": "review-plan"
38
21
  },
39
22
  "decision-details": {},
40
23
  "review-summary": {
@@ -1,5 +1,7 @@
1
1
  # Review Report Template
2
2
 
3
+ > Before writing this report, use `task-artifact init --family review-plan` to create the skeleton and preserve every `artifact-section` marker; the skeleton contains no review conclusion.
4
+
3
5
  Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
4
6
 
5
7
  ## Output Template
@@ -12,11 +14,31 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
12
14
  - **Review Input**:
13
15
  - `{plan-artifact}` (the highest-round technical-plan artifact actually reviewed, e.g. `plan-r2.md`; leave blank if it cannot be reliably determined)
14
16
 
15
- ## State Check
17
+ ## Review Summary
16
18
 
17
- > Paste the raw state-check command output; each command starts with `$ `.
19
+ ## Qualification Audit Review
18
20
 
19
- ## Review Summary
21
+ > Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
22
+
23
+ ### Constraint Dependencies
24
+ | constraint_id | constraint_digest | role | evidence |
25
+ | --- | --- | --- | --- |
26
+
27
+ ### Candidate Qualification
28
+ | candidate_id | status | impact | constraint_ids | evidence |
29
+ | --- | --- | --- | --- | --- |
30
+
31
+ ### Classification Results
32
+ | decision_id | classification | evidence |
33
+ | --- | --- | --- |
34
+
35
+ ### Upstream Relations
36
+ | upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
37
+ | --- | --- | --- | --- | --- |
38
+
39
+ ### Dependency Snapshot
40
+ | task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
41
+ | --- | --- | --- |
20
42
 
21
43
  - **Reviewer**: {reviewer-name}
22
44
  - **Review Time**: {timestamp}
@@ -24,7 +46,7 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
24
46
  - **Overall Verdict**: {Approved / Changes Requested / Rejected}
25
47
  - **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
26
48
 
27
- ## Review Coverage Declaration
49
+ ## Inspection Coverage
28
50
 
29
51
  | pass_id | scope | evidence | result | gaps_or_assumptions |
30
52
  |---------|-------|----------|--------|---------------------|
@@ -102,7 +124,7 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
102
124
  **File**: `{file-path}:{line-number}`
103
125
  **Suggestion**: {improvement suggestion}
104
126
 
105
- ## Non-blocking Advisories
127
+ ## Non-blocking Suggestions
106
128
 
107
129
  > Record only future optimizations that do not affect the current artifact's completeness, correctness, or acceptance. Advisories do not enter the disagreement ledger, finding counts, or verdict.
108
130
 
@@ -121,27 +143,42 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
121
143
  > If this round has no Manual validation items, keep the section heading and write "None".
122
144
 
123
145
 
124
- ## Review Disagreement Ledger Writeback
146
+ ## Conclusion and Recommendation
125
147
 
126
- > Record the structured intents to submit: use `task-ledger finding-upsert` for new findings and `finding-review` for prior responses. The core allocates `PL-N` and validates transitions; do not edit task.md table rows.
127
- > Every finding escalated to `needs-human-decision` must include a self-contained detail block per `.agents/rules/human-decision-context.md`, with evidence pointing to that stable anchor.
148
+ ### Approval Decision
149
+ - [ ] Approved
150
+ - [ ] Changes Requested
151
+ - [ ] Rejected
152
+
153
+ ### Next Steps
154
+ {recommended next step}
155
+
156
+ ## State Check
128
157
 
129
- ## Evidence
158
+ > Record the state-check command, review scope, key result, and uncovered parts; each command starts with `$ `.
159
+ > Follow `.agents/rules/evidence-reporting.md`: record review scope, key result, and uncovered parts; do not paste complete successful stdout.
130
160
 
131
- > Pair each "I verified X" claim with the corresponding raw tool output; the gate only checks that this section exists and at least one `$ ` line is present. Every Blocker must be backed by a reproducible command (rg/grep/sed/nl) and its raw output; a judgment that cannot be reproduced must be downgraded or moved to Self-Doubt.
161
+ ## Raw Evidence
162
+
163
+ > Follow `.agents/rules/evidence-reporting.md`: pair each claim with a `$ ` command and proportionate result summary; Blockers, failures, blocking conditions, or disputes require a reproducible command, exact location, and decisive excerpt; a judgment that cannot be reproduced must be downgraded or moved to Self-Doubt.
132
164
 
133
165
  - Claim: {verified claim}
134
166
  ```text
135
167
  $ {command}
136
- {raw output}
168
+ {result summary or decisive excerpt}
137
169
  ```
138
170
 
139
- ## Self-Doubt
171
+ ## Self-critique
140
172
 
141
173
  > Explicitly declare conclusions, inferences, and assumptions in this review that were **not directly verified**; downstream can rebut them on this basis. Write "None" if there are none.
142
174
 
143
175
  - {an unverified conclusion or inference; note why it was not verified and the impact if it is overturned}
144
176
 
177
+ ## Review Disagreement Ledger Write-back
178
+
179
+ > Record the structured intents to submit: use `task-ledger finding-upsert` for new findings and `finding-review` for prior responses. The core allocates `PL-N` and validates transitions; do not edit task.md table rows.
180
+ > Every finding escalated to `needs-human-decision` must include a self-contained detail block per `.agents/rules/human-decision-context.md`, with evidence pointing to that stable anchor.
181
+
145
182
  ## Highlights
146
183
 
147
184
  - {what went well}
@@ -150,14 +187,4 @@ $ {command}
150
187
 
151
188
  - [ ] Implementation matches the technical plan
152
189
  - [ ] No unintended scope expansion
153
-
154
- ## Conclusion and Recommendation
155
-
156
- ### Approval Decision
157
- - [ ] Approved
158
- - [ ] Changes Requested
159
- - [ ] Rejected
160
-
161
- ### Next Steps
162
- {recommended next step}
163
190
  ```
@@ -1,5 +1,7 @@
1
1
  # 审查报告模板
2
2
 
3
+ > 写入本报告前,先用 `task-artifact init --family review-plan` 创建骨架,并保留每个 `artifact-section` marker;骨架不包含审查结论。
4
+
3
5
  编写 `review-plan.md` 或 `review-plan-r{N}.md` 时使用本模板。
4
6
 
5
7
  ## 输出模板
@@ -12,11 +14,31 @@
12
14
  - **审查输入**:
13
15
  - `{plan-artifact}`(本轮实际检视的最高轮技术方案产物,如 `plan-r2.md`;无法可靠取得则留空)
14
16
 
15
- ## 状态核对
17
+ ## 审查摘要
16
18
 
17
- > 粘贴状态核对命令原文;每条命令以 `$ ` 开头。
19
+ ## 资格审计复核
18
20
 
19
- ## 审查摘要
21
+ > 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
22
+
23
+ ### 约束依赖
24
+ | constraint_id | constraint_digest | role | evidence |
25
+ | --- | --- | --- | --- |
26
+
27
+ ### 候选资格
28
+ | candidate_id | status | impact | constraint_ids | evidence |
29
+ | --- | --- | --- | --- | --- |
30
+
31
+ ### 分类结果
32
+ | decision_id | classification | evidence |
33
+ | --- | --- | --- |
34
+
35
+ ### 上游关系
36
+ | upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
37
+ | --- | --- | --- | --- | --- |
38
+
39
+ ### 依赖快照
40
+ | task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
41
+ | --- | --- | --- |
20
42
 
21
43
  - **审查者**:{reviewer-name}
22
44
  - **审查时间**:{timestamp}
@@ -121,19 +143,29 @@
121
143
  > 如本轮无人工校验项,保留段落标题并写「(无)」。
122
144
 
123
145
 
124
- ## 审查分歧账本回写
146
+ ## 结论与建议
125
147
 
126
- > 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `PL-N` 并校验状态机,禁止手写 task.md 表格。
127
- > 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
148
+ ### 审查决定
149
+ - [ ] 通过
150
+ - [ ] 需要修改
151
+ - [ ] 拒绝
152
+
153
+ ### 下一步
154
+ {recommended next step}
155
+
156
+ ## 状态核对
157
+
158
+ > 记录状态核对命令、审查范围、关键结果和未覆盖部分;每条命令以 `$ ` 开头。
159
+ > 按 `.agents/rules/evidence-reporting.md` 同时记录审查范围、关键结果和未覆盖部分;正常成功不粘贴完整 stdout。
128
160
 
129
161
  ## 证据原文
130
162
 
131
- > 每条“我验证了 X”断言都要配对对应 tool output 原文;gate 仅校验本段存在和至少一行 `$ `。每条 Blocker 必须配可复现命令(rg/grep/sed/nl)及其原文;无法复现的判断须降级或移入「自我质疑」。
163
+ > 遵循 `.agents/rules/evidence-reporting.md`:每条断言配对 `$ ` 命令和相称结果摘要;Blocker、失败、阻塞或争议必须保留可复现命令、准确位置和决定性摘录;无法复现的判断须降级或移入「自我质疑」。
132
164
 
133
165
  - 断言:{verified claim}
134
166
  ```text
135
167
  $ {command}
136
- {raw output}
168
+ {result summary or decisive excerpt}
137
169
  ```
138
170
 
139
171
  ## 自我质疑
@@ -142,6 +174,11 @@ $ {command}
142
174
 
143
175
  - {未直接验证的结论或推断;说明为何未验证、若被推翻的影响}
144
176
 
177
+ ## 审查分歧账本回写
178
+
179
+ > 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `PL-N` 并校验状态机,禁止手写 task.md 表格。
180
+ > 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
181
+
145
182
  ## 亮点
146
183
 
147
184
  - {what went well}
@@ -150,14 +187,4 @@ $ {command}
150
187
 
151
188
  - [ ] 实现与技术方案一致
152
189
  - [ ] 没有意外的范围扩张
153
-
154
- ## 结论与建议
155
-
156
- ### 审查决定
157
- - [ ] 通过
158
- - [ ] 需要修改
159
- - [ ] 拒绝
160
-
161
- ### 下一步
162
- {recommended next step}
163
190
  ```
@@ -12,6 +12,10 @@ Based on the target PR's lifecycle-evidence completeness and change risk, select
12
12
 
13
13
  ## Boundary / Critical Rules
14
14
 
15
+ ### Persisted Report Evidence
16
+
17
+ Before generating the PR review report, read `.agents/rules/evidence-reporting.md`. Normal review records the command, scope, structured result, actual conclusion, and uncovered parts; formal Review, findings, blocking conditions, or disputes retain exact identity fields and decisive evidence.
18
+
15
19
  - Strictly follow the fixed evidence-grading decision flow: host resolution → evidence classification → freshness/alignment → risk grading → mode selection
16
20
  - `pr-review*` is an independent artifact family: it does not join the analysis/plan/code stage chain and never changes `current_step`
17
21
  - Only a formal PR Review (head SHA, conclusion, findings, receipt, Issue artifact link) is published on the PR; no second full process copy goes to a regular PR comment
@@ -41,7 +45,7 @@ Before making any task-state judgment or user-visible conclusion, run the state
41
45
  agent-infra-internal task-snapshot {task-id} --format text
42
46
  ```
43
47
 
44
- The task-anchored path records the current task directory and existing `pr-review*` rounds before starting; the one-shot path (no task) records the PR number and target directory. Paste the state-check output into the `## State Check` section of this round's `pr-review-rN.md`.
48
+ The task-anchored path records the current task directory and existing `pr-review*` rounds before starting; the one-shot path (no task) records the PR number and target directory. Record the command, PR/head, review 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, and retain decisive raw lines for identity mismatches, failures, blocking conditions, or disputes.
45
49
 
46
50
  ## Steps
47
51
 
@@ -12,6 +12,10 @@ description: >
12
12
 
13
13
  ## 行为边界 / 关键规则
14
14
 
15
+ ### 持久化报告证据
16
+
17
+ 生成 PR 审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常审查记录命令、范围、结构化结果、实际结论和未覆盖部分;正式 Review、finding、阻塞或争议的身份字段和决定性证据必须精确保留。
18
+
15
19
  - 严格遵循方案中固化的证据分级主决策流:宿主解析 → 证据分类 → 新鲜度/对齐 → 风险分级 → 模式选择
16
20
  - `pr-review*` 是独立 artifact family:不接入 analysis/plan/code 阶段依赖链,不修改 `current_step`
17
21
  - PR 上只发布正式 PR Review(head SHA、结论、finding、receipt、Issue artifact 链接),不发第二份完整过程原文到 PR 普通评论
@@ -41,7 +45,7 @@ description: >
41
45
  agent-infra-internal task-snapshot {task-id} --format text
42
46
  ```
43
47
 
44
- 任务锚定路径在开始前记录当前任务目录与既有 `pr-review*` 轮次;一次性路径(无任务)记录 PR 编号与目标目录。状态核对输出粘贴到本轮产物 `pr-review-rN.md` 的 `## 状态核对` 段。
48
+ 任务锚定路径在开始前记录当前任务目录与既有 `pr-review*` 轮次;一次性路径(无任务)记录 PR 编号与目标目录。将命令、PR/head、审查范围、关键结果和未覆盖部分写入本轮产物 `pr-review-rN.md` 的 `## 状态核对` 段;正常成功不粘贴完整目录清单或 `task.md` 尾部,身份不一致、失败、阻塞或争议时保留决定性原文行。
45
49
 
46
50
  ## 执行步骤
47
51
 
@@ -11,7 +11,8 @@ Use the following structure when creating `pr-review.md` or `pr-review-r{N}.md`.
11
11
 
12
12
  ## State Check
13
13
 
14
- > Paste the state-check command output verbatim; each command starts with `$ `.
14
+ > Record the state-check command, PR/head, review scope, key result, and uncovered parts; each command starts with `$ `.
15
+ > Follow `.agents/rules/evidence-reporting.md`: record PR, head, review scope, key result, and uncovered parts; do not paste complete successful stdout.
15
16
 
16
17
  ## Identity
17
18
 
@@ -76,10 +77,10 @@ Land the following in order before the line-level findings, without impersonatin
76
77
 
77
78
  ## Evidence
78
79
 
79
- > Every "I verified X" assertion must pair with the corresponding tool output verbatim; the gate only checks this section exists and has at least one `$ ` line.
80
+ > Follow `.agents/rules/evidence-reporting.md`: pair every assertion with a `$ ` command and proportionate result summary; formal Review, failures, blocking conditions, or disputes retain exact identity and decisive excerpts.
80
81
 
81
82
  - Assertion: {verified claim}
82
83
  ```text
83
84
  $ {command}
84
- {raw output}
85
+ {result summary or decisive excerpt}
85
86
  ```
@@ -11,7 +11,8 @@
11
11
 
12
12
  ## 状态核对
13
13
 
14
- > 粘贴状态核对命令原文;每条命令以 `$ ` 开头。
14
+ > 记录状态核对命令、PR/head、审查范围、关键结果和未覆盖部分;每条命令以 `$ ` 开头。
15
+ > 按 `.agents/rules/evidence-reporting.md` 同时记录 PR、head、审查范围、关键结果和未覆盖部分;正常成功不粘贴完整 stdout。
15
16
 
16
17
  ## 身份信息
17
18
 
@@ -76,10 +77,10 @@
76
77
 
77
78
  ## 证据原文
78
79
 
79
- > 每条「我验证了 X」断言都要配对对应 tool output 原文;gate 仅校验本段存在和至少一行 `$ `。
80
+ > 遵循 `.agents/rules/evidence-reporting.md`:每条断言配对 `$ ` 命令和相称结果摘要;正式 Review、失败、阻塞或争议保留准确身份和决定性摘录。
80
81
 
81
82
  - 断言:{verified claim}
82
83
  ```text
83
84
  $ {command}
84
- {raw output}
85
+ {result summary or decisive excerpt}
85
86
  ```
@@ -16,6 +16,10 @@ The entry point may omit the task ref; explicit task scope accepts only `--task
16
16
 
17
17
  ## Boundary
18
18
 
19
+ ### Persisted Report Evidence
20
+
21
+ Before generating a validation report, read `.agents/rules/evidence-reporting.md`. Record only the command name, target scope, exit status, sanitized result, and coverage gap; never record complete argv, environment variables, tokens, absolute paths, or a raw sensitive transcript.
22
+
19
23
  - Select the validation mode, call the sole mechanical entry point, and record evidence; do not mark PR manual validation complete.
20
24
  - `complete-manual-validation` remains the maintainer's final registration after coverage is judged sufficient.
21
25
  - Never manipulate temporary worktrees, leases, or containers directly; only call `agent-infra-internal task-validate`.
@@ -24,7 +28,7 @@ The entry point may omit the task ref; explicit task scope accepts only `--task
24
28
 
25
29
  ## Step 0: State Check (pre-execution hard gate)
26
30
 
27
- Resolve the task reference, then run this command and copy its original output into the artifact:
31
+ Resolve the task reference, then run this command and record the task/artifact scope, key result, and uncovered parts in the artifact; 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:
28
32
 
29
33
  ```bash
30
34
  agent-infra-internal task-snapshot {task-id} --format text
@@ -16,6 +16,10 @@ description: >
16
16
 
17
17
  ## 行为边界
18
18
 
19
+ ### 持久化报告证据
20
+
21
+ 生成验证报告时,先读取 `.agents/rules/evidence-reporting.md`。只记录命令名称、目标范围、退出状态、sanitized result 和覆盖缺口;不得记录完整 argv、环境变量、token、绝对路径或原始敏感 transcript。
22
+
19
23
  - 本技能负责选择校验模式、调用唯一机械入口并记录证据;不把 PR 人工校验标为完成。
20
24
  - `complete-manual-validation` 仍是维护者确认覆盖充分后的最终登记入口。
21
25
  - 禁止直接操作临时 worktree、lease 或 container;只调用 `agent-infra-internal task-validate`。
@@ -24,7 +28,7 @@ description: >
24
28
 
25
29
  ## 第 0 步:状态核对(执行前硬约束)
26
30
 
27
- 解析任务引用后运行,并把原文写入产物:
31
+ 解析任务引用后运行,并在产物中记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部,失败、阻塞、身份不一致或争议时附决定性原文行:
28
32
 
29
33
  ```bash
30
34
  agent-infra-internal task-snapshot {task-id} --format text
@@ -10,8 +10,9 @@
10
10
 
11
11
  ```text
12
12
  $ agent-infra-internal task-snapshot {task-id} --format text
13
- {raw-output}
13
+ {command-summary-and-key-result}
14
14
  ```
15
+ > Follow `.agents/rules/evidence-reporting.md`: record command name, target scope, exit status, sanitized result, and coverage gap; do not paste complete argv or sensitive transcripts.
15
16
 
16
17
  ## Validation Target
17
18
 
@@ -67,3 +68,4 @@ $ agent-infra-internal task-snapshot {task-id} --format text
67
68
  $ agent-infra-internal task-validate {task-ref} --scope {scope} --format json -- {redacted-command}
68
69
  {sanitized-result}
69
70
  ```
71
+ > Keep only the allowed public command and sanitized structured result; complete successful stdout is not default report content.
@@ -10,8 +10,9 @@
10
10
 
11
11
  ```text
12
12
  $ agent-infra-internal task-snapshot {task-id} --format text
13
- {raw-output}
13
+ {command-summary-and-key-result}
14
14
  ```
15
+ > 按 `.agents/rules/evidence-reporting.md` 记录命令名称、目标范围、退出状态、sanitized result 和覆盖缺口;不得粘贴完整 argv 或敏感 transcript。
15
16
 
16
17
  ## 验证目标
17
18
 
@@ -67,3 +68,4 @@ $ agent-infra-internal task-snapshot {task-id} --format text
67
68
  $ agent-infra-internal task-validate {task-ref} --scope {scope} --format json -- {redacted-command}
68
69
  {sanitized-result}
69
70
  ```
71
+ > 仅保留允许公开的命令与脱敏结构化结果;完整成功 stdout 不属于默认报告内容。
@@ -27,6 +27,17 @@ Confirm no compilation errors.
27
27
 
28
28
  This project uses three test layers as an optional optimization; if the test suite is small, all layers may map to the same full test command.
29
29
 
30
+ ### fast smoke (target <5s)
31
+
32
+ ```bash
33
+ # TODO: Replace with this project's fast smoke subset command
34
+ # npm run test:smoke:fast (Node.js)
35
+ # pytest -m "not slow" (Python)
36
+ # go test -short ./... (Go)
37
+ ```
38
+
39
+ Use for code-task inner loops when the project provides a build-free fast path. It should cover the same tests as smoke while skipping redundant compilation or generation.
40
+
30
41
  ### smoke (target <5s)
31
42
 
32
43
  ```bash
@@ -37,8 +48,8 @@ This project uses three test layers as an optional optimization; if the test sui
37
48
  ```
38
49
 
39
50
  Use for:
40
- - code-task inner loops
41
- - save-and-run / frequent feedback
51
+ - after completing an implementation step
52
+ - save-and-run / frequent feedback when no fast path exists
42
53
  - project structure, configuration, and template contract checks
43
54
 
44
55
  ### core (target <15s)
@@ -25,6 +25,17 @@ description: >
25
25
 
26
26
  三层测试是可选的反馈速度优化;如果测试套件较小,所有层级都可以映射到同一个完整测试命令。
27
27
 
28
+ ### fast smoke(目标 <5s)
29
+
30
+ ```bash
31
+ # TODO:替换为项目的 fast smoke 子集命令
32
+ # npm run test:smoke:fast (Node.js)
33
+ # pytest -m "not slow" (Python)
34
+ # go test -short ./... (Go)
35
+ ```
36
+
37
+ 当项目提供不重复构建的快速路径时,用于 code-task 内循环。它应覆盖与 smoke 相同的测试,同时跳过重复的编译或生成步骤。
38
+
28
39
  ### smoke(目标 <5s)
29
40
 
30
41
  ```bash
@@ -35,8 +46,8 @@ description: >
35
46
  ```
36
47
 
37
48
  适用场景:
38
- - code-task 内循环
39
- - 保存即跑 / 频繁反馈
49
+ - 完成一个实施步骤后
50
+ - 项目没有 fast 路径时的保存即跑 / 频繁反馈
40
51
  - 仅断言项目结构、配置、模板契约
41
52
 
42
53
  ### core(目标 <15s)
@@ -1269,6 +1269,9 @@ function syncTemplates(projectRoot, templateRootOverride) {
1269
1269
  }
1270
1270
  }
1271
1271
  const version = resolveVersionFromTemplateRoot(templateRoot);
1272
+ const projectTemplateRoot = path.join(projectRoot, 'templates');
1273
+ const sourceRepositoryTemplate = fs.existsSync(projectTemplateRoot)
1274
+ && fs.realpathSync(templateRoot) === fs.realpathSync(projectTemplateRoot);
1272
1275
 
1273
1276
  const { project, org, language: lang = 'en' } = cfg;
1274
1277
  const platformType = cfg.platform?.type || DEFAULTS.platform.type;
@@ -1771,6 +1774,17 @@ function syncTemplates(projectRoot, templateRootOverride) {
1771
1774
  for (const [tgt, src] of selected) {
1772
1775
  if (expectedTargets) expectedTargets.add(tgt);
1773
1776
 
1777
+ if (sourceRepositoryTemplate && tgt === '.github/workflows/pr-label.yml') {
1778
+ report.managed.protected.push({
1779
+ target: tgt,
1780
+ reason: 'source-repository',
1781
+ baseline: trustedBaseline(managedBaselines[tgt]),
1782
+ local: fs.existsSync(path.join(projectRoot, tgt)) ? sha256(fs.readFileSync(path.join(projectRoot, tgt))) : null,
1783
+ template: sha256(renderContent(fs.readFileSync(path.join(templateRoot, src), 'utf8'), vars))
1784
+ });
1785
+ continue;
1786
+ }
1787
+
1774
1788
  if (matchesAny(tgt, merged) || matchesAny(tgt, ejected)) {
1775
1789
  report.managed.skippedMerged.push(tgt);
1776
1790
  continue;
@@ -36,10 +36,16 @@ delivery_remote_head: # Most recent successfully delivered task branch
36
36
 
37
37
  ### Constraints
38
38
 
39
+ | constraint_id | statement | status | authority | source | evidence | derived_from | approval_evidence |
40
+ | --- | --- | --- | --- | --- | --- | --- | --- |
41
+
39
42
  ### Confirmed Decisions
40
43
 
41
44
  ### Candidate and Rejected Options
42
45
 
46
+ | candidate_id | statement | status | constraint_ids | impact | evidence |
47
+ | --- | --- | --- | --- | --- | --- |
48
+
43
49
  ### Acceptance Criteria
44
50
 
45
51
  ### Open Questions
@@ -36,10 +36,16 @@ delivery_remote_head: # 最近一次成功交付到 remote 的任务分
36
36
 
37
37
  ### 约束
38
38
 
39
+ | constraint_id | statement | status | authority | source | evidence | derived_from | approval_evidence |
40
+ | --- | --- | --- | --- | --- | --- | --- | --- |
41
+
39
42
  ### 已确认决策
40
43
 
41
44
  ### 候选与否决方案
42
45
 
46
+ | candidate_id | statement | status | constraint_ids | impact | evidence |
47
+ | --- | --- | --- | --- | --- | --- |
48
+
43
49
  ### 验收标准
44
50
 
45
51
  ### 未决事项