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,213 @@
1
+ """Wave B hub patchers for install surface files."""
2
+ from __future__ import annotations
3
+
4
+ import re
5
+ import sys
6
+ from pathlib import Path
7
+
8
+ from wave_b_hub_config import HUB_EPICS, HUB_ORDER, prefix
9
+ from wave_b_hub_codegen_install import install_sh_block
10
+ from wave_b_hub_codegen_helpers import (
11
+ helpers_global_case,
12
+ helpers_local_case,
13
+ helpers_uninstall_case,
14
+ targets_row,
15
+ test_hub_sh,
16
+ )
17
+
18
+ REPO = Path(__file__).resolve().parents[2]
19
+
20
+ def patch_install_sh(cfg: dict, content: str) -> str:
21
+ fn = cfg["fn"]
22
+ block = install_sh_block(cfg)
23
+ # Remove existing section if present
24
+ pattern = rf"# ── .*? \({cfg['story']}\).*?(?=# ── |# ── main)"
25
+ old_pattern = rf"# ── {re.escape(cfg['label'])}.*?(?=# ── |# ── main)"
26
+ codex_old = r"# ── Codex CLI \(e37s15\).*?(?=# ── main)"
27
+ for pat in [pattern, old_pattern, codex_old if fn == "codex" else r"(?!x)x"]:
28
+ content = re.sub(pat, "", content, flags=re.DOTALL)
29
+
30
+ marker = "# ── main ──────────────────────────────────────────────────────────────────────"
31
+ if marker not in content:
32
+ raise SystemExit("install.sh: main marker not found")
33
+ content = content.replace(marker, block + marker)
34
+
35
+ # Ensure dispatch — chain after previous epic in WSJF order (or cursor for e65)
36
+ main_part = content.split(marker, 1)[1]
37
+ fn_inst = f"install_{fn}"
38
+ fn_uninst = f"uninstall_{fn}"
39
+ epic_idx = HUB_ORDER.index(cfg.get("_epic_id", "e65"))
40
+ anchor_fn = "cursor" if epic_idx == 0 else HUB_EPICS[HUB_ORDER[epic_idx - 1]]["fn"]
41
+ if f" {fn_inst}\n" not in main_part:
42
+ content = re.sub(
43
+ rf"( install_{anchor_fn}\n)",
44
+ rf"\1 {fn_inst}\n",
45
+ content,
46
+ count=1,
47
+ )
48
+ if f" {fn_uninst}\n" not in main_part:
49
+ content = re.sub(
50
+ rf"( uninstall_{anchor_fn}\n)",
51
+ rf"\1 {fn_uninst}\n",
52
+ content,
53
+ count=1,
54
+ )
55
+
56
+ if f"# story: {cfg['story']}" not in content.split("\n")[0:5]:
57
+ content = content.replace(
58
+ "# story: e74s02",
59
+ f"# story: e74s02\n# story: {cfg['story']}",
60
+ 1,
61
+ )
62
+ return content
63
+
64
+
65
+ def patch_setup_js(cfg: dict, content: str) -> str:
66
+ sid = cfg["setup_id"]
67
+ m = re.search(r"const SUPPORTED_IDS = new Set\(\[(.*?)\]\);", content, re.DOTALL)
68
+ if not m:
69
+ raise SystemExit("setup.js: SUPPORTED_IDS not found")
70
+ if f"'{sid}'" in m.group(1):
71
+ return content
72
+ content = re.sub(
73
+ r"(const SUPPORTED_IDS = new Set\(\[[^\]]+)\]\);",
74
+ rf"\1, '{sid}']);",
75
+ content,
76
+ count=1,
77
+ )
78
+ if f"// story: {cfg['story']}" not in content:
79
+ content = content.replace(
80
+ "// story: e74s02",
81
+ f"// story: e74s02\n// story: {cfg['story']}",
82
+ 1,
83
+ )
84
+ return content
85
+
86
+
87
+ def insert_case_in_function(content: str, func_name: str, anchor_case: str, new_case: str) -> str:
88
+ sid = new_case.split("'")[1]
89
+ if f"case '{sid}'" in content:
90
+ return content
91
+ func_match = re.search(rf"function {func_name}\([^)]*\) \{{", content)
92
+ if not func_match:
93
+ raise SystemExit(f"function not found: {func_name}")
94
+ start = func_match.start()
95
+ # find matching closing brace for function (naive: next function or uninstall section)
96
+ rest = content[start:]
97
+ next_func = re.search(r"\nfunction \w+\(", rest[1:])
98
+ end = start + (next_func.start() + 1 if next_func else len(rest))
99
+ section = content[start:end]
100
+ if f"case '{sid}'" in section:
101
+ return content
102
+ idx = section.find(anchor_case)
103
+ if idx == -1:
104
+ raise SystemExit(f"anchor {anchor_case} not found in {func_name}")
105
+ new_section = section[:idx] + new_case + "\n" + section[idx:]
106
+ return content[:start] + new_section + content[end:]
107
+
108
+
109
+ def patch_helpers(cfg: dict, content: str) -> str:
110
+ story = cfg["story"]
111
+ if f"story: {story}" in content:
112
+ return content
113
+ g = helpers_global_case(cfg)
114
+ content = insert_case_in_function(content, "installGlobal", " case 'cursor':", g)
115
+ l = helpers_local_case(cfg)
116
+ content = insert_case_in_function(content, "installLocal", " case 'cursor':", l)
117
+ u = helpers_uninstall_case(cfg)
118
+ if cfg["fn"] == "codex":
119
+ old = """ case 'codex':
120
+ removeSymlink(path.join(homeDir, '.codex', 'AGENTS.md'));
121
+ break;"""
122
+ if old in content:
123
+ content = content.replace(old, u)
124
+ else:
125
+ content = insert_case_in_function(content, "uninstallTool", " case 'cursor':", u)
126
+ else:
127
+ content = insert_case_in_function(content, "uninstallTool", " case 'cursor':", u)
128
+ if f"// story: {story}" not in content.split("\n")[0:10]:
129
+ content = content.replace(
130
+ "// story: e74s02",
131
+ f"// story: e74s02\n// story: {story}",
132
+ 1,
133
+ )
134
+ return content
135
+
136
+
137
+ def patch_verify_install(cfg: dict, content: str) -> str:
138
+ fn = cfg["fn"]
139
+ setup_id = cfg["setup_id"]
140
+ p = prefix(cfg)
141
+ story = cfg["story"]
142
+ if f"story: {story}" in content:
143
+ return content
144
+
145
+ if fn == "opencode":
146
+ content = content.replace(
147
+ 'grep -qi \'opencode\' <<< "$DRY_OUT" && ta_fail "install references opencode" || ta_pass "install has no opencode reference"',
148
+ 'grep -q \'OpenCode →\' <<< "$DRY_OUT" && ta_pass "install includes OpenCode" || ta_fail "install missing OpenCode"',
149
+ )
150
+
151
+ block = f"""grep -q 'install_{fn}()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_{fn}()" || ta_fail "source: missing install_{fn}()"
152
+ grep -q 'uninstall_{fn}()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_{fn}()" || ta_fail "source: missing uninstall_{fn}()"
153
+ grep -q '{p}_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: {fn} skills dir" || ta_fail "source: missing {fn} skills dir"
154
+ grep -q "'{setup_id}'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: {setup_id} supported" || ta_fail "setup.js: {setup_id} not in SUPPORTED_IDS"
155
+ grep -q "case '{setup_id}'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: {setup_id} case" || ta_fail "install-helpers: missing {setup_id} case"
156
+ """
157
+ anchor = 'echo ""\necho "──────────────────────────────────────────"'
158
+ content = content.replace(anchor, block + anchor)
159
+ content = content.replace(
160
+ "# story: e74s02",
161
+ f"# story: e74s02\n# story: {story}",
162
+ 1,
163
+ )
164
+ return content
165
+
166
+
167
+ def patch_targets(cfg: dict, content: str) -> str:
168
+ fn = cfg["fn"]
169
+ manifest = cfg.get("manifest")
170
+ if manifest and manifest not in content and f"id: {fn}" in content:
171
+ content = re.sub(
172
+ rf"( - id: {fn}\n(?: .*\n)*? contracts:\n(?: - [^\n]+\n)+)",
173
+ rf"\1 - {manifest}\n",
174
+ content,
175
+ count=1,
176
+ )
177
+ return content
178
+ if f"\n - id: {fn}\n" in content:
179
+ return content
180
+ row = targets_row(cfg)
181
+ content = content.rstrip() + "\n\n # Fleet Wave B\n" + row
182
+ return content
183
+
184
+
185
+ def apply_epic(epic_id: str) -> None:
186
+ cfg = dict(HUB_EPICS[epic_id])
187
+ cfg["_epic_id"] = epic_id
188
+ fn = cfg["fn"]
189
+ print(f"Applying Wave B hub for {epic_id} ({fn})...")
190
+
191
+ test_path = REPO / f"scripts/test-{fn}-hub.sh"
192
+ test_path.write_text(test_hub_sh(cfg))
193
+ test_path.chmod(0o755)
194
+
195
+ install_path = REPO / "scripts/install.sh"
196
+ install_path.write_text(patch_install_sh(cfg, install_path.read_text()))
197
+
198
+ helpers_path = REPO / "scripts/lib/install-helpers.js"
199
+ helpers_path.write_text(patch_helpers(cfg, helpers_path.read_text()))
200
+
201
+ setup_path = REPO / "bin/setup.js"
202
+ setup_path.write_text(patch_setup_js(cfg, setup_path.read_text()))
203
+
204
+ verify_path = REPO / "scripts/verify-install.sh"
205
+ verify_path.write_text(patch_verify_install(cfg, verify_path.read_text()))
206
+
207
+ if cfg.get("manifest"):
208
+ targets_path = REPO / "scripts/targets.yaml"
209
+ targets_path.write_text(patch_targets(cfg, targets_path.read_text()))
210
+
211
+ print(f" wrote test-{fn}-hub.sh and patched hub files")
212
+
213
+
@@ -14,20 +14,9 @@
14
14
  # lead_time_minutes NON-ADDITIVE. Calendar latency, first-commit → merge.
