bigpowers 2.83.4 → 2.84.1

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 (528) hide show
  1. package/.agents/skills/audit-code/SKILL.md +4 -7
  2. package/.agents/skills/grill-me/SKILL.md +12 -0
  3. package/.agents/skills/grill-with-docs/SKILL.md +12 -0
  4. package/.agents/skills/request-review/SKILL.md +1 -0
  5. package/.agents/skills/wire-ci/SKILL.md +164 -181
  6. package/.codebuddy/skills/align-grid/SKILL.md +110 -0
  7. package/.codebuddy/skills/assess-impact/SKILL.md +91 -0
  8. package/.codebuddy/skills/audit-code/SKILL.md +184 -0
  9. package/.codebuddy/skills/audit-plan/SKILL.md +89 -0
  10. package/.codebuddy/skills/build-epic/SKILL.md +105 -0
  11. package/.codebuddy/skills/change-request/SKILL.md +121 -0
  12. package/.codebuddy/skills/commit-message/SKILL.md +140 -0
  13. package/.codebuddy/skills/compose-workflow/SKILL.md +82 -0
  14. package/.codebuddy/skills/context7-mcp/SKILL.md +55 -0
  15. package/.codebuddy/skills/craft-skill/SKILL.md +179 -0
  16. package/.codebuddy/skills/deepen-architecture/SKILL.md +260 -0
  17. package/.codebuddy/skills/define-language/SKILL.md +80 -0
  18. package/.codebuddy/skills/define-success/SKILL.md +65 -0
  19. package/.codebuddy/skills/delegate-task/SKILL.md +91 -0
  20. package/.codebuddy/skills/deploy/SKILL.md +198 -0
  21. package/.codebuddy/skills/design-interface/SKILL.md +97 -0
  22. package/.codebuddy/skills/develop-tdd/SKILL.md +406 -0
  23. package/.codebuddy/skills/diagnose-root/SKILL.md +24 -0
  24. package/.codebuddy/skills/diagnose-stall/SKILL.md +54 -0
  25. package/.codebuddy/skills/dispatch-agents/SKILL.md +118 -0
  26. package/.codebuddy/skills/edit-document/SKILL.md +23 -0
  27. package/.codebuddy/skills/elaborate-spec/SKILL.md +101 -0
  28. package/.codebuddy/skills/enforce-first/SKILL.md +32 -0
  29. package/.codebuddy/skills/evolve-skill/SKILL.md +55 -0
  30. package/.codebuddy/skills/execute-plan/SKILL.md +61 -0
  31. package/.codebuddy/skills/extract-design/SKILL.md +132 -0
  32. package/.codebuddy/skills/find-way/SKILL.md +191 -0
  33. package/.codebuddy/skills/fix-bug/SKILL.md +67 -0
  34. package/.codebuddy/skills/gate-trace/SKILL.md +88 -0
  35. package/.codebuddy/skills/generate-allure-report/SKILL.md +285 -0
  36. package/.codebuddy/skills/grill-me/SKILL.md +108 -0
  37. package/.codebuddy/skills/grill-with-docs/SKILL.md +53 -0
  38. package/.codebuddy/skills/guard-git/SKILL.md +231 -0
  39. package/.codebuddy/skills/harden-vps/SKILL.md +288 -0
  40. package/.codebuddy/skills/hook-commits/SKILL.md +94 -0
  41. package/.codebuddy/skills/inspect-quality/SKILL.md +106 -0
  42. package/.codebuddy/skills/investigate-bug/SKILL.md +127 -0
  43. package/.codebuddy/skills/kickoff-branch/SKILL.md +143 -0
  44. package/.codebuddy/skills/maintain-wiki/SKILL.md +64 -0
  45. package/.codebuddy/skills/map-codebase/SKILL.md +71 -0
  46. package/.codebuddy/skills/migrate-spec/SKILL.md +862 -0
  47. package/.codebuddy/skills/model-domain/SKILL.md +232 -0
  48. package/.codebuddy/skills/orchestrate-project/SKILL.md +174 -0
  49. package/.codebuddy/skills/organize-workspace/SKILL.md +164 -0
  50. package/.codebuddy/skills/plan-refactor/SKILL.md +87 -0
  51. package/.codebuddy/skills/plan-release/SKILL.md +145 -0
  52. package/.codebuddy/skills/plan-tests/SKILL.md +75 -0
  53. package/.codebuddy/skills/plan-work/SKILL.md +260 -0
  54. package/.codebuddy/skills/publish-package/SKILL.md +328 -0
  55. package/.codebuddy/skills/quick-fix/SKILL.md +114 -0
  56. package/.codebuddy/skills/release-branch/SKILL.md +298 -0
  57. package/.codebuddy/skills/request-review/SKILL.md +113 -0
  58. package/.codebuddy/skills/research-first/SKILL.md +87 -0
  59. package/.codebuddy/skills/reset-baseline/SKILL.md +21 -0
  60. package/.codebuddy/skills/respond-review/SKILL.md +71 -0
  61. package/.codebuddy/skills/run-benchmark/SKILL.md +85 -0
  62. package/.codebuddy/skills/run-evals/SKILL.md +80 -0
  63. package/.codebuddy/skills/run-planning/SKILL.md +101 -0
  64. package/.codebuddy/skills/scope-work/SKILL.md +63 -0
  65. package/.codebuddy/skills/search-skills/SKILL.md +73 -0
  66. package/.codebuddy/skills/security-review/SKILL.md +384 -0
  67. package/.codebuddy/skills/seed-conventions/SKILL.md +285 -0
  68. package/.codebuddy/skills/session-state/SKILL.md +146 -0
  69. package/.codebuddy/skills/setup-environment/SKILL.md +39 -0
  70. package/.codebuddy/skills/simulate-agents/SKILL.md +26 -0
  71. package/.codebuddy/skills/slice-tasks/SKILL.md +68 -0
  72. package/.codebuddy/skills/smoke-test/SKILL.md +242 -0
  73. package/.codebuddy/skills/spike-prototype/SKILL.md +95 -0
  74. package/.codebuddy/skills/stocktake-skills/SKILL.md +72 -0
  75. package/.codebuddy/skills/survey-context/SKILL.md +135 -0
  76. package/.codebuddy/skills/terse-mode/SKILL.md +42 -0
  77. package/.codebuddy/skills/trace-requirement/SKILL.md +69 -0
  78. package/.codebuddy/skills/using-bigpowers/SKILL.md +111 -0
  79. package/.codebuddy/skills/validate-contracts/SKILL.md +309 -0
  80. package/.codebuddy/skills/validate-fix/SKILL.md +106 -0
  81. package/.codebuddy/skills/verify-work/SKILL.md +191 -0
  82. package/.codebuddy/skills/visual-dashboard/SKILL.md +50 -0
  83. package/.codebuddy/skills/wire-ci/SKILL.md +358 -0
  84. package/.codebuddy/skills/wire-observability/SKILL.md +97 -0
  85. package/.codebuddy/skills/write-document/SKILL.md +255 -0
  86. package/.codex/skills/align-grid/SKILL.md +110 -0
  87. package/.codex/skills/assess-impact/SKILL.md +91 -0
  88. package/.codex/skills/audit-code/SKILL.md +184 -0
  89. package/.codex/skills/audit-plan/SKILL.md +89 -0
  90. package/.codex/skills/build-epic/SKILL.md +105 -0
  91. package/.codex/skills/change-request/SKILL.md +121 -0
  92. package/.codex/skills/commit-message/SKILL.md +140 -0
  93. package/.codex/skills/compose-workflow/SKILL.md +82 -0
  94. package/.codex/skills/context7-mcp/SKILL.md +55 -0
  95. package/.codex/skills/craft-skill/SKILL.md +179 -0
  96. package/.codex/skills/deepen-architecture/SKILL.md +260 -0
  97. package/.codex/skills/define-language/SKILL.md +80 -0
  98. package/.codex/skills/define-success/SKILL.md +65 -0
  99. package/.codex/skills/delegate-task/SKILL.md +91 -0
  100. package/.codex/skills/deploy/SKILL.md +198 -0
  101. package/.codex/skills/design-interface/SKILL.md +97 -0
  102. package/.codex/skills/develop-tdd/SKILL.md +406 -0
  103. package/.codex/skills/diagnose-root/SKILL.md +24 -0
  104. package/.codex/skills/diagnose-stall/SKILL.md +54 -0
  105. package/.codex/skills/dispatch-agents/SKILL.md +118 -0
  106. package/.codex/skills/edit-document/SKILL.md +23 -0
  107. package/.codex/skills/elaborate-spec/SKILL.md +101 -0
  108. package/.codex/skills/enforce-first/SKILL.md +32 -0
  109. package/.codex/skills/evolve-skill/SKILL.md +55 -0
  110. package/.codex/skills/execute-plan/SKILL.md +61 -0
  111. package/.codex/skills/extract-design/SKILL.md +132 -0
  112. package/.codex/skills/find-way/SKILL.md +191 -0
  113. package/.codex/skills/fix-bug/SKILL.md +67 -0
  114. package/.codex/skills/gate-trace/SKILL.md +88 -0
  115. package/.codex/skills/generate-allure-report/SKILL.md +285 -0
  116. package/.codex/skills/grill-me/SKILL.md +108 -0
  117. package/.codex/skills/grill-with-docs/SKILL.md +53 -0
  118. package/.codex/skills/guard-git/SKILL.md +231 -0
  119. package/.codex/skills/harden-vps/SKILL.md +288 -0
  120. package/.codex/skills/hook-commits/SKILL.md +94 -0
  121. package/.codex/skills/inspect-quality/SKILL.md +106 -0
  122. package/.codex/skills/investigate-bug/SKILL.md +127 -0
  123. package/.codex/skills/kickoff-branch/SKILL.md +143 -0
  124. package/.codex/skills/maintain-wiki/SKILL.md +64 -0
  125. package/.codex/skills/map-codebase/SKILL.md +71 -0
  126. package/.codex/skills/migrate-spec/SKILL.md +862 -0
  127. package/.codex/skills/model-domain/SKILL.md +232 -0
  128. package/.codex/skills/orchestrate-project/SKILL.md +174 -0
  129. package/.codex/skills/organize-workspace/SKILL.md +164 -0
  130. package/.codex/skills/plan-refactor/SKILL.md +87 -0
  131. package/.codex/skills/plan-release/SKILL.md +145 -0
  132. package/.codex/skills/plan-tests/SKILL.md +75 -0
  133. package/.codex/skills/plan-work/SKILL.md +260 -0
  134. package/.codex/skills/publish-package/SKILL.md +328 -0
  135. package/.codex/skills/quick-fix/SKILL.md +114 -0
  136. package/.codex/skills/release-branch/SKILL.md +298 -0
  137. package/.codex/skills/request-review/SKILL.md +113 -0
  138. package/.codex/skills/research-first/SKILL.md +87 -0
  139. package/.codex/skills/reset-baseline/SKILL.md +21 -0
  140. package/.codex/skills/respond-review/SKILL.md +71 -0
  141. package/.codex/skills/run-benchmark/SKILL.md +85 -0
  142. package/.codex/skills/run-evals/SKILL.md +80 -0
  143. package/.codex/skills/run-planning/SKILL.md +101 -0
  144. package/.codex/skills/scope-work/SKILL.md +63 -0
  145. package/.codex/skills/search-skills/SKILL.md +73 -0
  146. package/.codex/skills/security-review/SKILL.md +384 -0
  147. package/.codex/skills/seed-conventions/SKILL.md +285 -0
  148. package/.codex/skills/session-state/SKILL.md +146 -0
  149. package/.codex/skills/setup-environment/SKILL.md +39 -0
  150. package/.codex/skills/simulate-agents/SKILL.md +26 -0
  151. package/.codex/skills/slice-tasks/SKILL.md +68 -0
  152. package/.codex/skills/smoke-test/SKILL.md +242 -0
  153. package/.codex/skills/spike-prototype/SKILL.md +95 -0
  154. package/.codex/skills/stocktake-skills/SKILL.md +72 -0
  155. package/.codex/skills/survey-context/SKILL.md +135 -0
  156. package/.codex/skills/terse-mode/SKILL.md +42 -0
  157. package/.codex/skills/trace-requirement/SKILL.md +69 -0
  158. package/.codex/skills/using-bigpowers/SKILL.md +111 -0
  159. package/.codex/skills/validate-contracts/SKILL.md +309 -0
  160. package/.codex/skills/validate-fix/SKILL.md +106 -0
  161. package/.codex/skills/verify-work/SKILL.md +191 -0
  162. package/.codex/skills/visual-dashboard/SKILL.md +50 -0
  163. package/.codex/skills/wire-ci/SKILL.md +358 -0
  164. package/.codex/skills/wire-observability/SKILL.md +97 -0
  165. package/.codex/skills/write-document/SKILL.md +255 -0
  166. package/.hermes/skills/audit-code/SKILL.md +4 -7
  167. package/.hermes/skills/grill-me/SKILL.md +12 -0
  168. package/.hermes/skills/grill-with-docs/SKILL.md +12 -0
  169. package/.hermes/skills/request-review/SKILL.md +1 -0
  170. package/.hermes/skills/wire-ci/SKILL.md +164 -181
  171. package/.kilocode/rules/align-grid.md +110 -0
  172. package/.kilocode/rules/assess-impact.md +91 -0
  173. package/.kilocode/rules/audit-code.md +184 -0
  174. package/.kilocode/rules/audit-plan.md +89 -0
  175. package/.kilocode/rules/build-epic.md +105 -0
  176. package/.kilocode/rules/change-request.md +121 -0
  177. package/.kilocode/rules/commit-message.md +140 -0
  178. package/.kilocode/rules/compose-workflow.md +82 -0
  179. package/.kilocode/rules/context7-mcp.md +55 -0
  180. package/.kilocode/rules/craft-skill.md +179 -0
  181. package/.kilocode/rules/deepen-architecture.md +260 -0
  182. package/.kilocode/rules/define-language.md +80 -0
  183. package/.kilocode/rules/define-success.md +65 -0
  184. package/.kilocode/rules/delegate-task.md +91 -0
  185. package/.kilocode/rules/deploy.md +198 -0
  186. package/.kilocode/rules/design-interface.md +97 -0
  187. package/.kilocode/rules/develop-tdd.md +406 -0
  188. package/.kilocode/rules/diagnose-root.md +24 -0
  189. package/.kilocode/rules/diagnose-stall.md +54 -0
  190. package/.kilocode/rules/dispatch-agents.md +118 -0
  191. package/.kilocode/rules/edit-document.md +23 -0
  192. package/.kilocode/rules/elaborate-spec.md +101 -0
  193. package/.kilocode/rules/enforce-first.md +32 -0
  194. package/.kilocode/rules/evolve-skill.md +55 -0
  195. package/.kilocode/rules/execute-plan.md +61 -0
  196. package/.kilocode/rules/extract-design.md +132 -0
  197. package/.kilocode/rules/find-way.md +191 -0
  198. package/.kilocode/rules/fix-bug.md +67 -0
  199. package/.kilocode/rules/gate-trace.md +88 -0
  200. package/.kilocode/rules/generate-allure-report.md +285 -0
  201. package/.kilocode/rules/grill-me.md +108 -0
  202. package/.kilocode/rules/grill-with-docs.md +53 -0
  203. package/.kilocode/rules/guard-git.md +231 -0
  204. package/.kilocode/rules/harden-vps.md +288 -0
  205. package/.kilocode/rules/hook-commits.md +94 -0
  206. package/.kilocode/rules/inspect-quality.md +106 -0
  207. package/.kilocode/rules/investigate-bug.md +127 -0
  208. package/.kilocode/rules/kickoff-branch.md +143 -0
  209. package/.kilocode/rules/maintain-wiki.md +64 -0
  210. package/.kilocode/rules/map-codebase.md +71 -0
  211. package/.kilocode/rules/migrate-spec.md +862 -0
  212. package/.kilocode/rules/model-domain.md +232 -0
  213. package/.kilocode/rules/orchestrate-project.md +174 -0
  214. package/.kilocode/rules/organize-workspace.md +164 -0
  215. package/.kilocode/rules/plan-refactor.md +87 -0
  216. package/.kilocode/rules/plan-release.md +145 -0
  217. package/.kilocode/rules/plan-tests.md +75 -0
  218. package/.kilocode/rules/plan-work.md +260 -0
  219. package/.kilocode/rules/publish-package.md +328 -0
  220. package/.kilocode/rules/quick-fix.md +114 -0
  221. package/.kilocode/rules/release-branch.md +298 -0
  222. package/.kilocode/rules/request-review.md +113 -0
  223. package/.kilocode/rules/research-first.md +87 -0
  224. package/.kilocode/rules/reset-baseline.md +21 -0
  225. package/.kilocode/rules/respond-review.md +71 -0
  226. package/.kilocode/rules/run-benchmark.md +85 -0
  227. package/.kilocode/rules/run-evals.md +80 -0
  228. package/.kilocode/rules/run-planning.md +101 -0
  229. package/.kilocode/rules/scope-work.md +63 -0
  230. package/.kilocode/rules/search-skills.md +73 -0
  231. package/.kilocode/rules/security-review.md +384 -0
  232. package/.kilocode/rules/seed-conventions.md +285 -0
  233. package/.kilocode/rules/session-state.md +146 -0
  234. package/.kilocode/rules/setup-environment.md +39 -0
  235. package/.kilocode/rules/simulate-agents.md +26 -0
  236. package/.kilocode/rules/slice-tasks.md +68 -0
  237. package/.kilocode/rules/smoke-test.md +242 -0
  238. package/.kilocode/rules/spike-prototype.md +95 -0
  239. package/.kilocode/rules/stocktake-skills.md +72 -0
  240. package/.kilocode/rules/survey-context.md +135 -0
  241. package/.kilocode/rules/terse-mode.md +42 -0
  242. package/.kilocode/rules/trace-requirement.md +69 -0
  243. package/.kilocode/rules/using-bigpowers.md +111 -0
  244. package/.kilocode/rules/validate-contracts.md +309 -0
  245. package/.kilocode/rules/validate-fix.md +106 -0
  246. package/.kilocode/rules/verify-work.md +191 -0
  247. package/.kilocode/rules/visual-dashboard.md +50 -0
  248. package/.kilocode/rules/wire-ci.md +358 -0
  249. package/.kilocode/rules/wire-observability.md +97 -0
  250. package/.kilocode/rules/write-document.md +255 -0
  251. package/.mimocode/skills/audit-code/SKILL.md +4 -7
  252. package/.mimocode/skills/grill-me/SKILL.md +12 -0
  253. package/.mimocode/skills/grill-with-docs/SKILL.md +12 -0
  254. package/.mimocode/skills/request-review/SKILL.md +1 -0
  255. package/.mimocode/skills/wire-ci/SKILL.md +164 -181
  256. package/.pi/package.json +1 -1
  257. package/.pi/prompts/audit-code.md +4 -7
  258. package/.pi/prompts/grill-me.md +12 -0
  259. package/.pi/prompts/grill-with-docs.md +12 -0
  260. package/.pi/prompts/request-review.md +1 -0
  261. package/.pi/prompts/wire-ci.md +164 -181
  262. package/.pi/skills/audit-code/SKILL.md +4 -7
  263. package/.pi/skills/grill-me/SKILL.md +12 -0
  264. package/.pi/skills/grill-with-docs/SKILL.md +12 -0
  265. package/.pi/skills/request-review/SKILL.md +1 -0
  266. package/.pi/skills/wire-ci/SKILL.md +164 -181
  267. package/.trae/skills/align-grid/SKILL.md +110 -0
  268. package/.trae/skills/assess-impact/SKILL.md +91 -0
  269. package/.trae/skills/audit-code/SKILL.md +184 -0
  270. package/.trae/skills/audit-plan/SKILL.md +89 -0
  271. package/.trae/skills/build-epic/SKILL.md +105 -0
  272. package/.trae/skills/change-request/SKILL.md +121 -0
  273. package/.trae/skills/commit-message/SKILL.md +140 -0
  274. package/.trae/skills/compose-workflow/SKILL.md +82 -0
  275. package/.trae/skills/context7-mcp/SKILL.md +55 -0
  276. package/.trae/skills/craft-skill/SKILL.md +179 -0
  277. package/.trae/skills/deepen-architecture/SKILL.md +260 -0
  278. package/.trae/skills/define-language/SKILL.md +80 -0
  279. package/.trae/skills/define-success/SKILL.md +65 -0
  280. package/.trae/skills/delegate-task/SKILL.md +91 -0
  281. package/.trae/skills/deploy/SKILL.md +198 -0
  282. package/.trae/skills/design-interface/SKILL.md +97 -0
  283. package/.trae/skills/develop-tdd/SKILL.md +406 -0
  284. package/.trae/skills/diagnose-root/SKILL.md +24 -0
  285. package/.trae/skills/diagnose-stall/SKILL.md +54 -0
  286. package/.trae/skills/dispatch-agents/SKILL.md +118 -0
  287. package/.trae/skills/edit-document/SKILL.md +23 -0
  288. package/.trae/skills/elaborate-spec/SKILL.md +101 -0
  289. package/.trae/skills/enforce-first/SKILL.md +32 -0
  290. package/.trae/skills/evolve-skill/SKILL.md +55 -0
  291. package/.trae/skills/execute-plan/SKILL.md +61 -0
  292. package/.trae/skills/extract-design/SKILL.md +132 -0
  293. package/.trae/skills/find-way/SKILL.md +191 -0
  294. package/.trae/skills/fix-bug/SKILL.md +67 -0
  295. package/.trae/skills/gate-trace/SKILL.md +88 -0
  296. package/.trae/skills/generate-allure-report/SKILL.md +285 -0
  297. package/.trae/skills/grill-me/SKILL.md +108 -0
  298. package/.trae/skills/grill-with-docs/SKILL.md +53 -0
  299. package/.trae/skills/guard-git/SKILL.md +231 -0
  300. package/.trae/skills/harden-vps/SKILL.md +288 -0
  301. package/.trae/skills/hook-commits/SKILL.md +94 -0
  302. package/.trae/skills/inspect-quality/SKILL.md +106 -0
  303. package/.trae/skills/investigate-bug/SKILL.md +127 -0
  304. package/.trae/skills/kickoff-branch/SKILL.md +143 -0
  305. package/.trae/skills/maintain-wiki/SKILL.md +64 -0
  306. package/.trae/skills/map-codebase/SKILL.md +71 -0
  307. package/.trae/skills/migrate-spec/SKILL.md +862 -0
  308. package/.trae/skills/model-domain/SKILL.md +232 -0
  309. package/.trae/skills/orchestrate-project/SKILL.md +174 -0
  310. package/.trae/skills/organize-workspace/SKILL.md +164 -0
  311. package/.trae/skills/plan-refactor/SKILL.md +87 -0
  312. package/.trae/skills/plan-release/SKILL.md +145 -0
  313. package/.trae/skills/plan-tests/SKILL.md +75 -0
  314. package/.trae/skills/plan-work/SKILL.md +260 -0
  315. package/.trae/skills/publish-package/SKILL.md +328 -0
  316. package/.trae/skills/quick-fix/SKILL.md +114 -0
  317. package/.trae/skills/release-branch/SKILL.md +298 -0
  318. package/.trae/skills/request-review/SKILL.md +113 -0
  319. package/.trae/skills/research-first/SKILL.md +87 -0
  320. package/.trae/skills/reset-baseline/SKILL.md +21 -0
  321. package/.trae/skills/respond-review/SKILL.md +71 -0
  322. package/.trae/skills/run-benchmark/SKILL.md +85 -0
  323. package/.trae/skills/run-evals/SKILL.md +80 -0
  324. package/.trae/skills/run-planning/SKILL.md +101 -0
  325. package/.trae/skills/scope-work/SKILL.md +63 -0
  326. package/.trae/skills/search-skills/SKILL.md +73 -0
  327. package/.trae/skills/security-review/SKILL.md +384 -0
  328. package/.trae/skills/seed-conventions/SKILL.md +285 -0
  329. package/.trae/skills/session-state/SKILL.md +146 -0
  330. package/.trae/skills/setup-environment/SKILL.md +39 -0
  331. package/.trae/skills/simulate-agents/SKILL.md +26 -0
  332. package/.trae/skills/slice-tasks/SKILL.md +68 -0
  333. package/.trae/skills/smoke-test/SKILL.md +242 -0
  334. package/.trae/skills/spike-prototype/SKILL.md +95 -0
  335. package/.trae/skills/stocktake-skills/SKILL.md +72 -0
  336. package/.trae/skills/survey-context/SKILL.md +135 -0
  337. package/.trae/skills/terse-mode/SKILL.md +42 -0
  338. package/.trae/skills/trace-requirement/SKILL.md +69 -0
  339. package/.trae/skills/using-bigpowers/SKILL.md +111 -0
  340. package/.trae/skills/validate-contracts/SKILL.md +309 -0
  341. package/.trae/skills/validate-fix/SKILL.md +106 -0
  342. package/.trae/skills/verify-work/SKILL.md +191 -0
  343. package/.trae/skills/visual-dashboard/SKILL.md +50 -0
  344. package/.trae/skills/wire-ci/SKILL.md +358 -0
  345. package/.trae/skills/wire-observability/SKILL.md +97 -0
  346. package/.trae/skills/write-document/SKILL.md +255 -0
  347. package/.windsurf/rules/align-grid.md +110 -0
  348. package/.windsurf/rules/assess-impact.md +91 -0
  349. package/.windsurf/rules/audit-code.md +184 -0
  350. package/.windsurf/rules/audit-plan.md +89 -0
  351. package/.windsurf/rules/build-epic.md +105 -0
  352. package/.windsurf/rules/change-request.md +121 -0
  353. package/.windsurf/rules/commit-message.md +140 -0
  354. package/.windsurf/rules/compose-workflow.md +82 -0
  355. package/.windsurf/rules/context7-mcp.md +55 -0
  356. package/.windsurf/rules/craft-skill.md +179 -0
  357. package/.windsurf/rules/deepen-architecture.md +260 -0
  358. package/.windsurf/rules/define-language.md +80 -0
  359. package/.windsurf/rules/define-success.md +65 -0
  360. package/.windsurf/rules/delegate-task.md +91 -0
  361. package/.windsurf/rules/deploy.md +198 -0
  362. package/.windsurf/rules/design-interface.md +97 -0
  363. package/.windsurf/rules/develop-tdd.md +406 -0
  364. package/.windsurf/rules/diagnose-root.md +24 -0
  365. package/.windsurf/rules/diagnose-stall.md +54 -0
  366. package/.windsurf/rules/dispatch-agents.md +118 -0
  367. package/.windsurf/rules/edit-document.md +23 -0
  368. package/.windsurf/rules/elaborate-spec.md +101 -0
  369. package/.windsurf/rules/enforce-first.md +32 -0
  370. package/.windsurf/rules/evolve-skill.md +55 -0
  371. package/.windsurf/rules/execute-plan.md +61 -0
  372. package/.windsurf/rules/extract-design.md +132 -0
  373. package/.windsurf/rules/find-way.md +191 -0
  374. package/.windsurf/rules/fix-bug.md +67 -0
  375. package/.windsurf/rules/gate-trace.md +88 -0
  376. package/.windsurf/rules/generate-allure-report.md +285 -0
  377. package/.windsurf/rules/grill-me.md +108 -0
  378. package/.windsurf/rules/grill-with-docs.md +53 -0
  379. package/.windsurf/rules/guard-git.md +231 -0
  380. package/.windsurf/rules/harden-vps.md +288 -0
  381. package/.windsurf/rules/hook-commits.md +94 -0
  382. package/.windsurf/rules/inspect-quality.md +106 -0
  383. package/.windsurf/rules/investigate-bug.md +127 -0
  384. package/.windsurf/rules/kickoff-branch.md +143 -0
  385. package/.windsurf/rules/maintain-wiki.md +64 -0
  386. package/.windsurf/rules/map-codebase.md +71 -0
  387. package/.windsurf/rules/migrate-spec.md +862 -0
  388. package/.windsurf/rules/model-domain.md +232 -0
  389. package/.windsurf/rules/orchestrate-project.md +174 -0
  390. package/.windsurf/rules/organize-workspace.md +164 -0
  391. package/.windsurf/rules/plan-refactor.md +87 -0
  392. package/.windsurf/rules/plan-release.md +145 -0
  393. package/.windsurf/rules/plan-tests.md +75 -0
  394. package/.windsurf/rules/plan-work.md +260 -0
  395. package/.windsurf/rules/publish-package.md +328 -0
  396. package/.windsurf/rules/quick-fix.md +114 -0
  397. package/.windsurf/rules/release-branch.md +298 -0
  398. package/.windsurf/rules/request-review.md +113 -0
  399. package/.windsurf/rules/research-first.md +87 -0
  400. package/.windsurf/rules/reset-baseline.md +21 -0
  401. package/.windsurf/rules/respond-review.md +71 -0
  402. package/.windsurf/rules/run-benchmark.md +85 -0
  403. package/.windsurf/rules/run-evals.md +80 -0
  404. package/.windsurf/rules/run-planning.md +101 -0
  405. package/.windsurf/rules/scope-work.md +63 -0
  406. package/.windsurf/rules/search-skills.md +73 -0
  407. package/.windsurf/rules/security-review.md +384 -0
  408. package/.windsurf/rules/seed-conventions.md +285 -0
  409. package/.windsurf/rules/session-state.md +146 -0
  410. package/.windsurf/rules/setup-environment.md +39 -0
  411. package/.windsurf/rules/simulate-agents.md +26 -0
  412. package/.windsurf/rules/slice-tasks.md +68 -0
  413. package/.windsurf/rules/smoke-test.md +242 -0
  414. package/.windsurf/rules/spike-prototype.md +95 -0
  415. package/.windsurf/rules/stocktake-skills.md +72 -0
  416. package/.windsurf/rules/survey-context.md +135 -0
  417. package/.windsurf/rules/terse-mode.md +42 -0
  418. package/.windsurf/rules/trace-requirement.md +69 -0
  419. package/.windsurf/rules/using-bigpowers.md +111 -0
  420. package/.windsurf/rules/validate-contracts.md +309 -0
  421. package/.windsurf/rules/validate-fix.md +106 -0
  422. package/.windsurf/rules/verify-work.md +191 -0
  423. package/.windsurf/rules/visual-dashboard.md +50 -0
  424. package/.windsurf/rules/wire-ci.md +358 -0
  425. package/.windsurf/rules/wire-observability.md +97 -0
  426. package/.windsurf/rules/write-document.md +255 -0
  427. package/.zcode/skills/audit-code/SKILL.md +4 -7
  428. package/.zcode/skills/grill-me/SKILL.md +12 -0
  429. package/.zcode/skills/grill-with-docs/SKILL.md +12 -0
  430. package/.zcode/skills/request-review/SKILL.md +1 -0
  431. package/.zcode/skills/wire-ci/SKILL.md +164 -181
  432. package/CHANGELOG.md +37 -0
  433. package/CONVENTIONS.md +22 -0
  434. package/README.md +14 -1
  435. package/SKILL-INDEX.md +84 -76
  436. package/bin/setup.js +9 -1
  437. package/instructions +1 -0
  438. package/package.json +1 -1
  439. package/scripts/adapters/cline.sh +53 -3
  440. package/scripts/adapters/codebuddy.sh +58 -0
  441. package/scripts/adapters/codex.sh +58 -0
  442. package/scripts/adapters/copilot.sh +58 -0
  443. package/scripts/adapters/kilocode.sh +44 -3
  444. package/scripts/adapters/opencode.sh +58 -0
  445. package/scripts/adapters/qwen.sh +53 -1
  446. package/scripts/adapters/trae.sh +58 -0
  447. package/scripts/adapters/windsurf.sh +52 -0
  448. package/scripts/bp-yaml-set.sh +2 -0
  449. package/scripts/generate-skill-index.sh +20 -4
  450. package/scripts/generate-wave-b-hub.py +31 -0
  451. package/scripts/golden-g04-selftest.sh +19 -0
  452. package/scripts/hooks/cline/HOOKS.md +16 -0
  453. package/scripts/hooks/cline/hooks-manifest.json +12 -0
  454. package/scripts/hooks/cline/plugin/guard-git-plugin.ts +16 -0
  455. package/scripts/hooks/codebuddy/HOOKS.md +24 -0
  456. package/scripts/hooks/codebuddy/hooks-manifest.json +20 -0
  457. package/scripts/hooks/codebuddy/pre-tool-git-guard.sh +22 -0
  458. package/scripts/hooks/codebuddy/settings.example.json +16 -0
  459. package/scripts/hooks/codex/HOOKS.md +21 -0
  460. package/scripts/hooks/codex/hooks-manifest.json +17 -0
  461. package/scripts/hooks/codex/pre-tool-git-guard.sh +22 -0
  462. package/scripts/hooks/codex/settings.example.json +16 -0
  463. package/scripts/hooks/kilocode/HOOKS.md +16 -0
  464. package/scripts/hooks/kilocode/hooks-manifest.json +12 -0
  465. package/scripts/hooks/kilocode/plugin/guard-git-plugin.ts +16 -0
  466. package/scripts/hooks/qwen/HOOKS.md +27 -0
  467. package/scripts/hooks/qwen/hooks-manifest.json +23 -0
  468. package/scripts/hooks/qwen/pre-tool-git-guard.sh +22 -0
  469. package/scripts/hooks/qwen/settings.example.json +16 -0
  470. package/scripts/hooks/trae/HOOKS.md +17 -0
  471. package/scripts/hooks/trae/hooks-manifest.json +13 -0
  472. package/scripts/hooks/trae/pre-tool-git-guard.sh +22 -0
  473. package/scripts/hooks/trae/settings.example.json +16 -0
  474. package/scripts/hooks/windsurf/HOOKS.md +23 -0
  475. package/scripts/hooks/windsurf/hooks-manifest.json +19 -0
  476. package/scripts/hooks/windsurf/pre-tool-git-guard.sh +22 -0
  477. package/scripts/hooks/windsurf/settings.example.json +16 -0
  478. package/scripts/install.sh +33 -373
  479. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  480. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  481. package/scripts/lib/context-wire.sh +5 -0
  482. package/scripts/lib/install-grep.sh +18 -0
  483. package/scripts/lib/install-helpers.js +139 -2
  484. package/scripts/lib/install-targets-a.sh +227 -0
  485. package/scripts/lib/install-targets-b.sh +226 -0
  486. package/scripts/lib/install-targets-c.sh +128 -0
  487. package/scripts/lib/install-targets-d.sh +179 -0
  488. package/scripts/lib/srp-engine.py +2 -70
  489. package/scripts/lib/srp_engine_links.py +59 -0
  490. package/scripts/lib/wave_b_hub_codegen_helpers.py +273 -0
  491. package/scripts/lib/wave_b_hub_codegen_install.py +134 -0
  492. package/scripts/lib/wave_b_hub_config.py +130 -0
  493. package/scripts/lib/wave_b_hub_patch.py +213 -0
  494. package/scripts/record-cycle-time.sh +3 -14
  495. package/scripts/targets.yaml +75 -2
  496. package/scripts/test-agy-hub.sh +11 -10
  497. package/scripts/test-cline-adapter.sh +55 -0
  498. package/scripts/test-cline-hub.sh +48 -0
  499. package/scripts/test-codebuddy-adapter.sh +63 -0
  500. package/scripts/test-codebuddy-hub.sh +49 -0
  501. package/scripts/test-codex-adapter.sh +63 -0
  502. package/scripts/test-codex-hub.sh +49 -0
  503. package/scripts/test-copilot-adapter.sh +47 -0
  504. package/scripts/test-copilot-hub.sh +43 -0
  505. package/scripts/test-gemini-hub.sh +10 -9
  506. package/scripts/test-hermes-hub.sh +7 -6
  507. package/scripts/test-install-helpers.js +9 -3
  508. package/scripts/test-kilocode-adapter.sh +55 -0
  509. package/scripts/test-kilocode-hub.sh +48 -0
  510. package/scripts/test-mimo-hub.sh +7 -6
  511. package/scripts/test-opencode-adapter.sh +47 -0
  512. package/scripts/test-opencode-hub.sh +43 -0
  513. package/scripts/test-qwen-adapter.sh +63 -0
  514. package/scripts/test-qwen-hub.sh +49 -0
  515. package/scripts/test-trae-adapter.sh +63 -0
  516. package/scripts/test-trae-hub.sh +49 -0
  517. package/scripts/test-windsurf-adapter.sh +63 -0
  518. package/scripts/test-windsurf-hub.sh +49 -0
  519. package/scripts/test-zcode-hub.sh +7 -6
  520. package/scripts/verify-install.sh +83 -29
  521. package/skills/audit-code/SKILL.md +4 -7
  522. package/skills/grill-me/SKILL.md +12 -0
  523. package/skills/grill-with-docs/SKILL.md +12 -0
  524. package/skills/request-review/SKILL.md +1 -0
  525. package/skills/visual-dashboard/scripts/frame-template.html +1 -39
  526. package/skills/wire-ci/REFERENCE.md +137 -152
  527. package/skills/wire-ci/SKILL.md +28 -30
  528. package/skills-lock.json +5 -5
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # story: e68s02
3
+ # Regression tests for Qwen Code install hub wiring (Wave B).
4
+ set -euo pipefail
5
+
6
+ REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
7
+ PASS=0
8
+ FAIL=0
9
+
10
+ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
11
+ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
12
+
13
+ echo "=== test-qwen-hub.sh ==="
14
+
15
+ INSTALL_SH="$REPO_ROOT/scripts/install.sh"
16
+ source "$REPO_ROOT/scripts/lib/install-grep.sh"
17
+ HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
18
+ SETUP_JS="$REPO_ROOT/bin/setup.js"
19
+ TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
20
+
21
+ install_grep -q 'install_qwen()' && pass 'install.sh: install_qwen()' || fail 'install.sh: missing install_qwen()'
22
+ install_grep -q 'uninstall_qwen()' && pass 'install.sh: uninstall_qwen()' || fail 'install.sh: missing uninstall_qwen()'
23
+ install_grep -q 'QWEN_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
24
+ install_grep -q 'install_qwen' && install_grep -q 'uninstall_qwen' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing qwen'
25
+
26
+ DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
27
+ grep -q 'Qwen Code →' <<< "$DRY_OUT" && pass 'dry-run: Qwen Code section' || fail 'dry-run: missing Qwen Code section'
28
+ DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
29
+ grep -q 'Qwen Code →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Qwen Code section' || fail 'dry-run uninstall: missing Qwen Code section'
30
+
31
+ grep -q "case 'qwen'" "$HELPERS_JS" && pass 'install-helpers: qwen case' || fail 'install-helpers: missing qwen case'
32
+ install_grep -q 'QWEN_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
33
+ install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
34
+
35
+ SETUP_SRC="$(cat "$SETUP_JS")"
36
+ echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
37
+ grep -q "'qwen'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: qwen in SUPPORTED_IDS' || fail 'setup.js: qwen not in SUPPORTED_IDS'
38
+
39
+ grep -q 'id: qwen' "$TARGETS_YAML" && pass 'targets.yaml: qwen row' || fail 'targets.yaml: missing qwen row'
40
+ grep -q 'adapter: qwen' "$TARGETS_YAML" && pass 'targets.yaml: qwen adapter' || fail 'targets.yaml: missing qwen adapter'
41
+ grep -q 'qwen_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: qwen_hooks_manifest' || fail 'targets.yaml: missing qwen_hooks_manifest'
42
+ grep -q 'install_qwen()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_qwen assertion' || fail 'verify-install: missing install_qwen assertion'
43
+
44
+ bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
45
+ node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
46
+ node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
47
+
48
+ echo "test-qwen-hub: $PASS passed, $FAIL failed"
49
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ # story: e70s01
3
+ # scenario: SC-e70s01-P1-02
4
+ # Regression tests for Trae adapter render + hook templates.
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9
+
10
+ PASS=0
11
+ FAIL=0
12
+
13
+ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
14
+ fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
15
+
16
+ echo "=== test-trae-adapter.sh ==="
17
+
18
+ TMP=$(mktemp -d)
19
+ trap 'rm -rf "$TMP"' EXIT
20
+
21
+ if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
22
+ | TRAE_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/trae.sh" \
23
+ && [[ -f $TMP/test-skill/SKILL.md ]] \
24
+ && grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
25
+ && grep -q 'test body' $TMP/test-skill/SKILL.md; then
26
+ pass "render_skill emits artifact from stdin SkillIR"
27
+ else
28
+ fail "render_skill emits artifact from stdin SkillIR"
29
+ fi
30
+
31
+ if ! echo '{"name":"../escape","description":"d","body":"b"}' \
32
+ | TRAE_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/trae.sh" 2>/dev/null; then
33
+ pass "rejects path traversal in skill name"
34
+ else
35
+ fail "rejects path traversal in skill name"
36
+ fi
37
+
38
+ if [[ -f "$REPO_ROOT/scripts/hooks/trae/pre-tool-git-guard.sh" ]] \
39
+ && [[ -f "$REPO_ROOT/scripts/hooks/trae/hooks-manifest.json" ]] \
40
+ && [[ -f "$REPO_ROOT/scripts/hooks/trae/settings.example.json" ]]; then
41
+ pass "hook template bundle present"
42
+ else
43
+ fail "hook template bundle present"
44
+ fi
45
+
46
+ BLOCK_OUT=$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
47
+ | bash "$REPO_ROOT/scripts/hooks/trae/pre-tool-git-guard.sh")
48
+ if echo "$BLOCK_OUT" | grep -q 'block'; then
49
+ pass "pre-tool guard blocks dangerous command"
50
+ else
51
+ fail "pre-tool guard blocks dangerous command"
52
+ fi
53
+
54
+ ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" trae 2>&1 || true)
55
+ if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
56
+ pass "test-adapters.sh trae"
57
+ else
58
+ fail "test-adapters.sh trae"
59
+ echo "$ADAPTER_OUT"
60
+ fi
61
+
62
+ echo "test-trae-adapter: $PASS passed, $FAIL failed"
63
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # story: e70s02
3
+ # Regression tests for Trae install hub wiring (Wave B).
4
+ set -euo pipefail
5
+
6
+ REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
7
+ PASS=0
8
+ FAIL=0
9
+
10
+ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
11
+ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
12
+
13
+ echo "=== test-trae-hub.sh ==="
14
+
15
+ INSTALL_SH="$REPO_ROOT/scripts/install.sh"
16
+ source "$REPO_ROOT/scripts/lib/install-grep.sh"
17
+ HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
18
+ SETUP_JS="$REPO_ROOT/bin/setup.js"
19
+ TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
20
+
21
+ install_grep -q 'install_trae()' && pass 'install.sh: install_trae()' || fail 'install.sh: missing install_trae()'
22
+ install_grep -q 'uninstall_trae()' && pass 'install.sh: uninstall_trae()' || fail 'install.sh: missing uninstall_trae()'
23
+ install_grep -q 'TRAE_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
24
+ install_grep -q 'install_trae' && install_grep -q 'uninstall_trae' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing trae'
25
+
26
+ DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
27
+ grep -q 'Trae →' <<< "$DRY_OUT" && pass 'dry-run: Trae section' || fail 'dry-run: missing Trae section'
28
+ DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
29
+ grep -q 'Trae →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Trae section' || fail 'dry-run uninstall: missing Trae section'
30
+
31
+ grep -q "case 'trae'" "$HELPERS_JS" && pass 'install-helpers: trae case' || fail 'install-helpers: missing trae case'
32
+ install_grep -q 'TRAE_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
33
+ install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
34
+
35
+ SETUP_SRC="$(cat "$SETUP_JS")"
36
+ echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
37
+ grep -q "'trae'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: trae in SUPPORTED_IDS' || fail 'setup.js: trae not in SUPPORTED_IDS'
38
+
39
+ grep -q 'id: trae' "$TARGETS_YAML" && pass 'targets.yaml: trae row' || fail 'targets.yaml: missing trae row'
40
+ grep -q 'adapter: trae' "$TARGETS_YAML" && pass 'targets.yaml: trae adapter' || fail 'targets.yaml: missing trae adapter'
41
+ grep -q 'trae_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: trae_hooks_manifest' || fail 'targets.yaml: missing trae_hooks_manifest'
42
+ grep -q 'install_trae()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_trae assertion' || fail 'verify-install: missing install_trae assertion'
43
+
44
+ bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
45
+ node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
46
+ node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
47
+
48
+ echo "test-trae-hub: $PASS passed, $FAIL failed"
49
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ # story: e73s01
3
+ # scenario: SC-e73s01-P1-02
4
+ # Regression tests for Windsurf adapter render + hook templates.
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9
+
10
+ PASS=0
11
+ FAIL=0
12
+
13
+ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
14
+ fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
15
+
16
+ echo "=== test-windsurf-adapter.sh ==="
17
+
18
+ TMP=$(mktemp -d)
19
+ trap 'rm -rf "$TMP"' EXIT
20
+
21
+ if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
22
+ | WINDSURF_RULES="$TMP" bash "$REPO_ROOT/scripts/adapters/windsurf.sh" \
23
+ && [[ -f $TMP/test-skill.md ]] \
24
+ && grep -q 'name: test-skill' $TMP/test-skill.md \
25
+ && grep -q 'test body' $TMP/test-skill.md; then
26
+ pass "render_skill emits artifact from stdin SkillIR"
27
+ else
28
+ fail "render_skill emits artifact from stdin SkillIR"
29
+ fi
30
+
31
+ if ! echo '{"name":"../escape","description":"d","body":"b"}' \
32
+ | WINDSURF_RULES="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/windsurf.sh" 2>/dev/null; then
33
+ pass "rejects path traversal in skill name"
34
+ else
35
+ fail "rejects path traversal in skill name"
36
+ fi
37
+
38
+ if [[ -f "$REPO_ROOT/scripts/hooks/windsurf/pre-tool-git-guard.sh" ]] \
39
+ && [[ -f "$REPO_ROOT/scripts/hooks/windsurf/hooks-manifest.json" ]] \
40
+ && [[ -f "$REPO_ROOT/scripts/hooks/windsurf/settings.example.json" ]]; then
41
+ pass "hook template bundle present"
42
+ else
43
+ fail "hook template bundle present"
44
+ fi
45
+
46
+ BLOCK_OUT=$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
47
+ | bash "$REPO_ROOT/scripts/hooks/windsurf/pre-tool-git-guard.sh")
48
+ if echo "$BLOCK_OUT" | grep -q 'block'; then
49
+ pass "pre-tool guard blocks dangerous command"
50
+ else
51
+ fail "pre-tool guard blocks dangerous command"
52
+ fi
53
+
54
+ ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" windsurf 2>&1 || true)
55
+ if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
56
+ pass "test-adapters.sh windsurf"
57
+ else
58
+ fail "test-adapters.sh windsurf"
59
+ echo "$ADAPTER_OUT"
60
+ fi
61
+
62
+ echo "test-windsurf-adapter: $PASS passed, $FAIL failed"
63
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # story: e73s02
3
+ # Regression tests for Windsurf install hub wiring (Wave B).
4
+ set -euo pipefail
5
+
6
+ REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
7
+ PASS=0
8
+ FAIL=0
9
+
10
+ pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
11
+ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
12
+
13
+ echo "=== test-windsurf-hub.sh ==="
14
+
15
+ INSTALL_SH="$REPO_ROOT/scripts/install.sh"
16
+ source "$REPO_ROOT/scripts/lib/install-grep.sh"
17
+ HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
18
+ SETUP_JS="$REPO_ROOT/bin/setup.js"
19
+ TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
20
+
21
+ install_grep -q 'install_windsurf()' && pass 'install.sh: install_windsurf()' || fail 'install.sh: missing install_windsurf()'
22
+ install_grep -q 'uninstall_windsurf()' && pass 'install.sh: uninstall_windsurf()' || fail 'install.sh: missing uninstall_windsurf()'
23
+ install_grep -q 'WINDSURF_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
24
+ install_grep -q 'install_windsurf' && install_grep -q 'uninstall_windsurf' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing windsurf'
25
+
26
+ DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
27
+ grep -q 'Windsurf →' <<< "$DRY_OUT" && pass 'dry-run: Windsurf section' || fail 'dry-run: missing Windsurf section'
28
+ DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
29
+ grep -q 'Windsurf →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Windsurf section' || fail 'dry-run uninstall: missing Windsurf section'
30
+
31
+ grep -q "case 'windsurf'" "$HELPERS_JS" && pass 'install-helpers: windsurf case' || fail 'install-helpers: missing windsurf case'
32
+ install_grep -q 'WINDSURF_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
33
+ install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
34
+
35
+ SETUP_SRC="$(cat "$SETUP_JS")"
36
+ echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
37
+ grep -q "'windsurf'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: windsurf in SUPPORTED_IDS' || fail 'setup.js: windsurf not in SUPPORTED_IDS'
38
+
39
+ grep -q 'id: windsurf' "$TARGETS_YAML" && pass 'targets.yaml: windsurf row' || fail 'targets.yaml: missing windsurf row'
40
+ grep -q 'adapter: windsurf' "$TARGETS_YAML" && pass 'targets.yaml: windsurf adapter' || fail 'targets.yaml: missing windsurf adapter'
41
+ grep -q 'windsurf_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: windsurf_hooks_manifest' || fail 'targets.yaml: missing windsurf_hooks_manifest'
42
+ grep -q 'install_windsurf()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_windsurf assertion' || fail 'verify-install: missing install_windsurf assertion'
43
+
44
+ bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
45
+ node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
46
+ node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
47
+
48
+ echo "test-windsurf-hub: $PASS passed, $FAIL failed"
49
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -13,19 +13,20 @@ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
13
13
  echo "=== test-zcode-hub.sh ==="
