bigpowers 2.86.5 → 2.86.7

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 (548) hide show
  1. package/.agents/skills/commit-message/SKILL.md +1 -1
  2. package/.agents/skills/evolve-skill/SKILL.md +1 -1
  3. package/.agents/skills/guard-git/SKILL.md +8 -8
  4. package/.agents/skills/kickoff-branch/SKILL.md +1 -1
  5. package/.agents/skills/migrate-spec/SKILL.md +52 -6
  6. package/.agents/skills/plan-work/SKILL.md +17 -5
  7. package/.agents/skills/publish-package/SKILL.md +15 -5
  8. package/.agents/skills/release-branch/SKILL.md +12 -8
  9. package/.agents/skills/seed-conventions/SKILL.md +20 -10
  10. package/.agents/skills/smoke-test/SKILL.md +9 -5
  11. package/.agents/skills/validate-contracts/SKILL.md +15 -6
  12. package/.agents/skills/wire-ci/SKILL.md +12 -5
  13. package/.agents/skills/write-document/SKILL.md +31 -5
  14. package/.cline/skills/align-grid/SKILL.md +110 -0
  15. package/.cline/skills/assess-impact/SKILL.md +91 -0
  16. package/.cline/skills/audit-code/SKILL.md +184 -0
  17. package/.cline/skills/audit-plan/SKILL.md +89 -0
  18. package/.cline/skills/build-epic/SKILL.md +105 -0
  19. package/.cline/skills/change-request/SKILL.md +121 -0
  20. package/.cline/skills/commit-message/SKILL.md +140 -0
  21. package/.cline/skills/compose-workflow/SKILL.md +82 -0
  22. package/.cline/skills/context7-mcp/SKILL.md +55 -0
  23. package/.cline/skills/craft-skill/SKILL.md +196 -0
  24. package/.cline/skills/deepen-architecture/SKILL.md +260 -0
  25. package/.cline/skills/define-language/SKILL.md +80 -0
  26. package/.cline/skills/define-success/SKILL.md +12 -0
  27. package/.cline/skills/delegate-task/SKILL.md +91 -0
  28. package/.cline/skills/deploy/SKILL.md +198 -0
  29. package/.cline/skills/design-interface/SKILL.md +97 -0
  30. package/.cline/skills/develop-tdd/SKILL.md +416 -0
  31. package/.cline/skills/diagnose-root/SKILL.md +24 -0
  32. package/.cline/skills/diagnose-stall/SKILL.md +54 -0
  33. package/.cline/skills/dispatch-agents/SKILL.md +118 -0
  34. package/.cline/skills/edit-document/SKILL.md +23 -0
  35. package/.cline/skills/elaborate-spec/SKILL.md +101 -0
  36. package/.cline/skills/enforce-first/SKILL.md +45 -0
  37. package/.cline/skills/evolve-skill/SKILL.md +55 -0
  38. package/.cline/skills/execute-plan/SKILL.md +61 -0
  39. package/.cline/skills/extract-design/SKILL.md +132 -0
  40. package/.cline/skills/find-way/SKILL.md +191 -0
  41. package/.cline/skills/fix-bug/SKILL.md +67 -0
  42. package/.cline/skills/gate-trace/SKILL.md +92 -0
  43. package/.cline/skills/generate-allure-report/SKILL.md +285 -0
  44. package/.cline/skills/grill-me/SKILL.md +108 -0
  45. package/.cline/skills/grill-with-docs/SKILL.md +53 -0
  46. package/.cline/skills/guard-git/SKILL.md +231 -0
  47. package/.cline/skills/harden-vps/SKILL.md +291 -0
  48. package/.cline/skills/hook-commits/SKILL.md +94 -0
  49. package/.cline/skills/inspect-quality/SKILL.md +106 -0
  50. package/.cline/skills/investigate-bug/SKILL.md +127 -0
  51. package/.cline/skills/kickoff-branch/SKILL.md +143 -0
  52. package/.cline/skills/maintain-wiki/SKILL.md +64 -0
  53. package/.cline/skills/map-codebase/SKILL.md +71 -0
  54. package/.cline/skills/migrate-spec/SKILL.md +908 -0
  55. package/.cline/skills/model-domain/SKILL.md +232 -0
  56. package/.cline/skills/orchestrate-project/SKILL.md +174 -0
  57. package/.cline/skills/organize-workspace/SKILL.md +164 -0
  58. package/.cline/skills/plan-refactor/SKILL.md +87 -0
  59. package/.cline/skills/plan-release/SKILL.md +145 -0
  60. package/.cline/skills/plan-tests/SKILL.md +75 -0
  61. package/.cline/skills/plan-work/SKILL.md +272 -0
  62. package/.cline/skills/publish-package/SKILL.md +338 -0
  63. package/.cline/skills/quick-fix/SKILL.md +114 -0
  64. package/.cline/skills/release-branch/SKILL.md +302 -0
  65. package/.cline/skills/request-review/SKILL.md +113 -0
  66. package/.cline/skills/research-first/SKILL.md +87 -0
  67. package/.cline/skills/reset-baseline/SKILL.md +21 -0
  68. package/.cline/skills/respond-review/SKILL.md +71 -0
  69. package/.cline/skills/run-benchmark/SKILL.md +85 -0
  70. package/.cline/skills/run-evals/SKILL.md +80 -0
  71. package/.cline/skills/run-planning/SKILL.md +101 -0
  72. package/.cline/skills/scope-work/SKILL.md +63 -0
  73. package/.cline/skills/search-skills/SKILL.md +73 -0
  74. package/.cline/skills/security-review/SKILL.md +384 -0
  75. package/.cline/skills/seed-conventions/SKILL.md +312 -0
  76. package/.cline/skills/session-state/SKILL.md +146 -0
  77. package/.cline/skills/setup-environment/SKILL.md +39 -0
  78. package/.cline/skills/simulate-agents/SKILL.md +26 -0
  79. package/.cline/skills/slice-tasks/SKILL.md +68 -0
  80. package/.cline/skills/smoke-test/SKILL.md +261 -0
  81. package/.cline/skills/spike-prototype/SKILL.md +95 -0
  82. package/.cline/skills/stocktake-skills/SKILL.md +74 -0
  83. package/.cline/skills/survey-context/SKILL.md +135 -0
  84. package/.cline/skills/terse-mode/SKILL.md +42 -0
  85. package/.cline/skills/trace-requirement/SKILL.md +69 -0
  86. package/.cline/skills/using-bigpowers/SKILL.md +111 -0
  87. package/.cline/skills/validate-contracts/SKILL.md +286 -0
  88. package/.cline/skills/validate-fix/SKILL.md +147 -0
  89. package/.cline/skills/verify-work/SKILL.md +191 -0
  90. package/.cline/skills/visual-dashboard/SKILL.md +50 -0
  91. package/.cline/skills/wire-ci/SKILL.md +381 -0
  92. package/.cline/skills/wire-observability/SKILL.md +97 -0
  93. package/.cline/skills/write-document/SKILL.md +281 -0
  94. package/.codebuddy/skills/commit-message/SKILL.md +1 -1
  95. package/.codebuddy/skills/evolve-skill/SKILL.md +1 -1
  96. package/.codebuddy/skills/guard-git/SKILL.md +8 -8
  97. package/.codebuddy/skills/kickoff-branch/SKILL.md +1 -1
  98. package/.codebuddy/skills/migrate-spec/SKILL.md +52 -6
  99. package/.codebuddy/skills/plan-work/SKILL.md +17 -5
  100. package/.codebuddy/skills/publish-package/SKILL.md +15 -5
  101. package/.codebuddy/skills/release-branch/SKILL.md +12 -8
  102. package/.codebuddy/skills/seed-conventions/SKILL.md +20 -10
  103. package/.codebuddy/skills/smoke-test/SKILL.md +9 -5
  104. package/.codebuddy/skills/validate-contracts/SKILL.md +15 -6
  105. package/.codebuddy/skills/wire-ci/SKILL.md +12 -5
  106. package/.codebuddy/skills/write-document/SKILL.md +31 -5
  107. package/.codex/skills/commit-message/SKILL.md +1 -1
  108. package/.codex/skills/evolve-skill/SKILL.md +1 -1
  109. package/.codex/skills/guard-git/SKILL.md +8 -8
  110. package/.codex/skills/kickoff-branch/SKILL.md +1 -1
  111. package/.codex/skills/migrate-spec/SKILL.md +52 -6
  112. package/.codex/skills/plan-work/SKILL.md +17 -5
  113. package/.codex/skills/publish-package/SKILL.md +15 -5
  114. package/.codex/skills/release-branch/SKILL.md +12 -8
  115. package/.codex/skills/seed-conventions/SKILL.md +20 -10
  116. package/.codex/skills/smoke-test/SKILL.md +9 -5
  117. package/.codex/skills/validate-contracts/SKILL.md +15 -6
  118. package/.codex/skills/wire-ci/SKILL.md +12 -5
  119. package/.codex/skills/write-document/SKILL.md +31 -5
  120. package/.copilot/skills/align-grid/SKILL.md +110 -0
  121. package/.copilot/skills/assess-impact/SKILL.md +91 -0
  122. package/.copilot/skills/audit-code/SKILL.md +184 -0
  123. package/.copilot/skills/audit-plan/SKILL.md +89 -0
  124. package/.copilot/skills/build-epic/SKILL.md +105 -0
  125. package/.copilot/skills/change-request/SKILL.md +121 -0
  126. package/.copilot/skills/commit-message/SKILL.md +140 -0
  127. package/.copilot/skills/compose-workflow/SKILL.md +82 -0
  128. package/.copilot/skills/context7-mcp/SKILL.md +55 -0
  129. package/.copilot/skills/craft-skill/SKILL.md +196 -0
  130. package/.copilot/skills/deepen-architecture/SKILL.md +260 -0
  131. package/.copilot/skills/define-language/SKILL.md +80 -0
  132. package/.copilot/skills/define-success/SKILL.md +12 -0
  133. package/.copilot/skills/delegate-task/SKILL.md +91 -0
  134. package/.copilot/skills/deploy/SKILL.md +198 -0
  135. package/.copilot/skills/design-interface/SKILL.md +97 -0
  136. package/.copilot/skills/develop-tdd/SKILL.md +416 -0
  137. package/.copilot/skills/diagnose-root/SKILL.md +24 -0
  138. package/.copilot/skills/diagnose-stall/SKILL.md +54 -0
  139. package/.copilot/skills/dispatch-agents/SKILL.md +118 -0
  140. package/.copilot/skills/edit-document/SKILL.md +23 -0
  141. package/.copilot/skills/elaborate-spec/SKILL.md +101 -0
  142. package/.copilot/skills/enforce-first/SKILL.md +45 -0
  143. package/.copilot/skills/evolve-skill/SKILL.md +55 -0
  144. package/.copilot/skills/execute-plan/SKILL.md +61 -0
  145. package/.copilot/skills/extract-design/SKILL.md +132 -0
  146. package/.copilot/skills/find-way/SKILL.md +191 -0
  147. package/.copilot/skills/fix-bug/SKILL.md +67 -0
  148. package/.copilot/skills/gate-trace/SKILL.md +92 -0
  149. package/.copilot/skills/generate-allure-report/SKILL.md +285 -0
  150. package/.copilot/skills/grill-me/SKILL.md +108 -0
  151. package/.copilot/skills/grill-with-docs/SKILL.md +53 -0
  152. package/.copilot/skills/guard-git/SKILL.md +231 -0
  153. package/.copilot/skills/harden-vps/SKILL.md +291 -0
  154. package/.copilot/skills/hook-commits/SKILL.md +94 -0
  155. package/.copilot/skills/inspect-quality/SKILL.md +106 -0
  156. package/.copilot/skills/investigate-bug/SKILL.md +127 -0
  157. package/.copilot/skills/kickoff-branch/SKILL.md +143 -0
  158. package/.copilot/skills/maintain-wiki/SKILL.md +64 -0
  159. package/.copilot/skills/map-codebase/SKILL.md +71 -0
  160. package/.copilot/skills/migrate-spec/SKILL.md +908 -0
  161. package/.copilot/skills/model-domain/SKILL.md +232 -0
  162. package/.copilot/skills/orchestrate-project/SKILL.md +174 -0
  163. package/.copilot/skills/organize-workspace/SKILL.md +164 -0
  164. package/.copilot/skills/plan-refactor/SKILL.md +87 -0
  165. package/.copilot/skills/plan-release/SKILL.md +145 -0
  166. package/.copilot/skills/plan-tests/SKILL.md +75 -0
  167. package/.copilot/skills/plan-work/SKILL.md +272 -0
  168. package/.copilot/skills/publish-package/SKILL.md +338 -0
  169. package/.copilot/skills/quick-fix/SKILL.md +114 -0
  170. package/.copilot/skills/release-branch/SKILL.md +302 -0
  171. package/.copilot/skills/request-review/SKILL.md +113 -0
  172. package/.copilot/skills/research-first/SKILL.md +87 -0
  173. package/.copilot/skills/reset-baseline/SKILL.md +21 -0
  174. package/.copilot/skills/respond-review/SKILL.md +71 -0
  175. package/.copilot/skills/run-benchmark/SKILL.md +85 -0
  176. package/.copilot/skills/run-evals/SKILL.md +80 -0
  177. package/.copilot/skills/run-planning/SKILL.md +101 -0
  178. package/.copilot/skills/scope-work/SKILL.md +63 -0
  179. package/.copilot/skills/search-skills/SKILL.md +73 -0
  180. package/.copilot/skills/security-review/SKILL.md +384 -0
  181. package/.copilot/skills/seed-conventions/SKILL.md +312 -0
  182. package/.copilot/skills/session-state/SKILL.md +146 -0
  183. package/.copilot/skills/setup-environment/SKILL.md +39 -0
  184. package/.copilot/skills/simulate-agents/SKILL.md +26 -0
  185. package/.copilot/skills/slice-tasks/SKILL.md +68 -0
  186. package/.copilot/skills/smoke-test/SKILL.md +261 -0
  187. package/.copilot/skills/spike-prototype/SKILL.md +95 -0
  188. package/.copilot/skills/stocktake-skills/SKILL.md +74 -0
  189. package/.copilot/skills/survey-context/SKILL.md +135 -0
  190. package/.copilot/skills/terse-mode/SKILL.md +42 -0
  191. package/.copilot/skills/trace-requirement/SKILL.md +69 -0
  192. package/.copilot/skills/using-bigpowers/SKILL.md +111 -0
  193. package/.copilot/skills/validate-contracts/SKILL.md +286 -0
  194. package/.copilot/skills/validate-fix/SKILL.md +147 -0
  195. package/.copilot/skills/verify-work/SKILL.md +191 -0
  196. package/.copilot/skills/visual-dashboard/SKILL.md +50 -0
  197. package/.copilot/skills/wire-ci/SKILL.md +381 -0
  198. package/.copilot/skills/wire-observability/SKILL.md +97 -0
  199. package/.copilot/skills/write-document/SKILL.md +281 -0
  200. package/.hermes/skills/commit-message/SKILL.md +1 -1
  201. package/.hermes/skills/evolve-skill/SKILL.md +1 -1
  202. package/.hermes/skills/guard-git/SKILL.md +8 -8
  203. package/.hermes/skills/kickoff-branch/SKILL.md +1 -1
  204. package/.hermes/skills/migrate-spec/SKILL.md +52 -6
  205. package/.hermes/skills/plan-work/SKILL.md +17 -5
  206. package/.hermes/skills/publish-package/SKILL.md +15 -5
  207. package/.hermes/skills/release-branch/SKILL.md +12 -8
  208. package/.hermes/skills/seed-conventions/SKILL.md +20 -10
  209. package/.hermes/skills/smoke-test/SKILL.md +9 -5
  210. package/.hermes/skills/validate-contracts/SKILL.md +15 -6
  211. package/.hermes/skills/wire-ci/SKILL.md +12 -5
  212. package/.hermes/skills/write-document/SKILL.md +31 -5
  213. package/.kilocode/rules/commit-message.md +1 -1
  214. package/.kilocode/rules/evolve-skill.md +1 -1
  215. package/.kilocode/rules/guard-git.md +8 -8
  216. package/.kilocode/rules/kickoff-branch.md +1 -1
  217. package/.kilocode/rules/migrate-spec.md +52 -6
  218. package/.kilocode/rules/plan-work.md +17 -5
  219. package/.kilocode/rules/publish-package.md +15 -5
  220. package/.kilocode/rules/release-branch.md +12 -8
  221. package/.kilocode/rules/seed-conventions.md +20 -10
  222. package/.kilocode/rules/smoke-test.md +9 -5
  223. package/.kilocode/rules/validate-contracts.md +15 -6
  224. package/.kilocode/rules/wire-ci.md +12 -5
  225. package/.kilocode/rules/write-document.md +31 -5
  226. package/.mimocode/skills/commit-message/SKILL.md +1 -1
  227. package/.mimocode/skills/evolve-skill/SKILL.md +1 -1
  228. package/.mimocode/skills/guard-git/SKILL.md +8 -8
  229. package/.mimocode/skills/kickoff-branch/SKILL.md +1 -1
  230. package/.mimocode/skills/migrate-spec/SKILL.md +52 -6
  231. package/.mimocode/skills/plan-work/SKILL.md +17 -5
  232. package/.mimocode/skills/publish-package/SKILL.md +15 -5
  233. package/.mimocode/skills/release-branch/SKILL.md +12 -8
  234. package/.mimocode/skills/seed-conventions/SKILL.md +20 -10
  235. package/.mimocode/skills/smoke-test/SKILL.md +9 -5
  236. package/.mimocode/skills/validate-contracts/SKILL.md +15 -6
  237. package/.mimocode/skills/wire-ci/SKILL.md +12 -5
  238. package/.mimocode/skills/write-document/SKILL.md +31 -5
  239. package/.opencode/skills/align-grid/SKILL.md +110 -0
  240. package/.opencode/skills/assess-impact/SKILL.md +91 -0
  241. package/.opencode/skills/audit-code/SKILL.md +184 -0
  242. package/.opencode/skills/audit-plan/SKILL.md +89 -0
  243. package/.opencode/skills/build-epic/SKILL.md +105 -0
  244. package/.opencode/skills/change-request/SKILL.md +121 -0
  245. package/.opencode/skills/commit-message/SKILL.md +140 -0
  246. package/.opencode/skills/compose-workflow/SKILL.md +82 -0
  247. package/.opencode/skills/context7-mcp/SKILL.md +55 -0
  248. package/.opencode/skills/craft-skill/SKILL.md +196 -0
  249. package/.opencode/skills/deepen-architecture/SKILL.md +260 -0
  250. package/.opencode/skills/define-language/SKILL.md +80 -0
  251. package/.opencode/skills/define-success/SKILL.md +12 -0
  252. package/.opencode/skills/delegate-task/SKILL.md +91 -0
  253. package/.opencode/skills/deploy/SKILL.md +198 -0
  254. package/.opencode/skills/design-interface/SKILL.md +97 -0
  255. package/.opencode/skills/develop-tdd/SKILL.md +416 -0
  256. package/.opencode/skills/diagnose-root/SKILL.md +24 -0
  257. package/.opencode/skills/diagnose-stall/SKILL.md +54 -0
  258. package/.opencode/skills/dispatch-agents/SKILL.md +118 -0
  259. package/.opencode/skills/edit-document/SKILL.md +23 -0
  260. package/.opencode/skills/elaborate-spec/SKILL.md +101 -0
  261. package/.opencode/skills/enforce-first/SKILL.md +45 -0
  262. package/.opencode/skills/evolve-skill/SKILL.md +55 -0
  263. package/.opencode/skills/execute-plan/SKILL.md +61 -0
  264. package/.opencode/skills/extract-design/SKILL.md +132 -0
  265. package/.opencode/skills/find-way/SKILL.md +191 -0
  266. package/.opencode/skills/fix-bug/SKILL.md +67 -0
  267. package/.opencode/skills/gate-trace/SKILL.md +92 -0
  268. package/.opencode/skills/generate-allure-report/SKILL.md +285 -0
  269. package/.opencode/skills/grill-me/SKILL.md +108 -0
  270. package/.opencode/skills/grill-with-docs/SKILL.md +53 -0
  271. package/.opencode/skills/guard-git/SKILL.md +231 -0
  272. package/.opencode/skills/harden-vps/SKILL.md +291 -0
  273. package/.opencode/skills/hook-commits/SKILL.md +94 -0
  274. package/.opencode/skills/inspect-quality/SKILL.md +106 -0
  275. package/.opencode/skills/investigate-bug/SKILL.md +127 -0
  276. package/.opencode/skills/kickoff-branch/SKILL.md +143 -0
  277. package/.opencode/skills/maintain-wiki/SKILL.md +64 -0
  278. package/.opencode/skills/map-codebase/SKILL.md +71 -0
  279. package/.opencode/skills/migrate-spec/SKILL.md +908 -0
  280. package/.opencode/skills/model-domain/SKILL.md +232 -0
  281. package/.opencode/skills/orchestrate-project/SKILL.md +174 -0
  282. package/.opencode/skills/organize-workspace/SKILL.md +164 -0
  283. package/.opencode/skills/plan-refactor/SKILL.md +87 -0
  284. package/.opencode/skills/plan-release/SKILL.md +145 -0
  285. package/.opencode/skills/plan-tests/SKILL.md +75 -0
  286. package/.opencode/skills/plan-work/SKILL.md +272 -0
  287. package/.opencode/skills/publish-package/SKILL.md +338 -0
  288. package/.opencode/skills/quick-fix/SKILL.md +114 -0
  289. package/.opencode/skills/release-branch/SKILL.md +302 -0
  290. package/.opencode/skills/request-review/SKILL.md +113 -0
  291. package/.opencode/skills/research-first/SKILL.md +87 -0
  292. package/.opencode/skills/reset-baseline/SKILL.md +21 -0
  293. package/.opencode/skills/respond-review/SKILL.md +71 -0
  294. package/.opencode/skills/run-benchmark/SKILL.md +85 -0
  295. package/.opencode/skills/run-evals/SKILL.md +80 -0
  296. package/.opencode/skills/run-planning/SKILL.md +101 -0
  297. package/.opencode/skills/scope-work/SKILL.md +63 -0
  298. package/.opencode/skills/search-skills/SKILL.md +73 -0
  299. package/.opencode/skills/security-review/SKILL.md +384 -0
  300. package/.opencode/skills/seed-conventions/SKILL.md +312 -0
  301. package/.opencode/skills/session-state/SKILL.md +146 -0
  302. package/.opencode/skills/setup-environment/SKILL.md +39 -0
  303. package/.opencode/skills/simulate-agents/SKILL.md +26 -0
  304. package/.opencode/skills/slice-tasks/SKILL.md +68 -0
  305. package/.opencode/skills/smoke-test/SKILL.md +261 -0
  306. package/.opencode/skills/spike-prototype/SKILL.md +95 -0
  307. package/.opencode/skills/stocktake-skills/SKILL.md +74 -0
  308. package/.opencode/skills/survey-context/SKILL.md +135 -0
  309. package/.opencode/skills/terse-mode/SKILL.md +42 -0
  310. package/.opencode/skills/trace-requirement/SKILL.md +69 -0
  311. package/.opencode/skills/using-bigpowers/SKILL.md +111 -0
  312. package/.opencode/skills/validate-contracts/SKILL.md +286 -0
  313. package/.opencode/skills/validate-fix/SKILL.md +147 -0
  314. package/.opencode/skills/verify-work/SKILL.md +191 -0
  315. package/.opencode/skills/visual-dashboard/SKILL.md +50 -0
  316. package/.opencode/skills/wire-ci/SKILL.md +381 -0
  317. package/.opencode/skills/wire-observability/SKILL.md +97 -0
  318. package/.opencode/skills/write-document/SKILL.md +281 -0
  319. package/.pi/package.json +1 -1
  320. package/.pi/prompts/commit-message.md +1 -1
  321. package/.pi/prompts/evolve-skill.md +1 -1
  322. package/.pi/prompts/guard-git.md +8 -8
  323. package/.pi/prompts/kickoff-branch.md +1 -1
  324. package/.pi/prompts/migrate-spec.md +52 -6
  325. package/.pi/prompts/plan-work.md +17 -5
  326. package/.pi/prompts/publish-package.md +15 -5
  327. package/.pi/prompts/release-branch.md +12 -8
  328. package/.pi/prompts/seed-conventions.md +20 -10
  329. package/.pi/prompts/smoke-test.md +9 -5
  330. package/.pi/prompts/validate-contracts.md +15 -6
  331. package/.pi/prompts/wire-ci.md +12 -5
  332. package/.pi/prompts/write-document.md +31 -5
  333. package/.pi/skills/commit-message/SKILL.md +1 -1
  334. package/.pi/skills/evolve-skill/SKILL.md +1 -1
  335. package/.pi/skills/guard-git/SKILL.md +8 -8
  336. package/.pi/skills/kickoff-branch/SKILL.md +1 -1
  337. package/.pi/skills/migrate-spec/SKILL.md +52 -6
  338. package/.pi/skills/plan-work/SKILL.md +17 -5
  339. package/.pi/skills/publish-package/SKILL.md +15 -5
  340. package/.pi/skills/release-branch/SKILL.md +12 -8
  341. package/.pi/skills/seed-conventions/SKILL.md +20 -10
  342. package/.pi/skills/smoke-test/SKILL.md +9 -5
  343. package/.pi/skills/validate-contracts/SKILL.md +15 -6
  344. package/.pi/skills/wire-ci/SKILL.md +12 -5
  345. package/.pi/skills/write-document/SKILL.md +31 -5
  346. package/.qwen/skills/align-grid/SKILL.md +110 -0
  347. package/.qwen/skills/assess-impact/SKILL.md +91 -0
  348. package/.qwen/skills/audit-code/SKILL.md +184 -0
  349. package/.qwen/skills/audit-plan/SKILL.md +89 -0
  350. package/.qwen/skills/build-epic/SKILL.md +105 -0
  351. package/.qwen/skills/change-request/SKILL.md +121 -0
  352. package/.qwen/skills/commit-message/SKILL.md +140 -0
  353. package/.qwen/skills/compose-workflow/SKILL.md +82 -0
  354. package/.qwen/skills/context7-mcp/SKILL.md +55 -0
  355. package/.qwen/skills/craft-skill/SKILL.md +196 -0
  356. package/.qwen/skills/deepen-architecture/SKILL.md +260 -0
  357. package/.qwen/skills/define-language/SKILL.md +80 -0
  358. package/.qwen/skills/define-success/SKILL.md +12 -0
  359. package/.qwen/skills/delegate-task/SKILL.md +91 -0
  360. package/.qwen/skills/deploy/SKILL.md +198 -0
  361. package/.qwen/skills/design-interface/SKILL.md +97 -0
  362. package/.qwen/skills/develop-tdd/SKILL.md +416 -0
  363. package/.qwen/skills/diagnose-root/SKILL.md +24 -0
  364. package/.qwen/skills/diagnose-stall/SKILL.md +54 -0
  365. package/.qwen/skills/dispatch-agents/SKILL.md +118 -0
  366. package/.qwen/skills/edit-document/SKILL.md +23 -0
  367. package/.qwen/skills/elaborate-spec/SKILL.md +101 -0
  368. package/.qwen/skills/enforce-first/SKILL.md +45 -0
  369. package/.qwen/skills/evolve-skill/SKILL.md +55 -0
  370. package/.qwen/skills/execute-plan/SKILL.md +61 -0
  371. package/.qwen/skills/extract-design/SKILL.md +132 -0
  372. package/.qwen/skills/find-way/SKILL.md +191 -0
  373. package/.qwen/skills/fix-bug/SKILL.md +67 -0
  374. package/.qwen/skills/gate-trace/SKILL.md +92 -0
  375. package/.qwen/skills/generate-allure-report/SKILL.md +285 -0
  376. package/.qwen/skills/grill-me/SKILL.md +108 -0
  377. package/.qwen/skills/grill-with-docs/SKILL.md +53 -0
  378. package/.qwen/skills/guard-git/SKILL.md +231 -0
  379. package/.qwen/skills/harden-vps/SKILL.md +291 -0
  380. package/.qwen/skills/hook-commits/SKILL.md +94 -0
  381. package/.qwen/skills/inspect-quality/SKILL.md +106 -0
  382. package/.qwen/skills/investigate-bug/SKILL.md +127 -0
  383. package/.qwen/skills/kickoff-branch/SKILL.md +143 -0
  384. package/.qwen/skills/maintain-wiki/SKILL.md +64 -0
  385. package/.qwen/skills/map-codebase/SKILL.md +71 -0
  386. package/.qwen/skills/migrate-spec/SKILL.md +908 -0
  387. package/.qwen/skills/model-domain/SKILL.md +232 -0
  388. package/.qwen/skills/orchestrate-project/SKILL.md +174 -0
  389. package/.qwen/skills/organize-workspace/SKILL.md +164 -0
  390. package/.qwen/skills/plan-refactor/SKILL.md +87 -0
  391. package/.qwen/skills/plan-release/SKILL.md +145 -0
  392. package/.qwen/skills/plan-tests/SKILL.md +75 -0
  393. package/.qwen/skills/plan-work/SKILL.md +272 -0
  394. package/.qwen/skills/publish-package/SKILL.md +338 -0
  395. package/.qwen/skills/quick-fix/SKILL.md +114 -0
  396. package/.qwen/skills/release-branch/SKILL.md +302 -0
  397. package/.qwen/skills/request-review/SKILL.md +113 -0
  398. package/.qwen/skills/research-first/SKILL.md +87 -0
  399. package/.qwen/skills/reset-baseline/SKILL.md +21 -0
  400. package/.qwen/skills/respond-review/SKILL.md +71 -0
  401. package/.qwen/skills/run-benchmark/SKILL.md +85 -0
  402. package/.qwen/skills/run-evals/SKILL.md +80 -0
  403. package/.qwen/skills/run-planning/SKILL.md +101 -0
  404. package/.qwen/skills/scope-work/SKILL.md +63 -0
  405. package/.qwen/skills/search-skills/SKILL.md +73 -0
  406. package/.qwen/skills/security-review/SKILL.md +384 -0
  407. package/.qwen/skills/seed-conventions/SKILL.md +312 -0
  408. package/.qwen/skills/session-state/SKILL.md +146 -0
  409. package/.qwen/skills/setup-environment/SKILL.md +39 -0
  410. package/.qwen/skills/simulate-agents/SKILL.md +26 -0
  411. package/.qwen/skills/slice-tasks/SKILL.md +68 -0
  412. package/.qwen/skills/smoke-test/SKILL.md +261 -0
  413. package/.qwen/skills/spike-prototype/SKILL.md +95 -0
  414. package/.qwen/skills/stocktake-skills/SKILL.md +74 -0
  415. package/.qwen/skills/survey-context/SKILL.md +135 -0
  416. package/.qwen/skills/terse-mode/SKILL.md +42 -0
  417. package/.qwen/skills/trace-requirement/SKILL.md +69 -0
  418. package/.qwen/skills/using-bigpowers/SKILL.md +111 -0
  419. package/.qwen/skills/validate-contracts/SKILL.md +286 -0
  420. package/.qwen/skills/validate-fix/SKILL.md +147 -0
  421. package/.qwen/skills/verify-work/SKILL.md +191 -0
  422. package/.qwen/skills/visual-dashboard/SKILL.md +50 -0
  423. package/.qwen/skills/wire-ci/SKILL.md +381 -0
  424. package/.qwen/skills/wire-observability/SKILL.md +97 -0
  425. package/.qwen/skills/write-document/SKILL.md +281 -0
  426. package/.trae/skills/commit-message/SKILL.md +1 -1
  427. package/.trae/skills/evolve-skill/SKILL.md +1 -1
  428. package/.trae/skills/guard-git/SKILL.md +8 -8
  429. package/.trae/skills/kickoff-branch/SKILL.md +1 -1
  430. package/.trae/skills/migrate-spec/SKILL.md +52 -6
  431. package/.trae/skills/plan-work/SKILL.md +17 -5
  432. package/.trae/skills/publish-package/SKILL.md +15 -5
  433. package/.trae/skills/release-branch/SKILL.md +12 -8
  434. package/.trae/skills/seed-conventions/SKILL.md +20 -10
  435. package/.trae/skills/smoke-test/SKILL.md +9 -5
  436. package/.trae/skills/validate-contracts/SKILL.md +15 -6
  437. package/.trae/skills/wire-ci/SKILL.md +12 -5
  438. package/.trae/skills/write-document/SKILL.md +31 -5
  439. package/.windsurf/rules/commit-message.md +1 -1
  440. package/.windsurf/rules/evolve-skill.md +1 -1
  441. package/.windsurf/rules/guard-git.md +8 -8
  442. package/.windsurf/rules/kickoff-branch.md +1 -1
  443. package/.windsurf/rules/migrate-spec.md +52 -6
  444. package/.windsurf/rules/plan-work.md +17 -5
  445. package/.windsurf/rules/publish-package.md +15 -5
  446. package/.windsurf/rules/release-branch.md +12 -8
  447. package/.windsurf/rules/seed-conventions.md +20 -10
  448. package/.windsurf/rules/smoke-test.md +9 -5
  449. package/.windsurf/rules/validate-contracts.md +15 -6
  450. package/.windsurf/rules/wire-ci.md +12 -5
  451. package/.windsurf/rules/write-document.md +31 -5
  452. package/.zcode/skills/commit-message/SKILL.md +1 -1
  453. package/.zcode/skills/evolve-skill/SKILL.md +1 -1
  454. package/.zcode/skills/guard-git/SKILL.md +8 -8
  455. package/.zcode/skills/kickoff-branch/SKILL.md +1 -1
  456. package/.zcode/skills/migrate-spec/SKILL.md +52 -6
  457. package/.zcode/skills/plan-work/SKILL.md +17 -5
  458. package/.zcode/skills/publish-package/SKILL.md +15 -5
  459. package/.zcode/skills/release-branch/SKILL.md +12 -8
  460. package/.zcode/skills/seed-conventions/SKILL.md +20 -10
  461. package/.zcode/skills/smoke-test/SKILL.md +9 -5
  462. package/.zcode/skills/validate-contracts/SKILL.md +15 -6
  463. package/.zcode/skills/wire-ci/SKILL.md +12 -5
  464. package/.zcode/skills/write-document/SKILL.md +31 -5
  465. package/CHANGELOG.md +14 -0
  466. package/CONVENTIONS.md +2 -0
  467. package/package.json +1 -1
  468. package/scripts/adapters/agy.sh +3 -0
  469. package/scripts/adapters/continue.sh +3 -0
  470. package/scripts/adapters/cursor.sh +3 -0
  471. package/scripts/adapters/gemini.sh +5 -24
  472. package/scripts/adapters/mimo.sh +3 -0
  473. package/scripts/adapters/omp.sh +3 -0
  474. package/scripts/adapters/pi.sh +6 -3
  475. package/scripts/adapters/zcode.sh +3 -0
  476. package/scripts/adapters/zed.sh +3 -0
  477. package/scripts/generate-context-bundle.sh +6 -0
  478. package/scripts/generate-reference-nav.sh +89 -0
  479. package/scripts/generate-viz-graph.sh +4 -0
  480. package/scripts/generate-workflow-diagrams.sh +102 -0
  481. package/scripts/golden-g13-script-orphans.sh +167 -0
  482. package/scripts/golden-g14-adapter-dispatch.sh +113 -0
  483. package/scripts/golden-g15-compliance-runner-selftest.sh +126 -0
  484. package/scripts/golden-g16-spec-version-gap.sh +72 -0
  485. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  486. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  487. package/scripts/lib/adapter-guard.sh +30 -0
  488. package/scripts/lib/audit-compliance-report.sh +32 -7
  489. package/scripts/lib/audit-compliance-runner.sh +14 -1
  490. package/scripts/lib/golden-suite-gates.sh +43 -3
  491. package/scripts/lib/install-targets-b.sh +0 -8
  492. package/scripts/lib/sync-render.sh +0 -43
  493. package/scripts/lib/test-assertions.sh +4 -0
  494. package/scripts/snapshot-catalog-baseline.sh +4 -0
  495. package/scripts/targets.yaml +35 -13
  496. package/scripts/test-adapter-render.sh +114 -0
  497. package/scripts/test-adapters.sh +10 -3
  498. package/scripts/test-completeness-critic-scope.sh +18 -19
  499. package/scripts/test-generate-epics-wiki-zero-stories.sh +12 -13
  500. package/scripts/test-golden-g11-worktree-venv.sh +16 -18
  501. package/scripts/test-install-distribute-only.sh +27 -26
  502. package/scripts/test-install-hub.sh +141 -0
  503. package/scripts/test-setup-no-pyyaml.sh +16 -17
  504. package/scripts/test-target-contracts.sh +15 -13
  505. package/scripts/test-tombstone-mechanism.sh +31 -33
  506. package/skills/commit-message/REFERENCE.md +1 -1
  507. package/skills/evolve-skill/REFERENCE.md +1 -1
  508. package/skills/guard-git/REFERENCE.md +8 -8
  509. package/skills/kickoff-branch/SKILL.md +1 -1
  510. package/skills/migrate-spec/REFERENCE.md +52 -6
  511. package/skills/plan-work/REFERENCE.md +17 -5
  512. package/skills/publish-package/REFERENCE.md +15 -5
  513. package/skills/release-branch/REFERENCE.md +12 -8
  514. package/skills/seed-conventions/REFERENCE.md +20 -10
  515. package/skills/smoke-test/REFERENCE.md +9 -5
  516. package/skills/validate-contracts/REFERENCE.md +15 -6
  517. package/skills/wire-ci/REFERENCE.md +12 -5
  518. package/skills/write-document/REFERENCE.md +31 -5
  519. package/skills-lock.json +1 -1
  520. package/scripts/add-model-frontmatter.sh +0 -32
  521. package/scripts/install-cursor-skills-local.sh +0 -15
  522. package/scripts/install-cursor-skills.sh +0 -24
  523. package/scripts/project-survey.sh +0 -63
  524. package/scripts/test-agy-hub.sh +0 -60
  525. package/scripts/test-cline-adapter.sh +0 -55
  526. package/scripts/test-cline-hub.sh +0 -48
  527. package/scripts/test-codebuddy-adapter.sh +0 -63
  528. package/scripts/test-codebuddy-hub.sh +0 -49
  529. package/scripts/test-codex-adapter.sh +0 -63
  530. package/scripts/test-codex-hub.sh +0 -49
  531. package/scripts/test-copilot-adapter.sh +0 -47
  532. package/scripts/test-copilot-hub.sh +0 -43
  533. package/scripts/test-gemini-adapter.sh +0 -70
  534. package/scripts/test-gemini-hub.sh +0 -56
  535. package/scripts/test-hermes-adapter.sh +0 -85
  536. package/scripts/test-hermes-hub.sh +0 -52
  537. package/scripts/test-kilocode-adapter.sh +0 -55
  538. package/scripts/test-kilocode-hub.sh +0 -48
  539. package/scripts/test-mimo-hub.sh +0 -52
  540. package/scripts/test-opencode-adapter.sh +0 -47
  541. package/scripts/test-opencode-hub.sh +0 -43
  542. package/scripts/test-qwen-adapter.sh +0 -63
  543. package/scripts/test-qwen-hub.sh +0 -49
  544. package/scripts/test-trae-adapter.sh +0 -63
  545. package/scripts/test-trae-hub.sh +0 -49
  546. package/scripts/test-windsurf-adapter.sh +0 -63
  547. package/scripts/test-windsurf-hub.sh +0 -49
  548. package/scripts/test-zcode-hub.sh +0 -52
