bigpowers 2.83.3 → 2.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.codebuddy/skills/align-grid/SKILL.md +110 -0
  2. package/.codebuddy/skills/assess-impact/SKILL.md +91 -0
  3. package/.codebuddy/skills/audit-code/SKILL.md +187 -0
  4. package/.codebuddy/skills/audit-plan/SKILL.md +89 -0
  5. package/.codebuddy/skills/build-epic/SKILL.md +105 -0
  6. package/.codebuddy/skills/change-request/SKILL.md +121 -0
  7. package/.codebuddy/skills/commit-message/SKILL.md +140 -0
  8. package/.codebuddy/skills/compose-workflow/SKILL.md +82 -0
  9. package/.codebuddy/skills/context7-mcp/SKILL.md +55 -0
  10. package/.codebuddy/skills/craft-skill/SKILL.md +179 -0
  11. package/.codebuddy/skills/deepen-architecture/SKILL.md +260 -0
  12. package/.codebuddy/skills/define-language/SKILL.md +80 -0
  13. package/.codebuddy/skills/define-success/SKILL.md +65 -0
  14. package/.codebuddy/skills/delegate-task/SKILL.md +91 -0
  15. package/.codebuddy/skills/deploy/SKILL.md +198 -0
  16. package/.codebuddy/skills/design-interface/SKILL.md +97 -0
  17. package/.codebuddy/skills/develop-tdd/SKILL.md +406 -0
  18. package/.codebuddy/skills/diagnose-root/SKILL.md +24 -0
  19. package/.codebuddy/skills/diagnose-stall/SKILL.md +54 -0
  20. package/.codebuddy/skills/dispatch-agents/SKILL.md +118 -0
  21. package/.codebuddy/skills/edit-document/SKILL.md +23 -0
  22. package/.codebuddy/skills/elaborate-spec/SKILL.md +101 -0
  23. package/.codebuddy/skills/enforce-first/SKILL.md +32 -0
  24. package/.codebuddy/skills/evolve-skill/SKILL.md +55 -0
  25. package/.codebuddy/skills/execute-plan/SKILL.md +61 -0
  26. package/.codebuddy/skills/extract-design/SKILL.md +132 -0
  27. package/.codebuddy/skills/find-way/SKILL.md +191 -0
  28. package/.codebuddy/skills/fix-bug/SKILL.md +67 -0
  29. package/.codebuddy/skills/gate-trace/SKILL.md +88 -0
  30. package/.codebuddy/skills/generate-allure-report/SKILL.md +285 -0
  31. package/.codebuddy/skills/grill-me/SKILL.md +96 -0
  32. package/.codebuddy/skills/grill-with-docs/SKILL.md +41 -0
  33. package/.codebuddy/skills/guard-git/SKILL.md +231 -0
  34. package/.codebuddy/skills/harden-vps/SKILL.md +288 -0
  35. package/.codebuddy/skills/hook-commits/SKILL.md +94 -0
  36. package/.codebuddy/skills/inspect-quality/SKILL.md +106 -0
  37. package/.codebuddy/skills/investigate-bug/SKILL.md +127 -0
  38. package/.codebuddy/skills/kickoff-branch/SKILL.md +143 -0
  39. package/.codebuddy/skills/maintain-wiki/SKILL.md +64 -0
  40. package/.codebuddy/skills/map-codebase/SKILL.md +71 -0
  41. package/.codebuddy/skills/migrate-spec/SKILL.md +862 -0
  42. package/.codebuddy/skills/model-domain/SKILL.md +232 -0
  43. package/.codebuddy/skills/orchestrate-project/SKILL.md +174 -0
  44. package/.codebuddy/skills/organize-workspace/SKILL.md +164 -0
  45. package/.codebuddy/skills/plan-refactor/SKILL.md +87 -0
  46. package/.codebuddy/skills/plan-release/SKILL.md +145 -0
  47. package/.codebuddy/skills/plan-tests/SKILL.md +75 -0
  48. package/.codebuddy/skills/plan-work/SKILL.md +260 -0
  49. package/.codebuddy/skills/publish-package/SKILL.md +328 -0
  50. package/.codebuddy/skills/quick-fix/SKILL.md +114 -0
  51. package/.codebuddy/skills/release-branch/SKILL.md +298 -0
  52. package/.codebuddy/skills/request-review/SKILL.md +112 -0
  53. package/.codebuddy/skills/research-first/SKILL.md +87 -0
  54. package/.codebuddy/skills/reset-baseline/SKILL.md +21 -0
  55. package/.codebuddy/skills/respond-review/SKILL.md +71 -0
  56. package/.codebuddy/skills/run-benchmark/SKILL.md +85 -0
  57. package/.codebuddy/skills/run-evals/SKILL.md +80 -0
  58. package/.codebuddy/skills/run-planning/SKILL.md +101 -0
  59. package/.codebuddy/skills/scope-work/SKILL.md +63 -0
  60. package/.codebuddy/skills/search-skills/SKILL.md +73 -0
  61. package/.codebuddy/skills/security-review/SKILL.md +384 -0
  62. package/.codebuddy/skills/seed-conventions/SKILL.md +285 -0
  63. package/.codebuddy/skills/session-state/SKILL.md +146 -0
  64. package/.codebuddy/skills/setup-environment/SKILL.md +39 -0
  65. package/.codebuddy/skills/simulate-agents/SKILL.md +26 -0
  66. package/.codebuddy/skills/slice-tasks/SKILL.md +68 -0
  67. package/.codebuddy/skills/smoke-test/SKILL.md +242 -0
  68. package/.codebuddy/skills/spike-prototype/SKILL.md +95 -0
  69. package/.codebuddy/skills/stocktake-skills/SKILL.md +72 -0
  70. package/.codebuddy/skills/survey-context/SKILL.md +135 -0
  71. package/.codebuddy/skills/terse-mode/SKILL.md +42 -0
  72. package/.codebuddy/skills/trace-requirement/SKILL.md +69 -0
  73. package/.codebuddy/skills/using-bigpowers/SKILL.md +111 -0
  74. package/.codebuddy/skills/validate-contracts/SKILL.md +309 -0
  75. package/.codebuddy/skills/validate-fix/SKILL.md +106 -0
  76. package/.codebuddy/skills/verify-work/SKILL.md +191 -0
  77. package/.codebuddy/skills/visual-dashboard/SKILL.md +50 -0
  78. package/.codebuddy/skills/wire-ci/SKILL.md +375 -0
  79. package/.codebuddy/skills/wire-observability/SKILL.md +97 -0
  80. package/.codebuddy/skills/write-document/SKILL.md +255 -0
  81. package/.codex/skills/align-grid/SKILL.md +110 -0
  82. package/.codex/skills/assess-impact/SKILL.md +91 -0
  83. package/.codex/skills/audit-code/SKILL.md +187 -0
  84. package/.codex/skills/audit-plan/SKILL.md +89 -0
  85. package/.codex/skills/build-epic/SKILL.md +105 -0
  86. package/.codex/skills/change-request/SKILL.md +121 -0
  87. package/.codex/skills/commit-message/SKILL.md +140 -0
  88. package/.codex/skills/compose-workflow/SKILL.md +82 -0
  89. package/.codex/skills/context7-mcp/SKILL.md +55 -0
  90. package/.codex/skills/craft-skill/SKILL.md +179 -0
  91. package/.codex/skills/deepen-architecture/SKILL.md +260 -0
  92. package/.codex/skills/define-language/SKILL.md +80 -0
  93. package/.codex/skills/define-success/SKILL.md +65 -0
  94. package/.codex/skills/delegate-task/SKILL.md +91 -0
  95. package/.codex/skills/deploy/SKILL.md +198 -0
  96. package/.codex/skills/design-interface/SKILL.md +97 -0
  97. package/.codex/skills/develop-tdd/SKILL.md +406 -0
  98. package/.codex/skills/diagnose-root/SKILL.md +24 -0
  99. package/.codex/skills/diagnose-stall/SKILL.md +54 -0
  100. package/.codex/skills/dispatch-agents/SKILL.md +118 -0
  101. package/.codex/skills/edit-document/SKILL.md +23 -0
  102. package/.codex/skills/elaborate-spec/SKILL.md +101 -0
  103. package/.codex/skills/enforce-first/SKILL.md +32 -0
  104. package/.codex/skills/evolve-skill/SKILL.md +55 -0
  105. package/.codex/skills/execute-plan/SKILL.md +61 -0
  106. package/.codex/skills/extract-design/SKILL.md +132 -0
  107. package/.codex/skills/find-way/SKILL.md +191 -0
  108. package/.codex/skills/fix-bug/SKILL.md +67 -0
  109. package/.codex/skills/gate-trace/SKILL.md +88 -0
  110. package/.codex/skills/generate-allure-report/SKILL.md +285 -0
  111. package/.codex/skills/grill-me/SKILL.md +96 -0
  112. package/.codex/skills/grill-with-docs/SKILL.md +41 -0
  113. package/.codex/skills/guard-git/SKILL.md +231 -0
  114. package/.codex/skills/harden-vps/SKILL.md +288 -0
  115. package/.codex/skills/hook-commits/SKILL.md +94 -0
  116. package/.codex/skills/inspect-quality/SKILL.md +106 -0
  117. package/.codex/skills/investigate-bug/SKILL.md +127 -0
  118. package/.codex/skills/kickoff-branch/SKILL.md +143 -0
  119. package/.codex/skills/maintain-wiki/SKILL.md +64 -0
  120. package/.codex/skills/map-codebase/SKILL.md +71 -0
  121. package/.codex/skills/migrate-spec/SKILL.md +862 -0
  122. package/.codex/skills/model-domain/SKILL.md +232 -0
  123. package/.codex/skills/orchestrate-project/SKILL.md +174 -0
  124. package/.codex/skills/organize-workspace/SKILL.md +164 -0
  125. package/.codex/skills/plan-refactor/SKILL.md +87 -0
  126. package/.codex/skills/plan-release/SKILL.md +145 -0
  127. package/.codex/skills/plan-tests/SKILL.md +75 -0
  128. package/.codex/skills/plan-work/SKILL.md +260 -0
  129. package/.codex/skills/publish-package/SKILL.md +328 -0
  130. package/.codex/skills/quick-fix/SKILL.md +114 -0
  131. package/.codex/skills/release-branch/SKILL.md +298 -0
  132. package/.codex/skills/request-review/SKILL.md +112 -0
  133. package/.codex/skills/research-first/SKILL.md +87 -0
  134. package/.codex/skills/reset-baseline/SKILL.md +21 -0
  135. package/.codex/skills/respond-review/SKILL.md +71 -0
  136. package/.codex/skills/run-benchmark/SKILL.md +85 -0
  137. package/.codex/skills/run-evals/SKILL.md +80 -0
  138. package/.codex/skills/run-planning/SKILL.md +101 -0
  139. package/.codex/skills/scope-work/SKILL.md +63 -0
  140. package/.codex/skills/search-skills/SKILL.md +73 -0
  141. package/.codex/skills/security-review/SKILL.md +384 -0
  142. package/.codex/skills/seed-conventions/SKILL.md +285 -0
  143. package/.codex/skills/session-state/SKILL.md +146 -0
  144. package/.codex/skills/setup-environment/SKILL.md +39 -0
  145. package/.codex/skills/simulate-agents/SKILL.md +26 -0
  146. package/.codex/skills/slice-tasks/SKILL.md +68 -0
  147. package/.codex/skills/smoke-test/SKILL.md +242 -0
  148. package/.codex/skills/spike-prototype/SKILL.md +95 -0
  149. package/.codex/skills/stocktake-skills/SKILL.md +72 -0
  150. package/.codex/skills/survey-context/SKILL.md +135 -0
  151. package/.codex/skills/terse-mode/SKILL.md +42 -0
  152. package/.codex/skills/trace-requirement/SKILL.md +69 -0
  153. package/.codex/skills/using-bigpowers/SKILL.md +111 -0
  154. package/.codex/skills/validate-contracts/SKILL.md +309 -0
  155. package/.codex/skills/validate-fix/SKILL.md +106 -0
  156. package/.codex/skills/verify-work/SKILL.md +191 -0
  157. package/.codex/skills/visual-dashboard/SKILL.md +50 -0
  158. package/.codex/skills/wire-ci/SKILL.md +375 -0
  159. package/.codex/skills/wire-observability/SKILL.md +97 -0
  160. package/.codex/skills/write-document/SKILL.md +255 -0
  161. package/.kilocode/rules/align-grid.md +110 -0
  162. package/.kilocode/rules/assess-impact.md +91 -0
  163. package/.kilocode/rules/audit-code.md +187 -0
  164. package/.kilocode/rules/audit-plan.md +89 -0
  165. package/.kilocode/rules/build-epic.md +105 -0
  166. package/.kilocode/rules/change-request.md +121 -0
  167. package/.kilocode/rules/commit-message.md +140 -0
  168. package/.kilocode/rules/compose-workflow.md +82 -0
  169. package/.kilocode/rules/context7-mcp.md +55 -0
  170. package/.kilocode/rules/craft-skill.md +179 -0
  171. package/.kilocode/rules/deepen-architecture.md +260 -0
  172. package/.kilocode/rules/define-language.md +80 -0
  173. package/.kilocode/rules/define-success.md +65 -0
  174. package/.kilocode/rules/delegate-task.md +91 -0
  175. package/.kilocode/rules/deploy.md +198 -0
  176. package/.kilocode/rules/design-interface.md +97 -0
  177. package/.kilocode/rules/develop-tdd.md +406 -0
  178. package/.kilocode/rules/diagnose-root.md +24 -0
  179. package/.kilocode/rules/diagnose-stall.md +54 -0
  180. package/.kilocode/rules/dispatch-agents.md +118 -0
  181. package/.kilocode/rules/edit-document.md +23 -0
  182. package/.kilocode/rules/elaborate-spec.md +101 -0
  183. package/.kilocode/rules/enforce-first.md +32 -0
  184. package/.kilocode/rules/evolve-skill.md +55 -0
  185. package/.kilocode/rules/execute-plan.md +61 -0
  186. package/.kilocode/rules/extract-design.md +132 -0
  187. package/.kilocode/rules/find-way.md +191 -0
  188. package/.kilocode/rules/fix-bug.md +67 -0
  189. package/.kilocode/rules/gate-trace.md +88 -0
  190. package/.kilocode/rules/generate-allure-report.md +285 -0
  191. package/.kilocode/rules/grill-me.md +96 -0
  192. package/.kilocode/rules/grill-with-docs.md +41 -0
  193. package/.kilocode/rules/guard-git.md +231 -0
  194. package/.kilocode/rules/harden-vps.md +288 -0
  195. package/.kilocode/rules/hook-commits.md +94 -0
  196. package/.kilocode/rules/inspect-quality.md +106 -0
  197. package/.kilocode/rules/investigate-bug.md +127 -0
  198. package/.kilocode/rules/kickoff-branch.md +143 -0
  199. package/.kilocode/rules/maintain-wiki.md +64 -0
  200. package/.kilocode/rules/map-codebase.md +71 -0
  201. package/.kilocode/rules/migrate-spec.md +862 -0
  202. package/.kilocode/rules/model-domain.md +232 -0
  203. package/.kilocode/rules/orchestrate-project.md +174 -0
  204. package/.kilocode/rules/organize-workspace.md +164 -0
  205. package/.kilocode/rules/plan-refactor.md +87 -0
  206. package/.kilocode/rules/plan-release.md +145 -0
  207. package/.kilocode/rules/plan-tests.md +75 -0
  208. package/.kilocode/rules/plan-work.md +260 -0
  209. package/.kilocode/rules/publish-package.md +328 -0
  210. package/.kilocode/rules/quick-fix.md +114 -0
  211. package/.kilocode/rules/release-branch.md +298 -0
  212. package/.kilocode/rules/request-review.md +112 -0
  213. package/.kilocode/rules/research-first.md +87 -0
  214. package/.kilocode/rules/reset-baseline.md +21 -0
  215. package/.kilocode/rules/respond-review.md +71 -0
  216. package/.kilocode/rules/run-benchmark.md +85 -0
  217. package/.kilocode/rules/run-evals.md +80 -0
  218. package/.kilocode/rules/run-planning.md +101 -0
  219. package/.kilocode/rules/scope-work.md +63 -0
  220. package/.kilocode/rules/search-skills.md +73 -0
  221. package/.kilocode/rules/security-review.md +384 -0
  222. package/.kilocode/rules/seed-conventions.md +285 -0
  223. package/.kilocode/rules/session-state.md +146 -0
  224. package/.kilocode/rules/setup-environment.md +39 -0
  225. package/.kilocode/rules/simulate-agents.md +26 -0
  226. package/.kilocode/rules/slice-tasks.md +68 -0
  227. package/.kilocode/rules/smoke-test.md +242 -0
  228. package/.kilocode/rules/spike-prototype.md +95 -0
  229. package/.kilocode/rules/stocktake-skills.md +72 -0
  230. package/.kilocode/rules/survey-context.md +135 -0
  231. package/.kilocode/rules/terse-mode.md +42 -0
  232. package/.kilocode/rules/trace-requirement.md +69 -0
  233. package/.kilocode/rules/using-bigpowers.md +111 -0
  234. package/.kilocode/rules/validate-contracts.md +309 -0
  235. package/.kilocode/rules/validate-fix.md +106 -0
  236. package/.kilocode/rules/verify-work.md +191 -0
  237. package/.kilocode/rules/visual-dashboard.md +50 -0
  238. package/.kilocode/rules/wire-ci.md +375 -0
  239. package/.kilocode/rules/wire-observability.md +97 -0
  240. package/.kilocode/rules/write-document.md +255 -0
  241. package/.pi/package.json +1 -1
  242. package/.trae/skills/align-grid/SKILL.md +110 -0
  243. package/.trae/skills/assess-impact/SKILL.md +91 -0
  244. package/.trae/skills/audit-code/SKILL.md +187 -0
  245. package/.trae/skills/audit-plan/SKILL.md +89 -0
  246. package/.trae/skills/build-epic/SKILL.md +105 -0
  247. package/.trae/skills/change-request/SKILL.md +121 -0
  248. package/.trae/skills/commit-message/SKILL.md +140 -0
  249. package/.trae/skills/compose-workflow/SKILL.md +82 -0
  250. package/.trae/skills/context7-mcp/SKILL.md +55 -0
  251. package/.trae/skills/craft-skill/SKILL.md +179 -0
  252. package/.trae/skills/deepen-architecture/SKILL.md +260 -0
  253. package/.trae/skills/define-language/SKILL.md +80 -0
  254. package/.trae/skills/define-success/SKILL.md +65 -0
  255. package/.trae/skills/delegate-task/SKILL.md +91 -0
  256. package/.trae/skills/deploy/SKILL.md +198 -0
  257. package/.trae/skills/design-interface/SKILL.md +97 -0
  258. package/.trae/skills/develop-tdd/SKILL.md +406 -0
  259. package/.trae/skills/diagnose-root/SKILL.md +24 -0
  260. package/.trae/skills/diagnose-stall/SKILL.md +54 -0
  261. package/.trae/skills/dispatch-agents/SKILL.md +118 -0
  262. package/.trae/skills/edit-document/SKILL.md +23 -0
  263. package/.trae/skills/elaborate-spec/SKILL.md +101 -0
  264. package/.trae/skills/enforce-first/SKILL.md +32 -0
  265. package/.trae/skills/evolve-skill/SKILL.md +55 -0
  266. package/.trae/skills/execute-plan/SKILL.md +61 -0
  267. package/.trae/skills/extract-design/SKILL.md +132 -0
  268. package/.trae/skills/find-way/SKILL.md +191 -0
  269. package/.trae/skills/fix-bug/SKILL.md +67 -0
  270. package/.trae/skills/gate-trace/SKILL.md +88 -0
  271. package/.trae/skills/generate-allure-report/SKILL.md +285 -0
  272. package/.trae/skills/grill-me/SKILL.md +96 -0
  273. package/.trae/skills/grill-with-docs/SKILL.md +41 -0
  274. package/.trae/skills/guard-git/SKILL.md +231 -0
  275. package/.trae/skills/harden-vps/SKILL.md +288 -0
  276. package/.trae/skills/hook-commits/SKILL.md +94 -0
  277. package/.trae/skills/inspect-quality/SKILL.md +106 -0
  278. package/.trae/skills/investigate-bug/SKILL.md +127 -0
  279. package/.trae/skills/kickoff-branch/SKILL.md +143 -0
  280. package/.trae/skills/maintain-wiki/SKILL.md +64 -0
  281. package/.trae/skills/map-codebase/SKILL.md +71 -0
  282. package/.trae/skills/migrate-spec/SKILL.md +862 -0
  283. package/.trae/skills/model-domain/SKILL.md +232 -0
  284. package/.trae/skills/orchestrate-project/SKILL.md +174 -0
  285. package/.trae/skills/organize-workspace/SKILL.md +164 -0
  286. package/.trae/skills/plan-refactor/SKILL.md +87 -0
  287. package/.trae/skills/plan-release/SKILL.md +145 -0
  288. package/.trae/skills/plan-tests/SKILL.md +75 -0
  289. package/.trae/skills/plan-work/SKILL.md +260 -0
  290. package/.trae/skills/publish-package/SKILL.md +328 -0
  291. package/.trae/skills/quick-fix/SKILL.md +114 -0
  292. package/.trae/skills/release-branch/SKILL.md +298 -0
  293. package/.trae/skills/request-review/SKILL.md +112 -0
  294. package/.trae/skills/research-first/SKILL.md +87 -0
  295. package/.trae/skills/reset-baseline/SKILL.md +21 -0
  296. package/.trae/skills/respond-review/SKILL.md +71 -0
  297. package/.trae/skills/run-benchmark/SKILL.md +85 -0
  298. package/.trae/skills/run-evals/SKILL.md +80 -0
  299. package/.trae/skills/run-planning/SKILL.md +101 -0
  300. package/.trae/skills/scope-work/SKILL.md +63 -0
  301. package/.trae/skills/search-skills/SKILL.md +73 -0
  302. package/.trae/skills/security-review/SKILL.md +384 -0
  303. package/.trae/skills/seed-conventions/SKILL.md +285 -0
  304. package/.trae/skills/session-state/SKILL.md +146 -0
  305. package/.trae/skills/setup-environment/SKILL.md +39 -0
  306. package/.trae/skills/simulate-agents/SKILL.md +26 -0
  307. package/.trae/skills/slice-tasks/SKILL.md +68 -0
  308. package/.trae/skills/smoke-test/SKILL.md +242 -0
  309. package/.trae/skills/spike-prototype/SKILL.md +95 -0
  310. package/.trae/skills/stocktake-skills/SKILL.md +72 -0
  311. package/.trae/skills/survey-context/SKILL.md +135 -0
  312. package/.trae/skills/terse-mode/SKILL.md +42 -0
  313. package/.trae/skills/trace-requirement/SKILL.md +69 -0
  314. package/.trae/skills/using-bigpowers/SKILL.md +111 -0
  315. package/.trae/skills/validate-contracts/SKILL.md +309 -0
  316. package/.trae/skills/validate-fix/SKILL.md +106 -0
  317. package/.trae/skills/verify-work/SKILL.md +191 -0
  318. package/.trae/skills/visual-dashboard/SKILL.md +50 -0
  319. package/.trae/skills/wire-ci/SKILL.md +375 -0
  320. package/.trae/skills/wire-observability/SKILL.md +97 -0
  321. package/.trae/skills/write-document/SKILL.md +255 -0
  322. package/.windsurf/rules/align-grid.md +110 -0
  323. package/.windsurf/rules/assess-impact.md +91 -0
  324. package/.windsurf/rules/audit-code.md +187 -0
  325. package/.windsurf/rules/audit-plan.md +89 -0
  326. package/.windsurf/rules/build-epic.md +105 -0
  327. package/.windsurf/rules/change-request.md +121 -0
  328. package/.windsurf/rules/commit-message.md +140 -0
  329. package/.windsurf/rules/compose-workflow.md +82 -0
  330. package/.windsurf/rules/context7-mcp.md +55 -0
  331. package/.windsurf/rules/craft-skill.md +179 -0
  332. package/.windsurf/rules/deepen-architecture.md +260 -0
  333. package/.windsurf/rules/define-language.md +80 -0
  334. package/.windsurf/rules/define-success.md +65 -0
  335. package/.windsurf/rules/delegate-task.md +91 -0
  336. package/.windsurf/rules/deploy.md +198 -0
  337. package/.windsurf/rules/design-interface.md +97 -0
  338. package/.windsurf/rules/develop-tdd.md +406 -0
  339. package/.windsurf/rules/diagnose-root.md +24 -0
  340. package/.windsurf/rules/diagnose-stall.md +54 -0
  341. package/.windsurf/rules/dispatch-agents.md +118 -0
  342. package/.windsurf/rules/edit-document.md +23 -0
  343. package/.windsurf/rules/elaborate-spec.md +101 -0
  344. package/.windsurf/rules/enforce-first.md +32 -0
  345. package/.windsurf/rules/evolve-skill.md +55 -0
  346. package/.windsurf/rules/execute-plan.md +61 -0
  347. package/.windsurf/rules/extract-design.md +132 -0
  348. package/.windsurf/rules/find-way.md +191 -0
  349. package/.windsurf/rules/fix-bug.md +67 -0
  350. package/.windsurf/rules/gate-trace.md +88 -0
  351. package/.windsurf/rules/generate-allure-report.md +285 -0
  352. package/.windsurf/rules/grill-me.md +96 -0
  353. package/.windsurf/rules/grill-with-docs.md +41 -0
  354. package/.windsurf/rules/guard-git.md +231 -0
  355. package/.windsurf/rules/harden-vps.md +288 -0
  356. package/.windsurf/rules/hook-commits.md +94 -0
  357. package/.windsurf/rules/inspect-quality.md +106 -0
  358. package/.windsurf/rules/investigate-bug.md +127 -0
  359. package/.windsurf/rules/kickoff-branch.md +143 -0
  360. package/.windsurf/rules/maintain-wiki.md +64 -0
  361. package/.windsurf/rules/map-codebase.md +71 -0
  362. package/.windsurf/rules/migrate-spec.md +862 -0
  363. package/.windsurf/rules/model-domain.md +232 -0
  364. package/.windsurf/rules/orchestrate-project.md +174 -0
  365. package/.windsurf/rules/organize-workspace.md +164 -0
  366. package/.windsurf/rules/plan-refactor.md +87 -0
  367. package/.windsurf/rules/plan-release.md +145 -0
  368. package/.windsurf/rules/plan-tests.md +75 -0
  369. package/.windsurf/rules/plan-work.md +260 -0
  370. package/.windsurf/rules/publish-package.md +328 -0
  371. package/.windsurf/rules/quick-fix.md +114 -0
  372. package/.windsurf/rules/release-branch.md +298 -0
  373. package/.windsurf/rules/request-review.md +112 -0
  374. package/.windsurf/rules/research-first.md +87 -0
  375. package/.windsurf/rules/reset-baseline.md +21 -0
  376. package/.windsurf/rules/respond-review.md +71 -0
  377. package/.windsurf/rules/run-benchmark.md +85 -0
  378. package/.windsurf/rules/run-evals.md +80 -0
  379. package/.windsurf/rules/run-planning.md +101 -0
  380. package/.windsurf/rules/scope-work.md +63 -0
  381. package/.windsurf/rules/search-skills.md +73 -0
  382. package/.windsurf/rules/security-review.md +384 -0
  383. package/.windsurf/rules/seed-conventions.md +285 -0
  384. package/.windsurf/rules/session-state.md +146 -0
  385. package/.windsurf/rules/setup-environment.md +39 -0
  386. package/.windsurf/rules/simulate-agents.md +26 -0
  387. package/.windsurf/rules/slice-tasks.md +68 -0
  388. package/.windsurf/rules/smoke-test.md +242 -0
  389. package/.windsurf/rules/spike-prototype.md +95 -0
  390. package/.windsurf/rules/stocktake-skills.md +72 -0
  391. package/.windsurf/rules/survey-context.md +135 -0
  392. package/.windsurf/rules/terse-mode.md +42 -0
  393. package/.windsurf/rules/trace-requirement.md +69 -0
  394. package/.windsurf/rules/using-bigpowers.md +111 -0
  395. package/.windsurf/rules/validate-contracts.md +309 -0
  396. package/.windsurf/rules/validate-fix.md +106 -0
  397. package/.windsurf/rules/verify-work.md +191 -0
  398. package/.windsurf/rules/visual-dashboard.md +50 -0
  399. package/.windsurf/rules/wire-ci.md +375 -0
  400. package/.windsurf/rules/wire-observability.md +97 -0
  401. package/.windsurf/rules/write-document.md +255 -0
  402. package/CHANGELOG.md +37 -0
  403. package/CONVENTIONS.md +22 -0
  404. package/bin/setup.js +35 -7
  405. package/instructions +1 -0
  406. package/package.json +1 -1
  407. package/scripts/adapters/cline.sh +53 -3
  408. package/scripts/adapters/codebuddy.sh +58 -0
  409. package/scripts/adapters/codex.sh +58 -0
  410. package/scripts/adapters/copilot.sh +58 -0
  411. package/scripts/adapters/kilocode.sh +44 -3
  412. package/scripts/adapters/opencode.sh +58 -0
  413. package/scripts/adapters/qwen.sh +53 -1
  414. package/scripts/adapters/trae.sh +58 -0
  415. package/scripts/adapters/windsurf.sh +52 -0
  416. package/scripts/bp-yaml-set.sh +2 -0
  417. package/scripts/generate-wave-b-hub.py +31 -0
  418. package/scripts/hooks/cline/HOOKS.md +16 -0
  419. package/scripts/hooks/cline/hooks-manifest.json +12 -0
  420. package/scripts/hooks/cline/plugin/guard-git-plugin.ts +16 -0
  421. package/scripts/hooks/codebuddy/HOOKS.md +24 -0
  422. package/scripts/hooks/codebuddy/hooks-manifest.json +20 -0
  423. package/scripts/hooks/codebuddy/pre-tool-git-guard.sh +22 -0
  424. package/scripts/hooks/codebuddy/settings.example.json +16 -0
  425. package/scripts/hooks/codex/HOOKS.md +21 -0
  426. package/scripts/hooks/codex/hooks-manifest.json +17 -0
  427. package/scripts/hooks/codex/pre-tool-git-guard.sh +22 -0
  428. package/scripts/hooks/codex/settings.example.json +16 -0
  429. package/scripts/hooks/kilocode/HOOKS.md +16 -0
  430. package/scripts/hooks/kilocode/hooks-manifest.json +12 -0
  431. package/scripts/hooks/kilocode/plugin/guard-git-plugin.ts +16 -0
  432. package/scripts/hooks/qwen/HOOKS.md +27 -0
  433. package/scripts/hooks/qwen/hooks-manifest.json +23 -0
  434. package/scripts/hooks/qwen/pre-tool-git-guard.sh +22 -0
  435. package/scripts/hooks/qwen/settings.example.json +16 -0
  436. package/scripts/hooks/trae/HOOKS.md +17 -0
  437. package/scripts/hooks/trae/hooks-manifest.json +13 -0
  438. package/scripts/hooks/trae/pre-tool-git-guard.sh +22 -0
  439. package/scripts/hooks/trae/settings.example.json +16 -0
  440. package/scripts/hooks/windsurf/HOOKS.md +23 -0
  441. package/scripts/hooks/windsurf/hooks-manifest.json +19 -0
  442. package/scripts/hooks/windsurf/pre-tool-git-guard.sh +22 -0
  443. package/scripts/hooks/windsurf/settings.example.json +16 -0
  444. package/scripts/install.sh +33 -373
  445. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  446. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  447. package/scripts/lib/context-wire.sh +5 -0
  448. package/scripts/lib/install-grep.sh +18 -0
  449. package/scripts/lib/install-helpers.js +139 -2
  450. package/scripts/lib/install-targets-a.sh +227 -0
  451. package/scripts/lib/install-targets-b.sh +226 -0
  452. package/scripts/lib/install-targets-c.sh +128 -0
  453. package/scripts/lib/install-targets-d.sh +179 -0
  454. package/scripts/lib/srp-engine.py +2 -70
  455. package/scripts/lib/srp_engine_links.py +59 -0
  456. package/scripts/lib/wave_b_hub_codegen_helpers.py +273 -0
  457. package/scripts/lib/wave_b_hub_codegen_install.py +134 -0
  458. package/scripts/lib/wave_b_hub_config.py +130 -0
  459. package/scripts/lib/wave_b_hub_patch.py +213 -0
  460. package/scripts/record-cycle-time.sh +3 -14
  461. package/scripts/targets.yaml +75 -2
  462. package/scripts/test-agy-hub.sh +11 -10
  463. package/scripts/test-cline-adapter.sh +55 -0
  464. package/scripts/test-cline-hub.sh +48 -0
  465. package/scripts/test-codebuddy-adapter.sh +63 -0
  466. package/scripts/test-codebuddy-hub.sh +49 -0
  467. package/scripts/test-codex-adapter.sh +63 -0
  468. package/scripts/test-codex-hub.sh +49 -0
  469. package/scripts/test-copilot-adapter.sh +47 -0
  470. package/scripts/test-copilot-hub.sh +43 -0
  471. package/scripts/test-gemini-hub.sh +10 -9
  472. package/scripts/test-hermes-hub.sh +7 -6
  473. package/scripts/test-install-distribute-only.sh +3 -0
  474. package/scripts/test-install-helpers.js +9 -3
  475. package/scripts/test-kilocode-adapter.sh +55 -0
  476. package/scripts/test-kilocode-hub.sh +48 -0
  477. package/scripts/test-mimo-hub.sh +7 -6
  478. package/scripts/test-opencode-adapter.sh +47 -0
  479. package/scripts/test-opencode-hub.sh +43 -0
  480. package/scripts/test-qwen-adapter.sh +63 -0
  481. package/scripts/test-qwen-hub.sh +49 -0
  482. package/scripts/test-trae-adapter.sh +63 -0
  483. package/scripts/test-trae-hub.sh +49 -0
  484. package/scripts/test-windsurf-adapter.sh +63 -0
  485. package/scripts/test-windsurf-hub.sh +49 -0
  486. package/scripts/test-zcode-hub.sh +7 -6
  487. package/scripts/verify-install.sh +83 -29