14
14
 
15
15
  INSTALL_SH="$REPO_ROOT/scripts/install.sh"
16
+ source "$REPO_ROOT/scripts/lib/install-grep.sh"
16
17
  HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
17
18
  SETUP_JS="$REPO_ROOT/bin/setup.js"
18
19
  TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
19
20
 
20
- grep -q 'install_zcode()' "$INSTALL_SH" && pass 'install.sh: install_zcode()' || fail 'install.sh: missing install_zcode()'
21
- grep -q 'uninstall_zcode()' "$INSTALL_SH" && pass 'install.sh: uninstall_zcode()' || fail 'install.sh: missing uninstall_zcode()'
22
- grep -q 'ZCODE_SKILLS_DIR=' "$INSTALL_SH" && pass 'install.sh: ZCODE_SKILLS_DIR' || fail 'install.sh: missing ZCODE_SKILLS_DIR'
23
- grep -q 'install_zcode' "$INSTALL_SH" && grep -q 'uninstall_zcode' "$INSTALL_SH" && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing zcode'
21
+ install_grep -q 'install_zcode()' && pass 'install.sh: install_zcode()' || fail 'install.sh: missing install_zcode()'
22
+ install_grep -q 'uninstall_zcode()' && pass 'install.sh: uninstall_zcode()' || fail 'install.sh: missing uninstall_zcode()'
23
+ install_grep -q 'ZCODE_SKILLS_DIR=' && pass 'install.sh: ZCODE_SKILLS_DIR' || fail 'install.sh: missing ZCODE_SKILLS_DIR'
24
+ install_grep -q 'install_zcode' && install_grep -q 'uninstall_zcode' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing zcode'
24
25
 