15
15
  # Aggregate by median/p75 over many stories. NEVER sum.
16
16
  #
17
- # Effort model (git-hours, kimmobrunfeldt/git-hours src/index.js:15,18):
18
- # * commits sorted by author-date across the WHOLE range;
19
- # * gap < IDLE (120 min) -> real elapsed time, credited to the *later*
20
- # commit's story (the work that produced it);
21
- # * gap >= IDLE -> session boundary: credit a flat PAD (120 min)
22
- # to the later commit's story, drop the idle time;
23
- # * the very first commit of the stream is never padded (no left neighbour).
24
- #
25
- # Why not run git-hours per story and sum? Because it doesn't sum: each
26
- # per-story run re-pads its own first commit and drops its own leading gap,
27
- # so the sum leaks both ways. The global partition above is additive by
28
- # construction. Attribution of a shared <120-min window to "the later commit's
29
- # story" is a documented CONVENTION, not a physical truth — it is the only way
30
- # to keep the numbers summable without double-counting.
17
+ # Effort model (git-hours): commits sorted by author-date; gap < IDLE (120 min)
18
+ # credits elapsed time to the later commit's story; gap >= IDLE starts a new
19
+ # session with a flat PAD (120 min). Global partition keeps Σ effort additive.
31
20
  #
32
21
  # Story attribution: a `Story: <id>` trailer in the commit message. Commits
