agentic-flow-kit 1.8.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (984) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +172 -138
  3. package/bin/flow-kit.mjs +7 -2
  4. package/locales/en/installer.json +110 -0
  5. package/locales/en/overrides/.agents/commands/deploy.md +52 -0
  6. package/locales/en/overrides/.agents/commands/maintain.md +76 -0
  7. package/locales/en/overrides/.agents/commands/new-task.md +89 -0
  8. package/locales/en/overrides/.agents/commands/pipeline-run.md +56 -0
  9. package/locales/en/overrides/.agents/commands/pr-review.md +30 -0
  10. package/locales/en/overrides/.agents/commands/review.md +93 -0
  11. package/locales/en/overrides/.agents/commands/stages.md +256 -0
  12. package/locales/en/overrides/.agents/notes/pr-review-cost-discipline.md +48 -0
  13. package/locales/en/overrides/.agents/notes/process-order-rule.md +21 -0
  14. package/locales/en/overrides/.agents/notes/runtime-env.local.example.md +21 -0
  15. package/locales/en/overrides/.agents/pipelines/_TEMPLATE.md +75 -0
  16. package/locales/en/overrides/.agents/pipelines/pipeline-closing.md +28 -0
  17. package/locales/en/overrides/.agents/roles/implementer.md +28 -0
  18. package/locales/en/overrides/.agents/roles/independent-reviewer.md +39 -0
  19. package/locales/en/overrides/.agents/roles/pr-adjudicator.md +27 -0
  20. package/locales/en/overrides/.agents/roles/pr-finder.md +51 -0
  21. package/locales/en/overrides/.agents/roles/pr-verifier.md +44 -0
  22. package/locales/en/overrides/.agents/roles/ui-verifier.md +22 -0
  23. package/locales/en/overrides/.agents/roles/wiki-compiler.md +47 -0
  24. package/locales/en/overrides/.agents/skills/arena/SKILL.md +50 -0
  25. package/locales/en/overrides/.agents/skills/autonomous-run/SKILL.md +45 -0
  26. package/locales/en/overrides/.agents/skills/blast-radius/SKILL.md +53 -0
  27. package/locales/en/overrides/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  28. package/locales/en/overrides/.agents/skills/dev-tour/SKILL.md +98 -0
  29. package/locales/en/overrides/.agents/skills/dream/SKILL.md +63 -0
  30. package/locales/en/overrides/.agents/skills/eval/SKILL.md +42 -0
  31. package/locales/en/overrides/.agents/skills/interrogate/SKILL.md +49 -0
  32. package/locales/en/overrides/.agents/skills/number-vetting/SKILL.md +35 -0
  33. package/locales/en/overrides/.agents/skills/page-refactor/SKILL.md +192 -0
  34. package/locales/en/overrides/.agents/skills/papercut-fix/SKILL.md +92 -0
  35. package/locales/en/overrides/.agents/skills/pause-safely/SKILL.md +31 -0
  36. package/locales/en/overrides/.agents/skills/perf/SKILL.md +42 -0
  37. package/locales/en/overrides/.agents/skills/review-method/SKILL.md +92 -0
  38. package/locales/en/overrides/.agents/skills/session-resume/SKILL.md +69 -0
  39. package/locales/en/overrides/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  40. package/locales/en/overrides/.agents/skills/show-me-your-work/SKILL.md +57 -0
  41. package/locales/en/overrides/.agents/skills/tfs-pr/SKILL.md +95 -0
  42. package/locales/en/overrides/.agents/skills/verify-ui/SKILL.md +116 -0
  43. package/locales/en/overrides/.agents/skills/visual-parity/SKILL.md +35 -0
  44. package/locales/en/overrides/.agents/skills/why/SKILL.md +56 -0
  45. package/locales/en/overrides/.agents/skills/wiki/SKILL.md +53 -0
  46. package/locales/en/overrides/.claude/agents/implementer.md +9 -0
  47. package/locales/en/overrides/.claude/agents/independent-reviewer.md +10 -0
  48. package/locales/en/overrides/.claude/agents/pr-adjudicator.md +10 -0
  49. package/locales/en/overrides/.claude/agents/pr-finder.md +10 -0
  50. package/locales/en/overrides/.claude/agents/pr-verifier.md +10 -0
  51. package/locales/en/overrides/.claude/agents/ui-verifier.md +10 -0
  52. package/locales/en/overrides/.claude/agents/wiki-compiler.md +10 -0
  53. package/locales/en/overrides/.claude/commands/wf-deploy.md +8 -0
  54. package/locales/en/overrides/.claude/commands/wf-maintain.md +8 -0
  55. package/locales/en/overrides/.claude/commands/wf-new-task.md +8 -0
  56. package/locales/en/overrides/.claude/commands/wf-pipeline-run.md +8 -0
  57. package/locales/en/overrides/.claude/commands/wf-pr-review.md +8 -0
  58. package/locales/en/overrides/.claude/commands/wf-review.md +8 -0
  59. package/locales/en/overrides/.claude/commands/wf-stages.md +8 -0
  60. package/locales/en/overrides/.cline/agents/implementer.yml +13 -0
  61. package/locales/en/overrides/.cline/agents/independent-reviewer.yml +11 -0
  62. package/locales/en/overrides/.cline/agents/pr-adjudicator.yml +11 -0
  63. package/locales/en/overrides/.cline/agents/pr-finder.yml +11 -0
  64. package/locales/en/overrides/.cline/agents/pr-verifier.yml +11 -0
  65. package/locales/en/overrides/.cline/agents/ui-verifier.yml +8 -0
  66. package/locales/en/overrides/.cline/agents/wiki-compiler.yml +14 -0
  67. package/locales/en/overrides/.cline/workflows/wf-deploy.md +8 -0
  68. package/locales/en/overrides/.cline/workflows/wf-maintain.md +8 -0
  69. package/locales/en/overrides/.cline/workflows/wf-new-task.md +8 -0
  70. package/locales/en/overrides/.cline/workflows/wf-pipeline-run.md +8 -0
  71. package/locales/en/overrides/.cline/workflows/wf-pr-review.md +8 -0
  72. package/locales/en/overrides/.cline/workflows/wf-review.md +8 -0
  73. package/locales/en/overrides/.cline/workflows/wf-stages.md +8 -0
  74. package/locales/en/overrides/.codebuddy/CODEBUDDY.md +7 -0
  75. package/locales/en/overrides/.codebuddy/agents/implementer.md +9 -0
  76. package/locales/en/overrides/.codebuddy/agents/independent-reviewer.md +10 -0
  77. package/locales/en/overrides/.codebuddy/agents/pr-adjudicator.md +10 -0
  78. package/locales/en/overrides/.codebuddy/agents/pr-finder.md +10 -0
  79. package/locales/en/overrides/.codebuddy/agents/pr-verifier.md +10 -0
  80. package/locales/en/overrides/.codebuddy/agents/ui-verifier.md +11 -0
  81. package/locales/en/overrides/.codebuddy/agents/wiki-compiler.md +10 -0
  82. package/locales/en/overrides/.codebuddy/commands/wf-deploy.md +8 -0
  83. package/locales/en/overrides/.codebuddy/commands/wf-maintain.md +8 -0
  84. package/locales/en/overrides/.codebuddy/commands/wf-new-task.md +8 -0
  85. package/locales/en/overrides/.codebuddy/commands/wf-pipeline-run.md +8 -0
  86. package/locales/en/overrides/.codebuddy/commands/wf-pr-review.md +8 -0
  87. package/locales/en/overrides/.codebuddy/commands/wf-review.md +8 -0
  88. package/locales/en/overrides/.codebuddy/commands/wf-stages.md +8 -0
  89. package/locales/en/overrides/.codebuddy/rules/backend-scope.md +5 -0
  90. package/locales/en/overrides/.codebuddy/rules/frontend-scope.md +5 -0
  91. package/locales/en/overrides/.codebuddy/skills/tfs-pr/SKILL.md +6 -0
  92. package/locales/en/overrides/.commandcode/agents/implementer.md +10 -0
  93. package/locales/en/overrides/.commandcode/agents/independent-reviewer.md +9 -0
  94. package/locales/en/overrides/.commandcode/agents/pr-adjudicator.md +9 -0
  95. package/locales/en/overrides/.commandcode/agents/pr-finder.md +9 -0
  96. package/locales/en/overrides/.commandcode/agents/pr-verifier.md +9 -0
  97. package/locales/en/overrides/.commandcode/agents/ui-verifier.md +10 -0
  98. package/locales/en/overrides/.commandcode/agents/wiki-compiler.md +10 -0
  99. package/locales/en/overrides/.commandcode/commands/wf-deploy.md +7 -0
  100. package/locales/en/overrides/.commandcode/commands/wf-maintain.md +7 -0
  101. package/locales/en/overrides/.commandcode/commands/wf-new-task.md +7 -0
  102. package/locales/en/overrides/.commandcode/commands/wf-pipeline-run.md +7 -0
  103. package/locales/en/overrides/.commandcode/commands/wf-pr-review.md +7 -0
  104. package/locales/en/overrides/.commandcode/commands/wf-review.md +7 -0
  105. package/locales/en/overrides/.commandcode/commands/wf-stages.md +7 -0
  106. package/locales/en/overrides/.opencode/agents/implementer.md +51 -0
  107. package/locales/en/overrides/.opencode/agents/independent-reviewer.md +18 -0
  108. package/locales/en/overrides/.opencode/agents/pr-adjudicator.md +18 -0
  109. package/locales/en/overrides/.opencode/agents/pr-finder.md +18 -0
  110. package/locales/en/overrides/.opencode/agents/pr-verifier.md +18 -0
  111. package/locales/en/overrides/.opencode/agents/ui-verifier.md +45 -0
  112. package/locales/en/overrides/.opencode/agents/wiki-compiler.md +51 -0
  113. package/locales/en/overrides/.opencode/commands/wf-deploy.md +7 -0
  114. package/locales/en/overrides/.opencode/commands/wf-maintain.md +7 -0
  115. package/locales/en/overrides/.opencode/commands/wf-new-task.md +7 -0
  116. package/locales/en/overrides/.opencode/commands/wf-pipeline-run.md +7 -0
  117. package/locales/en/overrides/.opencode/commands/wf-pr-review.md +7 -0
  118. package/locales/en/overrides/.opencode/commands/wf-review.md +7 -0
  119. package/locales/en/overrides/.opencode/commands/wf-stages.md +7 -0
  120. package/locales/en/overrides/.pi/agents/implementer.md +11 -0
  121. package/locales/en/overrides/.pi/agents/independent-reviewer.md +12 -0
  122. package/locales/en/overrides/.pi/agents/pr-adjudicator.md +12 -0
  123. package/locales/en/overrides/.pi/agents/pr-finder.md +11 -0
  124. package/locales/en/overrides/.pi/agents/pr-verifier.md +11 -0
  125. package/locales/en/overrides/.pi/agents/ui-verifier.md +11 -0
  126. package/locales/en/overrides/.pi/agents/wiki-compiler.md +11 -0
  127. package/locales/en/overrides/.qoder/agents/implementer.md +9 -0
  128. package/locales/en/overrides/.qoder/agents/independent-reviewer.md +10 -0
  129. package/locales/en/overrides/.qoder/agents/pr-adjudicator.md +10 -0
  130. package/locales/en/overrides/.qoder/agents/pr-finder.md +10 -0
  131. package/locales/en/overrides/.qoder/agents/pr-verifier.md +10 -0
  132. package/locales/en/overrides/.qoder/agents/ui-verifier.md +10 -0
  133. package/locales/en/overrides/.qoder/agents/wiki-compiler.md +10 -0
  134. package/locales/en/overrides/.qoder/commands/wf-deploy.md +8 -0
  135. package/locales/en/overrides/.qoder/commands/wf-maintain.md +8 -0
  136. package/locales/en/overrides/.qoder/commands/wf-new-task.md +8 -0
  137. package/locales/en/overrides/.qoder/commands/wf-pipeline-run.md +8 -0
  138. package/locales/en/overrides/.qoder/commands/wf-pr-review.md +8 -0
  139. package/locales/en/overrides/.qoder/commands/wf-review.md +8 -0
  140. package/locales/en/overrides/.qoder/commands/wf-stages.md +8 -0
  141. package/locales/en/overrides/.qwen/agents/implementer.md +10 -0
  142. package/locales/en/overrides/.qwen/agents/independent-reviewer.md +10 -0
  143. package/locales/en/overrides/.qwen/agents/pr-adjudicator.md +10 -0
  144. package/locales/en/overrides/.qwen/agents/pr-finder.md +10 -0
  145. package/locales/en/overrides/.qwen/agents/pr-verifier.md +10 -0
  146. package/locales/en/overrides/.qwen/agents/ui-verifier.md +10 -0
  147. package/locales/en/overrides/.qwen/agents/wiki-compiler.md +13 -0
  148. package/locales/en/overrides/.qwen/commands/wf-deploy.md +7 -0
  149. package/locales/en/overrides/.qwen/commands/wf-maintain.md +7 -0
  150. package/locales/en/overrides/.qwen/commands/wf-new-task.md +7 -0
  151. package/locales/en/overrides/.qwen/commands/wf-pipeline-run.md +7 -0
  152. package/locales/en/overrides/.qwen/commands/wf-pr-review.md +7 -0
  153. package/locales/en/overrides/.qwen/commands/wf-review.md +7 -0
  154. package/locales/en/overrides/.qwen/commands/wf-stages.md +7 -0
  155. package/locales/en/overrides/.trae/agents/implementer.md +9 -0
  156. package/locales/en/overrides/.trae/agents/independent-reviewer.md +10 -0
  157. package/locales/en/overrides/.trae/agents/pr-adjudicator.md +10 -0
  158. package/locales/en/overrides/.trae/agents/pr-finder.md +10 -0
  159. package/locales/en/overrides/.trae/agents/pr-verifier.md +10 -0
  160. package/locales/en/overrides/.trae/agents/ui-verifier.md +10 -0
  161. package/locales/en/overrides/.trae/agents/wiki-compiler.md +10 -0
  162. package/locales/en/overrides/.trae/commands/wf-deploy.md +8 -0
  163. package/locales/en/overrides/.trae/commands/wf-maintain.md +8 -0
  164. package/locales/en/overrides/.trae/commands/wf-new-task.md +8 -0
  165. package/locales/en/overrides/.trae/commands/wf-pipeline-run.md +8 -0
  166. package/locales/en/overrides/.trae/commands/wf-pr-review.md +8 -0
  167. package/locales/en/overrides/.trae/commands/wf-review.md +8 -0
  168. package/locales/en/overrides/.trae/commands/wf-stages.md +8 -0
  169. package/locales/en/overrides/.trae/rules/backend-scope.md +5 -0
  170. package/locales/en/overrides/.trae/rules/frontend-scope.md +5 -0
  171. package/locales/en/overrides/.zcode/agents/implementer.md +8 -0
  172. package/locales/en/overrides/.zcode/agents/independent-reviewer.md +8 -0
  173. package/locales/en/overrides/.zcode/agents/ui-verifier.md +8 -0
  174. package/locales/en/overrides/.zcode/agents/wiki-compiler.md +8 -0
  175. package/locales/en/overrides/AGENTS.md +52 -0
  176. package/locales/en/overrides/CLAUDE.md +20 -0
  177. package/locales/en/overrides/wiki/INDEX.md +33 -0
  178. package/locales/en/overrides/wiki/drafts-archive/README.md +6 -0
  179. package/locales/en/overrides/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  180. package/locales/en/overrides/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  181. package/locales/en/overrides/workflow/INDEX.md +13 -0
  182. package/locales/en/overrides/workflow/README.md +69 -0
  183. package/locales/en/overrides/workflow/archive/README.md +3 -0
  184. package/locales/en/overrides/workflow/delegations.md +4 -0
  185. package/locales/en/overrides/workflow/effective-policy.md +4 -0
  186. package/locales/en/overrides/workflow/gate-cost.md +4 -0
  187. package/locales/en/overrides/workflow/incidents/_TEMPLATE.md +49 -0
  188. package/locales/en/overrides/workflow/intents/_TEMPLATE.md +43 -0
  189. package/locales/en/overrides/workflow/metrics.md +4 -0
  190. package/locales/en/overrides/workflow/papercuts.md +3 -0
  191. package/locales/en/overrides/workflow/plans/_TEMPLATE.md +47 -0
  192. package/locales/en/overrides/workflow/regression-checklist.md +3 -0
  193. package/locales/en/overrides/workflow/specs/_TEMPLATE.md +86 -0
  194. package/locales/en/overrides/workflow/verify-evidence.md +4 -0
  195. package/locales/zh-CN/installer.json +110 -0
  196. package/package.json +23 -36
  197. package/schemas/install-manifest.schema.json +26 -0
  198. package/schemas/project-profile.schema.json +28 -0
  199. package/src/cli/args.mjs +43 -0
  200. package/src/cli/main.mjs +79 -0
  201. package/src/commands/add-host.mjs +29 -0
  202. package/src/commands/doctor.mjs +126 -0
  203. package/src/commands/install.mjs +296 -0
  204. package/src/commands/upgrade.mjs +30 -0
  205. package/src/git/config.mjs +61 -0
  206. package/src/hosts/registry.mjs +170 -0
  207. package/src/i18n.mjs +35 -0
  208. package/src/install/apply.mjs +138 -0
  209. package/src/install/frontmatter.mjs +84 -0
  210. package/src/install/manifest.mjs +40 -0
  211. package/src/install/plan.mjs +241 -0
  212. package/src/models/known.mjs +13 -0
  213. package/src/models/probe.mjs +163 -0
  214. package/src/models/resolve.mjs +312 -0
  215. package/src/render/tokens.mjs +105 -0
  216. package/src/tui/ansi.mjs +55 -0
  217. package/src/tui/flows.mjs +306 -0
  218. package/src/tui/prompts.mjs +139 -0
  219. package/src/tui/screen.mjs +217 -0
  220. package/src/tui/widgets.mjs +111 -0
  221. package/src/tui/wizard.mjs +68 -0
  222. package/templates/engine/.agents/board/dev-tour.html +1940 -0
  223. package/templates/engine/.agents/board/index.html +835 -0
  224. package/templates/engine/.agents/commands/deploy.md +52 -0
  225. package/templates/engine/.agents/commands/maintain.md +76 -0
  226. package/templates/engine/.agents/commands/new-task.md +89 -0
  227. package/templates/engine/.agents/commands/pipeline-run.md +60 -0
  228. package/templates/engine/.agents/commands/pr-review.md +30 -0
  229. package/templates/engine/.agents/commands/review.md +93 -0
  230. package/templates/engine/.agents/commands/stages.md +257 -0
  231. package/templates/engine/.agents/config/agent-eval.json +17 -0
  232. package/templates/engine/.agents/config/commit-msg-rules.json +7 -0
  233. package/templates/engine/.agents/config/engine.json +11 -0
  234. package/templates/engine/.agents/config/gate-budgets.json +5 -0
  235. package/templates/engine/.agents/config/mechanism-registry.md +63 -0
  236. package/templates/engine/.agents/config/memory-tiers.json +13 -0
  237. package/templates/engine/.agents/config/model-roles.json +26 -0
  238. package/templates/engine/.agents/config/model-roles.local.example.json +7 -0
  239. package/templates/engine/.agents/config/pipeline.json +36 -0
  240. package/templates/engine/.agents/config/pr-review.json +67 -0
  241. package/templates/engine/.agents/config/principles.md +32 -0
  242. package/templates/engine/.agents/config/steering.json +28 -0
  243. package/templates/engine/.agents/config/workflow-enums.txt +25 -0
  244. package/templates/engine/.agents/evals/README.md +49 -0
  245. package/templates/engine/.agents/evals/tasks.tsv +6 -0
  246. package/templates/engine/.agents/hooks/check-architecture.mjs +168 -0
  247. package/templates/engine/.agents/hooks/check-audit-fields.mjs +56 -0
  248. package/templates/engine/.agents/hooks/check-commit-plan-ref.mjs +84 -0
  249. package/templates/engine/.agents/hooks/check-confirm-order.mjs +281 -0
  250. package/templates/engine/.agents/hooks/check-delete-guard.mjs +63 -0
  251. package/templates/engine/.agents/hooks/check-notify-guard.mjs +55 -0
  252. package/templates/engine/.agents/hooks/commit-check.cjs +208 -0
  253. package/templates/engine/.agents/hooks/gates.json +33 -0
  254. package/templates/engine/.agents/hooks/local-pre-commit.mjs +27 -0
  255. package/templates/engine/.agents/hooks/pre-shell-check.cjs +361 -0
  256. package/templates/engine/.agents/hooks/pre-write-check.cjs +247 -0
  257. package/templates/engine/.agents/notes/gate-diet.md +75 -0
  258. package/templates/engine/.agents/notes/injected-memory.md +14 -0
  259. package/templates/engine/.agents/notes/pr-review-cost-discipline.md +48 -0
  260. package/templates/engine/.agents/notes/process-order-rule.md +21 -0
  261. package/templates/engine/.agents/notes/runtime-env.local.example.md +21 -0
  262. package/templates/engine/.agents/notes/steering-tiers.md +28 -0
  263. package/templates/engine/.agents/pipelines/_TEMPLATE.md +75 -0
  264. package/templates/engine/.agents/pipelines/pipeline-closing.md +28 -0
  265. package/templates/engine/.agents/pipelines//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +16 -0
  266. package/templates/engine/.agents/roles/implementer.md +28 -0
  267. package/templates/engine/.agents/roles/independent-reviewer.md +39 -0
  268. package/templates/engine/.agents/roles/pr-adjudicator.md +27 -0
  269. package/templates/engine/.agents/roles/pr-finder.md +51 -0
  270. package/templates/engine/.agents/roles/pr-verifier.md +44 -0
  271. package/templates/engine/.agents/roles/ui-verifier.md +22 -0
  272. package/templates/engine/.agents/roles/wiki-compiler.md +47 -0
  273. package/templates/engine/.agents/scripts/agent-eval.mjs +268 -0
  274. package/templates/engine/.agents/scripts/agg-delegations.mjs +439 -0
  275. package/templates/engine/.agents/scripts/agg-judgments.mjs +301 -0
  276. package/templates/engine/.agents/scripts/agg-kb-usage.mjs +196 -0
  277. package/templates/engine/.agents/scripts/append-compensation.mjs +109 -0
  278. package/templates/engine/.agents/scripts/archive-sweep.mjs +229 -0
  279. package/templates/engine/.agents/scripts/auto-tour.mjs +77 -0
  280. package/templates/engine/.agents/scripts/board-port.mjs +17 -0
  281. package/templates/engine/.agents/scripts/check-doc-body-drift.mjs +102 -0
  282. package/templates/engine/.agents/scripts/check-engine-artifacts.mjs +54 -0
  283. package/templates/engine/.agents/scripts/check-hook-wiring.mjs +75 -0
  284. package/templates/engine/.agents/scripts/check-lane-surface.mjs +393 -0
  285. package/templates/engine/.agents/scripts/check-ledger-doc-presence.mjs +71 -0
  286. package/templates/engine/.agents/scripts/check-ledger-invariant.mjs +873 -0
  287. package/templates/engine/.agents/scripts/check-local-gate-config.mjs +95 -0
  288. package/templates/engine/.agents/scripts/check-local-gates.mjs +248 -0
  289. package/templates/engine/.agents/scripts/check-loop-kit.mjs +550 -0
  290. package/templates/engine/.agents/scripts/check-loop-rev-semantics.mjs +59 -0
  291. package/templates/engine/.agents/scripts/check-loop-sections/s01-pairing.mjs +116 -0
  292. package/templates/engine/.agents/scripts/check-loop-sections/s03x-regr-evidence.mjs +38 -0
  293. package/templates/engine/.agents/scripts/check-loop-sections/s08-acceptance.mjs +130 -0
  294. package/templates/engine/.agents/scripts/check-loop-sections/s15-fingerprint.mjs +152 -0
  295. package/templates/engine/.agents/scripts/check-loop-sections/s23-convergence-audit.mjs +182 -0
  296. package/templates/engine/.agents/scripts/check-loop-sections/s29-regr-enforcer.mjs +69 -0
  297. package/templates/engine/.agents/scripts/check-loop.mjs +131 -0
  298. package/templates/engine/.agents/scripts/check-pipeline-state.mjs +85 -0
  299. package/templates/engine/.agents/scripts/check-regression-consistency.mjs +252 -0
  300. package/templates/engine/.agents/scripts/check-schema-residue.mjs +144 -0
  301. package/templates/engine/.agents/scripts/check-scope-range.mjs +156 -0
  302. package/templates/engine/.agents/scripts/check-scope.mjs +121 -0
  303. package/templates/engine/.agents/scripts/check-scripts-syntax.mjs +138 -0
  304. package/templates/engine/.agents/scripts/check-secrets-lite.mjs +239 -0
  305. package/templates/engine/.agents/scripts/check-secrets.mjs +104 -0
  306. package/templates/engine/.agents/scripts/check-test-impact-map.mjs +107 -0
  307. package/templates/engine/.agents/scripts/ci-assert-frontend-deps.mjs +42 -0
  308. package/templates/engine/.agents/scripts/ci-commit-hygiene.mjs +86 -0
  309. package/templates/engine/.agents/scripts/ci-install-gitleaks.mjs +75 -0
  310. package/templates/engine/.agents/scripts/ci-push-before.mjs +49 -0
  311. package/templates/engine/.agents/scripts/claims.mjs +166 -0
  312. package/templates/engine/.agents/scripts/closeout.mjs +127 -0
  313. package/templates/engine/.agents/scripts/compact-ledgers.mjs +70 -0
  314. package/templates/engine/.agents/scripts/confirm-doc.mjs +737 -0
  315. package/templates/engine/.agents/scripts/delegation-presence.mjs +38 -0
  316. package/templates/engine/.agents/scripts/dev-tour-model.mjs +1398 -0
  317. package/templates/engine/.agents/scripts/dream-run.mjs +358 -0
  318. package/templates/engine/.agents/scripts/ensure-board.mjs +187 -0
  319. package/templates/engine/.agents/scripts/failure-attribution.mjs +11 -0
  320. package/templates/engine/.agents/scripts/fill-intent.mjs +60 -0
  321. package/templates/engine/.agents/scripts/fill-plan.mjs +105 -0
  322. package/templates/engine/.agents/scripts/fill-spec.mjs +72 -0
  323. package/templates/engine/.agents/scripts/fix-task.mjs +77 -0
  324. package/templates/engine/.agents/scripts/gen-dev-tour.mjs +191 -0
  325. package/templates/engine/.agents/scripts/gen-effective-policy.mjs +113 -0
  326. package/templates/engine/.agents/scripts/gen-engine-map.mjs +292 -0
  327. package/templates/engine/.agents/scripts/gen-narrative-claims.mjs +275 -0
  328. package/templates/engine/.agents/scripts/gen-verify-evidence.mjs +115 -0
  329. package/templates/engine/.agents/scripts/gen-wiki-board.mjs +221 -0
  330. package/templates/engine/.agents/scripts/gen-workflow-index.mjs +201 -0
  331. package/templates/engine/.agents/scripts/gen-workflow-metrics.mjs +692 -0
  332. package/templates/engine/.agents/scripts/git-merge-jsonl.mjs +62 -0
  333. package/templates/engine/.agents/scripts/judgment-ledger.mjs +68 -0
  334. package/templates/engine/.agents/scripts/kb-cache-evict.mjs +50 -0
  335. package/templates/engine/.agents/scripts/kb-search.mjs +423 -0
  336. package/templates/engine/.agents/scripts/lane-surface-audit.mjs +145 -0
  337. package/templates/engine/.agents/scripts/ledger-loader.mjs +77 -0
  338. package/templates/engine/.agents/scripts/ledger-shards.mjs +346 -0
  339. package/templates/engine/.agents/scripts/memory-tier.mjs +196 -0
  340. package/templates/engine/.agents/scripts/memory-wiki.mjs +296 -0
  341. package/templates/engine/.agents/scripts/metrics-core.mjs +131 -0
  342. package/templates/engine/.agents/scripts/outcome-metrics.mjs +195 -0
  343. package/templates/engine/.agents/scripts/path-lease.mjs +177 -0
  344. package/templates/engine/.agents/scripts/pipeline-run.mjs +964 -0
  345. package/templates/engine/.agents/scripts/policy.mjs +250 -0
  346. package/templates/engine/.agents/scripts/pr-create.mjs +54 -0
  347. package/templates/engine/.agents/scripts/pr-review.mjs +1551 -0
  348. package/templates/engine/.agents/scripts/quote-grounding.mjs +233 -0
  349. package/templates/engine/.agents/scripts/regen-ledgers.mjs +59 -0
  350. package/templates/engine/.agents/scripts/rewrite-file.mjs +135 -0
  351. package/templates/engine/.agents/scripts/rule-budget.mjs +246 -0
  352. package/templates/engine/.agents/scripts/session-log.mjs +157 -0
  353. package/templates/engine/.agents/scripts/stage-gates.mjs +812 -0
  354. package/templates/engine/.agents/scripts/steering.mjs +75 -0
  355. package/templates/engine/.agents/scripts/test-impact-lib.mjs +451 -0
  356. package/templates/engine/.agents/scripts/test-impact.mjs +105 -0
  357. package/templates/engine/.agents/scripts/trust-mode.mjs +130 -0
  358. package/templates/engine/.agents/scripts/verify-scope.mjs +163 -0
  359. package/templates/engine/.agents/scripts/verify-wiki-consistency.mjs +264 -0
  360. package/templates/engine/.agents/scripts/verify.mjs +858 -0
  361. package/templates/engine/.agents/scripts/warn-format.mjs +57 -0
  362. package/templates/engine/.agents/scripts/wf-journal.mjs +230 -0
  363. package/templates/engine/.agents/scripts/workflow-board-server.mjs +696 -0
  364. package/templates/engine/.agents/scripts/workflow-enums.mjs +70 -0
  365. package/templates/engine/.agents/scripts/workflows-check.mjs +260 -0
  366. package/templates/engine/.agents/settings.json +33 -0
  367. package/templates/engine/.agents/skills/arena/SKILL.md +54 -0
  368. package/templates/engine/.agents/skills/autonomous-run/SKILL.md +45 -0
  369. package/templates/engine/.agents/skills/blast-radius/SKILL.md +53 -0
  370. package/templates/engine/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  371. package/templates/engine/.agents/skills/csharp-quality-gates/scripts/quality-gates.mjs +430 -0
  372. package/templates/engine/.agents/skills/dev-tour/SKILL.md +98 -0
  373. package/templates/engine/.agents/skills/dream/SKILL.md +82 -0
  374. package/templates/engine/.agents/skills/eval/SKILL.md +58 -0
  375. package/templates/engine/.agents/skills/eval/scripts/eval-score.mjs +59 -0
  376. package/templates/engine/.agents/skills/interrogate/SKILL.md +49 -0
  377. package/templates/engine/.agents/skills/interrogate/scripts/interrogate-plan.mjs +72 -0
  378. package/templates/engine/.agents/skills/model-upgrade/SKILL.md +41 -0
  379. package/templates/engine/.agents/skills/number-vetting/SKILL.md +35 -0
  380. package/templates/engine/.agents/skills/page-refactor/SKILL.md +192 -0
  381. package/templates/engine/.agents/skills/page-refactor/references/templates.md +989 -0
  382. package/templates/engine/.agents/skills/papercut-fix/SKILL.md +92 -0
  383. package/templates/engine/.agents/skills/papercut-fix/references/response-template.md +81 -0
  384. package/templates/engine/.agents/skills/pause-safely/SKILL.md +31 -0
  385. package/templates/engine/.agents/skills/perf/SKILL.md +42 -0
  386. package/templates/engine/.agents/skills/review-method/SKILL.md +92 -0
  387. package/templates/engine/.agents/skills/review-method/golden-set.md +61 -0
  388. package/templates/engine/.agents/skills/session-resume/SKILL.md +76 -0
  389. package/templates/engine/.agents/skills/session-resume/scripts/worktree-audit.mjs +110 -0
  390. package/templates/engine/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  391. package/templates/engine/.agents/skills/show-me-your-work/SKILL.md +71 -0
  392. package/templates/engine/.agents/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  393. package/templates/engine/.agents/skills/show-me-your-work/scripts/decision-log.mjs +24 -0
  394. package/templates/engine/.agents/skills/tfs-pr/SKILL.md +95 -0
  395. package/templates/engine/.agents/skills/tfs-pr/scripts/tfs-pr.mjs +947 -0
  396. package/templates/engine/.agents/skills/verify-ui/SKILL.md +116 -0
  397. package/templates/engine/.agents/skills/verify-ui/features/.gitkeep +0 -0
  398. package/templates/engine/.agents/skills/verify-ui/scripts/gen-verify-feature.mjs +114 -0
  399. package/templates/engine/.agents/skills/visual-parity/SKILL.md +35 -0
  400. package/templates/engine/.agents/skills/why/SKILL.md +56 -0
  401. package/templates/engine/.agents/skills/why/scripts/why-evidence.mjs +74 -0
  402. package/templates/engine/.agents/skills/wiki/SKILL.md +56 -0
  403. package/templates/engine/.agents/tests/auto-tour.test.mjs +82 -0
  404. package/templates/engine/.agents/tests/dev-tour-model.test.mjs +452 -0
  405. package/templates/engine/.agents/tests/fill-plan-lite.test.mjs +46 -0
  406. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.md +14 -0
  407. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.model.json +179 -0
  408. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.md +21 -0
  409. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.model.json +194 -0
  410. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.md +20 -0
  411. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.model.json +207 -0
  412. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.md +24 -0
  413. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.model.json +225 -0
  414. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.md +15 -0
  415. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.model.json +160 -0
  416. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.md +29 -0
  417. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.model.json +266 -0
  418. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.md +17 -0
  419. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.model.json +207 -0
  420. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.md +39 -0
  421. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.model.json +359 -0
  422. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.md +16 -0
  423. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.model.json +131 -0
  424. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.md +29 -0
  425. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.model.json +190 -0
  426. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.md +39 -0
  427. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.model.json +362 -0
  428. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.md +24 -0
  429. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.model.json +224 -0
  430. package/templates/engine/.agents/tests/tools/gen-synthetic-plan.mjs +108 -0
  431. package/templates/git/.gitattributes +23 -0
  432. package/templates/git/.githooks/commit-msg +72 -0
  433. package/templates/git/.githooks/package.json +3 -0
  434. package/templates/git/.githooks/post-commit +62 -0
  435. package/templates/git/.githooks/pre-commit +197 -0
  436. package/templates/git/.githooks/pre-merge-commit +28 -0
  437. package/templates/git/.githooks/pre-push +201 -0
  438. package/templates/git/.github/workflows/ci.yml +32 -0
  439. package/templates/git/.gitignore.engine +11 -0
  440. package/templates/git/azure-pipelines.yml +46 -0
  441. package/templates/host-meta/SKILLS.md +3 -0
  442. package/templates/host-meta/claude/skill-pointer.md +6 -0
  443. package/templates/host-meta/cline/skill-index.md +6 -0
  444. package/templates/host-meta/codebuddy/skill-pointer.md +6 -0
  445. package/templates/host-meta/commandcode/skill-index.md +5 -0
  446. package/templates/host-meta/opencode/skill-pointer.md +6 -0
  447. package/templates/host-meta/qoder/skill-index.md +5 -0
  448. package/templates/host-meta/qwen/skill-index.md +5 -0
  449. package/templates/host-meta/trae/skill-index.md +6 -0
  450. package/templates/hosts/claude/CLAUDE.md +55 -0
  451. package/templates/hosts/claude/agents/implementer.md +7 -0
  452. package/templates/hosts/claude/agents/independent-reviewer.md +8 -0
  453. package/templates/hosts/claude/agents/pr-adjudicator.md +8 -0
  454. package/templates/hosts/claude/agents/pr-finder.md +8 -0
  455. package/templates/hosts/claude/agents/pr-verifier.md +8 -0
  456. package/templates/hosts/claude/agents/ui-verifier.md +8 -0
  457. package/templates/hosts/claude/agents/wiki-compiler.md +8 -0
  458. package/templates/hosts/claude/commands/wf-deploy.md +10 -0
  459. package/templates/hosts/claude/commands/wf-maintain.md +10 -0
  460. package/templates/hosts/claude/commands/wf-new-task.md +10 -0
  461. package/templates/hosts/claude/commands/wf-pipeline-run.md +10 -0
  462. package/templates/hosts/claude/commands/wf-pr-review.md +10 -0
  463. package/templates/hosts/claude/commands/wf-review.md +10 -0
  464. package/templates/hosts/claude/commands/wf-stages.md +10 -0
  465. package/templates/hosts/claude/settings.hardened.json +94 -0
  466. package/templates/hosts/claude/settings.json +55 -0
  467. package/templates/hosts/cline/agents/implementer.yml +15 -0
  468. package/templates/hosts/cline/agents/independent-reviewer.yml +20 -0
  469. package/templates/hosts/cline/agents/pr-adjudicator.yml +18 -0
  470. package/templates/hosts/cline/agents/pr-finder.yml +19 -0
  471. package/templates/hosts/cline/agents/pr-verifier.yml +18 -0
  472. package/templates/hosts/cline/agents/ui-verifier.yml +17 -0
  473. package/templates/hosts/cline/agents/wiki-compiler.yml +20 -0
  474. package/templates/hosts/cline/hooks/PreToolUse.cjs +260 -0
  475. package/templates/hosts/cline/workflows/wf-deploy.md +8 -0
  476. package/templates/hosts/cline/workflows/wf-maintain.md +8 -0
  477. package/templates/hosts/cline/workflows/wf-new-task.md +8 -0
  478. package/templates/hosts/cline/workflows/wf-pipeline-run.md +8 -0
  479. package/templates/hosts/cline/workflows/wf-pr-review.md +8 -0
  480. package/templates/hosts/cline/workflows/wf-review.md +8 -0
  481. package/templates/hosts/cline/workflows/wf-stages.md +8 -0
  482. package/templates/hosts/codebuddy/CODEBUDDY.md +7 -0
  483. package/templates/hosts/codebuddy/agents/implementer.md +9 -0
  484. package/templates/hosts/codebuddy/agents/independent-reviewer.md +10 -0
  485. package/templates/hosts/codebuddy/agents/pr-adjudicator.md +10 -0
  486. package/templates/hosts/codebuddy/agents/pr-finder.md +10 -0
  487. package/templates/hosts/codebuddy/agents/pr-verifier.md +10 -0
  488. package/templates/hosts/codebuddy/agents/ui-verifier.md +11 -0
  489. package/templates/hosts/codebuddy/agents/wiki-compiler.md +10 -0
  490. package/templates/hosts/codebuddy/commands/wf-deploy.md +10 -0
  491. package/templates/hosts/codebuddy/commands/wf-maintain.md +10 -0
  492. package/templates/hosts/codebuddy/commands/wf-new-task.md +10 -0
  493. package/templates/hosts/codebuddy/commands/wf-pipeline-run.md +10 -0
  494. package/templates/hosts/codebuddy/commands/wf-pr-review.md +10 -0
  495. package/templates/hosts/codebuddy/commands/wf-review.md +10 -0
  496. package/templates/hosts/codebuddy/commands/wf-stages.md +10 -0
  497. package/templates/hosts/codebuddy/rules/backend-scope.md +5 -0
  498. package/templates/hosts/codebuddy/rules/frontend-scope.md +5 -0
  499. package/templates/hosts/codebuddy/settings.json +31 -0
  500. package/templates/hosts/codebuddy/skills/tfs-pr/SKILL.md +6 -0
  501. package/templates/hosts/commandcode/agents/implementer.md +10 -0
  502. package/templates/hosts/commandcode/agents/independent-reviewer.md +9 -0
  503. package/templates/hosts/commandcode/agents/pr-adjudicator.md +9 -0
  504. package/templates/hosts/commandcode/agents/pr-finder.md +9 -0
  505. package/templates/hosts/commandcode/agents/pr-verifier.md +9 -0
  506. package/templates/hosts/commandcode/agents/ui-verifier.md +11 -0
  507. package/templates/hosts/commandcode/agents/wiki-compiler.md +10 -0
  508. package/templates/hosts/commandcode/commands/wf-deploy.md +9 -0
  509. package/templates/hosts/commandcode/commands/wf-maintain.md +9 -0
  510. package/templates/hosts/commandcode/commands/wf-new-task.md +9 -0
  511. package/templates/hosts/commandcode/commands/wf-pipeline-run.md +9 -0
  512. package/templates/hosts/commandcode/commands/wf-pr-review.md +9 -0
  513. package/templates/hosts/commandcode/commands/wf-review.md +9 -0
  514. package/templates/hosts/commandcode/commands/wf-stages.md +9 -0
  515. package/templates/hosts/commandcode/settings.json +57 -0
  516. package/templates/hosts/opencode/agents/implementer.md +51 -0
  517. package/templates/hosts/opencode/agents/independent-reviewer.md +18 -0
  518. package/templates/hosts/opencode/agents/pr-adjudicator.md +18 -0
  519. package/templates/hosts/opencode/agents/pr-finder.md +18 -0
  520. package/templates/hosts/opencode/agents/pr-verifier.md +18 -0
  521. package/templates/hosts/opencode/agents/ui-verifier.md +45 -0
  522. package/templates/hosts/opencode/agents/wiki-compiler.md +51 -0
  523. package/templates/hosts/opencode/commands/wf-deploy.md +7 -0
  524. package/templates/hosts/opencode/commands/wf-maintain.md +7 -0
  525. package/templates/hosts/opencode/commands/wf-new-task.md +7 -0
  526. package/templates/hosts/opencode/commands/wf-pipeline-run.md +7 -0
  527. package/templates/hosts/opencode/commands/wf-pr-review.md +7 -0
  528. package/templates/hosts/opencode/commands/wf-review.md +7 -0
  529. package/templates/hosts/opencode/commands/wf-stages.md +7 -0
  530. package/templates/hosts/pi/agents/implementer.md +10 -0
  531. package/templates/hosts/pi/agents/independent-reviewer.md +11 -0
  532. package/templates/hosts/pi/agents/pr-adjudicator.md +11 -0
  533. package/templates/hosts/pi/agents/pr-finder.md +10 -0
  534. package/templates/hosts/pi/agents/pr-verifier.md +10 -0
  535. package/templates/hosts/pi/agents/ui-verifier.md +10 -0
  536. package/templates/hosts/pi/agents/wiki-compiler.md +10 -0
  537. package/templates/hosts/pi/extensions/lib/gates-core.cjs +196 -0
  538. package/templates/hosts/pi/extensions/shipyard-gates.ts +95 -0
  539. package/templates/hosts/pi/settings.json +5 -0
  540. package/templates/hosts/qoder/agents/implementer.md +9 -0
  541. package/templates/hosts/qoder/agents/independent-reviewer.md +10 -0
  542. package/templates/hosts/qoder/agents/pr-adjudicator.md +10 -0
  543. package/templates/hosts/qoder/agents/pr-finder.md +10 -0
  544. package/templates/hosts/qoder/agents/pr-verifier.md +10 -0
  545. package/templates/hosts/qoder/agents/ui-verifier.md +10 -0
  546. package/templates/hosts/qoder/agents/wiki-compiler.md +10 -0
  547. package/templates/hosts/qoder/commands/wf-deploy.md +8 -0
  548. package/templates/hosts/qoder/commands/wf-maintain.md +8 -0
  549. package/templates/hosts/qoder/commands/wf-new-task.md +8 -0
  550. package/templates/hosts/qoder/commands/wf-pipeline-run.md +8 -0
  551. package/templates/hosts/qoder/commands/wf-pr-review.md +8 -0
  552. package/templates/hosts/qoder/commands/wf-review.md +8 -0
  553. package/templates/hosts/qoder/commands/wf-stages.md +8 -0
  554. package/templates/hosts/qoder/settings.json +61 -0
  555. package/templates/hosts/qwen/agents/implementer.md +8 -0
  556. package/templates/hosts/qwen/agents/independent-reviewer.md +8 -0
  557. package/templates/hosts/qwen/agents/pr-adjudicator.md +8 -0
  558. package/templates/hosts/qwen/agents/pr-finder.md +8 -0
  559. package/templates/hosts/qwen/agents/pr-verifier.md +8 -0
  560. package/templates/hosts/qwen/agents/ui-verifier.md +8 -0
  561. package/templates/hosts/qwen/agents/wiki-compiler.md +11 -0
  562. package/templates/hosts/qwen/commands/wf-deploy.md +9 -0
  563. package/templates/hosts/qwen/commands/wf-maintain.md +9 -0
  564. package/templates/hosts/qwen/commands/wf-new-task.md +9 -0
  565. package/templates/hosts/qwen/commands/wf-pipeline-run.md +9 -0
  566. package/templates/hosts/qwen/commands/wf-pr-review.md +9 -0
  567. package/templates/hosts/qwen/commands/wf-review.md +9 -0
  568. package/templates/hosts/qwen/commands/wf-stages.md +9 -0
  569. package/templates/hosts/qwen/settings.json +57 -0
  570. package/templates/hosts/trae/agents/implementer.md +9 -0
  571. package/templates/hosts/trae/agents/independent-reviewer.md +10 -0
  572. package/templates/hosts/trae/agents/pr-adjudicator.md +10 -0
  573. package/templates/hosts/trae/agents/pr-finder.md +10 -0
  574. package/templates/hosts/trae/agents/pr-verifier.md +10 -0
  575. package/templates/hosts/trae/agents/ui-verifier.md +10 -0
  576. package/templates/hosts/trae/agents/wiki-compiler.md +10 -0
  577. package/templates/hosts/trae/commands/wf-deploy.md +8 -0
  578. package/templates/hosts/trae/commands/wf-maintain.md +8 -0
  579. package/templates/hosts/trae/commands/wf-new-task.md +8 -0
  580. package/templates/hosts/trae/commands/wf-pipeline-run.md +8 -0
  581. package/templates/hosts/trae/commands/wf-pr-review.md +8 -0
  582. package/templates/hosts/trae/commands/wf-review.md +8 -0
  583. package/templates/hosts/trae/commands/wf-stages.md +8 -0
  584. package/templates/hosts/trae/hooks.json +17 -0
  585. package/templates/hosts/trae/rules/backend-scope.md +5 -0
  586. package/templates/hosts/trae/rules/frontend-scope.md +5 -0
  587. package/templates/hosts/zcode/agents/implementer.md +8 -0
  588. package/templates/hosts/zcode/agents/independent-reviewer.md +8 -0
  589. package/templates/hosts/zcode/agents/ui-verifier.md +8 -0
  590. package/templates/hosts/zcode/agents/wiki-compiler.md +8 -0
  591. package/templates/hosts/zcode/config.json +31 -0
  592. package/templates/hosts/zcode/workflows/code-review.dwf.ts +428 -0
  593. package/templates/hosts/zcode/workflows/fullchain-flow-test.dwf.ts +898 -0
  594. package/templates/profiles/dotnet/.agents/config/lane-surfaces.txt +33 -0
  595. package/templates/profiles/dotnet/.agents/config/rule-budgets.txt +84 -0
  596. package/templates/profiles/dotnet/.agents/config/test-impact-map.json +590 -0
  597. package/templates/profiles/dotnet/.agents/config/workflow-modules.txt +18 -0
  598. package/templates/profiles/dotnet/.agents/hooks/commit-check.config.json +18 -0
  599. package/templates/profiles/dotnet/.agents/hooks/delete-guard-allowlist.txt +28 -0
  600. package/templates/profiles/dotnet/.agents/notes/runtime-env.md +178 -0
  601. package/templates/profiles/dotnet/AGENTS.md +52 -0
  602. package/templates/profiles/empty/.agents/config/lane-surfaces.txt +12 -0
  603. package/templates/profiles/empty/.agents/config/rule-budgets.txt +3 -0
  604. package/templates/profiles/empty/.agents/config/test-impact-map.json +8 -0
  605. package/templates/profiles/empty/.agents/config/workflow-modules.txt +2 -0
  606. package/templates/profiles/empty/.agents/hooks/commit-check.config.json +5 -0
  607. package/templates/profiles/empty/.agents/hooks/delete-guard-allowlist.txt +2 -0
  608. package/templates/profiles/empty/.agents/notes/runtime-env.md +44 -0
  609. package/templates/profiles/empty/AGENTS.md +52 -0
  610. package/templates/profiles/go/AGENTS.md +52 -0
  611. package/templates/profiles/java/AGENTS.md +52 -0
  612. package/templates/profiles/node/.agents/config/lane-surfaces.txt +12 -0
  613. package/templates/profiles/node/.agents/config/rule-budgets.txt +3 -0
  614. package/templates/profiles/node/.agents/config/test-impact-map.json +8 -0
  615. package/templates/profiles/node/.agents/config/workflow-modules.txt +2 -0
  616. package/templates/profiles/node/.agents/hooks/commit-check.config.json +5 -0
  617. package/templates/profiles/node/.agents/hooks/delete-guard-allowlist.txt +2 -0
  618. package/templates/profiles/node/.agents/notes/runtime-env.md +44 -0
  619. package/templates/profiles/node/AGENTS.md +52 -0
  620. package/templates/profiles/rust/AGENTS.md +52 -0
  621. package/templates/profiles/typescript/AGENTS.md +52 -0
  622. package/templates/scaffold/wiki/INDEX.md +33 -0
  623. package/templates/scaffold/wiki/drafts-archive/README.md +7 -0
  624. package/templates/scaffold/wiki//344/272/247/345/223/201/351/234/200/346/261/202/.gitkeep +0 -0
  625. package/templates/scaffold/wiki//345/274/200/345/217/221/346/226/271/346/241/210/.gitkeep +0 -0
  626. package/templates/scaffold/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  627. package/templates/scaffold/wiki//346/265/213/350/257/225/346/212/245/345/221/212/.gitkeep +0 -0
  628. package/templates/scaffold/wiki//347/224/250/346/210/267/345/212/237/350/203/275/.gitkeep +0 -0
  629. package/templates/scaffold/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  630. package/templates/scaffold/wiki//351/241/271/347/233/256/350/247/204/350/214/203/.gitkeep +0 -0
  631. package/templates/scaffold/workflow/INDEX.md +29 -0
  632. package/templates/scaffold/workflow/README.md +69 -0
  633. package/templates/scaffold/workflow/archive/README.md +3 -0
  634. package/templates/scaffold/workflow/artifact-sources.md +25 -0
  635. package/templates/scaffold/workflow/delegations.d/.gitkeep +0 -0
  636. package/templates/scaffold/workflow/delegations.md +4 -0
  637. package/templates/scaffold/workflow/effective-policy.md +4 -0
  638. package/templates/scaffold/workflow/evidence/.gitkeep +0 -0
  639. package/templates/scaffold/workflow/gate-cost.md +4 -0
  640. package/templates/scaffold/workflow/gate-metrics.d/.gitkeep +0 -0
  641. package/templates/scaffold/workflow/incidents/_TEMPLATE.md +49 -0
  642. package/templates/scaffold/workflow/intents/_TEMPLATE.md +43 -0
  643. package/templates/scaffold/workflow/metrics.md +4 -0
  644. package/templates/scaffold/workflow/non-engineer-intent.md +51 -0
  645. package/templates/scaffold/workflow/papercuts.d/.gitkeep +0 -0
  646. package/templates/scaffold/workflow/papercuts.md +3 -0
  647. package/templates/scaffold/workflow/plans/_TEMPLATE.md +47 -0
  648. package/templates/scaffold/workflow/regression-checklist.d/.gitkeep +0 -0
  649. package/templates/scaffold/workflow/regression-checklist.md +3 -0
  650. package/templates/scaffold/workflow/research/.gitkeep +0 -0
  651. package/templates/scaffold/workflow/reviews.d/.gitkeep +0 -0
  652. package/templates/scaffold/workflow/specs/_TEMPLATE.md +87 -0
  653. package/templates/scaffold/workflow/verify-evidence/.gitkeep +0 -0
  654. package/templates/scaffold/workflow/verify-evidence.md +4 -0
  655. package/modules/gates/README.md +0 -25
  656. package/modules/gates/dotnet-ca/README.md +0 -24
  657. package/modules/gates/dotnet-ca/check-architecture.sh +0 -150
  658. package/modules/gates/dotnet-ca/local-pre-commit.line +0 -1
  659. package/modules/gates/generated-readonly/README.md +0 -13
  660. package/modules/gates/generated-readonly/check-generated.mjs +0 -61
  661. package/modules/gates/generated-readonly/local-pre-commit.line +0 -1
  662. package/modules/gates/node-layer/README.md +0 -9
  663. package/modules/gates/node-layer/check-node-layer.mjs +0 -29
  664. package/modules/gates/node-layer/local-pre-commit.line +0 -1
  665. package/modules/gates/py-import/README.md +0 -9
  666. package/modules/gates/py-import/check-py-import.mjs +0 -30
  667. package/modules/gates/py-import/local-pre-commit.line +0 -1
  668. package/modules/gates/test-protect/README.md +0 -23
  669. package/modules/gates/test-protect/check-test-protect.mjs +0 -64
  670. package/modules/gates/test-protect/local-pre-commit.line +0 -1
  671. package/modules/hosts/README.md +0 -57
  672. package/modules/hosts/claude/agents/implementer.md +0 -51
  673. package/modules/hosts/claude/agents/independent-reviewer.md +0 -49
  674. package/modules/hosts/claude/agents/ui-verifier.md +0 -48
  675. package/modules/hosts/claude/commands/wf-build.md +0 -69
  676. package/modules/hosts/claude/commands/wf-deploy.md +0 -58
  677. package/modules/hosts/claude/commands/wf-design.md +0 -49
  678. package/modules/hosts/claude/commands/wf-gate-checklist.md +0 -77
  679. package/modules/hosts/claude/commands/wf-maintain.md +0 -76
  680. package/modules/hosts/claude/commands/wf-new-task.md +0 -102
  681. package/modules/hosts/claude/commands/wf-pipeline-run.md +0 -35
  682. package/modules/hosts/claude/commands/wf-plan.md +0 -40
  683. package/modules/hosts/claude/commands/wf-review.md +0 -49
  684. package/modules/hosts/claude/commands/wf-sync-hosts.md +0 -64
  685. package/modules/hosts/claude/commands/wf-test.md +0 -68
  686. package/modules/hosts/codex/agents/implementer.md +0 -51
  687. package/modules/hosts/codex/agents/independent-reviewer.md +0 -49
  688. package/modules/hosts/codex/agents/ui-verifier.md +0 -48
  689. package/modules/hosts/codex/commands/wf-build.md +0 -69
  690. package/modules/hosts/codex/commands/wf-deploy.md +0 -58
  691. package/modules/hosts/codex/commands/wf-design.md +0 -49
  692. package/modules/hosts/codex/commands/wf-gate-checklist.md +0 -77
  693. package/modules/hosts/codex/commands/wf-maintain.md +0 -76
  694. package/modules/hosts/codex/commands/wf-new-task.md +0 -102
  695. package/modules/hosts/codex/commands/wf-pipeline-run.md +0 -35
  696. package/modules/hosts/codex/commands/wf-plan.md +0 -40
  697. package/modules/hosts/codex/commands/wf-review.md +0 -49
  698. package/modules/hosts/codex/commands/wf-sync-hosts.md +0 -64
  699. package/modules/hosts/codex/commands/wf-test.md +0 -68
  700. package/modules/hosts/codex/skills/flow-kit/SKILL.md +0 -14
  701. package/modules/hosts/cursor/agents/implementer.md +0 -51
  702. package/modules/hosts/cursor/agents/independent-reviewer.md +0 -49
  703. package/modules/hosts/cursor/agents/ui-verifier.md +0 -48
  704. package/modules/hosts/cursor/commands/wf-build.md +0 -69
  705. package/modules/hosts/cursor/commands/wf-deploy.md +0 -58
  706. package/modules/hosts/cursor/commands/wf-design.md +0 -49
  707. package/modules/hosts/cursor/commands/wf-gate-checklist.md +0 -77
  708. package/modules/hosts/cursor/commands/wf-maintain.md +0 -76
  709. package/modules/hosts/cursor/commands/wf-new-task.md +0 -102
  710. package/modules/hosts/cursor/commands/wf-pipeline-run.md +0 -35
  711. package/modules/hosts/cursor/commands/wf-plan.md +0 -40
  712. package/modules/hosts/cursor/commands/wf-review.md +0 -49
  713. package/modules/hosts/cursor/commands/wf-sync-hosts.md +0 -64
  714. package/modules/hosts/cursor/commands/wf-test.md +0 -68
  715. package/modules/hosts/omp/agents/implementer.md +0 -52
  716. package/modules/hosts/omp/agents/independent-reviewer.md +0 -50
  717. package/modules/hosts/omp/agents/ui-verifier.md +0 -49
  718. package/modules/hosts/opencode/agents/implementer.md +0 -59
  719. package/modules/hosts/opencode/agents/independent-reviewer.md +0 -53
  720. package/modules/hosts/opencode/agents/ui-verifier.md +0 -52
  721. package/modules/hosts/opencode/commands/wf-build.md +0 -69
  722. package/modules/hosts/opencode/commands/wf-deploy.md +0 -58
  723. package/modules/hosts/opencode/commands/wf-design.md +0 -49
  724. package/modules/hosts/opencode/commands/wf-gate-checklist.md +0 -77
  725. package/modules/hosts/opencode/commands/wf-maintain.md +0 -76
  726. package/modules/hosts/opencode/commands/wf-new-task.md +0 -102
  727. package/modules/hosts/opencode/commands/wf-pipeline-run.md +0 -35
  728. package/modules/hosts/opencode/commands/wf-plan.md +0 -40
  729. package/modules/hosts/opencode/commands/wf-review.md +0 -49
  730. package/modules/hosts/opencode/commands/wf-sync-hosts.md +0 -64
  731. package/modules/hosts/opencode/commands/wf-test.md +0 -68
  732. package/modules/hosts/trae/agents/implementer.md +0 -52
  733. package/modules/hosts/trae/agents/independent-reviewer.md +0 -51
  734. package/modules/hosts/trae/agents/ui-verifier.md +0 -50
  735. package/modules/hosts/trae/commands/wf-build.md +0 -70
  736. package/modules/hosts/trae/commands/wf-deploy.md +0 -59
  737. package/modules/hosts/trae/commands/wf-design.md +0 -50
  738. package/modules/hosts/trae/commands/wf-gate-checklist.md +0 -78
  739. package/modules/hosts/trae/commands/wf-maintain.md +0 -77
  740. package/modules/hosts/trae/commands/wf-new-task.md +0 -103
  741. package/modules/hosts/trae/commands/wf-pipeline-run.md +0 -36
  742. package/modules/hosts/trae/commands/wf-plan.md +0 -41
  743. package/modules/hosts/trae/commands/wf-review.md +0 -50
  744. package/modules/hosts/trae/commands/wf-sync-hosts.md +0 -65
  745. package/modules/hosts/trae/commands/wf-test.md +0 -69
  746. package/modules/hosts/trae/hooks/post-edit-check.cjs +0 -98
  747. package/modules/hosts/trae/hooks/pre-shell-check.cjs +0 -192
  748. package/modules/hosts/trae/hooks/resolve-shell.cjs +0 -30
  749. package/modules/hosts/trae/hooks.json +0 -29
  750. package/modules/hosts/trae/rules/beautify-input-chinese.md +0 -6
  751. package/modules/hosts/trae/rules/git-commit-message.md +0 -10
  752. package/modules/hosts/trae/rules/project-workflow.md +0 -14
  753. package/modules/hosts/zcode/agents/implementer.md +0 -51
  754. package/modules/hosts/zcode/agents/independent-reviewer.md +0 -49
  755. package/modules/hosts/zcode/agents/ui-verifier.md +0 -48
  756. package/src/add-gate.mjs +0 -116
  757. package/src/add-gate.test.mjs +0 -103
  758. package/src/add-host.mjs +0 -68
  759. package/src/cli.mjs +0 -169
  760. package/src/doctor.mjs +0 -629
  761. package/src/executor.mjs +0 -262
  762. package/src/executor.test.mjs +0 -295
  763. package/src/fresh-init.test.mjs +0 -64
  764. package/src/gate-dotnet-ca.test.mjs +0 -124
  765. package/src/gates.test.mjs +0 -143
  766. package/src/init.mjs +0 -382
  767. package/src/init.test.mjs +0 -163
  768. package/src/instance-ref.test.mjs +0 -62
  769. package/src/jscpd-drift.test.mjs +0 -145
  770. package/src/pack.test.mjs +0 -24
  771. package/src/profiles.mjs +0 -183
  772. package/src/render.mjs +0 -132
  773. package/src/rule-budget.test.mjs +0 -103
  774. package/src/run-tests.mjs +0 -56
  775. package/src/stack-profile.test.mjs +0 -95
  776. package/src/sync-hosts.mjs +0 -257
  777. package/src/sync-hosts.test.mjs +0 -291
  778. package/src/sync.mjs +0 -228
  779. package/src/sync.test.mjs +0 -452
  780. package/src/trae-hooks.test.mjs +0 -127
  781. package/src/validate.mjs +0 -77
  782. package/src/validate.test.mjs +0 -95
  783. package/templates/.gitattributes +0 -17
  784. package/templates/AGENTS.md +0 -58
  785. package/templates/_agents/board/index.html +0 -676
  786. package/templates/_agents/commands/build.md +0 -84
  787. package/templates/_agents/commands/deploy.md +0 -66
  788. package/templates/_agents/commands/design.md +0 -63
  789. package/templates/_agents/commands/gate-checklist.md +0 -91
  790. package/templates/_agents/commands/maintain.md +0 -90
  791. package/templates/_agents/commands/new-task.md +0 -110
  792. package/templates/_agents/commands/pipeline-run.md +0 -43
  793. package/templates/_agents/commands/plan.md +0 -48
  794. package/templates/_agents/commands/review.md +0 -62
  795. package/templates/_agents/commands/sync-hosts.md +0 -77
  796. package/templates/_agents/commands/test.md +0 -87
  797. package/templates/_agents/control-surfaces.txt +0 -53
  798. package/templates/_agents/engine-lock.json +0 -342
  799. package/templates/_agents/hooks/check-index-incremental.mjs +0 -48
  800. package/templates/_agents/hooks/check-pairing-incremental.mjs +0 -66
  801. package/templates/_agents/hooks/check-wiki-ledger.mjs +0 -30
  802. package/templates/_agents/hooks/commit-check.cjs +0 -193
  803. package/templates/_agents/hooks/local-pre-commit +0 -6
  804. package/templates/_agents/lane-surfaces.txt +0 -17
  805. package/templates/_agents/level-hints.txt +0 -30
  806. package/templates/_agents/loop/papercut-debt/DESIGN.md +0 -112
  807. package/templates/_agents/mechanism-registry.md +0 -35
  808. package/templates/_agents/metric-claims.txt +0 -81
  809. package/templates/_agents/notes/engine-internals.md +0 -17
  810. package/templates/_agents/notes/runtime-env.md +0 -18
  811. package/templates/_agents/roles/implementer.md +0 -47
  812. package/templates/_agents/roles/independent-reviewer.md +0 -45
  813. package/templates/_agents/roles/ui-verifier.md +0 -44
  814. package/templates/_agents/rule-budgets.txt +0 -20
  815. package/templates/_agents/scripts/agg-delegations.cjs +0 -302
  816. package/templates/_agents/scripts/agg-delegations.test.mjs +0 -282
  817. package/templates/_agents/scripts/agg-gate-stats.mjs +0 -113
  818. package/templates/_agents/scripts/agg-gate-stats.test.mjs +0 -95
  819. package/templates/_agents/scripts/agg-judgments.mjs +0 -156
  820. package/templates/_agents/scripts/agg-judgments.test.mjs +0 -93
  821. package/templates/_agents/scripts/archive-sweep.mjs +0 -235
  822. package/templates/_agents/scripts/archive-sweep.test.mjs +0 -129
  823. package/templates/_agents/scripts/check-attribution.mjs +0 -37
  824. package/templates/_agents/scripts/check-convergence.mjs +0 -124
  825. package/templates/_agents/scripts/check-engine-integrity.mjs +0 -220
  826. package/templates/_agents/scripts/check-engine-integrity.test.mjs +0 -215
  827. package/templates/_agents/scripts/check-funnel.mjs +0 -56
  828. package/templates/_agents/scripts/check-hygiene.mjs +0 -167
  829. package/templates/_agents/scripts/check-hygiene.test.mjs +0 -182
  830. package/templates/_agents/scripts/check-index-incremental.test.mjs +0 -73
  831. package/templates/_agents/scripts/check-lane-surface.mjs +0 -238
  832. package/templates/_agents/scripts/check-lane-surface.test.mjs +0 -302
  833. package/templates/_agents/scripts/check-ledger-invariant.mjs +0 -586
  834. package/templates/_agents/scripts/check-ledger-invariant.test.mjs +0 -639
  835. package/templates/_agents/scripts/check-loop-rev.test.mjs +0 -336
  836. package/templates/_agents/scripts/check-loop-unit.test.mjs +0 -103
  837. package/templates/_agents/scripts/check-loop.mjs +0 -1987
  838. package/templates/_agents/scripts/check-loop.sh +0 -6
  839. package/templates/_agents/scripts/check-loop.test.mjs +0 -3912
  840. package/templates/_agents/scripts/check-metric-claims.mjs +0 -277
  841. package/templates/_agents/scripts/check-prejudgment.mjs +0 -64
  842. package/templates/_agents/scripts/check-registry.mjs +0 -45
  843. package/templates/_agents/scripts/check-scope.mjs +0 -96
  844. package/templates/_agents/scripts/check-scope.test.mjs +0 -99
  845. package/templates/_agents/scripts/check-scripts-syntax.mjs +0 -84
  846. package/templates/_agents/scripts/check-scripts-syntax.test.mjs +0 -72
  847. package/templates/_agents/scripts/check-spec-verif.mjs +0 -47
  848. package/templates/_agents/scripts/check-stage-index.mjs +0 -40
  849. package/templates/_agents/scripts/check-stage-index.test.mjs +0 -77
  850. package/templates/_agents/scripts/closeout-l1.mjs +0 -217
  851. package/templates/_agents/scripts/closeout-l1.test.mjs +0 -105
  852. package/templates/_agents/scripts/commit-check-trigger.test.mjs +0 -205
  853. package/templates/_agents/scripts/compact-ledgers.mjs +0 -97
  854. package/templates/_agents/scripts/compact-ledgers.test.mjs +0 -162
  855. package/templates/_agents/scripts/confirm-doc.mjs +0 -610
  856. package/templates/_agents/scripts/confirm-doc.test.mjs +0 -1119
  857. package/templates/_agents/scripts/doctor.test.mjs +0 -770
  858. package/templates/_agents/scripts/draft-sediment.mjs +0 -178
  859. package/templates/_agents/scripts/draft-sediment.test.mjs +0 -272
  860. package/templates/_agents/scripts/edit-face-check.mjs +0 -109
  861. package/templates/_agents/scripts/edit-face-check.test.mjs +0 -99
  862. package/templates/_agents/scripts/ensure-board.mjs +0 -185
  863. package/templates/_agents/scripts/fill-intent.mjs +0 -91
  864. package/templates/_agents/scripts/fill-intent.test.mjs +0 -113
  865. package/templates/_agents/scripts/fill-plan.mjs +0 -79
  866. package/templates/_agents/scripts/fill-plan.test.mjs +0 -224
  867. package/templates/_agents/scripts/fill-spec.mjs +0 -70
  868. package/templates/_agents/scripts/fill-spec.test.mjs +0 -266
  869. package/templates/_agents/scripts/fixture-scripts.mjs +0 -153
  870. package/templates/_agents/scripts/fixture-scripts.test.mjs +0 -112
  871. package/templates/_agents/scripts/gate-checklist.mjs +0 -209
  872. package/templates/_agents/scripts/gate-checklist.test.mjs +0 -201
  873. package/templates/_agents/scripts/gate-seg.mjs +0 -54
  874. package/templates/_agents/scripts/gate-seg.test.mjs +0 -112
  875. package/templates/_agents/scripts/gen-effective-policy.mjs +0 -107
  876. package/templates/_agents/scripts/gen-effective-policy.test.mjs +0 -100
  877. package/templates/_agents/scripts/gen-verify-evidence.mjs +0 -107
  878. package/templates/_agents/scripts/gen-verify-evidence.test.mjs +0 -84
  879. package/templates/_agents/scripts/gen-wiki-board.mjs +0 -276
  880. package/templates/_agents/scripts/gen-wiki-board.test.mjs +0 -249
  881. package/templates/_agents/scripts/gen-workflow-dashboard.mjs +0 -251
  882. package/templates/_agents/scripts/gen-workflow-dashboard.test.mjs +0 -188
  883. package/templates/_agents/scripts/gen-workflow-index.mjs +0 -201
  884. package/templates/_agents/scripts/gen-workflow-index.test.mjs +0 -152
  885. package/templates/_agents/scripts/gen-workflow-metrics.mjs +0 -466
  886. package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +0 -343
  887. package/templates/_agents/scripts/git-merge-jsonl.mjs +0 -63
  888. package/templates/_agents/scripts/git-merge-jsonl.test.mjs +0 -125
  889. package/templates/_agents/scripts/judgment-ledger.mjs +0 -65
  890. package/templates/_agents/scripts/judgment-ledger.test.mjs +0 -129
  891. package/templates/_agents/scripts/kb-cache-evict.mjs +0 -50
  892. package/templates/_agents/scripts/kb-cache-evict.test.mjs +0 -104
  893. package/templates/_agents/scripts/kb-search.mjs +0 -413
  894. package/templates/_agents/scripts/kb-search.test.mjs +0 -299
  895. package/templates/_agents/scripts/lane-surface-audit.mjs +0 -143
  896. package/templates/_agents/scripts/lane-surface-audit.test.mjs +0 -93
  897. package/templates/_agents/scripts/ledger-doc-chain.test.mjs +0 -166
  898. package/templates/_agents/scripts/ledger-loader.mjs +0 -108
  899. package/templates/_agents/scripts/ledger-loader.test.mjs +0 -131
  900. package/templates/_agents/scripts/ledger-prune.mjs +0 -96
  901. package/templates/_agents/scripts/ledger-prune.test.mjs +0 -120
  902. package/templates/_agents/scripts/ledger-shards.mjs +0 -344
  903. package/templates/_agents/scripts/ledger-shards.test.mjs +0 -356
  904. package/templates/_agents/scripts/ledger-ts-monotonic.test.mjs +0 -135
  905. package/templates/_agents/scripts/level-criteria.mjs +0 -231
  906. package/templates/_agents/scripts/level-criteria.test.mjs +0 -281
  907. package/templates/_agents/scripts/mechanism-retire-watch.mjs +0 -183
  908. package/templates/_agents/scripts/mechanism-retire-watch.test.mjs +0 -114
  909. package/templates/_agents/scripts/papercut-debt-controller.mjs +0 -141
  910. package/templates/_agents/scripts/papercut-debt-controller.test.mjs +0 -127
  911. package/templates/_agents/scripts/papercut-debt-sensor.mjs +0 -170
  912. package/templates/_agents/scripts/papercut-debt-sensor.test.mjs +0 -146
  913. package/templates/_agents/scripts/pipeline-run-docs.mjs +0 -76
  914. package/templates/_agents/scripts/pipeline-run-run.mjs +0 -63
  915. package/templates/_agents/scripts/pipeline-run.mjs +0 -867
  916. package/templates/_agents/scripts/pipeline-run.test.mjs +0 -517
  917. package/templates/_agents/scripts/policy.mjs +0 -281
  918. package/templates/_agents/scripts/pre-push.test.mjs +0 -105
  919. package/templates/_agents/scripts/resolve-merge-conflicts.mjs +0 -110
  920. package/templates/_agents/scripts/resolve-merge-conflicts.test.mjs +0 -87
  921. package/templates/_agents/scripts/rewrite-file.mjs +0 -133
  922. package/templates/_agents/scripts/rewrite-file.test.mjs +0 -148
  923. package/templates/_agents/scripts/rule-budget.mjs +0 -96
  924. package/templates/_agents/scripts/rule-budget.test.mjs +0 -118
  925. package/templates/_agents/scripts/run-tests.mjs +0 -99
  926. package/templates/_agents/scripts/run-tests.test.mjs +0 -105
  927. package/templates/_agents/scripts/solidify-task.mjs +0 -109
  928. package/templates/_agents/scripts/solidify-task.test.mjs +0 -129
  929. package/templates/_agents/scripts/stage-gates.mjs +0 -343
  930. package/templates/_agents/scripts/stage-gates.test.mjs +0 -105
  931. package/templates/_agents/scripts/trust-mode.mjs +0 -67
  932. package/templates/_agents/scripts/trust-mode.test.mjs +0 -110
  933. package/templates/_agents/scripts/verify-wiki-consistency.mjs +0 -253
  934. package/templates/_agents/scripts/verify-wiki-consistency.test.mjs +0 -123
  935. package/templates/_agents/scripts/verify.mjs +0 -345
  936. package/templates/_agents/scripts/verify.test.mjs +0 -373
  937. package/templates/_agents/scripts/wf-journal.mjs +0 -231
  938. package/templates/_agents/scripts/wf-journal.test.mjs +0 -216
  939. package/templates/_agents/scripts/wiki-search.mjs +0 -19
  940. package/templates/_agents/scripts/wiki-search.test.mjs +0 -57
  941. package/templates/_agents/scripts/workflow-board-server.mjs +0 -393
  942. package/templates/_agents/scripts/workflow-board-server.test.mjs +0 -201
  943. package/templates/_agents/scripts/workflow-enums.mjs +0 -70
  944. package/templates/_agents/scripts/workflow-enums.test.mjs +0 -118
  945. package/templates/_agents/scripts/workflows-check.mjs +0 -260
  946. package/templates/_agents/scripts/workflows-check.test.mjs +0 -278
  947. package/templates/_agents/scripts-test-exempt.txt +0 -16
  948. package/templates/_agents/skills/papercut-fix/SKILL.md +0 -60
  949. package/templates/_agents/skills/papercut-fix/references/response-template.md +0 -81
  950. package/templates/_agents/skills/review-method/SKILL.md +0 -58
  951. package/templates/_agents/skills/verify-ui/SKILL.md +0 -61
  952. package/templates/_agents/skills/wiki/SKILL.md +0 -106
  953. package/templates/_agents/workflow-enums.txt +0 -26
  954. package/templates/_agents/workflow-modules.txt +0 -11
  955. package/templates/_agents/workflows/_TEMPLATE.md +0 -75
  956. package/templates/_agents/workflows/pipeline-closing.md +0 -28
  957. package/templates/_agents/workflows//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +0 -16
  958. package/templates/_githooks/commit-msg +0 -17
  959. package/templates/_githooks/post-commit +0 -10
  960. package/templates/_githooks/pre-commit +0 -126
  961. package/templates/_githooks/pre-merge-commit +0 -29
  962. package/templates/_githooks/pre-push +0 -136
  963. package/templates/_github/workflows/kit-ci.yml +0 -49
  964. package/templates/wiki/INDEX.md +0 -73
  965. package/templates/wiki/drafts-archive/README.md +0 -3
  966. package/templates/wiki//344/272/247/345/223/201/351/234/200/346/261/202/README.md +0 -3
  967. package/templates/wiki//345/274/200/345/217/221/346/226/271/346/241/210/README.md +0 -3
  968. package/templates/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +0 -3
  969. package/templates/wiki//346/265/213/350/257/225/346/212/245/345/221/212/README.md +0 -3
  970. package/templates/wiki//347/224/250/346/210/267/345/212/237/350/203/275/README.md +0 -3
  971. package/templates/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +0 -77
  972. package/templates/wiki//351/241/271/347/233/256/350/247/204/350/214/203/README.md +0 -3
  973. package/templates/wiki//351/241/271/347/233/256/350/256/241/345/210/222/README.md +0 -3
  974. package/templates/workflow/README.md +0 -91
  975. package/templates/workflow/delegations.md +0 -29
  976. package/templates/workflow/incidents/_TEMPLATE.md +0 -51
  977. package/templates/workflow/intents/_TEMPLATE.md +0 -51
  978. package/templates/workflow/papercuts.md +0 -9
  979. package/templates/workflow/plans/_TEMPLATE.md +0 -47
  980. package/templates/workflow/regression-checklist.md +0 -23
  981. package/templates/workflow/specs/_TEMPLATE.md +0 -80
  982. /package/templates/{_agents → engine/.agents}/board/marked.min.js +0 -0
  983. /package/templates/{_agents/workflows → engine/.agents/pipelines}/steps//347/244/272/344/276/213-/351/203/250/347/275/262/351/252/214/350/257/201.md" +0 -0
  984. /package/templates/{_agents → engine/.agents}/scripts/git-core.mjs +0 -0