25
26
  DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
26
- echo "$DRY_OUT" | grep -q 'ZCode →' && pass 'dry-run: ZCode section' || fail 'dry-run: missing ZCode section'
27
+ grep -q 'ZCode →' <<< "$DRY_OUT" && pass 'dry-run: ZCode section' || fail 'dry-run: missing ZCode section'
27
28
  DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
28
- echo "$DRY_UNINSTALL" | grep -q 'ZCode →' && pass 'dry-run uninstall: ZCode section' || fail 'dry-run uninstall: missing ZCode section'
29
+ grep -q 'ZCode →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: ZCode section' || fail 'dry-run uninstall: missing ZCode section'
29
30
 
30
31
  grep -q "case 'zcode'" "$HELPERS_JS" && pass 'install-helpers: zcode global case' || fail 'install-helpers: missing zcode global case'
31
32
  grep -q "case 'zcode'" "$HELPERS_JS" && pass 'install-helpers: zcode cases present' || fail 'install-helpers: missing zcode cases'
@@ -1,10 +1,20 @@
1
1
  #!/usr/bin/env bash
2
2
  # story: e47s04 e37s02 e37s04 e37s08
3
3
  # story: e74s02
4
+ # story: e71s02
5
+ # story: e62s02
6
+ # story: e73s02
7
+ # story: e70s02
8
+ # story: e67s02
9
+ # story: e66s02
10
+ # story: e72s02
11
+ # story: e68s02
12
+ # story: e65s02
4
13
  # verify-install.sh — manual assertion harness for install + seed wiring + Reach matrix