33
22
  # with no trailer land in the `unattributed` bucket (surfaced, never dropped).
@@ -53,6 +53,7 @@ targets:
53
53
  mode: native
54
54
  contracts:
55
55
  - agents_md_exists
56
+ - cline_hooks_manifest
56
57
 
57
58
  - id: aider
58
59
  name: Aider
@@ -160,6 +161,7 @@ targets:
160
161
 
161
162
  # Wave C (e37s11)
162
163
  - id: qwen
164
+ # story: e68s02
163
165
  name: Qwen (Alibaba)
164
166
  tier: opt_in
165
167
  skill: null
@@ -169,8 +171,7 @@ targets:
169
171
  file: QWEN.md
170
172
  contracts:
171
173
  - agents_md_exists
172
-
173
- - id: kilocode
174
+ - qwen_hooks_manifest
174
175
  name: Kilocode
175
176
  tier: opt_in
176
177
  skill:
@@ -230,3 +231,75 @@ targets:
230
231
  file: AGENTS.md
231
232
  contracts:
232
233
  - agents_md_exists
234
+
235
+ # Fleet Wave B
236
+ - id: codex
237
+ name: Codex CLI
238
+ tier: opt_in
239
+ skill:
240
+ adapter: codex
241
+ output: .codex/skills
242
+ context:
243
+ adapter: codex
244
+ mode: config-bridge
245
+ file: AGENTS.md
246
+ bridge_file: config.toml
247
+ bridge_key: instructions
248
+ contracts:
249
+ - codex_hooks_manifest
250
+
251
+ # Fleet Wave B
252
+ - id: codebuddy
253
+ name: CodeBuddy
254
+ tier: opt_in
255
+ skill:
256
+ adapter: codebuddy
257
+ output: .codebuddy/skills
258
+ context:
259
+ adapter: codebuddy
260
+ mode: symlink
261
+ file: AGENTS.md
262
+ contracts:
263
+ - codebuddy_hooks_manifest
264
+
265
+ # Fleet Wave B
266
+ - id: kilocode
267
+ name: Kilo
268
+ tier: opt_in
269
+ skill:
270
+ adapter: kilocode
271
+ output: .kilocode/rules
272
+ context:
273
+ adapter: kilocode
274
+ mode: copy
275
+ file: AGENTS.md
276
+ contracts:
277
+ - kilocode_hooks_manifest
278
+
279
+ # Fleet Wave B
280
+ - id: trae
281
+ name: Trae
282
+ tier: opt_in
283
+ skill:
284
+ adapter: trae
285
+ output: .trae/skills
286
+ context:
287
+ adapter: trae
288
+ mode: symlink
289
+ file: AGENTS.md
290
+ contracts:
291
+ - trae_hooks_manifest
292
+
293
+ # Fleet Wave B
294
+ - id: windsurf
295
+ name: Windsurf
296
+ tier: opt_in
297
+ skill:
298
+ adapter: windsurf
299
+ output: .windsurf/rules
300
+ context:
301
+ adapter: windsurf
302
+ mode: copy
303
+ file: AGENTS.md
304
+ contracts:
305
+ - windsurf_hooks_manifest
@@ -13,24 +13,25 @@ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
13
13
  echo "=== test-agy-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_agy()' "$INSTALL_SH" && pass 'install.sh: install_agy()' || fail 'install.sh: missing install_agy()'