@@ -5,6 +5,15 @@
5
5
  // story: e76s02
6
6
  // story: e69s02
7
7
  // story: e74s02
8
+ // story: e71s02
9
+ // story: e62s02
10
+ // story: e73s02
11
+ // story: e70s02
12
+ // story: e67s02
13
+ // story: e66s02
14
+ // story: e72s02
15
+ // story: e68s02
16
+ // story: e65s02
8
17
  // install-helpers.js — symlink helpers for bigpowers setup
9
18
 
10
19
  const fs = require('fs');
@@ -175,6 +184,125 @@ function installGlobal(tool, repoRoot) {
175
184
  linkRenderedSkills(renderedDir, targetDir);
176
185
  break;
177
186
  }
187
+ case 'qwen':
188
+ linkRenderedSkills(path.join(repoRoot, '.qwen/skills'), path.join(homeDir, '.qwen', 'skills'));
189
+ {
190
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
191
+ const agentsDst = path.join(homeDir, '.qwen', 'QWEN.md');
192
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
193
+ linkFile(agentsSrc, agentsDst);
194
+ }
195
+ {
196
+ const hookSrc = path.join(repoRoot, 'scripts', 'hooks', 'qwen', 'pre-tool-git-guard.sh');
197
+ const hookDst = path.join(homeDir, '.qwen', 'hooks', 'pre-tool-git-guard.sh');
198
+ if (fs.existsSync(hookSrc)) {
199
+ fs.mkdirSync(path.dirname(hookDst), { recursive: true });
200
+ linkHook(hookSrc, hookDst);
201
+ }
202
+ }
203
+ break; // story: e68s02
204
+ case 'codebuddy':
205
+ linkRenderedSkills(path.join(repoRoot, '.codebuddy/skills'), path.join(homeDir, '.codebuddy', 'skills'));
206
+ {
207
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
208
+ const agentsDst = path.join(homeDir, '.codebuddy', 'AGENTS.md');
209
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
210
+ linkFile(agentsSrc, agentsDst);
211
+ }
212
+ {
213
+ const hookSrc = path.join(repoRoot, 'scripts', 'hooks', 'codebuddy', 'pre-tool-git-guard.sh');
214
+ const hookDst = path.join(homeDir, '.codebuddy', 'hooks', 'pre-tool-git-guard.sh');
215
+ if (fs.existsSync(hookSrc)) {
216
+ fs.mkdirSync(path.dirname(hookDst), { recursive: true });
217
+ linkHook(hookSrc, hookDst);
218
+ }
219
+ }
220
+ break; // story: e72s02
221
+ case 'cline':
222
+ linkRenderedSkills(path.join(repoRoot, '.cline/skills'), path.join(homeDir, '.cline', 'skills'));
223
+ break; // story: e66s02
224
+ case 'kilo':
225
+ case 'kilocode':
226
+ {
227
+ const renderedDir = path.join(repoRoot, '.kilocode/rules');
228
+ const targetDir = path.join(homeDir, '.kilocode', 'rules');
229
+ fs.mkdirSync(targetDir, { recursive: true });
230
+ if (fs.existsSync(renderedDir)) {
231
+ for (const f of fs.readdirSync(renderedDir)) {
232
+ if (!f.endsWith('.md')) continue;
233
+ linkFile(path.join(renderedDir, f), path.join(targetDir, f));
234
+ }
235
+ }
236
+ }
237
+ {
238
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
239
+ const agentsDst = path.join(homeDir, '.kilocode', 'AGENTS.md');
240
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
241
+ if (fs.existsSync(agentsSrc)) fs.copyFileSync(agentsSrc, agentsDst);
242
+ }
243
+ break; // story: e67s02
244
+ case 'trae':
245
+ linkRenderedSkills(path.join(repoRoot, '.trae/skills'), path.join(homeDir, '.trae', 'skills'));
246
+ {
247
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
248
+ const agentsDst = path.join(homeDir, '.trae', 'AGENTS.md');
249
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
250
+ linkFile(agentsSrc, agentsDst);
251
+ }
252
+ {
253
+ const hookSrc = path.join(repoRoot, 'scripts', 'hooks', 'trae', 'pre-tool-git-guard.sh');
254
+ const hookDst = path.join(homeDir, '.trae', 'hooks', 'pre-tool-git-guard.sh');
255
+ if (fs.existsSync(hookSrc)) {
256
+ fs.mkdirSync(path.dirname(hookDst), { recursive: true });
257
+ linkHook(hookSrc, hookDst);
258
+ }
259
+ }
260
+ break; // story: e70s02
261
+ case 'windsurf':
262
+ {
263
+ const renderedDir = path.join(repoRoot, '.windsurf/rules');
264
+ const targetDir = path.join(homeDir, '.codeium/windsurf', 'rules');
265
+ fs.mkdirSync(targetDir, { recursive: true });
266
+ if (fs.existsSync(renderedDir)) {
267
+ for (const f of fs.readdirSync(renderedDir)) {
268
+ if (!f.endsWith('.md')) continue;
269
+ linkFile(path.join(renderedDir, f), path.join(targetDir, f));
270
+ }
271
+ }
272
+ }
273
+ {
274
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
275
+ const agentsDst = path.join(homeDir, '.codeium/windsurf', 'AGENTS.md');
276
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
277
+ if (fs.existsSync(agentsSrc)) fs.copyFileSync(agentsSrc, agentsDst);
278
+ }
279
+ {
280
+ const hookSrc = path.join(repoRoot, 'scripts', 'hooks', 'windsurf', 'pre-tool-git-guard.sh');
281
+ const hookDst = path.join(homeDir, '.codeium/windsurf', 'hooks', 'pre-tool-git-guard.sh');
282
+ if (fs.existsSync(hookSrc)) {
283
+ fs.mkdirSync(path.dirname(hookDst), { recursive: true });
284
+ linkHook(hookSrc, hookDst);
285
+ }
286
+ }
287
+ break; // story: e73s02
288
+ case 'opencode':
289
+ linkRenderedSkills(path.join(repoRoot, '.opencode/skills'), path.join(homeDir, '.config/opencode', 'skills'));
290
+ {
291
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
292
+ const agentsDst = path.join(homeDir, '.config/opencode', 'AGENTS.md');
293
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
294
+ linkFile(agentsSrc, agentsDst);
295
+ }
296
+ break; // story: e62s02
297
+ case 'copilot':
298
+ linkRenderedSkills(path.join(repoRoot, '.copilot/skills'), path.join(homeDir, '.copilot', 'skills'));
299
+ {
300
+ const agentsSrc = path.join(repoRoot, 'AGENTS.md');
301
+ const agentsDst = path.join(homeDir, '.copilot', 'AGENTS.md');
302
+ fs.mkdirSync(path.dirname(agentsDst), { recursive: true });
303
+ if (fs.existsSync(agentsSrc)) fs.copyFileSync(agentsSrc, agentsDst);
304
+ }
305
+ break; // story: e71s02
178
306
  case 'cursor': {
179
307
  const rulesSrc = path.join(repoRoot, '.cursor', 'rules');
180
308
  const rulesDst = path.join(homeDir, '.cursor', 'rules');
@@ -380,8 +508,17 @@ function uninstallTool(toolId, repoRoot) {
380
508
  removeSymlink(path.join(homeDir, '.cursor', 'rules'));
381
509
  break;
382
510
  case 'codex':
383
- removeSymlink(path.join(homeDir, '.codex', 'AGENTS.md'));
384
- break;
511
+ {
512
+ const skillsDir = path.join(homeDir, '.codex', 'skills');
513
+ if (fs.existsSync(skillsDir)) {
514
+ for (const entry of fs.readdirSync(skillsDir, { withFileTypes: true })) {
515
+ if (!entry.isSymbolicLink()) continue;
516
+ removeSymlink(path.join(skillsDir, entry.name));
517
+ }
518
+ }
519
+ }
520
+ removeSymlink(path.join(homeDir, '.codex', 'hooks', 'pre-tool-git-guard.sh'));
521
+ break; // story: e65s02
385
522
  }
386
523
  }