@@ -0,0 +1,230 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <title>Knowledge Overview · {{projectName}}</title>
6
+ <style>
7
+ :root {
8
+ --bg: #f7f8fb;
9
+ --card: #ffffff;
10
+ --border: #e6e8ee;
11
+ --text: #1f2937;
12
+ --muted: #6b7280;
13
+ --accent: #2563eb;
14
+ --accent-soft: #eff4ff;
15
+ --warn: #d97706;
16
+ --shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.04);
17
+ }
18
+ * { box-sizing: border-box; }
19
+ body {
20
+ margin: 0;
21
+ font-family: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
22
+ background: var(--bg);
23
+ color: var(--text);
24
+ line-height: 1.5;
25
+ }
26
+ header {
27
+ padding: 32px 40px 16px;
28
+ background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
29
+ color: #fff;
30
+ }
31
+ header h1 { margin: 0 0 4px; font-size: 24px; font-weight: 600; }
32
+ header .meta { opacity: .85; font-size: 13px; }
33
+ main { max-width: 1400px; margin: 0 auto; padding: 24px 40px 64px; }
34
+ .summary {
35
+ display: grid;
36
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
37
+ gap: 12px;
38
+ margin-bottom: 24px;
39
+ }
40
+ .stat {
41
+ background: var(--card);
42
+ border: 1px solid var(--border);
43
+ border-radius: 10px;
44
+ padding: 14px 16px;
45
+ box-shadow: var(--shadow);
46
+ }
47
+ .stat .num { font-size: 22px; font-weight: 600; color: var(--accent); }
48
+ .stat .lbl { font-size: 12px; color: var(--muted); margin-top: 2px; }
49
+ .toolbar {
50
+ display: flex;
51
+ gap: 8px;
52
+ margin-bottom: 12px;
53
+ flex-wrap: wrap;
54
+ align-items: center;
55
+ }
56
+ .toolbar input {
57
+ flex: 1 1 280px;
58
+ max-width: 480px;
59
+ padding: 8px 12px;
60
+ border: 1px solid var(--border);
61
+ border-radius: 8px;
62
+ font-size: 13px;
63
+ background: var(--card);
64
+ }
65
+ .toolbar select {
66
+ padding: 8px 12px;
67
+ border: 1px solid var(--border);
68
+ border-radius: 8px;
69
+ font-size: 13px;
70
+ background: var(--card);
71
+ }
72
+ .topic-section {
73
+ background: var(--card);
74
+ border: 1px solid var(--border);
75
+ border-radius: 12px;
76
+ margin-bottom: 16px;
77
+ overflow: hidden;
78
+ box-shadow: var(--shadow);
79
+ }
80
+ .topic-header {
81
+ padding: 12px 16px;
82
+ background: var(--accent-soft);
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: space-between;
86
+ cursor: pointer;
87
+ user-select: none;
88
+ }
89
+ .topic-header:hover { background: #e0ebff; }
90
+ .topic-header .name { font-weight: 600; color: var(--accent); font-size: 15px; }
91
+ .topic-header .count {
92
+ background: var(--accent);
93
+ color: #fff;
94
+ border-radius: 12px;
95
+ padding: 2px 10px;
96
+ font-size: 12px;
97
+ font-weight: 500;
98
+ }
99
+ table {
100
+ width: 100%;
101
+ border-collapse: collapse;
102
+ font-size: 13px;
103
+ }
104
+ thead th {
105
+ text-align: left;
106
+ padding: 10px 16px;
107
+ background: #fafbfd;
108
+ border-bottom: 1px solid var(--border);
109
+ color: var(--muted);
110
+ font-weight: 500;
111
+ font-size: 12px;
112
+ text-transform: uppercase;
113
+ letter-spacing: .04em;
114
+ }
115
+ tbody td {
116
+ padding: 8px 16px;
117
+ border-bottom: 1px solid #f0f2f5;
118
+ vertical-align: top;
119
+ }
120
+ tbody tr:last-child td { border-bottom: none; }
121
+ tbody tr:hover { background: #fafbff; }
122
+ td.file { font-family: "SF Mono", Consolas, monospace; font-size: 12.5px; color: #111827; }
123
+ td.file a { color: var(--accent); text-decoration: none; }
124
+ td.file a:hover { text-decoration: underline; }
125
+ td.topic-cell { color: var(--muted); }
126
+ td.dir a {
127
+ color: var(--accent);
128
+ text-decoration: none;
129
+ font-family: "SF Mono", Consolas, monospace;
130
+ font-size: 12px;
131
+ }
132
+ td.dir a:hover { text-decoration: underline; }
133
+ footer { padding: 24px 40px; color: var(--muted); font-size: 12px; text-align: center; }
134
+ </style>
135
+ </head>
136
+ <body>
137
+ <header>
138
+ <h1>Knowledge Overview</h1>
139
+ <div class="meta">{{projectName}} · Project knowledge base</div>
140
+ </header>
141
+
142
+ <main>
143
+ <div class="summary" id="summary"></div>
144
+
145
+ <div class="toolbar">
146
+ <input type="text" id="search" placeholder="🔍 Search file name / topic / directory…" />
147
+ <select id="topicFilter">
148
+ <option value="">All topics</option>
149
+ </select>
150
+ </div>
151
+
152
+ <div id="topics"></div>
153
+ </main>
154
+
155
+ <footer>Board generated by the wiki skill · Raw data in wiki/INDEX.md</footer>
156
+
157
+ <script>
158
+ const DATA = {
159
+ "summary": { "total": 0, "topics": 0, "files": 0, "archive": 0 },
160
+ "topics": []
161
+ };
162
+
163
+ // 顶部统计卡片
164
+ document.getElementById('summary').innerHTML = `
165
+ <div class="stat"><div class="num">${DATA.summary.topics}</div><div class="lbl">Topics</div></div>
166
+ <div class="stat"><div class="num">${DATA.summary.files}</div><div class="lbl">Knowledge documents</div></div>
167
+ <div class="stat"><div class="num">${DATA.summary.archive}</div><div class="lbl">Draft archive</div></div>
168
+ <div class="stat"><div class="num">${DATA.topics.reduce((s,t)=>s+t.files.length,0)}</div><div class="lbl">Total records</div></div>
169
+ `;
170
+
171
+ // 主题过滤器
172
+ const sel = document.getElementById('topicFilter');
173
+ DATA.topics.forEach(t => {
174
+ const o = document.createElement('option');
175
+ o.value = t.name; o.textContent = `${t.name} (${t.files.length})`;
176
+ sel.appendChild(o);
177
+ });
178
+
179
+ function escapeHtml(s){ return String(s).replace(/[&<>"]/g, c => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c])); }
180
+
181
+ function render(filterText='', topicFilter='') {
182
+ const container = document.getElementById('topics');
183
+ container.innerHTML = '';
184
+ DATA.topics
185
+ .filter(t => !topicFilter || t.name === topicFilter)
186
+ .forEach(t => {
187
+ const rows = t.files.filter(f =>
188
+ !filterText ||
189
+ f.file.toLowerCase().includes(filterText.toLowerCase()) ||
190
+ f.topic.toLowerCase().includes(filterText.toLowerCase()) ||
191
+ f.dir.toLowerCase().includes(filterText.toLowerCase())
192
+ );
193
+ if (rows.length === 0) return;
194
+ const section = document.createElement('div');
195
+ section.className = 'topic-section';
196
+ section.innerHTML = `
197
+ <div class="topic-header">
198
+ <span class="name">📁 ${escapeHtml(t.name)}</span>
199
+ <span class="count">${rows.length}</span>
200
+ </div>
201
+ <table>
202
+ <thead><tr><th style="width:40%">File name</th><th style="width:20%">Topic</th><th>Directory</th></tr></thead>
203
+ <tbody>
204
+ ${rows.map(f => {
205
+ const base = f.file.split('/').pop();
206
+ const fileCell = /\.(html)$/i.test(f.file)
207
+ ? `<td class="file"><a href="${escapeHtml(f.dir + base)}" target="_blank" title="Open document">${escapeHtml(f.file)}</a></td>`
208
+ : `<td class="file">${escapeHtml(f.file)}</td>`;
209
+ return `
210
+ <tr>
211
+ ${fileCell}
212
+ <td class="topic-cell">${escapeHtml(f.topic)}</td>
213
+ <td class="dir"><a href="${escapeHtml(f.dir)}" title="Open directory">${escapeHtml(f.dir)}</a></td>
214
+ </tr>`;
215
+ }).join('')}
216
+ </tbody>
217
+ </table>`;
218
+ container.appendChild(section);
219
+ });
220
+ if (!container.innerHTML) {
221
+ container.innerHTML = '<div class="topic-section" style="padding:24px;text-align:center;color:var(--muted)">No matching records</div>';
222
+ }
223
+ }
224
+
225
+ document.getElementById('search').addEventListener('input', e => render(e.target.value, sel.value));
226
+ sel.addEventListener('change', e => render(document.getElementById('search').value, e.target.value));
227
+ render();
228
+ </script>
229
+ </body>
230
+ </html>
@@ -0,0 +1,13 @@
1
+ # workflow index (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/gen-workflow-index.mjs` from `workflow/{intents,specs,plans,incidents}/`.
4
+ > This file is a placeholder for new installs; the active layer and archive table are populated after the first generation.
5
+
6
+ ## Active (0)
7
+
8
+ | Type | Level | Status | Date | Module | Topic | Progress |
9
+ |---|---|---|---|---|---|---|
10
+
11
+ ## Archive (read-only, no growth)
12
+
13
+ (Historical terminal artifacts are listed by the generator after archiving.)
@@ -0,0 +1,69 @@
1
+ # workflow — AI-driven closed loop (single source of truth)
2
+
3
+ This directory is the sole home of the AI workflow engine. L1 new requirements enter through a single plan; L2/L3 new requirements go intent → spec → plan; fixes go through an incident. At the micro-task layer, a "Task Owner + AI paired closed loop" model is used, with confirmation completed in one sentence in the conversation (TTY / delegated auto-record). At the macro trunk layer, multi-person collaboration is supported; merges to main are guarded by the TFS PR branch policy (Peer Review team review + Azure Pipelines CI gates sourced from the same scripts as local), and traceability relies on git (commit + PR records + release tags).
4
+
5
+ > All new closed-loop records are written in this directory.
6
+
7
+ ## Directory structure
8
+
9
+ | Directory | What goes here | Naming |
10
+ |------|--------|------|
11
+ | `intents/` | L2/L3 new requirement entry: background, goals/non-goals, acceptance criteria, level, red lines touched. Not created for L1 new requirements | `YYYY-MM-DD-<topic>.md` |
12
+ | `specs/` | L2/L3 design spec: functional behavior, data flow, system changes, constraint-compliance mapping. Not created for L1 | Same name as intent / incident |
13
+ | `plans/` | L1 new requirement entry (source / goals / red lines / change plan / constraints and risks / verification plan / acceptance criteria). L2/L3 and fixes still share the name of intent / incident | `YYYY-MM-DD-<topic>.md` |
14
+ | `incidents/` | Incident retrospective: timeline, root cause, why it was not caught, retrospective triad | `YYYY-MM-DD-<topic>.md` |
15
+
16
+ **Naming is always English kebab-case** (e.g. `2026-09-07-supplier-rating-field.md`), **Chinese file names are forbidden**—the original check-loop §9 non-ASCII filename warning retired with the 2026-10-28 engine slimming; the naming convention is unchanged. Document content (title/body) is not subject to this restriction.
17
+
18
+ **Document protocol (structured 2026-09-13)**: the header of all four document types is YAML frontmatter (restricted subset, one `key: value` per line, the single source of check-loop machine fields)—`状态` (intent/spec/plan: draft/approved/done/superseded/cancelled; incident: open/fixed/closed, **strict enum**, notes go in the `备注:` key), `级别` (L1/L2/L3), `日期`/`发现` (YYYY-MM-DD), `模块` (**required for new documents since 2026-09-22**, values from the `.agents/config/workflow-modules.txt` vocabulary, a single value uses the dominant module; existing documents are not backfilled, AI fills them in when touching), L3 spec's `确认结果`/`确认时间`, backfilled documents `流程: legacy`. **`日期` fallback rule (fixed 2026-10-27)**: plans are generated by `fill-plan.mjs` and `plans/_TEMPLATE.md`; **frontmatter has written `日期` since 2026-10-27** (previously renderPlan accepted a date parameter but did not persist it)—for any gate whose precondition is frontmatter `日期` (delegation ledger presence gate; check 18 retired with the 2026-10-28 engine slimming), when the date is missing it still **falls back to the filename prefix** `YYYY-MM-DD` as a second safety net (following check 15's existing rule; check 19 retired); if neither frontmatter nor filename has a date → undecidable → skip. The old rule "no date means skip the whole section" silently disabled the delegation gate for most L2/L3 plans (after 52 anchors, L2/L3 terminal documents were never reconciled). **`状态` transitions must pass through `approved`** (the machine-visible state of confirmation; `done` appears only at close): for specs/plans created since 2026-09-23, if already done and git history never contains a line-start `状态: approved`, check-loop reports a "confirmation state missing" warning. check-loop scans only frontmatter for machine fields (`fm_get` field assertion); the body no longer writes "状态:/级别:" lines; narrative fields (independent review / retrospective triad / acceptance checks) remain in the body anchored by section. Protocol changes and backfill migration are in the 2026-09-13 `docs(workflow)` commit. **Explicit blocking of ambiguities (2026-10-16, NEEDS-CLARIFICATION marker)**: when drafting or revising a spec/plan and an ambiguity cannot be decided alone (multiple interpretations / missing standard / external fact dependency), **guessing is forbidden**—insert `[NEEDS CLARIFICATION]: <one-line question>` in place to ask the user; after clarification remove the marker and record the decision in the body; the marker must be cleared before advancing to approved (self-check discipline; grep the marker in active documents for the pending-clarification list. Automated cross-artifact gap checks are deferred—the conflict with the "defer new gates" trade-off is explicitly logged, to be revisited after D6 metrics). **Commitment-surface binding (new 2026-10-27)**: what the user approves at the moment of `approved` is the **commitment surface** (criteria text / red lines / goals / change plan / constraints and risks)—a commitment rewritten after confirmation without re-approval = the user did not approve what is delivered at close. Legal actions at close (ticking acceptance + evidence backfill, `确认结果`/`确认时间` backfill, review-line re-anchoring) **do not change the commitment surface** and are not false-flagged after normalization; if commitment criteria are rewritten, hard block (check 15) + rejection at close (confirm-doc commitment-surface binding gate). The **only way** to change a commitment = after the user re-approves, run `confirm-doc <doc> --reconfirm --delegated "<original words>"` to re-record the commitment-surface fingerprint (does not advance status; the status line is still written by confirm-doc, do not hand-edit frontmatter); existing records (pre-launch confirmations, ledger rows without a `commit` field) are not retroactive. **Editing a closed document body requires re-recording the fingerprint in the same commit (2026-11-10, incident 2026-10-26-workflow-confirmation-drift-hard-block)**: editing the body of a closed (done/superseded/closed/cancelled/fixed) document = must re-record the confirmation fingerprint in the same commit (`confirm-doc` / `--reconfirm`) or use a compensation row (`append-compensation.mjs`), otherwise check-loop flags "confirmation content drift"; at commit time `check-doc-body-drift.mjs` provides advisory visibility (not a gate).
19
+
20
+ Each subdirectory's `_TEMPLATE.md` is a starter template; copy it and fill it in; do not edit the template itself.
21
+
22
+ The root `regression-checklist.md` is a **living regression checklist**: the unified landing point for deploy must-pass items and incident anti-recurrence verification, extended as modules ship and appended as incidents occur.
23
+
24
+ **The three append-only ledgers are sharded** (2026-10-13 ledger-shard-ledgers): data rows of `regression-checklist` / `delegations` / `papercuts` are stored monthly in `workflow/<ledger>.d/<YYYY-MM>.md`; the main ledger keeps only the description, table header and GENERATED area—eliminating the size and merge-conflict surface of "rewrite the whole file on every append". The single source for reads and writes = `.agents/scripts/ledger-shards.mjs` (the read side automatically merges the main ledger ∪ all shards; existing consumers need no change); append one row with `node .agents/scripts/ledger-shards.mjs --append <ledger> --row "<row>"`. (The fourth ledger `deploy-observations` was retired and deleted with the deploy ritual—2026-10-29 owner decision: actual releases do not use a tag/24h observation ritual; merge = PR create → review → regression → merge → archive, see `deploy.md` header note.) confirmations.d shards start in 2026-10; 2026-09 has no shard (that month's confirmations are traceable only via git; historical gaps are not backfilled); jsonl ledger schemas self-describe by field presence across generations (e.g. quoteGrounding since 2026-10-24), with no version field (2026-11-05 decision).
25
+
26
+ **Gate judgment monthly shards** (2026-10-22 gate-metrics-shard): `workflow/gate-metrics.d/<YYYY-MM>.jsonl` holds one row per month (rule × WARN/BLOCK), generated by `node .agents/scripts/agg-judgments.mjs --emit-month` and committed with the change; pre-push monthly checks automatically backfill the previous month's shard. The retirement criterion (N consecutive months = 0) reads the union of local `.agents/judgments.jsonl` and the shards and takes the max—machine/worktree changes no longer reset it to zero; multi-machine union (`.gitattributes` reuses `jsonl-union`).
27
+
28
+ **Claims ledger** (append-only, monthly): `workflow/claims.d/<YYYY-MM>.jsonl` records one sentence a future session might take as given, plus a quote that already exists in the repo. Append with `node .agents/scripts/claims.mjs add`. `recheck` only reports whether that quote is still in the file. Its exit code is always 0. It is not a gate, and it does not rewrite past lines. Merges use `jsonl-union`.
29
+
30
+ ## Usage
31
+
32
+ - **Start a new task**: run `.agents/commands/new-task.md` (leveling + L0 minimal path / L1 fast path entrance); L2/L3 enter the four chapters of `.agents/commands/stages.md` (Plan → Design → Build → Test, 2026-11-08 tier 2-F four-in-one)
33
+ - **Board (optional, not started by default)**: run `node .agents/scripts/ensure-board.mjs` manually when needed (idempotent: liveness probe / auto-restart stale code / launch browser on fresh start), live read-only at http://127.0.0.1:8933; **advisory layer, not a gate; alert semantics aligned with check-loop hard blocks**. "Stale code" = LastWriteTime of `board/index.html` or `workflow-board-server.mjs` later than the board process start by 2s (restart if either is updated); if the port is occupied, probe `/api/board` first—a response without `cards` means another process, so leave it alone, do not kill, and skip to the next port
34
+ - **Search**: read `INDEX.md` for active workflow (generated; regenerate with `node .agents/scripts/gen-workflow-index.mjs`, drift check with `--check`); cross-corpus search with `node .agents/scripts/kb-search.mjs "<term>"` (workflow section-level location + wiki full text, filters `--type/--module/--status/-n`; `--status all` for an explicit full set)
35
+ - **Archive**: archive on close (2026-10-13 archive-on-close)—after `confirm-doc.mjs` records the terminal state it automatically `git mv`s **the family involved in this confirmation** (same-name intent/spec/plan/incident) into `workflow/archive/<terminal-month>/{type}/`, so active directories no longer accumulate terminal artifacts. **Feature branches are not archived by default** (since 2026-10-15, to prevent CI lane gates from blocking legitimate merges)—after merge, main/develop close or sweep takes over; staying within the 21-day window is normal. For historical backlog run `node .agents/scripts/archive-sweep.mjs [--window 21] [--execute]` (dry-run by default) manually in batches; archived artifacts remain searchable by `kb-search` (`archive/<batch>/<type>` is covered), while check-loop pairing and content-binding gates scan only the four direct directories and do not trigger on archived items. When terminal artifacts pile up, run archive-sweep monthly (dry-run to inspect candidates, `--execute` to apply).
36
+ - **spec lifecycle stance (2026-10-16 owner decision, Böckeler three-layer classification: spec-anchored + long-term maintenance)**: a spec is a **continuously referenced source of truth and does not expire after delivery**—when a code change touches behavior covered by a spec (including archived ones), compare against that spec: behavior drift either changes the code back to the spec or changes the spec in the same commit; disputes go to an incident for adjudication. **Archiving is capacity management, not invalidation**: archiving only removes terminal artifacts from active scan surfaces (INDEX active rows / check-loop four-directory scan / monthly regeneration); source-of-truth status and revision rights are unchanged—archived specs can be revised in place without changing the archive location. Size governance observes before setting limits: spec line count / acceptance item distribution is collected in the metrics.md observation column (advisory caps conflict with the "defer new gates" trade-off; explicitly postponed until D6 metrics are complete).
37
+ - **Follow-up on the same feature (search before create, 2026-10-22)**: before starting work, search `workflow/specs/`, `workflow/archive/**/specs/`, `.agents/skills/verify-ui/features/`, `workflow/regression-checklist.md` by "module + feature keyword". If a hit covers the same behavior → revise the original (specs are revised in place per the item above; do not create new); create new only for a genuinely new feature. When creating task documents, include the feature key in the topic for later search.
38
+ - **Verification**: `.agents/commands/stages.md` Test chapter (static gates + UI testing); DB-switch liveness and API anti-recurrence assertions run via `node scripts/verify/business/regression-smoke.mjs` (read-only by default; `--writes` creates and cleans its own probes, dev DB only)
39
+ - **Review**: `.agents/commands/review.md` (P0 / P1 / P2 grading: machine baseline + AI self-check list, user decides classification and merge)
40
+ - **PR panel review**: the panel has been retired to a **manual tool** (2026-11-09 automatic gate retired)—pre-push / CI / pr-create no longer enforce a review ledger; orchestrate manually per `.agents/commands/pr-review.md` when needed; create a PR via `node .agents/scripts/pr-create.mjs ...` (gate first, then call `tfs-pr create`)
41
+ - **Deploy**: `.agents/commands/deploy.md` (must-run checklist before release)
42
+ - **Quantification**: delegated/self-done results go in `delegations.md`, aggregate with `node .agents/scripts/agg-delegations.mjs` (**the concurrency expansion threshold is in that file—do not expand concurrency before the numbers qualify**); the **monthly snapshot** of corpus and resident-surface size runs `node .agents/scripts/gen-workflow-metrics.mjs` (one row per month in `metrics.md`, rerunning in the same month updates it; details on stdout)
43
+ - **Traceability**: git is the audit trail. Two driving paths, choose one and never mix—manual stage routing (confirmed workflow documents folded into one `docs(workflow)` commit, code in a separate commit; ordinary L1 requirements have only a plan, fixes have incident+plan, L2/L3 have entry+spec+plan) or the `pipeline-run` state machine (per-stage `docsCommit` commits of the same shape; protocol single source `.agents/commands/pipeline-run.md`). Release does not use a tag/24h observation ritual (release tag and release observation ledger retired 2026-10-29). Local development relies on the Independent Reviewer for cognitive-isolation self-check; main merges get complete audit evidence through TFS PR team review and git history
44
+ - **Levels**: L1 implementation-level (does not hit L2/L3; the entrance for new requirements is a plan) | L2 rules / contracts (coding authority / shared contracts / existing interface semantics / global cross-cutting rules, closed set of touch surfaces in `.agents/commands/new-task.md`) | L3 data and runtime structure (schema / migration SQL / DI chain / auth and middleware pipeline). Mixed changes take the higher level
45
+
46
+ ## Execution model
47
+
48
+ - The default host main agent handles stage routing, user confirmation, key judgment and final acceptance; it is not registered as an extra role.
49
+ - Stage commands delegate to `.agents/roles/implementer.md`, `.agents/roles/independent-reviewer.md`, `.agents/roles/ui-verifier.md` only when boundaries are explicit.
50
+ - OpenCode, Trae and ZCode register roles through thin adapters under `.opencode/agents/`, `.trae/agents/`, `.zcode/agents/`; role behavior is maintained only in `.agents/roles/`.
51
+ - PI registers 7 role shells through `.pi/agents/` (same contract as `.agents/roles/`); `.pi/extensions/` wires tool_call to the two gates under `.agents/hooks/`, with a single judgment source and no duplication. `.pi/` is a machine-private directory (`.gitignore`) and is not propagated by clones; stage commands follow the root `AGENTS.md` §4 routing table and are read directly by the main Agent from `.agents/commands/*.md` (pi has no wf-* command shells); the wiring reality is reconciled by `check-local-gates.mjs` advisory, mechanism in `runtime-env.md` §6.4.
52
+ - Cline connects through `.cline/workflows/` (7 pointer shells → `.agents/commands/`) and `.cline/agents/` (7 role definitions, **YAML** → `.agents/roles/`); Cline natively reads `AGENTS.md` and `.agents/skills/`, so the rule and skill surfaces take effect with zero changes. `.cline/` is a machine-private directory (`.gitignore`) and is not propagated by clones; **the two gates are not wired** (the Cline hook protocol is incompatible with the repo's `.agents/hooks/*.cjs`; integration needs a protocol adapter), mechanism in `runtime-env.md` §6.4.
53
+ - When the host does not support subagents, execute according to the command frontmatter `fallback`; but **independent review has no fallback**—the L2 / L3 `independent-reviewer` is always `required: true`; if the host does not support subagents, open a new session and never fall back to self-check by the original main agent.
54
+ - Subagents must not cross user confirmation gates, nor commit, merge or deploy on their own; all results are reviewed by the main agent before user decision.
55
+
56
+ ## Closed-loop rules
57
+
58
+ 1. L1 new requirements start from an approved plan, with no separate intent. L2/L3 new requirements start from an approved intent. Fixes start from an approved incident; L1 fixes create a same-name L1 plan and use `.agents/commands/new-task.md` §L1 fast path (normally do not open `stages.md`)
59
+ 2. L2/L3 must first have a same-name spec approved (L2/L3 always force independent review, see `stages.md` Design §3) before drafting a plan. L1 plans are drafted and confirmed in `new-task.md` §L1 fast path (`stages.md` covers only L2/L3); the sections are entry / change plan / constraints and risks / verification plan / acceptance criteria
60
+ 3. Implementation artifacts must pass static gates (architecture red lines + build + test)
61
+ 4. Production / live-test defects fall back to `incidents/`; the retrospective triad (new intent, anti-recurrence verification, standards entry) is mandatory; **when the root cause is "gate missing / standard not implemented / systemic problem", a new intent must be filed even if the structural fix is complete**, to track systemic improvement; do not bypass the intent loop on the grounds that "the fix is already done"
62
+ 5. Close in test, regardless of whether it has reached prod. L1 ticks the plan's "Acceptance criteria" and adds evidence, then plan → done. L2/L3 tick the intent's "Acceptance criteria", then intent → done and the same-name plan becomes done. Fix incidents go open → fixed → closed and the same-name plan becomes done. If done still has unchecked items, check-loop blocks (hard-block for documents created since 2026-09-12; existing documents are only warned, not backfilled). Going to prod follows deploy separately (PR merge checklist, no tag/24h ritual)
63
+ 6. Abandonment records: approved but not done → `superseded`; cancelled before completion → `cancelled`. Both are confirmed terminal states, and check-loop does not block on "status unconfirmed"; L3 abandoned documents are exempt from "confirmation result must be approved"
64
+ 7. Subsequent regression checklists and weekly checklists are also archived in this directory
65
+ 8. **Check 17 (release draft gate) was retired and its code deleted on 2026-10-21**: this repo root `package.json` has no `version` field, so the version anchor condition never holds (2026-10-06 audit); releases do not use the tag ritual (see "Traceability"). That hard gate no longer exists; do not interpret it as "always skipped"
66
+
67
+ ## Historical archive (read-only, no growth)
68
+
69
+ - New requirement design documents always go in `workflow/specs/` or `workflow/plans/`; critical paths are distilled into `workflow/regression-checklist.md`.
@@ -0,0 +1,3 @@
1
+ # Historical archive
2
+
3
+ > Terminal artifacts are archived here by year-month, read-only and never appended. Archive protocol in `workflow/README.md`.
@@ -0,0 +1,4 @@
1
+ # Delegation ledger monthly snapshot (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/agg-delegations.mjs --write`.
4
+ > Placeholder for new installs; populated after the first generation.
@@ -0,0 +1,4 @@
1
+ # Effective policy snapshot (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/gen-effective-policy.mjs`.
4
+ > Placeholder for new installs; the anchor table and effective policies are populated after the first generation.
@@ -0,0 +1,4 @@
1
+ # Gate cost recent-window snapshot (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/gen-workflow-metrics.mjs --gate-cost-only`.
4
+ > Placeholder for new installs; recent-window gate timings are populated after the first generation.
@@ -0,0 +1,49 @@
1
+ ---
2
+ 状态: open
3
+ 级别: L1
4
+ 发现: YYYY-MM-DD
5
+ 来源: <self | user | test | monitor — who found it; see .agents/config/workflow-enums.txt incident.source.all>
6
+ 影响环境: <dev | staging | prod | none — environment the defect reached; none = did not reach a runtime environment>
7
+ 模块: <one of the vocabulary entries; see .agents/config/workflow-modules.txt>
8
+ ---
9
+ # INCIDENT — <date topic>
10
+ <!-- Copy to YYYY-MM-DD-<topic>.md; record every functional defect found in production or during verification, and historical bugs may be backfilled -->
11
+ <!-- frontmatter restricted subset (2026-09-13): status ∈ open/fixed/closed (strict enum; put annotations in the note key); level ∈ L1/L2/L3; backfilled items from before the closed-loop engine was enabled add one line `流程: legacy` (exempt from level/pairing checks); do not repeat status/level/discovery lines in the body -->
12
+ <!-- attribution keys (mandatory for new items since incident-attribution 2026-10-11; check-loop check 24): legacy items before the anchor are not backfilled; "source" is the defect finder (enables machine recomputation of the source × environment cross-tab instead of per-item manual reading), and "impacted environment" records the environment actually reached (write none if none) -->
13
+
14
+ ## 时间线
15
+ - <discovery → localization → mitigation → recovery, with timestamps>
16
+ - 用户确认:draft reviewed and passed (<date>)
17
+ <!-- The line above is a **machine prerequisite for drafting an L2/L3 spec** (validated by fill-spec / confirm-doc): it must be a line-start item inside the "时间线" section;
18
+ accepted forms are `- 用户确认:…` / `- **用户确认**:…` / `- <date> 用户确认:…` (bold before/after the word and a date prefix are all fine);
19
+ narrative prose in the body (e.g. "the user confirmed the plan") does not count as a trace. The form list lives inside this comment so the sample line does not contain descriptive text. -->
20
+
21
+ ## 影响面
22
+ - <pages / APIs / data scope>
23
+
24
+ ## 根因
25
+ <One sentence; put the deeper cause on a separate line>
26
+
27
+ ## 为什么之前没拦住
28
+ <Check gates / tests / conventions one by one: which layer could have caught it>
29
+
30
+ ## 复盘三件套(缺一不可)
31
+
32
+ > Purpose: make the incident genuinely feed back into Plan, so "prevent recurrence" commitments do not remain only in documents. Modules are rolling out gradually, so incidents may come from any of dev / staging / prod.
33
+
34
+ 1. 结构性修复
35
+ - Fix commit: <SHA + list of changed files>
36
+ - Impacted environments: dev / staging / prod (for live modules affecting prod, include affected user count / duration / whether rolled back)
37
+ - New intent needed:
38
+ - Yes → ../intents/YYYY-MM-DD-<topic>.md (mandatory when the root cause is "missing gate / convention not implemented / systemic problem", even if the structural fix is already complete)
39
+ - No → Reason: <the root cause is an implementation bug, the point fix is complete, and an existing convention entry covers it>
40
+
41
+ 2. 防复发验证(必须落到自动化用例或回归清单条目,禁止只写「已人工验证」)
42
+ - Automated test: tests/<test file> (<case name / count>)
43
+ - Or test step: .agents/commands/stages.md Test chapter + <specific operation>
44
+ - Or regression-checklist entry: workflow/regression-checklist.md (append one line under the recurrence-prevention verification section)
45
+
46
+ 3. 规范条目(必须有可追溯的落点)
47
+ - Landing point (multiple allowed): AGENTS.md <section> / .agents/hooks/<script> / .agents/skills/<skill> / .agents/commands/<cmd> / regression checklist §<section>
48
+ - Reference: commit <SHA> / 文件:<path>#L<line>
49
+ - If no new entry, reason: <covered by an existing entry; state its location>
@@ -0,0 +1,43 @@
1
+ ---
2
+ 状态: draft
3
+ 级别: L1
4
+ 日期: YYYY-MM-DD
5
+ 模块: <one of the vocabulary entries; see .agents/config/workflow-modules.txt>
6
+ 备注: <optional free-text note; check-loop does not parse>
7
+ ---
8
+ # INTENT — <topic>
9
+ <!-- Copy this template to YYYY-MM-DD-<topic>.md and fill it in; a same-named file under plans/ pairs with this file -->
10
+ <!-- frontmatter restricted subset (2026-09-13): one `key: value` per line; status ∈ draft/approved/done/superseded/cancelled (strict enum; put annotations in the note key); level ∈ L1/L2/L3; check-loop scans only frontmatter for machine fields, so do not repeat status/level lines in the body -->
11
+
12
+ ## 背景与问题
13
+ <Why do this; state the requirement source (ticket / communication record / to-do item)>
14
+
15
+ ## 目标
16
+ - <Verifiable goal>
17
+
18
+ ## 非目标(L1 微改动无实质内容可删本节,不硬填)
19
+ - <What is explicitly out of scope, to prevent scope creep>
20
+
21
+ ## 约束(L1 微改动无实质内容可删本节,不硬填)
22
+ - <What to reuse; what must not be touched>
23
+
24
+ ## 影响面
25
+ - 模块:shared / material (Domain / Application / Infrastructure / API)
26
+ - 数据库:none / <table name> (schema changes → L3; runtime / pipeline structural surfaces without schema are also L3; for criteria see `.agents/commands/new-task.md` §level determination)
27
+ - 前端页面:<route or component; delete this line if none>
28
+
29
+ ## 触达红线(对照 AGENTS.md,勾选仅标记触及范围;具体如何满足在同名 spec 中说明)
30
+ - [ ] Application must not reference Infrastructure / DbContext (exemption only for native LINQ in the category tree)
31
+ - [ ] Code-generation logic (FormulaEngine / CategoryPrefix) → level at least L2
32
+ - [ ] Cross-caller contract changes (shared-layer base classes / DTO shape / interface signatures / existing parameter semantics / global response and pagination validation semantics) → level at least L2
33
+ - [ ] schema / migration SQL / DI chain → level L3
34
+ - [ ] Frontend: always Drawer / no a-select for large datasets / unified styles in style.css
35
+
36
+ > Touching any red line makes it L2 / L3. You must create ../specs/YYYY-MM-DD-<topic>.md explaining how it is satisfied before drafting a plan.
37
+
38
+ ## 验收标准(可测试)
39
+ <!-- Give each item a stable ID A1..An (anchor coverageSince 2026-10-22; the spec confirmation gate checks coverage by ID); add/remove using new numbers, never reuse old ones. -->
40
+ - [ ] A1 <Each item must be testable; if you cannot write a testable criterion, it is not thought through yet>
41
+
42
+ > **Closed-loop reconciliation**: closeout happens in the test stage (not dependent on deploy). Before setting intent to done, check and verify each item, and append evidence after each checked item — `- [x] <criterion>(证据:<commit SHA / test case name / smoke script output>)`.
43
+ > A done intent with unchecked items is blocked by check-loop (new intents are hard-block since 2026-09-12; legacy intents only get a warning); checked items without "证据:" produce a warning.
@@ -0,0 +1,4 @@
1
+ # workflow metrics (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/gen-workflow-metrics.mjs` from ledgers and the document tree.
4
+ > Placeholder for new installs; monthly metrics are populated after the first generation.
@@ -0,0 +1,3 @@
1
+ # Papercuts list
2
+
3
+ > Manually maintained: record high-frequency minor pain points and their disposition status. Format and item protocol in `workflow/README.md`.
@@ -0,0 +1,47 @@
1
+ ---
2
+ 状态: draft
3
+ 级别: L1
4
+ 日期: <YYYY-MM-DD creation date>
5
+ 模块: <one of the vocabulary entries; see .agents/config/workflow-modules.txt>
6
+ ---
7
+ # PLAN — <same topic as the entry document>
8
+ <!-- Pairs with the same-named entry document under intents/ or incidents/; L2/L3 must first have a confirmed ../specs/ spec with the same name; AI drafts it, and work starts after the user confirms in the conversation -->
9
+ <!-- frontmatter restricted subset (2026-09-13): status ∈ draft/approved/done/superseded/cancelled (strict enum; put annotations in the note key); level ∈ L1/L2/L3; do not repeat status/level lines in the body -->
10
+ <!-- L1 (2026-10-10): for new tickets use fill-plan.mjs --level L1; this file is the entry document and no separate intent is created. Sections: entry / change plan / constraints and risks / verification plan / acceptance criteria. The "change surface / verification method" sections retained below are the legacy minimal form; do not copy these two section titles for new tickets. -->
11
+ <!-- ambiguity discipline (2026-10-16): when drafting/revising, do not guess at ambiguities you cannot decide yourself (multiple interpretations / missing semantics / dependence on external facts) — insert [NEEDS CLARIFICATION]: <one-sentence question> in place in the relevant section and keep the document in draft while asking the user; after clarification, delete the marker and record the decision as body text. Markers must be cleared before approval (see workflow/README.md document protocol "explicit ambiguity blocking"). -->
12
+
13
+ 对应入口:L1 = this plan. For fixes, also keep ../incidents/YYYY-MM-DD-<topic>.md. L2/L3 = ../intents/YYYY-MM-DD-<topic>.md
14
+ 对应 spec:../specs/YYYY-MM-DD-<topic>.md (L2/L3 only)
15
+
16
+ ## 改动面(L1 极简形态主节;L2/L3 可作任务拆解的汇总或删本节)
17
+ - <file/component>: <what to do; put criterion details directly in the item, e.g. "L771 message.success changed to 'Update succeeded'">
18
+ <!-- Backfill this section to disk after the change list in stages.md Build §2 is confirmed (conversation traces apply only to that session) — change surface + task checkbox state + git status = the three session-reentry anchors (2026-10-11 session-context) -->
19
+
20
+ ## 任务拆解(L2/L3 必填;L1 仅多文件多步骤时用,单任务微改动删本节)
21
+ <!-- Tasks are checkbox state (2026-10-11 session-context): check off each item immediately when done and backfill the trace; when resuming after compaction / in a new session, first read this table's checkbox state + git status to rebuild progress; never backfill checkmarks from memory -->
22
+ <!-- Dependency rows (blocking edges, isomorphic to matt to-tickets): once blocking relations are declared explicitly, work may start as soon as "the tasks named in the dependency row are checked" — the task set with no unresolved blockers = frontier, which can be dispatched in parallel (multiple worktrees / delegate "new session + merge scope"); a purely sequential chain degrades the dependency row to "task N-1" at zero extra cost -->
23
+ - [ ] 1. <Task>
24
+ - 判据:<what counts as done; preferably corresponds to one test or a reproducible operation>
25
+ - 依赖:none (can start immediately) / blocked by task <N>
26
+ - 风险:low / medium / high (<reason>)
27
+ - 留痕:(backfill commit SHA / test name / measured output when checking off)
28
+ - [ ] 2. <Task>
29
+ - 判据:…
30
+ - 依赖:…
31
+ - 风险:…
32
+ - 留痕:…
33
+
34
+ ## 执行顺序(L2/L3 必填;L1 单文件微改动删本节)
35
+ <1 → 2 → 3; when dependencies are already explicit in the "依赖" rows above, write only "see the task-breakdown dependency rows; frontier = tasks with no unresolved blockers"; for a purely sequential chain write 1 → N>
36
+
37
+ ## 验证方式
38
+ - Build: <project build command> (+ <test command>)
39
+ - Frontend: cd frontend && npm run build (vue-tsc)
40
+ - UI: .agents/commands/stages.md Test chapter (required when page changes are involved; verify with headless Chrome)
41
+ - L2 additional: <contract / rule-surface comparison: coding-result sampling / API contract assertions / semantics reconciliation>
42
+ - L3 additional: <schema changes: execute after backup + rollback SQL are ready; runtime / pipeline only: fall back to the previous release tag + configuration-switch contingency>
43
+
44
+ ## 确认与复核
45
+ > Confirmation = the user approves in one sentence in the conversation; after confirmation this plan moves `draft → approved` and this section is backfilled (the machine-visible state of the confirmation step); `done` appears only at closeout — jumping directly from `draft` to `done` is forbidden (2026-09-22 papercut).
46
+ - Confirmation result: approved (YYYY-MM-DD confirmed in the user conversation); done (YYYY-MM-DD closeout, set together with the entry document's terminal state)
47
+ - Confirmation-gate record: full plan draft reviewed + change list confirmed (`stages.md` Build two gates, one at a time, not merged)
@@ -0,0 +1,3 @@
1
+ # Regression checklist
2
+
3
+ > Manually maintained: critical paths and anti-recurrence verification items. New entries must link to an incident or plan.
@@ -0,0 +1,86 @@
1
+ ---
2
+ 状态: draft
3
+ 级别: L1
4
+ 模块: <one of the vocabulary entries; see .agents/config/workflow-modules.txt>
5
+ ---
6
+ # SPEC — <same topic as the entry document>
7
+ <!-- Pairs with the same-named entry document under intents/ or incidents/; L2 / L3 must have a confirmed spec before a plan may be drafted; L1 may omit this file -->
8
+ <!-- frontmatter restricted subset (2026-09-13): status ∈ draft/approved/done/superseded/cancelled (done = closed, superseded = abandoned after confirmation, cancelled = cancelled before completion); after L3 confirmation, append two lines to frontmatter: `确认结果: approved` and `确认时间: YYYY-MM-DD` (check-loop enforces this for L3) -->
9
+ <!-- ambiguity discipline (2026-10-16): when drafting/revising, do not guess at ambiguities you cannot decide yourself (multiple interpretations / missing semantics / dependence on external facts) — insert [NEEDS CLARIFICATION]: <one-sentence question> in place in the relevant section and keep the document in draft while asking the user; after clarification, delete the marker and record the decision as body text. Markers must be cleared before approval (see workflow/README.md document protocol "explicit ambiguity blocking"). -->
10
+
11
+ 对应入口:../intents/YYYY-MM-DD-<topic>.md or ../incidents/YYYY-MM-DD-<topic>.md (keep the actual one)
12
+
13
+ ## 功能行为
14
+ <Explain clearly how the feature works; break user / system behavior into subsections, and add state-machine / sequence diagrams where needed>
15
+
16
+ ## 数据流
17
+ <Where data comes from → what processing it goes through → where it lands; include field mappings, API contracts, and upstream/downstream dependencies>
18
+
19
+ ## 系统改动清单
20
+ - Backend: modules / files / API contracts
21
+ - Database: none / <table + fields + migration SQL path>
22
+ - Frontend: routes / components / stores / api
23
+
24
+ ## 约束遵守映射(对照 AGENTS.md 触达红线)
25
+ <!-- Since 2026-10-29: the mapping must cover the machine-gate / red-line items in the AGENTS.md files of project directories (regardless of this change's surface — it is the repository-wide contract baseline, required reading before drafting, see stages.md Design §2 "required inputs"); cite wiki evidence by path in the relevant section -->
26
+ | Red line | How this spec satisfies it |
27
+ |------|------------------|
28
+ | Application must not reference Infrastructure / DbContext | <Via XXX, without introducing YYY> |
29
+ | Rules / contracts (coding authority / shared contracts / existing API semantics / global cross-cutting semantics) | <Whether touched (touching it is the basis for L2); coding authority remains in the backend> |
30
+ | schema / migration SQL (no dotnet ef) | <SQL paths involved; the historical EF Migrations directory (including ModelSnapshot) has been removed entirely and must not be recreated> |
31
+ | Frontend: Drawer / no a-select / unified style.css | <Which frontend conventions this spec involves> |
32
+
33
+ ## 验收判据
34
+ <!-- Machine input for criterion-level convergence reconciliation (check-loop check 23): one criterion per line; "evidence" must be machine-parseable.
35
+ Path: the file must exist. The machine does not read the body or judge whether it is relevant to the criterion (that step is left to a new-session review).
36
+ Command: only npm test / dotnet test / dotnet build / npm run build / verify.mjs that have been run by the full gate are accepted.
37
+ Since convergenceHardSince, workflow/verify-evidence.md must also contain an all-green line whose time is not earlier than this spec's "date"; without that line = not covered.
38
+ Date semantics: the frontmatter "date" and the all-green line time are both UTC (fill-spec defaults to this); for hand-written files do not use a local-timezone date — an all-green line recorded between 00:00 and 08:00 UTC+8 gets the previous day's date and will not match (hard block; rerun the gate after 08:00 to resolve).
39
+ verify-ui / vue-tsc / regression-smoke etc. are not part of the full gate; record an evidence file path instead.
40
+ Writing "covered" as the status while the evidence is invalid still counts as not covered. For manual walkthroughs write "manual" as the status and leave the evidence column empty (only "manual + empty evidence" is exempt from machine reconciliation; images such as screenshots are not on the path allowlist — save them in a .md report and cite that path).
41
+ Missing this section or an empty table → WARN. Invalid evidence: WARN only at convergenceSince; HARD-BLOCK from convergenceHardSince. -->
42
+ | 判据(可观察行为) | 证据(测试文件 / 命令 / 证据文件) | 状态 | 对应验收 |
43
+ |---|---|---|---|
44
+ | <Behavior 1> | <path or command> | <覆盖 / 未覆盖 / 人工> | <A1 or A1, A3> |
45
+
46
+ <!-- The "Corresponding acceptance" column = acceptance IDs from the entry intent (the confirmation gate has enforced this since anchor coverageSince 2026-10-22): each An must be referenced at least once, and one criterion may map to many; leave it blank when a technical criterion has no corresponding acceptance item (coverage is one-way only — do not invent fake acceptance items to satisfy it in reverse). See stage-gates coverageGate for the criterion gate. -->
47
+
48
+ ## 风险评估
49
+ - <Risk 1> | Mitigation: <test / hook / review>
50
+ - <Risk 2> | Mitigation: …
51
+
52
+ ## 前提质询
53
+ <!-- Blocks "confidently wrong interpretations" (premise-interrogation 2026-10-29; root cause incidents/2026-10-23-pml-quota-substitute-identity-overwrite:
54
+ a presentation requirement was written as a stored-identity rewrite; tests locked in expectations based on the wrong premise, and review only checked internal consistency — three layers failed from the same source, and the only possible interception point is before the premise enters the source of truth).
55
+ One asserted premise per line: challenge the opposite interpretation and state why the conclusion was chosen; for small items with no interpretation risk, write one line "no key premises" + reason.
56
+ confirm-doc hard-blocks this (premiseSince 2026-10-30 anchor): missing section / empty table / unfilled placeholder / missing challenge or missing basis → reject. -->
57
+ | 前提 | 反问(对立解读会怎样) | 结论与依据 |
58
+ |---|---|---|
59
+ | <Interpretation / semantic choice being asserted> | <What happens under the opposite interpretation; worst-case consequence> | <Chosen interpretation + why (user's exact words / document / experiment)> |
60
+
61
+ ## 歧义清单
62
+ <!-- One line per dimension; confirmation is allowed only after pending items reach zero; see .agents/commands/stages.md Design §2.7 and stage-gates clarifyGate for the single source of process and criteria.
63
+ A missing dimension ≠ no ambiguity; legacy documents before the anchor and documents without frontmatter "date" do not participate. -->
64
+ | 维度 | 结论 | 依据 / 问题 | 状态 |
65
+ |---|---|---|---|
66
+ | 状态与边界 | <Who can do what in which state; privilege escalation / concurrency / idempotency?> | <State-machine section number or code path> | <已定 / 待澄清> |
67
+ | 数据口径 | <Nulls, precision, units, time zones, sort stability?> | <Query result or existing implementation> | <已定 / 待澄清> |
68
+ | 失败路径 | <On partial success, is there a rollback, retry, and what prompt does the user see?> | <Basis> | <已定 / 待澄清> |
69
+ | 契约对称 | <Do ≥2 consumers use the same semantics; how are old callers kept compatible?> | <Consumer list> | <已定 / 待澄清> |
70
+ | 存量数据 | <How are historical rows interpreted; is backfill needed?> | <Measured data distribution> | <已定 / 待澄清> |
71
+ | 验收可测性 | <Can each acceptance item be decided by one command or one experiment?> | <Test file or command> | <已定 / 待澄清> |
72
+
73
+ ## 假设与推断
74
+ <!-- Record only inferences (semantic choices without experiment / code / documentation support), not measured facts; delete this section if there are no inferences. -->
75
+ | Assumption | Impact surface | What if it does not hold |
76
+ |---|---|---|
77
+ | <One-sentence assumption> | <Affected modules / endpoints / pages> | <Rework scope and fallback> |
78
+
79
+ ## 确认与复核
80
+ > AI-Native workflow: confirmation = the user approves in one sentence in the conversation; there is no second approver, and traceability relies on git (commits record the confirmation time).
81
+ > Confirmation result / time go in the file-header frontmatter (enforced by check-loop for L3); this section only keeps narrative review records.
82
+
83
+ - Independent review: <Mandatory for L3: open a new session and have AI review this spec, recording the review session and conclusion; delete this line if absent for L1 / L2. Since 2026-10-12 (reviewerSince) the review line must include "复核上下文:<session/subagent id>">
84
+ - Review conclusion: <delete this line if none>
85
+ - Rework comments: <delete this line if none>
86
+ - Only after confirmation may you draft ../plans/YYYY-MM-DD-<topic>.md
@@ -0,0 +1,4 @@
1
+ # Test-green evidence reconciliation (generated, do not hand-edit)
2
+
3
+ > Regenerated by `node .agents/scripts/gen-verify-evidence.mjs` from `.agents/verifications.jsonl`.
4
+ > Placeholder for new installs; populated after the first generation.