21
- grep -q 'install_antigravity()' "$INSTALL_SH" && pass 'install.sh: install_antigravity alias' || fail 'install.sh: missing install_antigravity()'
22
- grep -q 'uninstall_agy()' "$INSTALL_SH" && pass 'install.sh: uninstall_agy()' || fail 'install.sh: missing uninstall_agy()'
23
- grep -q 'uninstall_antigravity()' "$INSTALL_SH" && pass 'install.sh: uninstall_antigravity alias' || fail 'install.sh: missing uninstall_antigravity()'
24
- grep -q 'AGY_SKILLS_DIR=' "$INSTALL_SH" && pass 'install.sh: AGY_SKILLS_DIR' || fail 'install.sh: missing AGY_SKILLS_DIR'
25
- grep -q 'antigravity-cli/skills' "$INSTALL_SH" && pass 'install.sh: antigravity-cli path' || fail 'install.sh: missing antigravity-cli path'
26
- grep -q 'install_agy' "$INSTALL_SH" && grep -q 'uninstall_agy' "$INSTALL_SH" && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing agy'
21
+ install_grep -q 'install_agy()' && pass 'install.sh: install_agy()' || fail 'install.sh: missing install_agy()'
22
+ install_grep -q 'install_antigravity()' && pass 'install.sh: install_antigravity alias' || fail 'install.sh: missing install_antigravity()'
23
+ install_grep -q 'uninstall_agy()' && pass 'install.sh: uninstall_agy()' || fail 'install.sh: missing uninstall_agy()'
24
+ install_grep -q 'uninstall_antigravity()' && pass 'install.sh: uninstall_antigravity alias' || fail 'install.sh: missing uninstall_antigravity()'
25
+ install_grep -q 'AGY_SKILLS_DIR=' && pass 'install.sh: AGY_SKILLS_DIR' || fail 'install.sh: missing AGY_SKILLS_DIR'
26
+ install_grep -q 'antigravity-cli/skills' && pass 'install.sh: antigravity-cli path' || fail 'install.sh: missing antigravity-cli path'
27
+ install_grep -q 'install_agy' && install_grep -q 'uninstall_agy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing agy'
27
28
  ! grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p' "$INSTALL_SH")" \
28
29
  && pass 'install.sh: no gemini extension path' || fail 'install.sh: touches gemini extension path'
