agentic-flow-kit 1.8.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (984) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +172 -138
  3. package/bin/flow-kit.mjs +7 -2
  4. package/locales/en/installer.json +110 -0
  5. package/locales/en/overrides/.agents/commands/deploy.md +52 -0
  6. package/locales/en/overrides/.agents/commands/maintain.md +76 -0
  7. package/locales/en/overrides/.agents/commands/new-task.md +89 -0
  8. package/locales/en/overrides/.agents/commands/pipeline-run.md +56 -0
  9. package/locales/en/overrides/.agents/commands/pr-review.md +30 -0
  10. package/locales/en/overrides/.agents/commands/review.md +93 -0
  11. package/locales/en/overrides/.agents/commands/stages.md +256 -0
  12. package/locales/en/overrides/.agents/notes/pr-review-cost-discipline.md +48 -0
  13. package/locales/en/overrides/.agents/notes/process-order-rule.md +21 -0
  14. package/locales/en/overrides/.agents/notes/runtime-env.local.example.md +21 -0
  15. package/locales/en/overrides/.agents/pipelines/_TEMPLATE.md +75 -0
  16. package/locales/en/overrides/.agents/pipelines/pipeline-closing.md +28 -0
  17. package/locales/en/overrides/.agents/roles/implementer.md +28 -0
  18. package/locales/en/overrides/.agents/roles/independent-reviewer.md +39 -0
  19. package/locales/en/overrides/.agents/roles/pr-adjudicator.md +27 -0
  20. package/locales/en/overrides/.agents/roles/pr-finder.md +51 -0
  21. package/locales/en/overrides/.agents/roles/pr-verifier.md +44 -0
  22. package/locales/en/overrides/.agents/roles/ui-verifier.md +22 -0
  23. package/locales/en/overrides/.agents/roles/wiki-compiler.md +47 -0
  24. package/locales/en/overrides/.agents/skills/arena/SKILL.md +50 -0
  25. package/locales/en/overrides/.agents/skills/autonomous-run/SKILL.md +45 -0
  26. package/locales/en/overrides/.agents/skills/blast-radius/SKILL.md +53 -0
  27. package/locales/en/overrides/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  28. package/locales/en/overrides/.agents/skills/dev-tour/SKILL.md +98 -0
  29. package/locales/en/overrides/.agents/skills/dream/SKILL.md +63 -0
  30. package/locales/en/overrides/.agents/skills/eval/SKILL.md +42 -0
  31. package/locales/en/overrides/.agents/skills/interrogate/SKILL.md +49 -0
  32. package/locales/en/overrides/.agents/skills/number-vetting/SKILL.md +35 -0
  33. package/locales/en/overrides/.agents/skills/page-refactor/SKILL.md +192 -0
  34. package/locales/en/overrides/.agents/skills/papercut-fix/SKILL.md +92 -0
  35. package/locales/en/overrides/.agents/skills/pause-safely/SKILL.md +31 -0
  36. package/locales/en/overrides/.agents/skills/perf/SKILL.md +42 -0
  37. package/locales/en/overrides/.agents/skills/review-method/SKILL.md +92 -0
  38. package/locales/en/overrides/.agents/skills/session-resume/SKILL.md +69 -0
  39. package/locales/en/overrides/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  40. package/locales/en/overrides/.agents/skills/show-me-your-work/SKILL.md +57 -0
  41. package/locales/en/overrides/.agents/skills/tfs-pr/SKILL.md +95 -0
  42. package/locales/en/overrides/.agents/skills/verify-ui/SKILL.md +116 -0
  43. package/locales/en/overrides/.agents/skills/visual-parity/SKILL.md +35 -0
  44. package/locales/en/overrides/.agents/skills/why/SKILL.md +56 -0
  45. package/locales/en/overrides/.agents/skills/wiki/SKILL.md +53 -0
  46. package/locales/en/overrides/.claude/agents/implementer.md +9 -0
  47. package/locales/en/overrides/.claude/agents/independent-reviewer.md +10 -0
  48. package/locales/en/overrides/.claude/agents/pr-adjudicator.md +10 -0
  49. package/locales/en/overrides/.claude/agents/pr-finder.md +10 -0
  50. package/locales/en/overrides/.claude/agents/pr-verifier.md +10 -0
  51. package/locales/en/overrides/.claude/agents/ui-verifier.md +10 -0
  52. package/locales/en/overrides/.claude/agents/wiki-compiler.md +10 -0
  53. package/locales/en/overrides/.claude/commands/wf-deploy.md +8 -0
  54. package/locales/en/overrides/.claude/commands/wf-maintain.md +8 -0
  55. package/locales/en/overrides/.claude/commands/wf-new-task.md +8 -0
  56. package/locales/en/overrides/.claude/commands/wf-pipeline-run.md +8 -0
  57. package/locales/en/overrides/.claude/commands/wf-pr-review.md +8 -0
  58. package/locales/en/overrides/.claude/commands/wf-review.md +8 -0
  59. package/locales/en/overrides/.claude/commands/wf-stages.md +8 -0
  60. package/locales/en/overrides/.cline/agents/implementer.yml +13 -0
  61. package/locales/en/overrides/.cline/agents/independent-reviewer.yml +11 -0
  62. package/locales/en/overrides/.cline/agents/pr-adjudicator.yml +11 -0
  63. package/locales/en/overrides/.cline/agents/pr-finder.yml +11 -0
  64. package/locales/en/overrides/.cline/agents/pr-verifier.yml +11 -0
  65. package/locales/en/overrides/.cline/agents/ui-verifier.yml +8 -0
  66. package/locales/en/overrides/.cline/agents/wiki-compiler.yml +14 -0
  67. package/locales/en/overrides/.cline/workflows/wf-deploy.md +8 -0
  68. package/locales/en/overrides/.cline/workflows/wf-maintain.md +8 -0
  69. package/locales/en/overrides/.cline/workflows/wf-new-task.md +8 -0
  70. package/locales/en/overrides/.cline/workflows/wf-pipeline-run.md +8 -0
  71. package/locales/en/overrides/.cline/workflows/wf-pr-review.md +8 -0
  72. package/locales/en/overrides/.cline/workflows/wf-review.md +8 -0
  73. package/locales/en/overrides/.cline/workflows/wf-stages.md +8 -0
  74. package/locales/en/overrides/.codebuddy/CODEBUDDY.md +7 -0
  75. package/locales/en/overrides/.codebuddy/agents/implementer.md +9 -0
  76. package/locales/en/overrides/.codebuddy/agents/independent-reviewer.md +10 -0
  77. package/locales/en/overrides/.codebuddy/agents/pr-adjudicator.md +10 -0
  78. package/locales/en/overrides/.codebuddy/agents/pr-finder.md +10 -0
  79. package/locales/en/overrides/.codebuddy/agents/pr-verifier.md +10 -0
  80. package/locales/en/overrides/.codebuddy/agents/ui-verifier.md +11 -0
  81. package/locales/en/overrides/.codebuddy/agents/wiki-compiler.md +10 -0
  82. package/locales/en/overrides/.codebuddy/commands/wf-deploy.md +8 -0
  83. package/locales/en/overrides/.codebuddy/commands/wf-maintain.md +8 -0
  84. package/locales/en/overrides/.codebuddy/commands/wf-new-task.md +8 -0
  85. package/locales/en/overrides/.codebuddy/commands/wf-pipeline-run.md +8 -0
  86. package/locales/en/overrides/.codebuddy/commands/wf-pr-review.md +8 -0
  87. package/locales/en/overrides/.codebuddy/commands/wf-review.md +8 -0
  88. package/locales/en/overrides/.codebuddy/commands/wf-stages.md +8 -0
  89. package/locales/en/overrides/.codebuddy/rules/backend-scope.md +5 -0
  90. package/locales/en/overrides/.codebuddy/rules/frontend-scope.md +5 -0
  91. package/locales/en/overrides/.codebuddy/skills/tfs-pr/SKILL.md +6 -0
  92. package/locales/en/overrides/.commandcode/agents/implementer.md +10 -0
  93. package/locales/en/overrides/.commandcode/agents/independent-reviewer.md +9 -0
  94. package/locales/en/overrides/.commandcode/agents/pr-adjudicator.md +9 -0
  95. package/locales/en/overrides/.commandcode/agents/pr-finder.md +9 -0
  96. package/locales/en/overrides/.commandcode/agents/pr-verifier.md +9 -0
  97. package/locales/en/overrides/.commandcode/agents/ui-verifier.md +10 -0
  98. package/locales/en/overrides/.commandcode/agents/wiki-compiler.md +10 -0
  99. package/locales/en/overrides/.commandcode/commands/wf-deploy.md +7 -0
  100. package/locales/en/overrides/.commandcode/commands/wf-maintain.md +7 -0
  101. package/locales/en/overrides/.commandcode/commands/wf-new-task.md +7 -0
  102. package/locales/en/overrides/.commandcode/commands/wf-pipeline-run.md +7 -0
  103. package/locales/en/overrides/.commandcode/commands/wf-pr-review.md +7 -0
  104. package/locales/en/overrides/.commandcode/commands/wf-review.md +7 -0
  105. package/locales/en/overrides/.commandcode/commands/wf-stages.md +7 -0
  106. package/locales/en/overrides/.opencode/agents/implementer.md +51 -0
  107. package/locales/en/overrides/.opencode/agents/independent-reviewer.md +18 -0
  108. package/locales/en/overrides/.opencode/agents/pr-adjudicator.md +18 -0
  109. package/locales/en/overrides/.opencode/agents/pr-finder.md +18 -0
  110. package/locales/en/overrides/.opencode/agents/pr-verifier.md +18 -0
  111. package/locales/en/overrides/.opencode/agents/ui-verifier.md +45 -0
  112. package/locales/en/overrides/.opencode/agents/wiki-compiler.md +51 -0
  113. package/locales/en/overrides/.opencode/commands/wf-deploy.md +7 -0
  114. package/locales/en/overrides/.opencode/commands/wf-maintain.md +7 -0
  115. package/locales/en/overrides/.opencode/commands/wf-new-task.md +7 -0
  116. package/locales/en/overrides/.opencode/commands/wf-pipeline-run.md +7 -0
  117. package/locales/en/overrides/.opencode/commands/wf-pr-review.md +7 -0
  118. package/locales/en/overrides/.opencode/commands/wf-review.md +7 -0
  119. package/locales/en/overrides/.opencode/commands/wf-stages.md +7 -0
  120. package/locales/en/overrides/.pi/agents/implementer.md +11 -0
  121. package/locales/en/overrides/.pi/agents/independent-reviewer.md +12 -0
  122. package/locales/en/overrides/.pi/agents/pr-adjudicator.md +12 -0
  123. package/locales/en/overrides/.pi/agents/pr-finder.md +11 -0
  124. package/locales/en/overrides/.pi/agents/pr-verifier.md +11 -0
  125. package/locales/en/overrides/.pi/agents/ui-verifier.md +11 -0
  126. package/locales/en/overrides/.pi/agents/wiki-compiler.md +11 -0
  127. package/locales/en/overrides/.qoder/agents/implementer.md +9 -0
  128. package/locales/en/overrides/.qoder/agents/independent-reviewer.md +10 -0
  129. package/locales/en/overrides/.qoder/agents/pr-adjudicator.md +10 -0
  130. package/locales/en/overrides/.qoder/agents/pr-finder.md +10 -0
  131. package/locales/en/overrides/.qoder/agents/pr-verifier.md +10 -0
  132. package/locales/en/overrides/.qoder/agents/ui-verifier.md +10 -0
  133. package/locales/en/overrides/.qoder/agents/wiki-compiler.md +10 -0
  134. package/locales/en/overrides/.qoder/commands/wf-deploy.md +8 -0
  135. package/locales/en/overrides/.qoder/commands/wf-maintain.md +8 -0
  136. package/locales/en/overrides/.qoder/commands/wf-new-task.md +8 -0
  137. package/locales/en/overrides/.qoder/commands/wf-pipeline-run.md +8 -0
  138. package/locales/en/overrides/.qoder/commands/wf-pr-review.md +8 -0
  139. package/locales/en/overrides/.qoder/commands/wf-review.md +8 -0
  140. package/locales/en/overrides/.qoder/commands/wf-stages.md +8 -0
  141. package/locales/en/overrides/.qwen/agents/implementer.md +10 -0
  142. package/locales/en/overrides/.qwen/agents/independent-reviewer.md +10 -0
  143. package/locales/en/overrides/.qwen/agents/pr-adjudicator.md +10 -0
  144. package/locales/en/overrides/.qwen/agents/pr-finder.md +10 -0
  145. package/locales/en/overrides/.qwen/agents/pr-verifier.md +10 -0
  146. package/locales/en/overrides/.qwen/agents/ui-verifier.md +10 -0
  147. package/locales/en/overrides/.qwen/agents/wiki-compiler.md +13 -0
  148. package/locales/en/overrides/.qwen/commands/wf-deploy.md +7 -0
  149. package/locales/en/overrides/.qwen/commands/wf-maintain.md +7 -0
  150. package/locales/en/overrides/.qwen/commands/wf-new-task.md +7 -0
  151. package/locales/en/overrides/.qwen/commands/wf-pipeline-run.md +7 -0
  152. package/locales/en/overrides/.qwen/commands/wf-pr-review.md +7 -0
  153. package/locales/en/overrides/.qwen/commands/wf-review.md +7 -0
  154. package/locales/en/overrides/.qwen/commands/wf-stages.md +7 -0
  155. package/locales/en/overrides/.trae/agents/implementer.md +9 -0
  156. package/locales/en/overrides/.trae/agents/independent-reviewer.md +10 -0
  157. package/locales/en/overrides/.trae/agents/pr-adjudicator.md +10 -0
  158. package/locales/en/overrides/.trae/agents/pr-finder.md +10 -0
  159. package/locales/en/overrides/.trae/agents/pr-verifier.md +10 -0
  160. package/locales/en/overrides/.trae/agents/ui-verifier.md +10 -0
  161. package/locales/en/overrides/.trae/agents/wiki-compiler.md +10 -0
  162. package/locales/en/overrides/.trae/commands/wf-deploy.md +8 -0
  163. package/locales/en/overrides/.trae/commands/wf-maintain.md +8 -0
  164. package/locales/en/overrides/.trae/commands/wf-new-task.md +8 -0
  165. package/locales/en/overrides/.trae/commands/wf-pipeline-run.md +8 -0
  166. package/locales/en/overrides/.trae/commands/wf-pr-review.md +8 -0
  167. package/locales/en/overrides/.trae/commands/wf-review.md +8 -0
  168. package/locales/en/overrides/.trae/commands/wf-stages.md +8 -0
  169. package/locales/en/overrides/.trae/rules/backend-scope.md +5 -0
  170. package/locales/en/overrides/.trae/rules/frontend-scope.md +5 -0
  171. package/locales/en/overrides/.zcode/agents/implementer.md +8 -0
  172. package/locales/en/overrides/.zcode/agents/independent-reviewer.md +8 -0
  173. package/locales/en/overrides/.zcode/agents/ui-verifier.md +8 -0
  174. package/locales/en/overrides/.zcode/agents/wiki-compiler.md +8 -0
  175. package/locales/en/overrides/AGENTS.md +52 -0
  176. package/locales/en/overrides/CLAUDE.md +20 -0
  177. package/locales/en/overrides/wiki/INDEX.md +33 -0
  178. package/locales/en/overrides/wiki/drafts-archive/README.md +6 -0
  179. package/locales/en/overrides/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  180. package/locales/en/overrides/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  181. package/locales/en/overrides/workflow/INDEX.md +13 -0
  182. package/locales/en/overrides/workflow/README.md +69 -0
  183. package/locales/en/overrides/workflow/archive/README.md +3 -0
  184. package/locales/en/overrides/workflow/delegations.md +4 -0
  185. package/locales/en/overrides/workflow/effective-policy.md +4 -0
  186. package/locales/en/overrides/workflow/gate-cost.md +4 -0
  187. package/locales/en/overrides/workflow/incidents/_TEMPLATE.md +49 -0
  188. package/locales/en/overrides/workflow/intents/_TEMPLATE.md +43 -0
  189. package/locales/en/overrides/workflow/metrics.md +4 -0
  190. package/locales/en/overrides/workflow/papercuts.md +3 -0
  191. package/locales/en/overrides/workflow/plans/_TEMPLATE.md +47 -0
  192. package/locales/en/overrides/workflow/regression-checklist.md +3 -0
  193. package/locales/en/overrides/workflow/specs/_TEMPLATE.md +86 -0
  194. package/locales/en/overrides/workflow/verify-evidence.md +4 -0
  195. package/locales/zh-CN/installer.json +110 -0
  196. package/package.json +23 -36
  197. package/schemas/install-manifest.schema.json +26 -0
  198. package/schemas/project-profile.schema.json +28 -0
  199. package/src/cli/args.mjs +43 -0
  200. package/src/cli/main.mjs +79 -0
  201. package/src/commands/add-host.mjs +29 -0
  202. package/src/commands/doctor.mjs +126 -0
  203. package/src/commands/install.mjs +296 -0
  204. package/src/commands/upgrade.mjs +30 -0
  205. package/src/git/config.mjs +61 -0
  206. package/src/hosts/registry.mjs +170 -0
  207. package/src/i18n.mjs +35 -0
  208. package/src/install/apply.mjs +138 -0
  209. package/src/install/frontmatter.mjs +84 -0
  210. package/src/install/manifest.mjs +40 -0
  211. package/src/install/plan.mjs +241 -0
  212. package/src/models/known.mjs +13 -0
  213. package/src/models/probe.mjs +163 -0
  214. package/src/models/resolve.mjs +312 -0
  215. package/src/render/tokens.mjs +105 -0
  216. package/src/tui/ansi.mjs +55 -0
  217. package/src/tui/flows.mjs +306 -0
  218. package/src/tui/prompts.mjs +139 -0
  219. package/src/tui/screen.mjs +217 -0
  220. package/src/tui/widgets.mjs +111 -0
  221. package/src/tui/wizard.mjs +68 -0
  222. package/templates/engine/.agents/board/dev-tour.html +1940 -0
  223. package/templates/engine/.agents/board/index.html +835 -0
  224. package/templates/engine/.agents/commands/deploy.md +52 -0
  225. package/templates/engine/.agents/commands/maintain.md +76 -0
  226. package/templates/engine/.agents/commands/new-task.md +89 -0
  227. package/templates/engine/.agents/commands/pipeline-run.md +60 -0
  228. package/templates/engine/.agents/commands/pr-review.md +30 -0
  229. package/templates/engine/.agents/commands/review.md +93 -0
  230. package/templates/engine/.agents/commands/stages.md +257 -0
  231. package/templates/engine/.agents/config/agent-eval.json +17 -0
  232. package/templates/engine/.agents/config/commit-msg-rules.json +7 -0
  233. package/templates/engine/.agents/config/engine.json +11 -0
  234. package/templates/engine/.agents/config/gate-budgets.json +5 -0
  235. package/templates/engine/.agents/config/mechanism-registry.md +63 -0
  236. package/templates/engine/.agents/config/memory-tiers.json +13 -0
  237. package/templates/engine/.agents/config/model-roles.json +26 -0
  238. package/templates/engine/.agents/config/model-roles.local.example.json +7 -0
  239. package/templates/engine/.agents/config/pipeline.json +36 -0
  240. package/templates/engine/.agents/config/pr-review.json +67 -0
  241. package/templates/engine/.agents/config/principles.md +32 -0
  242. package/templates/engine/.agents/config/steering.json +28 -0
  243. package/templates/engine/.agents/config/workflow-enums.txt +25 -0
  244. package/templates/engine/.agents/evals/README.md +49 -0
  245. package/templates/engine/.agents/evals/tasks.tsv +6 -0
  246. package/templates/engine/.agents/hooks/check-architecture.mjs +168 -0
  247. package/templates/engine/.agents/hooks/check-audit-fields.mjs +56 -0
  248. package/templates/engine/.agents/hooks/check-commit-plan-ref.mjs +84 -0
  249. package/templates/engine/.agents/hooks/check-confirm-order.mjs +281 -0
  250. package/templates/engine/.agents/hooks/check-delete-guard.mjs +63 -0
  251. package/templates/engine/.agents/hooks/check-notify-guard.mjs +55 -0
  252. package/templates/engine/.agents/hooks/commit-check.cjs +208 -0
  253. package/templates/engine/.agents/hooks/gates.json +33 -0
  254. package/templates/engine/.agents/hooks/local-pre-commit.mjs +27 -0
  255. package/templates/engine/.agents/hooks/pre-shell-check.cjs +361 -0
  256. package/templates/engine/.agents/hooks/pre-write-check.cjs +247 -0
  257. package/templates/engine/.agents/notes/gate-diet.md +75 -0
  258. package/templates/engine/.agents/notes/injected-memory.md +14 -0
  259. package/templates/engine/.agents/notes/pr-review-cost-discipline.md +48 -0
  260. package/templates/engine/.agents/notes/process-order-rule.md +21 -0
  261. package/templates/engine/.agents/notes/runtime-env.local.example.md +21 -0
  262. package/templates/engine/.agents/notes/steering-tiers.md +28 -0
  263. package/templates/engine/.agents/pipelines/_TEMPLATE.md +75 -0
  264. package/templates/engine/.agents/pipelines/pipeline-closing.md +28 -0
  265. package/templates/engine/.agents/pipelines//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +16 -0
  266. package/templates/engine/.agents/roles/implementer.md +28 -0
  267. package/templates/engine/.agents/roles/independent-reviewer.md +39 -0
  268. package/templates/engine/.agents/roles/pr-adjudicator.md +27 -0
  269. package/templates/engine/.agents/roles/pr-finder.md +51 -0
  270. package/templates/engine/.agents/roles/pr-verifier.md +44 -0
  271. package/templates/engine/.agents/roles/ui-verifier.md +22 -0
  272. package/templates/engine/.agents/roles/wiki-compiler.md +47 -0
  273. package/templates/engine/.agents/scripts/agent-eval.mjs +268 -0
  274. package/templates/engine/.agents/scripts/agg-delegations.mjs +439 -0
  275. package/templates/engine/.agents/scripts/agg-judgments.mjs +301 -0
  276. package/templates/engine/.agents/scripts/agg-kb-usage.mjs +196 -0
  277. package/templates/engine/.agents/scripts/append-compensation.mjs +109 -0
  278. package/templates/engine/.agents/scripts/archive-sweep.mjs +229 -0
  279. package/templates/engine/.agents/scripts/auto-tour.mjs +77 -0
  280. package/templates/engine/.agents/scripts/board-port.mjs +17 -0
  281. package/templates/engine/.agents/scripts/check-doc-body-drift.mjs +102 -0
  282. package/templates/engine/.agents/scripts/check-engine-artifacts.mjs +54 -0
  283. package/templates/engine/.agents/scripts/check-hook-wiring.mjs +75 -0
  284. package/templates/engine/.agents/scripts/check-lane-surface.mjs +393 -0
  285. package/templates/engine/.agents/scripts/check-ledger-doc-presence.mjs +71 -0
  286. package/templates/engine/.agents/scripts/check-ledger-invariant.mjs +873 -0
  287. package/templates/engine/.agents/scripts/check-local-gate-config.mjs +95 -0
  288. package/templates/engine/.agents/scripts/check-local-gates.mjs +248 -0
  289. package/templates/engine/.agents/scripts/check-loop-kit.mjs +550 -0
  290. package/templates/engine/.agents/scripts/check-loop-rev-semantics.mjs +59 -0
  291. package/templates/engine/.agents/scripts/check-loop-sections/s01-pairing.mjs +116 -0
  292. package/templates/engine/.agents/scripts/check-loop-sections/s03x-regr-evidence.mjs +38 -0
  293. package/templates/engine/.agents/scripts/check-loop-sections/s08-acceptance.mjs +130 -0
  294. package/templates/engine/.agents/scripts/check-loop-sections/s15-fingerprint.mjs +152 -0
  295. package/templates/engine/.agents/scripts/check-loop-sections/s23-convergence-audit.mjs +182 -0
  296. package/templates/engine/.agents/scripts/check-loop-sections/s29-regr-enforcer.mjs +69 -0
  297. package/templates/engine/.agents/scripts/check-loop.mjs +131 -0
  298. package/templates/engine/.agents/scripts/check-pipeline-state.mjs +85 -0
  299. package/templates/engine/.agents/scripts/check-regression-consistency.mjs +252 -0
  300. package/templates/engine/.agents/scripts/check-schema-residue.mjs +144 -0
  301. package/templates/engine/.agents/scripts/check-scope-range.mjs +156 -0
  302. package/templates/engine/.agents/scripts/check-scope.mjs +121 -0
  303. package/templates/engine/.agents/scripts/check-scripts-syntax.mjs +138 -0
  304. package/templates/engine/.agents/scripts/check-secrets-lite.mjs +239 -0
  305. package/templates/engine/.agents/scripts/check-secrets.mjs +104 -0
  306. package/templates/engine/.agents/scripts/check-test-impact-map.mjs +107 -0
  307. package/templates/engine/.agents/scripts/ci-assert-frontend-deps.mjs +42 -0
  308. package/templates/engine/.agents/scripts/ci-commit-hygiene.mjs +86 -0
  309. package/templates/engine/.agents/scripts/ci-install-gitleaks.mjs +75 -0
  310. package/templates/engine/.agents/scripts/ci-push-before.mjs +49 -0
  311. package/templates/engine/.agents/scripts/claims.mjs +166 -0
  312. package/templates/engine/.agents/scripts/closeout.mjs +127 -0
  313. package/templates/engine/.agents/scripts/compact-ledgers.mjs +70 -0
  314. package/templates/engine/.agents/scripts/confirm-doc.mjs +737 -0
  315. package/templates/engine/.agents/scripts/delegation-presence.mjs +38 -0
  316. package/templates/engine/.agents/scripts/dev-tour-model.mjs +1398 -0
  317. package/templates/engine/.agents/scripts/dream-run.mjs +358 -0
  318. package/templates/engine/.agents/scripts/ensure-board.mjs +187 -0
  319. package/templates/engine/.agents/scripts/failure-attribution.mjs +11 -0
  320. package/templates/engine/.agents/scripts/fill-intent.mjs +60 -0
  321. package/templates/engine/.agents/scripts/fill-plan.mjs +105 -0
  322. package/templates/engine/.agents/scripts/fill-spec.mjs +72 -0
  323. package/templates/engine/.agents/scripts/fix-task.mjs +77 -0
  324. package/templates/engine/.agents/scripts/gen-dev-tour.mjs +191 -0
  325. package/templates/engine/.agents/scripts/gen-effective-policy.mjs +113 -0
  326. package/templates/engine/.agents/scripts/gen-engine-map.mjs +292 -0
  327. package/templates/engine/.agents/scripts/gen-narrative-claims.mjs +275 -0
  328. package/templates/engine/.agents/scripts/gen-verify-evidence.mjs +115 -0
  329. package/templates/engine/.agents/scripts/gen-wiki-board.mjs +221 -0
  330. package/templates/engine/.agents/scripts/gen-workflow-index.mjs +201 -0
  331. package/templates/engine/.agents/scripts/gen-workflow-metrics.mjs +692 -0
  332. package/templates/engine/.agents/scripts/git-merge-jsonl.mjs +62 -0
  333. package/templates/engine/.agents/scripts/judgment-ledger.mjs +68 -0
  334. package/templates/engine/.agents/scripts/kb-cache-evict.mjs +50 -0
  335. package/templates/engine/.agents/scripts/kb-search.mjs +423 -0
  336. package/templates/engine/.agents/scripts/lane-surface-audit.mjs +145 -0
  337. package/templates/engine/.agents/scripts/ledger-loader.mjs +77 -0
  338. package/templates/engine/.agents/scripts/ledger-shards.mjs +346 -0
  339. package/templates/engine/.agents/scripts/memory-tier.mjs +196 -0
  340. package/templates/engine/.agents/scripts/memory-wiki.mjs +296 -0
  341. package/templates/engine/.agents/scripts/metrics-core.mjs +131 -0
  342. package/templates/engine/.agents/scripts/outcome-metrics.mjs +195 -0
  343. package/templates/engine/.agents/scripts/path-lease.mjs +177 -0
  344. package/templates/engine/.agents/scripts/pipeline-run.mjs +964 -0
  345. package/templates/engine/.agents/scripts/policy.mjs +250 -0
  346. package/templates/engine/.agents/scripts/pr-create.mjs +54 -0
  347. package/templates/engine/.agents/scripts/pr-review.mjs +1551 -0
  348. package/templates/engine/.agents/scripts/quote-grounding.mjs +233 -0
  349. package/templates/engine/.agents/scripts/regen-ledgers.mjs +59 -0
  350. package/templates/engine/.agents/scripts/rewrite-file.mjs +135 -0
  351. package/templates/engine/.agents/scripts/rule-budget.mjs +246 -0
  352. package/templates/engine/.agents/scripts/session-log.mjs +157 -0
  353. package/templates/engine/.agents/scripts/stage-gates.mjs +812 -0
  354. package/templates/engine/.agents/scripts/steering.mjs +75 -0
  355. package/templates/engine/.agents/scripts/test-impact-lib.mjs +451 -0
  356. package/templates/engine/.agents/scripts/test-impact.mjs +105 -0
  357. package/templates/engine/.agents/scripts/trust-mode.mjs +130 -0
  358. package/templates/engine/.agents/scripts/verify-scope.mjs +163 -0
  359. package/templates/engine/.agents/scripts/verify-wiki-consistency.mjs +264 -0
  360. package/templates/engine/.agents/scripts/verify.mjs +858 -0
  361. package/templates/engine/.agents/scripts/warn-format.mjs +57 -0
  362. package/templates/engine/.agents/scripts/wf-journal.mjs +230 -0
  363. package/templates/engine/.agents/scripts/workflow-board-server.mjs +696 -0
  364. package/templates/engine/.agents/scripts/workflow-enums.mjs +70 -0
  365. package/templates/engine/.agents/scripts/workflows-check.mjs +260 -0
  366. package/templates/engine/.agents/settings.json +33 -0
  367. package/templates/engine/.agents/skills/arena/SKILL.md +54 -0
  368. package/templates/engine/.agents/skills/autonomous-run/SKILL.md +45 -0
  369. package/templates/engine/.agents/skills/blast-radius/SKILL.md +53 -0
  370. package/templates/engine/.agents/skills/csharp-quality-gates/SKILL.md +109 -0
  371. package/templates/engine/.agents/skills/csharp-quality-gates/scripts/quality-gates.mjs +430 -0
  372. package/templates/engine/.agents/skills/dev-tour/SKILL.md +98 -0
  373. package/templates/engine/.agents/skills/dream/SKILL.md +82 -0
  374. package/templates/engine/.agents/skills/eval/SKILL.md +58 -0
  375. package/templates/engine/.agents/skills/eval/scripts/eval-score.mjs +59 -0
  376. package/templates/engine/.agents/skills/interrogate/SKILL.md +49 -0
  377. package/templates/engine/.agents/skills/interrogate/scripts/interrogate-plan.mjs +72 -0
  378. package/templates/engine/.agents/skills/model-upgrade/SKILL.md +41 -0
  379. package/templates/engine/.agents/skills/number-vetting/SKILL.md +35 -0
  380. package/templates/engine/.agents/skills/page-refactor/SKILL.md +192 -0
  381. package/templates/engine/.agents/skills/page-refactor/references/templates.md +989 -0
  382. package/templates/engine/.agents/skills/papercut-fix/SKILL.md +92 -0
  383. package/templates/engine/.agents/skills/papercut-fix/references/response-template.md +81 -0
  384. package/templates/engine/.agents/skills/pause-safely/SKILL.md +31 -0
  385. package/templates/engine/.agents/skills/perf/SKILL.md +42 -0
  386. package/templates/engine/.agents/skills/review-method/SKILL.md +92 -0
  387. package/templates/engine/.agents/skills/review-method/golden-set.md +61 -0
  388. package/templates/engine/.agents/skills/session-resume/SKILL.md +76 -0
  389. package/templates/engine/.agents/skills/session-resume/scripts/worktree-audit.mjs +110 -0
  390. package/templates/engine/.agents/skills/shipyard-workflow-closeout/SKILL.md +109 -0
  391. package/templates/engine/.agents/skills/show-me-your-work/SKILL.md +71 -0
  392. package/templates/engine/.agents/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  393. package/templates/engine/.agents/skills/show-me-your-work/scripts/decision-log.mjs +24 -0
  394. package/templates/engine/.agents/skills/tfs-pr/SKILL.md +95 -0
  395. package/templates/engine/.agents/skills/tfs-pr/scripts/tfs-pr.mjs +947 -0
  396. package/templates/engine/.agents/skills/verify-ui/SKILL.md +116 -0
  397. package/templates/engine/.agents/skills/verify-ui/features/.gitkeep +0 -0
  398. package/templates/engine/.agents/skills/verify-ui/scripts/gen-verify-feature.mjs +114 -0
  399. package/templates/engine/.agents/skills/visual-parity/SKILL.md +35 -0
  400. package/templates/engine/.agents/skills/why/SKILL.md +56 -0
  401. package/templates/engine/.agents/skills/why/scripts/why-evidence.mjs +74 -0
  402. package/templates/engine/.agents/skills/wiki/SKILL.md +56 -0
  403. package/templates/engine/.agents/tests/auto-tour.test.mjs +82 -0
  404. package/templates/engine/.agents/tests/dev-tour-model.test.mjs +452 -0
  405. package/templates/engine/.agents/tests/fill-plan-lite.test.mjs +46 -0
  406. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.md +14 -0
  407. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-bare-mid-path.model.json +179 -0
  408. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.md +21 -0
  409. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-fake-path-guard.model.json +194 -0
  410. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.md +20 -0
  411. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-h3-batches.model.json +207 -0
  412. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.md +24 -0
  413. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-issues.model.json +225 -0
  414. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.md +15 -0
  415. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-l1-single-file.model.json +160 -0
  416. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.md +29 -0
  417. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layer-word-unique.model.json +266 -0
  418. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.md +17 -0
  419. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-layers-fallback.model.json +207 -0
  420. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.md +39 -0
  421. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-numbered-steps.model.json +359 -0
  422. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.md +16 -0
  423. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-path-guess.model.json +131 -0
  424. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.md +29 -0
  425. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-table-rows.model.json +190 -0
  426. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.md +39 -0
  427. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-task-checkboxes.model.json +362 -0
  428. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.md +24 -0
  429. package/templates/engine/.agents/tests/fixtures/dev-tour/plan-union-label.model.json +224 -0
  430. package/templates/engine/.agents/tests/tools/gen-synthetic-plan.mjs +108 -0
  431. package/templates/git/.gitattributes +23 -0
  432. package/templates/git/.githooks/commit-msg +72 -0
  433. package/templates/git/.githooks/package.json +3 -0
  434. package/templates/git/.githooks/post-commit +62 -0
  435. package/templates/git/.githooks/pre-commit +197 -0
  436. package/templates/git/.githooks/pre-merge-commit +28 -0
  437. package/templates/git/.githooks/pre-push +201 -0
  438. package/templates/git/.github/workflows/ci.yml +32 -0
  439. package/templates/git/.gitignore.engine +11 -0
  440. package/templates/git/azure-pipelines.yml +46 -0
  441. package/templates/host-meta/SKILLS.md +3 -0
  442. package/templates/host-meta/claude/skill-pointer.md +6 -0
  443. package/templates/host-meta/cline/skill-index.md +6 -0
  444. package/templates/host-meta/codebuddy/skill-pointer.md +6 -0
  445. package/templates/host-meta/commandcode/skill-index.md +5 -0
  446. package/templates/host-meta/opencode/skill-pointer.md +6 -0
  447. package/templates/host-meta/qoder/skill-index.md +5 -0
  448. package/templates/host-meta/qwen/skill-index.md +5 -0
  449. package/templates/host-meta/trae/skill-index.md +6 -0
  450. package/templates/hosts/claude/CLAUDE.md +55 -0
  451. package/templates/hosts/claude/agents/implementer.md +7 -0
  452. package/templates/hosts/claude/agents/independent-reviewer.md +8 -0
  453. package/templates/hosts/claude/agents/pr-adjudicator.md +8 -0
  454. package/templates/hosts/claude/agents/pr-finder.md +8 -0
  455. package/templates/hosts/claude/agents/pr-verifier.md +8 -0
  456. package/templates/hosts/claude/agents/ui-verifier.md +8 -0
  457. package/templates/hosts/claude/agents/wiki-compiler.md +8 -0
  458. package/templates/hosts/claude/commands/wf-deploy.md +10 -0
  459. package/templates/hosts/claude/commands/wf-maintain.md +10 -0
  460. package/templates/hosts/claude/commands/wf-new-task.md +10 -0
  461. package/templates/hosts/claude/commands/wf-pipeline-run.md +10 -0
  462. package/templates/hosts/claude/commands/wf-pr-review.md +10 -0
  463. package/templates/hosts/claude/commands/wf-review.md +10 -0
  464. package/templates/hosts/claude/commands/wf-stages.md +10 -0
  465. package/templates/hosts/claude/settings.hardened.json +94 -0
  466. package/templates/hosts/claude/settings.json +55 -0
  467. package/templates/hosts/cline/agents/implementer.yml +15 -0
  468. package/templates/hosts/cline/agents/independent-reviewer.yml +20 -0
  469. package/templates/hosts/cline/agents/pr-adjudicator.yml +18 -0
  470. package/templates/hosts/cline/agents/pr-finder.yml +19 -0
  471. package/templates/hosts/cline/agents/pr-verifier.yml +18 -0
  472. package/templates/hosts/cline/agents/ui-verifier.yml +17 -0
  473. package/templates/hosts/cline/agents/wiki-compiler.yml +20 -0
  474. package/templates/hosts/cline/hooks/PreToolUse.cjs +260 -0
  475. package/templates/hosts/cline/workflows/wf-deploy.md +8 -0
  476. package/templates/hosts/cline/workflows/wf-maintain.md +8 -0
  477. package/templates/hosts/cline/workflows/wf-new-task.md +8 -0
  478. package/templates/hosts/cline/workflows/wf-pipeline-run.md +8 -0
  479. package/templates/hosts/cline/workflows/wf-pr-review.md +8 -0
  480. package/templates/hosts/cline/workflows/wf-review.md +8 -0
  481. package/templates/hosts/cline/workflows/wf-stages.md +8 -0
  482. package/templates/hosts/codebuddy/CODEBUDDY.md +7 -0
  483. package/templates/hosts/codebuddy/agents/implementer.md +9 -0
  484. package/templates/hosts/codebuddy/agents/independent-reviewer.md +10 -0
  485. package/templates/hosts/codebuddy/agents/pr-adjudicator.md +10 -0
  486. package/templates/hosts/codebuddy/agents/pr-finder.md +10 -0
  487. package/templates/hosts/codebuddy/agents/pr-verifier.md +10 -0
  488. package/templates/hosts/codebuddy/agents/ui-verifier.md +11 -0
  489. package/templates/hosts/codebuddy/agents/wiki-compiler.md +10 -0
  490. package/templates/hosts/codebuddy/commands/wf-deploy.md +10 -0
  491. package/templates/hosts/codebuddy/commands/wf-maintain.md +10 -0
  492. package/templates/hosts/codebuddy/commands/wf-new-task.md +10 -0
  493. package/templates/hosts/codebuddy/commands/wf-pipeline-run.md +10 -0
  494. package/templates/hosts/codebuddy/commands/wf-pr-review.md +10 -0
  495. package/templates/hosts/codebuddy/commands/wf-review.md +10 -0
  496. package/templates/hosts/codebuddy/commands/wf-stages.md +10 -0
  497. package/templates/hosts/codebuddy/rules/backend-scope.md +5 -0
  498. package/templates/hosts/codebuddy/rules/frontend-scope.md +5 -0
  499. package/templates/hosts/codebuddy/settings.json +31 -0
  500. package/templates/hosts/codebuddy/skills/tfs-pr/SKILL.md +6 -0
  501. package/templates/hosts/commandcode/agents/implementer.md +10 -0
  502. package/templates/hosts/commandcode/agents/independent-reviewer.md +9 -0
  503. package/templates/hosts/commandcode/agents/pr-adjudicator.md +9 -0
  504. package/templates/hosts/commandcode/agents/pr-finder.md +9 -0
  505. package/templates/hosts/commandcode/agents/pr-verifier.md +9 -0
  506. package/templates/hosts/commandcode/agents/ui-verifier.md +11 -0
  507. package/templates/hosts/commandcode/agents/wiki-compiler.md +10 -0
  508. package/templates/hosts/commandcode/commands/wf-deploy.md +9 -0
  509. package/templates/hosts/commandcode/commands/wf-maintain.md +9 -0
  510. package/templates/hosts/commandcode/commands/wf-new-task.md +9 -0
  511. package/templates/hosts/commandcode/commands/wf-pipeline-run.md +9 -0
  512. package/templates/hosts/commandcode/commands/wf-pr-review.md +9 -0
  513. package/templates/hosts/commandcode/commands/wf-review.md +9 -0
  514. package/templates/hosts/commandcode/commands/wf-stages.md +9 -0
  515. package/templates/hosts/commandcode/settings.json +57 -0
  516. package/templates/hosts/opencode/agents/implementer.md +51 -0
  517. package/templates/hosts/opencode/agents/independent-reviewer.md +18 -0
  518. package/templates/hosts/opencode/agents/pr-adjudicator.md +18 -0
  519. package/templates/hosts/opencode/agents/pr-finder.md +18 -0
  520. package/templates/hosts/opencode/agents/pr-verifier.md +18 -0
  521. package/templates/hosts/opencode/agents/ui-verifier.md +45 -0
  522. package/templates/hosts/opencode/agents/wiki-compiler.md +51 -0
  523. package/templates/hosts/opencode/commands/wf-deploy.md +7 -0
  524. package/templates/hosts/opencode/commands/wf-maintain.md +7 -0
  525. package/templates/hosts/opencode/commands/wf-new-task.md +7 -0
  526. package/templates/hosts/opencode/commands/wf-pipeline-run.md +7 -0
  527. package/templates/hosts/opencode/commands/wf-pr-review.md +7 -0
  528. package/templates/hosts/opencode/commands/wf-review.md +7 -0
  529. package/templates/hosts/opencode/commands/wf-stages.md +7 -0
  530. package/templates/hosts/pi/agents/implementer.md +10 -0
  531. package/templates/hosts/pi/agents/independent-reviewer.md +11 -0
  532. package/templates/hosts/pi/agents/pr-adjudicator.md +11 -0
  533. package/templates/hosts/pi/agents/pr-finder.md +10 -0
  534. package/templates/hosts/pi/agents/pr-verifier.md +10 -0
  535. package/templates/hosts/pi/agents/ui-verifier.md +10 -0
  536. package/templates/hosts/pi/agents/wiki-compiler.md +10 -0
  537. package/templates/hosts/pi/extensions/lib/gates-core.cjs +196 -0
  538. package/templates/hosts/pi/extensions/shipyard-gates.ts +95 -0
  539. package/templates/hosts/pi/settings.json +5 -0
  540. package/templates/hosts/qoder/agents/implementer.md +9 -0
  541. package/templates/hosts/qoder/agents/independent-reviewer.md +10 -0
  542. package/templates/hosts/qoder/agents/pr-adjudicator.md +10 -0
  543. package/templates/hosts/qoder/agents/pr-finder.md +10 -0
  544. package/templates/hosts/qoder/agents/pr-verifier.md +10 -0
  545. package/templates/hosts/qoder/agents/ui-verifier.md +10 -0
  546. package/templates/hosts/qoder/agents/wiki-compiler.md +10 -0
  547. package/templates/hosts/qoder/commands/wf-deploy.md +8 -0
  548. package/templates/hosts/qoder/commands/wf-maintain.md +8 -0
  549. package/templates/hosts/qoder/commands/wf-new-task.md +8 -0
  550. package/templates/hosts/qoder/commands/wf-pipeline-run.md +8 -0
  551. package/templates/hosts/qoder/commands/wf-pr-review.md +8 -0
  552. package/templates/hosts/qoder/commands/wf-review.md +8 -0
  553. package/templates/hosts/qoder/commands/wf-stages.md +8 -0
  554. package/templates/hosts/qoder/settings.json +61 -0
  555. package/templates/hosts/qwen/agents/implementer.md +8 -0
  556. package/templates/hosts/qwen/agents/independent-reviewer.md +8 -0
  557. package/templates/hosts/qwen/agents/pr-adjudicator.md +8 -0
  558. package/templates/hosts/qwen/agents/pr-finder.md +8 -0
  559. package/templates/hosts/qwen/agents/pr-verifier.md +8 -0
  560. package/templates/hosts/qwen/agents/ui-verifier.md +8 -0
  561. package/templates/hosts/qwen/agents/wiki-compiler.md +11 -0
  562. package/templates/hosts/qwen/commands/wf-deploy.md +9 -0
  563. package/templates/hosts/qwen/commands/wf-maintain.md +9 -0
  564. package/templates/hosts/qwen/commands/wf-new-task.md +9 -0
  565. package/templates/hosts/qwen/commands/wf-pipeline-run.md +9 -0
  566. package/templates/hosts/qwen/commands/wf-pr-review.md +9 -0
  567. package/templates/hosts/qwen/commands/wf-review.md +9 -0
  568. package/templates/hosts/qwen/commands/wf-stages.md +9 -0
  569. package/templates/hosts/qwen/settings.json +57 -0
  570. package/templates/hosts/trae/agents/implementer.md +9 -0
  571. package/templates/hosts/trae/agents/independent-reviewer.md +10 -0
  572. package/templates/hosts/trae/agents/pr-adjudicator.md +10 -0
  573. package/templates/hosts/trae/agents/pr-finder.md +10 -0
  574. package/templates/hosts/trae/agents/pr-verifier.md +10 -0
  575. package/templates/hosts/trae/agents/ui-verifier.md +10 -0
  576. package/templates/hosts/trae/agents/wiki-compiler.md +10 -0
  577. package/templates/hosts/trae/commands/wf-deploy.md +8 -0
  578. package/templates/hosts/trae/commands/wf-maintain.md +8 -0
  579. package/templates/hosts/trae/commands/wf-new-task.md +8 -0
  580. package/templates/hosts/trae/commands/wf-pipeline-run.md +8 -0
  581. package/templates/hosts/trae/commands/wf-pr-review.md +8 -0
  582. package/templates/hosts/trae/commands/wf-review.md +8 -0
  583. package/templates/hosts/trae/commands/wf-stages.md +8 -0
  584. package/templates/hosts/trae/hooks.json +17 -0
  585. package/templates/hosts/trae/rules/backend-scope.md +5 -0
  586. package/templates/hosts/trae/rules/frontend-scope.md +5 -0
  587. package/templates/hosts/zcode/agents/implementer.md +8 -0
  588. package/templates/hosts/zcode/agents/independent-reviewer.md +8 -0
  589. package/templates/hosts/zcode/agents/ui-verifier.md +8 -0
  590. package/templates/hosts/zcode/agents/wiki-compiler.md +8 -0
  591. package/templates/hosts/zcode/config.json +31 -0
  592. package/templates/hosts/zcode/workflows/code-review.dwf.ts +428 -0
  593. package/templates/hosts/zcode/workflows/fullchain-flow-test.dwf.ts +898 -0
  594. package/templates/profiles/dotnet/.agents/config/lane-surfaces.txt +33 -0
  595. package/templates/profiles/dotnet/.agents/config/rule-budgets.txt +84 -0
  596. package/templates/profiles/dotnet/.agents/config/test-impact-map.json +590 -0
  597. package/templates/profiles/dotnet/.agents/config/workflow-modules.txt +18 -0
  598. package/templates/profiles/dotnet/.agents/hooks/commit-check.config.json +18 -0
  599. package/templates/profiles/dotnet/.agents/hooks/delete-guard-allowlist.txt +28 -0
  600. package/templates/profiles/dotnet/.agents/notes/runtime-env.md +178 -0
  601. package/templates/profiles/dotnet/AGENTS.md +52 -0
  602. package/templates/profiles/empty/.agents/config/lane-surfaces.txt +12 -0
  603. package/templates/profiles/empty/.agents/config/rule-budgets.txt +3 -0
  604. package/templates/profiles/empty/.agents/config/test-impact-map.json +8 -0
  605. package/templates/profiles/empty/.agents/config/workflow-modules.txt +2 -0
  606. package/templates/profiles/empty/.agents/hooks/commit-check.config.json +5 -0
  607. package/templates/profiles/empty/.agents/hooks/delete-guard-allowlist.txt +2 -0
  608. package/templates/profiles/empty/.agents/notes/runtime-env.md +44 -0
  609. package/templates/profiles/empty/AGENTS.md +52 -0
  610. package/templates/profiles/go/AGENTS.md +52 -0
  611. package/templates/profiles/java/AGENTS.md +52 -0
  612. package/templates/profiles/node/.agents/config/lane-surfaces.txt +12 -0
  613. package/templates/profiles/node/.agents/config/rule-budgets.txt +3 -0
  614. package/templates/profiles/node/.agents/config/test-impact-map.json +8 -0
  615. package/templates/profiles/node/.agents/config/workflow-modules.txt +2 -0
  616. package/templates/profiles/node/.agents/hooks/commit-check.config.json +5 -0
  617. package/templates/profiles/node/.agents/hooks/delete-guard-allowlist.txt +2 -0
  618. package/templates/profiles/node/.agents/notes/runtime-env.md +44 -0
  619. package/templates/profiles/node/AGENTS.md +52 -0
  620. package/templates/profiles/rust/AGENTS.md +52 -0
  621. package/templates/profiles/typescript/AGENTS.md +52 -0
  622. package/templates/scaffold/wiki/INDEX.md +33 -0
  623. package/templates/scaffold/wiki/drafts-archive/README.md +7 -0
  624. package/templates/scaffold/wiki//344/272/247/345/223/201/351/234/200/346/261/202/.gitkeep +0 -0
  625. package/templates/scaffold/wiki//345/274/200/345/217/221/346/226/271/346/241/210/.gitkeep +0 -0
  626. package/templates/scaffold/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +22 -0
  627. package/templates/scaffold/wiki//346/265/213/350/257/225/346/212/245/345/221/212/.gitkeep +0 -0
  628. package/templates/scaffold/wiki//347/224/250/346/210/267/345/212/237/350/203/275/.gitkeep +0 -0
  629. package/templates/scaffold/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +230 -0
  630. package/templates/scaffold/wiki//351/241/271/347/233/256/350/247/204/350/214/203/.gitkeep +0 -0
  631. package/templates/scaffold/workflow/INDEX.md +29 -0
  632. package/templates/scaffold/workflow/README.md +69 -0
  633. package/templates/scaffold/workflow/archive/README.md +3 -0
  634. package/templates/scaffold/workflow/artifact-sources.md +25 -0
  635. package/templates/scaffold/workflow/delegations.d/.gitkeep +0 -0
  636. package/templates/scaffold/workflow/delegations.md +4 -0
  637. package/templates/scaffold/workflow/effective-policy.md +4 -0
  638. package/templates/scaffold/workflow/evidence/.gitkeep +0 -0
  639. package/templates/scaffold/workflow/gate-cost.md +4 -0
  640. package/templates/scaffold/workflow/gate-metrics.d/.gitkeep +0 -0
  641. package/templates/scaffold/workflow/incidents/_TEMPLATE.md +49 -0
  642. package/templates/scaffold/workflow/intents/_TEMPLATE.md +43 -0
  643. package/templates/scaffold/workflow/metrics.md +4 -0
  644. package/templates/scaffold/workflow/non-engineer-intent.md +51 -0
  645. package/templates/scaffold/workflow/papercuts.d/.gitkeep +0 -0
  646. package/templates/scaffold/workflow/papercuts.md +3 -0
  647. package/templates/scaffold/workflow/plans/_TEMPLATE.md +47 -0
  648. package/templates/scaffold/workflow/regression-checklist.d/.gitkeep +0 -0
  649. package/templates/scaffold/workflow/regression-checklist.md +3 -0
  650. package/templates/scaffold/workflow/research/.gitkeep +0 -0
  651. package/templates/scaffold/workflow/reviews.d/.gitkeep +0 -0
  652. package/templates/scaffold/workflow/specs/_TEMPLATE.md +87 -0
  653. package/templates/scaffold/workflow/verify-evidence/.gitkeep +0 -0
  654. package/templates/scaffold/workflow/verify-evidence.md +4 -0
  655. package/modules/gates/README.md +0 -25
  656. package/modules/gates/dotnet-ca/README.md +0 -24
  657. package/modules/gates/dotnet-ca/check-architecture.sh +0 -150
  658. package/modules/gates/dotnet-ca/local-pre-commit.line +0 -1
  659. package/modules/gates/generated-readonly/README.md +0 -13
  660. package/modules/gates/generated-readonly/check-generated.mjs +0 -61
  661. package/modules/gates/generated-readonly/local-pre-commit.line +0 -1
  662. package/modules/gates/node-layer/README.md +0 -9
  663. package/modules/gates/node-layer/check-node-layer.mjs +0 -29
  664. package/modules/gates/node-layer/local-pre-commit.line +0 -1
  665. package/modules/gates/py-import/README.md +0 -9
  666. package/modules/gates/py-import/check-py-import.mjs +0 -30
  667. package/modules/gates/py-import/local-pre-commit.line +0 -1
  668. package/modules/gates/test-protect/README.md +0 -23
  669. package/modules/gates/test-protect/check-test-protect.mjs +0 -64
  670. package/modules/gates/test-protect/local-pre-commit.line +0 -1
  671. package/modules/hosts/README.md +0 -57
  672. package/modules/hosts/claude/agents/implementer.md +0 -51
  673. package/modules/hosts/claude/agents/independent-reviewer.md +0 -49
  674. package/modules/hosts/claude/agents/ui-verifier.md +0 -48
  675. package/modules/hosts/claude/commands/wf-build.md +0 -69
  676. package/modules/hosts/claude/commands/wf-deploy.md +0 -58
  677. package/modules/hosts/claude/commands/wf-design.md +0 -49
  678. package/modules/hosts/claude/commands/wf-gate-checklist.md +0 -77
  679. package/modules/hosts/claude/commands/wf-maintain.md +0 -76
  680. package/modules/hosts/claude/commands/wf-new-task.md +0 -102
  681. package/modules/hosts/claude/commands/wf-pipeline-run.md +0 -35
  682. package/modules/hosts/claude/commands/wf-plan.md +0 -40
  683. package/modules/hosts/claude/commands/wf-review.md +0 -49
  684. package/modules/hosts/claude/commands/wf-sync-hosts.md +0 -64
  685. package/modules/hosts/claude/commands/wf-test.md +0 -68
  686. package/modules/hosts/codex/agents/implementer.md +0 -51
  687. package/modules/hosts/codex/agents/independent-reviewer.md +0 -49
  688. package/modules/hosts/codex/agents/ui-verifier.md +0 -48
  689. package/modules/hosts/codex/commands/wf-build.md +0 -69
  690. package/modules/hosts/codex/commands/wf-deploy.md +0 -58
  691. package/modules/hosts/codex/commands/wf-design.md +0 -49
  692. package/modules/hosts/codex/commands/wf-gate-checklist.md +0 -77
  693. package/modules/hosts/codex/commands/wf-maintain.md +0 -76
  694. package/modules/hosts/codex/commands/wf-new-task.md +0 -102
  695. package/modules/hosts/codex/commands/wf-pipeline-run.md +0 -35
  696. package/modules/hosts/codex/commands/wf-plan.md +0 -40
  697. package/modules/hosts/codex/commands/wf-review.md +0 -49
  698. package/modules/hosts/codex/commands/wf-sync-hosts.md +0 -64
  699. package/modules/hosts/codex/commands/wf-test.md +0 -68
  700. package/modules/hosts/codex/skills/flow-kit/SKILL.md +0 -14
  701. package/modules/hosts/cursor/agents/implementer.md +0 -51
  702. package/modules/hosts/cursor/agents/independent-reviewer.md +0 -49
  703. package/modules/hosts/cursor/agents/ui-verifier.md +0 -48
  704. package/modules/hosts/cursor/commands/wf-build.md +0 -69
  705. package/modules/hosts/cursor/commands/wf-deploy.md +0 -58
  706. package/modules/hosts/cursor/commands/wf-design.md +0 -49
  707. package/modules/hosts/cursor/commands/wf-gate-checklist.md +0 -77
  708. package/modules/hosts/cursor/commands/wf-maintain.md +0 -76
  709. package/modules/hosts/cursor/commands/wf-new-task.md +0 -102
  710. package/modules/hosts/cursor/commands/wf-pipeline-run.md +0 -35
  711. package/modules/hosts/cursor/commands/wf-plan.md +0 -40
  712. package/modules/hosts/cursor/commands/wf-review.md +0 -49
  713. package/modules/hosts/cursor/commands/wf-sync-hosts.md +0 -64
  714. package/modules/hosts/cursor/commands/wf-test.md +0 -68
  715. package/modules/hosts/omp/agents/implementer.md +0 -52
  716. package/modules/hosts/omp/agents/independent-reviewer.md +0 -50
  717. package/modules/hosts/omp/agents/ui-verifier.md +0 -49
  718. package/modules/hosts/opencode/agents/implementer.md +0 -59
  719. package/modules/hosts/opencode/agents/independent-reviewer.md +0 -53
  720. package/modules/hosts/opencode/agents/ui-verifier.md +0 -52
  721. package/modules/hosts/opencode/commands/wf-build.md +0 -69
  722. package/modules/hosts/opencode/commands/wf-deploy.md +0 -58
  723. package/modules/hosts/opencode/commands/wf-design.md +0 -49
  724. package/modules/hosts/opencode/commands/wf-gate-checklist.md +0 -77
  725. package/modules/hosts/opencode/commands/wf-maintain.md +0 -76
  726. package/modules/hosts/opencode/commands/wf-new-task.md +0 -102
  727. package/modules/hosts/opencode/commands/wf-pipeline-run.md +0 -35
  728. package/modules/hosts/opencode/commands/wf-plan.md +0 -40
  729. package/modules/hosts/opencode/commands/wf-review.md +0 -49
  730. package/modules/hosts/opencode/commands/wf-sync-hosts.md +0 -64
  731. package/modules/hosts/opencode/commands/wf-test.md +0 -68
  732. package/modules/hosts/trae/agents/implementer.md +0 -52
  733. package/modules/hosts/trae/agents/independent-reviewer.md +0 -51
  734. package/modules/hosts/trae/agents/ui-verifier.md +0 -50
  735. package/modules/hosts/trae/commands/wf-build.md +0 -70
  736. package/modules/hosts/trae/commands/wf-deploy.md +0 -59
  737. package/modules/hosts/trae/commands/wf-design.md +0 -50
  738. package/modules/hosts/trae/commands/wf-gate-checklist.md +0 -78
  739. package/modules/hosts/trae/commands/wf-maintain.md +0 -77
  740. package/modules/hosts/trae/commands/wf-new-task.md +0 -103
  741. package/modules/hosts/trae/commands/wf-pipeline-run.md +0 -36
  742. package/modules/hosts/trae/commands/wf-plan.md +0 -41
  743. package/modules/hosts/trae/commands/wf-review.md +0 -50
  744. package/modules/hosts/trae/commands/wf-sync-hosts.md +0 -65
  745. package/modules/hosts/trae/commands/wf-test.md +0 -69
  746. package/modules/hosts/trae/hooks/post-edit-check.cjs +0 -98
  747. package/modules/hosts/trae/hooks/pre-shell-check.cjs +0 -192
  748. package/modules/hosts/trae/hooks/resolve-shell.cjs +0 -30
  749. package/modules/hosts/trae/hooks.json +0 -29
  750. package/modules/hosts/trae/rules/beautify-input-chinese.md +0 -6
  751. package/modules/hosts/trae/rules/git-commit-message.md +0 -10
  752. package/modules/hosts/trae/rules/project-workflow.md +0 -14
  753. package/modules/hosts/zcode/agents/implementer.md +0 -51
  754. package/modules/hosts/zcode/agents/independent-reviewer.md +0 -49
  755. package/modules/hosts/zcode/agents/ui-verifier.md +0 -48
  756. package/src/add-gate.mjs +0 -116
  757. package/src/add-gate.test.mjs +0 -103
  758. package/src/add-host.mjs +0 -68
  759. package/src/cli.mjs +0 -169
  760. package/src/doctor.mjs +0 -629
  761. package/src/executor.mjs +0 -262
  762. package/src/executor.test.mjs +0 -295
  763. package/src/fresh-init.test.mjs +0 -64
  764. package/src/gate-dotnet-ca.test.mjs +0 -124
  765. package/src/gates.test.mjs +0 -143
  766. package/src/init.mjs +0 -382
  767. package/src/init.test.mjs +0 -163
  768. package/src/instance-ref.test.mjs +0 -62
  769. package/src/jscpd-drift.test.mjs +0 -145
  770. package/src/pack.test.mjs +0 -24
  771. package/src/profiles.mjs +0 -183
  772. package/src/render.mjs +0 -132
  773. package/src/rule-budget.test.mjs +0 -103
  774. package/src/run-tests.mjs +0 -56
  775. package/src/stack-profile.test.mjs +0 -95
  776. package/src/sync-hosts.mjs +0 -257
  777. package/src/sync-hosts.test.mjs +0 -291
  778. package/src/sync.mjs +0 -228
  779. package/src/sync.test.mjs +0 -452
  780. package/src/trae-hooks.test.mjs +0 -127
  781. package/src/validate.mjs +0 -77
  782. package/src/validate.test.mjs +0 -95
  783. package/templates/.gitattributes +0 -17
  784. package/templates/AGENTS.md +0 -58
  785. package/templates/_agents/board/index.html +0 -676
  786. package/templates/_agents/commands/build.md +0 -84
  787. package/templates/_agents/commands/deploy.md +0 -66
  788. package/templates/_agents/commands/design.md +0 -63
  789. package/templates/_agents/commands/gate-checklist.md +0 -91
  790. package/templates/_agents/commands/maintain.md +0 -90
  791. package/templates/_agents/commands/new-task.md +0 -110
  792. package/templates/_agents/commands/pipeline-run.md +0 -43
  793. package/templates/_agents/commands/plan.md +0 -48
  794. package/templates/_agents/commands/review.md +0 -62
  795. package/templates/_agents/commands/sync-hosts.md +0 -77
  796. package/templates/_agents/commands/test.md +0 -87
  797. package/templates/_agents/control-surfaces.txt +0 -53
  798. package/templates/_agents/engine-lock.json +0 -342
  799. package/templates/_agents/hooks/check-index-incremental.mjs +0 -48
  800. package/templates/_agents/hooks/check-pairing-incremental.mjs +0 -66
  801. package/templates/_agents/hooks/check-wiki-ledger.mjs +0 -30
  802. package/templates/_agents/hooks/commit-check.cjs +0 -193
  803. package/templates/_agents/hooks/local-pre-commit +0 -6
  804. package/templates/_agents/lane-surfaces.txt +0 -17
  805. package/templates/_agents/level-hints.txt +0 -30
  806. package/templates/_agents/loop/papercut-debt/DESIGN.md +0 -112
  807. package/templates/_agents/mechanism-registry.md +0 -35
  808. package/templates/_agents/metric-claims.txt +0 -81
  809. package/templates/_agents/notes/engine-internals.md +0 -17
  810. package/templates/_agents/notes/runtime-env.md +0 -18
  811. package/templates/_agents/roles/implementer.md +0 -47
  812. package/templates/_agents/roles/independent-reviewer.md +0 -45
  813. package/templates/_agents/roles/ui-verifier.md +0 -44
  814. package/templates/_agents/rule-budgets.txt +0 -20
  815. package/templates/_agents/scripts/agg-delegations.cjs +0 -302
  816. package/templates/_agents/scripts/agg-delegations.test.mjs +0 -282
  817. package/templates/_agents/scripts/agg-gate-stats.mjs +0 -113
  818. package/templates/_agents/scripts/agg-gate-stats.test.mjs +0 -95
  819. package/templates/_agents/scripts/agg-judgments.mjs +0 -156
  820. package/templates/_agents/scripts/agg-judgments.test.mjs +0 -93
  821. package/templates/_agents/scripts/archive-sweep.mjs +0 -235
  822. package/templates/_agents/scripts/archive-sweep.test.mjs +0 -129
  823. package/templates/_agents/scripts/check-attribution.mjs +0 -37
  824. package/templates/_agents/scripts/check-convergence.mjs +0 -124
  825. package/templates/_agents/scripts/check-engine-integrity.mjs +0 -220
  826. package/templates/_agents/scripts/check-engine-integrity.test.mjs +0 -215
  827. package/templates/_agents/scripts/check-funnel.mjs +0 -56
  828. package/templates/_agents/scripts/check-hygiene.mjs +0 -167
  829. package/templates/_agents/scripts/check-hygiene.test.mjs +0 -182
  830. package/templates/_agents/scripts/check-index-incremental.test.mjs +0 -73
  831. package/templates/_agents/scripts/check-lane-surface.mjs +0 -238
  832. package/templates/_agents/scripts/check-lane-surface.test.mjs +0 -302
  833. package/templates/_agents/scripts/check-ledger-invariant.mjs +0 -586
  834. package/templates/_agents/scripts/check-ledger-invariant.test.mjs +0 -639
  835. package/templates/_agents/scripts/check-loop-rev.test.mjs +0 -336
  836. package/templates/_agents/scripts/check-loop-unit.test.mjs +0 -103
  837. package/templates/_agents/scripts/check-loop.mjs +0 -1987
  838. package/templates/_agents/scripts/check-loop.sh +0 -6
  839. package/templates/_agents/scripts/check-loop.test.mjs +0 -3912
  840. package/templates/_agents/scripts/check-metric-claims.mjs +0 -277
  841. package/templates/_agents/scripts/check-prejudgment.mjs +0 -64
  842. package/templates/_agents/scripts/check-registry.mjs +0 -45
  843. package/templates/_agents/scripts/check-scope.mjs +0 -96
  844. package/templates/_agents/scripts/check-scope.test.mjs +0 -99
  845. package/templates/_agents/scripts/check-scripts-syntax.mjs +0 -84
  846. package/templates/_agents/scripts/check-scripts-syntax.test.mjs +0 -72
  847. package/templates/_agents/scripts/check-spec-verif.mjs +0 -47
  848. package/templates/_agents/scripts/check-stage-index.mjs +0 -40
  849. package/templates/_agents/scripts/check-stage-index.test.mjs +0 -77
  850. package/templates/_agents/scripts/closeout-l1.mjs +0 -217
  851. package/templates/_agents/scripts/closeout-l1.test.mjs +0 -105
  852. package/templates/_agents/scripts/commit-check-trigger.test.mjs +0 -205
  853. package/templates/_agents/scripts/compact-ledgers.mjs +0 -97
  854. package/templates/_agents/scripts/compact-ledgers.test.mjs +0 -162
  855. package/templates/_agents/scripts/confirm-doc.mjs +0 -610
  856. package/templates/_agents/scripts/confirm-doc.test.mjs +0 -1119
  857. package/templates/_agents/scripts/doctor.test.mjs +0 -770
  858. package/templates/_agents/scripts/draft-sediment.mjs +0 -178
  859. package/templates/_agents/scripts/draft-sediment.test.mjs +0 -272
  860. package/templates/_agents/scripts/edit-face-check.mjs +0 -109
  861. package/templates/_agents/scripts/edit-face-check.test.mjs +0 -99
  862. package/templates/_agents/scripts/ensure-board.mjs +0 -185
  863. package/templates/_agents/scripts/fill-intent.mjs +0 -91
  864. package/templates/_agents/scripts/fill-intent.test.mjs +0 -113
  865. package/templates/_agents/scripts/fill-plan.mjs +0 -79
  866. package/templates/_agents/scripts/fill-plan.test.mjs +0 -224
  867. package/templates/_agents/scripts/fill-spec.mjs +0 -70
  868. package/templates/_agents/scripts/fill-spec.test.mjs +0 -266
  869. package/templates/_agents/scripts/fixture-scripts.mjs +0 -153
  870. package/templates/_agents/scripts/fixture-scripts.test.mjs +0 -112
  871. package/templates/_agents/scripts/gate-checklist.mjs +0 -209
  872. package/templates/_agents/scripts/gate-checklist.test.mjs +0 -201
  873. package/templates/_agents/scripts/gate-seg.mjs +0 -54
  874. package/templates/_agents/scripts/gate-seg.test.mjs +0 -112
  875. package/templates/_agents/scripts/gen-effective-policy.mjs +0 -107
  876. package/templates/_agents/scripts/gen-effective-policy.test.mjs +0 -100
  877. package/templates/_agents/scripts/gen-verify-evidence.mjs +0 -107
  878. package/templates/_agents/scripts/gen-verify-evidence.test.mjs +0 -84
  879. package/templates/_agents/scripts/gen-wiki-board.mjs +0 -276
  880. package/templates/_agents/scripts/gen-wiki-board.test.mjs +0 -249
  881. package/templates/_agents/scripts/gen-workflow-dashboard.mjs +0 -251
  882. package/templates/_agents/scripts/gen-workflow-dashboard.test.mjs +0 -188
  883. package/templates/_agents/scripts/gen-workflow-index.mjs +0 -201
  884. package/templates/_agents/scripts/gen-workflow-index.test.mjs +0 -152
  885. package/templates/_agents/scripts/gen-workflow-metrics.mjs +0 -466
  886. package/templates/_agents/scripts/gen-workflow-metrics.test.mjs +0 -343
  887. package/templates/_agents/scripts/git-merge-jsonl.mjs +0 -63
  888. package/templates/_agents/scripts/git-merge-jsonl.test.mjs +0 -125
  889. package/templates/_agents/scripts/judgment-ledger.mjs +0 -65
  890. package/templates/_agents/scripts/judgment-ledger.test.mjs +0 -129
  891. package/templates/_agents/scripts/kb-cache-evict.mjs +0 -50
  892. package/templates/_agents/scripts/kb-cache-evict.test.mjs +0 -104
  893. package/templates/_agents/scripts/kb-search.mjs +0 -413
  894. package/templates/_agents/scripts/kb-search.test.mjs +0 -299
  895. package/templates/_agents/scripts/lane-surface-audit.mjs +0 -143
  896. package/templates/_agents/scripts/lane-surface-audit.test.mjs +0 -93
  897. package/templates/_agents/scripts/ledger-doc-chain.test.mjs +0 -166
  898. package/templates/_agents/scripts/ledger-loader.mjs +0 -108
  899. package/templates/_agents/scripts/ledger-loader.test.mjs +0 -131
  900. package/templates/_agents/scripts/ledger-prune.mjs +0 -96
  901. package/templates/_agents/scripts/ledger-prune.test.mjs +0 -120
  902. package/templates/_agents/scripts/ledger-shards.mjs +0 -344
  903. package/templates/_agents/scripts/ledger-shards.test.mjs +0 -356
  904. package/templates/_agents/scripts/ledger-ts-monotonic.test.mjs +0 -135
  905. package/templates/_agents/scripts/level-criteria.mjs +0 -231
  906. package/templates/_agents/scripts/level-criteria.test.mjs +0 -281
  907. package/templates/_agents/scripts/mechanism-retire-watch.mjs +0 -183
  908. package/templates/_agents/scripts/mechanism-retire-watch.test.mjs +0 -114
  909. package/templates/_agents/scripts/papercut-debt-controller.mjs +0 -141
  910. package/templates/_agents/scripts/papercut-debt-controller.test.mjs +0 -127
  911. package/templates/_agents/scripts/papercut-debt-sensor.mjs +0 -170
  912. package/templates/_agents/scripts/papercut-debt-sensor.test.mjs +0 -146
  913. package/templates/_agents/scripts/pipeline-run-docs.mjs +0 -76
  914. package/templates/_agents/scripts/pipeline-run-run.mjs +0 -63
  915. package/templates/_agents/scripts/pipeline-run.mjs +0 -867
  916. package/templates/_agents/scripts/pipeline-run.test.mjs +0 -517
  917. package/templates/_agents/scripts/policy.mjs +0 -281
  918. package/templates/_agents/scripts/pre-push.test.mjs +0 -105
  919. package/templates/_agents/scripts/resolve-merge-conflicts.mjs +0 -110
  920. package/templates/_agents/scripts/resolve-merge-conflicts.test.mjs +0 -87
  921. package/templates/_agents/scripts/rewrite-file.mjs +0 -133
  922. package/templates/_agents/scripts/rewrite-file.test.mjs +0 -148
  923. package/templates/_agents/scripts/rule-budget.mjs +0 -96
  924. package/templates/_agents/scripts/rule-budget.test.mjs +0 -118
  925. package/templates/_agents/scripts/run-tests.mjs +0 -99
  926. package/templates/_agents/scripts/run-tests.test.mjs +0 -105
  927. package/templates/_agents/scripts/solidify-task.mjs +0 -109
  928. package/templates/_agents/scripts/solidify-task.test.mjs +0 -129
  929. package/templates/_agents/scripts/stage-gates.mjs +0 -343
  930. package/templates/_agents/scripts/stage-gates.test.mjs +0 -105
  931. package/templates/_agents/scripts/trust-mode.mjs +0 -67
  932. package/templates/_agents/scripts/trust-mode.test.mjs +0 -110
  933. package/templates/_agents/scripts/verify-wiki-consistency.mjs +0 -253
  934. package/templates/_agents/scripts/verify-wiki-consistency.test.mjs +0 -123
  935. package/templates/_agents/scripts/verify.mjs +0 -345
  936. package/templates/_agents/scripts/verify.test.mjs +0 -373
  937. package/templates/_agents/scripts/wf-journal.mjs +0 -231
  938. package/templates/_agents/scripts/wf-journal.test.mjs +0 -216
  939. package/templates/_agents/scripts/wiki-search.mjs +0 -19
  940. package/templates/_agents/scripts/wiki-search.test.mjs +0 -57
  941. package/templates/_agents/scripts/workflow-board-server.mjs +0 -393
  942. package/templates/_agents/scripts/workflow-board-server.test.mjs +0 -201
  943. package/templates/_agents/scripts/workflow-enums.mjs +0 -70
  944. package/templates/_agents/scripts/workflow-enums.test.mjs +0 -118
  945. package/templates/_agents/scripts/workflows-check.mjs +0 -260
  946. package/templates/_agents/scripts/workflows-check.test.mjs +0 -278
  947. package/templates/_agents/scripts-test-exempt.txt +0 -16
  948. package/templates/_agents/skills/papercut-fix/SKILL.md +0 -60
  949. package/templates/_agents/skills/papercut-fix/references/response-template.md +0 -81
  950. package/templates/_agents/skills/review-method/SKILL.md +0 -58
  951. package/templates/_agents/skills/verify-ui/SKILL.md +0 -61
  952. package/templates/_agents/skills/wiki/SKILL.md +0 -106
  953. package/templates/_agents/workflow-enums.txt +0 -26
  954. package/templates/_agents/workflow-modules.txt +0 -11
  955. package/templates/_agents/workflows/_TEMPLATE.md +0 -75
  956. package/templates/_agents/workflows/pipeline-closing.md +0 -28
  957. package/templates/_agents/workflows//347/244/272/344/276/213-/345/271/266/350/241/214/345/256/236/347/216/260/350/257/204/345/256/241.md +0 -16
  958. package/templates/_githooks/commit-msg +0 -17
  959. package/templates/_githooks/post-commit +0 -10
  960. package/templates/_githooks/pre-commit +0 -126
  961. package/templates/_githooks/pre-merge-commit +0 -29
  962. package/templates/_githooks/pre-push +0 -136
  963. package/templates/_github/workflows/kit-ci.yml +0 -49
  964. package/templates/wiki/INDEX.md +0 -73
  965. package/templates/wiki/drafts-archive/README.md +0 -3
  966. package/templates/wiki//344/272/247/345/223/201/351/234/200/346/261/202/README.md +0 -3
  967. package/templates/wiki//345/274/200/345/217/221/346/226/271/346/241/210/README.md +0 -3
  968. package/templates/wiki//346/225/260/346/215/256/347/273/264/346/212/244/README.md +0 -3
  969. package/templates/wiki//346/265/213/350/257/225/346/212/245/345/221/212/README.md +0 -3
  970. package/templates/wiki//347/224/250/346/210/267/345/212/237/350/203/275/README.md +0 -3
  971. package/templates/wiki//347/237/245/350/257/206/346/262/211/346/267/200/346/200/273/350/247/210.html +0 -77
  972. package/templates/wiki//351/241/271/347/233/256/350/247/204/350/214/203/README.md +0 -3
  973. package/templates/wiki//351/241/271/347/233/256/350/256/241/345/210/222/README.md +0 -3
  974. package/templates/workflow/README.md +0 -91
  975. package/templates/workflow/delegations.md +0 -29
  976. package/templates/workflow/incidents/_TEMPLATE.md +0 -51
  977. package/templates/workflow/intents/_TEMPLATE.md +0 -51
  978. package/templates/workflow/papercuts.md +0 -9
  979. package/templates/workflow/plans/_TEMPLATE.md +0 -47
  980. package/templates/workflow/regression-checklist.md +0 -23
  981. package/templates/workflow/specs/_TEMPLATE.md +0 -80
  982. /package/templates/{_agents → engine/.agents}/board/marked.min.js +0 -0
  983. /package/templates/{_agents/workflows → engine/.agents/pipelines}/steps//347/244/272/344/276/213-/351/203/250/347/275/262/351/252/214/350/257/201.md" +0 -0
  984. /package/templates/{_agents → engine/.agents}/scripts/git-core.mjs +0 -0
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: session-resume
3
+ description: Session re-entry and interruption handoff — when taking over, switching worktrees, or continuing after compression/new session, rebuild the current state from machine facts before acting; for use by the main agent before starting work at any level.
4
+ ---
5
+
6
+ # session-resume — Session re-entry and interruption handoff
7
+
8
+ ## Triggers
9
+
10
+ - New session / continuing an existing task after context compression; taking over someone else's branch or worktree.
11
+ - The user asks "where did we get to / what is still uncommitted".
12
+ - Before acting you find the working tree dirty but cannot tell who owns the changes.
13
+
14
+ ## 1. Rebuild (machine facts first, not memory)
15
+
16
+ Run in order, all read-only:
17
+
18
+ | Question | Command | What to read |
19
+ |---|---|---|
20
+ | Where am I | `node .agents/skills/session-resume/scripts/worktree-audit.mjs` (classification + cleanup suggestions, read-only) | main / active / cleanable / stale, all at once |
21
+ | What is unsaved | `git status --porcelain -uall` + `git stash list` | untracked files and stashes (easiest to miss) |
22
+ | What is in flight | active states in `workflow/{plans,specs,intents,incidents}` + the last run in `.agents/cache/pipeline-runs/*.json` | task-list checkbox state, stage progress of orchestration runs |
23
+ | Where was the last green | last row of `.agents/verifications.jsonl` (pinned `headShort` + 24h window) | whether the current HEAD already has green evidence |
24
+
25
+ > The single source for L2/L3 plan checkbox alignment = "Session re-entry" in the Build chapter of `.agents/commands/stages.md`; this skill does not copy it, only supplements the L1 and cross-worktree cases.
26
+
27
+ ### 1.5 Dream report loading (if present)
28
+
29
+ If `tmp/dream-report-*.md` or `tmp/dream-judge-brief-*.md` exists (gitignored runtime state; if deleted it can be rebuilt from git + the ledger), load it per `.agents/skills/dream/SKILL.md`:
30
+
31
+ 1. Read the latest report and AI Judge brief;
32
+ 2. Delegate independent-reviewer to verify the AI Judge samples;
33
+ 3. Write verification conclusions back to papercuts / correction notes (no auto commit / push).
34
+
35
+ ## 2. Align (stop first on mismatch)
36
+
37
+ - Checked but uncommitted / committed but unchecked / changes of unknown origin in the worktree → confirm ownership before continuing; do not overwrite.
38
+ - Across worktrees: uncommitted changes **do not** follow automatically. Compare the two trees with `git diff | sha1sum` to confirm whether they are the same set of changes, avoiding a double commit.
39
+ - Two branches pointing at the same commit but each with its own changes = two independent worktrees, not sharing.
40
+
41
+ ## 3. Output (4-line brief, conclusion first)
42
+
43
+ ```
44
+ Location: <worktree> @ <branch> (<headShort>), ahead/behind
45
+ Unsaved: <N modified / M deleted / K untracked / stash count>
46
+ Next: <next unchecked item in the active plan, or next stage of the run>
47
+ Blocked: <the single item requiring a user decision; write "none" if none>
48
+ ```
49
+
50
+ ## 4. Interruption handoff (pause)
51
+
52
+ Write `.agents/cache/handoff.md` (gitignored, local runtime state, disposable; git is the truth):
53
+
54
+ ```
55
+ Date / branch / worktree / HEAD
56
+ In-flight task: <workflow file>
57
+ Completed: <checked items>
58
+ Next: <first item>
59
+ Uncommitted: <file list + ownership>
60
+ Blocked: <none / item>
61
+ ```
62
+
63
+ On resume, read it first, then verify per §1; on mismatch, git wins, and write the handoff back.
64
+
65
+ ## Red lines
66
+
67
+ - Do not continue from memory; do not overwrite uncommitted changes of unknown origin.
68
+ - Do not auto commit / push WIP; saving to disk is not committing and requires an explicit user request.
69
+ - Do not treat `.agents/cache/` as authoritative: after deletion it must be rebuildable from git + the ledger.
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: shipyard-workflow-closeout
3
+ description: Shipyard.Material close-out sequence — verify --scope, acceptance checklist, closeout.mjs writing terminal state/index/commit, machine gates and failure recovery. Used to bring workflow documents to done/closed.
4
+ ---
5
+
6
+ # Shipyard.Material close-out confirmation gate operation sequence
7
+
8
+ ## Goal
9
+ Bring approved workflow documents to terminal state and leave auditable verification evidence, confirmation shards, and an index.
10
+
11
+ ## Trigger conditions
12
+ - `workflow/{intents,specs,plans,incidents}` documents are to enter `done` or `closed`.
13
+
14
+ ## Prerequisites
15
+ `approved` (incident `fixed`) is already in the current branch's git history. If still `draft` or `open`, first `confirm-doc` to `approved` / `fixed` and commit separately, then run the close-out below.
16
+
17
+ **L1 single-commit exception (from 2026-11-08 batch 2-D, `new-task.md` fast lane step 6)**: after L1's two consecutive approved→done hops, plan(done) + code + confirmation shard + verify evidence **go into the repository in the same commit** — approved need not be committed separately first, and this skill and closeout.mjs are **not used** (its candidate path list does not include product code, and the foreign-path guard rejects it); commit directly with git. Two hops for the same document may use the same release utterance; reuse across documents is forbidden. This skill remains only for "plan independent close-out" (code already committed in a previous commit) and L2/L3 / incident scenarios.
18
+
19
+ The status line is changed only by `confirm-doc.mjs`. Proxy recording uses the user's original utterance in the conversation. Commits do not use `--no-verify`. Self-done L1 does not write result lines into `workflow/delegations.md`; delegated tasks and self-done L2/L3 still leave traces per `stages.md` Test §5. **Way out when the commitment surface is rewritten**: `confirm-doc.mjs <doc> --reconfirm --delegated "<user's original utterance>"` — re-records the fingerprint and commitment-surface fingerprint, status remains approved (the status line is still written by the script, do not hand-edit frontmatter).
20
+
21
+ ## Execution sequence
22
+
23
+ ### 0. Close-out self-check (former check-loop §1/§3x hard responsibilities pushed down, 2026-10-21 gate minimization batch 2)
24
+ Check four items against the document family to close; if any is missing → fill it first before closing, never write done with gaps. Items 1 (L2/L3), 2, 3 (L2/L3 intent) have been moved earlier to machine enforcement at the `confirm-doc.mjs` close-out action (2026-11-08 closeout-skill-hardening) — humans only fill legacy stock and out-of-specialty cases; when the script rejects, fill per the error:
25
+
26
+ 1. **Pairing self-check**: sibling documents of the same family present — L2/L3 intent must have same-named spec and plan (confirm-doc's `specConfirmed` / `planConfirmedFor` hard gates); intent (including legacy L1) must have a same-named plan; incident must have a same-named plan (L2/L3 additionally must have a same-named spec). L1 pairing remains a self-check: 2026-10-21 gate minimization downgraded the pairing hard gate to WARN, not re-hardened here.
27
+ 2. **incident trio** (when closing an incident): `## 复盘三件套` section contains `1. 结构性修复 / 2. 防复发验证 / 3. 规范条目` all three + "whether a new intent is needed" line; if "yes" → the referenced intent path exists. Criterion single source `stage-gates.mjs / incidentTrioGate`, hard-blocked by confirm-doc for →fixed/→closed; legacy documents before the 2026-11-09 first-anchor addition and documents declaring `流程: legacy` / `存量确认态豁免(` remain manual self-check (same criteria).
28
+ 3. **L2/L3 review context required**: persisted line format `- 独立复核:…(复核上下文:<session/subagent id>)`, starting with `- 独立复核:` and containing "复核上下文:"; L2/L3 intent→done hard-blocked by confirm-doc's `reviewLineFor`, spec/plan and L1 remain self-check. If missing → **HALT**: go back to `.agents/commands/stages.md` Test §4 to add the independent review, persist that line, then close.
29
+ 4. **Commitment surface not rewritten (new 2026-10-27)**: if the **commitment surface** (criteria text / red lines / goal / change plan) was changed after approval, the user must **nod again** before close-out — run `node .agents/scripts/confirm-doc.mjs <doc> --reconfirm --delegated "<user's original utterance>"` to re-record the commitment-surface fingerprint (does not advance status). **Checking acceptance + evidence backfill / `确认结果` / review-line anchor changes do not count as commitment changes** (normalized; normal close-out unaffected).
30
+
31
+ Completion criteria: four items pass; machine gates per confirm-doc rejection messages, human self-check items verified one by one.
32
+
33
+ ### 1. Verification
34
+ Run `node .agents/scripts/verify.mjs --scope`. If just run in fast lane step 5 it can be reused; criteria no longer rely on memory: when the all-green line is persisted record `dirty` (snapshot of dirty paths under `backend/` `frontend/` at that time); at close-out confirm-doc compares current business dirty paths — business changes appearing after verify are judged stale evidence (24h window as before). Legacy green lines (without a dirty field) keep the original criteria.
35
+
36
+ Completion criteria: one exit code 0, and not judged "evidence stale" at close-out (if judged, rerun verify to refresh the snapshot). When scope judgment needs full coverage the script falls back itself; do not hand-edit `workflow/verify-evidence.md`. Ordering: the verify green line must be produced **before** the done transition (the dirty snapshot records current business dirty paths; code from the same-batch L1 single commit is already in the working tree at verify time, a path the green line has seen, so it is not judged stale).
37
+
38
+ Scope reconciliation (advisory, 2026-11-11 dev-tour wiring): run `node .agents/scripts/gen-dev-tour.mjs workflow/plans/<name>.md --scope-report` — when "actual changes outside the document" is non-empty, explain or backfill the plan before closing (same criteria as dev-tour trigger conditions; complements the `check-scope.mjs` out-of-scope hard gate, here only prompts and never blocks, always exit 0).
39
+
40
+ ### 2. Check acceptance
41
+ In the document check each acceptance item and write evidence, fixed format: `- [x] acceptance item` with "证据:<command output / path / verification record>" on the same line or immediately following continuation line. Criterion single source `stage-gates.mjs / acceptanceEvidenceGate` (close-out format gate): unchecked items, checked items missing the "证据:" annotation, and L2/L3 specs without a "验收判据" data row are all rejected at confirm-doc. L1 checks the plan. L2/L3 new requirements check the intent. Fixes check the incident, path is `open` → `fixed` → `closed`.
42
+
43
+ Completion criteria: every acceptance item points to evidence (command output, path, or verification record); for the L1 single commit, checking and evidence backfill must be completed **before commit** (checks go into the same commit's plan(done) blob).
44
+
45
+ **Check semantics (criteria declaration, 2026-11-10)**: document checks fall into three classes; done is unrelated to total check count — ① task-breakdown checks = process trace / session re-entry anchor (e.g., `stages.md` §1 shortcut check reads check state to align progress); not all checked ≠ not complete, not a reason to withhold close-out; ② entry red-line questionnaires are negative declarations; L1 all unchecked is the correct "not touched" state; ③ the only check criterion for done = acceptance criteria section each `[x]` cleared + evidence line (this section's acceptanceEvidenceGate). Fabricating backfilled checks for "tidiness" is forbidden.
46
+
47
+ ### 3. Proxy-record terminal state
48
+ First choice is one call `node .agents/scripts/closeout.mjs <doc> --delegated "<user's original utterance>"` (chains §3–§5; usage and failure recovery see §5.1); the three steps below are the manual equivalent path.
49
+
50
+ Manual proxy record: `node .agents/scripts/confirm-doc.mjs <doc> --delegated "<user's original utterance>"`.
51
+
52
+ Incident from `fixed` to `closed` run once more. When spec is marked `done`, step 1's all-green evidence already exists.
53
+
54
+ Completion criteria: target document status is `done` or `closed`, body remains unchanged after this proxy record.
55
+
56
+ ### 4. Index
57
+ Run `node .agents/scripts/gen-workflow-index.mjs`.
58
+
59
+ Completion criteria: `workflow/INDEX.md` regenerated from disk.
60
+
61
+ ### 5. Commit
62
+ `git add` these paths: `.agents/confirmations.d/<document basename>.jsonl`, `workflow/INDEX.md`, `workflow/verify-evidence.md`, and the closed documents. Add `.agents/confirmations.jsonl` only if this diff touched it.
63
+
64
+ Before commit inspect that shard's `git diff`, keep only this session's confirmation lines. `closeout.mjs` has automatically added per this list and checks that the staging area contains only candidate paths (any other in-flight change = reject); commits do not use `--no-verify`.
65
+
66
+ Commit message: `docs(workflow): <batch> close-out`.
67
+
68
+ Completion criteria: above paths committed, hooks pass.
69
+
70
+ ### 5.1 Single call and failure recovery (re-entry)
71
+
72
+ `node .agents/scripts/closeout.mjs <doc> --delegated "<user's original utterance>" [--msg "<commit subject>"] [--dry-run]`
73
+
74
+ Chain order: confirm-doc writes terminal state → gen-workflow-index regenerates → git add fixed path list → git commit. Incident's two hops run once each (`fixed` and `closed`). `--dry-run` reports only current status / next hop / candidate path changes; no state, no write, no commit.
75
+
76
+ On any step failure stop, fix the cause then **rerun the same command** (idempotent: terminal state skips proxy record, index generation idempotent, no staged changes skips commit):
77
+
78
+ - confirm-doc rejects: that document not recorded, not written; fill per the error (pairing / trio / review line / acceptance evidence / delegation ledger) then rerun.
79
+ - Evidence stale: rerun `verify.mjs --scope` to refresh the dirty snapshot then rerun.
80
+ - Commitment-surface fingerprint mismatch: first `confirm-doc.mjs <doc> --reconfirm --delegated "<user's original utterance>"` to re-nod, then close out.
81
+ - Staging area contains foreign paths: the script rejects the commit and lists them; commit or revert these paths separately then rerun (proxy record and index already done; rerun only commits).
82
+ - Hook rejects the commit: fix the hook cause then rerun, do not use `--no-verify`.
83
+
84
+ > L1 single commit does not use this entry (see "Prerequisites" exception) — that path has only one git commit and no separate close-out commit.
85
+
86
+ ### 6. Backfill feature docs
87
+
88
+ Write this behavior change into the corresponding living doc, and leave a pointer in plan / incident; keep only one doc per feature:
89
+
90
+ | Change type | Backfill target |
91
+ |---|---|
92
+ | User-visible interaction / path | `.agents/skills/verify-ui/features/<feature>.md` |
93
+ | Contract / rule / data criteria | Amend the original spec in place (`workflow/README.md` spec lifecycle) |
94
+ | Anti-recurrence assertion | Corresponding module section of `workflow/regression-checklist.md` |
95
+ | Architecture / approach | `wiki/开发方案/` |
96
+
97
+ Append only change facts and evidence pointers, do not copy the whole doc; backfill goes with the close-out commit. If no corresponding doc exists, create one with the feature key in the topic.
98
+
99
+ ### 7. Recipe recovery (long tasks / detours, not incidents)
100
+
101
+ Criteria (any): the same action repeated $\ge 2$ times in this session; the same spot reworked $\ge 2$ times; $\ge 2$ rounds probing to locate an entry or environment.
102
+
103
+ Action: write the recipe back to one authoritative file — prefer editing existing command / skill / role text, do not create a new skill. Placement level per `.agents/skills/papercut-fix/SKILL.md` §0 ladder; this loop usually lands at level 5 (text).
104
+
105
+ Wording: one trigger condition + one action step + one identifiable verification; cite this session's blocker, generic advice forbidden.
106
+
107
+ Do not: one-off environment failures (go to `.agents/notes/runtime-env.local.md` or papercuts `[env]`); incidents follow `.agents/commands/maintain.md` trio.
108
+
109
+ Commit: `docs(engine)` separate commit, no business code.
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: show-me-your-work
3
+ description: Decision trail for long/unattended runs — append-only TSV, one row per decision (what/why/evidence/result), evidence is pointers not paragraphs; use for overnight, multi-stage, or post-departure review.
4
+ ---
5
+
6
+ # show-me-your-work — Decision trail
7
+
8
+ ## Triggers
9
+
10
+ - Unattended / overnight / multi-stage long runs (`autonomous-run`, `pipeline-run`).
11
+ - The user says "I'm leaving / I'll trust it when I'm back / show me when it's done".
12
+ - Changes span multiple units and afterwards need a reviewable decision chain.
13
+
14
+ ## Format
15
+
16
+ A single TSV, one row per decision. Keep cells single-line; evidence is a pointer, not a paragraph.
17
+
18
+ ```
19
+ ts phase decision why evidence result
20
+ ```
21
+
22
+ - **ts**: ISO8601.
23
+ - **phase**: phase or workflow.
24
+ - **decision**: what was chosen/done, one line.
25
+ - **why**: the reason, in plain language; if it is principle-driven, say so plainly, do not pile on jargon.
26
+ - **evidence**: a provable pointer—commit SHA, PR number, `file:line`, artifact/trace/screenshot path. Paragraphs forbidden.
27
+ - **result**: the outcome or predicate state—`tests green` / `reverted` / `pixel-diff 0` / `INCONCLUSIVE` / `open`.
28
+
29
+ Template: `.agents/skills/show-me-your-work/references/decision-log-template.tsv`.
30
+
31
+ ## Recording rules
32
+
33
+ - **append-only**: do not delete bad rows; append a supersede row; never edit/delete history.
34
+ - Record only decision points and checkpoints: which fork was chosen, unit completion and its verification result, pivot/revert and its trigger, exposed blockers, gates fixed. Do not record trivial actions.
35
+ - Loop runs: one row per round.
36
+ - One run = one agent session (including follow-up rounds). Takeover / switching sessions / a new chat = a new run; the first row's phase of a new run is `start`, and name this run in evidence (e.g., agent id).
37
+ - Prefer evidence produced by **committed scripts** over hand-rolled one-off commands ("raise the ladder before writing prose").
38
+
39
+ ## Storage
40
+
41
+ - By default this is a work product, not committed: `decisions.tsv` or `.audit/<task-slug>.tsv`, kept outside git.
42
+ - Commit only when "the reviewer needs this trail to trust the result" (large changes / unattended / spanning multiple PRs).
43
+
44
+ ## Wrap-up audit
45
+
46
+ Before handing back, reconcile against this run's transcript: does each row correspond to a real decision/action; can the evidence be resolved and does it prove that row; forks/pivots that affected work but were not recorded are gaps—add them. The audit does not change the story—supersede bad rows with a new row.
47
+
48
+ ## Cross-model review
49
+
50
+ Before handing back, have a subagent on a **different model tier** read the trail + transcript and flag what the user should notice: weak/missing evidence, verification skipped or only verbal, decisions that look risky in hindsight, gaps a casual scan would miss. End the reply with an `Attention` section whose first line is `reviewed by <model>`; `No flags` is a legal value.
51
+
52
+ ## Where it lives in this repo
53
+
54
+ - `autonomous-run`: add a "decision trail" clause when establishing the contract.
55
+ - `pipeline-run`: record one row per work-order sign-off.
56
+ - `workflow/delegations.md`: delegation results still go in the ledger; this TSV is the per-run decision chain and does not replace the ledger.
57
+ - Append a row: `node .agents/skills/show-me-your-work/scripts/decision-log.mjs <logfile> <phase> <decision> <why> <evidence> <result>` (auto ts, header on first use, sanitize tabs/newlines, escape a leading `=+-@`).
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: tfs-pr
3
+ description: Internal self-hosted TFS / Azure DevOps Server PR skill, project-agnostic — auto-detects the git repository and remote to derive collection/project/repo, guides creation and saves an env var when PAT is missing; query PR / create PR (context pulls diff to distill title and description) / update PR description / conflict pre-check and worktree-isolated resolution, via REST API + PAT (the az devops extension rejects http organization URLs, so az is unavailable). Command entry .agents/skills/tfs-pr/scripts/tfs-pr.mjs.
4
+ ---
5
+
6
+ # tfs-pr — Internal TFS / Azure DevOps Server PR (project-agnostic)
7
+
8
+ Zero project assumptions: if the remote is in TFS / Azure DevOps form (path contains `_git`), or a collection URL can be provided, it is usable. The skill directory is self-contained. Host side holds only pointer shells (this repo only `.codebuddy`; the `.trae` shell was removed 2026-11-08); main-copy changes carry no synchronization obligation. Below, `tfs-pr` refers to `node .agents/skills/tfs-pr/scripts/tfs-pr.mjs`.
9
+
10
+ ## Trigger / do not trigger
11
+ - Trigger: internal TFS transactions such as "check PR / any conflicts", "add / update PR description", "resolve PR conflicts"; `az devops login` reporting "Refusing to attach credentials to an invalid Azure DevOps organization URL" → switch to this skill, do not retry az.
12
+ - Trigger (PR creation class): when the host has a unique PR entry convention (e.g., Shipyard.Material's `pr-create.mjs`), "create PR / push and create PR" **does not directly trigger this skill** — PR creation only goes through the host's unique entry `node .agents/scripts/pr-create.mjs` (which internally calls `tfs-pr create`); agents are forbidden to bypass the host entry and call `tfs-pr create` directly. Hosts without this convention may keep direct triggering. (This repo's former review pre-step was retired to a manual tool on 2026-11-09: panel review runs manually on demand, see `.agents/commands/pr-review.md`.)
13
+ - Do not trigger: GitHub / GitLab and other public hosted PRs; ordinary code review, commit messages.
14
+
15
+ ## 0. Prerequisite probing
16
+ ```bash
17
+ git rev-parse --is-inside-work-tree # non-zero → not a git repository, stop and inform
18
+ tfs-pr target # base/project/repo/tokenUrl/prPage, zero requests, no PAT needed
19
+ ```
20
+ - `target` errors carry remediation: ask the user for a collection URL (form `http://<host>:<port>/tfs/<collection>`), place per `--base` (single run) / `TFS_BASE` (env var) / `git config tfs-pr.base` (repo level); override project / repo with `--project` / `--repo`; non-origin remotes use `--remote` / `TFS_REMOTE`.
21
+ - Recognized remote forms: `ssh://host:22/tfs/COLL/PROJ/_git/R`, `git@host:tfs/...` (scp style), `https://host/tfs/COLL/PROJ/_git/R`, root mount (no /tfs), short form (project==collection), `dev.azure.com` / `*.visualstudio.com`.
22
+ - ssh remote web base defaults to `http://<host>:8080`, overridden by `TFS_WEB_SCHEME` / `TFS_WEB_PORT`; old TFS set `TFS_API_VERSION=4.1` (default 6.0); target branch can be fixed with `git config tfs-pr.target <branch>`.
23
+
24
+ ## 1. PAT: read → guide → use
25
+ Store only in environment variables (never in argv / conversation / prints): single server uses global `TFS_PAT`; multiple servers store per base hostname `TFS_PAT_<HOST>` (non-alphanumerics become `_` uppercase, e.g., `TFS_PAT_10_0_0_1`, matched preferentially).
26
+ - Probe and guide in one command: `tfs-pr setup` — prints process/user-level status of the two variables, dynamic portal `<base>/_usersSettings/tokens` (hardcoding site IP forbidden), setx command, whoami self-check. Not configured → give the user the three steps printed by setup: portal generation (scopes check Code Read&Write + Pull Request Read&Write + **Work Items Read** — required for verifying linked work items after creation; without this scope the verification step gets 401) → `setx <variable> "<PAT>"` (effective in a new terminal) → `tfs-pr whoami` real verification (non-empty length ≠ valid PAT).
27
+ - After setx the current process does not inherit: read from registry and feed the script, the value must not appear on the command line: `TFS_PAT="$(powershell -NoProfile -Command "[Environment]::GetEnvironmentVariable('TFS_PAT','User')")" tfs-pr …` (same for split variables).
28
+ - Fallback `--pat-file` only when the user explicitly does not use env vars; clean up with `rm -f`; if PAT leaks into conversation/logs/history → at wrap-up must remind to revoke and recreate in the portal.
29
+
30
+ ## 2. Commands
31
+ | Action | Command | Description |
32
+ |---|---|---|
33
+ | Identify target | `tfs-pr target` | base/project/repo/tokenUrl/prPage |
34
+ | PAT guidance | `tfs-pr setup` | portal address + persistence + self-check commands |
35
+ | Verify PAT | `tfs-pr whoami` | current identity + base/project/repo + PR page |
36
+ | List PRs | `tfs-pr list [--source <b>] [--target <b>] [--status active\|all] [--json]` | `#12 [active/succeeded] feat/x → develop <title>` |
37
+ | Get one | `tfs-pr get <id> [--json]` | status/mergeStatus + PR page URL; JSON contains the full description |
38
+ | Pre-create context | `tfs-pr context [--source <b>] [--target <b>] [--no-fetch] [--patch] [--json]` | commits/files/stat/overlap/conflicts/push/dirty in one shot |
39
+ | Create PR | `tfs-pr create [--source <b>] [--target <b>] --title <t> --body-file <f\|-> [--dry-run] [--json]` | `CREATED #id …` or idempotent `EXISTING #id` |
40
+ | Update description | `tfs-pr desc <id> --body-file <f\|-> [--dry-run] [--json]` | `UPDATED #id …` (already read back and compared) |
41
+ | Conflict pre-check | `tfs-pr conflicts <id> [--no-fetch] [--json]` | fetch conflicts/overlap/mergeBase by PR branch |
42
+ | Local conflict pre-check | `tfs-pr conflicts --source <b> --target <b> [--no-fetch] [--json]` | no PAT, no PR id needed |
43
+
44
+ - source defaults to current branch (detached HEAD requires `--source`); target defaults to `--target` / `TFS_TARGET` / `git config tfs-pr.target` / remote HEAD; branch names need no `refs/heads/` prefix.
45
+ - `--body-file -` reads body from stdin, no temp file; body UTF-8 (BOM auto-stripped), Chinese and line breaks as-is.
46
+ - `--dry-run` zero requests and no PAT needed; exit code 0 success (including EXISTING) / 1 HTTP·API·network error / 2 usage·configuration error.
47
+
48
+ ## 3. Create PR: distill title and description from the diff
49
+ 1. `tfs-pr context --target <target branch> --json` (auto-fetch by default; `--no-fetch` only offline or fresh refs). Output: commits, files, stat/shortstat, overlap (both sides changed), conflicts (merge-tree; `conflictsSupported=false` means git does not support pre-check, do not treat as no conflict), push (unpushed/no remote branch), dirty (uncommitted changes).
50
+ 2. Pre-create checks: `push.unpushed` or no remote branch → normal `git push` first (if blocked by gates fix the root cause; `--no-verify` / force push forbidden); `dirty` → confirm whether uncommitted changes enter the PR, do not silently ignore; `conflicts.files` non-empty → resolve per §5 first; `overlap` non-empty but no textual conflict → manually review both changes for semantic confirmation.
51
+ 3. To see specific changes, read key files or `git diff origin/<target branch>...HEAD` (`--patch` may attach the full diff).
52
+ 4. **Title**: Conventional Commits Chinese `feat(scope): summary` (compound topics joined with `+`, about 70 characters, empty title / PR number forbidden); scope takes the main module/directory, the subject is distilled from the diff's main changes + commits, not a restatement of commit messages.
53
+ - **`#number` prohibition (empirically 2026-10-26)**: in commit messages / PR titles / PR descriptions, **references to PR numbers must always be written "PR 720", never `#720`** — `#N` is work-item linking syntax; pushing automatically links work item N to the commit and PR; PR numbers and work item IDs share the same numeric space, so unrelated work items will definitely collide (PR #719 was once wrongly linked this way). `#N` is used only when genuinely linking a work item. **In PR descriptions, reference other PRs with markdown links** (`[PR 720](<prPage>/<id>)`, `prPage` see `target` output, single-page URL is `pullrequest/<id>`); linking at the first occurrence of a PR number suffices, the rest plain text.
54
+ 5. **Description** (`create` / `desc` both replace the whole segment, must give the complete body; the template is a **default value** — when the host repo already has its own PR body convention, the host convention prevails; check the host's review/merge docs, this template is only a fallback):
55
+ ```markdown
56
+ ## Summary
57
+ - Why the change, what changed (1-4 items, pointing at key modules/files; must come from the actual diff)
58
+
59
+ ## Evidence
60
+ - Tests/builds/manual verification actually run; if not run, explicitly write "not run" and the reason, fabrication forbidden
61
+
62
+ ## Merge Danger
63
+ - Door: impact surface (API / DB / config / permissions / compatibility); write "none" if no risk, omission forbidden
64
+ - Blast Radius: local / module / global
65
+ - Rollback: rollback method and risk
66
+ ```
67
+ Large diff, non-empty overlap, or irreversible change → append `## Tradeoffs`: cite the real shortstat scale + why this is still done.
68
+ 6. `--dry-run` first to verify URL and body, then create officially; `mergeStatus=queued` poll with `get`, `conflicts` go to §5; return the PR page URL to the user.
69
+
70
+ ## 4. Update PR description
71
+ `get <id> --json` read existing → decide replace or supplement (supplement = merge new content into existing, keep useful three sections) → `desc <id> --body-file -` (stdin) or file. **desc replaces the whole segment, it is not an append**; incremental fragments overwriting the original are forbidden. If the source branch has new commits → rerun context before updating the description, to prevent Summary drifting from the actual diff.
72
+
73
+ ## 5. Resolve PR conflicts
74
+ Locate: `tfs-pr conflicts <id> --json` (take branch from PR → fetch → merge-tree + overlap + mergeBase). Server-side conflicts but empty locally → refs stale/server not refreshed, fetch again then `get` confirm, **directly asserting no conflict is forbidden**.
75
+
76
+ Resolve (worktree isolation; do not touch the user's current working area; do not stash/reset the user's uncommitted changes):
77
+ ```bash
78
+ git fetch <remote> <src> <tgt>
79
+ git worktree add <tmp>/pr-<id> -b tfs-pr/<id>-resolve refs/remotes/<remote>/<src>
80
+ cd <tmp>/pr-<id> && git merge refs/remotes/<remote>/<tgt>
81
+ # resolve file by file, preserve both intents; blind --ours/--theirs forbidden; even auto-merged overlaps must pass semantic review (callers/config/migrations/contracts)
82
+ # run project tests/build; stage only resolved files; commit message states which conflicts were resolved — PR numbers must not be written #N (same §3 step 4 prohibition: #N wrongly links unrelated work items, write "PR 720")
83
+ git push <remote> HEAD:<src>
84
+ ```
85
+ - No force push (including `--force-with-lease`, unless the user explicitly confirms); a blocked push = gate enforcement, fix the root cause, `--no-verify` forbidden; if branch policy forbids direct push → stop and report options, do not bypass.
86
+ - fork source branch local fetch failure → ask the user for the source repo or resolve in the source repo, do not guess; PR already completed/abandoned → do not resolve conflicts, report status.
87
+ - Wrap-up delete only worktrees/branches created by this skill: `git worktree remove <tmp>/pr-<id> && git branch -D tfs-pr/<id>-resolve`, touch no user branch/worktree.
88
+ - Recheck: `get <id>` → mergeStatus leaves conflicts (poll queued until converged) before considering complete.
89
+
90
+ ## 6. Error interpretation
91
+ - **Three response judgments** (built into the script; manual troubleshooting in the same order): first judge `status` → then judge `content-type` (`401 + text/html` = missing/wrong credentials, common `TF400813`; direct `JSON.parse` only yields misleading `Unexpected token '<'`, hard parse forbidden) → confirm JSON then parse.
92
+ - `401 JSON` = PAT invalid/expired/insufficient scope (rebuild in portal); `404 JSON` = base points to wrong site/port (e.g., API on 8080 but base points to 80) or project/repo misspelled (check `target`); `EXISTING` = an active PR already exists from the same source→target (switch to `desc` or abandon first); network/TLS errors check VPN/proxy/certificate (`--verbose` prints only URLs, not PAT).
93
+
94
+ ## 7. Wrap-up criteria
95
+ After query/create/update, status/mergeStatus match expectations (desc already read back and compared); **linked work items verified** (`curl -s -u ":$TFS_PAT" "<base>/<project>/_apis/git/repositories/<repo>/pullrequests/<id>/workitems?api-version=6.0"` lists them, verify each against expected work items — this repo defaults to no work-item link, non-empty must be explained; wrong links must be removed in the portal and rechecked as empty; when the PAT lacks the Work Items Read scope this step returns 401 and requires manual portal verification); PR page URL returned to the user; after conflict resolution push succeeds and conflicts no longer appear; temporary body/credential files deleted; PAT not in repository/logs/conversation, leaks reminded to revoke; report PR number, URL, status/mergeStatus, and verification actually performed; if tests were not run, say so explicitly.
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: verify-ui
3
+ description: UI change verification (read-only verification, no dirty data left). First choice chrome-devtools MCP — take_snapshot to explore shape + single-step drive + screenshot evidence; harness .mjs scripts are only a fallback path for regression/unattended runs, and any fallback must record one line of reason in the verification report.
4
+ ---
5
+
6
+ # verify-ui — UI verification guide
7
+
8
+ ## Division of labor
9
+ - This file carries only the method (environment / selection points / evidence / cleanup); the execution contract (environment safety / no self-repair / HALT etiquette / deliverable shape) is single-sourced in `.agents/roles/ui-verifier.md`.
10
+ - Delegated subagents follow the contract; the main agent verifying itself follows this file.
11
+
12
+ ## Trigger conditions
13
+ - User requests: `verify` / `UI verification` / `browser verification`.
14
+
15
+ ## Tool path priority
16
+ - Interactive UI verification defaults to chrome-devtools MCP: the browser instance is reused throughout; first `take_snapshot` to explore shape, then drive single-step, retry locally.
17
+ - harness scripts are used only for: regression / anti-recurrence assets; batch assertion summary + exit-code gates (`makeRecorder`); unattended / pipeline batches.
18
+ - Degradation ladder (established 2026-11-04, revised 2026-11-11): chrome-devtools MCP is the first choice; harness probes are only a fallback path. **Host has no chrome-devtools tools (MCP not installed / not connected)**: when attended, HALT and prompt the user to install / enable chrome-devtools MCP, do not auto-degrade (probes are too slow); only unattended / overnight batches degrade directly to harness headless probes. **MCP installed but not working** (browser cannot start and still fails after handling per runtime-env §6.4 / critical steps blocked by MCP errors): degrade to harness headless probes. Every degradation must record one line of "degradation reason" in the verification report — a probe verification without a degradation reason = path violation, the report is not accepted.
19
+ - Script technical details single source = `scripts/verify/e2e/harness.mjs` (export list: `grep '^export' scripts/verify/e2e/harness.mjs`); when writing scripts import its exports, do not hand-write equivalent logic.
20
+
21
+ ### Capability mapping (harness ↔ MCP)
22
+
23
+ | Goal | MCP | harness |
24
+ |---|---|---|
25
+ | Session seeding | API fetch token → `evaluate_script` write `auth_token` / `auth_user` → `navigate_page reload` | `getToken` + `seedSession` |
26
+ | Navigation / waiting | `navigate_page` + `wait_for` | `goto` / `hardGoto` / `reload` |
27
+ | Shape exploration | `take_snapshot` (a11y tree + uid) | `inventory` / one-off probe |
28
+ | Driving | `click` / `fill` / `press_key` | `clickText` / `setInput` / `pressKey` |
29
+ | Network capture | `list_network_requests` | `installNetCapture` + `apiCalls` |
30
+ | Console capture | `list_console_messages` | `installConsoleCapture` + `consoleErrors` |
31
+ | Metrics / screenshots | `evaluate_script` / `take_screenshot` | `ctx.evaluate` / `ctx.screenshot` |
32
+
33
+ ### Session and capture rules (same criteria for both paths)
34
+ - Reach the FE origin before injection; same-document hash switches do not reload the document, after seeding a full-page reload is required.
35
+ - Default identity = JWT claims of the seeded token; only when testing "an identity different from the token" manually seed `auth_user` (take the login response's `jobNo` / `displayName` / `dept`).
36
+ - Synthetic JWT only applies to pages calling zero-authorization APIs: `exp = Math.floor(Date.now()/1000) + 1800`, never write far-future; after injection go through about:blank and then hard-navigate.
37
+ - If the page issues token-bearing APIs and 401 clears the session back to `/login`: for real data dependencies use account-pool login (account pool single source `.agents/notes/runtime-env.md` §6.1a).
38
+ - Exclude OPTIONS preflight from request counts; assertion counts use API responses, do not count DOM (virtual scrolling / virtual columns render only the visible window).
39
+ - Before asserting "zero console errors", filter the application's own noise (AG Grid license banner, Network Error from API not started); filter by content features, do not use `^` line-start anchors.
40
+
41
+ ### MCP session differences
42
+ - MCP uses a persistent profile (localStorage retained across rounds): clear localStorage before seeding, or pass `isolatedContext` to `new_page`.
43
+ - On "The browser is already running for …chrome-profile" → kill residual processes whose command line contains `chrome-devtools-mcp` (handling recorded in runtime-env §6.4).
44
+ - `take_screenshot`'s `filePath` is limited by the MCP workspace whitelist (some hosts reject both repo paths and session directories, empirically 2026-10-31): when writing is rejected do not retry paths repeatedly, switch to **inline screenshot without `filePath`** for archiving; evidence validity is based on the `.md` report's DOM/API assertions (spec acceptance criteria never recognize image paths anyway).
45
+ - `upload_file` triggering `input[type=file]` may likewise be fully rejected by the whitelist for repo/session paths (empirically 2026-11-07): do not try paths, inject in-page instead — a temporary read-only HTTP server (e.g., `npx serve` on a random port) serves the fixture, `evaluate_script` fetches it into a File, puts it into `DataTransfer`, then `dispatchEvent(new Event('change', {bubbles:true}))` to the antd upload input; before injection record `modalCount` as 1 to prevent stale modal DOM misalignment (MTO modal residual after close previously caused PML injection misalignment; reload clears residue). Verify: the uploaded item tag/preview API receives file rows matching the fixture row count.
46
+
47
+ ## Workflow
48
+
49
+ ### 1. Environment preparation
50
+ - Start API / frontend per `.agents/notes/runtime-env.md`; record all started processes.
51
+ - Multiple worktrees in parallel: set `SHIPYARD_SLOT` so the three port groups API / frontend / CDP shift together (port literal single source `scripts/verify/e2e/ports.mjs`, port table in runtime-env §6.1b).
52
+ - Only harness / fallback paths start their own browser: newer Chromium kernel headless (e.g., Edge `--headless=new`); on the MCP path the browser instance is managed by MCP, do not start another manually.
53
+ - Start long-lived services as separate processes (e.g., PowerShell `Start-Process`); no pipe at the end of the start command.
54
+
55
+ ### 2. Execute verification
56
+ - Select points from the feature map (`features/`); run at least one normal path and one failure/boundary path each (validation / empty state / permissions).
57
+ - Navigation: hash mode uses `goto`; deep links (Query changes) use `hardGoto` (about:blank relay).
58
+ - Data-condition assertions for paginated tables inside modals: click `.ant-pagination-item` page by page, scan all, then merge assertions; do not look only at the first screen.
59
+ - For layout assertions first probe the real DOM (snapshot / probe reading `outerHTML` + `getComputedStyle`); do not infer expected values from CSS source; when unsure use invariants decoupled from spec numbers, downgrade spec reconciliation to a NOTE.
60
+ - Evidence capture: screenshots, network payloads, console logs; record paths in the task document's "Acceptance criteria" item afterwards.
61
+
62
+ ### 3. Cleanup and wrap-up
63
+ - Delete temporary data precisely by the ID returned in the POST response; fuzzy-match deletion forbidden.
64
+ - Close all processes started by this flow.
65
+ - Report by `page / step / expected vs actual / evidence`; append "feature map coverage M/N" (M = features covered this time, N = total `features/` entries) on the last line, listing uncovered items one by one.
66
+ - Record defects only; do not directly fix code.
67
+ - Write the UI verification report to `workflow/evidence/<YYYY-MM-DD>-<topic>.md`: header records environment / reproduction commands, assertion table each row carries a "corresponding acceptance An" column (shape reference `workflow/evidence/2026-10-24-purchase-contract-template-print-ui.md`). A report left in the session or `tmp/` = verification not closed out.
68
+
69
+ ## Feature map (features/)
70
+ - `features/` holds one file per core feature; four sections, none may be missing when creating: reach path / drive / observable end state / Gotchas.
71
+ - Verification and close-out spot checks take coverage from the map; current coverage follows the `features/` directory.
72
+ - Create files synchronously when a new page or new main chain goes live; source waves from `frontend/src/router/index.ts` routes: route exists, map missing = to add; map exists, route missing = to delete or rewrite.
73
+ - Coverage gaps / skeleton: `node .agents/skills/verify-ui/scripts/gen-verify-feature.mjs --check` (or `--json`) lists uncovered routes; `--route <path>` writes only the four H2 sections + TODO skeleton, inventing drive steps forbidden.
74
+ - Monthly drift maintenance: ① take routes / component diffs of the recent month as source waves; ② run verification once only for touched features; ③ fix in at most one commit.
75
+ - For each failure first decide "map drift" or "code defect": the former fixes the map, the latter enters an incident; mixing them is forbidden.
76
+ - Missing prerequisites → record as a failure and write the reason into that feature's Gotchas; weakening the verification path to pass is forbidden.
77
+ - If a page / behavior does not match the map → fix the map first, then conclude.
78
+ - Run `check-regression-consistency.mjs` before close-out: `#/route` / `frontend/src/*` / `workflow/*.md` / `scripts/verify/*.mjs` referenced by the map dangling = red; dangling code symbols are only advisory.
79
+
80
+ ## Technical requirements and constraints
81
+
82
+ ### Shell and processes
83
+ - Protocol prefers HTTP, avoid self-signed certificate interception.
84
+ - "Partial changes take effect" → restart the dev server; single file not taking effect while others are normal → first touch that file.
85
+ - Probes must hit this worktree's dev server: if the vite port is occupied it silently shifts — after starting the service confirm the actual port and run with `E2E_FE_URL=http://localhost:<actual port>`; login-page navigation uses the same `FE` (localStorage is isolated by origin).
86
+ - Truncate output with `| tail -N`, never `| head -N` (SIGPIPE terminates the process before finally, leaving a residual browser occupying the CDP port).
87
+ - Reset the Console / Log collector before every navigation; install the toast observer before navigation actions.
88
+ - The three-piece verification script set is mandatory: `installNetCapture(ctx)`, `seedSession(token, { reload: true })`, `hardGoto(url)`.
89
+ - Wrap the probe body in `try { … } finally { await ctx.close?.() }`; before script start, kill residual processes by `--remote-debugging-port=<port>` for self-healing.
90
+ - Before using `harness.dbQuery`, confirm the database-explorer skill is available on this machine; prefer criteria that can be established without DB connection.
91
+
92
+ ### Assertion summary
93
+ - Wrap the assertion body in try/catch: in catch append a failed assertion (with error message) and count it in the summary, with exit code 1 accordingly; "run halfway + print GREEN + exit code 0" is forbidden.
94
+
95
+ ### DOM location and interaction
96
+ - Form location inside overlays / drawers / modals must always be scoped to the overlay root (e.g., `.pml-detail .ant-form-item`); global `querySelector` / `querySelectorAll` forbidden.
97
+ - Locate input boxes by placeholder within the target container.
98
+ - Normalize both sides of text comparisons with `.replace(/\s+/g,'')` (antd inserts spaces into two-character Chinese buttons).
99
+ - Visibility criterion uses `getClientRects().length > 0` or `getBoundingClientRect().width > 0`; `offsetParent` forbidden (always null under a `position: fixed` ancestor).
100
+ - The `a-select` clear icon renders only on hover: dispatch mouseenter / mouseover first, wait one tick, then click.
101
+ - The antd pagination size-changer dropdown cannot be opened via synthetic events (focus + dispatched keydown Enter is also unstable): the real path = click the combobox uid with the click tool; measure with the invariant "each option `scrollWidth <= clientWidth+1` and dropdown width ≥ widest option scrollWidth"; if the dropdown animation has not finished, measuring yields 0 size, wait ≥600ms before measuring (2026-11-06 PML pagination verification).
102
+ - Small controls inside modals (e.g., paginator) are squeezed out of the a11y snapshot by the large table behind (output over limit truncation makes the uid unavailable): temporarily `setAttribute('aria-hidden','e2e-hide')` on the background table container to shrink the tree, obtain the uid, perform the real click, then remove the attribute; be careful not to hide the modal's own table as well (2026-11-06 PML verification).
103
+ - If an `a-select` cannot be selected via synthetic events → use real mouse + keyboard: CDP `Input.dispatchMouseEvent` opens it, `ArrowDown` + `Enter` selects; between multiple selects press `Escape` first to close the previous dropdown; query options limited to the last visible dropdown (`.ant-select-dropdown:not(.ant-select-dropdown-hidden)`).
104
+ - Locate segmented / radio / tabs by rendered form (e.g., `.ant-radio-button-wrapper`), do not only look for `<button>`.
105
+ - Table selection state: clear leftover checkmarks by deduplicating rows by `data-row-key` and clicking row by row, and execute in two ticks separately from subsequent selection; clicking the header select-all in indeterminate / none state is "select all", not "clear".
106
+ - The first tbody row of an antd table with `:scroll={y}` is `.ant-table-measure-row` (height 0, no `ant-table-cell` class): skip it for row-height / cell measurements.
107
+ - `ctx.evaluate` already returns an object, do not wrap it again in `JSON.parse`.
108
+ - "Back"-type buttons on the detail overlay use `history.back()`: empirically clicking it goes back to the previous step or even `about:blank` (hit during 2026-11-03 purchase order detail verification) — to return to the list use refresh or direct re-navigation; never click "Back" as a close action.
109
+ - Before asserting, confirm the overlay content has rendered (header button group appears): a document created in a parallel session may fail to load detail, leaving only the "Back" button in the overlay (empirically 2026-11-03) — switch to a known sample document, do not judge a feature defect from this.
110
+
111
+ ### AG Grid list page
112
+ - Cell overhead is 32px (padding 15×2 + border 2), not 16 / 24.
113
+ - Measure width with a hidden DOM span (copy `font` / `letter-spacing`), never canvas; fixed width `ceil10(max(header requirement, content p90 requirement) + 32 + 8)`, outliers delegated to `tooltipShowMode:'whenTruncated'`.
114
+ - Judge truncation directly by comparing `.ag-cell`'s `scrollWidth > clientWidth`; measure horizontal overflow with `.ag-center-cols-viewport`, not `.ag-body-viewport`.
115
+ - Under column virtualization columns outside the viewport are not in the DOM: `.ag-header-cell` count ≠ total column count.
116
+ - Nulls rendered as the literal `-` via `valueFormatter`: cell emptiness checks must explicitly exclude `'-'`.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: visual-parity
3
+ description: Visual alignment playbook — for pixel-level alignment of two implementations (prototype / old page / design), fix viewport and data, change only styles, classify differences with evidence; for UI restoration tasks.
4
+ ---
5
+
6
+ # visual-parity — Visual alignment
7
+
8
+ ## Trigger
9
+
10
+ Prototype → implementation, old page → new page, design → page, requiring "looks consistent".
11
+
12
+ ## 0. Fix comparison conditions
13
+
14
+ Same viewport (width/height + DPR), zoom 100%, same theme, same data (seed IDs fixed). Service online and auth per `.agents/skills/verify-ui/SKILL.md` §1; technical details single source `scripts/verify/e2e/harness.mjs`.
15
+
16
+ ## 1. Capture comparison
17
+
18
+ Screenshot the same region on both sides (including boundary elements), named `tmp/e2e-evidence/parity-<topic>-{before,after}.png`. Before screenshotting reset scroll position, disable animations and tooltips.
19
+
20
+ ## 2. Diff classification (count item by item)
21
+
22
+ Spacing / font size and weight / color / layering and shadows / border radius / wrapping and overflow / scrollbars. Rendering noise (font antialiasing, subpixel) listed separately, not counted as to-fix.
23
+
24
+ ## 3. Iterate
25
+
26
+ Change only styles and layout, not data, not backend, do not import prototype fonts. Re-screenshot the same region each round; diff items only decrease, never increase.
27
+
28
+ ## 4. Criteria and evidence
29
+
30
+ To-fix items = 0 counts as aligned; do not claim "consistent" before clearing. Evidence: both sides' screenshot paths + viewport + diff table (item / before / after / status).
31
+
32
+ ## Red lines
33
+
34
+ - Do not weaken the verification path (`.agents/skills/verify-ui/SKILL.md` "weakening the verification path to pass is forbidden").
35
+ - Do not substitute "it looks the same to the eye" for the diff table.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: why
3
+ description: Trace "why it looks like this" — search source history, process trail, domain docs, session records, issues/PRs, and external evidence in parallel, giving a pointer for each finding; use before changing code you do not understand.
4
+ ---
5
+
6
+ # why — Why it looks like this
7
+
8
+ ## Triggers
9
+
10
+ - "Why was it designed this way / why is this flag off / why was this option chosen".
11
+ - You are about to change code you do not understand and first need to know why it exists.
12
+ - During review you are uneasy about the intuition "this line cannot be deleted" and need evidence.
13
+
14
+ ## Core
15
+
16
+ **No memory, no guessing.** Search in parallel by evidence category, and give every conclusion a pointer (`file:line` / commit / doc / issue / metric). Distinguish **measured / inferred / guess**; not finding anything is also an answer—write "no record", do not invent.
17
+
18
+ ## Evidence categories (search in parallel)
19
+
20
+ | Category | Entry point in this repo |
21
+ |---|---|
22
+ | Source and history | `git log -S<term>` (pickaxe), `git log --follow -- <path>`, `git blame`, `xd://lsp` references |
23
+ | Process trail | `workflow/{intents,specs,plans,incidents}`, `workflow/archive/`, `workflow/delegations.md`, `workflow/papercuts.md`, `workflow/regression-checklist.md` |
24
+ | Domain knowledge | `wiki/`, `node .agents/scripts/kb-search.mjs <term>` |
25
+ | Session records | `history://`, `archive` (eval global), `.agents/skills/session-resume/SKILL.md` |
26
+ | Issue / PR | `issue://<N>`, `pr://<N>` (when a GitHub remote exists) |
27
+ | External docs | `microsoft_docs_search`, `web_search`, `read <url>` |
28
+ | Runtime / monitoring | available MCPs (chrome-devtools, context-mode, etc.), logs, `workflow/metrics.md` |
29
+
30
+ ## Steps
31
+
32
+ 1. **Break down the subject**: split the question into searchable terms—symbol names, file paths, feature names, decision keywords. If one term finds nothing, try synonyms/Chinese/English.
33
+ 2. **Local evidence**: run `node .agents/skills/why/scripts/why-evidence.mjs <term> [--path <file>]` to get pickaxe, path history, workflow/wiki hits, and kb-search summaries in one pass.
34
+ 3. **External evidence**: search issues/PRs, external docs, and monitoring in parallel via available MCPs; skip if unavailable—do not pretend you searched.
35
+ 4. **Synthesize**: give the conclusion first (why), then the evidence chain (each claim with a pointer), and finally unknowns/conflicts.
36
+ 5. **Mark certainty**: `measured` (ran it / read the original), `inferred` (derived from evidence), `guess` (no evidence). Predictions and unobserved causes are always `guess`.
37
+ 6. **Timeline** (optional): when a decision spans multiple commits/docs, order a chain by time and mark the turning points.
38
+
39
+ ## Output format
40
+
41
+ - **Conclusion**: one sentence answering "why".
42
+ - **Evidence chain**: each = claim + pointer (`file:line` / commit / doc / issue) + certainty.
43
+ - **Unknowns / conflicts**: parts that cannot be found, evidence that contradicts itself, or that needs the owner to decide.
44
+ - **Implications for the change**: whether this can be touched, and what must hold before touching it.
45
+
46
+ ## Where it lives in this repo
47
+
48
+ - Takeover/continuation: after `session-resume` rebuilds the current state, use this skill to fill in "why".
49
+ - Bug fixing: before `diagnosing-bugs` finds the root cause, confirm why this code exists.
50
+ - Review: "Impact proof" in `review.md` uses `blast-radius`; this skill adds "historical intent".
51
+ - Evidence collector: `.agents/skills/why/scripts/why-evidence.mjs` (collects only, does not conclude).
52
+
53
+ ## Boundaries
54
+
55
+ - This skill answers "why it looks like this"; `blast-radius` answers "what it will break"; `how` answers "how it works". The three do not replace each other.
56
+ - Do not write speculation as fact; without evidence, write "no record".