agentic-flow-kit 1.8.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (936) hide show
  1. package/README.md +113 -148
  2. package/bin/flow-kit.mjs +5 -2
  3. package/locales/en/installer.json +25 -0
  4. package/locales/en/overrides/.agents/commands/deploy.md +52 -0
  5. package/locales/en/overrides/.agents/commands/maintain.md +76 -0
  6. package/locales/en/overrides/.agents/commands/new-task.md +89 -0
  7. package/locales/en/overrides/.agents/commands/pipeline-run.md +56 -0
  8. package/locales/en/overrides/.agents/commands/pr-review.md +30 -0
  9. package/locales/en/overrides/.agents/commands/review.md +93 -0
  10. package/locales/en/overrides/.agents/commands/stages.md +256 -0
  11. package/locales/en/overrides/.agents/notes/pr-review-cost-discipline.md +48 -0
  12. package/locales/en/overrides/.agents/notes/process-order-rule.md +21 -0
  13. package/locales/en/overrides/.agents/notes/runtime-env.local.example.md +21 -0
  14. package/locales/en/overrides/.agents/pipelines/_TEMPLATE.md +75 -0
  15. package/locales/en/overrides/.agents/pipelines/pipeline-closing.md +28 -0
  16. package/locales/en/overrides/.agents/roles/implementer.md +28 -0
  17. package/locales/en/overrides/.agents/roles/independent-reviewer.md +39 -0
  18. package/locales/en/overrides/.agents/roles/pr-adjudicator.md +27 -0
  19. package/locales/en/overrides/.agents/roles/pr-finder.md +51 -0
  20. package/locales/en/overrides/.agents/roles/pr-verifier.md +44 -0
  21. package/locales/en/overrides/.agents/roles/ui-verifier.md +22 -0
  22. package/locales/en/overrides/.agents/roles/wiki-compiler.md +47 -0
  23. package/locales/en/overrides/.agents/skills/arena/SKILL.md +50 -0
  24. package/locales/en/overrides/.agents/skills/autonomous-run/SKILL.md +45 -0
  25. package/locales/en/overrides/.agents/skills/blast-radius/SKILL.md +53 -0
  26. package/locales/en/overrides/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  27. package/locales/en/overrides/.agents/skills/dev-tour/SKILL.md +98 -0
  28. package/locales/en/overrides/.agents/skills/dream/SKILL.md +63 -0
  29. package/locales/en/overrides/.agents/skills/eval/SKILL.md +42 -0
  30. package/locales/en/overrides/.agents/skills/interrogate/SKILL.md +49 -0
  31. package/locales/en/overrides/.agents/skills/number-vetting/SKILL.md +35 -0
  32. package/locales/en/overrides/.agents/skills/page-refactor/SKILL.md +192 -0
  33. package/locales/en/overrides/.agents/skills/papercut-fix/SKILL.md +92 -0
  34. package/locales/en/overrides/.agents/skills/pause-safely/SKILL.md +31 -0
  35. package/locales/en/overrides/.agents/skills/perf/SKILL.md +42 -0
  36. package/locales/en/overrides/.agents/skills/review-method/SKILL.md +92 -0
  37. package/locales/en/overrides/.agents/skills/session-resume/SKILL.md +69 -0
  38. package/locales/en/overrides/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  39. package/locales/en/overrides/.agents/skills/show-me-your-work/SKILL.md +57 -0
  40. package/locales/en/overrides/.agents/skills/tfs-pr/SKILL.md +95 -0
  41. package/locales/en/overrides/.agents/skills/verify-ui/SKILL.md +116 -0
  42. package/locales/en/overrides/.agents/skills/visual-parity/SKILL.md +35 -0
  43. package/locales/en/overrides/.agents/skills/why/SKILL.md +56 -0
  44. package/locales/en/overrides/.agents/skills/wiki/SKILL.md +53 -0
  45. package/locales/en/overrides/.claude/agents/implementer.md +9 -0
  46. package/locales/en/overrides/.claude/agents/independent-reviewer.md +10 -0
  47. package/locales/en/overrides/.claude/agents/pr-adjudicator.md +10 -0
  48. package/locales/en/overrides/.claude/agents/pr-finder.md +10 -0
  49. package/locales/en/overrides/.claude/agents/pr-verifier.md +10 -0
  50. package/locales/en/overrides/.claude/agents/ui-verifier.md +10 -0
  51. package/locales/en/overrides/.claude/agents/wiki-compiler.md +10 -0
  52. package/locales/en/overrides/.claude/commands/wf-deploy.md +8 -0
  53. package/locales/en/overrides/.claude/commands/wf-maintain.md +8 -0
  54. package/locales/en/overrides/.claude/commands/wf-new-task.md +8 -0
  55. package/locales/en/overrides/.claude/commands/wf-pipeline-run.md +8 -0
  56. package/locales/en/overrides/.claude/commands/wf-pr-review.md +8 -0
  57. package/locales/en/overrides/.claude/commands/wf-review.md +8 -0
  58. package/locales/en/overrides/.claude/commands/wf-stages.md +8 -0
  59. package/locales/en/overrides/.cline/agents/implementer.yml +13 -0
  60. package/locales/en/overrides/.cline/agents/independent-reviewer.yml +11 -0
  61. package/locales/en/overrides/.cline/agents/pr-adjudicator.yml +11 -0
  62. package/locales/en/overrides/.cline/agents/pr-finder.yml +11 -0
  63. package/locales/en/overrides/.cline/agents/pr-verifier.yml +11 -0
  64. package/locales/en/overrides/.cline/agents/ui-verifier.yml +8 -0
  65. package/locales/en/overrides/.cline/agents/wiki-compiler.yml +14 -0
  66. package/locales/en/overrides/.cline/workflows/wf-deploy.md +8 -0
  67. package/locales/en/overrides/.cline/workflows/wf-maintain.md +8 -0
  68. package/locales/en/overrides/.cline/workflows/wf-new-task.md +8 -0
  69. package/locales/en/overrides/.cline/workflows/wf-pipeline-run.md +8 -0
  70. package/locales/en/overrides/.cline/workflows/wf-pr-review.md +8 -0
  71. package/locales/en/overrides/.cline/workflows/wf-review.md +8 -0
  72. package/locales/en/overrides/.cline/workflows/wf-stages.md +8 -0
  73. package/locales/en/overrides/.codebuddy/CODEBUDDY.md +7 -0
  74. package/locales/en/overrides/.codebuddy/agents/implementer.md +9 -0
  75. package/locales/en/overrides/.codebuddy/agents/independent-reviewer.md +10 -0
  76. package/locales/en/overrides/.codebuddy/agents/pr-adjudicator.md +10 -0
  77. package/locales/en/overrides/.codebuddy/agents/pr-finder.md +10 -0
  78. package/locales/en/overrides/.codebuddy/agents/pr-verifier.md +10 -0
  79. package/locales/en/overrides/.codebuddy/agents/ui-verifier.md +11 -0
  80. package/locales/en/overrides/.codebuddy/agents/wiki-compiler.md +10 -0
  81. package/locales/en/overrides/.codebuddy/commands/wf-deploy.md +8 -0
  82. package/locales/en/overrides/.codebuddy/commands/wf-maintain.md +8 -0
  83. package/locales/en/overrides/.codebuddy/commands/wf-new-task.md +8 -0
  84. package/locales/en/overrides/.codebuddy/commands/wf-pipeline-run.md +8 -0
  85. package/locales/en/overrides/.codebuddy/commands/wf-pr-review.md +8 -0
  86. package/locales/en/overrides/.codebuddy/commands/wf-review.md +8 -0
  87. package/locales/en/overrides/.codebuddy/commands/wf-stages.md +8 -0
  88. package/locales/en/overrides/.codebuddy/rules/backend-scope.md +5 -0
  89. package/locales/en/overrides/.codebuddy/rules/frontend-scope.md +5 -0
  90. package/locales/en/overrides/.codebuddy/skills/tfs-pr/SKILL.md +6 -0
  91. package/locales/en/overrides/.commandcode/agents/implementer.md +10 -0
  92. package/locales/en/overrides/.commandcode/agents/independent-reviewer.md +9 -0
  93. package/locales/en/overrides/.commandcode/agents/pr-adjudicator.md +9 -0
  94. package/locales/en/overrides/.commandcode/agents/pr-finder.md +9 -0
  95. package/locales/en/overrides/.commandcode/agents/pr-verifier.md +9 -0
  96. package/locales/en/overrides/.commandcode/agents/ui-verifier.md +10 -0
  97. package/locales/en/overrides/.commandcode/agents/wiki-compiler.md +10 -0
  98. package/locales/en/overrides/.commandcode/commands/wf-deploy.md +7 -0
  99. package/locales/en/overrides/.commandcode/commands/wf-maintain.md +7 -0
  100. package/locales/en/overrides/.commandcode/commands/wf-new-task.md +7 -0
  101. package/locales/en/overrides/.commandcode/commands/wf-pipeline-run.md +7 -0
  102. package/locales/en/overrides/.commandcode/commands/wf-pr-review.md +7 -0
  103. package/locales/en/overrides/.commandcode/commands/wf-review.md +7 -0
  104. package/locales/en/overrides/.commandcode/commands/wf-stages.md +7 -0
  105. package/locales/en/overrides/.opencode/agents/implementer.md +51 -0
  106. package/locales/en/overrides/.opencode/agents/independent-reviewer.md +18 -0
  107. package/locales/en/overrides/.opencode/agents/pr-adjudicator.md +18 -0
  108. package/locales/en/overrides/.opencode/agents/pr-finder.md +18 -0
  109. package/locales/en/overrides/.opencode/agents/pr-verifier.md +18 -0
  110. package/locales/en/overrides/.opencode/agents/ui-verifier.md +45 -0
  111. package/locales/en/overrides/.opencode/agents/wiki-compiler.md +51 -0
  112. package/locales/en/overrides/.opencode/commands/wf-deploy.md +7 -0
  113. package/locales/en/overrides/.opencode/commands/wf-maintain.md +7 -0
  114. package/locales/en/overrides/.opencode/commands/wf-new-task.md +7 -0
  115. package/locales/en/overrides/.opencode/commands/wf-pipeline-run.md +7 -0
  116. package/locales/en/overrides/.opencode/commands/wf-pr-review.md +7 -0
  117. package/locales/en/overrides/.opencode/commands/wf-review.md +7 -0
  118. package/locales/en/overrides/.opencode/commands/wf-stages.md +7 -0
  119. package/locales/en/overrides/.pi/agents/implementer.md +11 -0
  120. package/locales/en/overrides/.pi/agents/independent-reviewer.md +12 -0
  121. package/locales/en/overrides/.pi/agents/pr-adjudicator.md +12 -0
  122. package/locales/en/overrides/.pi/agents/pr-finder.md +11 -0
  123. package/locales/en/overrides/.pi/agents/pr-verifier.md +11 -0
  124. package/locales/en/overrides/.pi/agents/ui-verifier.md +11 -0
  125. package/locales/en/overrides/.pi/agents/wiki-compiler.md +11 -0
  126. package/locales/en/overrides/.qoder/agents/implementer.md +9 -0
  127. package/locales/en/overrides/.qoder/agents/independent-reviewer.md +10 -0
  128. package/locales/en/overrides/.qoder/agents/pr-adjudicator.md +10 -0
  129. package/locales/en/overrides/.qoder/agents/pr-finder.md +10 -0
  130. package/locales/en/overrides/.qoder/agents/pr-verifier.md +10 -0
  131. package/locales/en/overrides/.qoder/agents/ui-verifier.md +10 -0
  132. package/locales/en/overrides/.qoder/agents/wiki-compiler.md +10 -0
  133. package/locales/en/overrides/.qoder/commands/wf-deploy.md +8 -0
  134. package/locales/en/overrides/.qoder/commands/wf-maintain.md +8 -0
  135. package/locales/en/overrides/.qoder/commands/wf-new-task.md +8 -0
  136. package/locales/en/overrides/.qoder/commands/wf-pipeline-run.md +8 -0
  137. package/locales/en/overrides/.qoder/commands/wf-pr-review.md +8 -0
  138. package/locales/en/overrides/.qoder/commands/wf-review.md +8 -0
  139. package/locales/en/overrides/.qoder/commands/wf-stages.md +8 -0
  140. package/locales/en/overrides/.qwen/agents/implementer.md +10 -0
  141. package/locales/en/overrides/.qwen/agents/independent-reviewer.md +10 -0
  142. package/locales/en/overrides/.qwen/agents/pr-adjudicator.md +10 -0
  143. package/locales/en/overrides/.qwen/agents/pr-finder.md +10 -0
  144. package/locales/en/overrides/.qwen/agents/pr-verifier.md +10 -0
  145. package/locales/en/overrides/.qwen/agents/ui-verifier.md +10 -0
  146. package/locales/en/overrides/.qwen/agents/wiki-compiler.md +13 -0
  147. package/locales/en/overrides/.qwen/commands/wf-deploy.md +7 -0
  148. package/locales/en/overrides/.qwen/commands/wf-maintain.md +7 -0
  149. package/locales/en/overrides/.qwen/commands/wf-new-task.md +7 -0
  150. package/locales/en/overrides/.qwen/commands/wf-pipeline-run.md +7 -0
  151. package/locales/en/overrides/.qwen/commands/wf-pr-review.md +7 -0
  152. package/locales/en/overrides/.qwen/commands/wf-review.md +7 -0
  153. package/locales/en/overrides/.qwen/commands/wf-stages.md +7 -0
  154. package/locales/en/overrides/.trae/agents/implementer.md +9 -0
  155. package/locales/en/overrides/.trae/agents/independent-reviewer.md +10 -0
  156. package/locales/en/overrides/.trae/agents/pr-adjudicator.md +10 -0
  157. package/locales/en/overrides/.trae/agents/pr-finder.md +10 -0
  158. package/locales/en/overrides/.trae/agents/pr-verifier.md +10 -0
  159. package/locales/en/overrides/.trae/agents/ui-verifier.md +10 -0
  160. package/locales/en/overrides/.trae/agents/wiki-compiler.md +10 -0
  161. package/locales/en/overrides/.trae/commands/wf-deploy.md +8 -0
  162. package/locales/en/overrides/.trae/commands/wf-maintain.md +8 -0
  163. package/locales/en/overrides/.trae/commands/wf-new-task.md +8 -0
  164. package/locales/en/overrides/.trae/commands/wf-pipeline-run.md +8 -0
  165. package/locales/en/overrides/.trae/commands/wf-pr-review.md +8 -0
  166. package/locales/en/overrides/.trae/commands/wf-review.md +8 -0
  167. package/locales/en/overrides/.trae/commands/wf-stages.md +8 -0
  168. package/locales/en/overrides/.trae/rules/backend-scope.md +5 -0
  169. package/locales/en/overrides/.trae/rules/frontend-scope.md +5 -0
  170. package/locales/en/overrides/.zcode/agents/implementer.md +8 -0
  171. package/locales/en/overrides/.zcode/agents/independent-reviewer.md +8 -0
  172. package/locales/en/overrides/.zcode/agents/ui-verifier.md +8 -0
  173. package/locales/en/overrides/.zcode/agents/wiki-compiler.md +8 -0
  174. package/locales/en/overrides/AGENTS.md +52 -0
  175. package/locales/en/overrides/CLAUDE.md +20 -0
  176. package/locales/en/overrides/wiki/INDEX.md +33 -0
  177. package/locales/en/overrides/wiki/drafts-archive/README.md +6 -0
  178. package/locales/en/overrides/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  179. package/locales/en/overrides/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  180. package/locales/en/overrides/workflow/INDEX.md +13 -0
  181. package/locales/en/overrides/workflow/README.md +67 -0
  182. package/locales/en/overrides/workflow/archive/README.md +3 -0
  183. package/locales/en/overrides/workflow/delegations.md +4 -0
  184. package/locales/en/overrides/workflow/effective-policy.md +4 -0
  185. package/locales/en/overrides/workflow/gate-cost.md +4 -0
  186. package/locales/en/overrides/workflow/incidents/_TEMPLATE.md +49 -0
  187. package/locales/en/overrides/workflow/intents/_TEMPLATE.md +43 -0
  188. package/locales/en/overrides/workflow/metrics.md +4 -0
  189. package/locales/en/overrides/workflow/papercuts.md +3 -0
  190. package/locales/en/overrides/workflow/plans/_TEMPLATE.md +47 -0
  191. package/locales/en/overrides/workflow/regression-checklist.md +3 -0
  192. package/locales/en/overrides/workflow/specs/_TEMPLATE.md +86 -0
  193. package/locales/en/overrides/workflow/verify-evidence.md +4 -0
  194. package/locales/zh-CN/installer.json +25 -0
  195. package/package.json +23 -36
  196. package/schemas/install-manifest.schema.json +24 -0
  197. package/schemas/project-profile.schema.json +28 -0
  198. package/src/cli/args.mjs +41 -0
  199. package/src/cli/main.mjs +72 -0
  200. package/src/commands/add-host.mjs +29 -0
  201. package/src/commands/doctor.mjs +80 -0
  202. package/src/commands/install.mjs +149 -0
  203. package/src/commands/upgrade.mjs +30 -0
  204. package/src/git/config.mjs +61 -0
  205. package/src/hosts/registry.mjs +26 -0
  206. package/src/i18n.mjs +32 -0
  207. package/src/install/apply.mjs +124 -0
  208. package/src/install/manifest.mjs +40 -0
  209. package/src/install/plan.mjs +83 -0
  210. package/src/render/tokens.mjs +58 -0
  211. package/templates/engine/.agents/board/dev-tour.html +1940 -0
  212. package/templates/engine/.agents/board/index.html +835 -0
  213. package/templates/engine/.agents/commands/deploy.md +52 -0
  214. package/templates/engine/.agents/commands/maintain.md +76 -0
  215. package/templates/engine/.agents/commands/new-task.md +89 -0
  216. package/templates/engine/.agents/commands/pipeline-run.md +56 -0
  217. package/templates/engine/.agents/commands/pr-review.md +30 -0
  218. package/templates/engine/.agents/commands/review.md +93 -0
  219. package/templates/engine/.agents/commands/stages.md +256 -0
  220. package/templates/engine/.agents/config/commit-msg-rules.json +7 -0
  221. package/templates/engine/.agents/config/engine.json +11 -0
  222. package/templates/engine/.agents/config/gate-budgets.json +5 -0
  223. package/templates/engine/.agents/config/mechanism-registry.md +62 -0
  224. package/templates/engine/.agents/config/model-roles.json +26 -0
  225. package/templates/engine/.agents/config/model-roles.local.example.json +7 -0
  226. package/templates/engine/.agents/config/pr-review.json +67 -0
  227. package/templates/engine/.agents/config/principles.md +32 -0
  228. package/templates/engine/.agents/config/workflow-enums.txt +25 -0
  229. package/templates/engine/.agents/hooks/check-architecture.mjs +168 -0
  230. package/templates/engine/.agents/hooks/check-audit-fields.mjs +56 -0
  231. package/templates/engine/.agents/hooks/check-commit-plan-ref.mjs +84 -0
  232. package/templates/engine/.agents/hooks/check-confirm-order.mjs +281 -0
  233. package/templates/engine/.agents/hooks/check-delete-guard.mjs +63 -0
  234. package/templates/engine/.agents/hooks/check-notify-guard.mjs +55 -0
  235. package/templates/engine/.agents/hooks/commit-check.cjs +208 -0
  236. package/templates/engine/.agents/hooks/gates.json +33 -0
  237. package/templates/engine/.agents/hooks/local-pre-commit.mjs +27 -0
  238. package/templates/engine/.agents/hooks/pre-shell-check.cjs +361 -0
  239. package/templates/engine/.agents/hooks/pre-write-check.cjs +220 -0
  240. package/templates/engine/.agents/notes/gate-diet.md +75 -0
  241. package/templates/engine/.agents/notes/pr-review-cost-discipline.md +48 -0
  242. package/templates/engine/.agents/notes/process-order-rule.md +21 -0
  243. package/templates/engine/.agents/notes/runtime-env.local.example.md +21 -0
  244. package/templates/engine/.agents/pipelines/_TEMPLATE.md +75 -0
  245. package/templates/engine/.agents/pipelines/pipeline-closing.md +28 -0
  246. package/templates/engine/.agents/pipelines//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +16 -0
  247. package/templates/engine/.agents/roles/implementer.md +28 -0
  248. package/templates/engine/.agents/roles/independent-reviewer.md +39 -0
  249. package/templates/engine/.agents/roles/pr-adjudicator.md +27 -0
  250. package/templates/engine/.agents/roles/pr-finder.md +51 -0
  251. package/templates/engine/.agents/roles/pr-verifier.md +44 -0
  252. package/templates/engine/.agents/roles/ui-verifier.md +22 -0
  253. package/templates/engine/.agents/roles/wiki-compiler.md +47 -0
  254. package/templates/engine/.agents/scripts/agg-delegations.mjs +439 -0
  255. package/templates/engine/.agents/scripts/agg-judgments.mjs +301 -0
  256. package/templates/engine/.agents/scripts/agg-kb-usage.mjs +196 -0
  257. package/templates/engine/.agents/scripts/append-compensation.mjs +109 -0
  258. package/templates/engine/.agents/scripts/archive-sweep.mjs +229 -0
  259. package/templates/engine/.agents/scripts/auto-tour.mjs +77 -0
  260. package/templates/engine/.agents/scripts/board-port.mjs +17 -0
  261. package/templates/engine/.agents/scripts/check-doc-body-drift.mjs +102 -0
  262. package/templates/engine/.agents/scripts/check-engine-artifacts.mjs +54 -0
  263. package/templates/engine/.agents/scripts/check-hook-wiring.mjs +75 -0
  264. package/templates/engine/.agents/scripts/check-lane-surface.mjs +393 -0
  265. package/templates/engine/.agents/scripts/check-ledger-doc-presence.mjs +71 -0
  266. package/templates/engine/.agents/scripts/check-ledger-invariant.mjs +873 -0
  267. package/templates/engine/.agents/scripts/check-local-gate-config.mjs +95 -0
  268. package/templates/engine/.agents/scripts/check-local-gates.mjs +248 -0
  269. package/templates/engine/.agents/scripts/check-loop-kit.mjs +550 -0
  270. package/templates/engine/.agents/scripts/check-loop-rev-semantics.mjs +59 -0
  271. package/templates/engine/.agents/scripts/check-loop-sections/s01-pairing.mjs +116 -0
  272. package/templates/engine/.agents/scripts/check-loop-sections/s03x-regr-evidence.mjs +38 -0
  273. package/templates/engine/.agents/scripts/check-loop-sections/s08-acceptance.mjs +130 -0
  274. package/templates/engine/.agents/scripts/check-loop-sections/s15-fingerprint.mjs +152 -0
  275. package/templates/engine/.agents/scripts/check-loop-sections/s23-convergence-audit.mjs +182 -0
  276. package/templates/engine/.agents/scripts/check-loop-sections/s29-regr-enforcer.mjs +69 -0
  277. package/templates/engine/.agents/scripts/check-loop.mjs +131 -0
  278. package/templates/engine/.agents/scripts/check-regression-consistency.mjs +252 -0
  279. package/templates/engine/.agents/scripts/check-schema-residue.mjs +144 -0
  280. package/templates/engine/.agents/scripts/check-scope-range.mjs +156 -0
  281. package/templates/engine/.agents/scripts/check-scope.mjs +121 -0
  282. package/templates/engine/.agents/scripts/check-scripts-syntax.mjs +138 -0
  283. package/templates/engine/.agents/scripts/check-secrets-lite.mjs +239 -0
  284. package/templates/engine/.agents/scripts/check-secrets.mjs +104 -0
  285. package/templates/engine/.agents/scripts/check-test-impact-map.mjs +107 -0
  286. package/templates/engine/.agents/scripts/ci-assert-frontend-deps.mjs +42 -0
  287. package/templates/engine/.agents/scripts/ci-commit-hygiene.mjs +86 -0
  288. package/templates/engine/.agents/scripts/ci-install-gitleaks.mjs +75 -0
  289. package/templates/engine/.agents/scripts/ci-push-before.mjs +49 -0
  290. package/templates/engine/.agents/scripts/closeout.mjs +127 -0
  291. package/templates/engine/.agents/scripts/compact-ledgers.mjs +70 -0
  292. package/templates/engine/.agents/scripts/confirm-doc.mjs +737 -0
  293. package/templates/engine/.agents/scripts/delegation-presence.mjs +38 -0
  294. package/templates/engine/.agents/scripts/dev-tour-model.mjs +1398 -0
  295. package/templates/engine/.agents/scripts/dream-run.mjs +283 -0
  296. package/templates/engine/.agents/scripts/ensure-board.mjs +187 -0
  297. package/templates/engine/.agents/scripts/failure-attribution.mjs +11 -0
  298. package/templates/engine/.agents/scripts/fill-intent.mjs +60 -0
  299. package/templates/engine/.agents/scripts/fill-plan.mjs +105 -0
  300. package/templates/engine/.agents/scripts/fill-spec.mjs +72 -0
  301. package/templates/engine/.agents/scripts/gen-dev-tour.mjs +191 -0
  302. package/templates/engine/.agents/scripts/gen-effective-policy.mjs +113 -0
  303. package/templates/engine/.agents/scripts/gen-engine-map.mjs +292 -0
  304. package/templates/engine/.agents/scripts/gen-narrative-claims.mjs +275 -0
  305. package/templates/engine/.agents/scripts/gen-verify-evidence.mjs +115 -0
  306. package/templates/engine/.agents/scripts/gen-wiki-board.mjs +221 -0
  307. package/templates/engine/.agents/scripts/gen-workflow-index.mjs +201 -0
  308. package/templates/engine/.agents/scripts/gen-workflow-metrics.mjs +692 -0
  309. package/templates/engine/.agents/scripts/git-merge-jsonl.mjs +62 -0
  310. package/templates/engine/.agents/scripts/judgment-ledger.mjs +68 -0
  311. package/templates/engine/.agents/scripts/kb-cache-evict.mjs +50 -0
  312. package/templates/engine/.agents/scripts/kb-search.mjs +423 -0
  313. package/templates/engine/.agents/scripts/lane-surface-audit.mjs +145 -0
  314. package/templates/engine/.agents/scripts/ledger-loader.mjs +77 -0
  315. package/templates/engine/.agents/scripts/ledger-shards.mjs +346 -0
  316. package/templates/engine/.agents/scripts/metrics-core.mjs +131 -0
  317. package/templates/engine/.agents/scripts/pipeline-run.mjs +964 -0
  318. package/templates/engine/.agents/scripts/policy.mjs +250 -0
  319. package/templates/engine/.agents/scripts/pr-create.mjs +54 -0
  320. package/templates/engine/.agents/scripts/pr-review.mjs +1551 -0
  321. package/templates/engine/.agents/scripts/quote-grounding.mjs +233 -0
  322. package/templates/engine/.agents/scripts/regen-ledgers.mjs +59 -0
  323. package/templates/engine/.agents/scripts/rewrite-file.mjs +135 -0
  324. package/templates/engine/.agents/scripts/rule-budget.mjs +246 -0
  325. package/templates/engine/.agents/scripts/stage-gates.mjs +812 -0
  326. package/templates/engine/.agents/scripts/test-impact-lib.mjs +451 -0
  327. package/templates/engine/.agents/scripts/test-impact.mjs +105 -0
  328. package/templates/engine/.agents/scripts/trust-mode.mjs +130 -0
  329. package/templates/engine/.agents/scripts/verify-scope.mjs +163 -0
  330. package/templates/engine/.agents/scripts/verify-wiki-consistency.mjs +264 -0
  331. package/templates/engine/.agents/scripts/verify.mjs +847 -0
  332. package/templates/engine/.agents/scripts/warn-format.mjs +57 -0
  333. package/templates/engine/.agents/scripts/wf-journal.mjs +230 -0
  334. package/templates/engine/.agents/scripts/workflow-board-server.mjs +696 -0
  335. package/templates/engine/.agents/scripts/workflow-enums.mjs +70 -0
  336. package/templates/engine/.agents/scripts/workflows-check.mjs +260 -0
  337. package/templates/engine/.agents/settings.json +33 -0
  338. package/templates/engine/.agents/skills/arena/SKILL.md +50 -0
  339. package/templates/engine/.agents/skills/autonomous-run/SKILL.md +45 -0
  340. package/templates/engine/.agents/skills/blast-radius/SKILL.md +53 -0
  341. package/templates/engine/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  342. package/templates/engine/.agents/skills/csharp-quality-gates/scripts/quality-gates.mjs +430 -0
  343. package/templates/engine/.agents/skills/dev-tour/SKILL.md +98 -0
  344. package/templates/engine/.agents/skills/dream/SKILL.md +63 -0
  345. package/templates/engine/.agents/skills/eval/SKILL.md +42 -0
  346. package/templates/engine/.agents/skills/eval/scripts/eval-score.mjs +59 -0
  347. package/templates/engine/.agents/skills/interrogate/SKILL.md +49 -0
  348. package/templates/engine/.agents/skills/interrogate/scripts/interrogate-plan.mjs +72 -0
  349. package/templates/engine/.agents/skills/number-vetting/SKILL.md +35 -0
  350. package/templates/engine/.agents/skills/page-refactor/SKILL.md +192 -0
  351. package/templates/engine/.agents/skills/page-refactor/references/templates.md +989 -0
  352. package/templates/engine/.agents/skills/papercut-fix/SKILL.md +92 -0
  353. package/templates/engine/.agents/skills/papercut-fix/references/response-template.md +81 -0
  354. package/templates/engine/.agents/skills/pause-safely/SKILL.md +31 -0
  355. package/templates/engine/.agents/skills/perf/SKILL.md +42 -0
  356. package/templates/engine/.agents/skills/review-method/SKILL.md +92 -0
  357. package/templates/engine/.agents/skills/review-method/golden-set.md +61 -0
  358. package/templates/engine/.agents/skills/session-resume/SKILL.md +69 -0
  359. package/templates/engine/.agents/skills/session-resume/scripts/worktree-audit.mjs +110 -0
  360. package/templates/engine/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  361. package/templates/engine/.agents/skills/show-me-your-work/SKILL.md +57 -0
  362. package/templates/engine/.agents/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  363. package/templates/engine/.agents/skills/show-me-your-work/scripts/decision-log.mjs +24 -0
  364. package/templates/engine/.agents/skills/tfs-pr/SKILL.md +95 -0
  365. package/templates/engine/.agents/skills/tfs-pr/scripts/tfs-pr.mjs +947 -0
  366. package/templates/engine/.agents/skills/verify-ui/SKILL.md +116 -0
  367. package/templates/engine/.agents/skills/verify-ui/features/.gitkeep +0 -0
  368. package/templates/engine/.agents/skills/verify-ui/scripts/gen-verify-feature.mjs +114 -0
  369. package/templates/engine/.agents/skills/visual-parity/SKILL.md +35 -0
  370. package/templates/engine/.agents/skills/why/SKILL.md +56 -0
  371. package/templates/engine/.agents/skills/why/scripts/why-evidence.mjs +74 -0
  372. package/templates/engine/.agents/skills/wiki/SKILL.md +53 -0
  373. package/templates/engine/.agents/tests/auto-tour.test.mjs +82 -0
  374. package/templates/engine/.agents/tests/dev-tour-model.test.mjs +452 -0
  375. package/templates/engine/.agents/tests/fill-plan-lite.test.mjs +46 -0
  376. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.md +14 -0
  377. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.model.json +179 -0
  378. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.md +21 -0
  379. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.model.json +194 -0
  380. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.md +20 -0
  381. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.model.json +207 -0
  382. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.md +24 -0
  383. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.model.json +225 -0
  384. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.md +15 -0
  385. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.model.json +160 -0
  386. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.md +29 -0
  387. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.model.json +266 -0
  388. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.md +17 -0
  389. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.model.json +207 -0
  390. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.md +39 -0
  391. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.model.json +359 -0
  392. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.md +16 -0
  393. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.model.json +131 -0
  394. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.md +29 -0
  395. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.model.json +190 -0
  396. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.md +39 -0
  397. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.model.json +362 -0
  398. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.md +24 -0
  399. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.model.json +224 -0
  400. package/templates/engine/.agents/tests/tools/gen-synthetic-plan.mjs +108 -0
  401. package/templates/git/.gitattributes +22 -0
  402. package/templates/git/.githooks/commit-msg +72 -0
  403. package/templates/git/.githooks/post-commit +62 -0
  404. package/templates/git/.githooks/pre-commit +197 -0
  405. package/templates/git/.githooks/pre-merge-commit +28 -0
  406. package/templates/git/.githooks/pre-push +201 -0
  407. package/templates/git/.gitignore.engine +11 -0
  408. package/templates/hosts/claude/CLAUDE.md +55 -0
  409. package/templates/hosts/claude/agents/implementer.md +7 -0
  410. package/templates/hosts/claude/agents/independent-reviewer.md +8 -0
  411. package/templates/hosts/claude/agents/pr-adjudicator.md +8 -0
  412. package/templates/hosts/claude/agents/pr-finder.md +8 -0
  413. package/templates/hosts/claude/agents/pr-verifier.md +8 -0
  414. package/templates/hosts/claude/agents/ui-verifier.md +8 -0
  415. package/templates/hosts/claude/agents/wiki-compiler.md +8 -0
  416. package/templates/hosts/claude/commands/wf-deploy.md +10 -0
  417. package/templates/hosts/claude/commands/wf-maintain.md +10 -0
  418. package/templates/hosts/claude/commands/wf-new-task.md +10 -0
  419. package/templates/hosts/claude/commands/wf-pipeline-run.md +10 -0
  420. package/templates/hosts/claude/commands/wf-pr-review.md +10 -0
  421. package/templates/hosts/claude/commands/wf-review.md +10 -0
  422. package/templates/hosts/claude/commands/wf-stages.md +10 -0
  423. package/templates/hosts/claude/settings.json +57 -0
  424. package/templates/hosts/cline/agents/implementer.yml +15 -0
  425. package/templates/hosts/cline/agents/independent-reviewer.yml +20 -0
  426. package/templates/hosts/cline/agents/pr-adjudicator.yml +18 -0
  427. package/templates/hosts/cline/agents/pr-finder.yml +19 -0
  428. package/templates/hosts/cline/agents/pr-verifier.yml +18 -0
  429. package/templates/hosts/cline/agents/ui-verifier.yml +17 -0
  430. package/templates/hosts/cline/agents/wiki-compiler.yml +20 -0
  431. package/templates/hosts/cline/hooks/PreToolUse.cjs +260 -0
  432. package/templates/hosts/cline/workflows/wf-deploy.md +8 -0
  433. package/templates/hosts/cline/workflows/wf-maintain.md +8 -0
  434. package/templates/hosts/cline/workflows/wf-new-task.md +8 -0
  435. package/templates/hosts/cline/workflows/wf-pipeline-run.md +8 -0
  436. package/templates/hosts/cline/workflows/wf-pr-review.md +8 -0
  437. package/templates/hosts/cline/workflows/wf-review.md +8 -0
  438. package/templates/hosts/cline/workflows/wf-stages.md +8 -0
  439. package/templates/hosts/codebuddy/CODEBUDDY.md +7 -0
  440. package/templates/hosts/codebuddy/agents/implementer.md +9 -0
  441. package/templates/hosts/codebuddy/agents/independent-reviewer.md +10 -0
  442. package/templates/hosts/codebuddy/agents/pr-adjudicator.md +10 -0
  443. package/templates/hosts/codebuddy/agents/pr-finder.md +10 -0
  444. package/templates/hosts/codebuddy/agents/pr-verifier.md +10 -0
  445. package/templates/hosts/codebuddy/agents/ui-verifier.md +11 -0
  446. package/templates/hosts/codebuddy/agents/wiki-compiler.md +10 -0
  447. package/templates/hosts/codebuddy/commands/wf-deploy.md +10 -0
  448. package/templates/hosts/codebuddy/commands/wf-maintain.md +10 -0
  449. package/templates/hosts/codebuddy/commands/wf-new-task.md +10 -0
  450. package/templates/hosts/codebuddy/commands/wf-pipeline-run.md +10 -0
  451. package/templates/hosts/codebuddy/commands/wf-pr-review.md +10 -0
  452. package/templates/hosts/codebuddy/commands/wf-review.md +10 -0
  453. package/templates/hosts/codebuddy/commands/wf-stages.md +10 -0
  454. package/templates/hosts/codebuddy/rules/backend-scope.md +5 -0
  455. package/templates/hosts/codebuddy/rules/frontend-scope.md +5 -0
  456. package/templates/hosts/codebuddy/settings.json +31 -0
  457. package/templates/hosts/codebuddy/skills/tfs-pr/SKILL.md +6 -0
  458. package/templates/hosts/commandcode/agents/implementer.md +10 -0
  459. package/templates/hosts/commandcode/agents/independent-reviewer.md +9 -0
  460. package/templates/hosts/commandcode/agents/pr-adjudicator.md +9 -0
  461. package/templates/hosts/commandcode/agents/pr-finder.md +9 -0
  462. package/templates/hosts/commandcode/agents/pr-verifier.md +9 -0
  463. package/templates/hosts/commandcode/agents/ui-verifier.md +11 -0
  464. package/templates/hosts/commandcode/agents/wiki-compiler.md +10 -0
  465. package/templates/hosts/commandcode/commands/wf-deploy.md +9 -0
  466. package/templates/hosts/commandcode/commands/wf-maintain.md +9 -0
  467. package/templates/hosts/commandcode/commands/wf-new-task.md +9 -0
  468. package/templates/hosts/commandcode/commands/wf-pipeline-run.md +9 -0
  469. package/templates/hosts/commandcode/commands/wf-pr-review.md +9 -0
  470. package/templates/hosts/commandcode/commands/wf-review.md +9 -0
  471. package/templates/hosts/commandcode/commands/wf-stages.md +9 -0
  472. package/templates/hosts/commandcode/settings.json +59 -0
  473. package/templates/hosts/opencode/agents/implementer.md +51 -0
  474. package/templates/hosts/opencode/agents/independent-reviewer.md +18 -0
  475. package/templates/hosts/opencode/agents/pr-adjudicator.md +18 -0
  476. package/templates/hosts/opencode/agents/pr-finder.md +18 -0
  477. package/templates/hosts/opencode/agents/pr-verifier.md +18 -0
  478. package/templates/hosts/opencode/agents/ui-verifier.md +45 -0
  479. package/templates/hosts/opencode/agents/wiki-compiler.md +51 -0
  480. package/templates/hosts/opencode/commands/wf-deploy.md +7 -0
  481. package/templates/hosts/opencode/commands/wf-maintain.md +7 -0
  482. package/templates/hosts/opencode/commands/wf-new-task.md +7 -0
  483. package/templates/hosts/opencode/commands/wf-pipeline-run.md +7 -0
  484. package/templates/hosts/opencode/commands/wf-pr-review.md +7 -0
  485. package/templates/hosts/opencode/commands/wf-review.md +7 -0
  486. package/templates/hosts/opencode/commands/wf-stages.md +7 -0
  487. package/templates/hosts/pi/agents/implementer.md +10 -0
  488. package/templates/hosts/pi/agents/independent-reviewer.md +11 -0
  489. package/templates/hosts/pi/agents/pr-adjudicator.md +11 -0
  490. package/templates/hosts/pi/agents/pr-finder.md +10 -0
  491. package/templates/hosts/pi/agents/pr-verifier.md +10 -0
  492. package/templates/hosts/pi/agents/ui-verifier.md +10 -0
  493. package/templates/hosts/pi/agents/wiki-compiler.md +10 -0
  494. package/templates/hosts/pi/extensions/lib/gates-core.cjs +196 -0
  495. package/templates/hosts/pi/extensions/shipyard-gates.ts +95 -0
  496. package/templates/hosts/pi/settings.json +5 -0
  497. package/templates/hosts/qoder/agents/implementer.md +9 -0
  498. package/templates/hosts/qoder/agents/independent-reviewer.md +10 -0
  499. package/templates/hosts/qoder/agents/pr-adjudicator.md +10 -0
  500. package/templates/hosts/qoder/agents/pr-finder.md +10 -0
  501. package/templates/hosts/qoder/agents/pr-verifier.md +10 -0
  502. package/templates/hosts/qoder/agents/ui-verifier.md +10 -0
  503. package/templates/hosts/qoder/agents/wiki-compiler.md +10 -0
  504. package/templates/hosts/qoder/commands/wf-deploy.md +8 -0
  505. package/templates/hosts/qoder/commands/wf-maintain.md +8 -0
  506. package/templates/hosts/qoder/commands/wf-new-task.md +8 -0
  507. package/templates/hosts/qoder/commands/wf-pipeline-run.md +8 -0
  508. package/templates/hosts/qoder/commands/wf-pr-review.md +8 -0
  509. package/templates/hosts/qoder/commands/wf-review.md +8 -0
  510. package/templates/hosts/qoder/commands/wf-stages.md +8 -0
  511. package/templates/hosts/qoder/settings.json +63 -0
  512. package/templates/hosts/qwen/agents/implementer.md +8 -0
  513. package/templates/hosts/qwen/agents/independent-reviewer.md +8 -0
  514. package/templates/hosts/qwen/agents/pr-adjudicator.md +8 -0
  515. package/templates/hosts/qwen/agents/pr-finder.md +8 -0
  516. package/templates/hosts/qwen/agents/pr-verifier.md +8 -0
  517. package/templates/hosts/qwen/agents/ui-verifier.md +8 -0
  518. package/templates/hosts/qwen/agents/wiki-compiler.md +11 -0
  519. package/templates/hosts/qwen/commands/wf-deploy.md +9 -0
  520. package/templates/hosts/qwen/commands/wf-maintain.md +9 -0
  521. package/templates/hosts/qwen/commands/wf-new-task.md +9 -0
  522. package/templates/hosts/qwen/commands/wf-pipeline-run.md +9 -0
  523. package/templates/hosts/qwen/commands/wf-pr-review.md +9 -0
  524. package/templates/hosts/qwen/commands/wf-review.md +9 -0
  525. package/templates/hosts/qwen/commands/wf-stages.md +9 -0
  526. package/templates/hosts/qwen/settings.json +59 -0
  527. package/templates/hosts/trae/agents/implementer.md +9 -0
  528. package/templates/hosts/trae/agents/independent-reviewer.md +10 -0
  529. package/templates/hosts/trae/agents/pr-adjudicator.md +10 -0
  530. package/templates/hosts/trae/agents/pr-finder.md +10 -0
  531. package/templates/hosts/trae/agents/pr-verifier.md +10 -0
  532. package/templates/hosts/trae/agents/ui-verifier.md +10 -0
  533. package/templates/hosts/trae/agents/wiki-compiler.md +10 -0
  534. package/templates/hosts/trae/commands/wf-deploy.md +8 -0
  535. package/templates/hosts/trae/commands/wf-maintain.md +8 -0
  536. package/templates/hosts/trae/commands/wf-new-task.md +8 -0
  537. package/templates/hosts/trae/commands/wf-pipeline-run.md +8 -0
  538. package/templates/hosts/trae/commands/wf-pr-review.md +8 -0
  539. package/templates/hosts/trae/commands/wf-review.md +8 -0
  540. package/templates/hosts/trae/commands/wf-stages.md +8 -0
  541. package/templates/hosts/trae/hooks.json +17 -0
  542. package/templates/hosts/trae/rules/backend-scope.md +5 -0
  543. package/templates/hosts/trae/rules/frontend-scope.md +5 -0
  544. package/templates/hosts/zcode/agents/implementer.md +8 -0
  545. package/templates/hosts/zcode/agents/independent-reviewer.md +8 -0
  546. package/templates/hosts/zcode/agents/ui-verifier.md +8 -0
  547. package/templates/hosts/zcode/agents/wiki-compiler.md +8 -0
  548. package/templates/hosts/zcode/config.json +31 -0
  549. package/templates/hosts/zcode/workflows/code-review.dwf.ts +428 -0
  550. package/templates/hosts/zcode/workflows/fullchain-flow-test.dwf.ts +898 -0
  551. package/templates/profiles/dotnet/.agents/config/lane-surfaces.txt +33 -0
  552. package/templates/profiles/dotnet/.agents/config/rule-budgets.txt +84 -0
  553. package/templates/profiles/dotnet/.agents/config/test-impact-map.json +590 -0
  554. package/templates/profiles/dotnet/.agents/config/workflow-modules.txt +18 -0
  555. package/templates/profiles/dotnet/.agents/hooks/commit-check.config.json +18 -0
  556. package/templates/profiles/dotnet/.agents/hooks/delete-guard-allowlist.txt +28 -0
  557. package/templates/profiles/dotnet/.agents/notes/runtime-env.md +178 -0
  558. package/templates/profiles/dotnet/AGENTS.md +52 -0
  559. package/templates/profiles/empty/.agents/config/lane-surfaces.txt +12 -0
  560. package/templates/profiles/empty/.agents/config/rule-budgets.txt +3 -0
  561. package/templates/profiles/empty/.agents/config/test-impact-map.json +8 -0
  562. package/templates/profiles/empty/.agents/config/workflow-modules.txt +2 -0
  563. package/templates/profiles/empty/.agents/hooks/commit-check.config.json +5 -0
  564. package/templates/profiles/empty/.agents/hooks/delete-guard-allowlist.txt +2 -0
  565. package/templates/profiles/empty/.agents/notes/runtime-env.md +44 -0
  566. package/templates/profiles/empty/AGENTS.md +52 -0
  567. package/templates/profiles/node/.agents/config/lane-surfaces.txt +12 -0
  568. package/templates/profiles/node/.agents/config/rule-budgets.txt +3 -0
  569. package/templates/profiles/node/.agents/config/test-impact-map.json +8 -0
  570. package/templates/profiles/node/.agents/config/workflow-modules.txt +2 -0
  571. package/templates/profiles/node/.agents/hooks/commit-check.config.json +5 -0
  572. package/templates/profiles/node/.agents/hooks/delete-guard-allowlist.txt +2 -0
  573. package/templates/profiles/node/.agents/notes/runtime-env.md +44 -0
  574. package/templates/profiles/node/AGENTS.md +52 -0
  575. package/templates/scaffold/wiki/INDEX.md +33 -0
  576. package/templates/scaffold/wiki/drafts-archive/README.md +7 -0
  577. package/templates/scaffold/wiki//344/272/247/345/223/201/351/234/200/346/261/202/.gitkeep +0 -0
  578. package/templates/scaffold/wiki//345/274/200/345/217/221/346/226/271/346/241/210/.gitkeep +0 -0
  579. package/templates/scaffold/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  580. package/templates/scaffold/wiki//346/265/213/350/257/225/346/212/245/345/221/212/.gitkeep +0 -0
  581. package/templates/scaffold/wiki//347/224/250/346/210/267/345/212/237/350/203/275/.gitkeep +0 -0
  582. package/templates/scaffold/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  583. package/templates/scaffold/wiki//351/241/271/347/233/256/350/247/204/350/214/203/.gitkeep +0 -0
  584. package/templates/scaffold/workflow/INDEX.md +13 -0
  585. package/templates/scaffold/workflow/README.md +67 -0
  586. package/templates/scaffold/workflow/archive/README.md +3 -0
  587. package/templates/scaffold/workflow/delegations.d/.gitkeep +0 -0
  588. package/templates/scaffold/workflow/delegations.md +4 -0
  589. package/templates/scaffold/workflow/effective-policy.md +4 -0
  590. package/templates/scaffold/workflow/evidence/.gitkeep +0 -0
  591. package/templates/scaffold/workflow/gate-cost.md +4 -0
  592. package/templates/scaffold/workflow/gate-metrics.d/.gitkeep +0 -0
  593. package/templates/scaffold/workflow/incidents/_TEMPLATE.md +49 -0
  594. package/templates/scaffold/workflow/intents/_TEMPLATE.md +43 -0
  595. package/templates/scaffold/workflow/metrics.md +4 -0
  596. package/templates/scaffold/workflow/papercuts.d/.gitkeep +0 -0
  597. package/templates/scaffold/workflow/papercuts.md +3 -0
  598. package/templates/scaffold/workflow/plans/_TEMPLATE.md +47 -0
  599. package/templates/scaffold/workflow/regression-checklist.d/.gitkeep +0 -0
  600. package/templates/scaffold/workflow/regression-checklist.md +3 -0
  601. package/templates/scaffold/workflow/research/.gitkeep +0 -0
  602. package/templates/scaffold/workflow/reviews.d/.gitkeep +0 -0
  603. package/templates/scaffold/workflow/specs/_TEMPLATE.md +87 -0
  604. package/templates/scaffold/workflow/verify-evidence/.gitkeep +0 -0
  605. package/templates/scaffold/workflow/verify-evidence.md +4 -0
  606. package/LICENSE +0 -21
  607. package/modules/gates/README.md +0 -25
  608. package/modules/gates/dotnet-ca/README.md +0 -24
  609. package/modules/gates/dotnet-ca/check-architecture.sh +0 -150
  610. package/modules/gates/dotnet-ca/local-pre-commit.line +0 -1
  611. package/modules/gates/generated-readonly/README.md +0 -13
  612. package/modules/gates/generated-readonly/check-generated.mjs +0 -61
  613. package/modules/gates/generated-readonly/local-pre-commit.line +0 -1
  614. package/modules/gates/node-layer/README.md +0 -9
  615. package/modules/gates/node-layer/check-node-layer.mjs +0 -29
  616. package/modules/gates/node-layer/local-pre-commit.line +0 -1
  617. package/modules/gates/py-import/README.md +0 -9
  618. package/modules/gates/py-import/check-py-import.mjs +0 -30
  619. package/modules/gates/py-import/local-pre-commit.line +0 -1
  620. package/modules/gates/test-protect/README.md +0 -23
  621. package/modules/gates/test-protect/check-test-protect.mjs +0 -64
  622. package/modules/gates/test-protect/local-pre-commit.line +0 -1
  623. package/modules/hosts/README.md +0 -57
  624. package/modules/hosts/claude/agents/implementer.md +0 -51
  625. package/modules/hosts/claude/agents/independent-reviewer.md +0 -49
  626. package/modules/hosts/claude/agents/ui-verifier.md +0 -48
  627. package/modules/hosts/claude/commands/wf-build.md +0 -69
  628. package/modules/hosts/claude/commands/wf-deploy.md +0 -58
  629. package/modules/hosts/claude/commands/wf-design.md +0 -49
  630. package/modules/hosts/claude/commands/wf-gate-checklist.md +0 -77
  631. package/modules/hosts/claude/commands/wf-maintain.md +0 -76
  632. package/modules/hosts/claude/commands/wf-new-task.md +0 -102
  633. package/modules/hosts/claude/commands/wf-pipeline-run.md +0 -35
  634. package/modules/hosts/claude/commands/wf-plan.md +0 -40
  635. package/modules/hosts/claude/commands/wf-review.md +0 -49
  636. package/modules/hosts/claude/commands/wf-sync-hosts.md +0 -64
  637. package/modules/hosts/claude/commands/wf-test.md +0 -68
  638. package/modules/hosts/codex/agents/implementer.md +0 -51
  639. package/modules/hosts/codex/agents/independent-reviewer.md +0 -49
  640. package/modules/hosts/codex/agents/ui-verifier.md +0 -48
  641. package/modules/hosts/codex/commands/wf-build.md +0 -69
  642. package/modules/hosts/codex/commands/wf-deploy.md +0 -58
  643. package/modules/hosts/codex/commands/wf-design.md +0 -49
  644. package/modules/hosts/codex/commands/wf-gate-checklist.md +0 -77
  645. package/modules/hosts/codex/commands/wf-maintain.md +0 -76
  646. package/modules/hosts/codex/commands/wf-new-task.md +0 -102
  647. package/modules/hosts/codex/commands/wf-pipeline-run.md +0 -35
  648. package/modules/hosts/codex/commands/wf-plan.md +0 -40
  649. package/modules/hosts/codex/commands/wf-review.md +0 -49
  650. package/modules/hosts/codex/commands/wf-sync-hosts.md +0 -64
  651. package/modules/hosts/codex/commands/wf-test.md +0 -68
  652. package/modules/hosts/codex/skills/flow-kit/SKILL.md +0 -14
  653. package/modules/hosts/cursor/agents/implementer.md +0 -51
  654. package/modules/hosts/cursor/agents/independent-reviewer.md +0 -49
  655. package/modules/hosts/cursor/agents/ui-verifier.md +0 -48
  656. package/modules/hosts/cursor/commands/wf-build.md +0 -69
  657. package/modules/hosts/cursor/commands/wf-deploy.md +0 -58
  658. package/modules/hosts/cursor/commands/wf-design.md +0 -49
  659. package/modules/hosts/cursor/commands/wf-gate-checklist.md +0 -77
  660. package/modules/hosts/cursor/commands/wf-maintain.md +0 -76
  661. package/modules/hosts/cursor/commands/wf-new-task.md +0 -102
  662. package/modules/hosts/cursor/commands/wf-pipeline-run.md +0 -35
  663. package/modules/hosts/cursor/commands/wf-plan.md +0 -40
  664. package/modules/hosts/cursor/commands/wf-review.md +0 -49
  665. package/modules/hosts/cursor/commands/wf-sync-hosts.md +0 -64
  666. package/modules/hosts/cursor/commands/wf-test.md +0 -68
  667. package/modules/hosts/omp/agents/implementer.md +0 -52
  668. package/modules/hosts/omp/agents/independent-reviewer.md +0 -50
  669. package/modules/hosts/omp/agents/ui-verifier.md +0 -49
  670. package/modules/hosts/opencode/agents/implementer.md +0 -59
  671. package/modules/hosts/opencode/agents/independent-reviewer.md +0 -53
  672. package/modules/hosts/opencode/agents/ui-verifier.md +0 -52
  673. package/modules/hosts/opencode/commands/wf-build.md +0 -69
  674. package/modules/hosts/opencode/commands/wf-deploy.md +0 -58
  675. package/modules/hosts/opencode/commands/wf-design.md +0 -49
  676. package/modules/hosts/opencode/commands/wf-gate-checklist.md +0 -77
  677. package/modules/hosts/opencode/commands/wf-maintain.md +0 -76
  678. package/modules/hosts/opencode/commands/wf-new-task.md +0 -102
  679. package/modules/hosts/opencode/commands/wf-pipeline-run.md +0 -35
  680. package/modules/hosts/opencode/commands/wf-plan.md +0 -40
  681. package/modules/hosts/opencode/commands/wf-review.md +0 -49
  682. package/modules/hosts/opencode/commands/wf-sync-hosts.md +0 -64
  683. package/modules/hosts/opencode/commands/wf-test.md +0 -68
  684. package/modules/hosts/trae/agents/implementer.md +0 -52
  685. package/modules/hosts/trae/agents/independent-reviewer.md +0 -51
  686. package/modules/hosts/trae/agents/ui-verifier.md +0 -50
  687. package/modules/hosts/trae/commands/wf-build.md +0 -70
  688. package/modules/hosts/trae/commands/wf-deploy.md +0 -59
  689. package/modules/hosts/trae/commands/wf-design.md +0 -50
  690. package/modules/hosts/trae/commands/wf-gate-checklist.md +0 -78
  691. package/modules/hosts/trae/commands/wf-maintain.md +0 -77
  692. package/modules/hosts/trae/commands/wf-new-task.md +0 -103
  693. package/modules/hosts/trae/commands/wf-pipeline-run.md +0 -36
  694. package/modules/hosts/trae/commands/wf-plan.md +0 -41
  695. package/modules/hosts/trae/commands/wf-review.md +0 -50
  696. package/modules/hosts/trae/commands/wf-sync-hosts.md +0 -65
  697. package/modules/hosts/trae/commands/wf-test.md +0 -69
  698. package/modules/hosts/trae/hooks/post-edit-check.cjs +0 -98
  699. package/modules/hosts/trae/hooks/pre-shell-check.cjs +0 -192
  700. package/modules/hosts/trae/hooks/resolve-shell.cjs +0 -30
  701. package/modules/hosts/trae/hooks.json +0 -29
  702. package/modules/hosts/trae/rules/beautify-input-chinese.md +0 -6
  703. package/modules/hosts/trae/rules/git-commit-message.md +0 -10
  704. package/modules/hosts/trae/rules/project-workflow.md +0 -14
  705. package/modules/hosts/zcode/agents/implementer.md +0 -51
  706. package/modules/hosts/zcode/agents/independent-reviewer.md +0 -49
  707. package/modules/hosts/zcode/agents/ui-verifier.md +0 -48
  708. package/src/add-gate.mjs +0 -116
  709. package/src/add-gate.test.mjs +0 -103
  710. package/src/add-host.mjs +0 -68
  711. package/src/cli.mjs +0 -169
  712. package/src/doctor.mjs +0 -629
  713. package/src/executor.mjs +0 -262
  714. package/src/executor.test.mjs +0 -295
  715. package/src/fresh-init.test.mjs +0 -64
  716. package/src/gate-dotnet-ca.test.mjs +0 -124
  717. package/src/gates.test.mjs +0 -143
  718. package/src/init.mjs +0 -382
  719. package/src/init.test.mjs +0 -163
  720. package/src/instance-ref.test.mjs +0 -62
  721. package/src/jscpd-drift.test.mjs +0 -144
  722. package/src/pack.test.mjs +0 -24
  723. package/src/profiles.mjs +0 -183
  724. package/src/render.mjs +0 -132
  725. package/src/rule-budget.test.mjs +0 -103
  726. package/src/run-tests.mjs +0 -56
  727. package/src/stack-profile.test.mjs +0 -95
  728. package/src/sync-hosts.mjs +0 -257
  729. package/src/sync-hosts.test.mjs +0 -291
  730. package/src/sync.mjs +0 -228
  731. package/src/sync.test.mjs +0 -452
  732. package/src/trae-hooks.test.mjs +0 -127
  733. package/src/validate.mjs +0 -77
  734. package/src/validate.test.mjs +0 -95
  735. package/templates/.gitattributes +0 -17
  736. package/templates/AGENTS.md +0 -57
  737. package/templates/_agents/board/index.html +0 -676
  738. package/templates/_agents/commands/build.md +0 -84
  739. package/templates/_agents/commands/deploy.md +0 -66
  740. package/templates/_agents/commands/design.md +0 -63
  741. package/templates/_agents/commands/gate-checklist.md +0 -91
  742. package/templates/_agents/commands/maintain.md +0 -90
  743. package/templates/_agents/commands/new-task.md +0 -110
  744. package/templates/_agents/commands/pipeline-run.md +0 -43
  745. package/templates/_agents/commands/plan.md +0 -48
  746. package/templates/_agents/commands/review.md +0 -62
  747. package/templates/_agents/commands/sync-hosts.md +0 -77
  748. package/templates/_agents/commands/test.md +0 -87
  749. package/templates/_agents/control-surfaces.txt +0 -53
  750. package/templates/_agents/engine-lock.json +0 -342
  751. package/templates/_agents/hooks/check-index-incremental.mjs +0 -48
  752. package/templates/_agents/hooks/check-pairing-incremental.mjs +0 -66
  753. package/templates/_agents/hooks/check-wiki-ledger.mjs +0 -30
  754. package/templates/_agents/hooks/commit-check.cjs +0 -193
  755. package/templates/_agents/hooks/local-pre-commit +0 -6
  756. package/templates/_agents/lane-surfaces.txt +0 -17
  757. package/templates/_agents/level-hints.txt +0 -30
  758. package/templates/_agents/loop/papercut-debt/DESIGN.md +0 -112
  759. package/templates/_agents/mechanism-registry.md +0 -27
  760. package/templates/_agents/metric-claims.txt +0 -81
  761. package/templates/_agents/notes/engine-internals.md +0 -17
  762. package/templates/_agents/notes/runtime-env.md +0 -18
  763. package/templates/_agents/roles/implementer.md +0 -47
  764. package/templates/_agents/roles/independent-reviewer.md +0 -45
  765. package/templates/_agents/roles/ui-verifier.md +0 -44
  766. package/templates/_agents/rule-budgets.txt +0 -18
  767. package/templates/_agents/scripts/agg-delegations.cjs +0 -302
  768. package/templates/_agents/scripts/agg-delegations.test.mjs +0 -282
  769. package/templates/_agents/scripts/agg-gate-stats.mjs +0 -113
  770. package/templates/_agents/scripts/agg-gate-stats.test.mjs +0 -95
  771. package/templates/_agents/scripts/agg-judgments.mjs +0 -156
  772. package/templates/_agents/scripts/agg-judgments.test.mjs +0 -93
  773. package/templates/_agents/scripts/archive-sweep.mjs +0 -235
  774. package/templates/_agents/scripts/archive-sweep.test.mjs +0 -129
  775. package/templates/_agents/scripts/check-attribution.mjs +0 -37
  776. package/templates/_agents/scripts/check-convergence.mjs +0 -124
  777. package/templates/_agents/scripts/check-engine-integrity.mjs +0 -220
  778. package/templates/_agents/scripts/check-engine-integrity.test.mjs +0 -215
  779. package/templates/_agents/scripts/check-funnel.mjs +0 -56
  780. package/templates/_agents/scripts/check-hygiene.mjs +0 -167
  781. package/templates/_agents/scripts/check-hygiene.test.mjs +0 -182
  782. package/templates/_agents/scripts/check-index-incremental.test.mjs +0 -73
  783. package/templates/_agents/scripts/check-lane-surface.mjs +0 -238
  784. package/templates/_agents/scripts/check-lane-surface.test.mjs +0 -302
  785. package/templates/_agents/scripts/check-ledger-invariant.mjs +0 -527
  786. package/templates/_agents/scripts/check-ledger-invariant.test.mjs +0 -639
  787. package/templates/_agents/scripts/check-loop-rev.test.mjs +0 -336
  788. package/templates/_agents/scripts/check-loop-unit.test.mjs +0 -103
  789. package/templates/_agents/scripts/check-loop.mjs +0 -1958
  790. package/templates/_agents/scripts/check-loop.sh +0 -6
  791. package/templates/_agents/scripts/check-loop.test.mjs +0 -3875
  792. package/templates/_agents/scripts/check-metric-claims.mjs +0 -277
  793. package/templates/_agents/scripts/check-prejudgment.mjs +0 -64
  794. package/templates/_agents/scripts/check-registry.mjs +0 -45
  795. package/templates/_agents/scripts/check-scope.mjs +0 -96
  796. package/templates/_agents/scripts/check-scope.test.mjs +0 -96
  797. package/templates/_agents/scripts/check-scripts-syntax.mjs +0 -61
  798. package/templates/_agents/scripts/check-scripts-syntax.test.mjs +0 -72
  799. package/templates/_agents/scripts/check-spec-verif.mjs +0 -47
  800. package/templates/_agents/scripts/check-stage-index.mjs +0 -40
  801. package/templates/_agents/scripts/check-stage-index.test.mjs +0 -77
  802. package/templates/_agents/scripts/closeout-l1.mjs +0 -217
  803. package/templates/_agents/scripts/closeout-l1.test.mjs +0 -105
  804. package/templates/_agents/scripts/commit-check-trigger.test.mjs +0 -205
  805. package/templates/_agents/scripts/compact-ledgers.mjs +0 -97
  806. package/templates/_agents/scripts/compact-ledgers.test.mjs +0 -162
  807. package/templates/_agents/scripts/confirm-doc.mjs +0 -603
  808. package/templates/_agents/scripts/confirm-doc.test.mjs +0 -1103
  809. package/templates/_agents/scripts/doctor.test.mjs +0 -770
  810. package/templates/_agents/scripts/draft-sediment.mjs +0 -178
  811. package/templates/_agents/scripts/draft-sediment.test.mjs +0 -272
  812. package/templates/_agents/scripts/edit-face-check.mjs +0 -109
  813. package/templates/_agents/scripts/edit-face-check.test.mjs +0 -99
  814. package/templates/_agents/scripts/ensure-board.mjs +0 -185
  815. package/templates/_agents/scripts/fill-intent.mjs +0 -91
  816. package/templates/_agents/scripts/fill-intent.test.mjs +0 -113
  817. package/templates/_agents/scripts/fill-plan.mjs +0 -79
  818. package/templates/_agents/scripts/fill-plan.test.mjs +0 -224
  819. package/templates/_agents/scripts/fill-spec.mjs +0 -70
  820. package/templates/_agents/scripts/fill-spec.test.mjs +0 -266
  821. package/templates/_agents/scripts/fixture-scripts.mjs +0 -153
  822. package/templates/_agents/scripts/fixture-scripts.test.mjs +0 -112
  823. package/templates/_agents/scripts/gate-checklist.mjs +0 -209
  824. package/templates/_agents/scripts/gate-checklist.test.mjs +0 -201
  825. package/templates/_agents/scripts/gate-seg.mjs +0 -54
  826. package/templates/_agents/scripts/gate-seg.test.mjs +0 -112
  827. package/templates/_agents/scripts/gen-effective-policy.mjs +0 -107
  828. package/templates/_agents/scripts/gen-effective-policy.test.mjs +0 -100
  829. package/templates/_agents/scripts/gen-verify-evidence.mjs +0 -107
  830. package/templates/_agents/scripts/gen-verify-evidence.test.mjs +0 -84
  831. package/templates/_agents/scripts/gen-wiki-board.mjs +0 -276
  832. package/templates/_agents/scripts/gen-wiki-board.test.mjs +0 -249
  833. package/templates/_agents/scripts/gen-workflow-dashboard.mjs +0 -251
  834. package/templates/_agents/scripts/gen-workflow-dashboard.test.mjs +0 -188
  835. package/templates/_agents/scripts/gen-workflow-index.mjs +0 -201
  836. package/templates/_agents/scripts/gen-workflow-index.test.mjs +0 -152
  837. package/templates/_agents/scripts/gen-workflow-metrics.mjs +0 -334
  838. package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +0 -224
  839. package/templates/_agents/scripts/git-merge-jsonl.mjs +0 -63
  840. package/templates/_agents/scripts/git-merge-jsonl.test.mjs +0 -125
  841. package/templates/_agents/scripts/judgment-ledger.mjs +0 -65
  842. package/templates/_agents/scripts/judgment-ledger.test.mjs +0 -129
  843. package/templates/_agents/scripts/kb-cache-evict.mjs +0 -50
  844. package/templates/_agents/scripts/kb-cache-evict.test.mjs +0 -104
  845. package/templates/_agents/scripts/kb-search.mjs +0 -413
  846. package/templates/_agents/scripts/kb-search.test.mjs +0 -299
  847. package/templates/_agents/scripts/lane-surface-audit.mjs +0 -143
  848. package/templates/_agents/scripts/lane-surface-audit.test.mjs +0 -93
  849. package/templates/_agents/scripts/ledger-doc-chain.test.mjs +0 -166
  850. package/templates/_agents/scripts/ledger-loader.mjs +0 -108
  851. package/templates/_agents/scripts/ledger-loader.test.mjs +0 -131
  852. package/templates/_agents/scripts/ledger-prune.mjs +0 -96
  853. package/templates/_agents/scripts/ledger-prune.test.mjs +0 -120
  854. package/templates/_agents/scripts/ledger-shards.mjs +0 -344
  855. package/templates/_agents/scripts/ledger-shards.test.mjs +0 -356
  856. package/templates/_agents/scripts/ledger-ts-monotonic.test.mjs +0 -135
  857. package/templates/_agents/scripts/level-criteria.mjs +0 -231
  858. package/templates/_agents/scripts/level-criteria.test.mjs +0 -281
  859. package/templates/_agents/scripts/mechanism-retire-watch.mjs +0 -183
  860. package/templates/_agents/scripts/mechanism-retire-watch.test.mjs +0 -114
  861. package/templates/_agents/scripts/papercut-debt-controller.mjs +0 -141
  862. package/templates/_agents/scripts/papercut-debt-controller.test.mjs +0 -127
  863. package/templates/_agents/scripts/papercut-debt-sensor.mjs +0 -170
  864. package/templates/_agents/scripts/papercut-debt-sensor.test.mjs +0 -146
  865. package/templates/_agents/scripts/pipeline-run-docs.mjs +0 -76
  866. package/templates/_agents/scripts/pipeline-run-run.mjs +0 -63
  867. package/templates/_agents/scripts/pipeline-run.mjs +0 -867
  868. package/templates/_agents/scripts/pipeline-run.test.mjs +0 -517
  869. package/templates/_agents/scripts/policy.mjs +0 -281
  870. package/templates/_agents/scripts/pre-push.test.mjs +0 -105
  871. package/templates/_agents/scripts/resolve-merge-conflicts.mjs +0 -110
  872. package/templates/_agents/scripts/resolve-merge-conflicts.test.mjs +0 -87
  873. package/templates/_agents/scripts/rewrite-file.mjs +0 -133
  874. package/templates/_agents/scripts/rewrite-file.test.mjs +0 -148
  875. package/templates/_agents/scripts/rule-budget.mjs +0 -96
  876. package/templates/_agents/scripts/rule-budget.test.mjs +0 -118
  877. package/templates/_agents/scripts/run-tests.mjs +0 -99
  878. package/templates/_agents/scripts/run-tests.test.mjs +0 -105
  879. package/templates/_agents/scripts/solidify-task.mjs +0 -107
  880. package/templates/_agents/scripts/solidify-task.test.mjs +0 -129
  881. package/templates/_agents/scripts/stage-gates.mjs +0 -343
  882. package/templates/_agents/scripts/stage-gates.test.mjs +0 -105
  883. package/templates/_agents/scripts/trust-mode.mjs +0 -67
  884. package/templates/_agents/scripts/trust-mode.test.mjs +0 -110
  885. package/templates/_agents/scripts/verify-wiki-consistency.mjs +0 -253
  886. package/templates/_agents/scripts/verify-wiki-consistency.test.mjs +0 -123
  887. package/templates/_agents/scripts/verify.mjs +0 -210
  888. package/templates/_agents/scripts/verify.test.mjs +0 -358
  889. package/templates/_agents/scripts/wf-journal.mjs +0 -231
  890. package/templates/_agents/scripts/wf-journal.test.mjs +0 -216
  891. package/templates/_agents/scripts/wiki-search.mjs +0 -19
  892. package/templates/_agents/scripts/wiki-search.test.mjs +0 -57
  893. package/templates/_agents/scripts/workflow-board-server.mjs +0 -393
  894. package/templates/_agents/scripts/workflow-board-server.test.mjs +0 -201
  895. package/templates/_agents/scripts/workflow-enums.mjs +0 -70
  896. package/templates/_agents/scripts/workflow-enums.test.mjs +0 -118
  897. package/templates/_agents/scripts/workflows-check.mjs +0 -260
  898. package/templates/_agents/scripts/workflows-check.test.mjs +0 -278
  899. package/templates/_agents/scripts-test-exempt.txt +0 -16
  900. package/templates/_agents/skills/papercut-fix/SKILL.md +0 -60
  901. package/templates/_agents/skills/papercut-fix/references/response-template.md +0 -81
  902. package/templates/_agents/skills/review-method/SKILL.md +0 -55
  903. package/templates/_agents/skills/verify-ui/SKILL.md +0 -61
  904. package/templates/_agents/skills/wiki/SKILL.md +0 -106
  905. package/templates/_agents/workflow-enums.txt +0 -26
  906. package/templates/_agents/workflow-modules.txt +0 -11
  907. package/templates/_agents/workflows/_TEMPLATE.md +0 -75
  908. package/templates/_agents/workflows/pipeline-closing.md +0 -28
  909. package/templates/_agents/workflows//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +0 -16
  910. package/templates/_githooks/commit-msg +0 -17
  911. package/templates/_githooks/post-commit +0 -10
  912. package/templates/_githooks/pre-commit +0 -126
  913. package/templates/_githooks/pre-merge-commit +0 -29
  914. package/templates/_githooks/pre-push +0 -136
  915. package/templates/_github/workflows/kit-ci.yml +0 -49
  916. package/templates/wiki/INDEX.md +0 -73
  917. package/templates/wiki/drafts-archive/README.md +0 -3
  918. package/templates/wiki//344/272/247/345/223/201/351/234/200/346/261/202/README.md +0 -3
  919. package/templates/wiki//345/274/200/345/217/221/346/226/271/346/241/210/README.md +0 -3
  920. package/templates/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +0 -3
  921. package/templates/wiki//346/265/213/350/257/225/346/212/245/345/221/212/README.md +0 -3
  922. package/templates/wiki//347/224/250/346/210/267/345/212/237/350/203/275/README.md +0 -3
  923. package/templates/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +0 -77
  924. package/templates/wiki//351/241/271/347/233/256/350/247/204/350/214/203/README.md +0 -3
  925. package/templates/wiki//351/241/271/347/233/256/350/256/241/345/210/222/README.md +0 -3
  926. package/templates/workflow/README.md +0 -90
  927. package/templates/workflow/delegations.md +0 -29
  928. package/templates/workflow/incidents/_TEMPLATE.md +0 -51
  929. package/templates/workflow/intents/_TEMPLATE.md +0 -46
  930. package/templates/workflow/papercuts.md +0 -9
  931. package/templates/workflow/plans/_TEMPLATE.md +0 -47
  932. package/templates/workflow/regression-checklist.md +0 -23
  933. package/templates/workflow/specs/_TEMPLATE.md +0 -80
  934. /package/templates/{_agents → engine/.agents}/board/marked.min.js +0 -0
  935. /package/templates/{_agents/workflows → engine/.agents/pipelines}/steps//347/244/272/344/276/213-/351/203/250/347/275/262/351/252/214/350/257/201.md" +0 -0
  936. /package/templates/{_agents → engine/.agents}/scripts/git-core.mjs +0 -0
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: csharp-quality-gates
3
+ description: C# backend quality gates — manual trigger entry for three deterministic gates — CRAP (complexity×coverage), mutation testing, duplicate code; built-in TEMP redirection for the local coverlet collection failure and discrimination of "is 0 coverage a collection fault or genuinely untested", report interpretation criteria, and test-backfill priority ordering; for questions like "is this change covered by tests / which methods should get tests first / is complexity or duplication over threshold / inventory the backend quality status". Command entry .agents/skills/csharp-quality-gates/scripts/quality-gates.mjs.
4
+ ---
5
+
6
+ # csharp-quality-gates — C# backend quality gates (manual trigger)
7
+
8
+ Backend code maps to ub-mode's three-stage discipline (Uncle Bob's crapper/dryer/mutator do not support C#, so this repo substitutes equivalents):
9
+
10
+ | ub-mode gate | Uncle Bob original tool | This repo equivalent | Criterion |
11
+ |---|---|---|---|
12
+ | Crapper (Then Make it Right) | crapper | **dotnet-crap** (Crap4DotNet) | `CRAP = CC²×(1-cov)³+CC`, default threshold 30 |
13
+ | Mutator (Then Make it Right) | mutator | **dotnet stryker** (Stryker.NET) | mutation score (killed/total) |
14
+ | Dryer (Then Make it Right) | dryer | **PMD CPD** (`--language cs`) | structural duplication, token count |
15
+
16
+ Below `qg` refers to `node .agents/skills/csharp-quality-gates/scripts/quality-gates.mjs`.
17
+
18
+ ## Trigger / do not trigger
19
+
20
+ - **Trigger**: "backend quality status / does this change have test coverage / which methods need tests first / is complexity over threshold / any duplicate code / how to run mutation testing"; changes in `backend/` involving business logic; after completing a batch of tests wanting to verify "are the tests really testing".
21
+ - **Do not trigger**: pure frontend changes (this repo's C# gates do not cover `frontend/`); only want to know "does it compile" (use `commit-check.config.json` build section); only want to know "do tests pass" (just `dotnet test`).
22
+ - **Does not replace** the `verify` gate: this skill is a **manually triggered** diagnostic and inventory tool; it does not enter the commit gate and changes no gate configuration.
23
+
24
+ ## 0. Prerequisite probing
25
+
26
+ ```bash
27
+ qg doctor
28
+ ```
29
+
30
+ Prints item by item whether tools are in place: `dotnet` / `dotnet-crap` / `dotnet-stryker` / `pmd` / `java` / unit test project / solution. When missing, the script prints install commands:
31
+
32
+ ```bash
33
+ dotnet tool install -g Crap4DotNet
34
+ dotnet tool install -g dotnet-stryker
35
+ # PMD: download pmd-dist-<ver>-bin.zip and extract to ~/.agents/tools/pmd/ (the level containing lib/ and conf/)
36
+ ```
37
+
38
+ Actual machine paths are registered in `.agents/notes/runtime-env.local.md` (git-ignore, single-source discipline); the script resolves by `env var → known install location → PATH`, no hardcoded absolute paths.
39
+
40
+ ## 1. The three gates
41
+
42
+ ```bash
43
+ qg coverage # run unit tests collecting coverage (TEMP redirection built in)
44
+ qg crap [--threshold 30] [--top 15] [--min-crap N] [--coverage <absolute path>]
45
+ qg dup [--minimum-tokens 100] [--top 10]
46
+ qg mutate "<glob>" # mutation testing, must be targeted
47
+ qg all # coverage → crap → dup (no mutate, too slow)
48
+ ```
49
+
50
+ Exit codes: `0` pass / `1` gate not met (methods over threshold, duplicate blocks, mutation score not met) / `2` usage·configuration·collection failure. **Exit code 2 is never "pass"**, it is "did not run".
51
+
52
+ Artifacts land in `.agents/tmp/quality-gates/` (git-ignore): coverage XML, `crap-report.json`, Stryker report.
53
+
54
+ ## 2. Collection failure trap (known on this machine, must-read)
55
+
56
+ **coverlet silently produces 0% coverage under the default TEMP on this machine.**
57
+
58
+ - Symptom: tests all green, code genuinely calls production services, but cobertura has `lines-covered=0` — every class every line hits is 0.
59
+ - Root cause: coverlet writes instrumented modules to `%TEMP%\<module name>_<guid>` before loading; the file is lost under default TEMP, testhost exits with an **unhandled** `FileNotFoundException` (process -532462766), hit data never reaches the report.
60
+ - Criterion: tests clearly `new XxxService(...)` call production code, yet cobertura is all 0.
61
+ - Fix: `qg coverage` already redirects `TEMP`/`TMP` to `.agents/tmp/quality-gates/tmp`; after redirection measured `lines-covered=23701/37805` (line-rate 0.6269).
62
+ - **Script guard**: when `lines-valid>0 && lines-covered==0`, `coverage` **errors and exits 2**, producing no "zero coverage" conclusion; `crap` also refuses to run on such a file.
63
+
64
+ > Two other dead ends on the same machine: `--collect:"Code Coverage"` (Microsoft.CodeCoverage) only produces a 0KB empty file; `/p:CollectCoverage=true` requires the `coverlet.msbuild` package (this repo only has `coverlet.collector`). **Do not spend more time on these two.**
65
+
66
+ ## 3. Report interpretation: first distinguish "collection broken" vs "code untested"
67
+
68
+ Order cannot be reversed — first confirm collection is good, then discuss coverage.
69
+
70
+ 1. **Is collection trustworthy**: look at `qg coverage` output's `lines-covered`. 0 → collection failure (§2), fix collection first, **never treat 0% as a conclusion**.
71
+ 2. **CRAP table reading**: sort by CRAP worst to best; the top "both complex and uncovered" are the priority; **do not only look at CRAP absolute value** — a method with CC=2 but 100% coverage has CRAP=2, not a problem.
72
+ 3. **Mutation score reading**: a low score has two causes with completely different handling —
73
+ - (a) **tests ineffective**: few NoCoverage, low kill ratio → assertions too loose, tests pass but do not verify logic;
74
+ - **this repo empirically is (b)**: many NoCoverage (607/23274 mutants on code paths nobody tests) → **that path lacks tests**, not insufficiently strict assertions. Distinguish before acting.
75
+ 4. **Duplication detection reading**: PMD's `--minimum-tokens` is the similarity knob (default 100 ≈ dryer's 0.8 similarity tier); multiple hits within the same file prioritize structural duplication like "three places share the same helper" (`PurchaseOrderService.cs` 2026-10-31 baseline snapshot 451/775 lines, 62 lines/397 tokens; line numbers are baseline values, not current).
76
+
77
+ ## 4. Test-backfill priority
78
+
79
+ **Criterion = zero coverage ∧ high CRAP**, not CRAP absolute value. The script already sorts by this (`qg crap` output's "zero coverage and over threshold" list).
80
+
81
+ This repo 2026-10-31 baseline: 1622 total methods, **1264 zero coverage (78%)**, 323 over threshold, of which 319 are also zero coverage. Top:
82
+
83
+ | Method | CC | CRAP |
84
+ |---|---|---|
85
+ | `PMLService.FinishMatchAsync` | 74 | 5550 |
86
+ | `MaterialCodeImportService.PreviewAsync` | 58 | 3422 |
87
+ | `OutboundOrderService.MatchAndLockCoreAsync` | 53 | 2862 |
88
+ | `MaterialCodeService.CreateAsync` | 51 | 2652 |
89
+ | `MaterialCodeImportService.ValidateImportRowsAsync` | 49 | 2450 |
90
+
91
+ **Why 78% zero coverage**: services covered only by integration tests are blind spots at the regular tier — `tests/Shipyard.Material.IntegrationTests/` needs a DB; CI mid tier `backend-test` uses `--unit-only` (no test DB), full tier escapes via the shared dev DB because CI does not define `TEST_DB_CONN`. `ExchangeRateImportService` is typical: its only test is in the integration test project; replacing all Excel header strings with `""` in mutation testing still stays all green.
92
+
93
+ Backfill directions are therefore two: **push DB-free pure logic down to unit tests** (Excel header/template generation, validation criteria), or **configure `TEST_DB_CONN` for CI** to run the real integration tier.
94
+
95
+ ## 5. Output format
96
+
97
+ After the inventory, conclude in four sections:
98
+
99
+ - **Current state**: numbers for each of the three gates (coverage line-rate / CRAP over-threshold count and share / duplicate block count / mutation score), noting whether collection is trustworthy.
100
+ - **Risk**: top N methods sorted by "zero coverage ∧ high CRAP", with `file` location.
101
+ - **Cause**: distinguish "tests ineffective" from "code untested"; if the latter, point out the blind-spot source (integration test tier / DB dependency / pure logic not pushed down).
102
+ - **Next steps**: specific to "which method gets which test"; do not stop at "recommend raising coverage".
103
+
104
+ ## 6. This repo's placement and boundaries
105
+
106
+ - Gate single source: `.agents/hooks/commit-check.config.json` (build section = `dotnet build Shipyard.Material.sln`; **checks section is currently empty**, local commit gate does not run tests). This skill **does not change** this file.
107
+ - Interface with ub-mode: First Make it Work → add tests (give TDD a landing point); Then Make it Right → three gates; Practice → Keep a Log (this skill's conclusions are material for the decision log).
108
+ - Interface with `review-method`: when reviewing a diff, "impact-surface proof" can use this skill's dup/crap as machine evidence.
109
+ - Boundaries: run only the **unit test project** (integration tests need a DB, this machine without DB will hang); Stryker **must be targeted** (full 20k+ mutants unacceptable); write no repository files (except this skill's own directory); do not commit code.
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: dev-tour
3
+ description: Turn spec/plan steps and changed files into an interactive development tour (overview/timeline/data flow/flow diagrams + file tree + change notes on the right). Used for the AI-Native development gap where "the document explains it but you cannot see which files change".
4
+ ---
5
+
6
+ # Development tour (Dev Tour)
7
+
8
+ ## Goal
9
+ Turn "steps × changed files" in workflow documents into a clickable map: left file tree (added/modified/planned badges), center overview/timeline/data-flow/flow diagrams, right per-step change notes and diff. Solves the gap "spec/plan reads fine but you do not know which file the AI is changing".
10
+
11
+ ## Trigger conditions
12
+ - After drafting/confirming a plan (`## 任务拆解` or `## 步骤` + `## 改动方案` persisted) → run `auto-tour.mjs` to auto-start the dashboard and produce a live link.
13
+ - Refresh once after each batch / task completed in Build stage.
14
+ - Before close-out, do scope reconciliation: "actual changes outside the document" appearing in the map must first be explained or backfilled into the plan.
15
+ - User says "can't see which files are changed" "show me the timeline/flow/overview".
16
+
17
+ ## Data contract (write documents this way)
18
+ The generator does not create a separate ledger; it reads documents + git directly:
19
+
20
+ 1. **Steps** (priority high to low)
21
+ - `## 步骤`: `1. **T1 title**: one-sentence description`
22
+ - `## 任务拆解`: `- [ ] 1. title` + indented `- 文件:path` / `- 判据:…` / `- 留痕:…`; or `### T1 · title` subheadings (body detail lines close with the step). **Each implementation step has at least one file; pure verification steps state `验证步骤` in the title**
23
+ - `### 批次 0a:…` headings under `## 改动面` / `## 改动方案`
24
+ - If none: group by the architecture layer the file belongs to (**layer fallback = parse failure signal**; generator prints a "parse hits" line and the page top shows a warning bar; normalize headings then regenerate; `--strict` rejects production with exit 1)
25
+ 2. **Per-step files**
26
+ - In `## 改动方案` align with step numbers using `- **T1**:` or `### T1`, write backticked paths inside the block.
27
+ - L1 single-file plans may write `- \`backend/.../Foo.cs\`:what to do` directly in `## 改动方案`; each top-level file entry automatically becomes one station.
28
+ - Write full paths when possible; only writing `detail.vue` / `MaterialCodePushService.cs` also resolves by same-named repo file and step context, but full paths are most reliable. With multiple same-name candidates the generator scores by step context and guesses one: that file entry carries a `pathGuess` flag (page shows a "guess?" uncertainty badge), hit line counts "path guesses Z"; a unique basename hit is deterministic and not counted as a guess.
29
+ - Non-backticked mid-path tokens with code extensions and resolvable paths are also collected: bare tokens like `pml/index.vue` in step titles/body/table rows (containing `/` + a known code extension + resolvable to a real repo file) enter the model and are assigned to their step; mixed tokens (`if/else` etc.) are always rejected. When unbound files are assigned by body fallback (basename or layer-word arm) they all get `pathGuess`; the layer-word arm binds only when exactly one step body contains that layer word; ambiguous ones stay unbound and visible as "unassigned".
30
+ - Table row paths are also collected: `| \`path\` | description |` rows in `## 改动方案` are assigned to the current block/batch anchor (including tables inside `### 批次` subsections); without an anchor they go to "change surface (unassigned)". Task row labels support union-style `1. S1+S2:title` (block anchor matched by member intersection; parenthetical `(**S3**)` also anchors); resolution never fabricates — directory back-inference/anchor splicing must land on real repo files; unresolved paths remain as visibly unresolved.
31
+ 3. **Test files**: write in `## 验证计划` or the corresponding step; test steps close automatically.
32
+ 4. **Dependencies** (optional, side-arc data source for the flow diagram)
33
+ - Clause lines in `## 执行顺序` like `依赖:3 依赖 1;4/5 依赖 2 与 3;8 依赖 4~7;10 依赖全部` (arrow chain lines `1 → 2 → 3` are expressed by the main chain itself and do not produce duplicate edges).
34
+ - Or in task lines `- 依赖:T1、T2`.
35
+ - Numbers normalized by step sequence / `Tn` / label id; unresolvable references counted into `deps.unresolved` and warned.
36
+ 5. **Actual changes**: `git diff --base` automatically fills status, line counts, and diff; files not registered in the document go to "actual changes outside the document" and are not silently dropped.
37
+
38
+ ## Generation / refresh
39
+ ```bash
40
+ # static snapshot (default .agents/cache/tours/<type>-<name>.html)
41
+ node .agents/scripts/gen-dev-tour.mjs workflow/plans/<name>.md
42
+
43
+ # compare the entire committed task (default HEAD = current uncommitted working tree)
44
+ node .agents/scripts/gen-dev-tour.mjs workflow/plans/<name>.md --base origin/main
45
+
46
+ # model only (debug parsing)
47
+ node .agents/scripts/gen-dev-tour.mjs workflow/plans/<name>.md --json
48
+
49
+ # gate mode: reject production on layer fallback/no steps/implementation step without files (exit 1; pure verification steps exempt by title)
50
+ node .agents/scripts/gen-dev-tour.mjs workflow/plans/<name>.md --strict
51
+ ```
52
+
53
+ Each generation prints a "parse hits: direct X/Y steps … · path guesses Z" line — if the direct-hit rate <100%, first check whether headings broke the contract, then decide whether to accept fallback grouping; after the hit line it prints "⚠ line N: <title>: <reason>" line by line, locating contract breaches to lines (step has no aligned file block / file block anchor aligns with no step / dependency reference unresolved / layer fallback triggered, corresponding to `parseHealth.issues` `{line,title,kind}` in the model; `pathGuess` and issues are advisory and never participate in `--strict` production rejection). The page-top warning bar consumes the same issues: merged by `kind` into "file block unaligned / step missing files / dependency unresolved" classes, expanded line by line within groups; entries in `step-no-files` whose title contains "验证步骤/单测/UI 实测/静态门" are listed separately as "verification steps" and not counted as to-fix.
54
+
55
+ Live version (recommended to keep open during Build):
56
+ ```bash
57
+ # auto-start dashboard + print this plan's live link (idempotent reuse, no browser popup; failure only warns, does not block)
58
+ node .agents/scripts/auto-tour.mjs workflow/plans/<name>.md
59
+ # → http://127.0.0.1:8933/tour?file=workflow/plans/<name>.md
60
+
61
+ # start dashboard only, no document specified
62
+ node .agents/scripts/ensure-board.mjs
63
+ ```
64
+ The live page pulls `/api/tour` every 5s; document save / working-tree changes redraw automatically, preserving the currently selected step and view.
65
+
66
+ ## Views
67
+ - **Overview**: default grid (one large card per station, read by number); top-right "Layout" switches to a horizontal timeline; "Focus overview" hides left/right columns, 6 stations usually fit in two rows.
68
+ - **Timeline**: arrows connect per-step files by architecture layer (frontend → API → application → domain → infrastructure → DB); test steps add dashed verification arrows.
69
+ - **Data flow**: statically identify cross-file data objects (Dto/entity/table) from diff added lines and document body, show layers and files the object flows through by architecture-layer swimlanes, and list "definition step → usage step" transfer edges; clicking an object links steps/files (data from model dataflow, schema 2; view hidden when no recognized result).
70
+ - **Flow**: plan → steps → verification gate → close-out; verification gate reads `## 验证计划`. When model `deps.edges` is non-empty, the main chain's left thin rail draws side arcs for declared dependencies (transitively reduced; adjacent main-chain edges not drawn twice; pointing to a prior row = anomalous reverse dashed line); hovering a step highlights its upstream/downstream arcs and counterpart steps.
71
+ - **Requirements**: follow "corresponding entry/spec:…" links to read upstream documents (one level, no recursion, at most 3 documents), render this document's goal + upstream intent/spec/incident goals and behavior/acceptance points (model `doc.upstream`); view hidden when no upstream docs, requirement narrative then only this document's purpose.
72
+ - **Verification**: left plan checklist (`## 验证计划`), right actual evidence — local `.agents/verifications.jsonl` preferred, repo `workflow/verify-evidence.md` fallback merged (dedup by ts+head), take the latest 10 within the document date time window (model `evidence`). The association semantics is "verification evidence within the task time window", not per-item binding; the flow verification gate also shows the latest evidence within the window; view hidden when none.
73
+ - **Interlink**: clicking a station/file/step card/timeline message syncs the left tree and right notes; `←/→` switch steps, `Esc` clears; "Follow the flow" auto-plays.
74
+
75
+ ## Applicable scale (verified 2026-11-11)
76
+ Reproduction: `node .agents/tests/tools/gen-synthetic-plan.mjs --bench` (synthetic plan lands in `.agents/cache/tour-perf/`; build timing uses `buildTour({git})` injecting 300 modified files, max of 3 rounds; HTML generated by `gen-dev-tour.mjs --no-diff`, git side is the real working tree at that moment, size dominated by the document side).
77
+
78
+ | Tier | buildTour (300 diff files injected) | Static HTML size |
79
+ | --- | --- | --- |
80
+ | 10 steps | 317–332 ms | ~100 KB |
81
+ | 30 steps | 348–350 ms | ~131 KB |
82
+ | 60 steps | 474–483 ms | ~178 KB |
83
+
84
+ Boundary statement: verification covers ≤60 steps / 300 diff files, and within this range build time has no knee (far below 5s); beyond this range unverified, do not conclude by linear extrapolation. Browser-side verification (Chrome, file:// static page, 60-step tier): 1868 DOM nodes per page, 289ms load, six-view switching 14–22ms each — no virtualization needed at this magnitude.
85
+
86
+ ## Boundaries
87
+ - The document is the plan side, git is the actual side; on conflict the map shows split columns (plan / outside document).
88
+ - Does not replace the plan's acceptance criteria and `check-scope.mjs`; it only visualizes the same facts, adding no new source of truth.
89
+ - Generated artifacts default to `.agents/cache/tours/`, not committed; to archive use `--out wiki/...` or screenshots, do not stuff HTML into workflow/.
90
+ - View usage data (`/api/tour/usage`) lands only locally in `.agents/cache/tour-usage.jsonl`, not committed or sent out; after one iteration trim the least-used views by usage rate (data-flow view is the primary observation target), do not build a query aggregation page, use node directly for stats.
91
+ - Engine surface (`.agents/`) changes still go through `check-scripts-syntax` and other gates; this skill waives no gate.
92
+
93
+ ## Acceptance
94
+ - [ ] Document has ≥1 step; each step has at least one file, or is explicitly `验证步骤`.
95
+ - [ ] "Parse hits" has no layer fallback (no page warning bar); fallback = heading contract breach, fix the document first.
96
+ - [ ] "Actual changes outside the document" in the map is empty, or explained/backfilled.
97
+ - [ ] The four views switch without blanks; clicking a file locates the step and diff.
98
+ - [ ] The live page shows "live" next to the title, falls back to "polling" when disconnected.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: dream
3
+ description: "Offline Dreaming — periodic memory maintenance modeled on Anthropic's memory architecture: run the dream-run audit, read the report, delegate independent-reviewer to check AI Judge samples, write back papercuts/correction notes, and dispose of cold-data candidates; for use by the main agent when executing the Dreaming continuous-run loop within a session."
4
+ ---
5
+
6
+ # dream — Offline Dreaming continuous-run loop
7
+
8
+ ## Triggers
9
+
10
+ - A `[dream]` advisory appears post-commit (≥7 days since the last audit, or no report).
11
+ - A session-resume rebuild finds `tmp/dream-report-*.md` or `tmp/dream-judge-brief-*.md`.
12
+ - The user explicitly asks to "run the dream audit / Dreaming".
13
+
14
+ ## 1. Run the audit
15
+
16
+ ```bash
17
+ node .agents/scripts/dream-run.mjs # dry-run: read-only audit + AI sampling brief (default)
18
+ node .agents/scripts/dream-run.mjs --execute # execute safe fixes (terminal-state artifact archiving + index regeneration only)
19
+ ```
20
+
21
+ - The report lands in `tmp/dream-report-<date>.md` (gitignored); the AI Judge brief lands in `tmp/dream-judge-brief-<date>.md`.
22
+ - `--execute` only performs "terminal-state artifact archiving + index regeneration" and rewrites no document content.
23
+ - Does not auto commit / push (root AGENTS.md prohibition).
24
+
25
+ ## 2. Read the report
26
+
27
+ Read the latest `tmp/dream-report-*.md`, focusing on:
28
+
29
+ - A terminal-state artifact archiving (archive-sweep, 21-day window);
30
+ - B index drift and three-way wiki consistency;
31
+ - C full reconciliation (check-loop, hard 6 segments);
32
+ - D error-class candidates (agg-judgments --retire-candidates);
33
+ - E resident-surface budget (rule-budget --all);
34
+ - E2 cold-data candidates (agg-kb-usage --stale-days 90)—access/hit telemetry + confidence decay, see §5;
35
+ - F AI Judge sampling audit brief.
36
+
37
+ ## 3. Verify AI Judge samples
38
+
39
+ 1. Read `tmp/dream-judge-brief-*.md`;
40
+ 2. Copy the "Judge delegation template" at the end of the brief to the independent-reviewer role for verification;
41
+ 3. Handle the verification conclusion as BLOCK / WARN / OK:
42
+ - **BLOCK**: correct the workflow document claims against the original evidence (do not auto-commit after the fix);
43
+ - **WARN**: record a papercut or add evidence;
44
+ - **OK**: no action.
45
+
46
+ ## 4. Write back
47
+
48
+ - Error-class candidates: handle via the recurring-error loop in `.agents/skills/papercut-fix/SKILL.md` (≥3 occurrences → establish a rule; placement ladder: type→gate→test→smoke→prompt).
49
+ - Verification findings: correction notes / record in `workflow/papercuts.md`.
50
+
51
+ ## 5. Dispose of cold-data candidates
52
+
53
+ - Cold-data candidates come from `agg-kb-usage.mjs` (telemetry basis: neither hit by kb-search nor content-updated in the last 90 days).
54
+ - Disposal ladder (adjudicated by the main agent/user):
55
+ 1. Archive: `node .agents/scripts/archive-sweep.mjs --execute` (terminal-state artifacts, 21-day window);
56
+ 2. Update: update the knowledge via the wiki skill;
57
+ 3. Delete: **requires an explicit user instruction** (root AGENTS.md irreversible-operation red line).
58
+
59
+ ## Red lines
60
+
61
+ - `--execute` only archives + regenerates indexes; it does not rewrite document body text.
62
+ - No auto commit / push; deleting wiki files requires an explicit user instruction.
63
+ - This skill is the execution loop: the AI performs judgment, and deterministic scripts only sample and collect evidence ("deterministic scripts own facts, the model owns judgment").
@@ -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
+ ```