29
30
 
30
31
  DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
31
- echo "$DRY_OUT" | grep -q 'Antigravity CLI →' && pass 'dry-run: Antigravity CLI section' || fail 'dry-run: missing Antigravity CLI section'
32
+ grep -q 'Antigravity CLI →' <<< "$DRY_OUT" && pass 'dry-run: Antigravity CLI section' || fail 'dry-run: missing Antigravity CLI section'
32
33
  DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
33
- echo "$DRY_UNINSTALL" | grep -q 'Antigravity CLI →' && pass 'dry-run uninstall: Antigravity CLI section' || fail 'dry-run uninstall: missing Antigravity CLI section'
34
+ grep -q 'Antigravity CLI →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Antigravity CLI section' || fail 'dry-run uninstall: missing Antigravity CLI section'
34
35
 
35
36
  grep -q "case 'antigravity'" "$HELPERS_JS" && pass 'install-helpers: antigravity case' || fail 'install-helpers: missing antigravity case'
36
37
  grep -q "case 'agy'" "$HELPERS_JS" && pass 'install-helpers: agy case' || fail 'install-helpers: missing agy case'
@@ -41,7 +42,7 @@ SETUP_SRC="$(cat "$SETUP_JS")"
41
42
  echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
42
43
  echo "$SETUP_SRC" | grep -q "'antigravity'" && pass 'setup.js: antigravity in TOOLS/SUPPORTED_IDS' || fail 'setup.js: antigravity missing'
43
44
  echo "$SETUP_SRC" | grep -q "'agy'" && pass 'setup.js: agy in SUPPORTED_IDS' || fail 'setup.js: agy missing from SUPPORTED_IDS'
44
- echo "$SETUP_SRC" | grep -q 'antigravity-cli/skills' && pass 'setup.js: antigravity-cli global path' || fail 'setup.js: wrong antigravity global path'
45
+ echo "$SETUP_SRC" | grep -q 'antigravity-cli/skills' <<< "$DRY_OUT" && pass 'setup.js: antigravity-cli global path' || fail 'setup.js: wrong antigravity global path'
45
46
  echo "$SETUP_SRC" | grep -q "'\\.agents/skills'" && pass 'setup.js: .agents/skills local path' || fail 'setup.js: wrong antigravity local path'
46
47
 
