bigpowers 2.82.4 → 2.83.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 (353) hide show
  1. package/.agents/skills/align-grid/SKILL.md +110 -0
  2. package/.agents/skills/assess-impact/SKILL.md +91 -0
  3. package/.agents/skills/audit-code/SKILL.md +187 -0
  4. package/.agents/skills/audit-plan/SKILL.md +89 -0
  5. package/.agents/skills/build-epic/SKILL.md +105 -0
  6. package/.agents/skills/change-request/SKILL.md +121 -0
  7. package/.agents/skills/commit-message/SKILL.md +140 -0
  8. package/.agents/skills/compose-workflow/SKILL.md +82 -0
  9. package/.agents/skills/context7-mcp/SKILL.md +55 -0
  10. package/.agents/skills/craft-skill/SKILL.md +179 -0
  11. package/.agents/skills/deepen-architecture/SKILL.md +260 -0
  12. package/.agents/skills/define-language/SKILL.md +80 -0
  13. package/.agents/skills/define-success/SKILL.md +65 -0
  14. package/.agents/skills/delegate-task/SKILL.md +91 -0
  15. package/.agents/skills/deploy/SKILL.md +198 -0
  16. package/.agents/skills/design-interface/SKILL.md +97 -0
  17. package/.agents/skills/develop-tdd/SKILL.md +406 -0
  18. package/.agents/skills/diagnose-root/SKILL.md +24 -0
  19. package/.agents/skills/diagnose-stall/SKILL.md +54 -0
  20. package/.agents/skills/dispatch-agents/SKILL.md +118 -0
  21. package/.agents/skills/edit-document/SKILL.md +23 -0
  22. package/.agents/skills/elaborate-spec/SKILL.md +101 -0
  23. package/.agents/skills/enforce-first/SKILL.md +32 -0
  24. package/.agents/skills/evolve-skill/SKILL.md +55 -0
  25. package/.agents/skills/execute-plan/SKILL.md +61 -0
  26. package/.agents/skills/extract-design/SKILL.md +132 -0
  27. package/.agents/skills/find-way/SKILL.md +191 -0
  28. package/.agents/skills/fix-bug/SKILL.md +67 -0
  29. package/.agents/skills/gate-trace/SKILL.md +88 -0
  30. package/.agents/skills/generate-allure-report/SKILL.md +285 -0
  31. package/.agents/skills/grill-me/SKILL.md +96 -0
  32. package/.agents/skills/grill-with-docs/SKILL.md +41 -0
  33. package/.agents/skills/guard-git/SKILL.md +231 -0
  34. package/.agents/skills/harden-vps/SKILL.md +288 -0
  35. package/.agents/skills/hook-commits/SKILL.md +94 -0
  36. package/.agents/skills/inspect-quality/SKILL.md +106 -0
  37. package/.agents/skills/investigate-bug/SKILL.md +127 -0
  38. package/.agents/skills/kickoff-branch/SKILL.md +143 -0
  39. package/.agents/skills/maintain-wiki/SKILL.md +64 -0
  40. package/.agents/skills/map-codebase/SKILL.md +71 -0
  41. package/.agents/skills/migrate-spec/SKILL.md +862 -0
  42. package/.agents/skills/model-domain/SKILL.md +232 -0
  43. package/.agents/skills/orchestrate-project/SKILL.md +174 -0
  44. package/.agents/skills/organize-workspace/SKILL.md +164 -0
  45. package/.agents/skills/plan-refactor/SKILL.md +87 -0
  46. package/.agents/skills/plan-release/SKILL.md +145 -0
  47. package/.agents/skills/plan-tests/SKILL.md +75 -0
  48. package/.agents/skills/plan-work/SKILL.md +260 -0
  49. package/.agents/skills/publish-package/SKILL.md +328 -0
  50. package/.agents/skills/quick-fix/SKILL.md +114 -0
  51. package/.agents/skills/release-branch/SKILL.md +298 -0
  52. package/.agents/skills/request-review/SKILL.md +112 -0
  53. package/.agents/skills/research-first/SKILL.md +87 -0
  54. package/.agents/skills/reset-baseline/SKILL.md +21 -0
  55. package/.agents/skills/respond-review/SKILL.md +71 -0
  56. package/.agents/skills/run-benchmark/SKILL.md +85 -0
  57. package/.agents/skills/run-evals/SKILL.md +80 -0
  58. package/.agents/skills/run-planning/SKILL.md +101 -0
  59. package/.agents/skills/scope-work/SKILL.md +63 -0
  60. package/.agents/skills/search-skills/SKILL.md +73 -0
  61. package/.agents/skills/security-review/SKILL.md +384 -0
  62. package/.agents/skills/seed-conventions/SKILL.md +285 -0
  63. package/.agents/skills/session-state/SKILL.md +146 -0
  64. package/.agents/skills/setup-environment/SKILL.md +39 -0
  65. package/.agents/skills/simulate-agents/SKILL.md +26 -0
  66. package/.agents/skills/slice-tasks/SKILL.md +68 -0
  67. package/.agents/skills/smoke-test/SKILL.md +242 -0
  68. package/.agents/skills/spike-prototype/SKILL.md +95 -0
  69. package/.agents/skills/stocktake-skills/SKILL.md +72 -0
  70. package/.agents/skills/survey-context/SKILL.md +135 -0
  71. package/.agents/skills/terse-mode/SKILL.md +42 -0
  72. package/.agents/skills/trace-requirement/SKILL.md +69 -0
  73. package/.agents/skills/using-bigpowers/SKILL.md +111 -0
  74. package/.agents/skills/validate-contracts/SKILL.md +309 -0
  75. package/.agents/skills/validate-fix/SKILL.md +106 -0
  76. package/.agents/skills/verify-work/SKILL.md +191 -0
  77. package/.agents/skills/visual-dashboard/SKILL.md +50 -0
  78. package/.agents/skills/wire-ci/SKILL.md +375 -0
  79. package/.agents/skills/wire-observability/SKILL.md +97 -0
  80. package/.agents/skills/write-document/SKILL.md +255 -0
  81. package/.hermes/skills/align-grid/SKILL.md +110 -0
  82. package/.hermes/skills/assess-impact/SKILL.md +91 -0
  83. package/.hermes/skills/audit-code/SKILL.md +187 -0
  84. package/.hermes/skills/audit-plan/SKILL.md +89 -0
  85. package/.hermes/skills/build-epic/SKILL.md +105 -0
  86. package/.hermes/skills/change-request/SKILL.md +121 -0
  87. package/.hermes/skills/commit-message/SKILL.md +140 -0
  88. package/.hermes/skills/compose-workflow/SKILL.md +82 -0
  89. package/.hermes/skills/context7-mcp/SKILL.md +55 -0
  90. package/.hermes/skills/craft-skill/SKILL.md +179 -0
  91. package/.hermes/skills/deepen-architecture/SKILL.md +260 -0
  92. package/.hermes/skills/define-language/SKILL.md +80 -0
  93. package/.hermes/skills/define-success/SKILL.md +65 -0
  94. package/.hermes/skills/delegate-task/SKILL.md +91 -0
  95. package/.hermes/skills/deploy/SKILL.md +198 -0
  96. package/.hermes/skills/design-interface/SKILL.md +97 -0
  97. package/.hermes/skills/develop-tdd/SKILL.md +406 -0
  98. package/.hermes/skills/diagnose-root/SKILL.md +24 -0
  99. package/.hermes/skills/diagnose-stall/SKILL.md +54 -0
  100. package/.hermes/skills/dispatch-agents/SKILL.md +118 -0
  101. package/.hermes/skills/edit-document/SKILL.md +23 -0
  102. package/.hermes/skills/elaborate-spec/SKILL.md +101 -0
  103. package/.hermes/skills/enforce-first/SKILL.md +32 -0
  104. package/.hermes/skills/evolve-skill/SKILL.md +55 -0
  105. package/.hermes/skills/execute-plan/SKILL.md +61 -0
  106. package/.hermes/skills/extract-design/SKILL.md +132 -0
  107. package/.hermes/skills/find-way/SKILL.md +191 -0
  108. package/.hermes/skills/fix-bug/SKILL.md +67 -0
  109. package/.hermes/skills/gate-trace/SKILL.md +88 -0
  110. package/.hermes/skills/generate-allure-report/SKILL.md +285 -0
  111. package/.hermes/skills/grill-me/SKILL.md +96 -0
  112. package/.hermes/skills/grill-with-docs/SKILL.md +41 -0
  113. package/.hermes/skills/guard-git/SKILL.md +231 -0
  114. package/.hermes/skills/harden-vps/SKILL.md +288 -0
  115. package/.hermes/skills/hook-commits/SKILL.md +94 -0
  116. package/.hermes/skills/inspect-quality/SKILL.md +106 -0
  117. package/.hermes/skills/investigate-bug/SKILL.md +127 -0
  118. package/.hermes/skills/kickoff-branch/SKILL.md +143 -0
  119. package/.hermes/skills/maintain-wiki/SKILL.md +64 -0
  120. package/.hermes/skills/map-codebase/SKILL.md +71 -0
  121. package/.hermes/skills/migrate-spec/SKILL.md +862 -0
  122. package/.hermes/skills/model-domain/SKILL.md +232 -0
  123. package/.hermes/skills/orchestrate-project/SKILL.md +174 -0
  124. package/.hermes/skills/organize-workspace/SKILL.md +164 -0
  125. package/.hermes/skills/plan-refactor/SKILL.md +87 -0
  126. package/.hermes/skills/plan-release/SKILL.md +145 -0
  127. package/.hermes/skills/plan-tests/SKILL.md +75 -0
  128. package/.hermes/skills/plan-work/SKILL.md +260 -0
  129. package/.hermes/skills/publish-package/SKILL.md +328 -0
  130. package/.hermes/skills/quick-fix/SKILL.md +114 -0
  131. package/.hermes/skills/release-branch/SKILL.md +298 -0
  132. package/.hermes/skills/request-review/SKILL.md +112 -0
  133. package/.hermes/skills/research-first/SKILL.md +87 -0
  134. package/.hermes/skills/reset-baseline/SKILL.md +21 -0
  135. package/.hermes/skills/respond-review/SKILL.md +71 -0
  136. package/.hermes/skills/run-benchmark/SKILL.md +85 -0
  137. package/.hermes/skills/run-evals/SKILL.md +80 -0
  138. package/.hermes/skills/run-planning/SKILL.md +101 -0
  139. package/.hermes/skills/scope-work/SKILL.md +63 -0
  140. package/.hermes/skills/search-skills/SKILL.md +73 -0
  141. package/.hermes/skills/security-review/SKILL.md +384 -0
  142. package/.hermes/skills/seed-conventions/SKILL.md +285 -0
  143. package/.hermes/skills/session-state/SKILL.md +146 -0
  144. package/.hermes/skills/setup-environment/SKILL.md +39 -0
  145. package/.hermes/skills/simulate-agents/SKILL.md +26 -0
  146. package/.hermes/skills/slice-tasks/SKILL.md +68 -0
  147. package/.hermes/skills/smoke-test/SKILL.md +242 -0
  148. package/.hermes/skills/spike-prototype/SKILL.md +95 -0
  149. package/.hermes/skills/stocktake-skills/SKILL.md +72 -0
  150. package/.hermes/skills/survey-context/SKILL.md +135 -0
  151. package/.hermes/skills/terse-mode/SKILL.md +42 -0
  152. package/.hermes/skills/trace-requirement/SKILL.md +69 -0
  153. package/.hermes/skills/using-bigpowers/SKILL.md +111 -0
  154. package/.hermes/skills/validate-contracts/SKILL.md +309 -0
  155. package/.hermes/skills/validate-fix/SKILL.md +106 -0
  156. package/.hermes/skills/verify-work/SKILL.md +191 -0
  157. package/.hermes/skills/visual-dashboard/SKILL.md +50 -0
  158. package/.hermes/skills/wire-ci/SKILL.md +375 -0
  159. package/.hermes/skills/wire-observability/SKILL.md +97 -0
  160. package/.hermes/skills/write-document/SKILL.md +255 -0
  161. package/.mimocode/skills/align-grid/SKILL.md +110 -0
  162. package/.mimocode/skills/assess-impact/SKILL.md +91 -0
  163. package/.mimocode/skills/audit-code/SKILL.md +187 -0
  164. package/.mimocode/skills/audit-plan/SKILL.md +89 -0
  165. package/.mimocode/skills/build-epic/SKILL.md +105 -0
  166. package/.mimocode/skills/change-request/SKILL.md +121 -0
  167. package/.mimocode/skills/commit-message/SKILL.md +140 -0
  168. package/.mimocode/skills/compose-workflow/SKILL.md +82 -0
  169. package/.mimocode/skills/context7-mcp/SKILL.md +55 -0
  170. package/.mimocode/skills/craft-skill/SKILL.md +179 -0
  171. package/.mimocode/skills/deepen-architecture/SKILL.md +260 -0
  172. package/.mimocode/skills/define-language/SKILL.md +80 -0
  173. package/.mimocode/skills/define-success/SKILL.md +65 -0
  174. package/.mimocode/skills/delegate-task/SKILL.md +91 -0
  175. package/.mimocode/skills/deploy/SKILL.md +198 -0
  176. package/.mimocode/skills/design-interface/SKILL.md +97 -0
  177. package/.mimocode/skills/develop-tdd/SKILL.md +406 -0
  178. package/.mimocode/skills/diagnose-root/SKILL.md +24 -0
  179. package/.mimocode/skills/diagnose-stall/SKILL.md +54 -0
  180. package/.mimocode/skills/dispatch-agents/SKILL.md +118 -0
  181. package/.mimocode/skills/edit-document/SKILL.md +23 -0
  182. package/.mimocode/skills/elaborate-spec/SKILL.md +101 -0
  183. package/.mimocode/skills/enforce-first/SKILL.md +32 -0
  184. package/.mimocode/skills/evolve-skill/SKILL.md +55 -0
  185. package/.mimocode/skills/execute-plan/SKILL.md +61 -0
  186. package/.mimocode/skills/extract-design/SKILL.md +132 -0
  187. package/.mimocode/skills/find-way/SKILL.md +191 -0
  188. package/.mimocode/skills/fix-bug/SKILL.md +67 -0
  189. package/.mimocode/skills/gate-trace/SKILL.md +88 -0
  190. package/.mimocode/skills/generate-allure-report/SKILL.md +285 -0
  191. package/.mimocode/skills/grill-me/SKILL.md +96 -0
  192. package/.mimocode/skills/grill-with-docs/SKILL.md +41 -0
  193. package/.mimocode/skills/guard-git/SKILL.md +231 -0
  194. package/.mimocode/skills/harden-vps/SKILL.md +288 -0
  195. package/.mimocode/skills/hook-commits/SKILL.md +94 -0
  196. package/.mimocode/skills/inspect-quality/SKILL.md +106 -0
  197. package/.mimocode/skills/investigate-bug/SKILL.md +127 -0
  198. package/.mimocode/skills/kickoff-branch/SKILL.md +143 -0
  199. package/.mimocode/skills/maintain-wiki/SKILL.md +64 -0
  200. package/.mimocode/skills/map-codebase/SKILL.md +71 -0
  201. package/.mimocode/skills/migrate-spec/SKILL.md +862 -0
  202. package/.mimocode/skills/model-domain/SKILL.md +232 -0
  203. package/.mimocode/skills/orchestrate-project/SKILL.md +174 -0
  204. package/.mimocode/skills/organize-workspace/SKILL.md +164 -0
  205. package/.mimocode/skills/plan-refactor/SKILL.md +87 -0
  206. package/.mimocode/skills/plan-release/SKILL.md +145 -0
  207. package/.mimocode/skills/plan-tests/SKILL.md +75 -0
  208. package/.mimocode/skills/plan-work/SKILL.md +260 -0
  209. package/.mimocode/skills/publish-package/SKILL.md +328 -0
  210. package/.mimocode/skills/quick-fix/SKILL.md +114 -0
  211. package/.mimocode/skills/release-branch/SKILL.md +298 -0
  212. package/.mimocode/skills/request-review/SKILL.md +112 -0
  213. package/.mimocode/skills/research-first/SKILL.md +87 -0
  214. package/.mimocode/skills/reset-baseline/SKILL.md +21 -0
  215. package/.mimocode/skills/respond-review/SKILL.md +71 -0
  216. package/.mimocode/skills/run-benchmark/SKILL.md +85 -0
  217. package/.mimocode/skills/run-evals/SKILL.md +80 -0
  218. package/.mimocode/skills/run-planning/SKILL.md +101 -0
  219. package/.mimocode/skills/scope-work/SKILL.md +63 -0
  220. package/.mimocode/skills/search-skills/SKILL.md +73 -0
  221. package/.mimocode/skills/security-review/SKILL.md +384 -0
  222. package/.mimocode/skills/seed-conventions/SKILL.md +285 -0
  223. package/.mimocode/skills/session-state/SKILL.md +146 -0
  224. package/.mimocode/skills/setup-environment/SKILL.md +39 -0
  225. package/.mimocode/skills/simulate-agents/SKILL.md +26 -0
  226. package/.mimocode/skills/slice-tasks/SKILL.md +68 -0
  227. package/.mimocode/skills/smoke-test/SKILL.md +242 -0
  228. package/.mimocode/skills/spike-prototype/SKILL.md +95 -0
  229. package/.mimocode/skills/stocktake-skills/SKILL.md +72 -0
  230. package/.mimocode/skills/survey-context/SKILL.md +135 -0
  231. package/.mimocode/skills/terse-mode/SKILL.md +42 -0
  232. package/.mimocode/skills/trace-requirement/SKILL.md +69 -0
  233. package/.mimocode/skills/using-bigpowers/SKILL.md +111 -0
  234. package/.mimocode/skills/validate-contracts/SKILL.md +309 -0
  235. package/.mimocode/skills/validate-fix/SKILL.md +106 -0
  236. package/.mimocode/skills/verify-work/SKILL.md +191 -0
  237. package/.mimocode/skills/visual-dashboard/SKILL.md +50 -0
  238. package/.mimocode/skills/wire-ci/SKILL.md +375 -0
  239. package/.mimocode/skills/wire-observability/SKILL.md +97 -0
  240. package/.mimocode/skills/write-document/SKILL.md +255 -0
  241. package/.pi/package.json +1 -1
  242. package/.zcode/skills/align-grid/SKILL.md +110 -0
  243. package/.zcode/skills/assess-impact/SKILL.md +91 -0
  244. package/.zcode/skills/audit-code/SKILL.md +187 -0
  245. package/.zcode/skills/audit-plan/SKILL.md +89 -0
  246. package/.zcode/skills/build-epic/SKILL.md +105 -0
  247. package/.zcode/skills/change-request/SKILL.md +121 -0
  248. package/.zcode/skills/commit-message/SKILL.md +140 -0
  249. package/.zcode/skills/compose-workflow/SKILL.md +82 -0
  250. package/.zcode/skills/context7-mcp/SKILL.md +55 -0
  251. package/.zcode/skills/craft-skill/SKILL.md +179 -0
  252. package/.zcode/skills/deepen-architecture/SKILL.md +260 -0
  253. package/.zcode/skills/define-language/SKILL.md +80 -0
  254. package/.zcode/skills/define-success/SKILL.md +65 -0
  255. package/.zcode/skills/delegate-task/SKILL.md +91 -0
  256. package/.zcode/skills/deploy/SKILL.md +198 -0
  257. package/.zcode/skills/design-interface/SKILL.md +97 -0
  258. package/.zcode/skills/develop-tdd/SKILL.md +406 -0
  259. package/.zcode/skills/diagnose-root/SKILL.md +24 -0
  260. package/.zcode/skills/diagnose-stall/SKILL.md +54 -0
  261. package/.zcode/skills/dispatch-agents/SKILL.md +118 -0
  262. package/.zcode/skills/edit-document/SKILL.md +23 -0
  263. package/.zcode/skills/elaborate-spec/SKILL.md +101 -0
  264. package/.zcode/skills/enforce-first/SKILL.md +32 -0
  265. package/.zcode/skills/evolve-skill/SKILL.md +55 -0
  266. package/.zcode/skills/execute-plan/SKILL.md +61 -0
  267. package/.zcode/skills/extract-design/SKILL.md +132 -0
  268. package/.zcode/skills/find-way/SKILL.md +191 -0
  269. package/.zcode/skills/fix-bug/SKILL.md +67 -0
  270. package/.zcode/skills/gate-trace/SKILL.md +88 -0
  271. package/.zcode/skills/generate-allure-report/SKILL.md +285 -0
  272. package/.zcode/skills/grill-me/SKILL.md +96 -0
  273. package/.zcode/skills/grill-with-docs/SKILL.md +41 -0
  274. package/.zcode/skills/guard-git/SKILL.md +231 -0
  275. package/.zcode/skills/harden-vps/SKILL.md +288 -0
  276. package/.zcode/skills/hook-commits/SKILL.md +94 -0
  277. package/.zcode/skills/inspect-quality/SKILL.md +106 -0
  278. package/.zcode/skills/investigate-bug/SKILL.md +127 -0
  279. package/.zcode/skills/kickoff-branch/SKILL.md +143 -0
  280. package/.zcode/skills/maintain-wiki/SKILL.md +64 -0
  281. package/.zcode/skills/map-codebase/SKILL.md +71 -0
  282. package/.zcode/skills/migrate-spec/SKILL.md +862 -0
  283. package/.zcode/skills/model-domain/SKILL.md +232 -0
  284. package/.zcode/skills/orchestrate-project/SKILL.md +174 -0
  285. package/.zcode/skills/organize-workspace/SKILL.md +164 -0
  286. package/.zcode/skills/plan-refactor/SKILL.md +87 -0
  287. package/.zcode/skills/plan-release/SKILL.md +145 -0
  288. package/.zcode/skills/plan-tests/SKILL.md +75 -0
  289. package/.zcode/skills/plan-work/SKILL.md +260 -0
  290. package/.zcode/skills/publish-package/SKILL.md +328 -0
  291. package/.zcode/skills/quick-fix/SKILL.md +114 -0
  292. package/.zcode/skills/release-branch/SKILL.md +298 -0
  293. package/.zcode/skills/request-review/SKILL.md +112 -0
  294. package/.zcode/skills/research-first/SKILL.md +87 -0
  295. package/.zcode/skills/reset-baseline/SKILL.md +21 -0
  296. package/.zcode/skills/respond-review/SKILL.md +71 -0
  297. package/.zcode/skills/run-benchmark/SKILL.md +85 -0
  298. package/.zcode/skills/run-evals/SKILL.md +80 -0
  299. package/.zcode/skills/run-planning/SKILL.md +101 -0
  300. package/.zcode/skills/scope-work/SKILL.md +63 -0
  301. package/.zcode/skills/search-skills/SKILL.md +73 -0
  302. package/.zcode/skills/security-review/SKILL.md +384 -0
  303. package/.zcode/skills/seed-conventions/SKILL.md +285 -0
  304. package/.zcode/skills/session-state/SKILL.md +146 -0
  305. package/.zcode/skills/setup-environment/SKILL.md +39 -0
  306. package/.zcode/skills/simulate-agents/SKILL.md +26 -0
  307. package/.zcode/skills/slice-tasks/SKILL.md +68 -0
  308. package/.zcode/skills/smoke-test/SKILL.md +242 -0
  309. package/.zcode/skills/spike-prototype/SKILL.md +95 -0
  310. package/.zcode/skills/stocktake-skills/SKILL.md +72 -0
  311. package/.zcode/skills/survey-context/SKILL.md +135 -0
  312. package/.zcode/skills/terse-mode/SKILL.md +42 -0
  313. package/.zcode/skills/trace-requirement/SKILL.md +69 -0
  314. package/.zcode/skills/using-bigpowers/SKILL.md +111 -0
  315. package/.zcode/skills/validate-contracts/SKILL.md +309 -0
  316. package/.zcode/skills/validate-fix/SKILL.md +106 -0
  317. package/.zcode/skills/verify-work/SKILL.md +191 -0
  318. package/.zcode/skills/visual-dashboard/SKILL.md +50 -0
  319. package/.zcode/skills/wire-ci/SKILL.md +375 -0
  320. package/.zcode/skills/wire-observability/SKILL.md +97 -0
  321. package/.zcode/skills/write-document/SKILL.md +255 -0
  322. package/CHANGELOG.md +20 -0
  323. package/bin/setup.js +13 -4
  324. package/package.json +1 -1
  325. package/scripts/adapters/agy.sh +44 -1
  326. package/scripts/adapters/gemini.sh +83 -0
  327. package/scripts/adapters/hermes.sh +53 -1
  328. package/scripts/adapters/mimo.sh +41 -0
  329. package/scripts/adapters/zcode.sh +37 -0
  330. package/scripts/hooks/hermes/gateway/session-log/HOOK.yaml +5 -0
  331. package/scripts/hooks/hermes/gateway/session-log/handler.py +7 -0
  332. package/scripts/hooks/hermes/plugin/guard-git-plugin.py +14 -0
  333. package/scripts/hooks/hermes/shell/block-dangerous-terminal.sh +23 -0
  334. package/scripts/hooks/hermes/shell/hooks-config.example.yaml +7 -0
  335. package/scripts/install-cursor-skills-local.sh +8 -6
  336. package/scripts/install-cursor-skills.sh +15 -25
  337. package/scripts/install.sh +211 -13
  338. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  339. package/scripts/lib/golden-suite-gates.sh +2 -1
  340. package/scripts/lib/install-helpers.js +199 -4
  341. package/scripts/lib/sync-render.sh +43 -0
  342. package/scripts/lib/target-contracts.sh +22 -0
  343. package/scripts/targets.yaml +31 -1
  344. package/scripts/test-agy-hub.sh +59 -0
  345. package/scripts/test-gemini-adapter.sh +70 -0
  346. package/scripts/test-gemini-hub.sh +55 -0
  347. package/scripts/test-hermes-adapter.sh +85 -0
  348. package/scripts/test-hermes-hub.sh +51 -0
  349. package/scripts/test-install-helpers.js +103 -0
  350. package/scripts/test-install-helpers.sh +7 -0
  351. package/scripts/test-mimo-hub.sh +51 -0
  352. package/scripts/test-zcode-hub.sh +51 -0
  353. package/scripts/verify-install.sh +31 -0