5
14
  set -euo pipefail
6
15
  source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
7
16
  resolve_repo_root
17
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/install-grep.sh"
8
18
 
9
19
  MATRIX_MODE=0
10
20
  FULL_MATRIX=0
@@ -64,14 +74,14 @@ trap ta_cleanup EXIT
64
74
  echo "=== install.sh --dry-run ==="
65
75
  DRY_OUT="$("$REPO_ROOT/scripts/install.sh" --dry-run 2>&1)"
66
76
 
67
- echo "$DRY_OUT" | grep -q 'pi →' && ta_pass "install --dry-run includes pi" || ta_fail "install --dry-run missing pi"
77
+ grep -q 'pi →' <<< "$DRY_OUT" && ta_pass "install --dry-run includes pi" || ta_fail "install --dry-run missing pi"
68
78
  DRY_UNINSTALL="$("$REPO_ROOT/scripts/install.sh" --dry-run --uninstall 2>&1)"
69
- echo "$DRY_UNINSTALL" | grep -q 'pi →' && ta_pass "uninstall --dry-run includes pi" || ta_fail "uninstall --dry-run missing pi"
70
- echo "$DRY_OUT" | grep -qi 'opencode' && ta_fail "install references opencode" || ta_pass "install has no opencode reference"
71
- echo "$DRY_OUT" | grep -q 'Claude Code →' && ta_pass "install includes Claude Code" || ta_fail "install missing Claude Code"
72
- echo "$DRY_OUT" | grep -q 'Gemini CLI →' && ta_pass "install includes Gemini CLI" || ta_fail "install missing Gemini CLI"
73
- echo "$DRY_OUT" | grep -q 'Cursor →' && ta_pass "install includes Cursor" || ta_fail "install missing Cursor"
74
- echo "$DRY_OUT" | grep -q 'Hermes Agent →' && ta_pass "install includes Hermes Agent" || ta_fail "install missing Hermes Agent"
79
+ grep -q 'pi →' <<< "$DRY_UNINSTALL" && ta_pass "uninstall --dry-run includes pi" || ta_fail "uninstall --dry-run missing pi"
80
+ grep -q 'OpenCode →' <<< "$DRY_OUT" && ta_pass "install includes OpenCode" || ta_fail "install missing OpenCode"
81
+ grep -q 'Claude Code →' <<< "$DRY_OUT" && ta_pass "install includes Claude Code" || ta_fail "install missing Claude Code"
82
+ grep -q 'Gemini CLI →' <<< "$DRY_OUT" && ta_pass "install includes Gemini CLI" || ta_fail "install missing Gemini CLI"
83
+ grep -q 'Cursor →' <<< "$DRY_OUT" && ta_pass "install includes Cursor" || ta_fail "install missing Cursor"
84
+ grep -q 'Hermes Agent →' <<< "$DRY_OUT" && ta_pass "install includes Hermes Agent" || ta_fail "install missing Hermes Agent"
75
85
 