47
48
  grep -q 'id: agy' "$TARGETS_YAML" && pass 'targets.yaml: agy row' || fail 'targets.yaml: missing agy row'
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env bash
2
+ # story: e66s01
3
+ # scenario: SC-e66s01-P1-02
4
+ # Regression tests for Cline 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-cline-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
+ | CLINE_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/cline.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
+ | CLINE_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/cline.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/cline/plugin/guard-git-plugin.ts" ]] \
39
+ && [[ -f "$REPO_ROOT/scripts/hooks/cline/hooks-manifest.json" ]] \
40
+ && grep -q 'registerHook' "$REPO_ROOT/scripts/hooks/cline/plugin/guard-git-plugin.ts"; then
41
+ pass "plugin hook template present"
42
+ else
43
+ fail "plugin hook template present"
44
+ fi
45
+
46
+ ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" cline 2>&1 || true)
47
+ if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
48
+ pass "test-adapters.sh cline"
49
+ else
50
+ fail "test-adapters.sh cline"
51
+ echo "$ADAPTER_OUT"
52
+ fi
53
+
54
+ echo "test-cline-adapter: $PASS passed, $FAIL failed"
55
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ # story: e66s02
3
+ # Regression tests for Cline 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-cline-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_cline()' && pass 'install.sh: install_cline()' || fail 'install.sh: missing install_cline()'
22
+ install_grep -q 'uninstall_cline()' && pass 'install.sh: uninstall_cline()' || fail 'install.sh: missing uninstall_cline()'
23
+ install_grep -q 'CLINE_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
24
+ install_grep -q 'install_cline' && install_grep -q 'uninstall_cline' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing cline'
25
+
26
+ DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
27
+ grep -q 'Cline →' <<< "$DRY_OUT" && pass 'dry-run: Cline section' || fail 'dry-run: missing Cline section'
28
+ DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
29
+ grep -q 'Cline →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Cline section' || fail 'dry-run uninstall: missing Cline section'
30
+
31
+ grep -q "case 'cline'" "$HELPERS_JS" && pass 'install-helpers: cline case' || fail 'install-helpers: missing cline case'
32
+ install_grep -q 'scripts/hooks/cline/plugin' && pass 'install.sh: plugin hook template' || fail 'install.sh: missing plugin template'
33
+
34
+ SETUP_SRC="$(cat "$SETUP_JS")"
35
+ echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
36
+ grep -q "'cline'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: cline in SUPPORTED_IDS' || fail 'setup.js: cline not in SUPPORTED_IDS'
37
+
38
+ grep -q 'id: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline row' || fail 'targets.yaml: missing cline row'
39
+ grep -q 'adapter: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline adapter' || fail 'targets.yaml: missing cline adapter'
40
+ grep -q 'cline_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: cline_hooks_manifest' || fail 'targets.yaml: missing cline_hooks_manifest'
41
+ grep -q 'install_cline()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_cline assertion' || fail 'verify-install: missing install_cline assertion'
42
+
43
+ bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
44
+ node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
45
+ node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
46
+
47
+ echo "test-cline-hub: $PASS passed, $FAIL failed"
48
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env bash
2
+ # story: e72s01
3
+ # scenario: SC-e72s01-P1-02
4
+ # Regression tests for CodeBuddy 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-codebuddy-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
+ | CODEBUDDY_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/codebuddy.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
+ | CODEBUDDY_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/codebuddy.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/codebuddy/pre-tool-git-guard.sh" ]] \
39
+ && [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/hooks-manifest.json" ]] \
40
+ && [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/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/codebuddy/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" codebuddy 2>&1 || true)
55
+ if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
56
+ pass "test-adapters.sh codebuddy"
57
+ else
58
+ fail "test-adapters.sh codebuddy"
59
+ echo "$ADAPTER_OUT"
60
+ fi
61
+
62
+ echo "test-codebuddy-adapter: $PASS passed, $FAIL failed"
63
+ [[ "$FAIL" -eq 0 ]] || exit 1
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ # story: e72s02
3
+ # Regression tests for CodeBuddy 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-codebuddy-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_codebuddy()' && pass 'install.sh: install_codebuddy()' || fail 'install.sh: missing install_codebuddy()'
22
+ install_grep -q 'uninstall_codebuddy()' && pass 'install.sh: uninstall_codebuddy()' || fail 'install.sh: missing uninstall_codebuddy()'
23
+ install_grep -q 'CODEBUDDY_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
24
+ install_grep -q 'install_codebuddy' && install_grep -q 'uninstall_codebuddy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing codebuddy'
25
+
26
+ DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
27
+ grep -q 'CodeBuddy →' <<< "$DRY_OUT" && pass 'dry-run: CodeBuddy section' || fail 'dry-run: missing CodeBuddy section'
28
+ DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
29
+ grep -q 'CodeBuddy →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: CodeBuddy section' || fail 'dry-run uninstall: missing CodeBuddy section'
30
+
31
+ grep -q "case 'codebuddy'" "$HELPERS_JS" && pass 'install-helpers: codebuddy case' || fail 'install-helpers: missing codebuddy case'
32
+ install_grep -q 'CODEBUDDY_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 "'codebuddy'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: codebuddy in SUPPORTED_IDS' || fail 'setup.js: codebuddy not in SUPPORTED_IDS'
38
+
39
+ grep -q 'id: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy row' || fail 'targets.yaml: missing codebuddy row'
40
+ grep -q 'adapter: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy adapter' || fail 'targets.yaml: missing codebuddy adapter'
41
+ grep -q 'codebuddy_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy_hooks_manifest' || fail 'targets.yaml: missing codebuddy_hooks_manifest'
42
+ grep -q 'install_codebuddy()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_codebuddy assertion' || fail 'verify-install: missing install_codebuddy 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-codebuddy-hub: $PASS passed, $FAIL failed"
49
+ [[ "$FAIL" -eq 0 ]] || exit 1