@@ -0,0 +1,255 @@
1
+ ---
2
+ name: write-document
3
+ model: sonnet
4
+ description: "Write, organize, and sync high-integrity technical documents using the BMAD methodology. Ensures every document is Bold, Minimal, Actionable, and Durable. Use when creating architectural docs, technical guides, or organizing the specs/ directory."
5
+ ---
6
+
7
+ # Write Document (BMAD)
8
+
9
+ Create high-signal technical documentation that serves as an expert collaborator for both humans and AI. This skill enforces the BMAD principles to prevent context rot and ensure architectural durability.
10
+
11
+ **Distinct from `edit-document`:** Use this skill to create a document that does not yet exist. Use `edit-document` when a document already exists and needs restructuring, clarity, or prose improvements.
12
+
13
+ > **HARD GATE** — Every document must have a clear "Reason for Existence." If a document doesn't provide actionable leverage for a caller or test, do not create it.
14
+
15
+ ## The BMAD Principles
16
+
17
+ | Principle | Execution |
18
+ | :--- | :--- |
19
+ | **B**old | Make strong assertions. Define clear boundaries and "Never" rules. No "it might" or "usually." |
20
+ | **M**inimal | High-density, low-filler. **Circuit Breaker**: If the file exceeds 300 lines or the session exceeds 20 turns, you MUST run `terse-mode` and compact state before saving. |
21
+ | **A**ctionable | Link every doc to a verifiable outcome. **Architectural Docs**: Verify via Gherkin features (`specs/verifications/features/`) or grep-based structure checks (`grep -c "pattern" file`) that prove the design's *constraints* are present. |
22
+ | **D**urable | Design for the long-term. **Scalability**: Use "Nested Indexing"—root files link to module-level `GEMINI.md` indexes; do not list individual sub-files in the root. |
23
+
24
+ ## Process
25
+
26
+ ### 1. Identify the Artifact Type & Scope
27
+
28
+ Choose the correct BMAD-BigPowers artifact:
29
+ - **Decision Record (ADR)**: For "Why" decisions (saved to `specs/adr/`).
30
+ - **Context Map**: For system-wide architectural mapping (`specs/tech-architecture/tech-stack.md`).
31
+ - **Technical Guide**: For "How-to" with verification (saved to `<module>/REFERENCE.md`).
32
+ - **Behavioral Feature**: Gherkin-style compliance specs (saved to `specs/verifications/features/`).
33
+ - **Project README**: Project-facing documentation (saved to `README.md` at project root).
34
+
35
+ **Cross-Cutting Concerns**: If a doc affects multiple modules, place the authoritative source in the lowest common ancestor directory and use "Delegates" (one-line pointers) in sub-directories to maintain the Single Source of Truth without violating the Stepdown Rule.
36
+
37
+ ### 2. Draft with Semantic Velocity
38
+
39
+ > **STREAM CONTINUITY** — When writing file content, output in continuous chunks of ~200 lines. Do not pause. Continue immediately until complete. If you need time, emit a placeholder comment rather than going silent.
40
+
41
+ Write the document focusing on "Expert Collaboration":
42
+ - **Instructions over Descriptions**: Tell the reader (human or AI) exactly how to interact with the system.
43
+ - **Provenance Links**: Link to ADRs, Issues, or Commits to preserve intent.
44
+ - **The Stepdown Rule**: Information should descend exactly one level of abstraction. If a root doc needs to explain a leaf-level detail, it must point to a sub-index first.
45
+
46
+ ### Quick README (Project READMEs only)
47
+
48
+ 1. Ask: "Project name? One-sentence description?"
49
+ 2. Generate `README.md` at project root using the template in [REFERENCE.md](REFERENCE.md) — no TOC, no second interview round.
50
+ 3. Fill gaps from `CLAUDE.md` commands if available; use `TODO` markers otherwise.
51
+ 4. Output and suggest `edit-document` for polish.
52
+
53
+ → verify: `grep -c "^## " README.md | awk '{if($1>=7) print "OK"}'`
54
+
55
+ ### 3. Apply the 94% Quality Gate
56
+
57
+ Before finalizing, audit the document against these red flags:
58
+ - [ ] **Filler Language**: Are there pleasantries or "I hope this helps"? (Delete them).
59
+ - [ ] **Ambiguity**: Are there "usually," "often," or "it depends" without specific conditions?
60
+ - [ ] **Dead Ends**: Does the document end without a "Next Step" or "Verification" command?
61
+ - [ ] **Shallow Content**: Does it restate the code without explaining the *intent* or *contracts*?
62
+
63
+ ### 4. Sync and Organize
64
+
65
+ - **Big Powers Hierarchy**: Place the document in the correct tier (Global -> Project -> Sub-directory). Project READMEs are an exception — they go to project root (`README.md`), not `specs/`.
66
+ - **Nested Indexing**: If adding a module-level doc, ensure the module's `GEMINI.md` is updated. If the module's index is new, add it to the root `GEMINI.md`.
67
+ - **Sync**: Run `scripts/sync-skills.sh` if the document is a `SKILL.md` or affects generated artifacts.
68
+
69
+ ## Rules
70
+
71
+ - **Minimalism is a requirement**: If a document can be a 5-line table, do not make it a 5-line essay.
72
+ - **Verifiable outcomes**: Every technical document must include at least one `verify:` command. For architecture, this can be a `grep` or `run_shell_command` that validates the existence of required files or patterns.
73
+ - **No speculative docs**: Do not write documentation for features that do not exist yet unless explicitly doing `elaborate-spec`.
74
+
75
+
76
+ Suggest next skill: `audit-code` or `sync-skills.sh`.
77
+
78
+ ---
79
+
80
+ # Project README Template
81
+
82
+ Combined from dbader/readme-template and jehna/readme-best-practices. No TOC.
83
+
84
+ ## Navigation
85
+
86
+ | Lines | Section |
87
+ |-------|---------|
88
+ | 1 | Title |
89
+ | 5–16 | Navigation |
90
+ | 18–24 | Sections intro |
91
+ | 26–178 | README section templates (1–15) |
92
+ | 180–183 | Verify |
93
+
94
+ ## Sections
95
+
96
+ ### 1. Title + Badges
97
+
98
+ ```markdown
99
+ # Project Name
100
+
101
+ ![License](https://img.shields.io/badge/License-MIT-yellow.svg)
102
+ ![npm version](https://img.shields.io/npm/v/your-package.svg)
103
+
104
+ ```
105
+
106
+ Fill badges from CLAUDE.md stack info if available. Default to license + version badges.
107
+
108
+ ### 2. Tagline
109
+
110
+ ```markdown
111
+ > One-line description of what this project does and why it matters.
112
+ ```
113
+
114
+ ### 3. Description
115
+
116
+ 2-3 paragraphs: what problem it solves, who it's for, and what makes it different.
117
+
118
+ ### 4. Prerequisites
119
+
120
+ ```markdown
121
+ ## Prerequisites
122
+
123
+ - **Runtime**: Node.js v18+ (from CLAUDE.md)
124
+ - **Package manager**: npm (or pnpm/yarn)
125
+ ```
126
+
127
+ Auto-fill from CLAUDE.md commands section when possible.
128
+
129
+ ### 5. Installation
130
+
131
+ ```markdown
132
+ ## Installation
133
+
134
+ ```bash
135
+ npm install -g your-package
136
+ # or
137
+ npx your-package
138
+ ```
139
+ ```
140
+
141
+ Prefer npx one-shot if applicable; list global install as alternative.
142
+
143
+ ### 6. Usage
144
+
145
+ ```markdown
146
+ ## Usage
147
+
148
+ ```bash
149
+ your-command --help
150
+ your-command do-something
151
+ ```
152
+ ```
153
+
154
+ Include the most common 1-2 commands. Link to full docs if they exist.
155
+
156
+ ### 7. Features
157
+
158
+ ```markdown
159
+ ## Features
160
+
161
+ - Feature 1: short description
162
+ - Feature 2: short description
163
+ ```
164
+
165
+ 3-6 bullet points of what the project does. Derived from the project's purpose.
166
+
167
+ ### 8. Configuration
168
+
169
+ ```markdown
170
+ ## Configuration
171
+
172
+ | Variable | Default | Description |
173
+ |----------|---------|-------------|
174
+ | `VAR_NAME` | `value` | What it controls |
175
+ ```
176
+
177
+ Use `TODO` markers if unknown.
178
+
179
+ ### 9. Development Setup
180
+
181
+ ```markdown
182
+ ## Development
183
+
184
+ ```bash
185
+ git clone <repo-url>
186
+ cd project
187
+ npm install
188
+ ```
189
+ ```
190
+
191
+ Auto-fill from CLAUDE.md `Run` and `Build` commands.
192
+
193
+ ### 10. Running Tests
194
+
195
+ ```markdown
196
+ ## Tests
197
+
198
+ ```bash
199
+ npm test
200
+ npm run lint
201
+ ```
202
+ ```
203
+
204
+ Auto-fill from CLAUDE.md `Test` and `Lint` commands.
205
+
206
+ ### 11. Contributing
207
+
208
+ ```markdown
209
+ ## Contributing
210
+
211
+ 1. Fork the repo.
212
+ 2. Create a feature branch (`git checkout -b feature/my-thing`).
213
+ 3. Commit changes (`git commit -am 'Add my thing'`).
214
+ 4. Push (`git push origin feature/my-thing`).
215
+ 5. Open a Pull Request.
216
+ ```
217
+
218
+ ### 12. Changelog
219
+
220
+ ```markdown
221
+ ## Changelog
222
+
223
+ See [CHANGELOG.md](../../CHANGELOG.md) or [Releases](https://github.com/user/repo/releases).
224
+ ```
225
+
226
+ ### 13. Links
227
+
228
+ ```markdown
229
+ ## Links
230
+
231
+ - Repository: https://github.com/user/repo
232
+ - Issue tracker: https://github.com/user/repo/issues
233
+ ```
234
+
235
+ ### 14. License
236
+
237
+ ```markdown
238
+ ## License
239
+
240
+ MIT — see [LICENSE](../../LICENSE) for details.
241
+ ```
242
+
243
+ Detect from CLAUDE.md or project LICENSE file.
244
+
245
+ ### 15. Credits (optional)
246
+
247
+ ```markdown
248
+ ## Credits
249
+
250
+ Built with [bigpowers](https://github.com/danielvm-git/bigpowers).
251
+ ```
252
+
253
+ ## Verify
254
+
255
+ After generation, run: `grep -c "^## " README.md` — expect ≥ 7 section headings.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ # [2.83.0](https://github.com/danielvm-git/bigpowers/compare/v2.82.4...v2.83.0) (2026-07-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ci:** resolve compliance and YAML gates from run 30100865008 ([2d9298b](https://github.com/danielvm-git/bigpowers/commit/2d9298b6feedf1c974b993338b5a3bfeb167583a))
7
+ * **installer:** correct Claude hook path and gate install-helpers ([6a359e8](https://github.com/danielvm-git/bigpowers/commit/6a359e8ca30dab804eb471ea20a50dadd7e2c807))
8
+ * **install:** finish Wave 0 closeout for e77/e78 ([a78faab](https://github.com/danielvm-git/bigpowers/commit/a78faab56c3c1b5573ba1584e0ed7c06dae2462f))
9
+ * **install:** land e77/e78 Wave 0 code closeout ([6abcb7b](https://github.com/danielvm-git/bigpowers/commit/6abcb7be9a7cbe0a0a16765a98bb9b5c243f67c7))
10
+ * **install:** restore Claude guard-git lib symlink path ([402abb3](https://github.com/danielvm-git/bigpowers/commit/402abb3d7c42b7442574e4f5657007c917878470))
11
+
12
+
13
+ ### Features
14
+
15
+ * **e61:** Hermes Agent integration — adapter + install hub ([#84](https://github.com/danielvm-git/bigpowers/issues/84)) ([2028854](https://github.com/danielvm-git/bigpowers/commit/20288540ff5fb5488e3863e34b8f52da43cb2c85))
16
+ * **e64:** Gemini CLI integration — adapter + install hub ([#88](https://github.com/danielvm-git/bigpowers/issues/88)) ([d5a7715](https://github.com/danielvm-git/bigpowers/commit/d5a77156b407e5d5722dd3799ff194bd28d47a03))
17
+ * **e69:** MiMo Code integration — adapter + install hub ([#87](https://github.com/danielvm-git/bigpowers/issues/87)) ([c0a759a](https://github.com/danielvm-git/bigpowers/commit/c0a759ad269ecc031c6496ee2c22574061cec13f))
18
+ * **e74:** Antigravity CLI integration — Wave A + B ([#89](https://github.com/danielvm-git/bigpowers/issues/89)) ([9e18e04](https://github.com/danielvm-git/bigpowers/commit/9e18e044c9441354b5ed7b717ce77ddf62ea46b7))
19
+ * **e76:** ZCode integration — adapter + install hub ([#85](https://github.com/danielvm-git/bigpowers/issues/85)) ([0bb09b3](https://github.com/danielvm-git/bigpowers/commit/0bb09b307c58112a19933d8a81783a5a7df9ecf6))
20
+
1
21
  ## [2.82.4](https://github.com/danielvm-git/bigpowers/compare/v2.82.3...v2.82.4) (2026-07-24)
2
22
 
3
23
 
package/bin/setup.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // story: e60s01
3
+ // story: e74s02
3
4
  // bigpowers setup — interactive installer
4
5
  // Combines GSD simplicity with BMAD visual polish.
5
6
 
@@ -39,7 +40,7 @@ ${c.cyan('╚══════════════════════
39
40
  // ── Tool definitions ─────────────────────────────────────────────────────────
40
41
  const TOOLS = [
41
42
  { id: 'claude', name: 'Claude Code', globalPath: '~/.claude', localPath: '.claude' },
42
- { id: 'antigravity', name: 'Antigravity', globalPath: '~/.gemini/antigravity', localPath: '.gemini/antigravity' },
43
+ { id: 'antigravity', name: 'Antigravity', globalPath: '~/.gemini/antigravity-cli/skills', localPath: '.agents/skills' },
43
44
  { id: 'augment', name: 'Augment', globalPath: '~/.augment', localPath: '.augment' },
44
45
  { id: 'cline', name: 'Cline', globalPath: '.clinerules', localPath: '.clinerules' },
45
46
  { id: 'codebuddy', name: 'CodeBuddy', globalPath: '~/.codebuddy', localPath: '.codebuddy' },
@@ -48,14 +49,16 @@ const TOOLS = [
48
49
  { id: 'cursor', name: 'Cursor', globalPath: '~/.cursor', localPath: '.cursor' },
49
50
  { id: 'gemini', name: 'Gemini', globalPath: '~/.gemini', localPath: '.gemini' },
50
51
  { id: 'hermes', name: 'Hermes Agent', globalPath: '~/.hermes', localPath: '.hermes' },
52
+ { id: 'mimo', name: 'MiMo Code', globalPath: '~/.mimocode', localPath: '.mimocode' },
51
53
  { id: 'kilo', name: 'Kilo', globalPath: '~/.config/kilo', localPath: '.config/kilo' },
52
54
  { id: 'opencode', name: 'OpenCode', globalPath: '~/.config/opencode', localPath: '.config/opencode' },
55
+ { id: 'pi', name: 'pi', globalPath: '~/.pi/agent/skills', localPath: '.pi/agent/skills' },
53
56
  { id: 'qwen', name: 'Qwen Code', globalPath: '~/.qwen', localPath: '.qwen' },
54
57
  { id: 'trae', name: 'Trae', globalPath: '~/.trae', localPath: '.trae' },
55
58
  { id: 'windsurf', name: 'Windsurf', globalPath: '~/.codeium/windsurf', localPath: '.codeium/windsurf' },
59
+ { id: 'zcode', name: 'ZCode', globalPath: '~/.zcode', localPath: '.zcode' },
56
60
  ];
57
- const ALL_ID = '__all__';
58
- const SUPPORTED_IDS = new Set(['claude', 'gemini', 'pi', 'cursor', 'codex']);
61
+ const SUPPORTED_IDS = new Set(['claude', 'gemini', 'pi', 'hermes', 'mimo', 'zcode', 'cursor', 'codex', 'antigravity', 'agy']);
59
62
  const UNSUPPORTED_HINT = '(TODO)';
60
63
 
61
64
  // ── clack helpers (lazy ESM import from CJS) ─────────────────────────────────
@@ -159,7 +162,7 @@ async function main() {
159
162
  }
160
163
 
161
164
  if (mode === 'uninstall') {
162
- await handleUninstall(clack);
165
+ await handleUninstall();
163
166
  return;
164
167
  }
165
168
 
@@ -271,6 +274,12 @@ async function main() {
271
274
  const detail = r.ok ? c.dim(r.path) : c.red(r.error);
272
275
  console.log(` ${icon} ${r.name} — ${detail}`);
273
276
  }
277
+ if (selectedTools.includes('cursor') && results.some((r) => r.name === 'Cursor' && r.ok)) {
278
+ console.log(
279
+ ` ${c.dim('NOTE: Cursor does not scan ~/.cursor/rules globally — also symlink into each project:')}`
280
+ );
281
+ console.log(` ${c.dim(' ln -sfn ' + path.join(ROOT, '.cursor', 'rules') + ' .cursor/rules')}`);
282
+ }
274
283
  console.log('');
275
284
 
276
285
  const allOk = results.every((r) => r.ok);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.82.4",
3
+ "version": "2.83.0",
4
4
  "description": "73 agent skills synthesizing 17 years of software engineering discipline into a prescriptive methodology for solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,6 +1,49 @@
1
1
  #!/usr/bin/env bash
2
2
  # story: e37s09
3
+ # story: e74s01
4
+ # story: e74s02
5
+ # Antigravity CLI (agy) — skills at .agents/skills/ (workspace) and
6
+ # ~/.gemini/antigravity-cli/skills/ (global). See RESEARCH-ANTIGRAVITY.md.
7
+
8
+ AGY_SKILLS="${AGY_SKILLS:-.agents/skills}"
9
+ AGY_HOOKS_GLOBAL="${AGY_HOOKS_GLOBAL:-$HOME/.gemini/config/hooks.json}"
10
+ AGY_HOOKS_WORKSPACE="${AGY_HOOKS_WORKSPACE:-.agents/hooks.json}"
11
+
12
+ render_skill() {
13
+ if declare -f render_agy_skill >/dev/null 2>&1; then
14
+ render_agy_skill
15
+ return
16
+ fi
17
+ local out="${AGY_SKILLS}/${IR_NAME}"
18
+ mkdir -p "$out"
19
+ cp "${SKILL_MD_PATH:-}" "$out/SKILL.md" 2>/dev/null || {
20
+ {
21
+ echo "---"
22
+ echo "name: $IR_NAME"
23
+ [[ -n "${IR_MODEL:-}" ]] && echo "model: $IR_MODEL"
24
+ echo "description: \"$IR_DESC_ESCAPED\""
25
+ echo "---"
26
+ echo ""
27
+ echo "${IR_BODY_SKILL:-$IR_BODY}"
28
+ } > "$out/SKILL.md"
29
+ }
30
+ }
31
+
3
32
  wire_context() {
4
33
  source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
5
- wire_context_mode symlink "${1:-CLAUDE.md}"
34
+ wire_context_mode symlink "${1:-AGENTS.md}"
6
35
  }
36
+
37
+ # If stdin is a pipe/redirect, read the SkillIR JSON and render
38
+ if [[ ! -t 0 ]]; then
39
+ JSON_INPUT=$(cat)
40
+ if [[ -n "$JSON_INPUT" ]]; then
41
+ IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
42
+ IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model // empty')
43
+ IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
44
+ IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
45
+ IR_BODY_SKILL=$(echo "$JSON_INPUT" | jq -r '.body_agy_skill // .body')
46
+ IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
47
+ render_skill
48
+ fi
49
+ fi
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  # story: e48s15
3
3
  # story: e37s05 e37s07
4
+ # story: e64s01
4
5
 
5
6
  render_skill() {
6
7
  if declare -f render_gemini_skill >/dev/null 2>&1; then
@@ -36,6 +37,88 @@ wire_context() {
36
37
  wire_context_mode symlink "${1:-GEMINI.md}"
37
38
  }
38
39
 
40
+ GEMINI_HOOK_EVENTS=(
41
+ BeforeTool AfterTool BeforeAgent AfterAgent BeforeModel
42
+ BeforeToolSelection AfterModel SessionStart SessionEnd Notification PreCompress
43
+ )
44
+
45
+ gemini_hooks_dir() {
46
+ echo "${GEMINI_HOOKS_DIR:-${GEMINI_EXT_DIR:-.gemini/extensions/bigpowers}/hooks}"
47
+ }
48
+
49
+ list_hook_events() {
50
+ printf '%s\n' "${GEMINI_HOOK_EVENTS[@]}"
51
+ }
52
+
53
+ gemini_required_hook_files() {
54
+ cat <<'EOF'
55
+ session-start
56
+ run-hook.cmd
57
+ HOOKS.md
58
+ hooks-manifest.json
59
+ settings.json.example
60
+ before-tool-git-guard.sh
61
+ before-tool-rtk.sh
62
+ before-tool-token-mgmt.sh
63
+ EOF
64
+ }
65
+
66
+ validate_hook_templates() {
67
+ local hookdir missing=0 rel
68
+ hookdir="$(gemini_hooks_dir)"
69
+ if [[ ! -d "$hookdir" ]]; then
70
+ echo "FAIL: hook dir missing: $hookdir" >&2
71
+ return 1
72
+ fi
73
+ while IFS= read -r rel; do
74
+ [[ -n "$rel" ]] || continue
75
+ if [[ ! -f "$hookdir/$rel" ]]; then
76
+ echo "FAIL: missing $hookdir/$rel" >&2
77
+ missing=1
78
+ fi
79
+ done < <(gemini_required_hook_files)
80
+ local count
81
+ count="$(list_hook_events | wc -l | tr -d ' ')"
82
+ if [[ "$count" != "11" ]]; then
83
+ echo "FAIL: expected 11 hook events, got $count" >&2
84
+ missing=1
85
+ fi
86
+ return "$missing"
87
+ }
88
+
89
+ render_hooks_manifest() {
90
+ if declare -f render_gemini_hooks_manifest >/dev/null 2>&1; then
91
+ render_gemini_hooks_manifest
92
+ return
93
+ fi
94
+ local hookdir
95
+ hookdir="$(gemini_hooks_dir)"
96
+ mkdir -p "$hookdir"
97
+ cat > "$hookdir/hooks-manifest.json" <<'JSON'
98
+ {
99
+ "schema_version": 1,
100
+ "target": "gemini",
101
+ "events_total": 11,
102
+ "events": [
103
+ "BeforeTool", "AfterTool", "BeforeAgent", "AfterAgent", "BeforeModel",
104
+ "BeforeToolSelection", "AfterModel", "SessionStart", "SessionEnd",
105
+ "Notification", "PreCompress"
106
+ ]
107
+ }
108
+ JSON
109
+ }
110
+
111
+ # CLI: bash scripts/adapters/gemini.sh --validate-hooks
112
+ if [[ "${1:-}" == "--validate-hooks" ]]; then
113
+ validate_hook_templates && echo "PASS: gemini hook templates"
114
+ exit $?
115
+ fi
116
+
117
+ if [[ "${1:-}" == "--list-hook-events" ]]; then
118
+ list_hook_events
119
+ exit 0
120
+ fi
121
+
39
122
  # If stdin is a pipe/redirect, read the SkillIR JSON and render
40
123
  if [[ ! -t 0 ]]; then
41
124
  JSON_INPUT=$(cat)
@@ -1,10 +1,62 @@
1
1
  #!/usr/bin/env bash
2
2
  # story: e37s10
3
+ # story: e61s01
4
+ # Hermes Agent skill adapter — renders .hermes/skills/<name>/SKILL.md from SkillIR.
5
+
6
+ hermes_is_unsafe_skill_name() {
7
+ local name="$1"
8
+ [[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* ]]
9
+ }
10
+
11
+ hermes_sanitize_name() {
12
+ local name="$1"
13
+ if hermes_is_unsafe_skill_name "$name"; then
14
+ echo "hermes: invalid skill name: ${name:-<empty>}" >&2
15
+ return 1
16
+ fi
17
+ printf '%s' "$name"
18
+ }
19
+
3
20
  render_skill() {
21
+ if declare -f render_hermes_skill >/dev/null 2>&1; then
22
+ render_hermes_skill
23
+ return
24
+ fi
25
+
26
+ local safe_name
27
+ safe_name=$(hermes_sanitize_name "${IR_NAME:-}") || return 1
4
28
  local out="${HERMES_SKILLS:-.hermes/skills}"
5
- mkdir -p "$out/${IR_NAME:-_stub}" 2>/dev/null || true
29
+ mkdir -p "$out/$safe_name"
30
+
31
+ if [[ -n "${SKILL_MD_PATH:-}" && -f "$SKILL_MD_PATH" ]]; then
32
+ cp "$SKILL_MD_PATH" "$out/$safe_name/SKILL.md"
33
+ return 0
34
+ fi
35
+
36
+ {
37
+ echo "---"
38
+ echo "name: $safe_name"
39
+ [[ -n "${IR_MODEL:-}" && "$IR_MODEL" != "null" ]] && echo "model: $IR_MODEL"
40
+ echo "description: \"${IR_DESC_ESCAPED:-}\""
41
+ echo "---"
42
+ echo ""
43
+ echo "${IR_BODY:-}"
44
+ } > "$out/$safe_name/SKILL.md"
6
45
  }
46
+
7
47
  wire_context() {
8
48
  source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
9
49
  wire_context_mode config-bridge ".hermes/config.yaml" "instructions" "AGENTS.md"
10
50
  }
51
+
52
+ if [[ "${BASH_SOURCE[0]}" == "${0}" ]] && [[ ! -t 0 ]]; then
53
+ JSON_INPUT=$(cat)
54
+ if [[ -n "$JSON_INPUT" ]]; then
55
+ IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
56
+ IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
57
+ IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
58
+ IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
59
+ IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
60
+ render_skill
61
+ fi
62
+ fi
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env bash
2
+ # story: e69s01
3
+
4
+ render_skill() {
5
+ if declare -f render_mimo_skill >/dev/null 2>&1; then
6
+ render_mimo_skill
7
+ return
8
+ fi
9
+ local out="${MIMO_SKILLS:-.mimocode/skills}/$IR_NAME"
10
+ mkdir -p "$out"
11
+ cp "${SKILL_MD_PATH:-}" "$out/SKILL.md" 2>/dev/null || {
12
+ {
13
+ echo "---"
14
+ echo "name: $IR_NAME"
15
+ [[ -n "$IR_MODEL" ]] && echo "model: $IR_MODEL"
16
+ echo "description: \"$IR_DESC_ESCAPED\""
17
+ echo "---"
18
+ echo ""
19
+ echo "${IR_BODY_SKILL:-$IR_BODY}"
20
+ } > "$out/SKILL.md"
21
+ }
22
+ }
23
+
24
+ wire_context() {
25
+ source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
26
+ wire_context_mode symlink "${1:-AGENTS.md}"
27
+ }
28
+
29
+ # If stdin is a pipe/redirect, read the SkillIR JSON and render
30
+ if [[ ! -t 0 ]]; then
31
+ JSON_INPUT=$(cat)
32
+ if [[ -n "$JSON_INPUT" ]]; then
33
+ IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
34
+ IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model // empty')
35
+ IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
36
+ IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
37
+ IR_BODY_SKILL=$(echo "$JSON_INPUT" | jq -r '.body_mimo_skill // .body')
38
+ IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
39
+ render_skill
40
+ fi
41
+ fi
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env bash
2
+ # story: e76s01
3
+ # ZCode skill adapter — renders SKILL.md to ~/.zcode/skills/<name>/.
4
+
5
+ render_skill() {
6
+ local skills_dir="${ZCODE_SKILLS:-.zcode/skills}"
7
+ mkdir -p "${skills_dir}/${IR_NAME}"
8
+ {
9
+ echo "---"
10
+ echo "name: $IR_NAME"
11
+ [[ -n "${IR_MODEL:-}" ]] && echo "model: $IR_MODEL"
12
+ echo "description: \"$IR_DESC_ESCAPED\""
13
+ echo "---"
14
+ echo ""
15
+ echo "$IR_BODY"
16
+ } > "${skills_dir}/${IR_NAME}/SKILL.md"
17
+ }
18
+
19
+ wire_context() {
20
+ source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
21
+ local dest="${ZCODE_AGENTS:-.zcode/AGENTS.md}"
22
+ mkdir -p "$(dirname "$dest")"
23
+ wire_context_mode symlink "$dest" "" "" "" "${1:-AGENTS.md}"
24
+ }
25
+
26
+ # If stdin is a pipe/redirect, read the SkillIR JSON and render
27
+ if [[ ! -t 0 ]]; then
28
+ JSON_INPUT=$(cat)
29
+ if [[ -n "$JSON_INPUT" ]]; then
30
+ IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
31
+ IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model // empty')
32
+ IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
33
+ IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
34
+ IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
35
+ render_skill
36
+ fi
37
+ fi
@@ -0,0 +1,5 @@
1
+ name: session-log
2
+ description: Observe agent lifecycle events (bigpowers template — copy to ~/.hermes/hooks/)
3
+ events:
4
+ - agent:start
5
+ - agent:end
@@ -0,0 +1,7 @@
1
+ # story: e61s01
2
+ # Gateway hook template — copy directory to ~/.hermes/hooks/session-log/
3
+ # Docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks
4
+
5
+ async def handle(event_type: str, context: dict) -> None:
6
+ """Observer-only; errors are caught by Hermes and never crash the agent."""
7
+ _ = event_type, context
@@ -0,0 +1,14 @@
1
+ # story: e61s01
2
+ # Plugin hook template — install as a Hermes plugin (CLI + gateway).
3
+ # Docs: https://hermes-agent.nousresearch.com/docs/developer-guide/plugins
4
+
5
+ DANGEROUS = {"terminal", "write_file", "patch"}
6
+
7
+
8
+ def warn_dangerous(tool_name, **kwargs):
9
+ if tool_name in DANGEROUS:
10
+ print(f"⚠ Executing potentially sensitive tool: {tool_name}")
11
+
12
+
13
+ def register(ctx):
14
+ ctx.register_hook("pre_tool_call", warn_dangerous)