76
86
  for tool in "Claude Code" "pi"; do
77
87
  section=$(echo "$DRY_OUT" | sed -n "/${tool} →/,/^$/p")
@@ -102,7 +112,7 @@ echo ""
102
112
  echo "=== Optional Codex wave (e37s04) ==="
103
113
  if grep -qi 'codex' "$REPO_ROOT/skills/seed-conventions/SKILL.md" 2>/dev/null; then
104
114
  grep -qi 'config.toml' "$REPO_ROOT/skills/seed-conventions/REFERENCE.md" && ta_pass "Codex: REFERENCE config.toml" || ta_fail "Codex: missing config.toml"
105
- echo "$DRY_OUT" | grep -qi 'codex' && ta_pass "Codex: install --dry-run mentions codex" || ta_fail "Codex: install missing codex"
115
+ grep -qi 'codex' <<< "$DRY_OUT" && ta_pass "Codex: install --dry-run mentions codex" || ta_fail "Codex: install missing codex"
106
116
  else
107
117
  ta_pass "Codex: wave absent — assertions skipped"
108
118
  fi
@@ -127,40 +137,84 @@ fi
127
137
 
128
138
  echo ""
129
139
  echo "=== install.sh source ==="
130
- grep -q 'install_pi()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_pi()" || ta_fail "source: missing install_pi()"
131
- grep -q 'uninstall_pi()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_pi()" || ta_fail "source: missing uninstall_pi()"
132
- grep -q 'PI_SKILLS_DIR="$PI_CONFIG_DIR/agent/skills"' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: targets ~/.pi/agent/skills/" || ta_fail "source: wrong pi target"
133
- grep -q 'install_hermes()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_hermes()" || ta_fail "source: missing install_hermes()"
134
- grep -q 'uninstall_hermes()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_hermes()" || ta_fail "source: missing uninstall_hermes()"
135
- grep -q 'HERMES_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: targets ~/.hermes/skills/" || ta_fail "source: wrong hermes target"
140
+ install_grep -q 'install_pi()' && ta_pass "source: install_pi()" || ta_fail "source: missing install_pi()"
141
+ install_grep -q 'uninstall_pi()' && ta_pass "source: uninstall_pi()" || ta_fail "source: missing uninstall_pi()"
142
+ install_grep -q 'PI_SKILLS_DIR="$PI_CONFIG_DIR/agent/skills"' && ta_pass "source: targets ~/.pi/agent/skills/" || ta_fail "source: wrong pi target"
143
+ install_grep -q 'install_hermes()' && ta_pass "source: install_hermes()" || ta_fail "source: missing install_hermes()"
144
+ install_grep -q 'uninstall_hermes()' && ta_pass "source: uninstall_hermes()" || ta_fail "source: missing uninstall_hermes()"
145
+ install_grep -q 'HERMES_SKILLS_DIR=' && ta_pass "source: targets ~/.hermes/skills/" || ta_fail "source: wrong hermes target"
136
146
  grep -q "'hermes'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: hermes supported" || ta_fail "setup.js: hermes not in SUPPORTED_IDS"
