voidmachine 0.0.0 → 5.0.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 (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -4
  3. package/bin/void-harness.mjs +12 -0
  4. package/bin/void-machine.mjs +12 -0
  5. package/core-assets/.claude-plugin/plugin.json +285 -0
  6. package/core-assets/.gitkeep +0 -0
  7. package/core-assets/PHILOSOPHY.md +218 -0
  8. package/core-assets/PROJECT-DOCTRINE.template.md +14 -0
  9. package/core-assets/adapters/security/manifest.yaml +96 -0
  10. package/core-assets/agents/.gitkeep +0 -0
  11. package/core-assets/agents/accessibility-specialist.md +59 -0
  12. package/core-assets/agents/api-integration-engineer.md +59 -0
  13. package/core-assets/agents/code-explorer.md +94 -0
  14. package/core-assets/agents/code-explorer.source +7 -0
  15. package/core-assets/agents/data-migration-engineer.md +59 -0
  16. package/core-assets/agents/devex-docs-engineer.md +57 -0
  17. package/core-assets/agents/doctrine-critic.md +91 -0
  18. package/core-assets/agents/doctrine-critic.source +11 -0
  19. package/core-assets/agents/domain-architect.md +56 -0
  20. package/core-assets/agents/experience-designer.md +59 -0
  21. package/core-assets/agents/frontend-engineer.md +60 -0
  22. package/core-assets/agents/independent-code-reviewer.md +62 -0
  23. package/core-assets/agents/migration-planner.md +97 -0
  24. package/core-assets/agents/migration-planner.source +7 -0
  25. package/core-assets/agents/observability-sre-engineer.md +59 -0
  26. package/core-assets/agents/pdf-specialist.md +58 -0
  27. package/core-assets/agents/performance-engineer.md +58 -0
  28. package/core-assets/agents/product-challenger.md +55 -0
  29. package/core-assets/agents/security-engineer.md +66 -0
  30. package/core-assets/agents/silent-failure-hunter.md +94 -0
  31. package/core-assets/agents/silent-failure-hunter.source +8 -0
  32. package/core-assets/agents/solution-architect.md +57 -0
  33. package/core-assets/agents/test-qa-engineer.md +60 -0
  34. package/core-assets/agents/type-design-analyzer.md +93 -0
  35. package/core-assets/agents/type-design-analyzer.source +8 -0
  36. package/core-assets/agents/visual-craft-director.md +62 -0
  37. package/core-assets/codex/hooks.json +172 -0
  38. package/core-assets/contract-history/visual-craft-director/v2.yaml +43 -0
  39. package/core-assets/data/catalog.v3.json +10527 -0
  40. package/core-assets/data/certification.json +1826 -0
  41. package/core-assets/data/identity.json +8 -0
  42. package/core-assets/data/model.json +4256 -0
  43. package/core-assets/enforce/ci-enforce.sh +183 -0
  44. package/core-assets/hooks/_checks.sh +145 -0
  45. package/core-assets/hooks/_hooklib.sh +163 -0
  46. package/core-assets/hooks/_syntax-worker.cjs +503 -0
  47. package/core-assets/hooks/_void-hook.mjs +15448 -0
  48. package/core-assets/hooks/activation-meter.sh +13 -0
  49. package/core-assets/hooks/anti-ai-slop-grep.sh +38 -0
  50. package/core-assets/hooks/auto-format.sh +9 -0
  51. package/core-assets/hooks/axe-precommit.sh +35 -0
  52. package/core-assets/hooks/block-dangerous-bash.sh +10 -0
  53. package/core-assets/hooks/block-protected-push.sh +81 -0
  54. package/core-assets/hooks/boundary-direction-check.sh +10 -0
  55. package/core-assets/hooks/control-character-grep.sh +10 -0
  56. package/core-assets/hooks/fowler-refactors.txt +71 -0
  57. package/core-assets/hooks/large-cl-grep.sh +9 -0
  58. package/core-assets/hooks/llm-cost-precommit.sh +55 -0
  59. package/core-assets/hooks/migration-lint.sh +58 -0
  60. package/core-assets/hooks/migration-pr-template.sh +55 -0
  61. package/core-assets/hooks/no-ai-design-slop.sh +10 -0
  62. package/core-assets/hooks/no-any-grep.sh +10 -0
  63. package/core-assets/hooks/no-as-cast-grep.sh +10 -0
  64. package/core-assets/hooks/no-console-log-grep.sh +10 -0
  65. package/core-assets/hooks/no-null-grep.sh +10 -0
  66. package/core-assets/hooks/no-only-no-skip.sh +10 -0
  67. package/core-assets/hooks/outcome-meter.sh +13 -0
  68. package/core-assets/hooks/pre-PR-review-evidence.sh +47 -0
  69. package/core-assets/hooks/protect-sensitive-files.sh +10 -0
  70. package/core-assets/hooks/refactor-named-grep.sh +49 -0
  71. package/core-assets/hooks/secret-in-content.sh +10 -0
  72. package/core-assets/hooks/sessionstart-context.sh +9 -0
  73. package/core-assets/hooks/stop-typecheck.sh +9 -0
  74. package/core-assets/hooks/tdd-guard.md +90 -0
  75. package/core-assets/hooks/tdd-guard.sh +10 -0
  76. package/core-assets/hooks/test-name-lint.sh +10 -0
  77. package/core-assets/hooks/tidying-commit-prefix.sh +37 -0
  78. package/core-assets/hooks/trim-large-output.sh +9 -0
  79. package/core-assets/hooks/tsc-noemit-precommit.sh +22 -0
  80. package/core-assets/hooks/ubiquitous-language-lint.sh +58 -0
  81. package/core-assets/hooks/viewport-screenshot-gate.sh +48 -0
  82. package/core-assets/modules/.gitkeep +0 -0
  83. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/.source +7 -0
  84. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/SKILL.md +164 -0
  85. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/harness.yaml +14 -0
  86. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/.source +7 -0
  87. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/SKILL.md +178 -0
  88. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/harness.yaml +14 -0
  89. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/.source +8 -0
  90. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/SKILL.md +209 -0
  91. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/harness.yaml +14 -0
  92. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/.source +7 -0
  93. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/SKILL.md +194 -0
  94. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/harness.yaml +14 -0
  95. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/.source +5 -0
  96. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/SKILL.md +160 -0
  97. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/harness.yaml +14 -0
  98. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/.source +5 -0
  99. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/SKILL.md +70 -0
  100. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/harness.yaml +14 -0
  101. package/core-assets/packs/pack-monorepo/skills/void-service-package/.source +5 -0
  102. package/core-assets/packs/pack-monorepo/skills/void-service-package/SKILL.md +122 -0
  103. package/core-assets/packs/pack-monorepo/skills/void-service-package/harness.yaml +14 -0
  104. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/.source +7 -0
  105. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/SKILL.md +116 -0
  106. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/harness.yaml +14 -0
  107. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/.source +5 -0
  108. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/SKILL.md +162 -0
  109. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/harness.yaml +14 -0
  110. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/.source +5 -0
  111. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/SKILL.md +161 -0
  112. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/harness.yaml +14 -0
  113. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/.source +5 -0
  114. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/SKILL.md +176 -0
  115. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/harness.yaml +14 -0
  116. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/.source +5 -0
  117. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/SKILL.md +129 -0
  118. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/harness.yaml +14 -0
  119. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/.source +5 -0
  120. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/SKILL.md +107 -0
  121. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/harness.yaml +14 -0
  122. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/.source +5 -0
  123. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/SKILL.md +153 -0
  124. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/harness.yaml +14 -0
  125. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/.source +5 -0
  126. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/SKILL.md +204 -0
  127. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/harness.yaml +14 -0
  128. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/.source +8 -0
  129. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/SKILL.md +266 -0
  130. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/harness.yaml +14 -0
  131. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/.source +5 -0
  132. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/SKILL.md +178 -0
  133. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/harness.yaml +14 -0
  134. package/core-assets/packs/pack-react/skills/void-accessibility-check/.source +8 -0
  135. package/core-assets/packs/pack-react/skills/void-accessibility-check/SKILL.md +136 -0
  136. package/core-assets/packs/pack-react/skills/void-accessibility-check/harness.yaml +14 -0
  137. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/.source +5 -0
  138. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/SKILL.md +116 -0
  139. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/harness.yaml +14 -0
  140. package/core-assets/packs/pack-react/skills/void-form-pattern/.source +7 -0
  141. package/core-assets/packs/pack-react/skills/void-form-pattern/SKILL.md +157 -0
  142. package/core-assets/packs/pack-react/skills/void-form-pattern/harness.yaml +14 -0
  143. package/core-assets/packs/pack-react/skills/void-state-architecture/.source +5 -0
  144. package/core-assets/packs/pack-react/skills/void-state-architecture/SKILL.md +160 -0
  145. package/core-assets/packs/pack-react/skills/void-state-architecture/harness.yaml +14 -0
  146. package/core-assets/packs/pack-server/skills/void-background-job-pattern/.source +6 -0
  147. package/core-assets/packs/pack-server/skills/void-background-job-pattern/SKILL.md +214 -0
  148. package/core-assets/packs/pack-server/skills/void-background-job-pattern/harness.yaml +14 -0
  149. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/.source +6 -0
  150. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/SKILL.md +168 -0
  151. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/harness.yaml +14 -0
  152. package/core-assets/packs/pack-server/skills/void-env-validation/.source +6 -0
  153. package/core-assets/packs/pack-server/skills/void-env-validation/SKILL.md +131 -0
  154. package/core-assets/packs/pack-server/skills/void-env-validation/harness.yaml +14 -0
  155. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/.source +6 -0
  156. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/SKILL.md +149 -0
  157. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/harness.yaml +14 -0
  158. package/core-assets/packs/pack-server/skills/void-server-action/.source +7 -0
  159. package/core-assets/packs/pack-server/skills/void-server-action/SKILL.md +181 -0
  160. package/core-assets/packs/pack-server/skills/void-server-action/harness.yaml +14 -0
  161. package/core-assets/packs/pack-server/skills/void-testing-server-modules/.source +7 -0
  162. package/core-assets/packs/pack-server/skills/void-testing-server-modules/SKILL.md +73 -0
  163. package/core-assets/packs/pack-server/skills/void-testing-server-modules/harness.yaml +14 -0
  164. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/.source +7 -0
  165. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/SKILL.md +205 -0
  166. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/harness.yaml +14 -0
  167. package/core-assets/policies/core.yaml +95 -0
  168. package/core-assets/policies/ui.yaml +23 -0
  169. package/core-assets/profiles/base.yaml +29 -0
  170. package/core-assets/profiles/expo-config.yaml +36 -0
  171. package/core-assets/profiles/expo.yaml +35 -0
  172. package/core-assets/profiles/monorepo.yaml +33 -0
  173. package/core-assets/profiles/nextjs-config.yaml +31 -0
  174. package/core-assets/profiles/nextjs.yaml +31 -0
  175. package/core-assets/profiles/node-server.yaml +31 -0
  176. package/core-assets/profiles/pwa.yaml +33 -0
  177. package/core-assets/profiles/react.yaml +39 -0
  178. package/core-assets/profiles/sql.yaml +39 -0
  179. package/core-assets/profiles/typescript.yaml +39 -0
  180. package/core-assets/skills/.gitkeep +0 -0
  181. package/core-assets/skills/void-accessibility/.source +15 -0
  182. package/core-assets/skills/void-accessibility/SKILL.md +275 -0
  183. package/core-assets/skills/void-accessibility/harness.yaml +17 -0
  184. package/core-assets/skills/void-api-and-interface-design/.source +13 -0
  185. package/core-assets/skills/void-api-and-interface-design/SKILL.md +231 -0
  186. package/core-assets/skills/void-api-and-interface-design/harness.yaml +16 -0
  187. package/core-assets/skills/void-async-safety/.source +13 -0
  188. package/core-assets/skills/void-async-safety/SKILL.md +287 -0
  189. package/core-assets/skills/void-async-safety/harness.yaml +16 -0
  190. package/core-assets/skills/void-audit/.source +15 -0
  191. package/core-assets/skills/void-audit/SKILL.md +83 -0
  192. package/core-assets/skills/void-audit/harness.yaml +14 -0
  193. package/core-assets/skills/void-autopilot/.source +21 -0
  194. package/core-assets/skills/void-autopilot/SKILL.md +394 -0
  195. package/core-assets/skills/void-autopilot/harness.yaml +14 -0
  196. package/core-assets/skills/void-brainstorm/.source +14 -0
  197. package/core-assets/skills/void-brainstorm/SKILL.md +278 -0
  198. package/core-assets/skills/void-brainstorm/harness.yaml +14 -0
  199. package/core-assets/skills/void-checkpoint/.source +39 -0
  200. package/core-assets/skills/void-checkpoint/SKILL.md +227 -0
  201. package/core-assets/skills/void-checkpoint/harness.yaml +14 -0
  202. package/core-assets/skills/void-claude-md/.source +15 -0
  203. package/core-assets/skills/void-claude-md/SKILL.md +180 -0
  204. package/core-assets/skills/void-claude-md/harness.yaml +14 -0
  205. package/core-assets/skills/void-code-review/.source +14 -0
  206. package/core-assets/skills/void-code-review/SKILL.md +232 -0
  207. package/core-assets/skills/void-code-review/harness.yaml +15 -0
  208. package/core-assets/skills/void-commit-discipline/.source +9 -0
  209. package/core-assets/skills/void-commit-discipline/SKILL.md +211 -0
  210. package/core-assets/skills/void-commit-discipline/harness.yaml +15 -0
  211. package/core-assets/skills/void-context/.source +15 -0
  212. package/core-assets/skills/void-context/SKILL.md +166 -0
  213. package/core-assets/skills/void-context/harness.yaml +14 -0
  214. package/core-assets/skills/void-debug/.source +11 -0
  215. package/core-assets/skills/void-debug/SKILL.md +211 -0
  216. package/core-assets/skills/void-debug/harness.yaml +14 -0
  217. package/core-assets/skills/void-decide/.source +9 -0
  218. package/core-assets/skills/void-decide/SKILL.md +147 -0
  219. package/core-assets/skills/void-decide/harness.yaml +14 -0
  220. package/core-assets/skills/void-devex-audit/.source +8 -0
  221. package/core-assets/skills/void-devex-audit/SKILL.md +113 -0
  222. package/core-assets/skills/void-devex-audit/harness.yaml +15 -0
  223. package/core-assets/skills/void-doctor/.source +15 -0
  224. package/core-assets/skills/void-doctor/SKILL.md +83 -0
  225. package/core-assets/skills/void-doctor/harness.yaml +14 -0
  226. package/core-assets/skills/void-domain-driven-design/.source +13 -0
  227. package/core-assets/skills/void-domain-driven-design/SKILL.md +292 -0
  228. package/core-assets/skills/void-domain-driven-design/harness.yaml +15 -0
  229. package/core-assets/skills/void-frontend-design/.source +19 -0
  230. package/core-assets/skills/void-frontend-design/SKILL.md +274 -0
  231. package/core-assets/skills/void-frontend-design/harness.yaml +17 -0
  232. package/core-assets/skills/void-functional/.source +14 -0
  233. package/core-assets/skills/void-functional/SKILL.md +312 -0
  234. package/core-assets/skills/void-functional/harness.yaml +15 -0
  235. package/core-assets/skills/void-graph/.source +15 -0
  236. package/core-assets/skills/void-graph/SKILL.md +80 -0
  237. package/core-assets/skills/void-graph/harness.yaml +14 -0
  238. package/core-assets/skills/void-hexagonal-architecture/.source +12 -0
  239. package/core-assets/skills/void-hexagonal-architecture/SKILL.md +276 -0
  240. package/core-assets/skills/void-hexagonal-architecture/harness.yaml +15 -0
  241. package/core-assets/skills/void-implement/.source +39 -0
  242. package/core-assets/skills/void-implement/SKILL.md +192 -0
  243. package/core-assets/skills/void-implement/harness.yaml +14 -0
  244. package/core-assets/skills/void-learn/.source +13 -0
  245. package/core-assets/skills/void-learn/SKILL.md +226 -0
  246. package/core-assets/skills/void-learn/harness.yaml +14 -0
  247. package/core-assets/skills/void-llm-cost-discipline/.source +13 -0
  248. package/core-assets/skills/void-llm-cost-discipline/SKILL.md +299 -0
  249. package/core-assets/skills/void-llm-cost-discipline/harness.yaml +15 -0
  250. package/core-assets/skills/void-make-pdf/.source +9 -0
  251. package/core-assets/skills/void-make-pdf/SKILL.md +52 -0
  252. package/core-assets/skills/void-make-pdf/harness.yaml +15 -0
  253. package/core-assets/skills/void-merge/.source +8 -0
  254. package/core-assets/skills/void-merge/SKILL.md +111 -0
  255. package/core-assets/skills/void-merge/harness.yaml +14 -0
  256. package/core-assets/skills/void-migrations/.source +13 -0
  257. package/core-assets/skills/void-migrations/SKILL.md +264 -0
  258. package/core-assets/skills/void-migrations/harness.yaml +17 -0
  259. package/core-assets/skills/void-observability/.source +12 -0
  260. package/core-assets/skills/void-observability/SKILL.md +245 -0
  261. package/core-assets/skills/void-observability/harness.yaml +15 -0
  262. package/core-assets/skills/void-orchestrate/.source +16 -0
  263. package/core-assets/skills/void-orchestrate/SKILL.md +311 -0
  264. package/core-assets/skills/void-orchestrate/harness.yaml +10 -0
  265. package/core-assets/skills/void-plan/.source +15 -0
  266. package/core-assets/skills/void-plan/SKILL.md +246 -0
  267. package/core-assets/skills/void-plan/harness.yaml +14 -0
  268. package/core-assets/skills/void-plan-review/.source +12 -0
  269. package/core-assets/skills/void-plan-review/SKILL.md +128 -0
  270. package/core-assets/skills/void-plan-review/harness.yaml +15 -0
  271. package/core-assets/skills/void-qa/.source +15 -0
  272. package/core-assets/skills/void-qa/SKILL.md +103 -0
  273. package/core-assets/skills/void-qa/harness.yaml +15 -0
  274. package/core-assets/skills/void-refactor/.source +9 -0
  275. package/core-assets/skills/void-refactor/SKILL.md +220 -0
  276. package/core-assets/skills/void-refactor/harness.yaml +15 -0
  277. package/core-assets/skills/void-retrospective/.source +9 -0
  278. package/core-assets/skills/void-retrospective/SKILL.md +71 -0
  279. package/core-assets/skills/void-retrospective/harness.yaml +15 -0
  280. package/core-assets/skills/void-security-audit/.source +12 -0
  281. package/core-assets/skills/void-security-audit/SKILL.md +138 -0
  282. package/core-assets/skills/void-security-audit/harness.yaml +15 -0
  283. package/core-assets/skills/void-security-guidance/.source +13 -0
  284. package/core-assets/skills/void-security-guidance/SKILL.md +294 -0
  285. package/core-assets/skills/void-security-guidance/harness.yaml +15 -0
  286. package/core-assets/skills/void-source-driven-development/.source +12 -0
  287. package/core-assets/skills/void-source-driven-development/SKILL.md +158 -0
  288. package/core-assets/skills/void-source-driven-development/harness.yaml +15 -0
  289. package/core-assets/skills/void-tdd/.source +15 -0
  290. package/core-assets/skills/void-tdd/SKILL.md +394 -0
  291. package/core-assets/skills/void-tdd/harness.yaml +15 -0
  292. package/core-assets/skills/void-testing/.source +19 -0
  293. package/core-assets/skills/void-testing/SKILL.md +301 -0
  294. package/core-assets/skills/void-testing/harness.yaml +17 -0
  295. package/core-assets/skills/void-ticket/.source +18 -0
  296. package/core-assets/skills/void-ticket/SKILL.md +238 -0
  297. package/core-assets/skills/void-ticket/harness.yaml +14 -0
  298. package/core-assets/skills/void-typescript-strict/.source +10 -0
  299. package/core-assets/skills/void-typescript-strict/SKILL.md +294 -0
  300. package/core-assets/skills/void-typescript-strict/harness.yaml +17 -0
  301. package/core-assets/skills/void-ui-review/.source +12 -0
  302. package/core-assets/skills/void-ui-review/SKILL.md +97 -0
  303. package/core-assets/skills/void-ui-review/harness.yaml +15 -0
  304. package/core-assets/skills/void-verify/.source +12 -0
  305. package/core-assets/skills/void-verify/SKILL.md +184 -0
  306. package/core-assets/skills/void-verify/harness.yaml +15 -0
  307. package/core-assets/specialists/accessibility-specialist.source +11 -0
  308. package/core-assets/specialists/accessibility-specialist.yaml +30 -0
  309. package/core-assets/specialists/api-integration-engineer.source +11 -0
  310. package/core-assets/specialists/api-integration-engineer.yaml +30 -0
  311. package/core-assets/specialists/data-migration-engineer.source +11 -0
  312. package/core-assets/specialists/data-migration-engineer.yaml +30 -0
  313. package/core-assets/specialists/devex-docs-engineer.source +11 -0
  314. package/core-assets/specialists/devex-docs-engineer.yaml +29 -0
  315. package/core-assets/specialists/domain-architect.source +11 -0
  316. package/core-assets/specialists/domain-architect.yaml +28 -0
  317. package/core-assets/specialists/experience-designer.source +15 -0
  318. package/core-assets/specialists/experience-designer.yaml +38 -0
  319. package/core-assets/specialists/frontend-engineer.source +11 -0
  320. package/core-assets/specialists/frontend-engineer.yaml +32 -0
  321. package/core-assets/specialists/independent-code-reviewer.source +10 -0
  322. package/core-assets/specialists/independent-code-reviewer.yaml +38 -0
  323. package/core-assets/specialists/migrations.json +15 -0
  324. package/core-assets/specialists/observability-sre-engineer.source +11 -0
  325. package/core-assets/specialists/observability-sre-engineer.yaml +30 -0
  326. package/core-assets/specialists/pdf-specialist.source +11 -0
  327. package/core-assets/specialists/pdf-specialist.yaml +29 -0
  328. package/core-assets/specialists/performance-engineer.source +11 -0
  329. package/core-assets/specialists/performance-engineer.yaml +29 -0
  330. package/core-assets/specialists/product-challenger.source +10 -0
  331. package/core-assets/specialists/product-challenger.yaml +27 -0
  332. package/core-assets/specialists/security-engineer.source +13 -0
  333. package/core-assets/specialists/security-engineer.yaml +41 -0
  334. package/core-assets/specialists/solution-architect.source +13 -0
  335. package/core-assets/specialists/solution-architect.yaml +32 -0
  336. package/core-assets/specialists/test-qa-engineer.source +14 -0
  337. package/core-assets/specialists/test-qa-engineer.yaml +35 -0
  338. package/core-assets/specialists/visual-craft-director.source +17 -0
  339. package/core-assets/specialists/visual-craft-director.yaml +60 -0
  340. package/core-assets/templates/github/dependency-audit.mjs +54 -0
  341. package/core-assets/templates/github/void-dependency-audit.yml +35 -0
  342. package/core-assets/templates/github/void-security.yml +85 -0
  343. package/dist/main.js +70173 -0
  344. package/package.json +68 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VoidCorp / Florent Pellegrin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,124 @@
1
- # voidmachine
1
+ # `voidmachine`
2
2
 
3
- This name is reserved for [Void Machine](https://github.com/voidcorp-core/void-machine).
4
- Version 0.0.0 installs nothing. The first real release, 4.0.0, is published from CI with
5
- npm provenance.
3
+ CLI for the [void-machine](https://github.com/voidcorp-core/void-machine): register the marketplace, enable the `harness` core plugin plus the stack packs a project needs, and health-check the setup.
4
+
5
+ ## Quick start
6
+
7
+ ```bash
8
+ # In any project: register the marketplace, enable core + the packs you pick,
9
+ # scaffold .void/config.json, and patch CLAUDE.md / AGENTS.md.
10
+ cd my-project
11
+ npx voidmachine init # core only
12
+ npx voidmachine init --pack pack-nextjs --pack pack-monorepo
13
+
14
+ # Verify the setup (offline-friendly)
15
+ npx voidmachine doctor
16
+ ```
17
+
18
+ Pack names accept any form: `pack-nextjs`, `harness-nextjs`, or `nextjs`.
19
+
20
+ ## Commands
21
+
22
+ ### `cheatsheet`
23
+
24
+ Discover shipped skills, hooks, agents, specialist contracts and CLI commands,
25
+ with local installation evidence and invocation details.
26
+
27
+ ```bash
28
+ void-machine cheatsheet > cheatsheet.html
29
+ void-machine cheatsheet --format markdown > cheatsheet.md
30
+ void-machine cheatsheet --format json
31
+ ```
32
+
33
+ HTML is a self-contained offline document with catalogue, availability and intent
34
+ views, composable filters, selectable/copyable invocations and print styling.
35
+ The catalogue remains readable without JavaScript. No server, browser launch,
36
+ installation, status refresh or network request is performed by the command.
37
+
38
+ JSON schema version 1 contains `installation` and stable, sorted `entries` with
39
+ canonical `id`, `type`, `name`, `description`, `pack`, `runtimes`, `invocations`,
40
+ `triggers`, `relatedIds` and per-runtime `availability`. Specialist roles link to
41
+ their agent implementations; they are not two independent capabilities.
42
+ Availability distinguishes `installed`, `absent`, `disabled`, `inactive-pack`,
43
+ `unsupported` and `unknown`, always with a reason. Installed means a receipt-owned
44
+ asset matches, not that runtime execution was verified. No consumer content,
45
+ absolute machine paths or journals are exported. User-global settings and
46
+ marketplace caches are outside the snapshot; missing proof stays unknown.
47
+
48
+ Project Claude `skillOverrides: { "void-tdd": "off" }` is explicit disabled
49
+ evidence; local settings override project settings. Manual-only visibility is
50
+ not disabled. No Codex home configuration is read. Missing hook wiring is
51
+ reported as undeclared rather than inferred from the hook name.
52
+
53
+ Exit codes: `0` exported, `1` invalid/unavailable bundled catalogue, `2` invalid
54
+ arguments. Diagnostics go to stderr; a corrupt local install still exports the
55
+ global catalogue with unknown local availability.
56
+
57
+ ### `init`
58
+
59
+ Sets up the current project:
60
+
61
+ - Creates `.void/config.json` (pinned plugin versions, stack, paths, TDD modes)
62
+ - Registers the marketplace in `.claude/settings.json` and enables `harness` plus the chosen packs
63
+ - Patches `CLAUDE.md` / `AGENTS.md` (sister docs, cross-referenced)
64
+
65
+ ```
66
+ npx voidmachine init [--pack <name>...] [--all-packs] [--force]
67
+ ```
68
+
69
+ After `init`, restart Claude Code; skills appear as `/harness:<name>` and `/void-<pack>:<name>`.
70
+
71
+ ### `add` / `remove`
72
+
73
+ Enable or disable a pack on an already-initialized project (updates `.claude/settings.json` and `.void/config.json`).
74
+
75
+ ```
76
+ npx voidmachine add pack-nextjs
77
+ npx voidmachine remove pack-nextjs
78
+ ```
79
+
80
+ ### `doctor`
81
+
82
+ Health-check: `.void/config.json` validity, marketplace + plugins registered in `.claude/settings.json`, the CLAUDE.md block, `jq` (required by the hooks), and version drift against the marketplace HEAD. `--no-remote` runs fully offline. Exit `0` if all checks pass, `1` otherwise.
83
+
84
+ ```
85
+ npx voidmachine doctor [--no-remote]
86
+ ```
87
+
88
+ ### `list` / `check` / `update`
89
+
90
+ `list` shows packs and their detection status; `check` reports version drift; `update` refreshes pinned versions.
91
+
92
+ ### `decisions`
93
+
94
+ Creates, validates and projects ADRs without a shared counter or generated
95
+ index. Existing decision directories are preserved; new projects default to
96
+ `docs/decisions/`.
97
+
98
+ ```bash
99
+ npx voidmachine decisions new --title "Use X" --slug use-x
100
+ npx voidmachine decisions check [--base <git-ref>]
101
+ npx voidmachine decisions render --format markdown|json
102
+ ```
103
+
104
+ Accepted decision content is immutable. Reverse it with a new record and
105
+ `--supersedes <adr:id>`. A proven repository-local path substitution is the
106
+ only in-place exception; the new target must exist and the surrounding record
107
+ must remain unchanged. Rendered views expose both declared and effective status
108
+ and identify the records that supersede an older decision.
109
+
110
+ ### `install --global`
111
+
112
+ Escape hatch (rare): installs the `harness` plugin at the user-global level (`~/.claude-plugin/plugins/harness/`) instead of per-project. The recommended flow is `init`.
113
+
114
+ ```
115
+ npx voidmachine install --global [--dry-run]
116
+ ```
117
+
118
+ ### `help`
119
+
120
+ Print the command reference.
121
+
122
+ ## License
123
+
124
+ MIT.
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ // Entry point for the CLI. Every installed command is one of these files, named after the command
3
+ // it serves, so the CLI learns how it was invoked from the file name. The typed name never reaches
4
+ // the process: Node resolves the npm bin symlink to this file, and a Windows shim calls it directly.
5
+ import { basename } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { run } from '../dist/main.js';
8
+
9
+ run(basename(fileURLToPath(import.meta.url), '.mjs'), process.argv.slice(2)).catch((err) => {
10
+ console.error(err?.message ?? err);
11
+ process.exit(1);
12
+ });
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ // Entry point for the CLI. Every installed command is one of these files, named after the command
3
+ // it serves, so the CLI learns how it was invoked from the file name. The typed name never reaches
4
+ // the process: Node resolves the npm bin symlink to this file, and a Windows shim calls it directly.
5
+ import { basename } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { run } from '../dist/main.js';
8
+
9
+ run(basename(fileURLToPath(import.meta.url), '.mjs'), process.argv.slice(2)).catch((err) => {
10
+ console.error(err?.message ?? err);
11
+ process.exit(1);
12
+ });
@@ -0,0 +1,285 @@
1
+ {
2
+ "name": "harness",
3
+ "version": "5.0.0",
4
+ "description": "VoidCorp universal craftsman skills (void-tdd, void-typescript-strict, void-hexagonal-architecture, void-domain-driven-design, void-functional, void-code-review, void-api-and-interface-design, void-source-driven-development, void-context, void-learn, void-decide, void-claude-md, void-observability, void-security-guidance, ...) plus 12 PreToolUse enforcement hooks (tdd-guard, no-any, protect-sensitive-files, block-dangerous-bash, no-ai-design-slop, ...) and PostToolUse/SessionStart lifecycle hooks (incl. trim-large-output token frugality), five read-only critics including doctrine-critic, native architecture/security/QA specialists, and the void-graph, void-doctor and void-audit gestures, which are skills like everything else.",
5
+ "author": {
6
+ "name": "VoidCorp",
7
+ "email": "florent.pellegrin@voidcorp.io"
8
+ },
9
+ "homepage": "https://github.com/voidcorp-core/void-machine",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "voidcorp",
13
+ "craftsman",
14
+ "tdd",
15
+ "tigerstyle",
16
+ "harness"
17
+ ],
18
+ "hooks": {
19
+ "PreToolUse": [
20
+ {
21
+ "matcher": "Edit|Write",
22
+ "hooks": [
23
+ {
24
+ "type": "command",
25
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce tdd-order claude"
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "matcher": "Edit|Write",
31
+ "hooks": [
32
+ {
33
+ "type": "command",
34
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce no-any claude"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "matcher": "Edit|Write",
40
+ "hooks": [
41
+ {
42
+ "type": "command",
43
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce no-as-cast claude"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "matcher": "Edit|Write",
49
+ "hooks": [
50
+ {
51
+ "type": "command",
52
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce no-console claude"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "matcher": "Edit|Write",
58
+ "hooks": [
59
+ {
60
+ "type": "command",
61
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce no-null claude"
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "matcher": "Edit|Write",
67
+ "hooks": [
68
+ {
69
+ "type": "command",
70
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce control-character claude"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "matcher": "Edit|Write",
76
+ "hooks": [
77
+ {
78
+ "type": "command",
79
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce no-focused-test claude"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "matcher": "Edit|Write",
85
+ "hooks": [
86
+ {
87
+ "type": "command",
88
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce boundary-direction claude"
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "matcher": "Edit|Write",
94
+ "hooks": [
95
+ {
96
+ "type": "command",
97
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce test-name claude"
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "matcher": "Edit|Write",
103
+ "hooks": [
104
+ {
105
+ "type": "command",
106
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce protected-file claude"
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "matcher": "Bash",
112
+ "hooks": [
113
+ {
114
+ "type": "command",
115
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce dangerous-command claude"
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "matcher": "Edit|Write",
121
+ "hooks": [
122
+ {
123
+ "type": "command",
124
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce design-slop claude"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "matcher": "*",
130
+ "hooks": [
131
+ {
132
+ "type": "command",
133
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" activation claude"
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ "matcher": "Edit|Write",
139
+ "hooks": [
140
+ {
141
+ "type": "command",
142
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" enforce secret-content claude"
143
+ }
144
+ ]
145
+ }
146
+ ],
147
+ "PostToolUse": [
148
+ {
149
+ "matcher": "*",
150
+ "hooks": [
151
+ {
152
+ "type": "command",
153
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle context-continuity claude"
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ "matcher": "Edit|Write",
159
+ "hooks": [
160
+ {
161
+ "type": "command",
162
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle format claude"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "matcher": "*",
168
+ "hooks": [
169
+ {
170
+ "type": "command",
171
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle trim claude"
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ "matcher": "*",
177
+ "hooks": [
178
+ {
179
+ "type": "command",
180
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" outcome claude"
181
+ }
182
+ ]
183
+ }
184
+ ],
185
+ "PreCompact": [
186
+ {
187
+ "hooks": [
188
+ {
189
+ "type": "command",
190
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle context-continuity claude"
191
+ }
192
+ ]
193
+ }
194
+ ],
195
+ "SessionStart": [
196
+ {
197
+ "matcher": "startup|resume|clear|compact",
198
+ "hooks": [
199
+ {
200
+ "type": "command",
201
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle context-continuity claude"
202
+ }
203
+ ]
204
+ },
205
+ {
206
+ "hooks": [
207
+ {
208
+ "type": "command",
209
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle herdr-metadata claude"
210
+ }
211
+ ]
212
+ }
213
+ ],
214
+ "UserPromptSubmit": [
215
+ {
216
+ "hooks": [
217
+ {
218
+ "type": "command",
219
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle context-continuity claude"
220
+ }
221
+ ]
222
+ },
223
+ {
224
+ "hooks": [
225
+ {
226
+ "type": "command",
227
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle checkpoint-reminder claude"
228
+ }
229
+ ]
230
+ }
231
+ ],
232
+ "SessionEnd": [
233
+ {
234
+ "hooks": [
235
+ {
236
+ "type": "command",
237
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle checkpoint-audit claude"
238
+ }
239
+ ]
240
+ },
241
+ {
242
+ "hooks": [
243
+ {
244
+ "type": "command",
245
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle herdr-metadata claude"
246
+ }
247
+ ]
248
+ }
249
+ ],
250
+ "Stop": [
251
+ {
252
+ "hooks": [
253
+ {
254
+ "type": "command",
255
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" stop claude"
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "hooks": [
261
+ {
262
+ "type": "command",
263
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle typecheck claude"
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "hooks": [
269
+ {
270
+ "type": "command",
271
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle delegation-result claude"
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "hooks": [
277
+ {
278
+ "type": "command",
279
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/_void-hook.mjs\" lifecycle herdr-metadata claude"
280
+ }
281
+ ]
282
+ }
283
+ ]
284
+ }
285
+ }
File without changes