387
524
 
@@ -0,0 +1,227 @@
1
+ # ── Claude Code ───────────────────────────────────────────────────────────────
2
+
3
+ CLAUDE_CONFIG_DIR="$HOME/.claude"
4
+ CLAUDE_SKILLS_DIR="$CLAUDE_CONFIG_DIR/skills"
5
+ CLAUDE_HOOKS_DIR="$CLAUDE_CONFIG_DIR/hooks"
6
+ CLAUDE_SETTINGS="$CLAUDE_CONFIG_DIR/settings.json"
7
+
8
+ install_claude() {
9
+ echo ""
10
+ echo "Claude Code → $CLAUDE_SKILLS_DIR/"
11
+ local count=0
12
+ for skill_dir in "$SKILLS_ROOT"/*/; do
13
+ [[ -f "$skill_dir/SKILL.md" ]] || continue
14
+ local name; name="$(basename "$skill_dir")"
15
+ link "$skill_dir" "$CLAUDE_SKILLS_DIR/$name"
16
+ count=$((count + 1))
17
+ done
18
+ echo " $count skills installed"
19
+
20
+ echo "Claude Code Hooks → $CLAUDE_HOOKS_DIR/"
21
+ link "$REPO_ROOT/.gemini/extensions/bigpowers/hooks/session-start" "$CLAUDE_HOOKS_DIR/session-start"
22
+ link "$REPO_ROOT/.gemini/extensions/bigpowers/hooks/run-hook.cmd" "$CLAUDE_HOOKS_DIR/run-hook.cmd"
23
+ # story: e60s01 e63 — canonical path is skills/guard-git (not bare guard-git/)
24
+ link "$REPO_ROOT/skills/guard-git/scripts/block-dangerous-git.sh" "$CLAUDE_HOOKS_DIR/block-dangerous-git.sh"
25
+ link "$REPO_ROOT/skills/guard-git/scripts/lib" "$CLAUDE_HOOKS_DIR/lib"
26
+ link "$REPO_ROOT/scripts/hooks/rtk-rewrite.sh" "$CLAUDE_HOOKS_DIR/rtk-rewrite.sh"
27
+ # story: e45s16
28
+ chmod +x "$REPO_ROOT/scripts/hooks/rtk-rewrite.sh" 2>/dev/null || true
29
+
30
+ if [[ -f "$CLAUDE_SETTINGS" ]]; then
31
+ echo " Configuring global hooks in $CLAUDE_SETTINGS..."
32
+ # Robustly add hooks to settings.json if not already present
33
+ if command -v jq >/dev/null; then
34
+ local tmp; tmp=$(mktemp)
35
+ cat "$CLAUDE_SETTINGS" | jq '
36
+ .hooks.SessionStart += [{"matcher":"startup|clear|compact","hooks":[{"type":"command","command":"\"'"$CLAUDE_HOOKS_DIR/run-hook.cmd"'\" session-start","async":false}]}] |
37
+ .hooks.PreToolUse += [{"matcher":"Bash","hooks":[{"type":"command","command":"\"'"$CLAUDE_HOOKS_DIR/block-dangerous-git.sh"'\""}]}] |
38
+ .hooks.PreToolUse += [{"matcher":"Bash","hooks":[{"type":"command","command":"\"'"$CLAUDE_HOOKS_DIR/rtk-rewrite.sh"'\""}]}] |
39
+ # deduplicate
40
+ .hooks.SessionStart |= unique |
41
+ .hooks.PreToolUse |= unique
42
+ ' > "$tmp" && run mv "$tmp" "$CLAUDE_SETTINGS"
43
+ else
44
+ echo " WARNING: jq not found. Manual setup required in $CLAUDE_SETTINGS"
45
+ fi
46
+ fi
47
+ }
48
+
49
+ uninstall_claude() {
50
+ echo ""
51
+ echo "Claude Code → removing management from $CLAUDE_CONFIG_DIR/"
52
+ if [[ -d "$CLAUDE_SKILLS_DIR" ]]; then
53
+ for dst in "$CLAUDE_SKILLS_DIR"/*/; do
54
+ [[ -L "${dst%/}" ]] || continue
55
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
56
+ done
57
+ fi
58
+ if [[ -d "$CLAUDE_HOOKS_DIR" ]]; then
59
+ unlink_if_managed "$CLAUDE_HOOKS_DIR/session-start" "$REPO_ROOT/"
60
+ unlink_if_managed "$CLAUDE_HOOKS_DIR/run-hook.cmd" "$REPO_ROOT/"
61
+ unlink_if_managed "$CLAUDE_HOOKS_DIR/block-dangerous-git.sh" "$REPO_ROOT/"
62
+ unlink_if_managed "$CLAUDE_HOOKS_DIR/rtk-rewrite.sh" "$REPO_ROOT/"
63
+ unlink_if_managed "$CLAUDE_HOOKS_DIR/lib" "$REPO_ROOT/"
64
+ fi
65
+ }
66
+
67
+ # ── Gemini CLI (e64s02) ───────────────────────────────────────────────────────
68
+
69
+ GEMINI_CONFIG_DIR="$HOME/.gemini"
70
+ GEMINI_EXT_SRC="$REPO_ROOT/.gemini/extensions/bigpowers"
71
+ GEMINI_EXT_DST="$GEMINI_CONFIG_DIR/config/plugins/bigpowers"
72
+ GEMINI_HOOKS_SRC="$GEMINI_EXT_SRC/hooks"
73
+ GEMINI_HOOKS_DIR="$GEMINI_CONFIG_DIR/hooks"
74
+ GEMINI_SETTINGS="$GEMINI_CONFIG_DIR/settings.json"
75
+
76
+ install_gemini() {
77
+ echo ""
78
+ echo "Gemini CLI → $GEMINI_EXT_DST"
79
+ if [[ ! -d "$GEMINI_EXT_SRC" ]]; then
80
+ echo " WARNING: $GEMINI_EXT_SRC not found — run sync-skills.sh first"
81
+ return
82
+ fi
83
+ link "$GEMINI_EXT_SRC" "$GEMINI_EXT_DST"
84
+
85
+ echo "Gemini CLI Hooks → $GEMINI_HOOKS_DIR/"
86
+ link "$GEMINI_HOOKS_SRC/session-start" "$GEMINI_HOOKS_DIR/session-start"
87
+ link "$GEMINI_HOOKS_SRC/run-hook.cmd" "$GEMINI_HOOKS_DIR/run-hook.cmd"
88
+ link "$GEMINI_HOOKS_SRC/before-tool-git-guard.sh" "$GEMINI_HOOKS_DIR/before-tool-git-guard.sh"
89
+ link "$GEMINI_HOOKS_SRC/before-tool-rtk.sh" "$GEMINI_HOOKS_DIR/before-tool-rtk.sh"
90
+ link "$GEMINI_HOOKS_SRC/before-tool-token-mgmt.sh" "$GEMINI_HOOKS_DIR/before-tool-token-mgmt.sh"
91
+ chmod +x "$GEMINI_HOOKS_SRC/before-tool-git-guard.sh" \
92
+ "$GEMINI_HOOKS_SRC/before-tool-rtk.sh" \
93
+ "$GEMINI_HOOKS_SRC/before-tool-token-mgmt.sh" 2>/dev/null || true
94
+
95
+ if [[ -f "$GEMINI_SETTINGS" ]]; then
96
+ echo " Configuring global hooks in $GEMINI_SETTINGS..."
97
+ if command -v jq >/dev/null; then
98
+ local tmp; tmp=$(mktemp)
99
+ cat "$GEMINI_SETTINGS" | jq '
100
+ .hooks.SessionStart += [{"matcher":"startup|clear|compact","hooks":[{"type":"command","command":"\"'"$GEMINI_HOOKS_DIR/run-hook.cmd"'\" session-start","async":false}]}] |
101
+ .hooks.BeforeTool += [{"matcher":"run_shell_command","hooks":[{"name":"git-guardrails","type":"command","command":"GIT_GUARDRAILS_MODE=gemini \"'"$GEMINI_HOOKS_DIR/before-tool-git-guard.sh"'\"","timeout":5000}]}] |
102
+ .hooks.BeforeTool += [{"matcher":"run_shell_command","hooks":[{"name":"rtk-rewrite","type":"command","command":"\"'"$GEMINI_HOOKS_DIR/before-tool-rtk.sh"'\"","timeout":3000}]}] |
103
+ .hooks.SessionStart |= unique |
104
+ .hooks.BeforeTool |= unique
105
+ ' > "$tmp" && run mv "$tmp" "$GEMINI_SETTINGS"
106
+ else
107
+ echo " WARNING: jq not found. Manual setup required in $GEMINI_SETTINGS"
108
+ echo " See $GEMINI_HOOKS_SRC/settings.json.example"
109
+ fi
110
+ else
111
+ echo " NOTE: $GEMINI_SETTINGS not found — copy $GEMINI_HOOKS_SRC/settings.json.example after first Gemini run"
112
+ fi
113
+ }
114
+
115
+ uninstall_gemini() {
116
+ echo ""
117
+ echo "Gemini CLI → removing management from $GEMINI_CONFIG_DIR/"
118
+ unlink_if_managed "$GEMINI_EXT_DST" "$REPO_ROOT/"
119
+ if [[ -d "$GEMINI_HOOKS_DIR" ]]; then
120
+ unlink_if_managed "$GEMINI_HOOKS_DIR/session-start" "$REPO_ROOT/"
121
+ unlink_if_managed "$GEMINI_HOOKS_DIR/run-hook.cmd" "$REPO_ROOT/"
122
+ unlink_if_managed "$GEMINI_HOOKS_DIR/before-tool-git-guard.sh" "$REPO_ROOT/"
123
+ unlink_if_managed "$GEMINI_HOOKS_DIR/before-tool-rtk.sh" "$REPO_ROOT/"
124
+ unlink_if_managed "$GEMINI_HOOKS_DIR/before-tool-token-mgmt.sh" "$REPO_ROOT/"
125
+ fi
126
+ }
127
+
128
+ # ── Cursor ────────────────────────────────────────────────────────────────────
129
+
130
+ CURSOR_RULES_SRC="$REPO_ROOT/.cursor/rules"
131
+ CURSOR_RULES_DST="$HOME/.cursor/rules"
132
+
133
+ install_cursor() {
134
+ echo ""
135
+ echo "Cursor → $CURSOR_RULES_DST"
136
+ if [[ ! -d "$CURSOR_RULES_SRC" ]]; then
137
+ echo " WARNING: $CURSOR_RULES_SRC not found — run sync-skills.sh first"
138
+ return
139
+ fi
140
+ link "$CURSOR_RULES_SRC" "$CURSOR_RULES_DST"
141
+ echo ""
142
+ echo " NOTE: Cursor does not scan ~/.cursor/rules/ globally."
143
+ echo " For per-project access, run in your project root:"
144
+ echo " ln -sfn $CURSOR_RULES_SRC .cursor/rules"
145
+ }
146
+
147
+ uninstall_cursor() {
148
+ echo ""
149
+ echo "Cursor → removing $CURSOR_RULES_DST"
150
+ unlink_if_managed "$CURSOR_RULES_DST" "$REPO_ROOT/"
151
+ }
152
+
153
+ # ── pi ────────────────────────────────────────────────────────────────────────
154
+
155
+ PI_CONFIG_DIR="$HOME/.pi"
156
+ PI_SKILLS_DIR="$PI_CONFIG_DIR/agent/skills"
157
+
158
+ install_pi() {
159
+ echo ""
160
+ echo "pi → $PI_SKILLS_DIR/"
161
+ local count=0
162
+ for skill_dir in "$SKILLS_ROOT"/*/; do
163
+ [[ -f "$skill_dir/SKILL.md" ]] || continue
164
+ local name; name="$(basename "$skill_dir")"
165
+ link "$skill_dir" "$PI_SKILLS_DIR/$name"
166
+ count=$((count + 1))
167
+ done
168
+ echo " $count skills installed"
169
+ }
170
+
171
+ uninstall_pi() {
172
+ echo ""
173
+ echo "pi → removing management from $PI_CONFIG_DIR/"
174
+ if [[ -d "$PI_SKILLS_DIR" ]]; then
175
+ for dst in "$PI_SKILLS_DIR"/*/; do
176
+ [[ -L "${dst%/}" ]] || continue
177
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
178
+ done
179
+ fi
180
+ }
181
+
182
+ # ── Hermes Agent (e61s02) ─────────────────────────────────────────────────────
183
+
184
+ HERMES_CONFIG_DIR="$HOME/.hermes"
185
+ HERMES_SKILLS_DIR="$HERMES_CONFIG_DIR/skills"
186
+ HERMES_RENDERED="$REPO_ROOT/.hermes/skills"
187
+ HERMES_CONFIG="$HERMES_CONFIG_DIR/config.yaml"
188
+ HERMES_HOOKS_DIR="$HERMES_CONFIG_DIR/hooks"
189
+
190
+ install_hermes() {
191
+ echo ""
192
+ echo "Hermes Agent → $HERMES_SKILLS_DIR/"
193
+ if [[ ! -d "$HERMES_RENDERED" ]]; then
194
+ echo " WARNING: $HERMES_RENDERED not found — run sync-skills.sh first"
195
+ return
196
+ fi
197
+ local count=0
198
+ for skill_dir in "$HERMES_RENDERED"/*/; do
199
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
200
+ local name; name="$(basename "$skill_dir")"
201
+ link "$skill_dir" "$HERMES_SKILLS_DIR/$name"
202
+ count=$((count + 1))
203
+ done
204
+ echo " $count skills installed"
205
+
206
+ echo "Hermes Agent → context bridge $HERMES_CONFIG"
207
+ source "$REPO_ROOT/scripts/lib/context-wire.sh"
208
+ wire_context_mode config-bridge "$HERMES_CONFIG" "instructions" "AGENTS.md"
209
+
210
+ if [[ -d "$REPO_ROOT/scripts/hooks/hermes/gateway/session-log" ]]; then
211
+ echo "Hermes Agent hook templates → $HERMES_HOOKS_DIR/ (copy paths into config to enable)"
212
+ link "$REPO_ROOT/scripts/hooks/hermes/gateway/session-log" "$HERMES_HOOKS_DIR/session-log"
213
+ fi
214
+ }
215
+
216
+ uninstall_hermes() {
217
+ echo ""
218
+ echo "Hermes Agent → removing management from $HERMES_CONFIG_DIR/"
219
+ if [[ -d "$HERMES_SKILLS_DIR" ]]; then
220
+ for dst in "$HERMES_SKILLS_DIR"/*/; do
221
+ [[ -L "${dst%/}" ]] || continue
222
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
223
+ done
224
+ fi
225
+ unlink_if_managed "$HERMES_HOOKS_DIR/session-log" "$REPO_ROOT/"
226
+ }
227
+
@@ -0,0 +1,226 @@
1
+ # ── ZCode (e76s02) ────────────────────────────────────────────────────────────
2
+
3
+ ZCODE_CONFIG_DIR="$HOME/.zcode"
4
+ ZCODE_SKILLS_DIR="$ZCODE_CONFIG_DIR/skills"
5
+ ZCODE_RENDERED="$REPO_ROOT/.zcode/skills"
6
+ ZCODE_AGENTS="$ZCODE_CONFIG_DIR/AGENTS.md"
7
+
8
+ install_zcode() {
9
+ echo ""
10
+ echo "ZCode → $ZCODE_SKILLS_DIR/"
11
+ if [[ ! -d "$ZCODE_RENDERED" ]]; then
12
+ echo " WARNING: $ZCODE_RENDERED not found — run sync-skills.sh first"
13
+ return
14
+ fi
15
+ local count=0
16
+ for skill_dir in "$ZCODE_RENDERED"/*/; do
17
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
18
+ local name; name="$(basename "$skill_dir")"
19
+ link "$skill_dir" "$ZCODE_SKILLS_DIR/$name"
20
+ count=$((count + 1))
21
+ done
22
+ echo " $count skills installed"
23
+
24
+ echo "ZCode → context symlink $ZCODE_AGENTS"
25
+ source "$REPO_ROOT/scripts/lib/context-wire.sh"
26
+ local zcode_agents_src="$REPO_ROOT/AGENTS.md"
27
+ [[ -f "$zcode_agents_src" ]] || zcode_agents_src="$REPO_ROOT/docs/templates/AGENTS.md"
28
+ wire_context_mode symlink "$ZCODE_AGENTS" "" read "$zcode_agents_src"
29
+ }
30
+
31
+ uninstall_zcode() {
32
+ echo ""
33
+ echo "ZCode → removing management from $ZCODE_CONFIG_DIR/"
34
+ if [[ -d "$ZCODE_SKILLS_DIR" ]]; then
35
+ for dst in "$ZCODE_SKILLS_DIR"/*/; do
36
+ [[ -L "${dst%/}" ]] || continue
37
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
38
+ done
39
+ fi
40
+ unlink_if_managed "$ZCODE_AGENTS" "$REPO_ROOT/"
41
+ }
42
+
43
+ # ── MiMo Code (e69s02) ────────────────────────────────────────────────────────
44
+
45
+ MIMO_CONFIG_DIR="$HOME/.mimocode"
46
+ MIMO_SKILLS_DIR="$MIMO_CONFIG_DIR/skills"
47
+ MIMO_RENDERED="$REPO_ROOT/.mimocode/skills"
48
+ MIMO_AGENTS="$MIMO_CONFIG_DIR/AGENTS.md"
49
+
50
+ install_mimo() {
51
+ echo ""
52
+ echo "MiMo Code → $MIMO_SKILLS_DIR/"
53
+ if [[ ! -d "$MIMO_RENDERED" ]]; then
54
+ echo " WARNING: $MIMO_RENDERED not found — run sync-skills.sh first"
55
+ return
56
+ fi
57
+ local count=0
58
+ for skill_dir in "$MIMO_RENDERED"/*/; do
59
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
60
+ local name; name="$(basename "$skill_dir")"
61
+ link "$skill_dir" "$MIMO_SKILLS_DIR/$name"
62
+ count=$((count + 1))
63
+ done
64
+ echo " $count skills installed"
65
+
66
+ echo "MiMo Code → context symlink $MIMO_AGENTS"
67
+ source "$REPO_ROOT/scripts/lib/context-wire.sh"
68
+ local mimo_agents_src="$REPO_ROOT/AGENTS.md"
69
+ [[ -f "$mimo_agents_src" ]] || mimo_agents_src="$REPO_ROOT/docs/templates/AGENTS.md"
70
+ wire_context_mode symlink "$MIMO_AGENTS" "" read "$mimo_agents_src"
71
+ }
72
+
73
+ uninstall_mimo() {
74
+ echo ""
75
+ echo "MiMo Code → removing management from $MIMO_CONFIG_DIR/"
76
+ if [[ -d "$MIMO_SKILLS_DIR" ]]; then
77
+ for dst in "$MIMO_SKILLS_DIR"/*/; do
78
+ [[ -L "${dst%/}" ]] || continue
79
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
80
+ done
81
+ fi
82
+ unlink_if_managed "$MIMO_AGENTS" "$REPO_ROOT/"
83
+ }
84
+
85
+ # ── Antigravity CLI / agy (e74s02) ────────────────────────────────────────────
86
+ # Global skills: ~/.gemini/antigravity-cli/skills/ (separate from e64 Gemini extension)
87
+
88
+ AGY_CONFIG_DIR="$HOME/.gemini/antigravity-cli"
89
+ AGY_SKILLS_DIR="$AGY_CONFIG_DIR/skills"
90
+ AGY_RENDERED="$REPO_ROOT/.agents/skills"
91
+
92
+ install_agy() {
93
+ echo ""
94
+ echo "Antigravity CLI → $AGY_SKILLS_DIR/"
95
+ if [[ ! -d "$AGY_RENDERED" ]]; then
96
+ echo " WARNING: $AGY_RENDERED not found — run sync-skills.sh first"
97
+ return
98
+ fi
99
+ local count=0
100
+ for skill_dir in "$AGY_RENDERED"/*/; do
101
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
102
+ local name; name="$(basename "$skill_dir")"
103
+ link "$skill_dir" "$AGY_SKILLS_DIR/$name"
104
+ count=$((count + 1))
105
+ done
106
+ echo " $count skills installed"
107
+ echo " NOTE: Antigravity uses ~/.gemini/antigravity-cli/skills/ — not .gemini/extensions/ (Gemini CLI)"
108
+ }
109
+
110
+ install_antigravity() {
111
+ install_agy
112
+ }
113
+
114
+ uninstall_agy() {
115
+ echo ""
116
+ echo "Antigravity CLI → removing management from $AGY_CONFIG_DIR/"
117
+ if [[ -d "$AGY_SKILLS_DIR" ]]; then
118
+ for dst in "$AGY_SKILLS_DIR"/*/; do
119
+ [[ -L "${dst%/}" ]] || continue
120
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
121
+ done
122
+ fi
123
+ }
124
+
125
+ uninstall_antigravity() {
126
+ uninstall_agy
127
+ }
128
+
129
+ # ── Codex CLI (e65s02) ───────────────────────────────────────────────────────
130
+
131
+ CODEX_CONFIG_DIR="$HOME/.codex"
132
+ CODEX_SKILLS_DIR="$CODEX_CONFIG_DIR/skills"
133
+ CODEX_RENDERED="$REPO_ROOT/.codex/skills"
134
+ CODEX_CONFIG_FILE="$CODEX_CONFIG_DIR/config.toml"
135
+ CODEX_HOOKS_DIR="$CODEX_CONFIG_DIR/hooks"
136
+ CODEX_HOOK_SRC="$REPO_ROOT/scripts/hooks/codex/pre-tool-git-guard.sh"
137
+
138
+ install_codex() {
139
+ echo ""
140
+ echo "Codex CLI → $CODEX_SKILLS_DIR/"
141
+ if [[ ! -d "$CODEX_RENDERED" ]]; then
142
+ echo " WARNING: $CODEX_RENDERED not found — run sync-skills.sh first"
143
+ return
144
+ fi
145
+ local count=0
146
+ for skill_dir in "$CODEX_RENDERED"/*/; do
147
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
148
+ local name; name="$(basename "$skill_dir")"
149
+ link "$skill_dir" "$CODEX_SKILLS_DIR/$name"
150
+ count=$((count + 1))
151
+ done
152
+ echo " $count skills installed"
153
+ echo "Codex CLI → context config-bridge $CODEX_CONFIG_FILE"
154
+ source "$REPO_ROOT/scripts/lib/context-wire.sh"
155
+ local agents_src="$REPO_ROOT/AGENTS.md"
156
+ [[ -f "$agents_src" ]] || agents_src="$REPO_ROOT/docs/templates/AGENTS.md"
157
+ wire_context_mode config-bridge "$CODEX_CONFIG_FILE" "instructions" "AGENTS.md"
158
+ if [[ -f "$CODEX_HOOK_SRC" ]]; then
159
+ echo "Codex CLI Hooks → $CODEX_HOOKS_DIR/"
160
+ link "$CODEX_HOOK_SRC" "$CODEX_HOOKS_DIR/pre-tool-git-guard.sh"
161
+ chmod +x "$CODEX_HOOK_SRC" 2>/dev/null || true
162
+ echo " NOTE: copy $REPO_ROOT/scripts/hooks/codex/settings.example.json into tool config"
163
+ fi
164
+ }
165
+
166
+ uninstall_codex() {
167
+ echo ""
168
+ echo "Codex CLI → removing management from $CODEX_CONFIG_DIR/"
169
+ if [[ -d "$CODEX_SKILLS_DIR" ]]; then
170
+ for dst in "$CODEX_SKILLS_DIR"/*/; do
171
+ [[ -L "${dst%/}" ]] || continue
172
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
173
+ done
174
+ fi
175
+ # config-bridge file $CODEX_CONFIG_FILE left for user
176
+ unlink_if_managed "$CODEX_HOOKS_DIR/pre-tool-git-guard.sh" "$REPO_ROOT/"
177
+ }
178
+ # ── Qwen Code (e68s02) ───────────────────────────────────────────────────────
179
+
180
+ QWEN_CONFIG_DIR="$HOME/.qwen"
181
+ QWEN_SKILLS_DIR="$QWEN_CONFIG_DIR/skills"
182
+ QWEN_RENDERED="$REPO_ROOT/.qwen/skills"
183
+ QWEN_CONTEXT="$QWEN_CONFIG_DIR/QWEN.md"
184
+ QWEN_HOOKS_DIR="$QWEN_CONFIG_DIR/hooks"
185
+ QWEN_HOOK_SRC="$REPO_ROOT/scripts/hooks/qwen/pre-tool-git-guard.sh"
186
+
187
+ install_qwen() {
188
+ echo ""
189
+ echo "Qwen Code → $QWEN_SKILLS_DIR/"
190
+ if [[ ! -d "$QWEN_RENDERED" ]]; then
191
+ echo " WARNING: $QWEN_RENDERED not found — run sync-skills.sh first"
192
+ return
193
+ fi
194
+ local count=0
195
+ for skill_dir in "$QWEN_RENDERED"/*/; do
196
+ [[ -f "${skill_dir}SKILL.md" ]] || continue
197
+ local name; name="$(basename "$skill_dir")"
198
+ link "$skill_dir" "$QWEN_SKILLS_DIR/$name"
199
+ count=$((count + 1))
200
+ done
201
+ echo " $count skills installed"
202
+ echo "Qwen Code → context symlink $QWEN_CONTEXT"
203
+ source "$REPO_ROOT/scripts/lib/context-wire.sh"
204
+ local agents_src="$REPO_ROOT/AGENTS.md"
205
+ [[ -f "$agents_src" ]] || agents_src="$REPO_ROOT/docs/templates/AGENTS.md"
206
+ wire_context_mode symlink "$QWEN_CONTEXT" "" read "$agents_src"
207
+ if [[ -f "$QWEN_HOOK_SRC" ]]; then
208
+ echo "Qwen Code Hooks → $QWEN_HOOKS_DIR/"
209
+ link "$QWEN_HOOK_SRC" "$QWEN_HOOKS_DIR/pre-tool-git-guard.sh"
210
+ chmod +x "$QWEN_HOOK_SRC" 2>/dev/null || true
211
+ echo " NOTE: copy $REPO_ROOT/scripts/hooks/qwen/settings.example.json into tool config"
212
+ fi
213
+ }
214
+
215
+ uninstall_qwen() {
216
+ echo ""
217
+ echo "Qwen Code → removing management from $QWEN_CONFIG_DIR/"
218
+ if [[ -d "$QWEN_SKILLS_DIR" ]]; then
219
+ for dst in "$QWEN_SKILLS_DIR"/*/; do
220
+ [[ -L "${dst%/}" ]] || continue
221
+ unlink_if_managed "${dst%/}" "$REPO_ROOT/"
222
+ done
223
+ fi
224
+ unlink_if_managed "$QWEN_CONTEXT" "$REPO_ROOT/"
225
+ unlink_if_managed "$QWEN_HOOKS_DIR/pre-tool-git-guard.sh" "$REPO_ROOT/"
226
+ }