137
147
  grep -q "case 'hermes'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: hermes case" || ta_fail "install-helpers: missing hermes case"
138
- grep -q 'install_zcode()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_zcode()" || ta_fail "source: missing install_zcode()"
139
- grep -q 'uninstall_zcode()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_zcode()" || ta_fail "source: missing uninstall_zcode()"
140
- grep -q 'ZCODE_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: targets ~/.zcode/skills/" || ta_fail "source: wrong zcode target"
148
+ install_grep -q 'install_zcode()' && ta_pass "source: install_zcode()" || ta_fail "source: missing install_zcode()"
149
+ install_grep -q 'uninstall_zcode()' && ta_pass "source: uninstall_zcode()" || ta_fail "source: missing uninstall_zcode()"
150
+ install_grep -q 'ZCODE_SKILLS_DIR=' && ta_pass "source: targets ~/.zcode/skills/" || ta_fail "source: wrong zcode target"
141
151
  grep -q "'zcode'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: zcode supported" || ta_fail "setup.js: zcode not in SUPPORTED_IDS"
142
152
  grep -q "case 'zcode'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: zcode case" || ta_fail "install-helpers: missing zcode case"
143
- grep -q 'install_mimo()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_mimo()" || ta_fail "source: missing install_mimo()"
144
- grep -q 'uninstall_mimo()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_mimo()" || ta_fail "source: missing uninstall_mimo()"
145
- grep -q 'MIMO_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: targets ~/.mimocode/skills/" || ta_fail "source: wrong mimo target"
153
+ install_grep -q 'install_mimo()' && ta_pass "source: install_mimo()" || ta_fail "source: missing install_mimo()"
154
+ install_grep -q 'uninstall_mimo()' && ta_pass "source: uninstall_mimo()" || ta_fail "source: missing uninstall_mimo()"
155
+ install_grep -q 'MIMO_SKILLS_DIR=' && ta_pass "source: targets ~/.mimocode/skills/" || ta_fail "source: wrong mimo target"
146
156
  grep -q "'mimo'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: mimo supported" || ta_fail "setup.js: mimo not in SUPPORTED_IDS"
