agentic-flow-kit 1.8.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (984) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +172 -138
  3. package/bin/flow-kit.mjs +7 -2
  4. package/locales/en/installer.json +110 -0
  5. package/locales/en/overrides/.agents/commands/deploy.md +52 -0
  6. package/locales/en/overrides/.agents/commands/maintain.md +76 -0
  7. package/locales/en/overrides/.agents/commands/new-task.md +89 -0
  8. package/locales/en/overrides/.agents/commands/pipeline-run.md +56 -0
  9. package/locales/en/overrides/.agents/commands/pr-review.md +30 -0
  10. package/locales/en/overrides/.agents/commands/review.md +93 -0
  11. package/locales/en/overrides/.agents/commands/stages.md +256 -0
  12. package/locales/en/overrides/.agents/notes/pr-review-cost-discipline.md +48 -0
  13. package/locales/en/overrides/.agents/notes/process-order-rule.md +21 -0
  14. package/locales/en/overrides/.agents/notes/runtime-env.local.example.md +21 -0
  15. package/locales/en/overrides/.agents/pipelines/_TEMPLATE.md +75 -0
  16. package/locales/en/overrides/.agents/pipelines/pipeline-closing.md +28 -0
  17. package/locales/en/overrides/.agents/roles/implementer.md +28 -0
  18. package/locales/en/overrides/.agents/roles/independent-reviewer.md +39 -0
  19. package/locales/en/overrides/.agents/roles/pr-adjudicator.md +27 -0
  20. package/locales/en/overrides/.agents/roles/pr-finder.md +51 -0
  21. package/locales/en/overrides/.agents/roles/pr-verifier.md +44 -0
  22. package/locales/en/overrides/.agents/roles/ui-verifier.md +22 -0
  23. package/locales/en/overrides/.agents/roles/wiki-compiler.md +47 -0
  24. package/locales/en/overrides/.agents/skills/arena/SKILL.md +50 -0
  25. package/locales/en/overrides/.agents/skills/autonomous-run/SKILL.md +45 -0
  26. package/locales/en/overrides/.agents/skills/blast-radius/SKILL.md +53 -0
  27. package/locales/en/overrides/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  28. package/locales/en/overrides/.agents/skills/dev-tour/SKILL.md +98 -0
  29. package/locales/en/overrides/.agents/skills/dream/SKILL.md +63 -0
  30. package/locales/en/overrides/.agents/skills/eval/SKILL.md +42 -0
  31. package/locales/en/overrides/.agents/skills/interrogate/SKILL.md +49 -0
  32. package/locales/en/overrides/.agents/skills/number-vetting/SKILL.md +35 -0
  33. package/locales/en/overrides/.agents/skills/page-refactor/SKILL.md +192 -0
  34. package/locales/en/overrides/.agents/skills/papercut-fix/SKILL.md +92 -0
  35. package/locales/en/overrides/.agents/skills/pause-safely/SKILL.md +31 -0
  36. package/locales/en/overrides/.agents/skills/perf/SKILL.md +42 -0
  37. package/locales/en/overrides/.agents/skills/review-method/SKILL.md +92 -0
  38. package/locales/en/overrides/.agents/skills/session-resume/SKILL.md +69 -0
  39. package/locales/en/overrides/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  40. package/locales/en/overrides/.agents/skills/show-me-your-work/SKILL.md +57 -0
  41. package/locales/en/overrides/.agents/skills/tfs-pr/SKILL.md +95 -0
  42. package/locales/en/overrides/.agents/skills/verify-ui/SKILL.md +116 -0
  43. package/locales/en/overrides/.agents/skills/visual-parity/SKILL.md +35 -0
  44. package/locales/en/overrides/.agents/skills/why/SKILL.md +56 -0
  45. package/locales/en/overrides/.agents/skills/wiki/SKILL.md +53 -0
  46. package/locales/en/overrides/.claude/agents/implementer.md +9 -0
  47. package/locales/en/overrides/.claude/agents/independent-reviewer.md +10 -0
  48. package/locales/en/overrides/.claude/agents/pr-adjudicator.md +10 -0
  49. package/locales/en/overrides/.claude/agents/pr-finder.md +10 -0
  50. package/locales/en/overrides/.claude/agents/pr-verifier.md +10 -0
  51. package/locales/en/overrides/.claude/agents/ui-verifier.md +10 -0
  52. package/locales/en/overrides/.claude/agents/wiki-compiler.md +10 -0
  53. package/locales/en/overrides/.claude/commands/wf-deploy.md +8 -0
  54. package/locales/en/overrides/.claude/commands/wf-maintain.md +8 -0
  55. package/locales/en/overrides/.claude/commands/wf-new-task.md +8 -0
  56. package/locales/en/overrides/.claude/commands/wf-pipeline-run.md +8 -0
  57. package/locales/en/overrides/.claude/commands/wf-pr-review.md +8 -0
  58. package/locales/en/overrides/.claude/commands/wf-review.md +8 -0
  59. package/locales/en/overrides/.claude/commands/wf-stages.md +8 -0
  60. package/locales/en/overrides/.cline/agents/implementer.yml +13 -0
  61. package/locales/en/overrides/.cline/agents/independent-reviewer.yml +11 -0
  62. package/locales/en/overrides/.cline/agents/pr-adjudicator.yml +11 -0
  63. package/locales/en/overrides/.cline/agents/pr-finder.yml +11 -0
  64. package/locales/en/overrides/.cline/agents/pr-verifier.yml +11 -0
  65. package/locales/en/overrides/.cline/agents/ui-verifier.yml +8 -0
  66. package/locales/en/overrides/.cline/agents/wiki-compiler.yml +14 -0
  67. package/locales/en/overrides/.cline/workflows/wf-deploy.md +8 -0
  68. package/locales/en/overrides/.cline/workflows/wf-maintain.md +8 -0
  69. package/locales/en/overrides/.cline/workflows/wf-new-task.md +8 -0
  70. package/locales/en/overrides/.cline/workflows/wf-pipeline-run.md +8 -0
  71. package/locales/en/overrides/.cline/workflows/wf-pr-review.md +8 -0
  72. package/locales/en/overrides/.cline/workflows/wf-review.md +8 -0
  73. package/locales/en/overrides/.cline/workflows/wf-stages.md +8 -0
  74. package/locales/en/overrides/.codebuddy/CODEBUDDY.md +7 -0
  75. package/locales/en/overrides/.codebuddy/agents/implementer.md +9 -0
  76. package/locales/en/overrides/.codebuddy/agents/independent-reviewer.md +10 -0
  77. package/locales/en/overrides/.codebuddy/agents/pr-adjudicator.md +10 -0
  78. package/locales/en/overrides/.codebuddy/agents/pr-finder.md +10 -0
  79. package/locales/en/overrides/.codebuddy/agents/pr-verifier.md +10 -0
  80. package/locales/en/overrides/.codebuddy/agents/ui-verifier.md +11 -0
  81. package/locales/en/overrides/.codebuddy/agents/wiki-compiler.md +10 -0
  82. package/locales/en/overrides/.codebuddy/commands/wf-deploy.md +8 -0
  83. package/locales/en/overrides/.codebuddy/commands/wf-maintain.md +8 -0
  84. package/locales/en/overrides/.codebuddy/commands/wf-new-task.md +8 -0
  85. package/locales/en/overrides/.codebuddy/commands/wf-pipeline-run.md +8 -0
  86. package/locales/en/overrides/.codebuddy/commands/wf-pr-review.md +8 -0
  87. package/locales/en/overrides/.codebuddy/commands/wf-review.md +8 -0
  88. package/locales/en/overrides/.codebuddy/commands/wf-stages.md +8 -0
  89. package/locales/en/overrides/.codebuddy/rules/backend-scope.md +5 -0
  90. package/locales/en/overrides/.codebuddy/rules/frontend-scope.md +5 -0
  91. package/locales/en/overrides/.codebuddy/skills/tfs-pr/SKILL.md +6 -0
  92. package/locales/en/overrides/.commandcode/agents/implementer.md +10 -0
  93. package/locales/en/overrides/.commandcode/agents/independent-reviewer.md +9 -0
  94. package/locales/en/overrides/.commandcode/agents/pr-adjudicator.md +9 -0
  95. package/locales/en/overrides/.commandcode/agents/pr-finder.md +9 -0
  96. package/locales/en/overrides/.commandcode/agents/pr-verifier.md +9 -0
  97. package/locales/en/overrides/.commandcode/agents/ui-verifier.md +10 -0
  98. package/locales/en/overrides/.commandcode/agents/wiki-compiler.md +10 -0
  99. package/locales/en/overrides/.commandcode/commands/wf-deploy.md +7 -0
  100. package/locales/en/overrides/.commandcode/commands/wf-maintain.md +7 -0
  101. package/locales/en/overrides/.commandcode/commands/wf-new-task.md +7 -0
  102. package/locales/en/overrides/.commandcode/commands/wf-pipeline-run.md +7 -0
  103. package/locales/en/overrides/.commandcode/commands/wf-pr-review.md +7 -0
  104. package/locales/en/overrides/.commandcode/commands/wf-review.md +7 -0
  105. package/locales/en/overrides/.commandcode/commands/wf-stages.md +7 -0
  106. package/locales/en/overrides/.opencode/agents/implementer.md +51 -0
  107. package/locales/en/overrides/.opencode/agents/independent-reviewer.md +18 -0
  108. package/locales/en/overrides/.opencode/agents/pr-adjudicator.md +18 -0
  109. package/locales/en/overrides/.opencode/agents/pr-finder.md +18 -0
  110. package/locales/en/overrides/.opencode/agents/pr-verifier.md +18 -0
  111. package/locales/en/overrides/.opencode/agents/ui-verifier.md +45 -0
  112. package/locales/en/overrides/.opencode/agents/wiki-compiler.md +51 -0
  113. package/locales/en/overrides/.opencode/commands/wf-deploy.md +7 -0
  114. package/locales/en/overrides/.opencode/commands/wf-maintain.md +7 -0
  115. package/locales/en/overrides/.opencode/commands/wf-new-task.md +7 -0
  116. package/locales/en/overrides/.opencode/commands/wf-pipeline-run.md +7 -0
  117. package/locales/en/overrides/.opencode/commands/wf-pr-review.md +7 -0
  118. package/locales/en/overrides/.opencode/commands/wf-review.md +7 -0
  119. package/locales/en/overrides/.opencode/commands/wf-stages.md +7 -0
  120. package/locales/en/overrides/.pi/agents/implementer.md +11 -0
  121. package/locales/en/overrides/.pi/agents/independent-reviewer.md +12 -0
  122. package/locales/en/overrides/.pi/agents/pr-adjudicator.md +12 -0
  123. package/locales/en/overrides/.pi/agents/pr-finder.md +11 -0
  124. package/locales/en/overrides/.pi/agents/pr-verifier.md +11 -0
  125. package/locales/en/overrides/.pi/agents/ui-verifier.md +11 -0
  126. package/locales/en/overrides/.pi/agents/wiki-compiler.md +11 -0
  127. package/locales/en/overrides/.qoder/agents/implementer.md +9 -0
  128. package/locales/en/overrides/.qoder/agents/independent-reviewer.md +10 -0
  129. package/locales/en/overrides/.qoder/agents/pr-adjudicator.md +10 -0
  130. package/locales/en/overrides/.qoder/agents/pr-finder.md +10 -0
  131. package/locales/en/overrides/.qoder/agents/pr-verifier.md +10 -0
  132. package/locales/en/overrides/.qoder/agents/ui-verifier.md +10 -0
  133. package/locales/en/overrides/.qoder/agents/wiki-compiler.md +10 -0
  134. package/locales/en/overrides/.qoder/commands/wf-deploy.md +8 -0
  135. package/locales/en/overrides/.qoder/commands/wf-maintain.md +8 -0
  136. package/locales/en/overrides/.qoder/commands/wf-new-task.md +8 -0
  137. package/locales/en/overrides/.qoder/commands/wf-pipeline-run.md +8 -0
  138. package/locales/en/overrides/.qoder/commands/wf-pr-review.md +8 -0
  139. package/locales/en/overrides/.qoder/commands/wf-review.md +8 -0
  140. package/locales/en/overrides/.qoder/commands/wf-stages.md +8 -0
  141. package/locales/en/overrides/.qwen/agents/implementer.md +10 -0
  142. package/locales/en/overrides/.qwen/agents/independent-reviewer.md +10 -0
  143. package/locales/en/overrides/.qwen/agents/pr-adjudicator.md +10 -0
  144. package/locales/en/overrides/.qwen/agents/pr-finder.md +10 -0
  145. package/locales/en/overrides/.qwen/agents/pr-verifier.md +10 -0
  146. package/locales/en/overrides/.qwen/agents/ui-verifier.md +10 -0
  147. package/locales/en/overrides/.qwen/agents/wiki-compiler.md +13 -0
  148. package/locales/en/overrides/.qwen/commands/wf-deploy.md +7 -0
  149. package/locales/en/overrides/.qwen/commands/wf-maintain.md +7 -0
  150. package/locales/en/overrides/.qwen/commands/wf-new-task.md +7 -0
  151. package/locales/en/overrides/.qwen/commands/wf-pipeline-run.md +7 -0
  152. package/locales/en/overrides/.qwen/commands/wf-pr-review.md +7 -0
  153. package/locales/en/overrides/.qwen/commands/wf-review.md +7 -0
  154. package/locales/en/overrides/.qwen/commands/wf-stages.md +7 -0
  155. package/locales/en/overrides/.trae/agents/implementer.md +9 -0
  156. package/locales/en/overrides/.trae/agents/independent-reviewer.md +10 -0
  157. package/locales/en/overrides/.trae/agents/pr-adjudicator.md +10 -0
  158. package/locales/en/overrides/.trae/agents/pr-finder.md +10 -0
  159. package/locales/en/overrides/.trae/agents/pr-verifier.md +10 -0
  160. package/locales/en/overrides/.trae/agents/ui-verifier.md +10 -0
  161. package/locales/en/overrides/.trae/agents/wiki-compiler.md +10 -0
  162. package/locales/en/overrides/.trae/commands/wf-deploy.md +8 -0
  163. package/locales/en/overrides/.trae/commands/wf-maintain.md +8 -0
  164. package/locales/en/overrides/.trae/commands/wf-new-task.md +8 -0
  165. package/locales/en/overrides/.trae/commands/wf-pipeline-run.md +8 -0
  166. package/locales/en/overrides/.trae/commands/wf-pr-review.md +8 -0
  167. package/locales/en/overrides/.trae/commands/wf-review.md +8 -0
  168. package/locales/en/overrides/.trae/commands/wf-stages.md +8 -0
  169. package/locales/en/overrides/.trae/rules/backend-scope.md +5 -0
  170. package/locales/en/overrides/.trae/rules/frontend-scope.md +5 -0
  171. package/locales/en/overrides/.zcode/agents/implementer.md +8 -0
  172. package/locales/en/overrides/.zcode/agents/independent-reviewer.md +8 -0
  173. package/locales/en/overrides/.zcode/agents/ui-verifier.md +8 -0
  174. package/locales/en/overrides/.zcode/agents/wiki-compiler.md +8 -0
  175. package/locales/en/overrides/AGENTS.md +52 -0
  176. package/locales/en/overrides/CLAUDE.md +20 -0
  177. package/locales/en/overrides/wiki/INDEX.md +33 -0
  178. package/locales/en/overrides/wiki/drafts-archive/README.md +6 -0
  179. package/locales/en/overrides/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  180. package/locales/en/overrides/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  181. package/locales/en/overrides/workflow/INDEX.md +13 -0
  182. package/locales/en/overrides/workflow/README.md +69 -0
  183. package/locales/en/overrides/workflow/archive/README.md +3 -0
  184. package/locales/en/overrides/workflow/delegations.md +4 -0
  185. package/locales/en/overrides/workflow/effective-policy.md +4 -0
  186. package/locales/en/overrides/workflow/gate-cost.md +4 -0
  187. package/locales/en/overrides/workflow/incidents/_TEMPLATE.md +49 -0
  188. package/locales/en/overrides/workflow/intents/_TEMPLATE.md +43 -0
  189. package/locales/en/overrides/workflow/metrics.md +4 -0
  190. package/locales/en/overrides/workflow/papercuts.md +3 -0
  191. package/locales/en/overrides/workflow/plans/_TEMPLATE.md +47 -0
  192. package/locales/en/overrides/workflow/regression-checklist.md +3 -0
  193. package/locales/en/overrides/workflow/specs/_TEMPLATE.md +86 -0
  194. package/locales/en/overrides/workflow/verify-evidence.md +4 -0
  195. package/locales/zh-CN/installer.json +110 -0
  196. package/package.json +23 -36
  197. package/schemas/install-manifest.schema.json +26 -0
  198. package/schemas/project-profile.schema.json +28 -0
  199. package/src/cli/args.mjs +43 -0
  200. package/src/cli/main.mjs +79 -0
  201. package/src/commands/add-host.mjs +29 -0
  202. package/src/commands/doctor.mjs +126 -0
  203. package/src/commands/install.mjs +296 -0
  204. package/src/commands/upgrade.mjs +30 -0
  205. package/src/git/config.mjs +61 -0
  206. package/src/hosts/registry.mjs +170 -0
  207. package/src/i18n.mjs +35 -0
  208. package/src/install/apply.mjs +138 -0
  209. package/src/install/frontmatter.mjs +84 -0
  210. package/src/install/manifest.mjs +40 -0
  211. package/src/install/plan.mjs +241 -0
  212. package/src/models/known.mjs +13 -0
  213. package/src/models/probe.mjs +163 -0
  214. package/src/models/resolve.mjs +312 -0
  215. package/src/render/tokens.mjs +105 -0
  216. package/src/tui/ansi.mjs +55 -0
  217. package/src/tui/flows.mjs +306 -0
  218. package/src/tui/prompts.mjs +139 -0
  219. package/src/tui/screen.mjs +217 -0
  220. package/src/tui/widgets.mjs +111 -0
  221. package/src/tui/wizard.mjs +68 -0
  222. package/templates/engine/.agents/board/dev-tour.html +1940 -0
  223. package/templates/engine/.agents/board/index.html +835 -0
  224. package/templates/engine/.agents/commands/deploy.md +52 -0
  225. package/templates/engine/.agents/commands/maintain.md +76 -0
  226. package/templates/engine/.agents/commands/new-task.md +89 -0
  227. package/templates/engine/.agents/commands/pipeline-run.md +60 -0
  228. package/templates/engine/.agents/commands/pr-review.md +30 -0
  229. package/templates/engine/.agents/commands/review.md +93 -0
  230. package/templates/engine/.agents/commands/stages.md +257 -0
  231. package/templates/engine/.agents/config/agent-eval.json +17 -0
  232. package/templates/engine/.agents/config/commit-msg-rules.json +7 -0
  233. package/templates/engine/.agents/config/engine.json +11 -0
  234. package/templates/engine/.agents/config/gate-budgets.json +5 -0
  235. package/templates/engine/.agents/config/mechanism-registry.md +63 -0
  236. package/templates/engine/.agents/config/memory-tiers.json +13 -0
  237. package/templates/engine/.agents/config/model-roles.json +26 -0
  238. package/templates/engine/.agents/config/model-roles.local.example.json +7 -0
  239. package/templates/engine/.agents/config/pipeline.json +36 -0
  240. package/templates/engine/.agents/config/pr-review.json +67 -0
  241. package/templates/engine/.agents/config/principles.md +32 -0
  242. package/templates/engine/.agents/config/steering.json +28 -0
  243. package/templates/engine/.agents/config/workflow-enums.txt +25 -0
  244. package/templates/engine/.agents/evals/README.md +49 -0
  245. package/templates/engine/.agents/evals/tasks.tsv +6 -0
  246. package/templates/engine/.agents/hooks/check-architecture.mjs +168 -0
  247. package/templates/engine/.agents/hooks/check-audit-fields.mjs +56 -0
  248. package/templates/engine/.agents/hooks/check-commit-plan-ref.mjs +84 -0
  249. package/templates/engine/.agents/hooks/check-confirm-order.mjs +281 -0
  250. package/templates/engine/.agents/hooks/check-delete-guard.mjs +63 -0
  251. package/templates/engine/.agents/hooks/check-notify-guard.mjs +55 -0
  252. package/templates/engine/.agents/hooks/commit-check.cjs +208 -0
  253. package/templates/engine/.agents/hooks/gates.json +33 -0
  254. package/templates/engine/.agents/hooks/local-pre-commit.mjs +27 -0
  255. package/templates/engine/.agents/hooks/pre-shell-check.cjs +361 -0
  256. package/templates/engine/.agents/hooks/pre-write-check.cjs +247 -0
  257. package/templates/engine/.agents/notes/gate-diet.md +75 -0
  258. package/templates/engine/.agents/notes/injected-memory.md +14 -0
  259. package/templates/engine/.agents/notes/pr-review-cost-discipline.md +48 -0
  260. package/templates/engine/.agents/notes/process-order-rule.md +21 -0
  261. package/templates/engine/.agents/notes/runtime-env.local.example.md +21 -0
  262. package/templates/engine/.agents/notes/steering-tiers.md +28 -0
  263. package/templates/engine/.agents/pipelines/_TEMPLATE.md +75 -0
  264. package/templates/engine/.agents/pipelines/pipeline-closing.md +28 -0
  265. package/templates/engine/.agents/pipelines//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +16 -0
  266. package/templates/engine/.agents/roles/implementer.md +28 -0
  267. package/templates/engine/.agents/roles/independent-reviewer.md +39 -0
  268. package/templates/engine/.agents/roles/pr-adjudicator.md +27 -0
  269. package/templates/engine/.agents/roles/pr-finder.md +51 -0
  270. package/templates/engine/.agents/roles/pr-verifier.md +44 -0
  271. package/templates/engine/.agents/roles/ui-verifier.md +22 -0
  272. package/templates/engine/.agents/roles/wiki-compiler.md +47 -0
  273. package/templates/engine/.agents/scripts/agent-eval.mjs +268 -0
  274. package/templates/engine/.agents/scripts/agg-delegations.mjs +439 -0
  275. package/templates/engine/.agents/scripts/agg-judgments.mjs +301 -0
  276. package/templates/engine/.agents/scripts/agg-kb-usage.mjs +196 -0
  277. package/templates/engine/.agents/scripts/append-compensation.mjs +109 -0
  278. package/templates/engine/.agents/scripts/archive-sweep.mjs +229 -0
  279. package/templates/engine/.agents/scripts/auto-tour.mjs +77 -0
  280. package/templates/engine/.agents/scripts/board-port.mjs +17 -0
  281. package/templates/engine/.agents/scripts/check-doc-body-drift.mjs +102 -0
  282. package/templates/engine/.agents/scripts/check-engine-artifacts.mjs +54 -0
  283. package/templates/engine/.agents/scripts/check-hook-wiring.mjs +75 -0
  284. package/templates/engine/.agents/scripts/check-lane-surface.mjs +393 -0
  285. package/templates/engine/.agents/scripts/check-ledger-doc-presence.mjs +71 -0
  286. package/templates/engine/.agents/scripts/check-ledger-invariant.mjs +873 -0
  287. package/templates/engine/.agents/scripts/check-local-gate-config.mjs +95 -0
  288. package/templates/engine/.agents/scripts/check-local-gates.mjs +248 -0
  289. package/templates/engine/.agents/scripts/check-loop-kit.mjs +550 -0
  290. package/templates/engine/.agents/scripts/check-loop-rev-semantics.mjs +59 -0
  291. package/templates/engine/.agents/scripts/check-loop-sections/s01-pairing.mjs +116 -0
  292. package/templates/engine/.agents/scripts/check-loop-sections/s03x-regr-evidence.mjs +38 -0
  293. package/templates/engine/.agents/scripts/check-loop-sections/s08-acceptance.mjs +130 -0
  294. package/templates/engine/.agents/scripts/check-loop-sections/s15-fingerprint.mjs +152 -0
  295. package/templates/engine/.agents/scripts/check-loop-sections/s23-convergence-audit.mjs +182 -0
  296. package/templates/engine/.agents/scripts/check-loop-sections/s29-regr-enforcer.mjs +69 -0
  297. package/templates/engine/.agents/scripts/check-loop.mjs +131 -0
  298. package/templates/engine/.agents/scripts/check-pipeline-state.mjs +85 -0
  299. package/templates/engine/.agents/scripts/check-regression-consistency.mjs +252 -0
  300. package/templates/engine/.agents/scripts/check-schema-residue.mjs +144 -0
  301. package/templates/engine/.agents/scripts/check-scope-range.mjs +156 -0
  302. package/templates/engine/.agents/scripts/check-scope.mjs +121 -0
  303. package/templates/engine/.agents/scripts/check-scripts-syntax.mjs +138 -0
  304. package/templates/engine/.agents/scripts/check-secrets-lite.mjs +239 -0
  305. package/templates/engine/.agents/scripts/check-secrets.mjs +104 -0
  306. package/templates/engine/.agents/scripts/check-test-impact-map.mjs +107 -0
  307. package/templates/engine/.agents/scripts/ci-assert-frontend-deps.mjs +42 -0
  308. package/templates/engine/.agents/scripts/ci-commit-hygiene.mjs +86 -0
  309. package/templates/engine/.agents/scripts/ci-install-gitleaks.mjs +75 -0
  310. package/templates/engine/.agents/scripts/ci-push-before.mjs +49 -0
  311. package/templates/engine/.agents/scripts/claims.mjs +166 -0
  312. package/templates/engine/.agents/scripts/closeout.mjs +127 -0
  313. package/templates/engine/.agents/scripts/compact-ledgers.mjs +70 -0
  314. package/templates/engine/.agents/scripts/confirm-doc.mjs +737 -0
  315. package/templates/engine/.agents/scripts/delegation-presence.mjs +38 -0
  316. package/templates/engine/.agents/scripts/dev-tour-model.mjs +1398 -0
  317. package/templates/engine/.agents/scripts/dream-run.mjs +358 -0
  318. package/templates/engine/.agents/scripts/ensure-board.mjs +187 -0
  319. package/templates/engine/.agents/scripts/failure-attribution.mjs +11 -0
  320. package/templates/engine/.agents/scripts/fill-intent.mjs +60 -0
  321. package/templates/engine/.agents/scripts/fill-plan.mjs +105 -0
  322. package/templates/engine/.agents/scripts/fill-spec.mjs +72 -0
  323. package/templates/engine/.agents/scripts/fix-task.mjs +77 -0
  324. package/templates/engine/.agents/scripts/gen-dev-tour.mjs +191 -0
  325. package/templates/engine/.agents/scripts/gen-effective-policy.mjs +113 -0
  326. package/templates/engine/.agents/scripts/gen-engine-map.mjs +292 -0
  327. package/templates/engine/.agents/scripts/gen-narrative-claims.mjs +275 -0
  328. package/templates/engine/.agents/scripts/gen-verify-evidence.mjs +115 -0
  329. package/templates/engine/.agents/scripts/gen-wiki-board.mjs +221 -0
  330. package/templates/engine/.agents/scripts/gen-workflow-index.mjs +201 -0
  331. package/templates/engine/.agents/scripts/gen-workflow-metrics.mjs +692 -0
  332. package/templates/engine/.agents/scripts/git-merge-jsonl.mjs +62 -0
  333. package/templates/engine/.agents/scripts/judgment-ledger.mjs +68 -0
  334. package/templates/engine/.agents/scripts/kb-cache-evict.mjs +50 -0
  335. package/templates/engine/.agents/scripts/kb-search.mjs +423 -0
  336. package/templates/engine/.agents/scripts/lane-surface-audit.mjs +145 -0
  337. package/templates/engine/.agents/scripts/ledger-loader.mjs +77 -0
  338. package/templates/engine/.agents/scripts/ledger-shards.mjs +346 -0
  339. package/templates/engine/.agents/scripts/memory-tier.mjs +196 -0
  340. package/templates/engine/.agents/scripts/memory-wiki.mjs +296 -0
  341. package/templates/engine/.agents/scripts/metrics-core.mjs +131 -0
  342. package/templates/engine/.agents/scripts/outcome-metrics.mjs +195 -0
  343. package/templates/engine/.agents/scripts/path-lease.mjs +177 -0
  344. package/templates/engine/.agents/scripts/pipeline-run.mjs +964 -0
  345. package/templates/engine/.agents/scripts/policy.mjs +250 -0
  346. package/templates/engine/.agents/scripts/pr-create.mjs +54 -0
  347. package/templates/engine/.agents/scripts/pr-review.mjs +1551 -0
  348. package/templates/engine/.agents/scripts/quote-grounding.mjs +233 -0
  349. package/templates/engine/.agents/scripts/regen-ledgers.mjs +59 -0
  350. package/templates/engine/.agents/scripts/rewrite-file.mjs +135 -0
  351. package/templates/engine/.agents/scripts/rule-budget.mjs +246 -0
  352. package/templates/engine/.agents/scripts/session-log.mjs +157 -0
  353. package/templates/engine/.agents/scripts/stage-gates.mjs +812 -0
  354. package/templates/engine/.agents/scripts/steering.mjs +75 -0
  355. package/templates/engine/.agents/scripts/test-impact-lib.mjs +451 -0
  356. package/templates/engine/.agents/scripts/test-impact.mjs +105 -0
  357. package/templates/engine/.agents/scripts/trust-mode.mjs +130 -0
  358. package/templates/engine/.agents/scripts/verify-scope.mjs +163 -0
  359. package/templates/engine/.agents/scripts/verify-wiki-consistency.mjs +264 -0
  360. package/templates/engine/.agents/scripts/verify.mjs +858 -0
  361. package/templates/engine/.agents/scripts/warn-format.mjs +57 -0
  362. package/templates/engine/.agents/scripts/wf-journal.mjs +230 -0
  363. package/templates/engine/.agents/scripts/workflow-board-server.mjs +696 -0
  364. package/templates/engine/.agents/scripts/workflow-enums.mjs +70 -0
  365. package/templates/engine/.agents/scripts/workflows-check.mjs +260 -0
  366. package/templates/engine/.agents/settings.json +33 -0
  367. package/templates/engine/.agents/skills/arena/SKILL.md +54 -0
  368. package/templates/engine/.agents/skills/autonomous-run/SKILL.md +45 -0
  369. package/templates/engine/.agents/skills/blast-radius/SKILL.md +53 -0
  370. package/templates/engine/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  371. package/templates/engine/.agents/skills/csharp-quality-gates/scripts/quality-gates.mjs +430 -0
  372. package/templates/engine/.agents/skills/dev-tour/SKILL.md +98 -0
  373. package/templates/engine/.agents/skills/dream/SKILL.md +82 -0
  374. package/templates/engine/.agents/skills/eval/SKILL.md +58 -0
  375. package/templates/engine/.agents/skills/eval/scripts/eval-score.mjs +59 -0
  376. package/templates/engine/.agents/skills/interrogate/SKILL.md +49 -0
  377. package/templates/engine/.agents/skills/interrogate/scripts/interrogate-plan.mjs +72 -0
  378. package/templates/engine/.agents/skills/model-upgrade/SKILL.md +41 -0
  379. package/templates/engine/.agents/skills/number-vetting/SKILL.md +35 -0
  380. package/templates/engine/.agents/skills/page-refactor/SKILL.md +192 -0
  381. package/templates/engine/.agents/skills/page-refactor/references/templates.md +989 -0
  382. package/templates/engine/.agents/skills/papercut-fix/SKILL.md +92 -0
  383. package/templates/engine/.agents/skills/papercut-fix/references/response-template.md +81 -0
  384. package/templates/engine/.agents/skills/pause-safely/SKILL.md +31 -0
  385. package/templates/engine/.agents/skills/perf/SKILL.md +42 -0
  386. package/templates/engine/.agents/skills/review-method/SKILL.md +92 -0
  387. package/templates/engine/.agents/skills/review-method/golden-set.md +61 -0
  388. package/templates/engine/.agents/skills/session-resume/SKILL.md +76 -0
  389. package/templates/engine/.agents/skills/session-resume/scripts/worktree-audit.mjs +110 -0
  390. package/templates/engine/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  391. package/templates/engine/.agents/skills/show-me-your-work/SKILL.md +71 -0
  392. package/templates/engine/.agents/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  393. package/templates/engine/.agents/skills/show-me-your-work/scripts/decision-log.mjs +24 -0
  394. package/templates/engine/.agents/skills/tfs-pr/SKILL.md +95 -0
  395. package/templates/engine/.agents/skills/tfs-pr/scripts/tfs-pr.mjs +947 -0
  396. package/templates/engine/.agents/skills/verify-ui/SKILL.md +116 -0
  397. package/templates/engine/.agents/skills/verify-ui/features/.gitkeep +0 -0
  398. package/templates/engine/.agents/skills/verify-ui/scripts/gen-verify-feature.mjs +114 -0
  399. package/templates/engine/.agents/skills/visual-parity/SKILL.md +35 -0
  400. package/templates/engine/.agents/skills/why/SKILL.md +56 -0
  401. package/templates/engine/.agents/skills/why/scripts/why-evidence.mjs +74 -0
  402. package/templates/engine/.agents/skills/wiki/SKILL.md +56 -0
  403. package/templates/engine/.agents/tests/auto-tour.test.mjs +82 -0
  404. package/templates/engine/.agents/tests/dev-tour-model.test.mjs +452 -0
  405. package/templates/engine/.agents/tests/fill-plan-lite.test.mjs +46 -0
  406. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.md +14 -0
  407. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.model.json +179 -0
  408. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.md +21 -0
  409. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.model.json +194 -0
  410. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.md +20 -0
  411. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.model.json +207 -0
  412. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.md +24 -0
  413. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.model.json +225 -0
  414. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.md +15 -0
  415. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.model.json +160 -0
  416. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.md +29 -0
  417. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.model.json +266 -0
  418. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.md +17 -0
  419. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.model.json +207 -0
  420. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.md +39 -0
  421. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.model.json +359 -0
  422. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.md +16 -0
  423. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.model.json +131 -0
  424. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.md +29 -0
  425. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.model.json +190 -0
  426. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.md +39 -0
  427. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.model.json +362 -0
  428. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.md +24 -0
  429. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.model.json +224 -0
  430. package/templates/engine/.agents/tests/tools/gen-synthetic-plan.mjs +108 -0
  431. package/templates/git/.gitattributes +23 -0
  432. package/templates/git/.githooks/commit-msg +72 -0
  433. package/templates/git/.githooks/package.json +3 -0
  434. package/templates/git/.githooks/post-commit +62 -0
  435. package/templates/git/.githooks/pre-commit +197 -0
  436. package/templates/git/.githooks/pre-merge-commit +28 -0
  437. package/templates/git/.githooks/pre-push +201 -0
  438. package/templates/git/.github/workflows/ci.yml +32 -0
  439. package/templates/git/.gitignore.engine +11 -0
  440. package/templates/git/azure-pipelines.yml +46 -0
  441. package/templates/host-meta/SKILLS.md +3 -0
  442. package/templates/host-meta/claude/skill-pointer.md +6 -0
  443. package/templates/host-meta/cline/skill-index.md +6 -0
  444. package/templates/host-meta/codebuddy/skill-pointer.md +6 -0
  445. package/templates/host-meta/commandcode/skill-index.md +5 -0
  446. package/templates/host-meta/opencode/skill-pointer.md +6 -0
  447. package/templates/host-meta/qoder/skill-index.md +5 -0
  448. package/templates/host-meta/qwen/skill-index.md +5 -0
  449. package/templates/host-meta/trae/skill-index.md +6 -0
  450. package/templates/hosts/claude/CLAUDE.md +55 -0
  451. package/templates/hosts/claude/agents/implementer.md +7 -0
  452. package/templates/hosts/claude/agents/independent-reviewer.md +8 -0
  453. package/templates/hosts/claude/agents/pr-adjudicator.md +8 -0
  454. package/templates/hosts/claude/agents/pr-finder.md +8 -0
  455. package/templates/hosts/claude/agents/pr-verifier.md +8 -0
  456. package/templates/hosts/claude/agents/ui-verifier.md +8 -0
  457. package/templates/hosts/claude/agents/wiki-compiler.md +8 -0
  458. package/templates/hosts/claude/commands/wf-deploy.md +10 -0
  459. package/templates/hosts/claude/commands/wf-maintain.md +10 -0
  460. package/templates/hosts/claude/commands/wf-new-task.md +10 -0
  461. package/templates/hosts/claude/commands/wf-pipeline-run.md +10 -0
  462. package/templates/hosts/claude/commands/wf-pr-review.md +10 -0
  463. package/templates/hosts/claude/commands/wf-review.md +10 -0
  464. package/templates/hosts/claude/commands/wf-stages.md +10 -0
  465. package/templates/hosts/claude/settings.hardened.json +94 -0
  466. package/templates/hosts/claude/settings.json +55 -0
  467. package/templates/hosts/cline/agents/implementer.yml +15 -0
  468. package/templates/hosts/cline/agents/independent-reviewer.yml +20 -0
  469. package/templates/hosts/cline/agents/pr-adjudicator.yml +18 -0
  470. package/templates/hosts/cline/agents/pr-finder.yml +19 -0
  471. package/templates/hosts/cline/agents/pr-verifier.yml +18 -0
  472. package/templates/hosts/cline/agents/ui-verifier.yml +17 -0
  473. package/templates/hosts/cline/agents/wiki-compiler.yml +20 -0
  474. package/templates/hosts/cline/hooks/PreToolUse.cjs +260 -0
  475. package/templates/hosts/cline/workflows/wf-deploy.md +8 -0
  476. package/templates/hosts/cline/workflows/wf-maintain.md +8 -0
  477. package/templates/hosts/cline/workflows/wf-new-task.md +8 -0
  478. package/templates/hosts/cline/workflows/wf-pipeline-run.md +8 -0
  479. package/templates/hosts/cline/workflows/wf-pr-review.md +8 -0
  480. package/templates/hosts/cline/workflows/wf-review.md +8 -0
  481. package/templates/hosts/cline/workflows/wf-stages.md +8 -0
  482. package/templates/hosts/codebuddy/CODEBUDDY.md +7 -0
  483. package/templates/hosts/codebuddy/agents/implementer.md +9 -0
  484. package/templates/hosts/codebuddy/agents/independent-reviewer.md +10 -0
  485. package/templates/hosts/codebuddy/agents/pr-adjudicator.md +10 -0
  486. package/templates/hosts/codebuddy/agents/pr-finder.md +10 -0
  487. package/templates/hosts/codebuddy/agents/pr-verifier.md +10 -0
  488. package/templates/hosts/codebuddy/agents/ui-verifier.md +11 -0
  489. package/templates/hosts/codebuddy/agents/wiki-compiler.md +10 -0
  490. package/templates/hosts/codebuddy/commands/wf-deploy.md +10 -0
  491. package/templates/hosts/codebuddy/commands/wf-maintain.md +10 -0
  492. package/templates/hosts/codebuddy/commands/wf-new-task.md +10 -0
  493. package/templates/hosts/codebuddy/commands/wf-pipeline-run.md +10 -0
  494. package/templates/hosts/codebuddy/commands/wf-pr-review.md +10 -0
  495. package/templates/hosts/codebuddy/commands/wf-review.md +10 -0
  496. package/templates/hosts/codebuddy/commands/wf-stages.md +10 -0
  497. package/templates/hosts/codebuddy/rules/backend-scope.md +5 -0
  498. package/templates/hosts/codebuddy/rules/frontend-scope.md +5 -0
  499. package/templates/hosts/codebuddy/settings.json +31 -0
  500. package/templates/hosts/codebuddy/skills/tfs-pr/SKILL.md +6 -0
  501. package/templates/hosts/commandcode/agents/implementer.md +10 -0
  502. package/templates/hosts/commandcode/agents/independent-reviewer.md +9 -0
  503. package/templates/hosts/commandcode/agents/pr-adjudicator.md +9 -0
  504. package/templates/hosts/commandcode/agents/pr-finder.md +9 -0
  505. package/templates/hosts/commandcode/agents/pr-verifier.md +9 -0
  506. package/templates/hosts/commandcode/agents/ui-verifier.md +11 -0
  507. package/templates/hosts/commandcode/agents/wiki-compiler.md +10 -0
  508. package/templates/hosts/commandcode/commands/wf-deploy.md +9 -0
  509. package/templates/hosts/commandcode/commands/wf-maintain.md +9 -0
  510. package/templates/hosts/commandcode/commands/wf-new-task.md +9 -0
  511. package/templates/hosts/commandcode/commands/wf-pipeline-run.md +9 -0
  512. package/templates/hosts/commandcode/commands/wf-pr-review.md +9 -0
  513. package/templates/hosts/commandcode/commands/wf-review.md +9 -0
  514. package/templates/hosts/commandcode/commands/wf-stages.md +9 -0
  515. package/templates/hosts/commandcode/settings.json +57 -0
  516. package/templates/hosts/opencode/agents/implementer.md +51 -0
  517. package/templates/hosts/opencode/agents/independent-reviewer.md +18 -0
  518. package/templates/hosts/opencode/agents/pr-adjudicator.md +18 -0
  519. package/templates/hosts/opencode/agents/pr-finder.md +18 -0
  520. package/templates/hosts/opencode/agents/pr-verifier.md +18 -0
  521. package/templates/hosts/opencode/agents/ui-verifier.md +45 -0
  522. package/templates/hosts/opencode/agents/wiki-compiler.md +51 -0
  523. package/templates/hosts/opencode/commands/wf-deploy.md +7 -0
  524. package/templates/hosts/opencode/commands/wf-maintain.md +7 -0
  525. package/templates/hosts/opencode/commands/wf-new-task.md +7 -0
  526. package/templates/hosts/opencode/commands/wf-pipeline-run.md +7 -0
  527. package/templates/hosts/opencode/commands/wf-pr-review.md +7 -0
  528. package/templates/hosts/opencode/commands/wf-review.md +7 -0
  529. package/templates/hosts/opencode/commands/wf-stages.md +7 -0
  530. package/templates/hosts/pi/agents/implementer.md +10 -0
  531. package/templates/hosts/pi/agents/independent-reviewer.md +11 -0
  532. package/templates/hosts/pi/agents/pr-adjudicator.md +11 -0
  533. package/templates/hosts/pi/agents/pr-finder.md +10 -0
  534. package/templates/hosts/pi/agents/pr-verifier.md +10 -0
  535. package/templates/hosts/pi/agents/ui-verifier.md +10 -0
  536. package/templates/hosts/pi/agents/wiki-compiler.md +10 -0
  537. package/templates/hosts/pi/extensions/lib/gates-core.cjs +196 -0
  538. package/templates/hosts/pi/extensions/shipyard-gates.ts +95 -0
  539. package/templates/hosts/pi/settings.json +5 -0
  540. package/templates/hosts/qoder/agents/implementer.md +9 -0
  541. package/templates/hosts/qoder/agents/independent-reviewer.md +10 -0
  542. package/templates/hosts/qoder/agents/pr-adjudicator.md +10 -0
  543. package/templates/hosts/qoder/agents/pr-finder.md +10 -0
  544. package/templates/hosts/qoder/agents/pr-verifier.md +10 -0
  545. package/templates/hosts/qoder/agents/ui-verifier.md +10 -0
  546. package/templates/hosts/qoder/agents/wiki-compiler.md +10 -0
  547. package/templates/hosts/qoder/commands/wf-deploy.md +8 -0
  548. package/templates/hosts/qoder/commands/wf-maintain.md +8 -0
  549. package/templates/hosts/qoder/commands/wf-new-task.md +8 -0
  550. package/templates/hosts/qoder/commands/wf-pipeline-run.md +8 -0
  551. package/templates/hosts/qoder/commands/wf-pr-review.md +8 -0
  552. package/templates/hosts/qoder/commands/wf-review.md +8 -0
  553. package/templates/hosts/qoder/commands/wf-stages.md +8 -0
  554. package/templates/hosts/qoder/settings.json +61 -0
  555. package/templates/hosts/qwen/agents/implementer.md +8 -0
  556. package/templates/hosts/qwen/agents/independent-reviewer.md +8 -0
  557. package/templates/hosts/qwen/agents/pr-adjudicator.md +8 -0
  558. package/templates/hosts/qwen/agents/pr-finder.md +8 -0
  559. package/templates/hosts/qwen/agents/pr-verifier.md +8 -0
  560. package/templates/hosts/qwen/agents/ui-verifier.md +8 -0
  561. package/templates/hosts/qwen/agents/wiki-compiler.md +11 -0
  562. package/templates/hosts/qwen/commands/wf-deploy.md +9 -0
  563. package/templates/hosts/qwen/commands/wf-maintain.md +9 -0
  564. package/templates/hosts/qwen/commands/wf-new-task.md +9 -0
  565. package/templates/hosts/qwen/commands/wf-pipeline-run.md +9 -0
  566. package/templates/hosts/qwen/commands/wf-pr-review.md +9 -0
  567. package/templates/hosts/qwen/commands/wf-review.md +9 -0
  568. package/templates/hosts/qwen/commands/wf-stages.md +9 -0
  569. package/templates/hosts/qwen/settings.json +57 -0
  570. package/templates/hosts/trae/agents/implementer.md +9 -0
  571. package/templates/hosts/trae/agents/independent-reviewer.md +10 -0
  572. package/templates/hosts/trae/agents/pr-adjudicator.md +10 -0
  573. package/templates/hosts/trae/agents/pr-finder.md +10 -0
  574. package/templates/hosts/trae/agents/pr-verifier.md +10 -0
  575. package/templates/hosts/trae/agents/ui-verifier.md +10 -0
  576. package/templates/hosts/trae/agents/wiki-compiler.md +10 -0
  577. package/templates/hosts/trae/commands/wf-deploy.md +8 -0
  578. package/templates/hosts/trae/commands/wf-maintain.md +8 -0
  579. package/templates/hosts/trae/commands/wf-new-task.md +8 -0
  580. package/templates/hosts/trae/commands/wf-pipeline-run.md +8 -0
  581. package/templates/hosts/trae/commands/wf-pr-review.md +8 -0
  582. package/templates/hosts/trae/commands/wf-review.md +8 -0
  583. package/templates/hosts/trae/commands/wf-stages.md +8 -0
  584. package/templates/hosts/trae/hooks.json +17 -0
  585. package/templates/hosts/trae/rules/backend-scope.md +5 -0
  586. package/templates/hosts/trae/rules/frontend-scope.md +5 -0
  587. package/templates/hosts/zcode/agents/implementer.md +8 -0
  588. package/templates/hosts/zcode/agents/independent-reviewer.md +8 -0
  589. package/templates/hosts/zcode/agents/ui-verifier.md +8 -0
  590. package/templates/hosts/zcode/agents/wiki-compiler.md +8 -0
  591. package/templates/hosts/zcode/config.json +31 -0
  592. package/templates/hosts/zcode/workflows/code-review.dwf.ts +428 -0
  593. package/templates/hosts/zcode/workflows/fullchain-flow-test.dwf.ts +898 -0
  594. package/templates/profiles/dotnet/.agents/config/lane-surfaces.txt +33 -0
  595. package/templates/profiles/dotnet/.agents/config/rule-budgets.txt +84 -0
  596. package/templates/profiles/dotnet/.agents/config/test-impact-map.json +590 -0
  597. package/templates/profiles/dotnet/.agents/config/workflow-modules.txt +18 -0
  598. package/templates/profiles/dotnet/.agents/hooks/commit-check.config.json +18 -0
  599. package/templates/profiles/dotnet/.agents/hooks/delete-guard-allowlist.txt +28 -0
  600. package/templates/profiles/dotnet/.agents/notes/runtime-env.md +178 -0
  601. package/templates/profiles/dotnet/AGENTS.md +52 -0
  602. package/templates/profiles/empty/.agents/config/lane-surfaces.txt +12 -0
  603. package/templates/profiles/empty/.agents/config/rule-budgets.txt +3 -0
  604. package/templates/profiles/empty/.agents/config/test-impact-map.json +8 -0
  605. package/templates/profiles/empty/.agents/config/workflow-modules.txt +2 -0
  606. package/templates/profiles/empty/.agents/hooks/commit-check.config.json +5 -0
  607. package/templates/profiles/empty/.agents/hooks/delete-guard-allowlist.txt +2 -0
  608. package/templates/profiles/empty/.agents/notes/runtime-env.md +44 -0
  609. package/templates/profiles/empty/AGENTS.md +52 -0
  610. package/templates/profiles/go/AGENTS.md +52 -0
  611. package/templates/profiles/java/AGENTS.md +52 -0
  612. package/templates/profiles/node/.agents/config/lane-surfaces.txt +12 -0
  613. package/templates/profiles/node/.agents/config/rule-budgets.txt +3 -0
  614. package/templates/profiles/node/.agents/config/test-impact-map.json +8 -0
  615. package/templates/profiles/node/.agents/config/workflow-modules.txt +2 -0
  616. package/templates/profiles/node/.agents/hooks/commit-check.config.json +5 -0
  617. package/templates/profiles/node/.agents/hooks/delete-guard-allowlist.txt +2 -0
  618. package/templates/profiles/node/.agents/notes/runtime-env.md +44 -0
  619. package/templates/profiles/node/AGENTS.md +52 -0
  620. package/templates/profiles/rust/AGENTS.md +52 -0
  621. package/templates/profiles/typescript/AGENTS.md +52 -0
  622. package/templates/scaffold/wiki/INDEX.md +33 -0
  623. package/templates/scaffold/wiki/drafts-archive/README.md +7 -0
  624. package/templates/scaffold/wiki//344/272/247/345/223/201/351/234/200/346/261/202/.gitkeep +0 -0
  625. package/templates/scaffold/wiki//345/274/200/345/217/221/346/226/271/346/241/210/.gitkeep +0 -0
  626. package/templates/scaffold/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  627. package/templates/scaffold/wiki//346/265/213/350/257/225/346/212/245/345/221/212/.gitkeep +0 -0
  628. package/templates/scaffold/wiki//347/224/250/346/210/267/345/212/237/350/203/275/.gitkeep +0 -0
  629. package/templates/scaffold/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  630. package/templates/scaffold/wiki//351/241/271/347/233/256/350/247/204/350/214/203/.gitkeep +0 -0
  631. package/templates/scaffold/workflow/INDEX.md +29 -0
  632. package/templates/scaffold/workflow/README.md +69 -0
  633. package/templates/scaffold/workflow/archive/README.md +3 -0
  634. package/templates/scaffold/workflow/artifact-sources.md +25 -0
  635. package/templates/scaffold/workflow/delegations.d/.gitkeep +0 -0
  636. package/templates/scaffold/workflow/delegations.md +4 -0
  637. package/templates/scaffold/workflow/effective-policy.md +4 -0
  638. package/templates/scaffold/workflow/evidence/.gitkeep +0 -0
  639. package/templates/scaffold/workflow/gate-cost.md +4 -0
  640. package/templates/scaffold/workflow/gate-metrics.d/.gitkeep +0 -0
  641. package/templates/scaffold/workflow/incidents/_TEMPLATE.md +49 -0
  642. package/templates/scaffold/workflow/intents/_TEMPLATE.md +43 -0
  643. package/templates/scaffold/workflow/metrics.md +4 -0
  644. package/templates/scaffold/workflow/non-engineer-intent.md +51 -0
  645. package/templates/scaffold/workflow/papercuts.d/.gitkeep +0 -0
  646. package/templates/scaffold/workflow/papercuts.md +3 -0
  647. package/templates/scaffold/workflow/plans/_TEMPLATE.md +47 -0
  648. package/templates/scaffold/workflow/regression-checklist.d/.gitkeep +0 -0
  649. package/templates/scaffold/workflow/regression-checklist.md +3 -0
  650. package/templates/scaffold/workflow/research/.gitkeep +0 -0
  651. package/templates/scaffold/workflow/reviews.d/.gitkeep +0 -0
  652. package/templates/scaffold/workflow/specs/_TEMPLATE.md +87 -0
  653. package/templates/scaffold/workflow/verify-evidence/.gitkeep +0 -0
  654. package/templates/scaffold/workflow/verify-evidence.md +4 -0
  655. package/modules/gates/README.md +0 -25
  656. package/modules/gates/dotnet-ca/README.md +0 -24
  657. package/modules/gates/dotnet-ca/check-architecture.sh +0 -150
  658. package/modules/gates/dotnet-ca/local-pre-commit.line +0 -1
  659. package/modules/gates/generated-readonly/README.md +0 -13
  660. package/modules/gates/generated-readonly/check-generated.mjs +0 -61
  661. package/modules/gates/generated-readonly/local-pre-commit.line +0 -1
  662. package/modules/gates/node-layer/README.md +0 -9
  663. package/modules/gates/node-layer/check-node-layer.mjs +0 -29
  664. package/modules/gates/node-layer/local-pre-commit.line +0 -1
  665. package/modules/gates/py-import/README.md +0 -9
  666. package/modules/gates/py-import/check-py-import.mjs +0 -30
  667. package/modules/gates/py-import/local-pre-commit.line +0 -1
  668. package/modules/gates/test-protect/README.md +0 -23
  669. package/modules/gates/test-protect/check-test-protect.mjs +0 -64
  670. package/modules/gates/test-protect/local-pre-commit.line +0 -1
  671. package/modules/hosts/README.md +0 -57
  672. package/modules/hosts/claude/agents/implementer.md +0 -51
  673. package/modules/hosts/claude/agents/independent-reviewer.md +0 -49
  674. package/modules/hosts/claude/agents/ui-verifier.md +0 -48
  675. package/modules/hosts/claude/commands/wf-build.md +0 -69
  676. package/modules/hosts/claude/commands/wf-deploy.md +0 -58
  677. package/modules/hosts/claude/commands/wf-design.md +0 -49
  678. package/modules/hosts/claude/commands/wf-gate-checklist.md +0 -77
  679. package/modules/hosts/claude/commands/wf-maintain.md +0 -76
  680. package/modules/hosts/claude/commands/wf-new-task.md +0 -102
  681. package/modules/hosts/claude/commands/wf-pipeline-run.md +0 -35
  682. package/modules/hosts/claude/commands/wf-plan.md +0 -40
  683. package/modules/hosts/claude/commands/wf-review.md +0 -49
  684. package/modules/hosts/claude/commands/wf-sync-hosts.md +0 -64
  685. package/modules/hosts/claude/commands/wf-test.md +0 -68
  686. package/modules/hosts/codex/agents/implementer.md +0 -51
  687. package/modules/hosts/codex/agents/independent-reviewer.md +0 -49
  688. package/modules/hosts/codex/agents/ui-verifier.md +0 -48
  689. package/modules/hosts/codex/commands/wf-build.md +0 -69
  690. package/modules/hosts/codex/commands/wf-deploy.md +0 -58
  691. package/modules/hosts/codex/commands/wf-design.md +0 -49
  692. package/modules/hosts/codex/commands/wf-gate-checklist.md +0 -77
  693. package/modules/hosts/codex/commands/wf-maintain.md +0 -76
  694. package/modules/hosts/codex/commands/wf-new-task.md +0 -102
  695. package/modules/hosts/codex/commands/wf-pipeline-run.md +0 -35
  696. package/modules/hosts/codex/commands/wf-plan.md +0 -40
  697. package/modules/hosts/codex/commands/wf-review.md +0 -49
  698. package/modules/hosts/codex/commands/wf-sync-hosts.md +0 -64
  699. package/modules/hosts/codex/commands/wf-test.md +0 -68
  700. package/modules/hosts/codex/skills/flow-kit/SKILL.md +0 -14
  701. package/modules/hosts/cursor/agents/implementer.md +0 -51
  702. package/modules/hosts/cursor/agents/independent-reviewer.md +0 -49
  703. package/modules/hosts/cursor/agents/ui-verifier.md +0 -48
  704. package/modules/hosts/cursor/commands/wf-build.md +0 -69
  705. package/modules/hosts/cursor/commands/wf-deploy.md +0 -58
  706. package/modules/hosts/cursor/commands/wf-design.md +0 -49
  707. package/modules/hosts/cursor/commands/wf-gate-checklist.md +0 -77
  708. package/modules/hosts/cursor/commands/wf-maintain.md +0 -76
  709. package/modules/hosts/cursor/commands/wf-new-task.md +0 -102
  710. package/modules/hosts/cursor/commands/wf-pipeline-run.md +0 -35
  711. package/modules/hosts/cursor/commands/wf-plan.md +0 -40
  712. package/modules/hosts/cursor/commands/wf-review.md +0 -49
  713. package/modules/hosts/cursor/commands/wf-sync-hosts.md +0 -64
  714. package/modules/hosts/cursor/commands/wf-test.md +0 -68
  715. package/modules/hosts/omp/agents/implementer.md +0 -52
  716. package/modules/hosts/omp/agents/independent-reviewer.md +0 -50
  717. package/modules/hosts/omp/agents/ui-verifier.md +0 -49
  718. package/modules/hosts/opencode/agents/implementer.md +0 -59
  719. package/modules/hosts/opencode/agents/independent-reviewer.md +0 -53
  720. package/modules/hosts/opencode/agents/ui-verifier.md +0 -52
  721. package/modules/hosts/opencode/commands/wf-build.md +0 -69
  722. package/modules/hosts/opencode/commands/wf-deploy.md +0 -58
  723. package/modules/hosts/opencode/commands/wf-design.md +0 -49
  724. package/modules/hosts/opencode/commands/wf-gate-checklist.md +0 -77
  725. package/modules/hosts/opencode/commands/wf-maintain.md +0 -76
  726. package/modules/hosts/opencode/commands/wf-new-task.md +0 -102
  727. package/modules/hosts/opencode/commands/wf-pipeline-run.md +0 -35
  728. package/modules/hosts/opencode/commands/wf-plan.md +0 -40
  729. package/modules/hosts/opencode/commands/wf-review.md +0 -49
  730. package/modules/hosts/opencode/commands/wf-sync-hosts.md +0 -64
  731. package/modules/hosts/opencode/commands/wf-test.md +0 -68
  732. package/modules/hosts/trae/agents/implementer.md +0 -52
  733. package/modules/hosts/trae/agents/independent-reviewer.md +0 -51
  734. package/modules/hosts/trae/agents/ui-verifier.md +0 -50
  735. package/modules/hosts/trae/commands/wf-build.md +0 -70
  736. package/modules/hosts/trae/commands/wf-deploy.md +0 -59
  737. package/modules/hosts/trae/commands/wf-design.md +0 -50
  738. package/modules/hosts/trae/commands/wf-gate-checklist.md +0 -78
  739. package/modules/hosts/trae/commands/wf-maintain.md +0 -77
  740. package/modules/hosts/trae/commands/wf-new-task.md +0 -103
  741. package/modules/hosts/trae/commands/wf-pipeline-run.md +0 -36
  742. package/modules/hosts/trae/commands/wf-plan.md +0 -41
  743. package/modules/hosts/trae/commands/wf-review.md +0 -50
  744. package/modules/hosts/trae/commands/wf-sync-hosts.md +0 -65
  745. package/modules/hosts/trae/commands/wf-test.md +0 -69
  746. package/modules/hosts/trae/hooks/post-edit-check.cjs +0 -98
  747. package/modules/hosts/trae/hooks/pre-shell-check.cjs +0 -192
  748. package/modules/hosts/trae/hooks/resolve-shell.cjs +0 -30
  749. package/modules/hosts/trae/hooks.json +0 -29
  750. package/modules/hosts/trae/rules/beautify-input-chinese.md +0 -6
  751. package/modules/hosts/trae/rules/git-commit-message.md +0 -10
  752. package/modules/hosts/trae/rules/project-workflow.md +0 -14
  753. package/modules/hosts/zcode/agents/implementer.md +0 -51
  754. package/modules/hosts/zcode/agents/independent-reviewer.md +0 -49
  755. package/modules/hosts/zcode/agents/ui-verifier.md +0 -48
  756. package/src/add-gate.mjs +0 -116
  757. package/src/add-gate.test.mjs +0 -103
  758. package/src/add-host.mjs +0 -68
  759. package/src/cli.mjs +0 -169
  760. package/src/doctor.mjs +0 -629
  761. package/src/executor.mjs +0 -262
  762. package/src/executor.test.mjs +0 -295
  763. package/src/fresh-init.test.mjs +0 -64
  764. package/src/gate-dotnet-ca.test.mjs +0 -124
  765. package/src/gates.test.mjs +0 -143
  766. package/src/init.mjs +0 -382
  767. package/src/init.test.mjs +0 -163
  768. package/src/instance-ref.test.mjs +0 -62
  769. package/src/jscpd-drift.test.mjs +0 -145
  770. package/src/pack.test.mjs +0 -24
  771. package/src/profiles.mjs +0 -183
  772. package/src/render.mjs +0 -132
  773. package/src/rule-budget.test.mjs +0 -103
  774. package/src/run-tests.mjs +0 -56
  775. package/src/stack-profile.test.mjs +0 -95
  776. package/src/sync-hosts.mjs +0 -257
  777. package/src/sync-hosts.test.mjs +0 -291
  778. package/src/sync.mjs +0 -228
  779. package/src/sync.test.mjs +0 -452
  780. package/src/trae-hooks.test.mjs +0 -127
  781. package/src/validate.mjs +0 -77
  782. package/src/validate.test.mjs +0 -95
  783. package/templates/.gitattributes +0 -17
  784. package/templates/AGENTS.md +0 -58
  785. package/templates/_agents/board/index.html +0 -676
  786. package/templates/_agents/commands/build.md +0 -84
  787. package/templates/_agents/commands/deploy.md +0 -66
  788. package/templates/_agents/commands/design.md +0 -63
  789. package/templates/_agents/commands/gate-checklist.md +0 -91
  790. package/templates/_agents/commands/maintain.md +0 -90
  791. package/templates/_agents/commands/new-task.md +0 -110
  792. package/templates/_agents/commands/pipeline-run.md +0 -43
  793. package/templates/_agents/commands/plan.md +0 -48
  794. package/templates/_agents/commands/review.md +0 -62
  795. package/templates/_agents/commands/sync-hosts.md +0 -77
  796. package/templates/_agents/commands/test.md +0 -87
  797. package/templates/_agents/control-surfaces.txt +0 -53
  798. package/templates/_agents/engine-lock.json +0 -342
  799. package/templates/_agents/hooks/check-index-incremental.mjs +0 -48
  800. package/templates/_agents/hooks/check-pairing-incremental.mjs +0 -66
  801. package/templates/_agents/hooks/check-wiki-ledger.mjs +0 -30
  802. package/templates/_agents/hooks/commit-check.cjs +0 -193
  803. package/templates/_agents/hooks/local-pre-commit +0 -6
  804. package/templates/_agents/lane-surfaces.txt +0 -17
  805. package/templates/_agents/level-hints.txt +0 -30
  806. package/templates/_agents/loop/papercut-debt/DESIGN.md +0 -112
  807. package/templates/_agents/mechanism-registry.md +0 -35
  808. package/templates/_agents/metric-claims.txt +0 -81
  809. package/templates/_agents/notes/engine-internals.md +0 -17
  810. package/templates/_agents/notes/runtime-env.md +0 -18
  811. package/templates/_agents/roles/implementer.md +0 -47
  812. package/templates/_agents/roles/independent-reviewer.md +0 -45
  813. package/templates/_agents/roles/ui-verifier.md +0 -44
  814. package/templates/_agents/rule-budgets.txt +0 -20
  815. package/templates/_agents/scripts/agg-delegations.cjs +0 -302
  816. package/templates/_agents/scripts/agg-delegations.test.mjs +0 -282
  817. package/templates/_agents/scripts/agg-gate-stats.mjs +0 -113
  818. package/templates/_agents/scripts/agg-gate-stats.test.mjs +0 -95
  819. package/templates/_agents/scripts/agg-judgments.mjs +0 -156
  820. package/templates/_agents/scripts/agg-judgments.test.mjs +0 -93
  821. package/templates/_agents/scripts/archive-sweep.mjs +0 -235
  822. package/templates/_agents/scripts/archive-sweep.test.mjs +0 -129
  823. package/templates/_agents/scripts/check-attribution.mjs +0 -37
  824. package/templates/_agents/scripts/check-convergence.mjs +0 -124
  825. package/templates/_agents/scripts/check-engine-integrity.mjs +0 -220
  826. package/templates/_agents/scripts/check-engine-integrity.test.mjs +0 -215
  827. package/templates/_agents/scripts/check-funnel.mjs +0 -56
  828. package/templates/_agents/scripts/check-hygiene.mjs +0 -167
  829. package/templates/_agents/scripts/check-hygiene.test.mjs +0 -182
  830. package/templates/_agents/scripts/check-index-incremental.test.mjs +0 -73
  831. package/templates/_agents/scripts/check-lane-surface.mjs +0 -238
  832. package/templates/_agents/scripts/check-lane-surface.test.mjs +0 -302
  833. package/templates/_agents/scripts/check-ledger-invariant.mjs +0 -586
  834. package/templates/_agents/scripts/check-ledger-invariant.test.mjs +0 -639
  835. package/templates/_agents/scripts/check-loop-rev.test.mjs +0 -336
  836. package/templates/_agents/scripts/check-loop-unit.test.mjs +0 -103
  837. package/templates/_agents/scripts/check-loop.mjs +0 -1987
  838. package/templates/_agents/scripts/check-loop.sh +0 -6
  839. package/templates/_agents/scripts/check-loop.test.mjs +0 -3912
  840. package/templates/_agents/scripts/check-metric-claims.mjs +0 -277
  841. package/templates/_agents/scripts/check-prejudgment.mjs +0 -64
  842. package/templates/_agents/scripts/check-registry.mjs +0 -45
  843. package/templates/_agents/scripts/check-scope.mjs +0 -96
  844. package/templates/_agents/scripts/check-scope.test.mjs +0 -99
  845. package/templates/_agents/scripts/check-scripts-syntax.mjs +0 -84
  846. package/templates/_agents/scripts/check-scripts-syntax.test.mjs +0 -72
  847. package/templates/_agents/scripts/check-spec-verif.mjs +0 -47
  848. package/templates/_agents/scripts/check-stage-index.mjs +0 -40
  849. package/templates/_agents/scripts/check-stage-index.test.mjs +0 -77
  850. package/templates/_agents/scripts/closeout-l1.mjs +0 -217
  851. package/templates/_agents/scripts/closeout-l1.test.mjs +0 -105
  852. package/templates/_agents/scripts/commit-check-trigger.test.mjs +0 -205
  853. package/templates/_agents/scripts/compact-ledgers.mjs +0 -97
  854. package/templates/_agents/scripts/compact-ledgers.test.mjs +0 -162
  855. package/templates/_agents/scripts/confirm-doc.mjs +0 -610
  856. package/templates/_agents/scripts/confirm-doc.test.mjs +0 -1119
  857. package/templates/_agents/scripts/doctor.test.mjs +0 -770
  858. package/templates/_agents/scripts/draft-sediment.mjs +0 -178
  859. package/templates/_agents/scripts/draft-sediment.test.mjs +0 -272
  860. package/templates/_agents/scripts/edit-face-check.mjs +0 -109
  861. package/templates/_agents/scripts/edit-face-check.test.mjs +0 -99
  862. package/templates/_agents/scripts/ensure-board.mjs +0 -185
  863. package/templates/_agents/scripts/fill-intent.mjs +0 -91
  864. package/templates/_agents/scripts/fill-intent.test.mjs +0 -113
  865. package/templates/_agents/scripts/fill-plan.mjs +0 -79
  866. package/templates/_agents/scripts/fill-plan.test.mjs +0 -224
  867. package/templates/_agents/scripts/fill-spec.mjs +0 -70
  868. package/templates/_agents/scripts/fill-spec.test.mjs +0 -266
  869. package/templates/_agents/scripts/fixture-scripts.mjs +0 -153
  870. package/templates/_agents/scripts/fixture-scripts.test.mjs +0 -112
  871. package/templates/_agents/scripts/gate-checklist.mjs +0 -209
  872. package/templates/_agents/scripts/gate-checklist.test.mjs +0 -201
  873. package/templates/_agents/scripts/gate-seg.mjs +0 -54
  874. package/templates/_agents/scripts/gate-seg.test.mjs +0 -112
  875. package/templates/_agents/scripts/gen-effective-policy.mjs +0 -107
  876. package/templates/_agents/scripts/gen-effective-policy.test.mjs +0 -100
  877. package/templates/_agents/scripts/gen-verify-evidence.mjs +0 -107
  878. package/templates/_agents/scripts/gen-verify-evidence.test.mjs +0 -84
  879. package/templates/_agents/scripts/gen-wiki-board.mjs +0 -276
  880. package/templates/_agents/scripts/gen-wiki-board.test.mjs +0 -249
  881. package/templates/_agents/scripts/gen-workflow-dashboard.mjs +0 -251
  882. package/templates/_agents/scripts/gen-workflow-dashboard.test.mjs +0 -188
  883. package/templates/_agents/scripts/gen-workflow-index.mjs +0 -201
  884. package/templates/_agents/scripts/gen-workflow-index.test.mjs +0 -152
  885. package/templates/_agents/scripts/gen-workflow-metrics.mjs +0 -466
  886. package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +0 -343
  887. package/templates/_agents/scripts/git-merge-jsonl.mjs +0 -63
  888. package/templates/_agents/scripts/git-merge-jsonl.test.mjs +0 -125
  889. package/templates/_agents/scripts/judgment-ledger.mjs +0 -65
  890. package/templates/_agents/scripts/judgment-ledger.test.mjs +0 -129
  891. package/templates/_agents/scripts/kb-cache-evict.mjs +0 -50
  892. package/templates/_agents/scripts/kb-cache-evict.test.mjs +0 -104
  893. package/templates/_agents/scripts/kb-search.mjs +0 -413
  894. package/templates/_agents/scripts/kb-search.test.mjs +0 -299
  895. package/templates/_agents/scripts/lane-surface-audit.mjs +0 -143
  896. package/templates/_agents/scripts/lane-surface-audit.test.mjs +0 -93
  897. package/templates/_agents/scripts/ledger-doc-chain.test.mjs +0 -166
  898. package/templates/_agents/scripts/ledger-loader.mjs +0 -108
  899. package/templates/_agents/scripts/ledger-loader.test.mjs +0 -131
  900. package/templates/_agents/scripts/ledger-prune.mjs +0 -96
  901. package/templates/_agents/scripts/ledger-prune.test.mjs +0 -120
  902. package/templates/_agents/scripts/ledger-shards.mjs +0 -344
  903. package/templates/_agents/scripts/ledger-shards.test.mjs +0 -356
  904. package/templates/_agents/scripts/ledger-ts-monotonic.test.mjs +0 -135
  905. package/templates/_agents/scripts/level-criteria.mjs +0 -231
  906. package/templates/_agents/scripts/level-criteria.test.mjs +0 -281
  907. package/templates/_agents/scripts/mechanism-retire-watch.mjs +0 -183
  908. package/templates/_agents/scripts/mechanism-retire-watch.test.mjs +0 -114
  909. package/templates/_agents/scripts/papercut-debt-controller.mjs +0 -141
  910. package/templates/_agents/scripts/papercut-debt-controller.test.mjs +0 -127
  911. package/templates/_agents/scripts/papercut-debt-sensor.mjs +0 -170
  912. package/templates/_agents/scripts/papercut-debt-sensor.test.mjs +0 -146
  913. package/templates/_agents/scripts/pipeline-run-docs.mjs +0 -76
  914. package/templates/_agents/scripts/pipeline-run-run.mjs +0 -63
  915. package/templates/_agents/scripts/pipeline-run.mjs +0 -867
  916. package/templates/_agents/scripts/pipeline-run.test.mjs +0 -517
  917. package/templates/_agents/scripts/policy.mjs +0 -281
  918. package/templates/_agents/scripts/pre-push.test.mjs +0 -105
  919. package/templates/_agents/scripts/resolve-merge-conflicts.mjs +0 -110
  920. package/templates/_agents/scripts/resolve-merge-conflicts.test.mjs +0 -87
  921. package/templates/_agents/scripts/rewrite-file.mjs +0 -133
  922. package/templates/_agents/scripts/rewrite-file.test.mjs +0 -148
  923. package/templates/_agents/scripts/rule-budget.mjs +0 -96
  924. package/templates/_agents/scripts/rule-budget.test.mjs +0 -118
  925. package/templates/_agents/scripts/run-tests.mjs +0 -99
  926. package/templates/_agents/scripts/run-tests.test.mjs +0 -105
  927. package/templates/_agents/scripts/solidify-task.mjs +0 -109
  928. package/templates/_agents/scripts/solidify-task.test.mjs +0 -129
  929. package/templates/_agents/scripts/stage-gates.mjs +0 -343
  930. package/templates/_agents/scripts/stage-gates.test.mjs +0 -105
  931. package/templates/_agents/scripts/trust-mode.mjs +0 -67
  932. package/templates/_agents/scripts/trust-mode.test.mjs +0 -110
  933. package/templates/_agents/scripts/verify-wiki-consistency.mjs +0 -253
  934. package/templates/_agents/scripts/verify-wiki-consistency.test.mjs +0 -123
  935. package/templates/_agents/scripts/verify.mjs +0 -345
  936. package/templates/_agents/scripts/verify.test.mjs +0 -373
  937. package/templates/_agents/scripts/wf-journal.mjs +0 -231
  938. package/templates/_agents/scripts/wf-journal.test.mjs +0 -216
  939. package/templates/_agents/scripts/wiki-search.mjs +0 -19
  940. package/templates/_agents/scripts/wiki-search.test.mjs +0 -57
  941. package/templates/_agents/scripts/workflow-board-server.mjs +0 -393
  942. package/templates/_agents/scripts/workflow-board-server.test.mjs +0 -201
  943. package/templates/_agents/scripts/workflow-enums.mjs +0 -70
  944. package/templates/_agents/scripts/workflow-enums.test.mjs +0 -118
  945. package/templates/_agents/scripts/workflows-check.mjs +0 -260
  946. package/templates/_agents/scripts/workflows-check.test.mjs +0 -278
  947. package/templates/_agents/scripts-test-exempt.txt +0 -16
  948. package/templates/_agents/skills/papercut-fix/SKILL.md +0 -60
  949. package/templates/_agents/skills/papercut-fix/references/response-template.md +0 -81
  950. package/templates/_agents/skills/review-method/SKILL.md +0 -58
  951. package/templates/_agents/skills/verify-ui/SKILL.md +0 -61
  952. package/templates/_agents/skills/wiki/SKILL.md +0 -106
  953. package/templates/_agents/workflow-enums.txt +0 -26
  954. package/templates/_agents/workflow-modules.txt +0 -11
  955. package/templates/_agents/workflows/_TEMPLATE.md +0 -75
  956. package/templates/_agents/workflows/pipeline-closing.md +0 -28
  957. package/templates/_agents/workflows//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +0 -16
  958. package/templates/_githooks/commit-msg +0 -17
  959. package/templates/_githooks/post-commit +0 -10
  960. package/templates/_githooks/pre-commit +0 -126
  961. package/templates/_githooks/pre-merge-commit +0 -29
  962. package/templates/_githooks/pre-push +0 -136
  963. package/templates/_github/workflows/kit-ci.yml +0 -49
  964. package/templates/wiki/INDEX.md +0 -73
  965. package/templates/wiki/drafts-archive/README.md +0 -3
  966. package/templates/wiki//344/272/247/345/223/201/351/234/200/346/261/202/README.md +0 -3
  967. package/templates/wiki//345/274/200/345/217/221/346/226/271/346/241/210/README.md +0 -3
  968. package/templates/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +0 -3
  969. package/templates/wiki//346/265/213/350/257/225/346/212/245/345/221/212/README.md +0 -3
  970. package/templates/wiki//347/224/250/346/210/267/345/212/237/350/203/275/README.md +0 -3
  971. package/templates/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +0 -77
  972. package/templates/wiki//351/241/271/347/233/256/350/247/204/350/214/203/README.md +0 -3
  973. package/templates/wiki//351/241/271/347/233/256/350/256/241/345/210/222/README.md +0 -3
  974. package/templates/workflow/README.md +0 -91
  975. package/templates/workflow/delegations.md +0 -29
  976. package/templates/workflow/incidents/_TEMPLATE.md +0 -51
  977. package/templates/workflow/intents/_TEMPLATE.md +0 -51
  978. package/templates/workflow/papercuts.md +0 -9
  979. package/templates/workflow/plans/_TEMPLATE.md +0 -47
  980. package/templates/workflow/regression-checklist.md +0 -23
  981. package/templates/workflow/specs/_TEMPLATE.md +0 -80
  982. /package/templates/{_agents → engine/.agents}/board/marked.min.js +0 -0
  983. /package/templates/{_agents/workflows → engine/.agents/pipelines}/steps//347/244/272/344/276/213-/351/203/250/347/275/262/351/252/214/350/257/201.md" +0 -0
  984. /package/templates/{_agents → engine/.agents}/scripts/git-core.mjs +0 -0
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: eval
3
+ description: Blind evaluation of skill/prompt changes — A/B arms, same model and same context, a known-answer task set, compute hit rate and Δ; use when asking "is this skill change actually useful".
4
+ ---
5
+
6
+ # eval — Blind evaluation of changes
7
+
8
+ ## Triggers
9
+
10
+ - You add/modify a skill, prompt, or structure and want to know whether it actually improves behavior.
11
+ - `/reflect` landed a skill change and you need evidence to keep or revert it.
12
+ - Two options are too close to call; use a task set to adjudicate.
13
+
14
+ ## Steps
15
+
16
+ 1. **Define the task set**: 5–10 tasks, each with a **known answer/acceptance criterion**; include both positive and negative cases. Write it as TSV:
17
+ ```
18
+ task expected a b
19
+ ```
20
+ Leave `a`/`b` empty for now; fill in `pass`/`fail` after running.
21
+ 2. **Define two arms**: A = with the new skill/prompt; B = without/the old version. **Same model, same context, same tasks**; the evaluator does not know which arm is which (blind).
22
+ 3. **Run**: for each task, run both arms with a **new subagent**, sharing no conclusions; record the actual result against `expected`.
23
+ 4. **Compute**: `node .agents/skills/eval/scripts/eval-score.mjs <results.tsv>` → A/B hit rate, Δ, flipped tasks.
24
+ 5. **Judge**: Δ is clear and flips are explainable → keep; Δ near 0 or negative → revert/adjust; many flips → task ambiguity, fix the task set first.
25
+ 6. **Record it**: put the conclusion in the task document or `workflow/reviews.d/<current month>.md`; update `mechanism-registry.md` for mechanism changes.
26
+
27
+ ## Task-set template
28
+
29
+ ```
30
+ task expected a b
31
+ bug-fix-1 Fix after reproducing the failing case; tests turn green
32
+ bug-fix-2 Do not modify test assertions; change only the implementation
33
+ feature-1 New behavior has boundary cases
34
+ negative-1 Refuse to implement directly without a spec
35
+ ```
36
+
37
+ ## Boundaries
38
+
39
+ - Small N is noisy; do not claim effectiveness when Δ < 20pp.
40
+ - Without blinding it is not eval—an evaluator who knows the arm assignment will self-fulfill.
41
+ - Do not run both arms with the same model and then use it as the judge; use a different model or a human judge.
42
+ - The task set must separate "the skill helps" from "the model already knew it"; negative cases are the key defense against self-deception.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: interrogate
3
+ description: Multi-model multi-lens adversarial review — different models/lenses independently take apart the same diff, then aggregate and dedupe; use for high-risk PRs, L2/L3 reviews, or when a single-model review leaves you uneasy.
4
+ ---
5
+
6
+ # interrogate — Multi-lens adversarial review
7
+
8
+ ## Triggers
9
+
10
+ - A high-risk diff (cross-boundary, concurrency, authorization, data migration, public interface).
11
+ - You want one more pass beyond the L2/L3 independent review.
12
+ - A single-model review concludes "looks fine", but you are not convinced.
13
+
14
+ ## Core
15
+
16
+ **This is not another single-model review pass.** It has different models and different lenses take apart the same diff **independently**, then aggregate and dedupe. Different models catch different real bugs; the same model with a different lens can also catch what a single lens misses.
17
+
18
+ ## Steps
19
+
20
+ 1. **Fix the target**: base/head, spec path, risk level. Do not start until the target is fixed.
21
+ 2. **Generate the plan**: `node .agents/skills/interrogate/scripts/interrogate-plan.mjs --base <ref> --head <ref> [--spec <path>]`. It outputs six lenses (correctness / security / quality / performance / tests / spec) plus file slices and prompts for each lens.
22
+ 3. **Dispatch in parallel**: one subagent per lens, each reading the diff independently and sharing no conclusions.
23
+ - Model: follow the `review` role in `.agents/config/model-roles.json` (`heterogeneous: true`); if the host supports model override, use different models; if not, use different agent personas (`reviewer` / `security-reviewer` / `code-simplifier` / `caveman-reviewer`).
24
+ - Each subagent gets only its own lens prompt + file slice, not the other lenses' conclusions (to prevent anchoring).
25
+ 4. **Aggregate**: dedupe by `file:line + issue`; classify P0/P1/P2; separate confirmed from speculative; give a one-line "why it is not an issue" for each noise item.
26
+ 5. **Output**: one merged table + "must fix before merge" + "ruled out" + "not covered".
27
+
28
+ ## Output format
29
+
30
+ | Severity | Location | Issue | Evidence | Fix | Source lens |
31
+ |---|---|---|---|---|---|
32
+ | P0 | `file:line` | … | … | … | security |
33
+
34
+ - **Must fix before merge**: all P0 + confirmed P1.
35
+ - **Ruled out**: items that looked like issues but checked out not to be; give a reason for each.
36
+ - **Not covered**: surfaces no lens covered (e.g., runtime behavior, external services); state them explicitly.
37
+
38
+ ## Where it lives in this repo
39
+
40
+ - `review.md` execution flow: L2/L3 high-risk diffs layer this skill on top.
41
+ - `review-method`: the Standards×Spec dual axis + bad-smell walkthrough remains the single-lens baseline; this skill is a parallel supplement.
42
+ - `independent-reviewer`: a single independent review is not replaced; this skill is a multi-model supplement.
43
+ - Machine gates: does not replace `verify` / `check-loop`; this skill only produces a list, and a human still signs off on severity.
44
+
45
+ ## Boundaries
46
+
47
+ - Multi-model agreement is high signal, not proof; still use `blast-radius` to prove key safety facts.
48
+ - Do not treat "another model said so too" as evidence; evidence remains `file:line` / code that ran.
49
+ - Subagent conclusions must be re-checked yourself; do not pass them through directly.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: number-vetting
3
+ description: Number vetting — five questions to ask before reporting, citing, or deciding on any measured value (latency/hit rate/coverage/scale); for use by the main agent when writing metrics, gate costs, review outcomes, and performance conclusions.
4
+ ---
5
+
6
+ # number-vetting — Number vetting (five questions)
7
+
8
+ Before any number enters `workflow/metrics.md`, a `verifications.jsonl` interpretation, a PR body, or an option conclusion, run through every question. If any one cannot be answered → mark it "doubtful" and do not use it as a basis for a decision.
9
+
10
+ ## The five questions
11
+
12
+ | # | Question | Disqualifying signal |
13
+ |---|---|---|
14
+ | 1 | **Limiting factor**: what is this number bottlenecked by? | Cannot name the bottleneck; counting serial waits into a single item's latency |
15
+ | 2 | **Tuning/environment**: caused by warm cache, parallelism, machine load? | Mixing cold/warm runs; does not reproduce on another machine |
16
+ | 3 | **Error/noise**: how large is the variance? What is the distribution across reruns? | Single sample; the difference is the same order as the noise |
17
+ | 4 | **Basis/window**: sample n, time window, exclusions the same as last time? | The basis changed quietly; comparing directly across model generations |
18
+ | 5 | **End-to-end relevance**: does it measure the segment users perceive? | Microbenchmark improved, end-to-end did not move |
19
+
20
+ ## Verdict and recording
21
+
22
+ - Three levels: **trustworthy** (all five pass) / **doubtful** (missing 1–2 items; re-check after more measurement) / **unusable** (limiting factor unknown or basis drifted).
23
+ - Record format: `value (sample n / window / basis / k reruns)`; write "not measured" for missing items, never 0.
24
+ - The `{{指标名}}` signature is filled with live values by the data collector (check16); do not fill it by hand.
25
+
26
+ ## Existing conventions in this repo (read first, do not invent another)
27
+
28
+ - How to read peak %: the "Number vetting" note at the top of `workflow/metrics.md`—resting-state ≈93% is structural; judge pressure by backfill rate, not peak.
29
+ - Cross-model-generation comparisons: read "Model generation baseline" in `workflow/delegations.md` first; do not recompute old monthly snapshots.
30
+ - Gate duration: use `wallMs` from `verifications.jsonl`; green rows before 2026-10-16 lack that key, so fall back to the sum of the individual gates—do not mix the two bases in a comparison.
31
+
32
+ ## Red lines
33
+
34
+ - Do not write "gates got faster" as "quality improved".
35
+ - Do not use a single run to prove performance; do not hide the long tail behind an average (list the slowest gate separately).
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: page-refactor
3
+ description: Business feature page refactoring executor — refactor any business page/module following the pattern distilled from the purchase order (PO) template — shape inventory → target shape and table selection → build per references/templates.md (list page + create/view/edit entire module, supporting Drawer → overlay detail transition) → full assertion verification. Use when the user asks to "refactor a page / align with the purchase order page / refactor an entire module UI / refactor a list page / refactor a detail page".
4
+ ---
5
+
6
+ # page-refactor — Business module refactoring (PO template pattern)
7
+
8
+ ## Positioning
9
+
10
+ - **Refactoring scope = the entire feature module**: list page + create + view + edit refactored together, not just layout tweaks. Target shape = what PO / supplier pages look like now; when the current shape is far from target (e.g., Drawer-edit style), follow the "shape transition" path to close the gap.
11
+ - **Construction authority is** `references/templates.md` (S1–S12). This file keeps only inventory, red lines, and acceptance; read templates when entering the construction step, do not load the entire document during inventory. Replace class names (`xx-detail`/`xx-list`) per target page, replace fields/buttons/action set per target page business, keep layout skeleton and mechanisms verbatim.
12
+ - **Fit the target project's current state**: table technology, shared components, and infrastructure are selected according to the target project's actual situation (see "Table technology selection" and "Infrastructure dependencies and degradation table"); do not force new dependencies.
13
+ - **Provenance**: templates distilled from this repository's purchaseOrder and supplier page refactors (2026-10, from commit `e6f33915` onward in a series of iterations), verified through multiple rounds of L1 plan full assertion verification in that series.
14
+ - **Template reference (optional)**: if the target branch has already-refactored template pages (`frontend/src/views/purchase/purchaseOrder/index.vue`, `detail.vue`, `shared.ts` (list/detail shared constants), `frontend/src/views/baseData/supplier/detail.vue`), you may consult them; **when the template does not exist or conflicts with the templates, `references/templates.md` prevails and report the difference to the user** — never overturn the templates with an old template version.
15
+ - **Backfill obligation (anti-drift)**: when this repository's template pages evolve later, backfill the corresponding fragment in `references/templates.md`; if drift is found, first record one line in `workflow/papercuts.md`, do not fix it opportunistically on the spot.
16
+ - **Cross-branch/cross-repo carry**: copy both this file and `references/templates.md`. Copying only this file gives no construction templates. **Authoritative source = these two in this repository**; carried copies do not flow back and drift is the carrier's responsibility. **This repository exception**: host adaptation directories (`.trae/`, `.opencode/`, `.codebuddy/`) hold only pointer shells per repository discipline; full-text copies are forbidden.
17
+ - This skill is a **refactoring pattern knowledge + hard-constraint layer**: when used in this repository it still follows the project workflow (L1 plan → confirmation gate → build → UI verification → close-out); other repositories follow the "Infrastructure dependencies and degradation table".
18
+
19
+ ## Step 0: Shape inventory (mandatory; skipping is a violation)
20
+
21
+ 1. Read the target page `index.vue` / `detail.vue` (if any) / Drawer components (if any), inventory:
22
+ - **Target shape** (look at business structure, not current implementation): entity has detail lines/related documents → **A master-detail**; entity is pure form without details → **B pure form**; read-only with no edit and no detail → **D pure query**.
23
+ - **Current shape**: already has overlay detail component → layout-rearrangement path; Drawer editing (create/edit/view inside a Drawer) → **shape transition path** (see "Shape transition construction flow").
24
+ - **Table technology status**: whether the target project already uses AG Grid (check package.json / existing page imports); if not → list it as an **S12 one-time integration item** (done along with this refactor, not an optional decision).
25
+ - **Infrastructure status**: probe item by item against the "Infrastructure dependencies and degradation table".
26
+ 2. Produce **refactor item list + selection/degradation decisions + open questions** (e.g., whether this page has no batch operations, whether the detail table deserves tabbing) → AskUserQuestion for the user to confirm scope.
27
+ 3. Only after user confirmation, create the plan and enter construction. **Skipping inventory and applying templates directly is forbidden.**
28
+
29
+ ### Shape adaptation matrix (target shape × current shape)
30
+
31
+ | Target shape | Business characteristic | Currently already overlay detail | Currently Drawer-typed (transition) |
32
+ |---|---|---|---|
33
+ | **A master-detail** (PO type) | Entity has detail lines (± related documents) | Apply the full D-1~D-7 set directly | Follow "shape transition construction flow" → new detail.vue (A skeleton) + Drawer business migration and decommission |
34
+ | **B pure form** (supplier type) | Entity is pure form without details | Apply D-1 + D-8 directly; **do not apply upper/lower half tabs / height model** (no detail table; applying them will fail) | Follow "shape transition construction flow" → new detail.vue (B skeleton) + Drawer business migration and decommission |
35
+ | **D pure query** | Read-only list, no edit and no detail | N/A | N/A — only list page refactoring |
36
+
37
+ > **Mixed shape** (view = overlay, edit/create = Drawer, e.g., the purchase order page at baseline 4d363c4): judge by the "currently Drawer-typed" column — follow the transition path; existing view-state overlay content is also moved into the new detail.vue's view state (carried by the D-2 read-only grid), and old view-state code is decommissioned in the same batch as the original Drawer — dual detail entries for the same entity must not coexist.
38
+
39
+ ## Table technology (list page, unified AG Grid)
40
+
41
+ **Effect criteria (assertion gate verifies against this)**:
42
+ 1. Column order = definition order (checkbox → sequence number → document number…), zero visual order confusion
43
+ 2. Column width adapts: primary text columns take remaining width, zero `...` truncation in headers; narrow columns fixed width
44
+ 3. Row-action hover overlay replaces the fixed action column (saves an action column width on the order of 280px)
45
+ 4. Row scrolling contained inside the table body, zero outer scrollbars; pagination footer pinned to bottom
46
+
47
+ **Selection rules**:
48
+ - Target project **already uses AG Grid** → build directly per S5-S8.
49
+ - Target project **does not use AG Grid** → **integrate directly as one-time S12** (dependencies + license injection + global visuals + Chinese locale + page-level component template, full set), then build per S5-S8. **Using a-table to simulate equivalent effect is forbidden** — the effect is unreachable and introduces a second table convention, which is a wrong path.
50
+
51
+ ## List page refactoring patterns (4 patterns)
52
+
53
+ | # | Pattern | Key points |
54
+ |---|---|---|
55
+ | L-1 | Toolbar left/right grouping | Left group document-level (create/export); right group batch buttons linked to checkboxes, `margin-left:auto` to the right + vertical separator; batch eligibility same-source in three places (inline buttons/batch set/checkbox selectable, same guard criteria) |
56
+ | L-2 | Column order and width adaptation | Effect criteria see "Table technology"; implementation see S7 (contiguous leading columns may be pinned left, others not pinned; primary columns flex, narrow columns fixed width) |
57
+ | L-3 | Row-action hover overlay | Remove fixed action column; actions that do not meet eligibility are not rendered, zero-action rows do not pop out; overlay follows the hovered row's inner right edge; DOM event delegation (S6) + action set (S12); confirm with centered Modal.confirm |
58
+ | L-4 | Height chain and pagination footer | Root container pinned to content area + table card `flex:1` takes remainder + footer pinned to bottom; row scrolling contained inside grid, no outer scrollbar (S8) |
59
+
60
+ ## Detail page refactoring patterns (8 patterns; target shape A full set / target shape B only patterns 1 and 8)
61
+
62
+ | # | Pattern | Key points |
63
+ |---|---|---|
64
+ | D-1 | Top row merged | `DetailPageHeader`: back button + `#meta` (document number/status tag) + `#extra` (action buttons) on the same row; standalone action row forbidden |
65
+ | D-2 | Upper half basic info tab | View state `a-descriptions` → `a-form` read-only grid (`info-grid`), unified with edit state: 4 columns (`lg:6`) / label left-right 106px / compact spacing / long text span 24 |
66
+ | D-3 | Lower half multiple tabs | Detail table + related documents each one tab (`v-model:activeKey`); original title block removed (tab name carries it) |
67
+ | D-4 | Height model | Upper half pure content height (`flex: 0 0 auto`); lower half `min-height: calc(var(--layer-h)/2)` + `grow` to fill; `--layer-h` injected by ResizeObserver (CSS percentages fail in stretchable containers); overflow beyond one screen is taken over by outer `.detail-layer` scrolling |
68
+ | D-5 | Toolbar merged into tab row | Detail action buttons placed in `#rightExtra`'s `.tab-extra-row` (self-contained flex container) + maximize button; saves an entire row |
69
+ | D-6 | Lower half maximized | `is-maximized` (lower half `height:auto` fills) + upper half `is-hidden-by-max` (display:none); toggle shared by both states, closing detail auto-resets |
70
+ | D-7 | In-table scrolling | No outer scrollbar; flex chain `min-height:0` at every layer down to `.ant-table-content` (`overflow-y:auto !important`) |
71
+ | D-8 | Pure form pinned bottom | Target shape B: `.detail-layer` white background (`--bg-container`) + detail root `min-height:100%; flex column` + card `flex:1` + footer `sticky bottom:0` white opaque |
72
+
73
+ ## Shape transition construction flow (Drawer-typed → overlay detail; create/view/edit entire module moved onto overlay)
74
+
75
+ Transition trigger: target page is currently Drawer-edit typed, and the user's requested refactoring scope includes create/view/edit (full-module refactoring includes them by default).
76
+
77
+ 1. **Read the Drawer's current state thoroughly**: form field bindings, validation rules, save flow (API calls and post-success behavior), view-state content source — transition is **moving, not rewriting**; migrate business logic verbatim. In mixed shape, "view-state content source" = the existing overlay view-state code in index.vue (it is the moving source for view state; likewise read it thoroughly and move it).
78
+ 2. **Create `detail.vue`**: target shape A uses the S1-S4 skeleton (upper/lower half tabs), target shape B uses the S9 skeleton (form card + sticky footer) + S11 header component; three-state entry `props.mode: 'create' | 'edit' | 'view'`:
79
+ - Edit/create state: field bindings, rules, save handler, API imports **moved verbatim** from the Drawer (no opportunistic semantic changes); submission payload field-by-field identical to the original Drawer.
80
+ - View state: read-only grid (D-2) carries the original view content; action buttons go into `#extra`.
81
+ 3. **Mount overlay on list page**: `.detail-layer` + Transition (S8 CSS); all original "create / edit / view" entries changed to open the overlay (`detailState = { mode, id }`).
82
+ 4. **Decommission and delete the original Drawer**: editing capability for the same entity **must not have dual entries** — leftover Drawer causes future drift of two submission payloads (reconciliation blind spot); after confirming no other references, delete the whole block. In mixed shape, the existing view-state overlay code is decommissioned in the same batch (view capability has been merged into the new detail.vue; dual detail entries forbidden).
83
+ 5. **Reconciliation red line**: transition does not change contracts — API contract, query parameters, submission payload unchanged field by field; post-save list refresh and close behavior aligned with existing convention; eligibility criteria remain same-source in three places.
84
+
85
+ ## Infrastructure dependencies and degradation table (probe before starting; trim refactor items by availability)
86
+
87
+ | Refactoring capability | Dependency | Degradation when missing in target repo |
88
+ |---|---|---|
89
+ | D-1~D-7 detail page layout | No external dependency (antd suffices) | No degradation needed, fully applicable |
90
+ | D-8 pure form pinned bottom | No external dependency | No degradation needed |
91
+ | DetailPageHeader shared header | Component exists | If missing, create directly from the full S11 text (69 lines, required props + slot contract) |
92
+ | L-1 toolbar grouping / L-4 height chain | No external dependency | No degradation needed |
93
+ | L-2/L-3 table effects (AG Grid) | `ag-grid-community` + `ag-grid-vue3` + `ag-grid-enterprise` (this repo ^35.3.1); Chinese locale module; license key (runtime injection) | **Integrate directly, no degradation**: full S12 migration (dependencies / main.ts registration / license injection mechanism / global visual CSS / locale / component template); once installed and configured, it matches the template's effect |
94
+ | Row action button group | Page-level RowActions-like component | Build the button group per target page action set (the "action eligibility criteria same-source" principle unchanged) |
95
+ | Full assertion verification | This repo `scripts/verify/e2e/harness.mjs` (technical single source) | If missing, write a minimal node CDP probe per the S10 skeleton — the assertion checklist loses no item |
96
+ | Workflow (plan/confirmation gate/close-out) | This repo `AGENTS.md` + `workflow/` | Baseline clauses cover it: refactor plan confirmed by user before starting + full assertion verification + evidence screenshots archived |
97
+ | Notification guard / URL state / other conventions | This repo `utils/notify.ts` / `utils/listUrlQuery.ts` etc. | Follow the target repo's existing convention; this repo's conventions (G-3/LP-1/BC-1/BC-2/BC-4) are mandatory only when the corresponding infrastructure is present |
98
+
99
+ **AG Grid integration** (when target project does not use it): full integration steps and all configuration templates are in S12 — the three dependencies, main.ts module registration, license key runtime injection mechanism (plaintext key not in repository), global visual CSS, Chinese locale acquisition, CustomTooltip / empty state / document-number link / row-action-set component templates; once installed and configured, it matches the template's effect.
100
+
101
+ ## Trigger conditions
102
+
103
+ - The user asks to refactor a business feature page/module (list page, create/view/edit, layout rearrangement), or "make it look like the purchase order page".
104
+
105
+ ## Construction templates
106
+
107
+ S1–S12 are in `references/templates.md`. Read them when entering the construction step; do not load the whole document during inventory.
108
+ Inventory, hard red lines, and verification gates follow this file. When the templates conflict with the template page source, the templates prevail; first record in `workflow/papercuts.md`, do not change the templates on the spot.
109
+
110
+ ## antd pitfall list (must-read before construction; each empirically verified)
111
+
112
+ | # | Pitfall | Solution (see S snippet) |
113
+ |---|---|---|
114
+ | T1 | a-spin root is actually `.ant-spin-nested-loading`, the custom class on the component **does not land on the root** — class-based selection fails across the chain and the whole area collapses to 0 | Select by antd structural classes (S1) |
115
+ | T2 | `.ant-tabs-extra-content` is not flex by default; a block-level button group pushes the maximize button to the second row | `#rightExtra` contains its own `.tab-extra-row` flex container (S1/S4) |
116
+ | T3 | tabs content area is not flex by default; one broken layer collapses the whole area to 0 | `.ant-tabs / content-holder / content / tabpane-active` each layer `min-height:0` (S1) |
117
+ | T4 | When container height is indeterminate (stretchable), child percentage min-height/height resolution fails | ResizeObserver injects `--layer-h` variable, absolute pixel calculation (S2) |
118
+ | T5 | a-table has another spin layer inside (wrapper > spin > container > table); missing one `.ant-table` flex:1 breaks it and the table body compresses to 0 height | In-table scroll chain includes `.ant-table-wrapper` and both spin layers (S1) |
119
+ | T6 | antd pure horizontal scrolling inlines `overflow-y:hidden`, so table body vertical scroll fails | `overflow-y:auto !important` on `.ant-table-content` (S1) |
120
+ | T7 | `a-row :gutter` negative margins (-4px per side) push out horizontal panel whitespace | Upper-half container explicit `overflow:hidden` (S1) |
121
+ | T8 | antd small screen (<576px) makes label fill the whole row, becoming vertical | Force horizontal label convention `width/flex/padding !important` (S1) |
122
+ | T9 | a-tag pill is filled across the whole column by "baseline zeroed and stretched", becoming a full-column color block | Stretch selector excludes with `:not(.ant-tag)` (S1) |
123
+ | T10 | AG Grid `rowMouseEnter` callback empirically does not fire (neither real nor synthetic mouse) | DOM event delegation mouseover/mouseout (S6) |
124
+ | T11 | AG Grid pinned-left container renders first; pinning middle or action columns left disrupts the "checkbox→sequence→document number" visual order | Only pin a contiguous leading run in definition order; multi-select column uses selectionColumnDef; others not pinned (S7) |
125
+ | T12 | Chrome re-dispatches mouseover on the row revealed after the overlay leaves the DOM; after entering detail the overlay rebuilds and blocks | Toggle overlay display entry to a fuse that opens when detail layer opens (S6) |
126
+ | T13 | Overlay not in scroll viewport, card overflow:hidden, wheel falls through | Overlay manually forwards wheel to `.ag-body-viewport` (S6) |
127
+ | T14 | Global style `.ant-card-body` has `!important` padding, footer pinning fails | High-specificity `padding:0 !important` override (S8) |
128
+ | T15 | Vue reactive Proxy interferes with AG Grid internal state | gridOptions uses a plain object (S7) |
129
+ | T16 | Detail page detail a-table without `:scroll.y` does not vertically scroll the table body by default; "in-table scrolling" silently fails | CSS force chain `.ant-table-content { overflow-y:auto !important }` (S1) |
130
+
131
+ ## Hard red lines (change-forbidden list; violation = rework)
132
+
133
+ 1. **Do not touch the overlay mechanism**: `.detail-layer`'s `position:absolute; inset:0; overflow-y:auto` and the "list instance stays alive" convention preserved verbatim.
134
+ 2. **Zero contract change**: API contract, query parameters, submission payload unchanged field by field (shape transition = moving, not rewriting; submission payload reconciled field by field before and after migration); inline buttons/batch eligibility/checkbox selectable same-source in three places; backend error messages displayed as-is.
135
+ 3. **No dual editing entries**: after the transition completes, the original Drawer must be decommissioned and deleted — dual entries for the same entity's editing capability cause future submission payload drift (reconciliation blind spot).
136
+ 4. **Both states on the same chain must be tested**: when view state and edit/create state share the height chain, **both states must be verified**; testing only one does not pass.
137
+ 5. **Minimal change**: only touch target module files + shared component slot-level increments; no opportunistic refactoring, no formatting unrelated code, no fixing unrelated Lint warnings; when moving templates, handlers stay verbatim.
138
+ 6. **Keep mechanism comments in sync**: layout changes must synchronize existing mechanism comments in the file (height model/chain comments) to prevent comments and code diverging; mechanism comments within snippets in this document are preserved verbatim when implemented.
139
+ 7. **Notifications and list state**: if the target repo has unified notification guards / URL state management infrastructure, always use the infrastructure (e.g., this repo's `utils/notify.ts` / `utils/listUrlQuery.ts`); never bypass.
140
+
141
+ ## Verification gate (full assertion verification; missing items do not pass)
142
+
143
+ Static gate: `cd frontend && npm run build` (or the target repo's equivalent strict type build gate).
144
+
145
+ UI verification: headless Chrome CDP probe — this repo's technical details import the single source `scripts/verify/e2e/harness.mjs` (do not hand-write equivalent logic); if the target repo lacks this infrastructure, write your own per the S10 skeleton. One-off probes go in the **git-ignored area outside the repo** (this repo `tmp/e2e/`), screenshot evidence archived; read-only probes leave no dirty data (data produced by the transition save-flow test is deleted precisely by response ID); close all self-started processes at the end. Check the corresponding assertion group per refactor item:
146
+
147
+ **Detail page (target shape A, when D-1~D-7 are all changed)**
148
+ - [ ] Height chain: upper half pure content height (tall viewport `topH < half`, `clientH == scrollH`); lower half `≥ half`; `top+bottom == layerH` (whole page filled, no bottom whitespace)
149
+ - [ ] No outer scrollbar: `.detail-layer` `scrollHeight == clientHeight` (regular viewport)
150
+ - [ ] In-table scrolling takeover: table body `overflowY == auto`; compressed viewport (e.g., 1440×520) reverse branch — upper half pure content expands, lower half locks to half screen, outer scrolling takes over
151
+ - [ ] Maximized state: upper half `display:none`, `bottomH == layerH` fills, model restores after restore
152
+ - [ ] Toolbar merge: button group centerline aligned with tab nav centerline, tab row not taller, buttons left of the maximize button and inside `.ant-tabs-extra-content`
153
+ - [ ] Two-state regression: view state + edit/create state each run once under the same criteria; edit-state action button functionality does not regress (handler binding unchanged)
154
+ - [ ] Tab switching: each tab header present, switching does not cross-contaminate data
155
+
156
+ **Detail page (target shape B, D-1/D-8)**
157
+ - [ ] White background fills (including list shorter than one screen); buttons pinned to bottom (shorter than one screen) + sticky pinned to bottom (scrolling beyond one screen, footer.bottom constant at two positions, opaque)
158
+
159
+ **Shape transition special (Drawer → overlay)**
160
+ - [ ] Three states reachable: list "create" → create-state overlay, "edit" → edit state, "view" → view state, rendered correctly
161
+ - [ ] Save flow does not regress: create/edit save submission payload field-by-field identical to the original Drawer (network payload comparison); after save, list refresh and close behavior aligned with existing convention
162
+ - [ ] Original Drawer decommissioned: no residual Drawer mount on the page, old entry buttons do not trigger old interactions
163
+ - [ ] Form validation does not regress: required-field validation, backend 400 messages displayed as-is per original convention
164
+
165
+ **List page (L-1~L-4)**
166
+ - [ ] Column order: checkbox → sequence → document number… visual order equals definition order (left pinning only on this contiguous leading run), no `...` truncation in headers
167
+ - [ ] Toolbar: left group/right group each on its side, batch button disabled linked to selection, count correct
168
+ - [ ] hover overlay: rows with available actions pop out on hover and are vertically centered on the row, zero-action rows do not pop out, refresh on row change, delayed hide on leave, overlay does not disappear when hovering itself, overlay wheel scrolls the table, overlay not rebuilt after entering detail layer (real mouse path)
169
+ - [ ] Row scrolling contained inside grid, no outer or page scrollbar; pagination footer pinned to bottom
170
+
171
+ **General**
172
+ - [ ] Console exceptions cleared (if AG Grid license key is injected there is no trial banner; when not injected the banner is known noise, excluded)
173
+ - [ ] List state restored after closing detail layer (scroll position/filter not lost — overlay mechanism verification)
174
+
175
+ The probe produces an `N PASS / M FAIL` summary and evidence screenshot paths; backfill task acceptance criteria, then run the close-out flow (this repo `.agents/commands/stages.md` Test chapter).
176
+
177
+ ## Execution flow overview
178
+
179
+ ```
180
+ Trigger this skill
181
+ → Step 0: read target page inventory (target shape A/B/D × current shape) + AG Grid integration probe + infrastructure degradation probe
182
+ → produce refactor item list + degradation/open-question decisions → user confirms scope (AskUserQuestion)
183
+ → create plan (this repo L1; when transition includes new components, the change list is itemized per file) → approach confirmation gate
184
+ → before construction read references/templates.md (S1–S12)
185
+ → construction:
186
+ table infrastructure: target project does not use AG Grid → first integrate one-time per S12 (dependencies/license/visuals/locale/component templates)
187
+ list page: S5-S8 (toolbar grouping / column order and width / hover overlay / height chain footer)
188
+ detail page: already overlay → S1-S4 rearrangement; Drawer-typed → "shape transition construction flow" + S1-S4/S9 skeleton creation
189
+ → self-check the pitfall list T1-T16 item by item
190
+ → verification gate: build static gate + full assertion verification (including transition specials) → PASS/FAIL summary + screenshot evidence
191
+ → close-out (backfill acceptance evidence); template/skill drift recorded in papercuts (this repo)
192
+ ```
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: papercut-fix
3
+ description: Fix a designated un-escalated papercut entry in workflow/papercuts.md (the loop executor that drives outstanding debt to 0). Locate the symptom by the line number given in the instruction/ledger, change the authoritative file per the "Planned fix" column, write back to the ledger, and run the verification gates; also used for mining recurring error classes and choosing an enforcement layer when the same mistake keeps recurring.
4
+ ---
5
+
6
+ # papercut-fix — Single-papercut escalation executor
7
+
8
+ ## Goal
9
+ Update the status of one designated papercut entry in `workflow/papercuts.md` to "debt cleared".
10
+
11
+ ## Triggers
12
+ - User command: `跑一轮 papercut 回路` / `清 papercut 存量` / `修第 N 条 papercut`.
13
+ - User command: `跑一轮错题回路` / `同一类错又犯了` / `把这类错固化` → go through §0 first, then §1–§4 one entry at a time.
14
+
15
+ ## 0. Recurring-error loop (batch mode, mutually exclusive with single-item mode)
16
+
17
+ Only treats mistakes that the **engine face** repeatedly makes (business-code debt follows the incident flow and does not enter this loop). Four sources, default window the last 3 calendar months:
18
+
19
+ | Source | How to read |
20
+ |---|---|
21
+ | `.agents/judgments.jsonl` | `node .agents/scripts/agg-judgments.mjs --retire-candidates` (per-rule counts and candidates) |
22
+ | `workflow/delegations.md` | rework-reason enum distribution + monthly aggregate snapshot |
23
+ | `workflow/reviews.d/<YYYY-MM>.md` | per-comment accepted/rejected/false-positive, merged by root-cause direction |
24
+ | `workflow/incidents/` | root-cause enum (engine-face entries only) |
25
+
26
+ **Clustering threshold**: establish a rule only when the same error class occurs ≥3 times; for a single occurrence record only a papercut (if actionable) and do not establish a rule—avoid overfitting a single instance.
27
+
28
+ > Data-plane note: `judgments.jsonl` / `verifications.jsonl` are gitignored local runtime state; a fresh clone / new worktree may have only scattered rows. When a source is missing, use `delegations.md`, `reviews.d/`, `incidents/` as the basis; **do not fabricate an error class because a source is missing**; if there are fewer than 3 occurrences in the window, write "insufficient data" and do not establish a rule.
29
+
30
+ **Enforcement ladder** (choose the highest feasible layer; any downgrade must state why the higher layer is infeasible):
31
+
32
+ | Layer | Means | Infeasibility signal |
33
+ |---|---|---|
34
+ | 1 | Types / compile time (types, schema, enums, contracts) | Cannot express the constraint |
35
+ | 2 | Gate script or hook (check-loop segment, commit-check, verify gate) | False positives cannot be suppressed, or trigger frequency cannot sustain it |
36
+ | 3 | Automated test (dotnet test / vitest / engine `*.test.mjs`) | Environment unreachable, non-deterministic |
37
+ | 4 | Smoke script (`regression-smoke.mjs` script group) | Cannot assert (purely visual/interactive) |
38
+ | 5 | Command / skill / role text (prompt-only) | None (last resort) |
39
+
40
+ - Landing at layer 5: prefix the **symptom column** of the new row in `workflow/papercuts.d/` with `[prompt-only]`, carrying the debt until a later escalation.
41
+ - Landing at layer 2 with a new gate: must also register in `mechanism-registry.md` (including the retirement threshold) and obey the `rule-budgets.txt` one-in-one-out rule.
42
+ - Relation to existing conventions: rules 5/7 in `workflow/regression-checklist.md` are this ladder specialized for regression entries (layer 3–5 order + enforcer column); do not establish a second system.
43
+
44
+ **Output** (table first, then act): `error class | count | evidence location | current enforcer | gap | chosen layer | files to change`. After confirmation, enter §1–§4 one entry at a time; each round still handles only one.
45
+
46
+ ## Constraints and red lines
47
+ - **Single target**: each execution handles only one target; do not opportunistically fix adjacent entries or bundle other changes.
48
+ - **Scope limit**: changes are limited to the documentation surface (`.agents/commands/`, `.agents/roles/`, `.agents/skills/`, `.githooks/`, `.agents/scripts/`, `workflow/`).
49
+ - **Absolute no-go**: do not modify `backend/`, `frontend/`, `tests/`, `wiki/`, and do not connect to a database. Stop and report to the user when out of scope.
50
+ - **Verify before acting**: do not guess the current state from the ledger description. Read the authoritative file first to verify that the symptom holds.
51
+ - **Edit convention**: modify `workflow/` documents with `node .agents/scripts/rewrite-file.mjs <file> --find <literal string> --replace <literal string>` (same as `stages.md` Build §4).
52
+ - **Debt-clearing criterion**: branch A (fix) and branch B (deferred/obsolete) **both** satisfy the `debt -1` invariant (debt = number of pending-fix
53
+ rows in the ledger, manually counted: the touched row carries a terminal marker and no new pending row is added; the scheduled-debt sensor was retired 2026-11-08).
54
+
55
+ ## Workflow
56
+
57
+ ### 1. Locate and pre-check
58
+ - Extract from the given instruction: `line number` (Lxx), `location` (path), `symptom`, `planned fix`.
59
+ - Use the Read tool to read that line and its context.
60
+
61
+ ### 2. Verify the current state
62
+ - Read the authoritative file specified in the "Location" column.
63
+ - **Verdict**:
64
+ - **Defect still present** $\rightarrow$ enter branch A.
65
+ - **Already obsolete** (fixed by another change / file deleted) $\rightarrow$ enter branch B.
66
+ - **Opposite direction / description wrong** $\rightarrow$ re-characterize before executing.
67
+
68
+ ### 3. Execute the fix
69
+ - **Branch A (defect still present)**:
70
+ 1. Apply a minimal fix to the authoritative file.
71
+ 2. Append to the end of that row in `workflow/papercuts.md`: `✅ 已升级修复(YYYY-MM-DD): <改动描述> <commit>`.
72
+ 3. If the original "Planned fix" description no longer applies, state the actual fix in the appended record.
73
+ - **Branch B (already obsolete)**:
74
+ 1. Append to the end of that row in `workflow/papercuts.md`: `⏸ 暂缓(YYYY-MM-DD): <失效理由>`. The reason must be explicit.
75
+ 2. **Verification discipline**:
76
+ - Check user-level paths (`~/.workbuddy/skills/` etc.) to confirm whether the file was only migrated rather than deleted.
77
+ - Distinguish "environment constraint" from "code defect".
78
+ - For "cross-environment" symptoms, use `git worktree` to build a real checkout and run an experiment to falsify.
79
+ - For "already landed" symptoms, use `git log -S` to trace the date of the introducing commit.
80
+ - **Branch C (out of bounds)**: stop execution, report the reason, and request authorization.
81
+
82
+ ### 4. Verify and wrap up
83
+ - **Backup**: before modifying the ledger, force `cp workflow/papercuts.md tmp/papercuts.wip-backup.md`.
84
+ - **Run checks**:
85
+ - The touched row already carries a terminal marker (`✅ 已升级修复` / `⏸ 暂缓`), and this round added no new pending row (`debt -1`, manually counted).
86
+ - Check `workflow/papercuts.md` for total line count, column-count distribution, and any overly long rows (a line-compression signal).
87
+ - **Size check**: if `.agents/commands/` or the root `AGENTS.md` was modified, run `node .agents/scripts/rule-budget.mjs --all` and use its exit code as authoritative.
88
+
89
+ ## Reporting requirements
90
+ - Output per `references/response-template.md`.
91
+ - Include: line number, location, branch verdict (A/B/C), changed files, verification result (touched-row terminal marker / manually counted debt before and after), items awaiting decision.
92
+ - **Prohibition**: do not auto commit or push.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: pause-safely
3
+ description: Leave a resumable trail before a long run is interrupted or you step away — write a resume brief (state/next step/open items/evidence pointers), stop processes you started, do not commit or delete; use before pausing, going offline, context compression, or a session restart.
4
+ ---
5
+
6
+ # pause-safely — Pausing with a trail
7
+
8
+ ## Triggers
9
+
10
+ - The user says "stop for now / I'm leaving / continue tomorrow".
11
+ - Context is about to be compressed, or the session is about to restart.
12
+ - A long run (`autonomous-run` / `pipeline-run`) needs to be suspended.
13
+
14
+ ## Steps
15
+
16
+ 1. **Write a resume brief** to `tmp/pause-<slug>.md` (do not commit):
17
+ - **State**: branch, HEAD short SHA, worktree path, summary of `git status --porcelain -uall`.
18
+ - **Where you got to**: completed units + corresponding green evidence `headShort` / decision-trail rows.
19
+ - **Next step**: the first unfinished action, concrete down to file/command.
20
+ - **Open**: forks awaiting the user's decision, known risks, blocked items.
21
+ - **Evidence pointers**: checkbox state of `workflow/plans/...`, `decisions.tsv`, `tmp/verify-*.log`, screenshot paths.
22
+ - **Processes**: services/ports/PIDs you started (record only your own).
23
+ 2. **Do not commit, push, or delete**: leave uncommitted changes as-is; ask the user first if a commit is needed.
24
+ 3. **Stop processes**: stop only processes started by this session; do not kill by process name, kill by PID/port.
25
+ 4. **Resume**: in the new session, rebuild first per `.agents/skills/session-resume/SKILL.md`, then read the resume brief; do not rely on memory.
26
+
27
+ ## Boundaries
28
+
29
+ - Do not clean worktrees, delete temp files, or `git reset`—pausing is not wrap-up.
30
+ - Do not write the resume brief as a running diary; keep only the facts that let "the next person continue".
31
+ - Do not commit half-finished work; do not use `--no-verify`.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: perf
3
+ description: Performance investigation playbook — baseline first, then single variable; accept only when retests exceed the noise band; for "slow / laggy / long load / API latency" tasks.
4
+ ---
5
+
6
+ # perf — Performance investigation
7
+
8
+ ## Trigger
9
+
10
+ - User reports "slow / laggy / long load / API takes N seconds".
11
+ - The approach involves performance tradeoffs that need measurement to decide.
12
+
13
+ ## 0. Define a measurable target first
14
+
15
+ Metric (LCP / API p95 / list first screen / build time) + scenario (page / API / data volume) + pass line. Cannot articulate the metric → measure first before optimizing; changing based on feeling is forbidden.
16
+
17
+ ## 1. Baseline (same machine / same data / same concurrency)
18
+
19
+ - Rerun $\ge 3$ times, take median and slowest; record machine load and data volume.
20
+ - Evidence lands in `tmp/perf/<topic>-baseline.json` (or stdout archive).
21
+
22
+ ## 2. Locate
23
+
24
+ - Frontend: Performance trace / LCP / long tasks; backend: slow queries, N+1, unbounded fetches (performance three see `.agents/skills/review-method/SKILL.md`).
25
+ - Validate one hypothesis at a time; when a hypothesis is falsified, write down the conclusion then switch.
26
+
27
+ ## 3. Single-variable change
28
+
29
+ Change one place at a time; do not change criteria, do not swap data, do not adjust the machine. For gate-timing changes distinguish "gate got faster" from "quality improved".
30
+
31
+ ## 4. Retest and accept
32
+
33
+ - Rerun the same scenario $\ge 3$ times; improvement must exceed the noise band (number credibility single source `.agents/skills/number-vetting/SKILL.md`).
34
+ - Not past the noise band → roll back or record "unproven", do not put it in conclusions.
35
+
36
+ ## 5. Record
37
+
38
+ Table: baseline / change / retest / conclusion + evidence path. For environment jitter (shared DB locks, machine load), isolate and retest first; attribute per `review-method/golden-set.md` #21 criteria, do not falsely report regression.
39
+
40
+ ## Red lines
41
+
42
+ - Do not change two variables at once; do not use a single run; do not optimize what was not measured.
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: review-method
3
+ description: Code review walkthrough method (Standards×Spec dual axis + bad-smell checklist + merge bar). Used by independent-reviewer or the main agent when reviewing a diff; it is the method-layer single source for the .agents/commands/review.md execution flow and does not depend on host global skills.
4
+ ---
5
+
6
+ # review-method — Review walkthrough method
7
+
8
+ ## Positioning and division of labor
9
+ The three review layers each have their own single source; this file only handles "how to walk through":
10
+
11
+ | Layer | Single source |
12
+ |---|---|
13
+ | What to block (invariants) | `.agents/commands/review.md` P0/P1 table |
14
+ | In what capacity to check (evidence discipline) | `.agents/roles/independent-reviewer.md` Constraints |
15
+ | How to walk through (this file) | dual-axis framework + bad-smell checklist + merge bar |
16
+
17
+ When the host has global `code-review` / `review-verification-protocol` skills they may be layered on; otherwise this file is the fallback.
18
+
19
+ ## Calibration set (golden-set.md)
20
+ The `golden-set.md` in the same directory is a known-answer sample library for independent review quality (positive = defect should be reported, negative = should pass; each with this repo's context points). Before reviewers/new sessions go on duty they may blind-evaluate samples then compare answers to self-check calibration difference; monthly reconciliation sampling (registered in mechanism-registry) uses it as a comparison baseline, must run **both arms** (A = with this skill loaded / B = clean session given only inline sample context; Δ is the effect of context injection) and run **variance reruns** for suspicious judgments (flippers count as question ambiguity, not calibration difference). When hit difference exceeds 20% for two consecutive months, register calibration debt in papercuts; samples' answers are finalized when the anchor loop closes; later code evolution does not change answers.
21
+
22
+ ## Dual-axis framework (report by axis; merged sorting forbidden)
23
+ | Axis | Question asked | Basis |
24
+ |---|---|---|
25
+ | **Standards** | Does it comply with this repo's written standards | Root/directory-level `AGENTS.md` + review.md P0/P1 table |
26
+ | **Spec** | Does it faithfully implement the entry document's commitments | intent/plan "acceptance criteria" + spec §test cases |
27
+
28
+ The two axes stand independently: compliant but doing the wrong thing (Standards pass, Spec fail) and doing the right thing but breaking standards (Spec pass, Standards fail) both exist — report separately to prevent one axis masking the other. The Spec axis reports three finding classes: missing/partially landed commitments, scope creep, implementation distortion.
29
+
30
+ ### Pre-dispatch self-check and axis isolation
31
+ - **Baseline self-check first**: before dispatching review (or self-review) `git rev-parse <baseline>` resolves + `git diff <baseline>...HEAD` non-empty — bad refs/empty diff fail before dispatch, not midway through the two-axis walkthrough.
32
+ - **Spec source discovery order**: workflow reference in commit message → path given by user → same-named family of entry document (intent/spec/plan) → if none ask the user; when not found the Spec axis explicitly reports "no spec available", silently skipping the whole axis is forbidden.
33
+ - **Dual-axis dispatchable isolation**: when the host supports subagents, dispatch the two axes to two read-only subagents in parallel (context isolation prevents mutual contamination), and present each axis as-is when aggregating — the cross-axis reordering prohibition is not relaxed.
34
+
35
+ ## Bad-smell walkthrough checklist (Standards axis supplement)
36
+ Judgment items outside the P0/P1 table. Constraints: repo written standards prevail (written acceptance suppresses this checklist); always judgment items, not hard violations; skip what gates/tooling already catch. Each entry = what it is $\rightarrow$ how to fix:
37
+
38
+ | Bad smell | What it is $\rightarrow$ how to fix |
39
+ |---|---|
40
+ | Mysterious Name | Name does not reveal purpose $\rightarrow$ rename; if you cannot find an honest name = design is murky |
41
+ | Duplicated Code | Same-shaped logic appears in multiple places $\rightarrow$ extract shared implementation, call from both |
42
+ | Feature Envy | Method uses another's data more than its own $\rightarrow$ move the method onto the data it envies |
43
+ | Data Clumps | Several fields/parameters always travel together $\rightarrow$ bundle into one type and pass it |
44
+ | Primitive Obsession | Raw value replaces a domain concept $\rightarrow$ build a dedicated small type for the concept |
45
+ | Repeated Switches | switch/cascading if on the same type recurs $\rightarrow$ polymorphism or shared mapping |
46
+ | Shotgun Surgery | One logic change forces scattered edits across files $\rightarrow$ gather into the same module |
47
+ | Divergent Change | One module changed for multiple unrelated reasons $\rightarrow$ split by single reason to change |
48
+ | Speculative Generality | Adding abstraction/parameters/hooks for requirements not in spec $\rightarrow$ delete and inline, wait for the real requirement |
49
+ | Message Chains | Long `a.b().c().d()` navigation $\rightarrow$ hide one method on the first object |
50
+ | Middle Man | Class/function almost only forwards $\rightarrow$ delete, call the real target directly |
51
+ | Refused Bequest | Subclass ignores/overrides most inherited members $\rightarrow$ drop inheritance for composition |
52
+
53
+ Performance three (beyond the P1 pagination clause): N+1 queries, unbounded fetches/loops, large objects on hot paths.
54
+
55
+ ### Storage host selection (added 2026-10-23, source incident 2026-10-23-pml-pbs-relation-host)
56
+
57
+ During the new/old system coexistence period, **host table selection for business relation tables (A↔B many-to-many) must answer "does the old system already have a synonym table"**:
58
+
59
+ - The old system already has it → **reuse**, and fix that table's column semantics in the spec (which table the FK points to, type-code criteria, which columns are not persisted and need read-time back-inquiry).
60
+ - Truly new → the spec states **why not reuse**.
61
+ - When reusing a shared table, **structure must not change** (no added column/index/constraint); dedup and constraints are handled by the server side.
62
+
63
+ Review action: for every new table or new mapping in the spec/diff, check the old system source or DB metadata once for an existing synonym table.
64
+
65
+ **Why a human/review agent must actively check**: `SchemaLedgerDriftTests` only validates "whether declared table structures match the real DB" — correct structure = green, cannot discover "this table should never have been created"; static gates are also blind to "two table sets for the same business relation". On 2026-09-28 "associated PBS single-value to multi-value" thus a private table `MM_PML_ProductionPMLPBS` was created by default, coexisting with the old system's existing table `BOM_PalletPBS_Relation` for a long time, until the 2026-10-23 user instruction changed it back to reuse.
66
+
67
+ ### Whether persisted column semantics are rewritten by display demands (added 2026-10-23, source incident 2026-10-23-pml-quota-substitute-identity-overwrite)
68
+
69
+ When the requirement says "this field should display as X", first distinguish **display projection** from **storage identity rewrite**:
70
+
71
+ - **Display projection**: only change the read side/frontend mapping, underlying column semantics unchanged → preferred.
72
+ - **Storage identity rewrite**: writing "what should be displayed" as an override of an existing column → only when that column's semantics should genuinely change, and must answer three questions: after override **where does the original value go** (trace column / restorable?), **can it roll back**, **do all downstream consumers of that column use the same criteria**.
73
+
74
+ Review action: for every sentence in the spec like "rewrite column X" "column X updated to Y", first ask "what did column X originally represent? **should** this semantics change?" — do not only check "it is self-consistent after the change".
75
+
76
+ **Why a human/review agent must actively check**: static gates only see structure and compilability, cannot read column semantics; if tests and implementation share the same source, wrong criteria get **frozen into expectations** (this case's 20 cases all asserted the old criteria and were all green before the change), making the wrong criteria itself undiscoverable; once a spec is written as the "source of truth" it also keeps reinforcing itself. In this case spec `2026-10-13-pml-quota-substitute-rewrite` item two implemented "whose identity the quota row displays after substitution" as "rewriting the quota row's material identity (code/name/spec/stock-unit/unit/TAG)", and **passed item-by-item independent review**, until the 2026-10-23 user instruction reversed it.
77
+
78
+ ### Spec half-landing verification (added 2026-11-02, source batch three)
79
+
80
+ Before reviewing a spec/plan `done` declaration, check each "observable criterion": can each criterion be pointed to code, a test, or an executable script? If not pointable = half-landing; half-landing must not be marked `done`; add tests or downgrade to a registered item and leave a pointer in incident/notes.
81
+
82
+ **Why a human/review agent must actively check**: static gates can only prove compilation/structure, not that "the promised behavior actually landed"; when implementation and tests share a source, half-landing can still be all green.
83
+
84
+ ## Structured fix actions
85
+ When reporting structural problems give named actions, do not just say "this is complex" and let the author guess: remove condition chains by building a type/dispatcher, fold duplicate branches, separate orchestration from business, move feature logic back to its owning layer, reuse authoritative helpers instead of near-copies, explicit type boundaries to remove downstream branches, delete pass-through wrappers with no clarification value, extract helpers or split large files.
86
+
87
+ ## Merge bar (prevent P2 entanglement)
88
+ When it clearly improves overall code health, recommend merging; do not block because "I wouldn't write it that way" — perfection does not exist, continuous improvement is the goal. Style preferences and hypothetical risks must not be reported (evidence discipline see role contract Constraints).
89
+
90
+ ## Provenance
91
+ - Dual-axis framework and bad-smell checklist: distilled from the host global `code-review` skill (Fowler, Refactoring ch.3 baseline).
92
+ - Structured fix actions and merge bar: borrowed from [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) (MIT).