agentic-flow-kit 1.8.2 → 2.0.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 (936) hide show
  1. package/README.md +113 -148
  2. package/bin/flow-kit.mjs +5 -2
  3. package/locales/en/installer.json +25 -0
  4. package/locales/en/overrides/.agents/commands/deploy.md +52 -0
  5. package/locales/en/overrides/.agents/commands/maintain.md +76 -0
  6. package/locales/en/overrides/.agents/commands/new-task.md +89 -0
  7. package/locales/en/overrides/.agents/commands/pipeline-run.md +56 -0
  8. package/locales/en/overrides/.agents/commands/pr-review.md +30 -0
  9. package/locales/en/overrides/.agents/commands/review.md +93 -0
  10. package/locales/en/overrides/.agents/commands/stages.md +256 -0
  11. package/locales/en/overrides/.agents/notes/pr-review-cost-discipline.md +48 -0
  12. package/locales/en/overrides/.agents/notes/process-order-rule.md +21 -0
  13. package/locales/en/overrides/.agents/notes/runtime-env.local.example.md +21 -0
  14. package/locales/en/overrides/.agents/pipelines/_TEMPLATE.md +75 -0
  15. package/locales/en/overrides/.agents/pipelines/pipeline-closing.md +28 -0
  16. package/locales/en/overrides/.agents/roles/implementer.md +28 -0
  17. package/locales/en/overrides/.agents/roles/independent-reviewer.md +39 -0
  18. package/locales/en/overrides/.agents/roles/pr-adjudicator.md +27 -0
  19. package/locales/en/overrides/.agents/roles/pr-finder.md +51 -0
  20. package/locales/en/overrides/.agents/roles/pr-verifier.md +44 -0
  21. package/locales/en/overrides/.agents/roles/ui-verifier.md +22 -0
  22. package/locales/en/overrides/.agents/roles/wiki-compiler.md +47 -0
  23. package/locales/en/overrides/.agents/skills/arena/SKILL.md +50 -0
  24. package/locales/en/overrides/.agents/skills/autonomous-run/SKILL.md +45 -0
  25. package/locales/en/overrides/.agents/skills/blast-radius/SKILL.md +53 -0
  26. package/locales/en/overrides/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  27. package/locales/en/overrides/.agents/skills/dev-tour/SKILL.md +98 -0
  28. package/locales/en/overrides/.agents/skills/dream/SKILL.md +63 -0
  29. package/locales/en/overrides/.agents/skills/eval/SKILL.md +42 -0
  30. package/locales/en/overrides/.agents/skills/interrogate/SKILL.md +49 -0
  31. package/locales/en/overrides/.agents/skills/number-vetting/SKILL.md +35 -0
  32. package/locales/en/overrides/.agents/skills/page-refactor/SKILL.md +192 -0
  33. package/locales/en/overrides/.agents/skills/papercut-fix/SKILL.md +92 -0
  34. package/locales/en/overrides/.agents/skills/pause-safely/SKILL.md +31 -0
  35. package/locales/en/overrides/.agents/skills/perf/SKILL.md +42 -0
  36. package/locales/en/overrides/.agents/skills/review-method/SKILL.md +92 -0
  37. package/locales/en/overrides/.agents/skills/session-resume/SKILL.md +69 -0
  38. package/locales/en/overrides/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  39. package/locales/en/overrides/.agents/skills/show-me-your-work/SKILL.md +57 -0
  40. package/locales/en/overrides/.agents/skills/tfs-pr/SKILL.md +95 -0
  41. package/locales/en/overrides/.agents/skills/verify-ui/SKILL.md +116 -0
  42. package/locales/en/overrides/.agents/skills/visual-parity/SKILL.md +35 -0
  43. package/locales/en/overrides/.agents/skills/why/SKILL.md +56 -0
  44. package/locales/en/overrides/.agents/skills/wiki/SKILL.md +53 -0
  45. package/locales/en/overrides/.claude/agents/implementer.md +9 -0
  46. package/locales/en/overrides/.claude/agents/independent-reviewer.md +10 -0
  47. package/locales/en/overrides/.claude/agents/pr-adjudicator.md +10 -0
  48. package/locales/en/overrides/.claude/agents/pr-finder.md +10 -0
  49. package/locales/en/overrides/.claude/agents/pr-verifier.md +10 -0
  50. package/locales/en/overrides/.claude/agents/ui-verifier.md +10 -0
  51. package/locales/en/overrides/.claude/agents/wiki-compiler.md +10 -0
  52. package/locales/en/overrides/.claude/commands/wf-deploy.md +8 -0
  53. package/locales/en/overrides/.claude/commands/wf-maintain.md +8 -0
  54. package/locales/en/overrides/.claude/commands/wf-new-task.md +8 -0
  55. package/locales/en/overrides/.claude/commands/wf-pipeline-run.md +8 -0
  56. package/locales/en/overrides/.claude/commands/wf-pr-review.md +8 -0
  57. package/locales/en/overrides/.claude/commands/wf-review.md +8 -0
  58. package/locales/en/overrides/.claude/commands/wf-stages.md +8 -0
  59. package/locales/en/overrides/.cline/agents/implementer.yml +13 -0
  60. package/locales/en/overrides/.cline/agents/independent-reviewer.yml +11 -0
  61. package/locales/en/overrides/.cline/agents/pr-adjudicator.yml +11 -0
  62. package/locales/en/overrides/.cline/agents/pr-finder.yml +11 -0
  63. package/locales/en/overrides/.cline/agents/pr-verifier.yml +11 -0
  64. package/locales/en/overrides/.cline/agents/ui-verifier.yml +8 -0
  65. package/locales/en/overrides/.cline/agents/wiki-compiler.yml +14 -0
  66. package/locales/en/overrides/.cline/workflows/wf-deploy.md +8 -0
  67. package/locales/en/overrides/.cline/workflows/wf-maintain.md +8 -0
  68. package/locales/en/overrides/.cline/workflows/wf-new-task.md +8 -0
  69. package/locales/en/overrides/.cline/workflows/wf-pipeline-run.md +8 -0
  70. package/locales/en/overrides/.cline/workflows/wf-pr-review.md +8 -0
  71. package/locales/en/overrides/.cline/workflows/wf-review.md +8 -0
  72. package/locales/en/overrides/.cline/workflows/wf-stages.md +8 -0
  73. package/locales/en/overrides/.codebuddy/CODEBUDDY.md +7 -0
  74. package/locales/en/overrides/.codebuddy/agents/implementer.md +9 -0
  75. package/locales/en/overrides/.codebuddy/agents/independent-reviewer.md +10 -0
  76. package/locales/en/overrides/.codebuddy/agents/pr-adjudicator.md +10 -0
  77. package/locales/en/overrides/.codebuddy/agents/pr-finder.md +10 -0
  78. package/locales/en/overrides/.codebuddy/agents/pr-verifier.md +10 -0
  79. package/locales/en/overrides/.codebuddy/agents/ui-verifier.md +11 -0
  80. package/locales/en/overrides/.codebuddy/agents/wiki-compiler.md +10 -0
  81. package/locales/en/overrides/.codebuddy/commands/wf-deploy.md +8 -0
  82. package/locales/en/overrides/.codebuddy/commands/wf-maintain.md +8 -0
  83. package/locales/en/overrides/.codebuddy/commands/wf-new-task.md +8 -0
  84. package/locales/en/overrides/.codebuddy/commands/wf-pipeline-run.md +8 -0
  85. package/locales/en/overrides/.codebuddy/commands/wf-pr-review.md +8 -0
  86. package/locales/en/overrides/.codebuddy/commands/wf-review.md +8 -0
  87. package/locales/en/overrides/.codebuddy/commands/wf-stages.md +8 -0
  88. package/locales/en/overrides/.codebuddy/rules/backend-scope.md +5 -0
  89. package/locales/en/overrides/.codebuddy/rules/frontend-scope.md +5 -0
  90. package/locales/en/overrides/.codebuddy/skills/tfs-pr/SKILL.md +6 -0
  91. package/locales/en/overrides/.commandcode/agents/implementer.md +10 -0
  92. package/locales/en/overrides/.commandcode/agents/independent-reviewer.md +9 -0
  93. package/locales/en/overrides/.commandcode/agents/pr-adjudicator.md +9 -0
  94. package/locales/en/overrides/.commandcode/agents/pr-finder.md +9 -0
  95. package/locales/en/overrides/.commandcode/agents/pr-verifier.md +9 -0
  96. package/locales/en/overrides/.commandcode/agents/ui-verifier.md +10 -0
  97. package/locales/en/overrides/.commandcode/agents/wiki-compiler.md +10 -0
  98. package/locales/en/overrides/.commandcode/commands/wf-deploy.md +7 -0
  99. package/locales/en/overrides/.commandcode/commands/wf-maintain.md +7 -0
  100. package/locales/en/overrides/.commandcode/commands/wf-new-task.md +7 -0
  101. package/locales/en/overrides/.commandcode/commands/wf-pipeline-run.md +7 -0
  102. package/locales/en/overrides/.commandcode/commands/wf-pr-review.md +7 -0
  103. package/locales/en/overrides/.commandcode/commands/wf-review.md +7 -0
  104. package/locales/en/overrides/.commandcode/commands/wf-stages.md +7 -0
  105. package/locales/en/overrides/.opencode/agents/implementer.md +51 -0
  106. package/locales/en/overrides/.opencode/agents/independent-reviewer.md +18 -0
  107. package/locales/en/overrides/.opencode/agents/pr-adjudicator.md +18 -0
  108. package/locales/en/overrides/.opencode/agents/pr-finder.md +18 -0
  109. package/locales/en/overrides/.opencode/agents/pr-verifier.md +18 -0
  110. package/locales/en/overrides/.opencode/agents/ui-verifier.md +45 -0
  111. package/locales/en/overrides/.opencode/agents/wiki-compiler.md +51 -0
  112. package/locales/en/overrides/.opencode/commands/wf-deploy.md +7 -0
  113. package/locales/en/overrides/.opencode/commands/wf-maintain.md +7 -0
  114. package/locales/en/overrides/.opencode/commands/wf-new-task.md +7 -0
  115. package/locales/en/overrides/.opencode/commands/wf-pipeline-run.md +7 -0
  116. package/locales/en/overrides/.opencode/commands/wf-pr-review.md +7 -0
  117. package/locales/en/overrides/.opencode/commands/wf-review.md +7 -0
  118. package/locales/en/overrides/.opencode/commands/wf-stages.md +7 -0
  119. package/locales/en/overrides/.pi/agents/implementer.md +11 -0
  120. package/locales/en/overrides/.pi/agents/independent-reviewer.md +12 -0
  121. package/locales/en/overrides/.pi/agents/pr-adjudicator.md +12 -0
  122. package/locales/en/overrides/.pi/agents/pr-finder.md +11 -0
  123. package/locales/en/overrides/.pi/agents/pr-verifier.md +11 -0
  124. package/locales/en/overrides/.pi/agents/ui-verifier.md +11 -0
  125. package/locales/en/overrides/.pi/agents/wiki-compiler.md +11 -0
  126. package/locales/en/overrides/.qoder/agents/implementer.md +9 -0
  127. package/locales/en/overrides/.qoder/agents/independent-reviewer.md +10 -0
  128. package/locales/en/overrides/.qoder/agents/pr-adjudicator.md +10 -0
  129. package/locales/en/overrides/.qoder/agents/pr-finder.md +10 -0
  130. package/locales/en/overrides/.qoder/agents/pr-verifier.md +10 -0
  131. package/locales/en/overrides/.qoder/agents/ui-verifier.md +10 -0
  132. package/locales/en/overrides/.qoder/agents/wiki-compiler.md +10 -0
  133. package/locales/en/overrides/.qoder/commands/wf-deploy.md +8 -0
  134. package/locales/en/overrides/.qoder/commands/wf-maintain.md +8 -0
  135. package/locales/en/overrides/.qoder/commands/wf-new-task.md +8 -0
  136. package/locales/en/overrides/.qoder/commands/wf-pipeline-run.md +8 -0
  137. package/locales/en/overrides/.qoder/commands/wf-pr-review.md +8 -0
  138. package/locales/en/overrides/.qoder/commands/wf-review.md +8 -0
  139. package/locales/en/overrides/.qoder/commands/wf-stages.md +8 -0
  140. package/locales/en/overrides/.qwen/agents/implementer.md +10 -0
  141. package/locales/en/overrides/.qwen/agents/independent-reviewer.md +10 -0
  142. package/locales/en/overrides/.qwen/agents/pr-adjudicator.md +10 -0
  143. package/locales/en/overrides/.qwen/agents/pr-finder.md +10 -0
  144. package/locales/en/overrides/.qwen/agents/pr-verifier.md +10 -0
  145. package/locales/en/overrides/.qwen/agents/ui-verifier.md +10 -0
  146. package/locales/en/overrides/.qwen/agents/wiki-compiler.md +13 -0
  147. package/locales/en/overrides/.qwen/commands/wf-deploy.md +7 -0
  148. package/locales/en/overrides/.qwen/commands/wf-maintain.md +7 -0
  149. package/locales/en/overrides/.qwen/commands/wf-new-task.md +7 -0
  150. package/locales/en/overrides/.qwen/commands/wf-pipeline-run.md +7 -0
  151. package/locales/en/overrides/.qwen/commands/wf-pr-review.md +7 -0
  152. package/locales/en/overrides/.qwen/commands/wf-review.md +7 -0
  153. package/locales/en/overrides/.qwen/commands/wf-stages.md +7 -0
  154. package/locales/en/overrides/.trae/agents/implementer.md +9 -0
  155. package/locales/en/overrides/.trae/agents/independent-reviewer.md +10 -0
  156. package/locales/en/overrides/.trae/agents/pr-adjudicator.md +10 -0
  157. package/locales/en/overrides/.trae/agents/pr-finder.md +10 -0
  158. package/locales/en/overrides/.trae/agents/pr-verifier.md +10 -0
  159. package/locales/en/overrides/.trae/agents/ui-verifier.md +10 -0
  160. package/locales/en/overrides/.trae/agents/wiki-compiler.md +10 -0
  161. package/locales/en/overrides/.trae/commands/wf-deploy.md +8 -0
  162. package/locales/en/overrides/.trae/commands/wf-maintain.md +8 -0
  163. package/locales/en/overrides/.trae/commands/wf-new-task.md +8 -0
  164. package/locales/en/overrides/.trae/commands/wf-pipeline-run.md +8 -0
  165. package/locales/en/overrides/.trae/commands/wf-pr-review.md +8 -0
  166. package/locales/en/overrides/.trae/commands/wf-review.md +8 -0
  167. package/locales/en/overrides/.trae/commands/wf-stages.md +8 -0
  168. package/locales/en/overrides/.trae/rules/backend-scope.md +5 -0
  169. package/locales/en/overrides/.trae/rules/frontend-scope.md +5 -0
  170. package/locales/en/overrides/.zcode/agents/implementer.md +8 -0
  171. package/locales/en/overrides/.zcode/agents/independent-reviewer.md +8 -0
  172. package/locales/en/overrides/.zcode/agents/ui-verifier.md +8 -0
  173. package/locales/en/overrides/.zcode/agents/wiki-compiler.md +8 -0
  174. package/locales/en/overrides/AGENTS.md +52 -0
  175. package/locales/en/overrides/CLAUDE.md +20 -0
  176. package/locales/en/overrides/wiki/INDEX.md +33 -0
  177. package/locales/en/overrides/wiki/drafts-archive/README.md +6 -0
  178. package/locales/en/overrides/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  179. 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
  180. package/locales/en/overrides/workflow/INDEX.md +13 -0
  181. package/locales/en/overrides/workflow/README.md +67 -0
  182. package/locales/en/overrides/workflow/archive/README.md +3 -0
  183. package/locales/en/overrides/workflow/delegations.md +4 -0
  184. package/locales/en/overrides/workflow/effective-policy.md +4 -0
  185. package/locales/en/overrides/workflow/gate-cost.md +4 -0
  186. package/locales/en/overrides/workflow/incidents/_TEMPLATE.md +49 -0
  187. package/locales/en/overrides/workflow/intents/_TEMPLATE.md +43 -0
  188. package/locales/en/overrides/workflow/metrics.md +4 -0
  189. package/locales/en/overrides/workflow/papercuts.md +3 -0
  190. package/locales/en/overrides/workflow/plans/_TEMPLATE.md +47 -0
  191. package/locales/en/overrides/workflow/regression-checklist.md +3 -0
  192. package/locales/en/overrides/workflow/specs/_TEMPLATE.md +86 -0
  193. package/locales/en/overrides/workflow/verify-evidence.md +4 -0
  194. package/locales/zh-CN/installer.json +25 -0
  195. package/package.json +23 -36
  196. package/schemas/install-manifest.schema.json +24 -0
  197. package/schemas/project-profile.schema.json +28 -0
  198. package/src/cli/args.mjs +41 -0
  199. package/src/cli/main.mjs +72 -0
  200. package/src/commands/add-host.mjs +29 -0
  201. package/src/commands/doctor.mjs +80 -0
  202. package/src/commands/install.mjs +149 -0
  203. package/src/commands/upgrade.mjs +30 -0
  204. package/src/git/config.mjs +61 -0
  205. package/src/hosts/registry.mjs +26 -0
  206. package/src/i18n.mjs +32 -0
  207. package/src/install/apply.mjs +124 -0
  208. package/src/install/manifest.mjs +40 -0
  209. package/src/install/plan.mjs +83 -0
  210. package/src/render/tokens.mjs +58 -0
  211. package/templates/engine/.agents/board/dev-tour.html +1940 -0
  212. package/templates/engine/.agents/board/index.html +835 -0
  213. package/templates/engine/.agents/commands/deploy.md +52 -0
  214. package/templates/engine/.agents/commands/maintain.md +76 -0
  215. package/templates/engine/.agents/commands/new-task.md +89 -0
  216. package/templates/engine/.agents/commands/pipeline-run.md +56 -0
  217. package/templates/engine/.agents/commands/pr-review.md +30 -0
  218. package/templates/engine/.agents/commands/review.md +93 -0
  219. package/templates/engine/.agents/commands/stages.md +256 -0
  220. package/templates/engine/.agents/config/commit-msg-rules.json +7 -0
  221. package/templates/engine/.agents/config/engine.json +11 -0
  222. package/templates/engine/.agents/config/gate-budgets.json +5 -0
  223. package/templates/engine/.agents/config/mechanism-registry.md +62 -0
  224. package/templates/engine/.agents/config/model-roles.json +26 -0
  225. package/templates/engine/.agents/config/model-roles.local.example.json +7 -0
  226. package/templates/engine/.agents/config/pr-review.json +67 -0
  227. package/templates/engine/.agents/config/principles.md +32 -0
  228. package/templates/engine/.agents/config/workflow-enums.txt +25 -0
  229. package/templates/engine/.agents/hooks/check-architecture.mjs +168 -0
  230. package/templates/engine/.agents/hooks/check-audit-fields.mjs +56 -0
  231. package/templates/engine/.agents/hooks/check-commit-plan-ref.mjs +84 -0
  232. package/templates/engine/.agents/hooks/check-confirm-order.mjs +281 -0
  233. package/templates/engine/.agents/hooks/check-delete-guard.mjs +63 -0
  234. package/templates/engine/.agents/hooks/check-notify-guard.mjs +55 -0
  235. package/templates/engine/.agents/hooks/commit-check.cjs +208 -0
  236. package/templates/engine/.agents/hooks/gates.json +33 -0
  237. package/templates/engine/.agents/hooks/local-pre-commit.mjs +27 -0
  238. package/templates/engine/.agents/hooks/pre-shell-check.cjs +361 -0
  239. package/templates/engine/.agents/hooks/pre-write-check.cjs +220 -0
  240. package/templates/engine/.agents/notes/gate-diet.md +75 -0
  241. package/templates/engine/.agents/notes/pr-review-cost-discipline.md +48 -0
  242. package/templates/engine/.agents/notes/process-order-rule.md +21 -0
  243. package/templates/engine/.agents/notes/runtime-env.local.example.md +21 -0
  244. package/templates/engine/.agents/pipelines/_TEMPLATE.md +75 -0
  245. package/templates/engine/.agents/pipelines/pipeline-closing.md +28 -0
  246. 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
  247. package/templates/engine/.agents/roles/implementer.md +28 -0
  248. package/templates/engine/.agents/roles/independent-reviewer.md +39 -0
  249. package/templates/engine/.agents/roles/pr-adjudicator.md +27 -0
  250. package/templates/engine/.agents/roles/pr-finder.md +51 -0
  251. package/templates/engine/.agents/roles/pr-verifier.md +44 -0
  252. package/templates/engine/.agents/roles/ui-verifier.md +22 -0
  253. package/templates/engine/.agents/roles/wiki-compiler.md +47 -0
  254. package/templates/engine/.agents/scripts/agg-delegations.mjs +439 -0
  255. package/templates/engine/.agents/scripts/agg-judgments.mjs +301 -0
  256. package/templates/engine/.agents/scripts/agg-kb-usage.mjs +196 -0
  257. package/templates/engine/.agents/scripts/append-compensation.mjs +109 -0
  258. package/templates/engine/.agents/scripts/archive-sweep.mjs +229 -0
  259. package/templates/engine/.agents/scripts/auto-tour.mjs +77 -0
  260. package/templates/engine/.agents/scripts/board-port.mjs +17 -0
  261. package/templates/engine/.agents/scripts/check-doc-body-drift.mjs +102 -0
  262. package/templates/engine/.agents/scripts/check-engine-artifacts.mjs +54 -0
  263. package/templates/engine/.agents/scripts/check-hook-wiring.mjs +75 -0
  264. package/templates/engine/.agents/scripts/check-lane-surface.mjs +393 -0
  265. package/templates/engine/.agents/scripts/check-ledger-doc-presence.mjs +71 -0
  266. package/templates/engine/.agents/scripts/check-ledger-invariant.mjs +873 -0
  267. package/templates/engine/.agents/scripts/check-local-gate-config.mjs +95 -0
  268. package/templates/engine/.agents/scripts/check-local-gates.mjs +248 -0
  269. package/templates/engine/.agents/scripts/check-loop-kit.mjs +550 -0
  270. package/templates/engine/.agents/scripts/check-loop-rev-semantics.mjs +59 -0
  271. package/templates/engine/.agents/scripts/check-loop-sections/s01-pairing.mjs +116 -0
  272. package/templates/engine/.agents/scripts/check-loop-sections/s03x-regr-evidence.mjs +38 -0
  273. package/templates/engine/.agents/scripts/check-loop-sections/s08-acceptance.mjs +130 -0
  274. package/templates/engine/.agents/scripts/check-loop-sections/s15-fingerprint.mjs +152 -0
  275. package/templates/engine/.agents/scripts/check-loop-sections/s23-convergence-audit.mjs +182 -0
  276. package/templates/engine/.agents/scripts/check-loop-sections/s29-regr-enforcer.mjs +69 -0
  277. package/templates/engine/.agents/scripts/check-loop.mjs +131 -0
  278. package/templates/engine/.agents/scripts/check-regression-consistency.mjs +252 -0
  279. package/templates/engine/.agents/scripts/check-schema-residue.mjs +144 -0
  280. package/templates/engine/.agents/scripts/check-scope-range.mjs +156 -0
  281. package/templates/engine/.agents/scripts/check-scope.mjs +121 -0
  282. package/templates/engine/.agents/scripts/check-scripts-syntax.mjs +138 -0
  283. package/templates/engine/.agents/scripts/check-secrets-lite.mjs +239 -0
  284. package/templates/engine/.agents/scripts/check-secrets.mjs +104 -0
  285. package/templates/engine/.agents/scripts/check-test-impact-map.mjs +107 -0
  286. package/templates/engine/.agents/scripts/ci-assert-frontend-deps.mjs +42 -0
  287. package/templates/engine/.agents/scripts/ci-commit-hygiene.mjs +86 -0
  288. package/templates/engine/.agents/scripts/ci-install-gitleaks.mjs +75 -0
  289. package/templates/engine/.agents/scripts/ci-push-before.mjs +49 -0
  290. package/templates/engine/.agents/scripts/closeout.mjs +127 -0
  291. package/templates/engine/.agents/scripts/compact-ledgers.mjs +70 -0
  292. package/templates/engine/.agents/scripts/confirm-doc.mjs +737 -0
  293. package/templates/engine/.agents/scripts/delegation-presence.mjs +38 -0
  294. package/templates/engine/.agents/scripts/dev-tour-model.mjs +1398 -0
  295. package/templates/engine/.agents/scripts/dream-run.mjs +283 -0
  296. package/templates/engine/.agents/scripts/ensure-board.mjs +187 -0
  297. package/templates/engine/.agents/scripts/failure-attribution.mjs +11 -0
  298. package/templates/engine/.agents/scripts/fill-intent.mjs +60 -0
  299. package/templates/engine/.agents/scripts/fill-plan.mjs +105 -0
  300. package/templates/engine/.agents/scripts/fill-spec.mjs +72 -0
  301. package/templates/engine/.agents/scripts/gen-dev-tour.mjs +191 -0
  302. package/templates/engine/.agents/scripts/gen-effective-policy.mjs +113 -0
  303. package/templates/engine/.agents/scripts/gen-engine-map.mjs +292 -0
  304. package/templates/engine/.agents/scripts/gen-narrative-claims.mjs +275 -0
  305. package/templates/engine/.agents/scripts/gen-verify-evidence.mjs +115 -0
  306. package/templates/engine/.agents/scripts/gen-wiki-board.mjs +221 -0
  307. package/templates/engine/.agents/scripts/gen-workflow-index.mjs +201 -0
  308. package/templates/engine/.agents/scripts/gen-workflow-metrics.mjs +692 -0
  309. package/templates/engine/.agents/scripts/git-merge-jsonl.mjs +62 -0
  310. package/templates/engine/.agents/scripts/judgment-ledger.mjs +68 -0
  311. package/templates/engine/.agents/scripts/kb-cache-evict.mjs +50 -0
  312. package/templates/engine/.agents/scripts/kb-search.mjs +423 -0
  313. package/templates/engine/.agents/scripts/lane-surface-audit.mjs +145 -0
  314. package/templates/engine/.agents/scripts/ledger-loader.mjs +77 -0
  315. package/templates/engine/.agents/scripts/ledger-shards.mjs +346 -0
  316. package/templates/engine/.agents/scripts/metrics-core.mjs +131 -0
  317. package/templates/engine/.agents/scripts/pipeline-run.mjs +964 -0
  318. package/templates/engine/.agents/scripts/policy.mjs +250 -0
  319. package/templates/engine/.agents/scripts/pr-create.mjs +54 -0
  320. package/templates/engine/.agents/scripts/pr-review.mjs +1551 -0
  321. package/templates/engine/.agents/scripts/quote-grounding.mjs +233 -0
  322. package/templates/engine/.agents/scripts/regen-ledgers.mjs +59 -0
  323. package/templates/engine/.agents/scripts/rewrite-file.mjs +135 -0
  324. package/templates/engine/.agents/scripts/rule-budget.mjs +246 -0
  325. package/templates/engine/.agents/scripts/stage-gates.mjs +812 -0
  326. package/templates/engine/.agents/scripts/test-impact-lib.mjs +451 -0
  327. package/templates/engine/.agents/scripts/test-impact.mjs +105 -0
  328. package/templates/engine/.agents/scripts/trust-mode.mjs +130 -0
  329. package/templates/engine/.agents/scripts/verify-scope.mjs +163 -0
  330. package/templates/engine/.agents/scripts/verify-wiki-consistency.mjs +264 -0
  331. package/templates/engine/.agents/scripts/verify.mjs +847 -0
  332. package/templates/engine/.agents/scripts/warn-format.mjs +57 -0
  333. package/templates/engine/.agents/scripts/wf-journal.mjs +230 -0
  334. package/templates/engine/.agents/scripts/workflow-board-server.mjs +696 -0
  335. package/templates/engine/.agents/scripts/workflow-enums.mjs +70 -0
  336. package/templates/engine/.agents/scripts/workflows-check.mjs +260 -0
  337. package/templates/engine/.agents/settings.json +33 -0
  338. package/templates/engine/.agents/skills/arena/SKILL.md +50 -0
  339. package/templates/engine/.agents/skills/autonomous-run/SKILL.md +45 -0
  340. package/templates/engine/.agents/skills/blast-radius/SKILL.md +53 -0
  341. package/templates/engine/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  342. package/templates/engine/.agents/skills/csharp-quality-gates/scripts/quality-gates.mjs +430 -0
  343. package/templates/engine/.agents/skills/dev-tour/SKILL.md +98 -0
  344. package/templates/engine/.agents/skills/dream/SKILL.md +63 -0
  345. package/templates/engine/.agents/skills/eval/SKILL.md +42 -0
  346. package/templates/engine/.agents/skills/eval/scripts/eval-score.mjs +59 -0
  347. package/templates/engine/.agents/skills/interrogate/SKILL.md +49 -0
  348. package/templates/engine/.agents/skills/interrogate/scripts/interrogate-plan.mjs +72 -0
  349. package/templates/engine/.agents/skills/number-vetting/SKILL.md +35 -0
  350. package/templates/engine/.agents/skills/page-refactor/SKILL.md +192 -0
  351. package/templates/engine/.agents/skills/page-refactor/references/templates.md +989 -0
  352. package/templates/engine/.agents/skills/papercut-fix/SKILL.md +92 -0
  353. package/templates/engine/.agents/skills/papercut-fix/references/response-template.md +81 -0
  354. package/templates/engine/.agents/skills/pause-safely/SKILL.md +31 -0
  355. package/templates/engine/.agents/skills/perf/SKILL.md +42 -0
  356. package/templates/engine/.agents/skills/review-method/SKILL.md +92 -0
  357. package/templates/engine/.agents/skills/review-method/golden-set.md +61 -0
  358. package/templates/engine/.agents/skills/session-resume/SKILL.md +69 -0
  359. package/templates/engine/.agents/skills/session-resume/scripts/worktree-audit.mjs +110 -0
  360. package/templates/engine/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  361. package/templates/engine/.agents/skills/show-me-your-work/SKILL.md +57 -0
  362. package/templates/engine/.agents/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  363. package/templates/engine/.agents/skills/show-me-your-work/scripts/decision-log.mjs +24 -0
  364. package/templates/engine/.agents/skills/tfs-pr/SKILL.md +95 -0
  365. package/templates/engine/.agents/skills/tfs-pr/scripts/tfs-pr.mjs +947 -0
  366. package/templates/engine/.agents/skills/verify-ui/SKILL.md +116 -0
  367. package/templates/engine/.agents/skills/verify-ui/features/.gitkeep +0 -0
  368. package/templates/engine/.agents/skills/verify-ui/scripts/gen-verify-feature.mjs +114 -0
  369. package/templates/engine/.agents/skills/visual-parity/SKILL.md +35 -0
  370. package/templates/engine/.agents/skills/why/SKILL.md +56 -0
  371. package/templates/engine/.agents/skills/why/scripts/why-evidence.mjs +74 -0
  372. package/templates/engine/.agents/skills/wiki/SKILL.md +53 -0
  373. package/templates/engine/.agents/tests/auto-tour.test.mjs +82 -0
  374. package/templates/engine/.agents/tests/dev-tour-model.test.mjs +452 -0
  375. package/templates/engine/.agents/tests/fill-plan-lite.test.mjs +46 -0
  376. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.md +14 -0
  377. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.model.json +179 -0
  378. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.md +21 -0
  379. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.model.json +194 -0
  380. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.md +20 -0
  381. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.model.json +207 -0
  382. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.md +24 -0
  383. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.model.json +225 -0
  384. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.md +15 -0
  385. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.model.json +160 -0
  386. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.md +29 -0
  387. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.model.json +266 -0
  388. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.md +17 -0
  389. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.model.json +207 -0
  390. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.md +39 -0
  391. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.model.json +359 -0
  392. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.md +16 -0
  393. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.model.json +131 -0
  394. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.md +29 -0
  395. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.model.json +190 -0
  396. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.md +39 -0
  397. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.model.json +362 -0
  398. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.md +24 -0
  399. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.model.json +224 -0
  400. package/templates/engine/.agents/tests/tools/gen-synthetic-plan.mjs +108 -0
  401. package/templates/git/.gitattributes +22 -0
  402. package/templates/git/.githooks/commit-msg +72 -0
  403. package/templates/git/.githooks/post-commit +62 -0
  404. package/templates/git/.githooks/pre-commit +197 -0
  405. package/templates/git/.githooks/pre-merge-commit +28 -0
  406. package/templates/git/.githooks/pre-push +201 -0
  407. package/templates/git/.gitignore.engine +11 -0
  408. package/templates/hosts/claude/CLAUDE.md +55 -0
  409. package/templates/hosts/claude/agents/implementer.md +7 -0
  410. package/templates/hosts/claude/agents/independent-reviewer.md +8 -0
  411. package/templates/hosts/claude/agents/pr-adjudicator.md +8 -0
  412. package/templates/hosts/claude/agents/pr-finder.md +8 -0
  413. package/templates/hosts/claude/agents/pr-verifier.md +8 -0
  414. package/templates/hosts/claude/agents/ui-verifier.md +8 -0
  415. package/templates/hosts/claude/agents/wiki-compiler.md +8 -0
  416. package/templates/hosts/claude/commands/wf-deploy.md +10 -0
  417. package/templates/hosts/claude/commands/wf-maintain.md +10 -0
  418. package/templates/hosts/claude/commands/wf-new-task.md +10 -0
  419. package/templates/hosts/claude/commands/wf-pipeline-run.md +10 -0
  420. package/templates/hosts/claude/commands/wf-pr-review.md +10 -0
  421. package/templates/hosts/claude/commands/wf-review.md +10 -0
  422. package/templates/hosts/claude/commands/wf-stages.md +10 -0
  423. package/templates/hosts/claude/settings.json +57 -0
  424. package/templates/hosts/cline/agents/implementer.yml +15 -0
  425. package/templates/hosts/cline/agents/independent-reviewer.yml +20 -0
  426. package/templates/hosts/cline/agents/pr-adjudicator.yml +18 -0
  427. package/templates/hosts/cline/agents/pr-finder.yml +19 -0
  428. package/templates/hosts/cline/agents/pr-verifier.yml +18 -0
  429. package/templates/hosts/cline/agents/ui-verifier.yml +17 -0
  430. package/templates/hosts/cline/agents/wiki-compiler.yml +20 -0
  431. package/templates/hosts/cline/hooks/PreToolUse.cjs +260 -0
  432. package/templates/hosts/cline/workflows/wf-deploy.md +8 -0
  433. package/templates/hosts/cline/workflows/wf-maintain.md +8 -0
  434. package/templates/hosts/cline/workflows/wf-new-task.md +8 -0
  435. package/templates/hosts/cline/workflows/wf-pipeline-run.md +8 -0
  436. package/templates/hosts/cline/workflows/wf-pr-review.md +8 -0
  437. package/templates/hosts/cline/workflows/wf-review.md +8 -0
  438. package/templates/hosts/cline/workflows/wf-stages.md +8 -0
  439. package/templates/hosts/codebuddy/CODEBUDDY.md +7 -0
  440. package/templates/hosts/codebuddy/agents/implementer.md +9 -0
  441. package/templates/hosts/codebuddy/agents/independent-reviewer.md +10 -0
  442. package/templates/hosts/codebuddy/agents/pr-adjudicator.md +10 -0
  443. package/templates/hosts/codebuddy/agents/pr-finder.md +10 -0
  444. package/templates/hosts/codebuddy/agents/pr-verifier.md +10 -0
  445. package/templates/hosts/codebuddy/agents/ui-verifier.md +11 -0
  446. package/templates/hosts/codebuddy/agents/wiki-compiler.md +10 -0
  447. package/templates/hosts/codebuddy/commands/wf-deploy.md +10 -0
  448. package/templates/hosts/codebuddy/commands/wf-maintain.md +10 -0
  449. package/templates/hosts/codebuddy/commands/wf-new-task.md +10 -0
  450. package/templates/hosts/codebuddy/commands/wf-pipeline-run.md +10 -0
  451. package/templates/hosts/codebuddy/commands/wf-pr-review.md +10 -0
  452. package/templates/hosts/codebuddy/commands/wf-review.md +10 -0
  453. package/templates/hosts/codebuddy/commands/wf-stages.md +10 -0
  454. package/templates/hosts/codebuddy/rules/backend-scope.md +5 -0
  455. package/templates/hosts/codebuddy/rules/frontend-scope.md +5 -0
  456. package/templates/hosts/codebuddy/settings.json +31 -0
  457. package/templates/hosts/codebuddy/skills/tfs-pr/SKILL.md +6 -0
  458. package/templates/hosts/commandcode/agents/implementer.md +10 -0
  459. package/templates/hosts/commandcode/agents/independent-reviewer.md +9 -0
  460. package/templates/hosts/commandcode/agents/pr-adjudicator.md +9 -0
  461. package/templates/hosts/commandcode/agents/pr-finder.md +9 -0
  462. package/templates/hosts/commandcode/agents/pr-verifier.md +9 -0
  463. package/templates/hosts/commandcode/agents/ui-verifier.md +11 -0
  464. package/templates/hosts/commandcode/agents/wiki-compiler.md +10 -0
  465. package/templates/hosts/commandcode/commands/wf-deploy.md +9 -0
  466. package/templates/hosts/commandcode/commands/wf-maintain.md +9 -0
  467. package/templates/hosts/commandcode/commands/wf-new-task.md +9 -0
  468. package/templates/hosts/commandcode/commands/wf-pipeline-run.md +9 -0
  469. package/templates/hosts/commandcode/commands/wf-pr-review.md +9 -0
  470. package/templates/hosts/commandcode/commands/wf-review.md +9 -0
  471. package/templates/hosts/commandcode/commands/wf-stages.md +9 -0
  472. package/templates/hosts/commandcode/settings.json +59 -0
  473. package/templates/hosts/opencode/agents/implementer.md +51 -0
  474. package/templates/hosts/opencode/agents/independent-reviewer.md +18 -0
  475. package/templates/hosts/opencode/agents/pr-adjudicator.md +18 -0
  476. package/templates/hosts/opencode/agents/pr-finder.md +18 -0
  477. package/templates/hosts/opencode/agents/pr-verifier.md +18 -0
  478. package/templates/hosts/opencode/agents/ui-verifier.md +45 -0
  479. package/templates/hosts/opencode/agents/wiki-compiler.md +51 -0
  480. package/templates/hosts/opencode/commands/wf-deploy.md +7 -0
  481. package/templates/hosts/opencode/commands/wf-maintain.md +7 -0
  482. package/templates/hosts/opencode/commands/wf-new-task.md +7 -0
  483. package/templates/hosts/opencode/commands/wf-pipeline-run.md +7 -0
  484. package/templates/hosts/opencode/commands/wf-pr-review.md +7 -0
  485. package/templates/hosts/opencode/commands/wf-review.md +7 -0
  486. package/templates/hosts/opencode/commands/wf-stages.md +7 -0
  487. package/templates/hosts/pi/agents/implementer.md +10 -0
  488. package/templates/hosts/pi/agents/independent-reviewer.md +11 -0
  489. package/templates/hosts/pi/agents/pr-adjudicator.md +11 -0
  490. package/templates/hosts/pi/agents/pr-finder.md +10 -0
  491. package/templates/hosts/pi/agents/pr-verifier.md +10 -0
  492. package/templates/hosts/pi/agents/ui-verifier.md +10 -0
  493. package/templates/hosts/pi/agents/wiki-compiler.md +10 -0
  494. package/templates/hosts/pi/extensions/lib/gates-core.cjs +196 -0
  495. package/templates/hosts/pi/extensions/shipyard-gates.ts +95 -0
  496. package/templates/hosts/pi/settings.json +5 -0
  497. package/templates/hosts/qoder/agents/implementer.md +9 -0
  498. package/templates/hosts/qoder/agents/independent-reviewer.md +10 -0
  499. package/templates/hosts/qoder/agents/pr-adjudicator.md +10 -0
  500. package/templates/hosts/qoder/agents/pr-finder.md +10 -0
  501. package/templates/hosts/qoder/agents/pr-verifier.md +10 -0
  502. package/templates/hosts/qoder/agents/ui-verifier.md +10 -0
  503. package/templates/hosts/qoder/agents/wiki-compiler.md +10 -0
  504. package/templates/hosts/qoder/commands/wf-deploy.md +8 -0
  505. package/templates/hosts/qoder/commands/wf-maintain.md +8 -0
  506. package/templates/hosts/qoder/commands/wf-new-task.md +8 -0
  507. package/templates/hosts/qoder/commands/wf-pipeline-run.md +8 -0
  508. package/templates/hosts/qoder/commands/wf-pr-review.md +8 -0
  509. package/templates/hosts/qoder/commands/wf-review.md +8 -0
  510. package/templates/hosts/qoder/commands/wf-stages.md +8 -0
  511. package/templates/hosts/qoder/settings.json +63 -0
  512. package/templates/hosts/qwen/agents/implementer.md +8 -0
  513. package/templates/hosts/qwen/agents/independent-reviewer.md +8 -0
  514. package/templates/hosts/qwen/agents/pr-adjudicator.md +8 -0
  515. package/templates/hosts/qwen/agents/pr-finder.md +8 -0
  516. package/templates/hosts/qwen/agents/pr-verifier.md +8 -0
  517. package/templates/hosts/qwen/agents/ui-verifier.md +8 -0
  518. package/templates/hosts/qwen/agents/wiki-compiler.md +11 -0
  519. package/templates/hosts/qwen/commands/wf-deploy.md +9 -0
  520. package/templates/hosts/qwen/commands/wf-maintain.md +9 -0
  521. package/templates/hosts/qwen/commands/wf-new-task.md +9 -0
  522. package/templates/hosts/qwen/commands/wf-pipeline-run.md +9 -0
  523. package/templates/hosts/qwen/commands/wf-pr-review.md +9 -0
  524. package/templates/hosts/qwen/commands/wf-review.md +9 -0
  525. package/templates/hosts/qwen/commands/wf-stages.md +9 -0
  526. package/templates/hosts/qwen/settings.json +59 -0
  527. package/templates/hosts/trae/agents/implementer.md +9 -0
  528. package/templates/hosts/trae/agents/independent-reviewer.md +10 -0
  529. package/templates/hosts/trae/agents/pr-adjudicator.md +10 -0
  530. package/templates/hosts/trae/agents/pr-finder.md +10 -0
  531. package/templates/hosts/trae/agents/pr-verifier.md +10 -0
  532. package/templates/hosts/trae/agents/ui-verifier.md +10 -0
  533. package/templates/hosts/trae/agents/wiki-compiler.md +10 -0
  534. package/templates/hosts/trae/commands/wf-deploy.md +8 -0
  535. package/templates/hosts/trae/commands/wf-maintain.md +8 -0
  536. package/templates/hosts/trae/commands/wf-new-task.md +8 -0
  537. package/templates/hosts/trae/commands/wf-pipeline-run.md +8 -0
  538. package/templates/hosts/trae/commands/wf-pr-review.md +8 -0
  539. package/templates/hosts/trae/commands/wf-review.md +8 -0
  540. package/templates/hosts/trae/commands/wf-stages.md +8 -0
  541. package/templates/hosts/trae/hooks.json +17 -0
  542. package/templates/hosts/trae/rules/backend-scope.md +5 -0
  543. package/templates/hosts/trae/rules/frontend-scope.md +5 -0
  544. package/templates/hosts/zcode/agents/implementer.md +8 -0
  545. package/templates/hosts/zcode/agents/independent-reviewer.md +8 -0
  546. package/templates/hosts/zcode/agents/ui-verifier.md +8 -0
  547. package/templates/hosts/zcode/agents/wiki-compiler.md +8 -0
  548. package/templates/hosts/zcode/config.json +31 -0
  549. package/templates/hosts/zcode/workflows/code-review.dwf.ts +428 -0
  550. package/templates/hosts/zcode/workflows/fullchain-flow-test.dwf.ts +898 -0
  551. package/templates/profiles/dotnet/.agents/config/lane-surfaces.txt +33 -0
  552. package/templates/profiles/dotnet/.agents/config/rule-budgets.txt +84 -0
  553. package/templates/profiles/dotnet/.agents/config/test-impact-map.json +590 -0
  554. package/templates/profiles/dotnet/.agents/config/workflow-modules.txt +18 -0
  555. package/templates/profiles/dotnet/.agents/hooks/commit-check.config.json +18 -0
  556. package/templates/profiles/dotnet/.agents/hooks/delete-guard-allowlist.txt +28 -0
  557. package/templates/profiles/dotnet/.agents/notes/runtime-env.md +178 -0
  558. package/templates/profiles/dotnet/AGENTS.md +52 -0
  559. package/templates/profiles/empty/.agents/config/lane-surfaces.txt +12 -0
  560. package/templates/profiles/empty/.agents/config/rule-budgets.txt +3 -0
  561. package/templates/profiles/empty/.agents/config/test-impact-map.json +8 -0
  562. package/templates/profiles/empty/.agents/config/workflow-modules.txt +2 -0
  563. package/templates/profiles/empty/.agents/hooks/commit-check.config.json +5 -0
  564. package/templates/profiles/empty/.agents/hooks/delete-guard-allowlist.txt +2 -0
  565. package/templates/profiles/empty/.agents/notes/runtime-env.md +44 -0
  566. package/templates/profiles/empty/AGENTS.md +52 -0
  567. package/templates/profiles/node/.agents/config/lane-surfaces.txt +12 -0
  568. package/templates/profiles/node/.agents/config/rule-budgets.txt +3 -0
  569. package/templates/profiles/node/.agents/config/test-impact-map.json +8 -0
  570. package/templates/profiles/node/.agents/config/workflow-modules.txt +2 -0
  571. package/templates/profiles/node/.agents/hooks/commit-check.config.json +5 -0
  572. package/templates/profiles/node/.agents/hooks/delete-guard-allowlist.txt +2 -0
  573. package/templates/profiles/node/.agents/notes/runtime-env.md +44 -0
  574. package/templates/profiles/node/AGENTS.md +52 -0
  575. package/templates/scaffold/wiki/INDEX.md +33 -0
  576. package/templates/scaffold/wiki/drafts-archive/README.md +7 -0
  577. package/templates/scaffold/wiki//344/272/247/345/223/201/351/234/200/346/261/202/.gitkeep +0 -0
  578. package/templates/scaffold/wiki//345/274/200/345/217/221/346/226/271/346/241/210/.gitkeep +0 -0
  579. package/templates/scaffold/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  580. package/templates/scaffold/wiki//346/265/213/350/257/225/346/212/245/345/221/212/.gitkeep +0 -0
  581. package/templates/scaffold/wiki//347/224/250/346/210/267/345/212/237/350/203/275/.gitkeep +0 -0
  582. 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
  583. package/templates/scaffold/wiki//351/241/271/347/233/256/350/247/204/350/214/203/.gitkeep +0 -0
  584. package/templates/scaffold/workflow/INDEX.md +13 -0
  585. package/templates/scaffold/workflow/README.md +67 -0
  586. package/templates/scaffold/workflow/archive/README.md +3 -0
  587. package/templates/scaffold/workflow/delegations.d/.gitkeep +0 -0
  588. package/templates/scaffold/workflow/delegations.md +4 -0
  589. package/templates/scaffold/workflow/effective-policy.md +4 -0
  590. package/templates/scaffold/workflow/evidence/.gitkeep +0 -0
  591. package/templates/scaffold/workflow/gate-cost.md +4 -0
  592. package/templates/scaffold/workflow/gate-metrics.d/.gitkeep +0 -0
  593. package/templates/scaffold/workflow/incidents/_TEMPLATE.md +49 -0
  594. package/templates/scaffold/workflow/intents/_TEMPLATE.md +43 -0
  595. package/templates/scaffold/workflow/metrics.md +4 -0
  596. package/templates/scaffold/workflow/papercuts.d/.gitkeep +0 -0
  597. package/templates/scaffold/workflow/papercuts.md +3 -0
  598. package/templates/scaffold/workflow/plans/_TEMPLATE.md +47 -0
  599. package/templates/scaffold/workflow/regression-checklist.d/.gitkeep +0 -0
  600. package/templates/scaffold/workflow/regression-checklist.md +3 -0
  601. package/templates/scaffold/workflow/research/.gitkeep +0 -0
  602. package/templates/scaffold/workflow/reviews.d/.gitkeep +0 -0
  603. package/templates/scaffold/workflow/specs/_TEMPLATE.md +87 -0
  604. package/templates/scaffold/workflow/verify-evidence/.gitkeep +0 -0
  605. package/templates/scaffold/workflow/verify-evidence.md +4 -0
  606. package/LICENSE +0 -21
  607. package/modules/gates/README.md +0 -25
  608. package/modules/gates/dotnet-ca/README.md +0 -24
  609. package/modules/gates/dotnet-ca/check-architecture.sh +0 -150
  610. package/modules/gates/dotnet-ca/local-pre-commit.line +0 -1
  611. package/modules/gates/generated-readonly/README.md +0 -13
  612. package/modules/gates/generated-readonly/check-generated.mjs +0 -61
  613. package/modules/gates/generated-readonly/local-pre-commit.line +0 -1
  614. package/modules/gates/node-layer/README.md +0 -9
  615. package/modules/gates/node-layer/check-node-layer.mjs +0 -29
  616. package/modules/gates/node-layer/local-pre-commit.line +0 -1
  617. package/modules/gates/py-import/README.md +0 -9
  618. package/modules/gates/py-import/check-py-import.mjs +0 -30
  619. package/modules/gates/py-import/local-pre-commit.line +0 -1
  620. package/modules/gates/test-protect/README.md +0 -23
  621. package/modules/gates/test-protect/check-test-protect.mjs +0 -64
  622. package/modules/gates/test-protect/local-pre-commit.line +0 -1
  623. package/modules/hosts/README.md +0 -57
  624. package/modules/hosts/claude/agents/implementer.md +0 -51
  625. package/modules/hosts/claude/agents/independent-reviewer.md +0 -49
  626. package/modules/hosts/claude/agents/ui-verifier.md +0 -48
  627. package/modules/hosts/claude/commands/wf-build.md +0 -69
  628. package/modules/hosts/claude/commands/wf-deploy.md +0 -58
  629. package/modules/hosts/claude/commands/wf-design.md +0 -49
  630. package/modules/hosts/claude/commands/wf-gate-checklist.md +0 -77
  631. package/modules/hosts/claude/commands/wf-maintain.md +0 -76
  632. package/modules/hosts/claude/commands/wf-new-task.md +0 -102
  633. package/modules/hosts/claude/commands/wf-pipeline-run.md +0 -35
  634. package/modules/hosts/claude/commands/wf-plan.md +0 -40
  635. package/modules/hosts/claude/commands/wf-review.md +0 -49
  636. package/modules/hosts/claude/commands/wf-sync-hosts.md +0 -64
  637. package/modules/hosts/claude/commands/wf-test.md +0 -68
  638. package/modules/hosts/codex/agents/implementer.md +0 -51
  639. package/modules/hosts/codex/agents/independent-reviewer.md +0 -49
  640. package/modules/hosts/codex/agents/ui-verifier.md +0 -48
  641. package/modules/hosts/codex/commands/wf-build.md +0 -69
  642. package/modules/hosts/codex/commands/wf-deploy.md +0 -58
  643. package/modules/hosts/codex/commands/wf-design.md +0 -49
  644. package/modules/hosts/codex/commands/wf-gate-checklist.md +0 -77
  645. package/modules/hosts/codex/commands/wf-maintain.md +0 -76
  646. package/modules/hosts/codex/commands/wf-new-task.md +0 -102
  647. package/modules/hosts/codex/commands/wf-pipeline-run.md +0 -35
  648. package/modules/hosts/codex/commands/wf-plan.md +0 -40
  649. package/modules/hosts/codex/commands/wf-review.md +0 -49
  650. package/modules/hosts/codex/commands/wf-sync-hosts.md +0 -64
  651. package/modules/hosts/codex/commands/wf-test.md +0 -68
  652. package/modules/hosts/codex/skills/flow-kit/SKILL.md +0 -14
  653. package/modules/hosts/cursor/agents/implementer.md +0 -51
  654. package/modules/hosts/cursor/agents/independent-reviewer.md +0 -49
  655. package/modules/hosts/cursor/agents/ui-verifier.md +0 -48
  656. package/modules/hosts/cursor/commands/wf-build.md +0 -69
  657. package/modules/hosts/cursor/commands/wf-deploy.md +0 -58
  658. package/modules/hosts/cursor/commands/wf-design.md +0 -49
  659. package/modules/hosts/cursor/commands/wf-gate-checklist.md +0 -77
  660. package/modules/hosts/cursor/commands/wf-maintain.md +0 -76
  661. package/modules/hosts/cursor/commands/wf-new-task.md +0 -102
  662. package/modules/hosts/cursor/commands/wf-pipeline-run.md +0 -35
  663. package/modules/hosts/cursor/commands/wf-plan.md +0 -40
  664. package/modules/hosts/cursor/commands/wf-review.md +0 -49
  665. package/modules/hosts/cursor/commands/wf-sync-hosts.md +0 -64
  666. package/modules/hosts/cursor/commands/wf-test.md +0 -68
  667. package/modules/hosts/omp/agents/implementer.md +0 -52
  668. package/modules/hosts/omp/agents/independent-reviewer.md +0 -50
  669. package/modules/hosts/omp/agents/ui-verifier.md +0 -49
  670. package/modules/hosts/opencode/agents/implementer.md +0 -59
  671. package/modules/hosts/opencode/agents/independent-reviewer.md +0 -53
  672. package/modules/hosts/opencode/agents/ui-verifier.md +0 -52
  673. package/modules/hosts/opencode/commands/wf-build.md +0 -69
  674. package/modules/hosts/opencode/commands/wf-deploy.md +0 -58
  675. package/modules/hosts/opencode/commands/wf-design.md +0 -49
  676. package/modules/hosts/opencode/commands/wf-gate-checklist.md +0 -77
  677. package/modules/hosts/opencode/commands/wf-maintain.md +0 -76
  678. package/modules/hosts/opencode/commands/wf-new-task.md +0 -102
  679. package/modules/hosts/opencode/commands/wf-pipeline-run.md +0 -35
  680. package/modules/hosts/opencode/commands/wf-plan.md +0 -40
  681. package/modules/hosts/opencode/commands/wf-review.md +0 -49
  682. package/modules/hosts/opencode/commands/wf-sync-hosts.md +0 -64
  683. package/modules/hosts/opencode/commands/wf-test.md +0 -68
  684. package/modules/hosts/trae/agents/implementer.md +0 -52
  685. package/modules/hosts/trae/agents/independent-reviewer.md +0 -51
  686. package/modules/hosts/trae/agents/ui-verifier.md +0 -50
  687. package/modules/hosts/trae/commands/wf-build.md +0 -70
  688. package/modules/hosts/trae/commands/wf-deploy.md +0 -59
  689. package/modules/hosts/trae/commands/wf-design.md +0 -50
  690. package/modules/hosts/trae/commands/wf-gate-checklist.md +0 -78
  691. package/modules/hosts/trae/commands/wf-maintain.md +0 -77
  692. package/modules/hosts/trae/commands/wf-new-task.md +0 -103
  693. package/modules/hosts/trae/commands/wf-pipeline-run.md +0 -36
  694. package/modules/hosts/trae/commands/wf-plan.md +0 -41
  695. package/modules/hosts/trae/commands/wf-review.md +0 -50
  696. package/modules/hosts/trae/commands/wf-sync-hosts.md +0 -65
  697. package/modules/hosts/trae/commands/wf-test.md +0 -69
  698. package/modules/hosts/trae/hooks/post-edit-check.cjs +0 -98
  699. package/modules/hosts/trae/hooks/pre-shell-check.cjs +0 -192
  700. package/modules/hosts/trae/hooks/resolve-shell.cjs +0 -30
  701. package/modules/hosts/trae/hooks.json +0 -29
  702. package/modules/hosts/trae/rules/beautify-input-chinese.md +0 -6
  703. package/modules/hosts/trae/rules/git-commit-message.md +0 -10
  704. package/modules/hosts/trae/rules/project-workflow.md +0 -14
  705. package/modules/hosts/zcode/agents/implementer.md +0 -51
  706. package/modules/hosts/zcode/agents/independent-reviewer.md +0 -49
  707. package/modules/hosts/zcode/agents/ui-verifier.md +0 -48
  708. package/src/add-gate.mjs +0 -116
  709. package/src/add-gate.test.mjs +0 -103
  710. package/src/add-host.mjs +0 -68
  711. package/src/cli.mjs +0 -169
  712. package/src/doctor.mjs +0 -629
  713. package/src/executor.mjs +0 -262
  714. package/src/executor.test.mjs +0 -295
  715. package/src/fresh-init.test.mjs +0 -64
  716. package/src/gate-dotnet-ca.test.mjs +0 -124
  717. package/src/gates.test.mjs +0 -143
  718. package/src/init.mjs +0 -382
  719. package/src/init.test.mjs +0 -163
  720. package/src/instance-ref.test.mjs +0 -62
  721. package/src/jscpd-drift.test.mjs +0 -144
  722. package/src/pack.test.mjs +0 -24
  723. package/src/profiles.mjs +0 -183
  724. package/src/render.mjs +0 -132
  725. package/src/rule-budget.test.mjs +0 -103
  726. package/src/run-tests.mjs +0 -56
  727. package/src/stack-profile.test.mjs +0 -95
  728. package/src/sync-hosts.mjs +0 -257
  729. package/src/sync-hosts.test.mjs +0 -291
  730. package/src/sync.mjs +0 -228
  731. package/src/sync.test.mjs +0 -452
  732. package/src/trae-hooks.test.mjs +0 -127
  733. package/src/validate.mjs +0 -77
  734. package/src/validate.test.mjs +0 -95
  735. package/templates/.gitattributes +0 -17
  736. package/templates/AGENTS.md +0 -57
  737. package/templates/_agents/board/index.html +0 -676
  738. package/templates/_agents/commands/build.md +0 -84
  739. package/templates/_agents/commands/deploy.md +0 -66
  740. package/templates/_agents/commands/design.md +0 -63
  741. package/templates/_agents/commands/gate-checklist.md +0 -91
  742. package/templates/_agents/commands/maintain.md +0 -90
  743. package/templates/_agents/commands/new-task.md +0 -110
  744. package/templates/_agents/commands/pipeline-run.md +0 -43
  745. package/templates/_agents/commands/plan.md +0 -48
  746. package/templates/_agents/commands/review.md +0 -62
  747. package/templates/_agents/commands/sync-hosts.md +0 -77
  748. package/templates/_agents/commands/test.md +0 -87
  749. package/templates/_agents/control-surfaces.txt +0 -53
  750. package/templates/_agents/engine-lock.json +0 -342
  751. package/templates/_agents/hooks/check-index-incremental.mjs +0 -48
  752. package/templates/_agents/hooks/check-pairing-incremental.mjs +0 -66
  753. package/templates/_agents/hooks/check-wiki-ledger.mjs +0 -30
  754. package/templates/_agents/hooks/commit-check.cjs +0 -193
  755. package/templates/_agents/hooks/local-pre-commit +0 -6
  756. package/templates/_agents/lane-surfaces.txt +0 -17
  757. package/templates/_agents/level-hints.txt +0 -30
  758. package/templates/_agents/loop/papercut-debt/DESIGN.md +0 -112
  759. package/templates/_agents/mechanism-registry.md +0 -27
  760. package/templates/_agents/metric-claims.txt +0 -81
  761. package/templates/_agents/notes/engine-internals.md +0 -17
  762. package/templates/_agents/notes/runtime-env.md +0 -18
  763. package/templates/_agents/roles/implementer.md +0 -47
  764. package/templates/_agents/roles/independent-reviewer.md +0 -45
  765. package/templates/_agents/roles/ui-verifier.md +0 -44
  766. package/templates/_agents/rule-budgets.txt +0 -18
  767. package/templates/_agents/scripts/agg-delegations.cjs +0 -302
  768. package/templates/_agents/scripts/agg-delegations.test.mjs +0 -282
  769. package/templates/_agents/scripts/agg-gate-stats.mjs +0 -113
  770. package/templates/_agents/scripts/agg-gate-stats.test.mjs +0 -95
  771. package/templates/_agents/scripts/agg-judgments.mjs +0 -156
  772. package/templates/_agents/scripts/agg-judgments.test.mjs +0 -93
  773. package/templates/_agents/scripts/archive-sweep.mjs +0 -235
  774. package/templates/_agents/scripts/archive-sweep.test.mjs +0 -129
  775. package/templates/_agents/scripts/check-attribution.mjs +0 -37
  776. package/templates/_agents/scripts/check-convergence.mjs +0 -124
  777. package/templates/_agents/scripts/check-engine-integrity.mjs +0 -220
  778. package/templates/_agents/scripts/check-engine-integrity.test.mjs +0 -215
  779. package/templates/_agents/scripts/check-funnel.mjs +0 -56
  780. package/templates/_agents/scripts/check-hygiene.mjs +0 -167
  781. package/templates/_agents/scripts/check-hygiene.test.mjs +0 -182
  782. package/templates/_agents/scripts/check-index-incremental.test.mjs +0 -73
  783. package/templates/_agents/scripts/check-lane-surface.mjs +0 -238
  784. package/templates/_agents/scripts/check-lane-surface.test.mjs +0 -302
  785. package/templates/_agents/scripts/check-ledger-invariant.mjs +0 -527
  786. package/templates/_agents/scripts/check-ledger-invariant.test.mjs +0 -639
  787. package/templates/_agents/scripts/check-loop-rev.test.mjs +0 -336
  788. package/templates/_agents/scripts/check-loop-unit.test.mjs +0 -103
  789. package/templates/_agents/scripts/check-loop.mjs +0 -1958
  790. package/templates/_agents/scripts/check-loop.sh +0 -6
  791. package/templates/_agents/scripts/check-loop.test.mjs +0 -3875
  792. package/templates/_agents/scripts/check-metric-claims.mjs +0 -277
  793. package/templates/_agents/scripts/check-prejudgment.mjs +0 -64
  794. package/templates/_agents/scripts/check-registry.mjs +0 -45
  795. package/templates/_agents/scripts/check-scope.mjs +0 -96
  796. package/templates/_agents/scripts/check-scope.test.mjs +0 -96
  797. package/templates/_agents/scripts/check-scripts-syntax.mjs +0 -61
  798. package/templates/_agents/scripts/check-scripts-syntax.test.mjs +0 -72
  799. package/templates/_agents/scripts/check-spec-verif.mjs +0 -47
  800. package/templates/_agents/scripts/check-stage-index.mjs +0 -40
  801. package/templates/_agents/scripts/check-stage-index.test.mjs +0 -77
  802. package/templates/_agents/scripts/closeout-l1.mjs +0 -217
  803. package/templates/_agents/scripts/closeout-l1.test.mjs +0 -105
  804. package/templates/_agents/scripts/commit-check-trigger.test.mjs +0 -205
  805. package/templates/_agents/scripts/compact-ledgers.mjs +0 -97
  806. package/templates/_agents/scripts/compact-ledgers.test.mjs +0 -162
  807. package/templates/_agents/scripts/confirm-doc.mjs +0 -603
  808. package/templates/_agents/scripts/confirm-doc.test.mjs +0 -1103
  809. package/templates/_agents/scripts/doctor.test.mjs +0 -770
  810. package/templates/_agents/scripts/draft-sediment.mjs +0 -178
  811. package/templates/_agents/scripts/draft-sediment.test.mjs +0 -272
  812. package/templates/_agents/scripts/edit-face-check.mjs +0 -109
  813. package/templates/_agents/scripts/edit-face-check.test.mjs +0 -99
  814. package/templates/_agents/scripts/ensure-board.mjs +0 -185
  815. package/templates/_agents/scripts/fill-intent.mjs +0 -91
  816. package/templates/_agents/scripts/fill-intent.test.mjs +0 -113
  817. package/templates/_agents/scripts/fill-plan.mjs +0 -79
  818. package/templates/_agents/scripts/fill-plan.test.mjs +0 -224
  819. package/templates/_agents/scripts/fill-spec.mjs +0 -70
  820. package/templates/_agents/scripts/fill-spec.test.mjs +0 -266
  821. package/templates/_agents/scripts/fixture-scripts.mjs +0 -153
  822. package/templates/_agents/scripts/fixture-scripts.test.mjs +0 -112
  823. package/templates/_agents/scripts/gate-checklist.mjs +0 -209
  824. package/templates/_agents/scripts/gate-checklist.test.mjs +0 -201
  825. package/templates/_agents/scripts/gate-seg.mjs +0 -54
  826. package/templates/_agents/scripts/gate-seg.test.mjs +0 -112
  827. package/templates/_agents/scripts/gen-effective-policy.mjs +0 -107
  828. package/templates/_agents/scripts/gen-effective-policy.test.mjs +0 -100
  829. package/templates/_agents/scripts/gen-verify-evidence.mjs +0 -107
  830. package/templates/_agents/scripts/gen-verify-evidence.test.mjs +0 -84
  831. package/templates/_agents/scripts/gen-wiki-board.mjs +0 -276
  832. package/templates/_agents/scripts/gen-wiki-board.test.mjs +0 -249
  833. package/templates/_agents/scripts/gen-workflow-dashboard.mjs +0 -251
  834. package/templates/_agents/scripts/gen-workflow-dashboard.test.mjs +0 -188
  835. package/templates/_agents/scripts/gen-workflow-index.mjs +0 -201
  836. package/templates/_agents/scripts/gen-workflow-index.test.mjs +0 -152
  837. package/templates/_agents/scripts/gen-workflow-metrics.mjs +0 -334
  838. package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +0 -224
  839. package/templates/_agents/scripts/git-merge-jsonl.mjs +0 -63
  840. package/templates/_agents/scripts/git-merge-jsonl.test.mjs +0 -125
  841. package/templates/_agents/scripts/judgment-ledger.mjs +0 -65
  842. package/templates/_agents/scripts/judgment-ledger.test.mjs +0 -129
  843. package/templates/_agents/scripts/kb-cache-evict.mjs +0 -50
  844. package/templates/_agents/scripts/kb-cache-evict.test.mjs +0 -104
  845. package/templates/_agents/scripts/kb-search.mjs +0 -413
  846. package/templates/_agents/scripts/kb-search.test.mjs +0 -299
  847. package/templates/_agents/scripts/lane-surface-audit.mjs +0 -143
  848. package/templates/_agents/scripts/lane-surface-audit.test.mjs +0 -93
  849. package/templates/_agents/scripts/ledger-doc-chain.test.mjs +0 -166
  850. package/templates/_agents/scripts/ledger-loader.mjs +0 -108
  851. package/templates/_agents/scripts/ledger-loader.test.mjs +0 -131
  852. package/templates/_agents/scripts/ledger-prune.mjs +0 -96
  853. package/templates/_agents/scripts/ledger-prune.test.mjs +0 -120
  854. package/templates/_agents/scripts/ledger-shards.mjs +0 -344
  855. package/templates/_agents/scripts/ledger-shards.test.mjs +0 -356
  856. package/templates/_agents/scripts/ledger-ts-monotonic.test.mjs +0 -135
  857. package/templates/_agents/scripts/level-criteria.mjs +0 -231
  858. package/templates/_agents/scripts/level-criteria.test.mjs +0 -281
  859. package/templates/_agents/scripts/mechanism-retire-watch.mjs +0 -183
  860. package/templates/_agents/scripts/mechanism-retire-watch.test.mjs +0 -114
  861. package/templates/_agents/scripts/papercut-debt-controller.mjs +0 -141
  862. package/templates/_agents/scripts/papercut-debt-controller.test.mjs +0 -127
  863. package/templates/_agents/scripts/papercut-debt-sensor.mjs +0 -170
  864. package/templates/_agents/scripts/papercut-debt-sensor.test.mjs +0 -146
  865. package/templates/_agents/scripts/pipeline-run-docs.mjs +0 -76
  866. package/templates/_agents/scripts/pipeline-run-run.mjs +0 -63
  867. package/templates/_agents/scripts/pipeline-run.mjs +0 -867
  868. package/templates/_agents/scripts/pipeline-run.test.mjs +0 -517
  869. package/templates/_agents/scripts/policy.mjs +0 -281
  870. package/templates/_agents/scripts/pre-push.test.mjs +0 -105
  871. package/templates/_agents/scripts/resolve-merge-conflicts.mjs +0 -110
  872. package/templates/_agents/scripts/resolve-merge-conflicts.test.mjs +0 -87
  873. package/templates/_agents/scripts/rewrite-file.mjs +0 -133
  874. package/templates/_agents/scripts/rewrite-file.test.mjs +0 -148
  875. package/templates/_agents/scripts/rule-budget.mjs +0 -96
  876. package/templates/_agents/scripts/rule-budget.test.mjs +0 -118
  877. package/templates/_agents/scripts/run-tests.mjs +0 -99
  878. package/templates/_agents/scripts/run-tests.test.mjs +0 -105
  879. package/templates/_agents/scripts/solidify-task.mjs +0 -107
  880. package/templates/_agents/scripts/solidify-task.test.mjs +0 -129
  881. package/templates/_agents/scripts/stage-gates.mjs +0 -343
  882. package/templates/_agents/scripts/stage-gates.test.mjs +0 -105
  883. package/templates/_agents/scripts/trust-mode.mjs +0 -67
  884. package/templates/_agents/scripts/trust-mode.test.mjs +0 -110
  885. package/templates/_agents/scripts/verify-wiki-consistency.mjs +0 -253
  886. package/templates/_agents/scripts/verify-wiki-consistency.test.mjs +0 -123
  887. package/templates/_agents/scripts/verify.mjs +0 -210
  888. package/templates/_agents/scripts/verify.test.mjs +0 -358
  889. package/templates/_agents/scripts/wf-journal.mjs +0 -231
  890. package/templates/_agents/scripts/wf-journal.test.mjs +0 -216
  891. package/templates/_agents/scripts/wiki-search.mjs +0 -19
  892. package/templates/_agents/scripts/wiki-search.test.mjs +0 -57
  893. package/templates/_agents/scripts/workflow-board-server.mjs +0 -393
  894. package/templates/_agents/scripts/workflow-board-server.test.mjs +0 -201
  895. package/templates/_agents/scripts/workflow-enums.mjs +0 -70
  896. package/templates/_agents/scripts/workflow-enums.test.mjs +0 -118
  897. package/templates/_agents/scripts/workflows-check.mjs +0 -260
  898. package/templates/_agents/scripts/workflows-check.test.mjs +0 -278
  899. package/templates/_agents/scripts-test-exempt.txt +0 -16
  900. package/templates/_agents/skills/papercut-fix/SKILL.md +0 -60
  901. package/templates/_agents/skills/papercut-fix/references/response-template.md +0 -81
  902. package/templates/_agents/skills/review-method/SKILL.md +0 -55
  903. package/templates/_agents/skills/verify-ui/SKILL.md +0 -61
  904. package/templates/_agents/skills/wiki/SKILL.md +0 -106
  905. package/templates/_agents/workflow-enums.txt +0 -26
  906. package/templates/_agents/workflow-modules.txt +0 -11
  907. package/templates/_agents/workflows/_TEMPLATE.md +0 -75
  908. package/templates/_agents/workflows/pipeline-closing.md +0 -28
  909. 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
  910. package/templates/_githooks/commit-msg +0 -17
  911. package/templates/_githooks/post-commit +0 -10
  912. package/templates/_githooks/pre-commit +0 -126
  913. package/templates/_githooks/pre-merge-commit +0 -29
  914. package/templates/_githooks/pre-push +0 -136
  915. package/templates/_github/workflows/kit-ci.yml +0 -49
  916. package/templates/wiki/INDEX.md +0 -73
  917. package/templates/wiki/drafts-archive/README.md +0 -3
  918. package/templates/wiki//344/272/247/345/223/201/351/234/200/346/261/202/README.md +0 -3
  919. package/templates/wiki//345/274/200/345/217/221/346/226/271/346/241/210/README.md +0 -3
  920. package/templates/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +0 -3
  921. package/templates/wiki//346/265/213/350/257/225/346/212/245/345/221/212/README.md +0 -3
  922. package/templates/wiki//347/224/250/346/210/267/345/212/237/350/203/275/README.md +0 -3
  923. package/templates/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +0 -77
  924. package/templates/wiki//351/241/271/347/233/256/350/247/204/350/214/203/README.md +0 -3
  925. package/templates/wiki//351/241/271/347/233/256/350/256/241/345/210/222/README.md +0 -3
  926. package/templates/workflow/README.md +0 -90
  927. package/templates/workflow/delegations.md +0 -29
  928. package/templates/workflow/incidents/_TEMPLATE.md +0 -51
  929. package/templates/workflow/intents/_TEMPLATE.md +0 -46
  930. package/templates/workflow/papercuts.md +0 -9
  931. package/templates/workflow/plans/_TEMPLATE.md +0 -47
  932. package/templates/workflow/regression-checklist.md +0 -23
  933. package/templates/workflow/specs/_TEMPLATE.md +0 -80
  934. /package/templates/{_agents → engine/.agents}/board/marked.min.js +0 -0
  935. /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
  936. /package/templates/{_agents → engine/.agents}/scripts/git-core.mjs +0 -0
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env node
2
- // workflow/INDEX.md 漂移(增量硬拦,2026-10-12,Shipyard.Material 参考实现回灌)。
3
- // 检查 11 只在 check-loop --hygiene 里 WARN。关单提交不跑卫生段,索引会继续把已 closed/done 的文档列成在跑。
4
- // 本脚本:暂存触及 workflow 四目录、归档或 INDEX.md 时,跑生成器 --check;不一致即拒提交。
5
- // 未触及这些路径则跳过(引擎面提交不因陈旧索引被拦)。修复:node .agents/scripts/gen-workflow-index.mjs 后把 INDEX.md 一并暂存。
6
- import { spawnSync } from 'node:child_process';
7
- import path from 'node:path';
8
- import process from 'node:process';
9
- import { fileURLToPath, pathToFileURL } from 'node:url';
10
-
11
- const INDEX_SRC = /^(?:workflow\/(?:intents|specs|plans|incidents|archive)\/.+\.md|workflow\/INDEX\.md)$/;
12
-
13
- export function stagedTouchesIndex(files) {
14
- return files.some((f) => INDEX_SRC.test(String(f).replace(/\\/g, '/')));
15
- }
16
-
17
- function main() {
18
- const git = (args) => {
19
- const r = spawnSync('git', args, { encoding: 'utf8' });
20
- return { ok: !r.error && r.status === 0, out: (r.stdout || '').replace(/\r/g, '') };
21
- };
22
- const root = git(['rev-parse', '--show-toplevel']);
23
- if (!root.ok || !root.out.trim()) {
24
- console.error('索引漂移(增量): 无法定位仓库根,提交已阻止');
25
- process.exit(1);
26
- }
27
- const top = root.out.trim();
28
- process.chdir(top);
29
- const touched = git(['-c', 'core.quotepath=off', 'diff', '--cached', '--name-only']);
30
- if (!touched.ok) {
31
- console.error('索引漂移(增量): 读暂存列表失败,提交已阻止');
32
- process.exit(1);
33
- }
34
- const files = touched.out.split('\n').filter(Boolean);
35
- if (!stagedTouchesIndex(files)) process.exit(0);
36
-
37
- const gen = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'scripts', 'gen-workflow-index.mjs');
38
- const r = spawnSync(process.execPath, [gen, '--check'], { cwd: top, stdio: 'inherit' });
39
- if (r.status !== 0) {
40
- console.error('索引漂移(增量)— BLOCK:');
41
- console.error(' 先跑 node .agents/scripts/gen-workflow-index.mjs,把 workflow/INDEX.md 一并暂存,再提交');
42
- process.exit(r.status === null ? 1 : r.status);
43
- }
44
- process.exit(0);
45
- }
46
-
47
- const isMain = process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href;
48
- if (isMain) main();
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env node
2
- // 闭环配对(增量版):本次暂存的 intents/ incidents/ 入口文档必须已有同名 plan(L2/L3 另须同名 spec)
3
- // 目的:把 check-loop「配对断裂」hard-block 的发现时机从 pre-push 提前到 commit
4
- // (papercut 2026-09-15:maintain.md 只写「incident≡intent 免另立 intent」,未把配 plan 写成显式步骤,
5
- // 按文档字面执行三次 commit 全绿、push 才爆红,只能后补;
6
- // 2026-09-27 audit-gate-hardening 补齐 spec 档——此前只查 plan,L2/L3 缺 spec 仍要拖到 push 才爆红)
7
- // 口径与 check-loop 检查 1 同款分档:入口文档(intents/ incidents/ 直下 .md)↔ workflow/plans/ 同名,
8
- // L2/L3 级别另须 workflow/specs/ 同名;同 commit 携带 plan/spec 合法(检查的是工作区文件存在,staged 新建同样命中)。
9
- // 自 sh 版移植 node(2026-10-08 门禁去 sh 化第二批;2026-10-13 自 Shipyard.Material 参考实现回灌)——语义逐条对齐。
10
- // 已知边界(沿 sh 版):legacy 豁免与级别读取均基于工作区文件而非暂存 blob——add 后又改工作区时
11
- // 可能误豁免/误拦(逐文件取 blob 的 fork 成本大于收益,接受)。
12
- // git 调用带 `-c core.quotepath=off`:quotepath 默认 true 时非 ASCII 路径被引号转义,
13
- // workflow/ 前缀匹配失配 → 门禁静默跳过(2026-09-27 gate-coverage 教训)。
14
- import { spawnSync } from 'node:child_process';
15
- import fs from 'node:fs';
16
- import path from 'node:path';
17
- import process from 'node:process';
18
-
19
- const git = (args) => {
20
- const r = spawnSync('git', args, { encoding: 'utf8' });
21
- return { ok: !r.error && r.status === 0, out: (r.stdout || '').trim() };
22
- };
23
- const root = git(['rev-parse', '--show-toplevel']);
24
- if (!root.ok) process.exit(1);
25
- process.chdir(root.out);
26
-
27
- const staged = git(['-c', 'core.quotepath=off', 'diff', '--cached', '--name-only', '--diff-filter=ACMR']);
28
- if (!staged.ok) process.exit(1);
29
- const entries = staged.out.split('\n').filter((f) => /^workflow\/(intents|incidents)\/[^/]+\.md$/.test(f) && !f.endsWith('_TEMPLATE.md'));
30
-
31
- let fail = 0;
32
- const block = (lines) => { console.log('闭环配对(增量)— BLOCK:'); for (const l of lines) console.log(' ' + l); fail = 1; };
33
-
34
- for (const f of entries) {
35
- // 闭环引擎启用前的回填件带「流程: legacy」豁免配对检查(与 check-loop 同口径)
36
- let legacy = false, lvl = '';
37
- try {
38
- for (const line of fs.readFileSync(f, 'utf8').split(/\r?\n/)) {
39
- if (line.startsWith('流程: legacy')) legacy = true;
40
- const m = /^级别:\s*(.*)$/.exec(line);
41
- if (m && lvl === '') lvl = m[1].trim();
42
- if (legacy && lvl !== '') break;
43
- }
44
- } catch { /* 读不到按未豁免处理(沿 sh 版 grep 失败即不豁免的语义) */ }
45
- if (legacy) continue;
46
- const base = path.basename(f, '.md');
47
- if (!fs.existsSync(path.join('workflow', 'plans', `${base}.md`))) {
48
- block([
49
- `入口缺同名 plan: ${f}(应在 workflow/plans/${base}.md)`,
50
- 'L1 用 fill-plan.mjs --level L1(入口/改动方案/约束与风险/验证计划/验收标准),不另立 intent',
51
- ]);
52
- }
53
- if (lvl === 'L2' || lvl === 'L3') {
54
- if (!fs.existsSync(path.join('workflow', 'specs', `${base}.md`))) {
55
- block([
56
- `入口缺同名 spec: ${f}(级别 ${lvl} 须三件套,应在 workflow/specs/${base}.md)`,
57
- '与 pre-push check-loop 检查 1 同口径——先起草 spec 走 design.md,再提交',
58
- ]);
59
- }
60
- }
61
- }
62
-
63
- if (fail !== 0) {
64
- console.error('pre-commit: 入口文档配对不全(plan / L2-L3 spec),提交已阻止(与 pre-push check-loop 同口径,发现时机提前到 commit)');
65
- }
66
- process.exit(fail);
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env node
2
- // wiki 台账一致性(增量版):本次暂存触及 wiki/ 时跑 verify 三方校验(磁盘 ↔ INDEX ↔ 看板 DATA)
3
- // 目的:给「登记动作」装触发点——verify 此前无任何钩子调用,只能靠「触及 wiki 时手跑」的文字纪律
4
- // (incident 2026-09-16-wiki-drift-and-verifier-gaps 认定的根因);本脚本把发现时机提前到 commit。
5
- // 口径与 .agents/scripts/verify-wiki-consistency.mjs 一致:活层新增/删除/移动未登记、数据维护批次目录未入台账即拦。
6
- // 自 sh 版移植 node(2026-10-08 门禁去 sh 化第二批;2026-10-13 自 Shipyard.Material 参考实现回灌)——语义逐条对齐。
7
- // 注意 git 调用带 `-c core.quotepath=off`:quotepath 默认 true 时中文路径被转义加引号,^wiki/ 前缀
8
- // 匹配失配 → 门禁静默跳过(2026-09-27 gate-coverage 教训)。
9
- import { spawnSync } from 'node:child_process';
10
- import path from 'node:path';
11
- import process from 'node:process';
12
-
13
- const git = (args) => {
14
- const r = spawnSync('git', args, { encoding: 'utf8' });
15
- return { ok: !r.error && r.status === 0, out: (r.stdout || '').trim() };
16
- };
17
- const root = git(['rev-parse', '--show-toplevel']);
18
- if (!root.ok) process.exit(1);
19
- process.chdir(root.out);
20
-
21
- const touched = git(['-c', 'core.quotepath=off', 'diff', '--cached', '--name-only']);
22
- if (!touched.ok || !touched.out.split('\n').some((f) => f.startsWith('wiki/'))) process.exit(0);
23
-
24
- const r = spawnSync(process.execPath, [path.join('.agents', 'scripts', 'verify-wiki-consistency.mjs')], { stdio: 'inherit' });
25
- if (r.status !== 0) {
26
- console.log('wiki 台账(增量)— BLOCK:');
27
- console.log(' 先跑 node .agents/scripts/gen-wiki-board.mjs 补 INDEX/看板(或补 wiki/数据维护/README.md 登记行),再原路重试提交');
28
- process.exit(1);
29
- }
30
- process.exit(0);
@@ -1,193 +0,0 @@
1
- // commit-check: git commit 前置验证(agentic-flow-kit 通用版)
2
- // 1) 敏感信息扫描(暂存区新增行含疑似密钥 -> BLOCK)
3
- // 2) 条件构建验证(按 .agents/hooks/commit-check.config.json 的 builds 配置;--full 不做 ext/prefix 裁剪,仍尊重 when)
4
- // 3) 质量检测(config.checks:lint / 类型检查 / vet 等秒级确定性检查;--full 不做 ext/prefix 裁剪,仍尊重 when)
5
- // 旗标(2026-10-16 构建门后移 pre-push,自源仓 2ff869a9 回灌):
6
- // --no-build:跳过段 2 条件构建——pre-commit 常规提交用(提交内环提速);构建在 pre-push 按推送范围
7
- // 执法,合并提交仍走 --full 全量构建(合并结果是没人验证过的新状态)。
8
- // --range <old> <new>:推送范围模式(pre-push 用)——文件面取 git diff --name-only old new;
9
- // old 为全零 sha(新分支首推)= 全量匹配语义(等价 --full 的构建面);段 1 敏感扫描跳过
10
- // (逐提交时刻 pre-commit 已扫,范围重扫无增量价值)。默认(无旗标)暂存区模式行为不变。
11
- // config 由 flow-kit init 按技术栈生成初值,项目可自行增改;缺失或无 builds/checks 时跳过对应段。
12
- // 配置示例(.agents/hooks/commit-check.config.json):
13
- // {
14
- // "knownPatterns": ["admin\\/123", "my-project-seed"], // 项目已知种子/代码标识符白名单(正则源,i 标志)
15
- // "builds": [
16
- // { "name": "backend", "command": "dotnet build", "ext": [".cs", ".sln", ".csproj"] },
17
- // { "name": "frontend", "command": "npm run build", "ext": [".ts", ".tsx", ".vue", ".js", ".jsx"],
18
- // "cwd": "frontend",
19
- // "lockPattern": "MSB3026|MSB3027", // 可选:命中时按 lockHint 提示(文件锁类「与代码无关」失败)
20
- // "lockHint": "构建被文件锁拦下——本地运行中的进程正占用产物,停进程后重试" },
21
- // { "name": "docs-site", "command": "npm run build", "prefix": "docs/", "cwd": "docs" } // prefix 可选:路径前缀触发
22
- // ],
23
- // "checks": [
24
- // { "name": "typecheck", "command": "npx tsc --noEmit", "ext": [".ts", ".tsx"], "when": ["tsconfig.json"] },
25
- // { "name": "lint", "command": "npx eslint .", "ext": [".ts", ".js"], "when": ["eslint.config.js", ".eslintrc.json"] }
26
- // ]
27
- // }
28
- // builds/checks 触发判定(对暂存文件,.agents/ 与 .githooks/ 自身变更不计):`ext 任一匹配 OR prefix 前缀命中`。
29
- // - 只有 ext:按扩展名全局触发(跨目录,适合语言型触发——仓库里该扩展名基本只属于该构建);
30
- // - 只有 prefix:该前缀下任何文件触发(目录型触发——如 monorepo 子包,仓库其他位置的相同扩展名不触发);
31
- // - 两者同配为 OR 并集而非 AND 交集——要「前缀内的特定扩展名」请只配 prefix(目录内文档变更多跑一次构建,方向安全)。
32
- // when(builds 与 checks 共用):数组任一满足才启用,无 when 字段 = 无条件启用。
33
- // - 路径或尾部 * 一层通配(如 "*.sln"):相对仓库根做存在性判断;
34
- // - pkg:<点分路径>(如 pkg:scripts.build):读该项 cwd(缺省仓库根)的 package.json,
35
- // 沿路径取值,非空字符串才算满足。
36
- // 没有对应配置的项目自动跳过并提示,不 fail-closed 误拦。--full 同样尊重 when。
37
- const { execSync } = require('child_process');
38
- const path = require('path');
39
- const fs = require('fs');
40
-
41
- process.chdir(path.resolve(__dirname, '../..'));
42
-
43
- function sh(cmd, cwd) {
44
- try {
45
- execSync(cmd, { stdio: 'pipe', encoding: 'utf8', cwd: cwd || undefined });
46
- return { ok: true, out: '' };
47
- } catch (e) {
48
- return { ok: false, out: String((e.stdout || '') + (e.stderr || '')) };
49
- }
50
- }
51
-
52
- // --- 模式旗标(2026-10-16 构建门后移 pre-push;sha 经 git 管道来仍做白名单校验——信任边界) ---
53
- const NO_BUILD = process.argv.includes('--no-build');
54
- const rangeIdx = process.argv.indexOf('--range');
55
- const RANGE = rangeIdx >= 0 ? process.argv.slice(rangeIdx + 1, rangeIdx + 3) : null;
56
- if (RANGE && (RANGE.length < 2 || !/^[0-9a-f]{4,40}$/i.test(RANGE[0]) || !/^[0-9a-f]{4,40}$/i.test(RANGE[1]))) {
57
- console.log(`BLOCK: --range 参数须为两个 git sha(现「${(RANGE || []).join(' ')}」)`);
58
- process.exit(1);
59
- }
60
- // 全零 old = 新分支首推:git diff 对全零 sha 无从执行,且本就取全量匹配语义——文件面置空即可
61
- const RANGE_ZERO_OLD = RANGE !== null && /^0+$/.test(RANGE[0]);
62
-
63
- let staged = [];
64
- try {
65
- const listCmd = !RANGE ? 'git diff --cached --name-only'
66
- : RANGE_ZERO_OLD ? null
67
- : `git diff --name-only ${RANGE[0]} ${RANGE[1]}`;
68
- staged = listCmd === null ? []
69
- : execSync(listCmd, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] })
70
- .split('\n').map(s => s.trim()).filter(Boolean);
71
- } catch (e) {
72
- console.log('BLOCK: 无法读取变更文件面(git diff 失败)');
73
- process.exit(1);
74
- }
75
-
76
- // --- 0) 项目配置(可选) ---
77
- let config = { knownPatterns: [], builds: [] };
78
- try {
79
- const raw = JSON.parse(fs.readFileSync('.agents/hooks/commit-check.config.json', 'utf8'));
80
- config = { ...config, ...raw };
81
- } catch (e) { /* 无配置 = 敏感扫描用基线白名单 + 跳过构建验证 */ }
82
-
83
- // --- 1) 敏感信息扫描:暂存区新增行是否含疑似密钥(只认带引号的字符串字面量;排除类型/空值关键字) ---
84
- const SECRET = /(password|passwd|pwd|secret|token|apikey|api[_ -]?key|connectionstring|server=|bearer)["']?\s*[:=]\s*["'](?!["']?(string|number|boolean|unknown|any|never|void|object|null|undefined|true|false)\b)[^"'\r\n]{6,}["']/i;
85
- // 判据/白名单自身的定义行长得就像密钥赋值,须自豁免
86
- const SELF = /const (SECRET|KNOWN) = \//i;
87
- // KNOWN:项目已知种子与代码标识符白名单(config.knownPatterns 注入;本文件基线为空——通用包不带项目种子)
88
- let KNOWN = null;
89
- if (Array.isArray(config.knownPatterns) && config.knownPatterns.length) {
90
- KNOWN = new RegExp(config.knownPatterns.join('|'), 'i');
91
- }
92
- let diffText = '';
93
- try {
94
- diffText = execSync('git diff --cached', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
95
- } catch (e) { /* 空暂存 */ }
96
- const added = diffText.split('\n').filter(l => l.startsWith('+') && !l.startsWith('+++'));
97
- const hits = added.filter(l => SECRET.test(l) && !(KNOWN && KNOWN.test(l)) && !SELF.test(l));
98
- if (hits.length) {
99
- console.log('BLOCK: 暂存区疑似包含敏感信息(密钥/连接串/令牌),请检查:\n' + hits.slice(0, 5).join('\n'));
100
- process.exit(1);
101
- }
102
- if (RANGE) console.log('SKIP: --range 模式跳过敏感扫描(逐提交时刻 pre-commit 已扫,2026-10-16 构建门后移)');
103
-
104
- // --- 2) 条件构建验证 ---
105
- // --full:合并提交(pre-merge-commit / 冲突解决后手动 commit)使用——合并结果是没人验证过的新状态,
106
- // 按 ext/prefix 裁剪可能漏掉需要重跑的一侧,故不做路径裁剪。when 仍生效:没有对应能力就不跑。
107
- // --range 全零 old sha(新分支首推)同取全量匹配语义。
108
- // 引擎自身文件(.agents/、.githooks/)不参与构建匹配——工作流引擎不是项目构建产物。
109
- const FULL = process.argv.includes('--full') || RANGE_ZERO_OLD;
110
- const stagedForBuild = staged.filter(f => !f.startsWith('.agents/') && !f.startsWith('.githooks/'));
111
-
112
- // whenSatisfied:任一谓词满足即启用。pkg: 读 cwd 下的 package.json;其余谓词相对仓库根。
113
- function whenItem(w, cwd) {
114
- if (typeof w === 'string' && w.startsWith('pkg:')) {
115
- const keys = w.slice(4).split('.').filter(Boolean);
116
- if (!keys.length) return false;
117
- const pkgPath = path.join(cwd || '.', 'package.json');
118
- let pkg;
119
- try { pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); } catch (e) { return false; }
120
- let cur = pkg;
121
- for (const k of keys) {
122
- if (cur == null || typeof cur !== 'object' || !Object.prototype.hasOwnProperty.call(cur, k)) return false;
123
- cur = cur[k];
124
- }
125
- return typeof cur === 'string' && cur.trim() !== '';
126
- }
127
- const star = String(w).indexOf('*');
128
- if (star < 0) return fs.existsSync(w);
129
- const suffix = w.slice(star + 1);
130
- const dir = path.dirname(w.slice(0, star)) || '.';
131
- try { return fs.readdirSync(dir).some((f) => f.endsWith(suffix)); } catch (e) { return false; }
132
- }
133
- function whenSatisfied(when, cwd) {
134
- if (!when) return true;
135
- const list = Array.isArray(when) ? when : [when];
136
- return list.some((w) => whenItem(w, cwd));
137
- }
138
- function skipWhen(kind, item) {
139
- const shown = Array.isArray(item.when) ? item.when.join(' / ') : item.when;
140
- console.log(`SKIP: ${item.name}(未找到 ${shown},跳过${kind}——配置好后自动启用)`);
141
- }
142
-
143
- if (NO_BUILD) {
144
- console.log('SKIP: --no-build(2026-10-16 构建门后移 pre-push——常规提交不再构建,推送时按范围执法)');
145
- } else {
146
- let consideredBuild = false;
147
- for (const b of (config.builds || [])) {
148
- if (!b || !b.command) continue;
149
- const exts = Array.isArray(b.ext) ? b.ext : [];
150
- const match = FULL || stagedForBuild.some(f => exts.some(e => f.endsWith(e)) || (b.prefix ? f.startsWith(b.prefix) : false));
151
- if (!match) continue;
152
- consideredBuild = true;
153
- if (!whenSatisfied(b.when, b.cwd)) { skipWhen('构建', b); continue; }
154
- const r = sh(b.command, b.cwd);
155
- if (!r.ok) {
156
- if (b.lockPattern && new RegExp(b.lockPattern).test(r.out)) {
157
- console.log(`BLOCK: ${b.name} 构建被文件锁拦下(与代码无关)。${b.lockHint || '停掉占用进程后原路重试'}\n` +
158
- '锁冲突行:\n' + r.out.split(/\r?\n/).filter(l => new RegExp(b.lockPattern).test(l)).slice(0, 3).join('\n'));
159
- } else {
160
- console.log(`BLOCK: ${b.name} 构建失败(${b.command})\n` + r.out.slice(0, 1500));
161
- }
162
- process.exit(1);
163
- }
164
- console.log(`OK: ${b.name} 构建通过(${b.command})`);
165
- }
166
- if (!consideredBuild) {
167
- console.log(config.builds && config.builds.length
168
- ? 'SKIP: 无匹配的源码变更,跳过构建验证'
169
- : 'SKIP: 未配置 builds(.agents/hooks/commit-check.config.json),跳过构建验证');
170
- }
171
- }
172
-
173
- // --- 3) 质量检测(checks:lint / 类型检查 / vet 等秒级确定性检查;测试不放这里——关单在 test.md 阶段门) ---
174
- let ranCheck = false;
175
- for (const c of (config.checks || [])) {
176
- if (!c || !c.command) continue;
177
- const exts = Array.isArray(c.ext) ? c.ext : [];
178
- const match = FULL || stagedForBuild.some(f => exts.some(e => f.endsWith(e)) || (c.prefix ? f.startsWith(c.prefix) : false));
179
- if (!match) continue;
180
- ranCheck = true;
181
- if (!whenSatisfied(c.when, c.cwd)) { skipWhen('质量检查', c); continue; }
182
- const r = sh(c.command, c.cwd);
183
- if (!r.ok) {
184
- console.log(`BLOCK: ${c.name} 质量检查未通过(${c.command})\n` + r.out.slice(0, 1200));
185
- process.exit(1);
186
- }
187
- console.log(`OK: ${c.name} 质量检查通过(${c.command})`);
188
- }
189
- if (!ranCheck && config.checks && config.checks.length) {
190
- console.log('SKIP: 无匹配的源码变更,跳过质量检测');
191
- }
192
-
193
- console.log('COMMIT_CHECK_OK');
@@ -1,6 +0,0 @@
1
- #!/bin/sh
2
- # 项目门禁挂载点(.githooks/pre-commit 在通用门禁之后执行本文件;返回非零即阻断提交)
3
- # 把项目专属门禁逐行加在这里;npx agentic-flow-kit add-gate <门禁> 会自动接线(手动示例:):
4
- # sh .agents/hooks/check-architecture.sh
5
- # set -e:任一门禁非零即中止本脚本(退出码透传给 pre-commit 阻断提交)——不要在末尾加 exit 0
6
- set -e
@@ -1,17 +0,0 @@
1
- # L2 触达面清单(单源:本文件——check-lane-surface.mjs 检查 A 共读,pre-commit「泳道完整性」门禁)
2
- # 格式:每行一条 ERE(grep -E 兼容),匹配暂存文件的仓库相对路径(/ 分隔)。
3
- # # 注释与空行忽略;本文件缺失或清单为空 = 检查跳过(装户无感升级)。
4
- # 正则语法错误行 → 门禁 fail-closed 阻断(防静默空洞,修配置后重试)。
5
- # 语义:命中任一模式 = 本次改动触及「一处定义、多处消费」的契约 / 规则面(L2 触达面,
6
- # 判据单源见 .agents/scripts/level-criteria.mjs 的 L2_SURFACES)。此时须有活跃(draft/approved / open/fixed)
7
- # L2/L3 入口罩着;活跃入口全为 L1 会被 pre-commit「触达面判低」拦截(三选修法见门禁消息)。
8
- # 无任何活跃入口时仅 advisory——docs / bootstrap 豁免类改动(new-task.md §intent 豁免)不受阻。
9
- # 漏登面审计:node .agents/scripts/lane-surface-audit.mjs(advisory,恒 exit 0)——近窗口(默认 30 天)
10
- # L2/L3 任务反复触及(≥3 个不同入口文档)却无文件被本清单命中的目录 = 候选漏登面,供人工评估补登;
11
- # 月度手跑,改共享契约频繁期可随时跑(候选 ≠ 必登——高频触及 ≠ 契约面,机器不猜语义)。
12
- # 本仓默认面(引擎 / 契约面,行为承载目录——commands/roles 纯提示文本属 docs 级不列入;按项目自行改):
13
- ^templates/
14
- ^\.agents/(scripts|hooks)/
15
- ^\.githooks/
16
- ^bin/
17
- ^modules/
@@ -1,30 +0,0 @@
1
- # 风险级别路径提示清单(单源消费方:templates/_agents/scripts/level-criteria.mjs)
2
- #
3
- # 用途:登记「哪些路径一碰就**至少**是 L2 / L3」。定级是**意图面**的语义判定(「一处定义、多处消费」),
4
- # 机器判不了语义;但「路径下限」可以登记,避免明显高风险的改动被拍脑袋判成 L1。
5
- # 与 lane-surfaces.txt 的分工:那是**提交面**的触达判据(改这些面须有活跃 L2/L3 入口),
6
- # 本文件是**意图面**的档位提示(改这些面就该按更高档走)。两者不同档,各司其职。
7
- #
8
- # 格式:每行一条 `<档位> <ERE>`,ERE 为 grep -E 兼容正则,匹配仓库相对路径(/ 分隔)。
9
- # 档位**只收 L2 / L3**:本清单登记的是「一碰就至少是中/高风险面」的下限。L1 不构成门槛(L0 已退役),
10
- # 登记了只会让提交面判低门(L2 触达面门)对无关改动出手——那正是要避免的噪声。
11
- # **ERE 与注释必须分两行**:写 `L3 ^a\.sql$ # 迁移 SQL` 会把 `# 迁移 SQL` 编进正则,
12
- # 若含 $ 锚点该条就永不命中,且不报任何错(路径下限与提交面兜底同时静默失效)。
13
- # 确需匹配路径里的 # 时写 \#。非法档位 / 行内注释 / 正则语法错 → **fail-loud 抛错**
14
- # (写错配置比没配置危险:没配置会提示补,写错会误判)。
15
- # # 注释与空行忽略;本文件缺失或清单为空 = 纯语义定级(判据面全程静默,不阻断)。
16
- #
17
- # 默认留空(刻意):本清单内容是**项目私有**的——按你自己的代码布局登记,照抄别人的清单等于没登记。
18
- # 建议起步:从「改什么几乎必然是 L2/L3」的高频面挑 3~5 条先登记,跑一段时间再补。
19
- #
20
- # ---- 示例(取消注释并按项目实际路径改写;本仓为 node 包源,下例仅示意形态)----
21
- # # 迁移 SQL(注释单独成行,不要接在 ERE 后面)
22
- # L3 ^src/db/migrations/.*\.sql$
23
- # # schema 定义
24
- # L3 ^src/db/schema/
25
- # # 认证与中间件管线 / DI 链
26
- # L3 ^(src/(auth|middleware)/|src/.*\.(auth|di)\.(ts|js)$)
27
- # # 共享契约(DTO / 接口签名)
28
- # L2 ^src/contracts/
29
- # # 编码权威(取号 / 命名规则生成器)
30
- # L2 ^src/coding/
@@ -1,112 +0,0 @@
1
- # papercut-debt 控制回路 — 设计(2026-10-07 拍板;B10a 自 Shipyard.Material 回灌)
2
-
3
- > 本文件是回路的**设计单一真相源**。传感器 / 控制器 / 执行器技能 / 记忆文件均按此实现,改设计先改本文件。
4
- > 范围:把 `workflow/papercuts.md` 的未升级存量债驱动到 0。执行器为**对话内手动触发**(kit 不为回路接线 CI/定时)。
5
-
6
- ## 1. 设定点(Set point)
7
-
8
- **`workflow/papercuts.md` 中未消债条目数 → 0。**
9
-
10
- - **判定口径(单源,本文件)**:
11
- - **已消债(settled)** = 该行含 `✅`(真修完)**或** 含 `⏸ 暂缓(日期):理由`(人读过、判失效)。
12
- - **未消债(debt)** = 其余,即 `debt = 总数 − settled`。
13
- - `⏸ 暂缓` **无理由者仍计债** —— 堵"标个符号清零"的路,迫使人真读一遍。
14
- - **环境约束类(`[env]` 前缀)**:「位置」列以 `[env]` 开头(外层可带反引号包裹,传感器兼容)的行**不进债池**(`scan()` 不返回,控制器 import 债池数组天然不选),单列 `envPending`(仅未 settled 的)。清账两路径:环境前提复测消失 → `⏸ 暂缓(日期):前提已消失`;定性实为代码缺陷 → 去前缀转正回债池。理由:环境自愈不该由回路轮询发现(源仓首轮实证:pypi 恢复后自愈的环境条目,却占 debt 名额等人工定性一轮——留痕在包源仓 git 历史与 CHANGELOG)。
15
- - 两类分开计数(`resolved` / `deferredReasoned`),避免"暂缓"冒充"修完"。
16
- - 终态:全部条目 settled。**"暂缓"是合法终态,但必须有人写理由。**
17
- - 基线:装户首次跑传感器时的 `debt` 读数即基线,随后每轮 `debt` 恰好 -1。装户侧不预填数字。
18
-
19
- > **首轮修正(设计教训,单源保留)**:初版口径只有 `✅` 判债、`⏸` 不消债。后果是执行器走"判失效"分支(写 `⏸`)后 `debt` 不减,完成判据"debt 恰好 -1"永远达不到,且控制器下一轮仍选中同一条 → **回路空转**。现口径按上表,`settled` 由传感器单源判定、控制器 import 复用(两处各判一次必然漂移,见 §3 末)。
20
-
21
- 为什么选它(三条依据):
22
-
23
- 1. **计数客观**:`papercuts.md` 是人写的自由文本表格,但"是否已升级"是二值事实,解析成本低、复跑稳定。
24
- 2. **改动面天然是文档**:每条 papercut 的"拟修"列指向的多是 `.agents/commands/`、`.agents/skills/`、`.githooks/` 下的提示文本与脚本 —— 与回路执行器边界(文档面)**天然对齐**,不需人为收窄。
25
- 3. **不撞人工门**:`papercuts.md` 是普通台账,**不走 `confirm-doc` 状态机**(不同于 intent/spec/plan),所以回路可以无人值守跑而不会卡在人工确认点。
26
-
27
- 不选的候选与理由属**装户实测数据**(源仓实例:回归清单未勾项、常驻面体积瘦身、check-loop 存量 warning——留痕在包源仓 git 历史与 CHANGELOG)。装户立回路时按同原则自评:单轮以小时计的、改 AI 行为指令的、性价比最低的候选不进本回路。
28
-
29
- ## 2. 传感器(Sensor)
30
-
31
- **脚本**:`.agents/scripts/papercut-debt-sensor.mjs`
32
- **输出**:`--json` 时给结构化 JSON;默认给人读的中文摘要。退出码恒 0(**测量失败不该阻断回路**,但会显式打印 ERROR 行)。
33
-
34
- 测量口径:
35
-
36
- | 字段 | 含义 |
37
- |---|---|
38
- | `unresolved` | 未升级条目数组,每项含 `line` / `date` / `location` / `symptom` / `proposedFix` / `hits`(scope 由控制器 §3 判定,不在此列) |
39
- | `resolved` | 已升级条目数 |
40
- | `total` | 台账数据行总数(排除表头与分隔行) |
41
- | `debt` | `unresolved.length` —— 设定点的当前误差 |
42
-
43
- 关键设计约束:
44
-
45
- - **零子进程**。不 spawn git / node。理由(源仓实测,留痕在包源仓 git 历史与 CHANGELOG):曾有托管 Node 环境 `spawnSync` 对**任意**可执行文件(含 node 自身)返回 `EBUSY`,任何依赖 git 历史的传感器在该环境不可用——已有 `check-loop.mjs` 就是这么崩的。零子进程设计保留:传感器不依赖子进程比依赖更稳,且免受环境回退影响。
46
- - **CRLF 容忍**。台账检出为 CRLF(全局 `core.autocrlf=true`),按 `split(/\r?\n/)` 切行,**禁止依赖行尾格式**。
47
- - **管道符安全**。单元格内可能含 `|`(代码片段),按"切分后多于 6 段则把中间段并回症状列"处理,取前 3 列 + 末列。
48
- - **失效路径不阻塞**。对每条的"位置"列抽出形如 `.agents/…` / `wiki/…` 的路径并检查存在性;不存在只标 `stale: true`,不排除该条 —— 台账记的是历史事实,路径后来被重命名/删除是常态,不等于债已消。
49
- - **分片感知**(kit 侧随 ledger-shards 落地):读侧走 `readLedgerText(root,'papercuts')`(主台账 ∪ `workflow/papercuts.d/*.md`),无分片时等价原读法——传感器零额外逻辑,口径不变。
50
-
51
- ## 3. 控制器(Controller)
52
-
53
- **脚本**:`.agents/scripts/papercut-debt-controller.mjs`
54
- **输入**:`papercut-debt-sensor.mjs --json` 的输出(或自己调传感器)。
55
- **输出**:本轮唯一目标(top-1),markdown 片段,直接拼进执行器提示词。
56
-
57
- 排序键(**确定性,无随机、无 LLM 判断**):
58
-
59
- 1. **命中次数降序** —— 台账文件头自己的规则:"同一文件命中第 2 次或用户点名时,升级为 docs 修复 commit"。`第 N 次命中` 从症状/拟修文本中正则抽取。
60
- 2. **日期降序** —— 同命中次数下,日期新的优先(近期痛点更可能仍成立)。
61
- 3. **原行序升序** —— 完全平手时按台账原始顺序,保证结果可复现。
62
-
63
- **Scope gate(出选前过滤)**:`拟修` 明确指向 `backend/` `frontend/` `tests/` `wiki/` `sqlcmd` `db_tool`,或文本含 `数据库` / `DDL` / `DROP` 的条目,本轮跳过并列为 `skipped-out-of-scope`。记入输出,由用户决定是否授权。执行器只改文档面。指向业务代码或连库的条目超出授权。
64
-
65
- **单轮只取 1 条。** L2/L3 要求独立复核,控制器不得一次给出 3 条。
66
-
67
- **口径复用(硬约束)**:控制器**不得复制** `✅` / `⏸` / `hits` / `stale` 的任何判定正则,一律 `import { scan } from './papercut-debt-sensor.mjs'`。控制器只负责排序与 scope gate。理由(源仓首轮实证,留痕在包源仓 git 历史与 CHANGELOG):两处各判一次必然漂移——初版传感器按 `✅` 判债、控制器也按 `✅` 选目标,导致已 `⏸` 的条目被反复选中。
68
-
69
- ## 4. 执行器(Actuator)
70
-
71
- **技能**:`.agents/skills/papercut-fix/SKILL.md`(装副本随 `.agents/skills/` 分发)。
72
- **触发**:你说"跑一轮 papercut 回路"。
73
- **验证门**(改动后必跑,全部零 spawn 或纯本地):
74
-
75
- ```bash
76
- node .agents/scripts/check-loop.mjs # 闭环骨架(实证留痕在包源仓 git 历史与 CHANGELOG)
77
- node .agents/scripts/papercut-debt-sensor.mjs --json # debt 应恰好 -1
78
- ```
79
-
80
- > **注意**:`verify.mjs` 默认不在本回路跑 —— 回路只动台账与技能文件(文档面),`verify.mjs` 含构建/测试(源码面,按装户技术栈),与 papercut 回路边界无关,回路收尾以传感器计数核验为准。需要关单凭证时直跑 `node .agents/scripts/verify.mjs`(全绿自动落 verifications.jsonl)。
81
-
82
- **金样(golden patterns)**,已固化进技能:
83
-
84
- - 台账写入**一律用 Edit 工具**(源仓实证 papercut:`node -e` 批量 replace 遇 CRLF 静默无操作、假落账——留痕在包源仓 git 历史与 CHANGELOG)。
85
- - 写后**必 grep 回读验证**再报成功。
86
- - 标 ✅ 时**追加**升级记录(日期 + commit),不删原"拟修"文本 —— 原文本是复发时的对照物。
87
- - 改动 `.agents/commands/` 后必看 `.agents/rule-budgets.txt` 的体积上限(常驻面只增不减,一进一出;机器门 `node .agents/scripts/rule-budget.mjs --staged`)。
88
-
89
- ## 5. 扰动与阻尼器(Disturbances / Dampener)
90
-
91
- **扰动源**(通用形态):
92
-
93
- - 用户并发提交:回路运行期间,用户可能修改同一文件。
94
- - 生成物漂移 —— `workflow/INDEX.md`、`workflow/metrics.md`、`gen-wiki-board` 产物会随任何状态变更而重生成。
95
- - 工具链升级 —— kit bump 会重写 `.agents/` 装副本,台账里的"拟修"可能已失效。
96
-
97
- **阻尼器(已存在,不另建)**:`.githooks/pre-commit` 门禁(常驻面体积预算 `rule-budget --staged` 硬拦等)+ `pre-push` 的 `check-loop` hard-block。**新条目带 `⏸ 暂缓` 而无理由**、或同一行被并发改写压行,都会在这两道门上现形。回路**不新增任何门禁** —— 现有门禁已足够挡住"回路把台账改坏"。
98
-
99
- ## 6. 人在环上(Human on the loop)
100
-
101
- - **记忆文件**:装户自持(owned 面参考 `.agents/notes/`)——常驻反馈(永久范围排除、已知失效区、reviewer 意见)。每轮在控制器之后、提示词之前注入。**只写耐久规则,不写单轮日志**。
102
- - **人工放行**:回路不自动 commit、不 push。产出 diff 后停止,等待用户明确放行。
103
- - **`/iterate` 不实现**。追加范围或暂缓须由用户在对话中逐条给出,例如「修第 3 条」或「这条暂缓,理由 X」。
104
-
105
- ## 7. 流控(Flow control)
106
-
107
- **在途判据**:工作区存在本回路产生的未提交 diff。手动触发时同一工作区只跑一轮,不另绑远端评审流。`--dry-run` 只输出目标清单,不改文件。
108
-
109
- ## 8. 历史阻塞与豁免(源仓实证,单源保留结论)
110
-
111
- 1. **回路脚本落 `.agents/scripts/` 是否命中 L2 触达面**:不命中——`check-lane-surface.mjs` 在无活跃 L2/L3 入口时只出 advisory、exit 0 放行(**规则**:无活跃入口即放行)。**结论:不必为回路另立 intent**;若日后 `.agents/scripts/` 确有 L2 语义改动被拦,再按 `new-task.md` 立入口。实测过程留痕在包源仓 git 历史与 CHANGELOG。
112
- 2. **依赖 git 历史的传感器在本机必崩**(EBUSY):以零子进程设计规避(§2),不做环境假设。源仓后来环境升级后该崩溃消失,但零子进程约束不回退——传感器不依赖子进程比依赖更稳。
@@ -1,27 +0,0 @@
1
- # 机制使用量台账 (Mechanism Usage Registry)
2
-
3
- > 门禁棘轮的出口:每个门禁机制的「触发统计口径 + 退役阈值 + 状态」单源登记于此。
4
- > **台账的目的不是记录而是强制处置**:新增门禁机制须登记一行(一进一出,并点名它替代/合并的
5
- > 既有机制,无替代则说明增量理由);机制退役时状态改「已退役」并在最近触发列留档;
6
- > 低频机制按退役阈值降级。
7
- > 列序固定:机制 | 门禁位置 | 触发统计口径 | 退役阈值 | 最近触发 | 状态 | 处置期限。
8
- > 本表归装户自持运营(sync 永不覆盖,同 metric-claims.txt 口径);kit 引擎做 WARN 级格式校验
9
- > (check-loop 检查 22:列数 / 状态枚举 / 待退役处置期限——advisory 不阻断,永不 hard),
10
- > 对账纪律靠下方「维护纪律」人工执行;判定数据面由 check-loop 每次真实运行自动落账到
11
- > `.agents/judgments.jsonl`(judgment-ledger,本地 gitignore),月度聚合经 agg-judgments.mjs 查账。
12
-
13
- | 机制 | 门禁位置 | 触发统计口径 | 退役阈值 | 最近触发 | 状态 | 处置期限 |
14
- |---|---|---|---|---|---|---|
15
- | 确认指纹对账(示例行) | check-loop 检查 15 | hard「指纹不配对/确认内容漂移」计数(月,经 agg-judgments 查判定流水) | 不退役(防伪造确认主干) | 示例:建门留档见包源仓 git 历史与 CHANGELOG | 现役 | — |
16
- | 触达面判低门(示例行) | check-lane-surface(pre-commit/CI 泳道完整性) | hard「触达面判低/产品契约面」计数(月) | 不退役(级别闭环主干) | 示例:在用 | 现役 | — |
17
-
18
- > 以上两行为**示例行**,只示范登记口径,不参与装户对账;装户按自有机制增删行,
19
- > 首次对账时可将示例行替换为真实运营数据。
20
-
21
- ## 维护纪律
22
-
23
- - **一进一出**:新增门禁机制必须同时在本表登记,并点名它替代/合并的既有机制(无替代则说明增量理由)。
24
- - **月度对账**:每月初按「触发统计口径」列刷新计数(半自动:`node .agents/scripts/agg-judgments.mjs`
25
- 查判定流水 `.agents/judgments.jsonl`——check-loop 每次真实运行自动落账,替代人工 grep 输出;
26
- git log 统计口径不变);达到阈值的行改「待退役」并填处置期限。
27
- - **退役动作**:状态改「已退役」当日删除机制代码 + 其测试 + 本表更新,同一提交完成(不留死代码)。
@@ -1,81 +0,0 @@
1
- # 量化断言「指标签名」单源登记表(check-loop 检查 16 共读)
2
- #
3
- # 背景(2026-09-28 claim-exceeds-fix):结论文档里跨文档引用的量化值若各自手写,
4
- # 极易在事实变更后不同步——本仓已实证:同一指标在一处改了、另一处没改,
5
- # 而「五处文件同步」这句话本身无人核对(该单真正被门禁抓住的方式,是事后人工复核)。
6
- # 本表把「哪个指标、当前取值多少」收敛为单源,供 check-loop 检查 16 对账。
7
- #
8
- # 用法:活跃态文档(draft/approved/open)引用某个已登记指标时,按**签名形态**书写,
9
- # 检查 16 会实时取数比对。签名形态:\{\{指标名\}\}(双花括号包裹指标名,小写点分)。
10
- # 例(下面是「讲语法」,故加反斜杠转义;**写真断言时不加反斜杠**):
11
- # 本仓台账共 \{\{ledger.lines\}\} 行,其中无 batch 字段 \{\{ledger.linesWithoutBatch\}\} 行。
12
- # 写作时**不要手写数字**——写完跑 check-loop,工具会把实时值填进提示里供你替换。
13
- # 转义按「逐个出现」生效:同一行里 \{\{x\}\} 是示意、\{\{y\}\} 是真断言时,只豁免前者。
14
- # (本例的指标名曾写成 ledger.total / ledger.noBatch 两个**并不存在**的名字——本表不被
15
- # 检查 16 扫描(它是 .txt 非 .md),故这类笔误不会被自动抓到,只能靠复核。已据实更正。)
16
- #
17
- # 为什么用显式签名而非全文数字扫描(据实说明,非偷懒):
18
- # 本仓活跃文档中「N 行 / N 条 / N 份」类表述有 49 处(实测:活跃态 21 份文档逐行计),绝大多数是**历史叙述**
19
- # (描述某次提交当时的规模,天然不会随当前事实变化)。全文扫描会对这些正确的
20
- # 历史叙述产生大量假阳性——而 check-loop.mjs 已把「无判定依据的行不产出不可
21
- # 消除噪声」立为红线(沿 2026-09-27 audit-gate-hardening P3 教训:噪声淹没真漏点)。
22
- # 故本检查**只校验显式声明的签名**:假阳性恒为 0,代价是覆盖面依赖作者登记。
23
- #
24
- # 格式:每行 `<指标名> = <取数表达式>`;`#` 开头为注释;空行忽略。
25
- # 取数表达式(闭集,全部本地确定性、零网络):
26
- # ledger.lines 台账 .agents/confirmations.jsonl 的非空行数
27
- # ledger.linesWithoutBatch 台账中不含 "batch" 字段的行数(schema 演进前历史行)
28
- # ledger.linesWithBatch 台账中含 "batch" 字段的行数
29
- # docs.count.<sub> workflow/<sub> 下文档份数——**与文档扫描同口径**:以数字开头的
30
- # .md、排除 _TEMPLATE.md、且仓库模式下只计 HEAD 已跟踪件
31
- # (故并行会话的未跟踪新档不计入);sub ∈ intents/specs/plans/incidents
32
- # docs.count.all 上述四类合计
33
- # ── 新增指标(2026-09-28 adopter-derivers 起)────────────────────────────────
34
- # 分两层取数,**内置优先**:
35
- # ① 引擎内置 8 个指标(下表)——装户零配置即用,不需要做任何事。
36
- # ② 项目自有指标——写 `.agents/metric-derivers.cjs`(**owned**,sync 永不覆盖),
37
- # 用 CommonJS 导出 `derivers` 对象(指标名 → 取数函数),并在此表加同名一行。
38
- # **后缀必须是 `.cjs`、写法必须是 CommonJS**(`module.exports`)。
39
- # 为什么不用 `.mjs`:引擎用 `require()` 同步载入,而 `require(esm)` 仅在
40
- # Node ≥20.19 / ≥22.12 可用——**实测 Node 18.20 / 20.18 / 22.11 全部
41
- # ERR_REQUIRE_ESM**,而本仓 engines 声明 `>=18.0.0`。故 `.cjs` 是唯一
42
- # 全版本可用的形态(同步、零版本依赖)。
43
- # 旧的 `.mjs` 路径已弃用:若残留在盘上,检查 16 会**明确提示迁移**。
44
- #
45
- # 示例 `.agents/metric-derivers.cjs`:
46
- # module.exports = {
47
- # derivers: {
48
- # 'my.migrations': (ctx) => ctx.glob('backend/migrations/*.sql').length,
49
- # 'my.apiCount': (ctx) => ctx.countFiles('src/api', (f) => f.endsWith('.controller.ts')),
50
- # },
51
- # };
52
- # ctx 提供(同步,免你重复造轮子;其余请自行 `require('node:fs')`):
53
- # ctx.root 仓库根绝对路径
54
- # ctx.read(rel) 读文本文件(LF 归一),不存在返回 ''
55
- # ctx.glob(pattern) 极简 glob(* / **),返回相对路径数组
56
- # ctx.countFiles(dir, pred) 递归计数(可传谓词)
57
- #
58
- # 三条硬约定(违反即 fail-loud):
59
- # 1. **必须是同步函数**(返回 number,不得 async/Promise)——本检查零网络、要求本地确定性
60
- # 2. 必须**确定性**:不得依赖网络、不得依赖当前时间
61
- # 3. 返回值须为**有限数字**(Number.isFinite)
62
- #
63
- # 失败语义(**绝不静默降级**):模块语法错 / 抛异常 / 未导出 derivers / 返回值非法
64
- # → 一律出 `[WARN 装户取数器载入失败]` 或 `[WARN 指标取数失败]`,**不会**退化成
65
- # 「只用内置指标」——否则你会误以为「忘了登记」而查不到真因。
66
- # 指标名与内置同名时:**内置优先**,你的定义被忽略(会出 advisory 明示)。
67
- #
68
- # 注:本检查**不设取数超时**——请让取数器保持轻量(秒级)。死循环会拖慢门禁。
69
- # 另:装户模块的「取数器」在引擎侧(check-loop.mjs,managed);本表与 derivers.cjs 同归 owned。
70
- #
71
- # 注意:不登记 advisory 总数类指标——它由 check-loop 自身产出(检查 16 是其一部分),
72
- # 自引用会让「报告本身改变被报告的数」,产生不可稳定对账的循环。
73
-
74
- ledger.lines = ledger.lines
75
- ledger.linesWithoutBatch = ledger.linesWithoutBatch
76
- ledger.linesWithBatch = ledger.linesWithBatch
77
- docs.count.intents = docs.count.intents
78
- docs.count.specs = docs.count.specs
79
- docs.count.plans = docs.count.plans
80
- docs.count.incidents = docs.count.incidents
81
- docs.count.all = docs.count.all