147
157
  grep -q "case 'mimo'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: mimo case" || ta_fail "install-helpers: missing mimo case"
148
- grep -q 'install_gemini()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_gemini()" || ta_fail "source: missing install_gemini()"
149
- grep -q 'uninstall_gemini()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_gemini()" || ta_fail "source: missing uninstall_gemini()"
150
- grep -q 'before-tool-git-guard.sh' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: gemini Wave A hook templates" || ta_fail "source: missing gemini hook templates"
158
+ install_grep -q 'install_gemini()' && ta_pass "source: install_gemini()" || ta_fail "source: missing install_gemini()"
159
+ install_grep -q 'uninstall_gemini()' && ta_pass "source: uninstall_gemini()" || ta_fail "source: missing uninstall_gemini()"
160
+ install_grep -q 'before-tool-git-guard.sh' && ta_pass "source: gemini Wave A hook templates" || ta_fail "source: missing gemini hook templates"
151
161
  grep -q "'gemini'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: gemini supported" || ta_fail "setup.js: gemini not in SUPPORTED_IDS"
152
162
  grep -q "case 'gemini'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: gemini case" || ta_fail "install-helpers: missing gemini case"
153
163
  grep -q 'gemini_hooks_manifest' "$REPO_ROOT/scripts/targets.yaml" && ta_pass "targets.yaml: gemini_hooks_manifest" || ta_fail "targets.yaml: missing gemini_hooks_manifest"
154
- grep -q 'install_agy()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_agy()" || ta_fail "source: missing install_agy()"
155
- grep -q 'uninstall_agy()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_agy()" || ta_fail "source: missing uninstall_agy()"
156
- grep -q 'AGY_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: targets ~/.gemini/antigravity-cli/skills/" || ta_fail "source: wrong agy target"
164
+ install_grep -q 'install_agy()' && ta_pass "source: install_agy()" || ta_fail "source: missing install_agy()"
165
+ install_grep -q 'uninstall_agy()' && ta_pass "source: uninstall_agy()" || ta_fail "source: missing uninstall_agy()"
166
+ install_grep -q 'AGY_SKILLS_DIR=' && ta_pass "source: targets ~/.gemini/antigravity-cli/skills/" || ta_fail "source: wrong agy target"
157
167
  grep -q "'antigravity'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: antigravity supported" || ta_fail "setup.js: antigravity not in SUPPORTED_IDS"
158
168
  grep -q "'agy'" "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: agy supported" || ta_fail "setup.js: agy not in SUPPORTED_IDS"
159
169
  grep -q "case 'antigravity'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: antigravity case" || ta_fail "install-helpers: missing antigravity case"
160
170
  grep -q "case 'agy'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: agy case" || ta_fail "install-helpers: missing agy case"