@@ -0,0 +1,167 @@
1
+ #!/usr/bin/env bash
2
+ # story: e37s05
3
+ # golden-g13-script-orphans.sh — every scripts/*.sh must be wired into a gate,
4
+ # invoked by another script/skill/doc/workflow, or explicitly tagged as a
5
+ # manual utility.
6
+ #
7
+ # Originally scoped to scripts/test-*.sh only (33 of 35 test scripts were
8
+ # reachable from nothing). Broadened after a catalog-wide review found 9 more
9
+ # orphans among non-test scripts, one of which (sync-version-mirrors.sh) was a
10
+ # false positive of the SCANNER, not the script: it is called from
11
+ # .releaserc.json's semantic-release prepareCmd, a reference location the
12
+ # original scan never searched. The file is also renamed from
13
+ # golden-g13-test-orphans.sh to match what it now checks — a check whose name
14
+ # doesn't match its mechanism is the exact defect class G25 fixes elsewhere in
15
+ # this series.
16
+ #
17
+ # Usage: bash scripts/golden-g13-script-orphans.sh [--self-test]
18
+ # Exit 0: every script is referenced, or explicitly tagged bp-manual-utility
19
+ # Exit 1: at least one orphan (or, under --self-test, the gate failed to
20
+ # notice a deliberately unlisted, untagged script)
21
+
22
+ set -euo pipefail
23
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
24
+ resolve_repo_root
25
+ cd "$REPO_ROOT"
26
+
27
+ RED='\033[0;31m'
28
+ GREEN='\033[0;32m'
29
+ NC='\033[0m'
30
+
31
+ GATES_FILE="scripts/lib/golden-suite-gates.sh"
32
+
33
+ # Reference locations a script can legitimately be called from. Archived
34
+ # epics are frozen history (per BUG-2026-07-26: an archived reference is not a
35
+ # live caller), so they're excluded even though they match the glob.
36
+ REF_GLOBS=(
37
+ "scripts/**/*.sh"
38
+ "skills/**/SKILL.md"
39
+ "skills/**/REFERENCE.md"
40
+ "CLAUDE.md"
41
+ "CONVENTIONS.md"
42
+ "docs/**/*.md"
43
+ "bin/**/*.js"
44
+ "package.json"
45
+ ".releaserc.json"
46
+ ".github/workflows/*.yml"
47
+ "specs/epics/**/*.yaml"
48
+ "specs/epics/**/*.md"
49
+ )
50
+
51
+ is_manual_utility() { # $1 = script path
52
+ head -10 "$1" 2>/dev/null | grep -q '^# bp-manual-utility:'
53
+ }
54
+
55
+ is_referenced() { # $1 = script basename, $2... = candidate file globs already expanded
56
+ local name="$1"; shift
57
+ local f
58
+ for f in "$@"; do
59
+ [[ "$f" == *"/$name" || "$(basename "$f")" == "$name" ]] && continue # self
60
+ grep -q "$name" "$f" 2>/dev/null && return 0
61
+ done
62
+ return 1
63
+ }
64
+
65
+ collect_ref_files() {
66
+ shopt -s globstar nullglob
67
+ local pattern expanded=()
68
+ for pattern in "${REF_GLOBS[@]}"; do
69
+ for f in $pattern; do
70
+ [[ "$f" == specs/epics/archive/* ]] && continue
71
+ expanded+=("$f")
72
+ done
73
+ done
74
+ shopt -u globstar nullglob
75
+ printf '%s\n' "${expanded[@]}"
76
+ }
77
+
78
+ find_orphans() { # $1 = scripts root dir, $2 = extra untagged basename to inject (self-test only)
79
+ local root="$1" extra="${2:-}"
80
+ local orphans="" f b
81
+ mapfile -t ref_files < <(collect_ref_files)
82
+ for f in "$root"/*.sh; do
83
+ [[ -e "$f" ]] || continue
84
+ b="$(basename "$f")"
85
+ is_manual_utility "$f" && continue
86
+ is_referenced "$b" "${ref_files[@]}" || orphans+=" $b"$'\n'
87
+ done
88
+ if [[ -n "$extra" ]]; then
89
+ is_referenced "$extra" "${ref_files[@]}" || orphans+=" $extra"$'\n'
90
+ fi
91
+ printf '%s' "$orphans"
92
+ }
93
+
94
+ if [[ "${1:-}" == "--self-test" ]]; then
95
+ echo "=== G-13 self-test: prove the gate can fail, and that its exemptions work ==="
96
+ TMP=$(mktemp -d)
97
+ trap 'rm -rf "$TMP"' EXIT
98
+
99
+ # (a) An unlisted, untagged script must still be reported. Built by
100
+ # concatenation, not a literal string: this script's own source lives under
101
+ # scripts/, which REF_GLOBS also scans, so a literal fixture name written
102
+ # here would make the checker match its own self-test line.
103
+ fake_name="fixture-not-wired-$$.sh"
104
+ ok=1
105
+ if [[ -z "$(find_orphans "scripts" "$fake_name")" ]]; then
106
+ echo -e "${RED}FAIL${NC} (a) unlisted script was not reported — vacuous gate"
107
+ ok=0
108
+ else
109
+ echo -e "${GREEN}PASS${NC} (a) unlisted, untagged script is reported"
110
+ fi
111
+
112
+ # (b) A bp-manual-utility-tagged, unwired script must be excluded.
113
+ cat > "$TMP/tagged-orphan.sh" <<'EOF'
114
+ #!/usr/bin/env bash
115
+ # bp-manual-utility: fixture for G-13 self-test — deliberately unreferenced
116
+ echo "never called by anything"
117
+ EOF
118
+ if [[ -n "$(find_orphans "$TMP")" ]]; then
119
+ echo -e "${RED}FAIL${NC} (b) bp-manual-utility-tagged script was still flagged"
120
+ ok=0
121
+ else
122
+ echo -e "${GREEN}PASS${NC} (b) bp-manual-utility-tagged script is excluded"
123
+ fi
124
+
125
+ # (c) A script referenced only from .releaserc.json-shaped content must be
126
+ # excluded — regression guard for the exact scope gap fixed here
127
+ # (sync-version-mirrors.sh, called only from .releaserc.json's prepareCmd).
128
+ mkdir -p "$TMP/scope-fixture"
129
+ cat > "$TMP/scope-fixture/releaserc-lookalike.json" <<'EOF'
130
+ {"prepareCmd": "bash scripts/only-in-releaserc.sh 1.0.0"}
131
+ EOF
132
+ cat > "$TMP/scope-fixture/only-in-releaserc.sh" <<'EOF'
133
+ #!/usr/bin/env bash
134
+ echo "referenced only from a releaserc-shaped file"
135
+ EOF
136
+ refs=("$TMP/scope-fixture/releaserc-lookalike.json")
137
+ if is_referenced "only-in-releaserc.sh" "${refs[@]}"; then
138
+ echo -e "${GREEN}PASS${NC} (c) a releaserc-shaped reference is detected by is_referenced"
139
+ else
140
+ echo -e "${RED}FAIL${NC} (c) is_referenced did not find the releaserc-shaped reference"
141
+ ok=0
142
+ fi
143
+
144
+ if [[ "$ok" -eq 1 ]]; then
145
+ echo "G-13 self-test: PASS"
146
+ exit 0
147
+ fi
148
+ echo "G-13 self-test: FAIL"
149
+ exit 1
150
+ fi
151
+
152
+ echo "=== G-13: script orphan check ==="
153
+ ORPHANS="$(find_orphans "scripts")"
154
+ TOTAL=$(ls scripts/*.sh 2>/dev/null | wc -l | tr -d ' ')
155
+
156
+ if [[ -z "$ORPHANS" ]]; then
157
+ echo " ok : all $TOTAL script(s) in scripts/ are referenced or tagged bp-manual-utility"
158
+ echo -e "${GREEN}PASS${NC}"
159
+ echo "G-13: PASS"
160
+ exit 0
161
+ fi
162
+
163
+ echo " orphaned scripts (present but reachable from no gate, doc, or workflow):"
164
+ printf '%s' "$ORPHANS"
165
+ echo -e "${RED}FAIL${NC} wire them into a gate, reference them from a skill/doc, tag them '# bp-manual-utility: <reason>', or delete them"
166
+ echo "G-13: FAIL"
167
+ exit 1
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env bash
2
+ # story: e37s05
3
+ # golden-g14-adapter-dispatch.sh — an adapter that can render must be dispatched.
4
+ #
5
+ # scripts/lib/srp-engine.py builds its dispatch list from targets.yaml entries
6
+ # carrying a skill.adapter. An adapter that defines render_skill() but is
7
+ # declared `skill: null` therefore never runs during sync, while its install
8
+ # function still reads a rendered directory that is never produced — the target
9
+ # reports success and installs nothing
10
+ # (BUG-2026-07-26-null-skill-adapters-install-nothing).
11
+ #
12
+ # Context-only bridges (aider, goose, ...) are exempt by construction: they
13
+ # define no render_skill, so there is nothing to dispatch.
14
+ #
15
+ # Usage: bash scripts/golden-g14-adapter-dispatch.sh [--self-test]
16
+ # Exit 0: every rendering adapter is dispatched
17
+ # Exit 1: at least one rendering adapter is undispatched (or, under
18
+ # --self-test, the gate failed to notice an injected one)
19
+
20
+ set -euo pipefail
21
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/python-env.sh"
22
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
23
+ resolve_repo_root
24
+ cd "$REPO_ROOT"
25
+
26
+ RED='\033[0;31m'
27
+ GREEN='\033[0;32m'
28
+ NC='\033[0m'
29
+
30
+ check() { # $1 = targets.yaml path
31
+ $PYTHON - "$1" <<'PY'
32
+ import sys, os, re
33
+ import yaml
34
+
35
+ targets_path = sys.argv[1]
36
+ data = yaml.safe_load(open(targets_path, encoding="utf-8")) or {}
37
+
38
+ dispatched = set()
39
+ for t in data.get("targets") or []:
40
+ skill = t.get("skill")
41
+ if isinstance(skill, dict) and skill.get("adapter"):
42
+ dispatched.add(skill["adapter"])
43
+
44
+ problems = []
45
+ adapter_dir = os.path.join("scripts", "adapters")
46
+ for fn in sorted(os.listdir(adapter_dir)):
47
+ if not fn.endswith(".sh"):
48
+ continue
49
+ aid = fn[:-3]
50
+ src = open(os.path.join(adapter_dir, fn), encoding="utf-8").read()
51
+ if not re.search(r"^render_skill\(\)", src, re.M):
52
+ continue # context-only bridge — nothing to dispatch
53
+ if aid not in dispatched:
54
+ problems.append(
55
+ f"{aid}: defines render_skill() but targets.yaml does not dispatch it "
56
+ f"(skill.adapter missing or null) — sync renders nothing for it"
57
+ )
58
+
59
+ if problems:
60
+ for p in problems:
61
+ print(f" UNDISPATCHED {p}")
62
+ print(f"\n{len(problems)} rendering adapter(s) never run during sync")
63
+ sys.exit(1)
64
+
65
+ print(f" ok : all rendering adapters are dispatched ({len(dispatched)} in registry)")
66
+ sys.exit(0)
67
+ PY
68
+ }
69
+
70
+ if [[ "${1:-}" == "--self-test" ]]; then
71
+ echo "=== G-14 self-test: prove the gate can fail ==="
72
+ TMP=$(mktemp -d)
73
+ trap 'rm -rf "$TMP"' EXIT
74
+ $PYTHON - "$TMP/targets.yaml" <<'PY'
75
+ import sys, yaml
76
+ d = yaml.safe_load(open("scripts/targets.yaml", encoding="utf-8"))
77
+ # Null out the first dispatched adapter — the gate must notice.
78
+ for t in d.get("targets") or []:
79
+ s = t.get("skill")
80
+ if isinstance(s, dict) and s.get("adapter"):
81
+ print(f"injected: {t['id']} skill -> null")
82
+ t["skill"] = None
83
+ break
84
+ yaml.dump(d, open(sys.argv[1], "w", encoding="utf-8"), default_flow_style=False, sort_keys=False)
85
+ PY
86
+ set +e
87
+ check "$TMP/targets.yaml" >/dev/null 2>&1
88
+ rc=$?
89
+ set -e
90
+ if [[ $rc -ne 0 ]]; then
91
+ echo -e "${GREEN}PASS${NC} G-14 detected an injected undispatched adapter"
92
+ echo "G-14 self-test: PASS"
93
+ exit 0
94
+ fi
95
+ echo -e "${RED}FAIL${NC} G-14 passed on an injected null adapter — vacuous gate"
96
+ echo "G-14 self-test: FAIL"
97
+ exit 1
98
+ fi
99
+
100
+ echo "=== G-14: adapter dispatch coverage ==="
101
+ set +e
102
+ out=$(check "scripts/targets.yaml" 2>&1)
103
+ rc=$?
104
+ set -e
105
+ echo "$out"
106
+ if [[ $rc -eq 0 ]]; then
107
+ echo -e "${GREEN}PASS${NC}"
108
+ echo "G-14: PASS"
109
+ exit 0
110
+ fi
111
+ echo -e "${RED}FAIL${NC} see BUG-2026-07-26-null-skill-adapters-install-nothing"
112
+ echo "G-14: FAIL"
113
+ exit 1
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env bash
2
+ # story: e45s02
3
+ # golden-g15-compliance-runner-selftest.sh — audit-compliance-runner.sh must
4
+ # correctly execute a Background step, a step on a file's last line with no
5
+ # trailing newline, and must still report a genuinely failing step as FAIL
6
+ # rather than silently dropping it.
7
+ #
8
+ # audit-compliance-runner.sh had two bugs that dropped steps entirely rather
9
+ # than failing them: no Background: handling at all (akita.feature's
10
+ # Background Given was silently skipped), and `done < "$FEATURE_FILE"` losing
11
+ # a final line with no trailing newline (karpathy.feature's last step never
12
+ # appeared in [STEP] output). Both are fixed; this gate is the regression
13
+ # guard so a future change to the runner can't reintroduce either silently —
14
+ # and, just as important, can't "fix" step-dropping by making every line
15
+ # execute unconditionally, which would hide a genuinely failing step as a
16
+ # false PASS.
17
+ #
18
+ # Usage: bash scripts/golden-g15-compliance-runner-selftest.sh [--self-test]
19
+ # Exit 0: Background executes, the no-newline last step executes, and a
20
+ # failing step is reported FAIL (or, under --self-test, a loose
21
+ # Given line outside any Background/Scenario is correctly NOT
22
+ # executed)
23
+ # Exit 1: any of the above does not hold
24
+
25
+ set -euo pipefail
26
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
27
+ resolve_repo_root
28
+ cd "$REPO_ROOT"
29
+
30
+ RED='\033[0;31m'
31
+ GREEN='\033[0;32m'
32
+ NC='\033[0m'
33
+
34
+ # Builds a fixture project at $1 with the step scripts a fixture .feature
35
+ # needs, then runs audit_run_file against $2 (a path relative to $1) and
36
+ # echoes the captured [STEP]/Result output.
37
+ run_fixture() { # $1 = fixture root, $2 = feature file path relative to root
38
+ local root="$1" feature="$2"
39
+ (
40
+ cd "$root"
41
+ # shellcheck source=lib/audit-compliance-runner.sh
42
+ source "$REPO_ROOT/scripts/lib/audit-compliance-runner.sh"
43
+ DRY_RUN=false SCENARIO_FILTER="" JUDGE="binary"
44
+ TOTAL_GLOBAL_PASS=0 TOTAL_GLOBAL_FAIL=0 TOTAL_GLOBAL_WAIVED=0 TOTAL_GLOBAL_EXPIRED=0
45
+ audit_run_file "$feature" 2>&1
46
+ )
47
+ }
48
+
49
+ build_step() { # $1 = fixture root, $2 = sanitized step filename (no .sh), $3 = exit code
50
+ cat > "$1/specs/verifications/steps/$2.sh" <<EOF
51
+ #!/usr/bin/env bash
52
+ exit $3
53
+ EOF
54
+ }
55
+
56
+ if [[ "${1:-}" == "--self-test" ]]; then
57
+ echo "=== G-15 self-test: a loose Given outside Background/Scenario must not execute ==="
58
+ TMP=$(mktemp -d)
59
+ trap 'rm -rf "$TMP"' EXIT
60
+ mkdir -p "$TMP/specs/verifications/steps" "$TMP/specs/verifications/reports"
61
+
62
+ build_step "$TMP" "given-a-loose-step-outside-any-block" 0
63
+ # No "Background:" keyword and no "Scenario:" before this line — structurally
64
+ # mimics what the pre-fix runner treated every top-level Given/Then/And as
65
+ # (no scenario context tracked at all), which is the over-broad failure mode
66
+ # a bad fix could reintroduce: executing steps regardless of context.
67
+ printf 'Feature: G-15 self-test fixture\nGiven a loose step outside any block\n' \
68
+ > "$TMP/specs/features_fixture.feature"
69
+
70
+ OUTPUT=$(run_fixture "$TMP" "specs/features_fixture.feature")
71
+ if grep -q '\[STEP\] Given a loose step outside any block' <<<"$OUTPUT"; then
72
+ echo -e "${RED}FAIL${NC} a loose Given outside any Background/Scenario executed — the runner no longer tracks scenario context"
73
+ echo "G-15 self-test: FAIL"
74
+ exit 1
75
+ fi
76
+ echo -e "${GREEN}PASS${NC} the loose Given correctly did not execute"
77
+ echo "G-15 self-test: PASS"
78
+ exit 0
79
+ fi
80
+
81
+ echo "=== G-15: compliance runner Background/EOF/failure handling ==="
82
+ TMP=$(mktemp -d)
83
+ trap 'rm -rf "$TMP"' EXIT
84
+ mkdir -p "$TMP/specs/verifications/steps" "$TMP/specs/verifications/reports"
85
+
86
+ build_step "$TMP" "given-a-background-step" 0
87
+ build_step "$TMP" "then-a-normal-step" 0
88
+ build_step "$TMP" "and-a-step-that-should-fail" 1
89
+ build_step "$TMP" "and-a-step-with-no-trailing-newline" 0
90
+
91
+ # Written without a trailing newline after the last line — printf, not a
92
+ # heredoc, so the file ends exactly where karpathy.feature's bug lived.
93
+ printf 'Feature: G-15 fixture\n Background:\n Given a background step\n\n Scenario: Fixture\n Then a normal step\n And a step that should fail\n And a step with no trailing newline' \
94
+ > "$TMP/specs/features_fixture.feature"
95
+
96
+ OUTPUT=$(run_fixture "$TMP" "specs/features_fixture.feature")
97
+
98
+ FAILS=0
99
+
100
+ if grep -q '\[STEP\] Given a background step' <<<"$OUTPUT"; then
101
+ echo -e "${GREEN}PASS${NC} Background step executed"
102
+ else
103
+ echo -e "${RED}FAIL${NC} Background step did not execute"
104
+ FAILS=$((FAILS + 1))
105
+ fi
106
+
107
+ if grep -q '\[STEP\] And a step with no trailing newline' <<<"$OUTPUT"; then
108
+ echo -e "${GREEN}PASS${NC} the no-trailing-newline last step executed"
109
+ else
110
+ echo -e "${RED}FAIL${NC} the no-trailing-newline last step did not execute"
111
+ FAILS=$((FAILS + 1))
112
+ fi
113
+
114
+ if grep -A2 '\[STEP\] And a step that should fail' <<<"$OUTPUT" | grep -q 'Result: FAIL'; then
115
+ echo -e "${GREEN}PASS${NC} the genuinely failing step is reported FAIL, not silently dropped"
116
+ else
117
+ echo -e "${RED}FAIL${NC} the genuinely failing step was not reported FAIL"
118
+ FAILS=$((FAILS + 1))
119
+ fi
120
+
121
+ if [[ "$FAILS" -eq 0 ]]; then
122
+ echo "G-15: PASS"
123
+ exit 0
124
+ fi
125
+ echo "G-15: FAIL ($FAILS assertion(s) failed)"
126
+ exit 1
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env bash
2
+ # story: e44s02
3
+ # golden-g16-spec-version-gap.sh — bigpowers' own repo must never show a spec
4
+ # version gap against itself.
5
+ #
6
+ # check-spec-version-gap.sh is a fully-formed SoT-drift detector for consuming
7
+ # projects (installed package.json version vs the spec-format version stamped
8
+ # or fingerprinted in their specs/), the same class of check as G-12, but it
9
+ # had no gate of its own and was reachable from nothing (G-13). Running it
10
+ # against this repo's own specs/ is the natural self-test the tool already
11
+ # supports via --project: bigpowers' own package.json version and its own
12
+ # specs/state.yaml bigpowers_version stamp must always agree.
13
+ #
14
+ # Usage: bash scripts/golden-g16-spec-version-gap.sh [--self-test]
15
+ # Exit 0: no gap (or, under --self-test, a deliberately injected gap was
16
+ # correctly detected)
17
+ # Exit 1: a real gap exists, or --self-test failed to detect an injected one
18
+
19
+ set -euo pipefail
20
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
21
+ resolve_repo_root
22
+ cd "$REPO_ROOT"
23
+
24
+ RED='\033[0;31m'
25
+ GREEN='\033[0;32m'
26
+ NC='\033[0m'
27
+
28
+ if [[ "${1:-}" == "--self-test" ]]; then
29
+ echo "=== G-16 self-test: prove the gap detector can fail ==="
30
+ TMP=$(mktemp -d)
31
+ trap 'rm -rf "$TMP"' EXIT
32
+ mkdir -p "$TMP/specs"
33
+ cp package.json "$TMP/package.json"
34
+ # A stamped version far behind package.json's must be reported as a gap.
35
+ # set +e around the call: under set -e, `out=$(cmd)` itself aborts the
36
+ # script when cmd exits non-zero — exactly the outcome under test here — so
37
+ # rc=$? would never be reached.
38
+ printf 'bigpowers_version: 0.0.1\nactive_flow: null\n' > "$TMP/specs/state.yaml"
39
+ set +e
40
+ out=$(bash scripts/check-spec-version-gap.sh --project "$TMP" --skip-block --json 2>&1)
41
+ rc=$?
42
+ set -e
43
+ # check-spec-version-gap.sh's stamp path emits json.dumps-formatted JSON
44
+ # ("gap": true, with a space); its fingerprint path emits hand-concatenated
45
+ # JSON ("gap":true, no space) — tolerate both rather than assuming one.
46
+ if [[ $rc -eq 1 ]] && grep -qE '"gap":[[:space:]]*true' <<<"$out"; then
47
+ echo -e "${GREEN}PASS${NC} injected version gap detected (exit $rc): $out"
48
+ echo "G-16 self-test: PASS"
49
+ exit 0
50
+ fi
51
+ echo -e "${RED}FAIL${NC} injected gap was not detected (exit $rc): $out"
52
+ echo "G-16 self-test: FAIL"
53
+ exit 1
54
+ fi
55
+
56
+ echo "=== G-16: spec version gap (self-check) ==="
57
+ # Same set -e hazard as the self-test above: a real gap exits non-zero, and
58
+ # without set +e this assignment would abort before the FAIL branch prints.
59
+ set +e
60
+ OUT=$(bash scripts/check-spec-version-gap.sh --project . --skip-block --json 2>&1)
61
+ RC=$?
62
+ set -e
63
+ echo " $OUT"
64
+
65
+ if [[ $RC -eq 0 ]]; then
66
+ echo -e "${GREEN}PASS${NC} no spec version gap"
67
+ echo "G-16: PASS"
68
+ exit 0
69
+ fi
70
+ echo -e "${RED}FAIL${NC} bigpowers' own specs/ disagree with its own package.json version (exit $RC)"
71
+ echo "G-16: FAIL"
72
+ exit 1
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env bash
2
+ # story: e37s05
3
+ # adapter-guard.sh — shared skill-name validation for every render adapter.
4
+ #
5
+ # Adapters interpolate the SkillIR `name` straight into a filesystem path
6
+ # (mkdir -p "$dir/$IR_NAME"). A name containing "/" or ".." therefore writes
7
+ # outside the destination directory.
8
+ #
9
+ # Ten adapters carried a private copy of this check (qwen_is_unsafe_skill_name
10
+ # and friends) and nine had none at all — and the nine unguarded ones were
11
+ # exactly the nine that never got a per-target test. One guard, sourced by every
12
+ # adapter, replaces both the duplication and the gap.
13
+
14
+ # Returns 0 (true) when the name must not be used as a path component.
15
+ bp_is_unsafe_skill_name() {
16
+ local name="${1-}"
17
+ [[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* || "$name" == .* ]]
18
+ }
19
+
20
+ # Echoes the name when safe; otherwise reports on stderr and returns 1.
21
+ # Usage inside render_skill: name="$(bp_assert_safe_skill_name "$IR_NAME" adaptername)" || return 1
22
+ bp_assert_safe_skill_name() {
23
+ local name="${1-}"
24
+ local adapter="${2:-adapter}"
25
+ if bp_is_unsafe_skill_name "$name"; then
26
+ echo "${adapter}: refusing unsafe skill name: ${name:-<empty>}" >&2
27
+ return 1
28
+ fi
29
+ printf '%s' "$name"
30
+ }
@@ -5,6 +5,23 @@
5
5
  if [ -n "${AUDIT_COMPLIANCE_REPORT_LOADED:-}" ]; then return 0; fi
6
6
  AUDIT_COMPLIANCE_REPORT_LOADED=1
7
7
 
8
+ # A score sitting exactly on the 94% threshold has zero margin: one more
9
+ # failing scenario (the suite grows over time) blocks all forward work under
10
+ # this repo's own Always-Green doctrine — it already happened once mid-session.
11
+ # pass-warn surfaces a thinning margin before it goes red; it still exits 0,
12
+ # it does not block, it only makes the OKF report and terminal output loud
13
+ # about a score close enough to the threshold to be worth attention.
14
+ audit_gate_status() {
15
+ local score="$1"
16
+ if [[ "$score" -lt 94 ]]; then
17
+ echo "fail"
18
+ elif [[ "$score" -lt 97 ]]; then
19
+ echo "pass-warn"
20
+ else
21
+ echo "pass"
22
+ fi
23
+ }
24
+
8
25
  audit_write_okf_report() {
9
26
  local OKF_DIR OKF_FILE TIMESTAMP GIT_COMMIT GATE TOTAL_GLOBAL_ALL
10
27
 
@@ -20,7 +37,7 @@ audit_write_okf_report() {
20
37
  OKF_FILE="$OKF_DIR/audit-$(date +%Y-%m-%d).okf.md"
21
38
  TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
22
39
  GIT_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo "unknown")
23
- GATE=$(if [[ $SCORE -ge 94 ]]; then echo "pass"; else echo "fail"; fi)
40
+ GATE=$(audit_gate_status "$SCORE")
24
41
 
25
42
  cat > "$OKF_FILE" << OKF_EOF
26
43
  ---
@@ -67,10 +84,18 @@ audit_print_summary_and_exit() {
67
84
  echo " SCORE: ${SCORE}% (threshold 94%)"
68
85
  fi
69
86
 
70
- if [[ $SCORE -ge 94 ]]; then
71
- echo " GATE: PASS"
72
- exit 0
73
- fi
74
- echo " GATE: FAIL (below 94%)"
75
- exit 1
87
+ case "$(audit_gate_status "$SCORE")" in
88
+ pass)
89
+ echo " GATE: PASS"
90
+ exit 0
91
+ ;;
92
+ pass-warn)
93
+ echo " GATE: PASS (WARNING: ${SCORE}% is within 3 points of the 94% threshold — margin is thin)"
94
+ exit 0
95
+ ;;
96
+ *)
97
+ echo " GATE: FAIL (below 94%)"
98
+ exit 1
99
+ ;;
100
+ esac
76
101
  }
@@ -84,13 +84,26 @@ audit_run_file() {
84
84
  TOTAL_PASS=0
85
85
  TOTAL_FAIL=0
86
86
 
87
- while IFS= read -r line; do
87
+ # `|| [[ -n "$line" ]]` is required: read returns non-zero on a final line
88
+ # with no trailing newline, so without this a feature file not ending in \n
89
+ # silently drops its last step — confirmed on karpathy.feature, whose last
90
+ # line ("And I should push back on unnecessary complexity") never appeared
91
+ # in [STEP] output at all.
92
+ while IFS= read -r line || [[ -n "$line" ]]; do
88
93
  line=$(echo "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
89
94
 
90
95
  if [[ "$line" =~ ^Feature: ]]; then
91
96
  CURRENT_FEATURE="${line#Feature: }"
92
97
  echo "FEATURE: $CURRENT_FEATURE"
93
98
  echo "## Feature: $CURRENT_FEATURE" >> "$REPORT_FILE"
99
+ elif [[ "$line" =~ ^Background: ]]; then
100
+ # A Background's Given/And lines must execute the same as a Scenario's —
101
+ # without this branch IN_SCENARIO never goes true here, so every step
102
+ # under Background is silently skipped (not FAILed, not counted at all).
103
+ # Runs once per file, matching how every other line here executes once
104
+ # as encountered — not true per-scenario Gherkin re-execution semantics.
105
+ IN_SCENARIO=true
106
+ CURRENT_SCENARIO="Background"
94
107
  elif [[ "$line" =~ ^Scenario: ]]; then
95
108
  CURRENT_SCENARIO="${line#Scenario: }"
96
109
  if [[ -n "$SCENARIO_FILTER" && "$CURRENT_SCENARIO" != "$SCENARIO_FILTER" ]]; then
@@ -19,10 +19,50 @@ GOLDEN_GATES=(
19
19
  # first so a vacuous gate is caught before its verdict is trusted.
20
20
  "g12-status-selftest:bash scripts/golden-g12-status-consistency.sh --self-test:false"
21
21
  "g12-status-consistency:bash scripts/golden-g12-status-consistency.sh:false"
22
- # Anti-vacuity for the target-contract seam: every contract declared in
23
- # targets.yaml must have a real assertion, and an unknown contract must FAIL
24
- # rather than SKIP+exit 0 (seven contracts were fail-open before this).
22
+ # audit-compliance-runner.sh silently dropped a Background: step and a
23
+ # feature file's last line when it had no trailing newline — a step exists,
24
+ # is correct, and never runs is exactly this session's recurring defect
25
+ # class. Fixture-based regression guard for both, plus a check that a fix
26
+ # to "make steps execute" doesn't also make a genuinely failing step report
27
+ # as PASS.
28
+ "g15-compliance-runner-selftest:bash scripts/golden-g15-compliance-runner-selftest.sh --self-test:false"
29
+ "g15-compliance-runner:bash scripts/golden-g15-compliance-runner-selftest.sh:false"
30
+ # Writing a script must be enough to make it run: G-13 fails if any
31
+ # scripts/*.sh is absent, unreferenced, and untagged bp-manual-utility.
32
+ # Broadened from scripts/test-*.sh only after a catalog-wide review found 9
33
+ # more orphans among non-test scripts; renamed to match (golden-g13-test-
34
+ # orphans.sh -> golden-g13-script-orphans.sh).
35
+ "g13-script-orphans-selftest:bash scripts/golden-g13-script-orphans.sh --self-test:false"
36
+ "g13-script-orphans:bash scripts/golden-g13-script-orphans.sh:false"
37
+ # An adapter that defines render_skill() must be dispatched by targets.yaml,
38
+ # or sync renders nothing for it while its install still claims success.
39
+ # docs/WORKFLOWS.md is generated from specs/workflows/*.yaml; a diagram nothing
40
+ # regenerates is a diagram that lies (see specs/archive/assets/README.md).
41
+ "workflow-diagrams-fresh:bash scripts/generate-workflow-diagrams.sh --check:false"
42
+ # REFERENCE.md nav tables are line-number indexes; hand-maintained they drift
43
+ # the moment a section grows (all 10 were stale when this gate was added).
44
+ "reference-nav-fresh:bash scripts/generate-reference-nav.sh --check:false"
45
+ "g14-adapter-dispatch-selftest:bash scripts/golden-g14-adapter-dispatch.sh --self-test:false"
46
+ "g14-adapter-dispatch:bash scripts/golden-g14-adapter-dispatch.sh:false"
47
+ # check-spec-version-gap.sh is a fully-formed SoT-drift detector for
48
+ # consuming projects but had no gate of its own (G-13 orphan). Self-checking
49
+ # bigpowers' own repo against its own package.json is the natural gate.
50
+ "g16-spec-version-gap-selftest:bash scripts/golden-g16-spec-version-gap.sh --self-test:false"
51
+ "g16-spec-version-gap:bash scripts/golden-g16-spec-version-gap.sh:false"
25
52
  "target-contracts:bash scripts/test-target-contracts.sh:false"
53
+ # Registry-driven replacements for the 25 hand-written per-target scripts.
54
+ "install-hub:bash scripts/test-install-hub.sh:false"
55
+ "adapter-render:bash scripts/test-adapter-render.sh:false"
56
+ "adapters:bash scripts/test-adapters.sh:false"
57
+ # Previously orphaned: present in scripts/ but reachable from no gate.
58
+ "tombstone-mechanism:bash scripts/test-tombstone-mechanism.sh:false"
59
+ "trace-strict:bash scripts/test-trace-strict.sh:false"
60
+ "trace-matrix-size:bash scripts/test-trace-matrix-size.sh:false"
61
+ "setup-no-pyyaml:bash scripts/test-setup-no-pyyaml.sh:false"
62
+ "install-distribute-only:bash scripts/test-install-distribute-only.sh:false"
63
+ "completeness-critic-scope:bash scripts/test-completeness-critic-scope.sh:false"
64
+ "epics-wiki-zero-stories:bash scripts/test-generate-epics-wiki-zero-stories.sh:false"
65
+ "golden-g11-worktree-venv:bash scripts/test-golden-g11-worktree-venv.sh:false"
26
66
  "install-helpers:bash scripts/test-install-helpers.sh:false"
27
67
  "import-boundaries:bash scripts/check-import-boundaries.sh:false"
28
68
  "skill-catalog:bash scripts/validate-skill-catalog.sh:false"