161
- ! grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p' "$REPO_ROOT/scripts/install.sh")" && ta_pass "source: agy avoids gemini extension path" || ta_fail "source: agy touches gemini extension path"
162
- ! grep -q 'install_opencode\|print_opencode_instructions' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: no opencode functions" || ta_fail "source: opencode functions remain"
163
-
171
+ ! install_grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p')" && ta_pass "source: agy avoids gemini extension path" || ta_fail "source: agy touches gemini extension path"
172
+
173
+ install_grep -q 'install_codex()' && ta_pass "source: install_codex()" || ta_fail "source: missing install_codex()"
174
+ install_grep -q 'uninstall_codex()' && ta_pass "source: uninstall_codex()" || ta_fail "source: missing uninstall_codex()"
175
+ install_grep -q 'CODEX_SKILLS_DIR=' && ta_pass "source: codex skills dir" || ta_fail "source: missing codex skills dir"
176
+ grep -q "'codex'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: codex supported" || ta_fail "setup.js: codex not in SUPPORTED_IDS"
177
+ grep -q "case 'codex'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: codex case" || ta_fail "install-helpers: missing codex case"
178
+ install_grep -q 'install_qwen()' && ta_pass "source: install_qwen()" || ta_fail "source: missing install_qwen()"
179
+ install_grep -q 'uninstall_qwen()' && ta_pass "source: uninstall_qwen()" || ta_fail "source: missing uninstall_qwen()"
180
+ install_grep -q 'QWEN_SKILLS_DIR=' && ta_pass "source: qwen skills dir" || ta_fail "source: missing qwen skills dir"
181
+ grep -q "'qwen'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: qwen supported" || ta_fail "setup.js: qwen not in SUPPORTED_IDS"
182
+ grep -q "case 'qwen'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: qwen case" || ta_fail "install-helpers: missing qwen case"
183
+ install_grep -q 'install_codebuddy()' && ta_pass "source: install_codebuddy()" || ta_fail "source: missing install_codebuddy()"
184
+ install_grep -q 'uninstall_codebuddy()' && ta_pass "source: uninstall_codebuddy()" || ta_fail "source: missing uninstall_codebuddy()"
185
+ install_grep -q 'CODEBUDDY_SKILLS_DIR=' && ta_pass "source: codebuddy skills dir" || ta_fail "source: missing codebuddy skills dir"
186
+ grep -q "'codebuddy'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: codebuddy supported" || ta_fail "setup.js: codebuddy not in SUPPORTED_IDS"
187
+ grep -q "case 'codebuddy'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: codebuddy case" || ta_fail "install-helpers: missing codebuddy case"
188
+ install_grep -q 'install_cline()' && ta_pass "source: install_cline()" || ta_fail "source: missing install_cline()"
189
+ install_grep -q 'uninstall_cline()' && ta_pass "source: uninstall_cline()" || ta_fail "source: missing uninstall_cline()"
190
+ install_grep -q 'CLINE_SKILLS_DIR=' && ta_pass "source: cline skills dir" || ta_fail "source: missing cline skills dir"
191
+ grep -q "'cline'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: cline supported" || ta_fail "setup.js: cline not in SUPPORTED_IDS"
192
+ grep -q "case 'cline'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: cline case" || ta_fail "install-helpers: missing cline case"
193
+ install_grep -q 'install_kilocode()' && ta_pass "source: install_kilocode()" || ta_fail "source: missing install_kilocode()"
194
+ install_grep -q 'uninstall_kilocode()' && ta_pass "source: uninstall_kilocode()" || ta_fail "source: missing uninstall_kilocode()"
195
+ install_grep -q 'KILOCODE_SKILLS_DIR=' && ta_pass "source: kilocode skills dir" || ta_fail "source: missing kilocode skills dir"
196
+ grep -q "'kilo'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: kilo supported" || ta_fail "setup.js: kilo not in SUPPORTED_IDS"
197
+ grep -q "case 'kilo'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: kilo case" || ta_fail "install-helpers: missing kilo case"
198
+ install_grep -q 'install_trae()' && ta_pass "source: install_trae()" || ta_fail "source: missing install_trae()"
199
+ install_grep -q 'uninstall_trae()' && ta_pass "source: uninstall_trae()" || ta_fail "source: missing uninstall_trae()"
200
+ install_grep -q 'TRAE_SKILLS_DIR=' && ta_pass "source: trae skills dir" || ta_fail "source: missing trae skills dir"
201
+ grep -q "'trae'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: trae supported" || ta_fail "setup.js: trae not in SUPPORTED_IDS"
202
+ grep -q "case 'trae'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: trae case" || ta_fail "install-helpers: missing trae case"
203
+ install_grep -q 'install_windsurf()' && ta_pass "source: install_windsurf()" || ta_fail "source: missing install_windsurf()"
204
+ install_grep -q 'uninstall_windsurf()' && ta_pass "source: uninstall_windsurf()" || ta_fail "source: missing uninstall_windsurf()"
205
+ install_grep -q 'WINDSURF_SKILLS_DIR=' && ta_pass "source: windsurf skills dir" || ta_fail "source: missing windsurf skills dir"
206
+ grep -q "'windsurf'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: windsurf supported" || ta_fail "setup.js: windsurf not in SUPPORTED_IDS"
207
+ grep -q "case 'windsurf'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: windsurf case" || ta_fail "install-helpers: missing windsurf case"
208
+ install_grep -q 'install_opencode()' && ta_pass "source: install_opencode()" || ta_fail "source: missing install_opencode()"
209
+ install_grep -q 'uninstall_opencode()' && ta_pass "source: uninstall_opencode()" || ta_fail "source: missing uninstall_opencode()"
210
+ install_grep -q 'OPENCODE_SKILLS_DIR=' && ta_pass "source: opencode skills dir" || ta_fail "source: missing opencode skills dir"
211
+ grep -q "'opencode'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: opencode supported" || ta_fail "setup.js: opencode not in SUPPORTED_IDS"
212
+ grep -q "case 'opencode'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: opencode case" || ta_fail "install-helpers: missing opencode case"
213
+ install_grep -q 'install_copilot()' && ta_pass "source: install_copilot()" || ta_fail "source: missing install_copilot()"
214
+ install_grep -q 'uninstall_copilot()' && ta_pass "source: uninstall_copilot()" || ta_fail "source: missing uninstall_copilot()"
215
+ install_grep -q 'COPILOT_SKILLS_DIR=' && ta_pass "source: copilot skills dir" || ta_fail "source: missing copilot skills dir"
216
+ grep -q "'copilot'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: copilot supported" || ta_fail "setup.js: copilot not in SUPPORTED_IDS"
217
+ grep -q "case 'copilot'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: copilot case" || ta_fail "install-helpers: missing copilot case"
164
218
  echo ""
165
219
  echo "──────────────────────────────────────────"
166
220
  echo "verify-install: $TA_PASS passed, $TA_FAIL failed"
@@ -99,6 +99,10 @@ bash scripts/lib/parallel-review-worktrees.sh audit-code
99
99
  - [ ] Dependency Inversion: dependencies injected, not imported globally where avoidable
100
100
  - [ ] **Chapter 17 Heuristics**: Code is free of smells documented in `audit-code/HEURISTICS.md` (G, N, C, T)
101
101
 
102
+ ### Refactoring Smells (Fowler)
103
+
104
+ Explicitly name any detected smells: Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Message Chains, Middle Man.
105
+
102
106
  ### Code Style (CONVENTIONS.md)
103
107
 
104
108
  - [ ] Functions: 4–20 lines; split if longer
@@ -110,13 +114,6 @@ bash scripts/lib/parallel-review-worktrees.sh audit-code
110
114
  - [ ] Conditionals: expressed as positives (G29)
111
115
  - [ ] Comments explain WHY, not WHAT
112
116
 
113
- ### Agent Readability (Akita's Lens)
114
-
115
- - [ ] Functions are small enough to fit in a standard context window (4–20 lines)
116
- - [ ] Names are unique and specific enough to be `grep`-able (grep returns < 5 hits)
117
- - [ ] Types are explicit (no `any`, no inferred return types for public APIs)
118
- - [ ] Code avoids deep nesting (max 2 levels) and uses early returns
119
-
120
117
  ### Red Flags
121
118
 
122
119
  Before reporting, name any rationalization you caught yourself making for skipping a checklist item. Silence is not acceptable — if you skipped an item, state the reason explicitly.
@@ -19,6 +19,14 @@ Interview relentlessly about every aspect of this plan until reaching shared und
19
19
 
20
20
  If a question can be answered by exploring the codebase, explore it instead.
21
21
 
22
+ ### Facts vs. Decisions Boundary
23
+
24
+ Distinguish between **facts** and **decisions**:
25
+ - **Facts** — things discoverable by exploring the codebase, reading docs, or checking APIs. Do not ask the user to confirm facts; find them yourself.
26
+ - **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
27
+
28
+ Never "grill yourself" — if the answer is in the code, go find it. Only ask questions where the user's judgment is needed.
29
+
22
30
  ## Docs mode
23
31
 
24
32
  Ground every challenge in real documentation — no assumption about a library's behavior goes unchecked. See [REFERENCE.md](REFERENCE.md) for the full process.
@@ -30,3 +38,7 @@ Short form:
30
38
  4. Report confirmed ✓, corrected ✗ (with the real behavior), and uncertain → `spike-prototype`.
31
39
  5. Update the plan for each confirmed discrepancy.
32
40
 
41
+ ## Confirmation Gate
42
+
43
+ > **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
44
+
@@ -24,6 +24,18 @@ effort: standard
24
24
  - If docs contradict the plan, plan loses until updated.
25
25
  - Prefer official docs over blog posts.
26
26
 
27
+ ## Facts vs. Decisions Boundary
28
+
29
+ Distinguish between **facts** and **decisions**:
30
+ - **Facts** — things discoverable by reading docs, checking APIs, or exploring the codebase. Do not ask the user to confirm facts; find them yourself.
31
+ - **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
32
+
33
+ Never "grill yourself" — if the answer is in the docs, go fetch it. Only ask questions where the user's judgment is needed.
34
+
35
+ ## Confirmation Gate
36
+
37
+ > **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
38
+
27
39
  ## Verify
28
40
 
29
41
  → verify: `grep -c 'https\?://' skills/grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
@@ -90,6 +90,7 @@ Review for:
90
90
  4. Design — are there simpler or more robust approaches?
91
91
  5. Edge cases — what inputs or states could cause failures?
92
92
  6. Security — any injection, auth, or data exposure risks?
93
+ 7. Refactoring smells — explicitly name any detected Fowler smells: Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Message Chains, Middle Man
93
94
 
94
95
  For each finding, categorize as: must-fix / should-fix / consider.
95
96
  Run the verify command and report the result.
@@ -232,45 +232,7 @@
232
232
  <div id="claude-content" class="spread">
233
233
  <div class="wrap">
234
234
  <div class="grid">
235
- <div class="band section">
236
- <h2 class="opt-align">Dashboard Template</h2>
237
- <p class="subtitle">Mockup and structure using the new 12-column Müller-Brockmann grid.</p>
238
- </div>
239
-
240
- <div class="band section split">
241
- <div>
242
- <h3 class="opt-align">Split Left (6 cols)</h3>
243
- <p>Aligned precisely to the grid. All baselines lock to 8px.</p>
244
- </div>
245
- <div>
246
- <h3 class="opt-align">Split Right (6 cols)</h3>
247
- <p>The gap between is precisely one gutter (24px).</p>
248
- </div>
249
- </div>
250
-
251
- <div class="band section cards">
252
- <div class="card">
253
- <div class="card-image">Img 1</div>
254
- <div class="card-body">
255
- <h3>Card 1 (4 cols)</h3>
256
- <p>Three cards fit perfectly in 12 columns.</p>
257
- </div>
258
- </div>
259
- <div class="card">
260
- <div class="card-image">Img 2</div>
261
- <div class="card-body">
262
- <h3>Card 2 (4 cols)</h3>
263
- <p>Aligned on the baseline.</p>
264
- </div>
265
- </div>
266
- <div class="card selected">
267
- <div class="card-image">Img 3</div>
268
- <div class="card-body">
269
- <h3>Card 3 (4 cols)</h3>
270
- <p>This card is selected.</p>
271
- </div>
272
- </div>
273
- </div>
235
+ <!-- CONTENT -->
274
236
  <!-- GRID GUIDES -->
275
237
  <div class="guides" aria-hidden="true">
276
238
  <div class="cols"></div><div class="rows"></div>