voidmachine 0.0.0 → 4.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 (341) 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 +253 -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 +61 -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 +157 -0
  38. package/core-assets/contract-history/visual-craft-director/v2.yaml +43 -0
  39. package/core-assets/data/catalog.v3.json +10479 -0
  40. package/core-assets/data/certification.json +1800 -0
  41. package/core-assets/data/identity.json +8 -0
  42. package/core-assets/data/model.json +4226 -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 +5459 -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 +358 -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 +271 -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 +167 -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 +183 -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-plan/.source +15 -0
  263. package/core-assets/skills/void-plan/SKILL.md +239 -0
  264. package/core-assets/skills/void-plan/harness.yaml +14 -0
  265. package/core-assets/skills/void-plan-review/.source +12 -0
  266. package/core-assets/skills/void-plan-review/SKILL.md +128 -0
  267. package/core-assets/skills/void-plan-review/harness.yaml +15 -0
  268. package/core-assets/skills/void-qa/.source +15 -0
  269. package/core-assets/skills/void-qa/SKILL.md +103 -0
  270. package/core-assets/skills/void-qa/harness.yaml +15 -0
  271. package/core-assets/skills/void-refactor/.source +9 -0
  272. package/core-assets/skills/void-refactor/SKILL.md +220 -0
  273. package/core-assets/skills/void-refactor/harness.yaml +15 -0
  274. package/core-assets/skills/void-retrospective/.source +9 -0
  275. package/core-assets/skills/void-retrospective/SKILL.md +71 -0
  276. package/core-assets/skills/void-retrospective/harness.yaml +15 -0
  277. package/core-assets/skills/void-security-audit/.source +12 -0
  278. package/core-assets/skills/void-security-audit/SKILL.md +138 -0
  279. package/core-assets/skills/void-security-audit/harness.yaml +15 -0
  280. package/core-assets/skills/void-security-guidance/.source +12 -0
  281. package/core-assets/skills/void-security-guidance/SKILL.md +255 -0
  282. package/core-assets/skills/void-security-guidance/harness.yaml +15 -0
  283. package/core-assets/skills/void-source-driven-development/.source +12 -0
  284. package/core-assets/skills/void-source-driven-development/SKILL.md +158 -0
  285. package/core-assets/skills/void-source-driven-development/harness.yaml +15 -0
  286. package/core-assets/skills/void-tdd/.source +15 -0
  287. package/core-assets/skills/void-tdd/SKILL.md +394 -0
  288. package/core-assets/skills/void-tdd/harness.yaml +15 -0
  289. package/core-assets/skills/void-testing/.source +19 -0
  290. package/core-assets/skills/void-testing/SKILL.md +301 -0
  291. package/core-assets/skills/void-testing/harness.yaml +17 -0
  292. package/core-assets/skills/void-ticket/.source +18 -0
  293. package/core-assets/skills/void-ticket/SKILL.md +239 -0
  294. package/core-assets/skills/void-ticket/harness.yaml +14 -0
  295. package/core-assets/skills/void-typescript-strict/.source +10 -0
  296. package/core-assets/skills/void-typescript-strict/SKILL.md +294 -0
  297. package/core-assets/skills/void-typescript-strict/harness.yaml +17 -0
  298. package/core-assets/skills/void-ui-review/.source +12 -0
  299. package/core-assets/skills/void-ui-review/SKILL.md +97 -0
  300. package/core-assets/skills/void-ui-review/harness.yaml +15 -0
  301. package/core-assets/skills/void-verify/.source +12 -0
  302. package/core-assets/skills/void-verify/SKILL.md +184 -0
  303. package/core-assets/skills/void-verify/harness.yaml +15 -0
  304. package/core-assets/specialists/accessibility-specialist.source +11 -0
  305. package/core-assets/specialists/accessibility-specialist.yaml +30 -0
  306. package/core-assets/specialists/api-integration-engineer.source +11 -0
  307. package/core-assets/specialists/api-integration-engineer.yaml +30 -0
  308. package/core-assets/specialists/data-migration-engineer.source +11 -0
  309. package/core-assets/specialists/data-migration-engineer.yaml +30 -0
  310. package/core-assets/specialists/devex-docs-engineer.source +11 -0
  311. package/core-assets/specialists/devex-docs-engineer.yaml +29 -0
  312. package/core-assets/specialists/domain-architect.source +11 -0
  313. package/core-assets/specialists/domain-architect.yaml +28 -0
  314. package/core-assets/specialists/experience-designer.source +15 -0
  315. package/core-assets/specialists/experience-designer.yaml +38 -0
  316. package/core-assets/specialists/frontend-engineer.source +11 -0
  317. package/core-assets/specialists/frontend-engineer.yaml +32 -0
  318. package/core-assets/specialists/independent-code-reviewer.source +10 -0
  319. package/core-assets/specialists/independent-code-reviewer.yaml +37 -0
  320. package/core-assets/specialists/migrations.json +15 -0
  321. package/core-assets/specialists/observability-sre-engineer.source +11 -0
  322. package/core-assets/specialists/observability-sre-engineer.yaml +30 -0
  323. package/core-assets/specialists/pdf-specialist.source +11 -0
  324. package/core-assets/specialists/pdf-specialist.yaml +29 -0
  325. package/core-assets/specialists/performance-engineer.source +11 -0
  326. package/core-assets/specialists/performance-engineer.yaml +29 -0
  327. package/core-assets/specialists/product-challenger.source +10 -0
  328. package/core-assets/specialists/product-challenger.yaml +27 -0
  329. package/core-assets/specialists/security-engineer.source +13 -0
  330. package/core-assets/specialists/security-engineer.yaml +41 -0
  331. package/core-assets/specialists/solution-architect.source +13 -0
  332. package/core-assets/specialists/solution-architect.yaml +32 -0
  333. package/core-assets/specialists/test-qa-engineer.source +14 -0
  334. package/core-assets/specialists/test-qa-engineer.yaml +35 -0
  335. package/core-assets/specialists/visual-craft-director.source +17 -0
  336. package/core-assets/specialists/visual-craft-director.yaml +60 -0
  337. package/core-assets/templates/github/dependency-audit.mjs +54 -0
  338. package/core-assets/templates/github/void-dependency-audit.yml +35 -0
  339. package/core-assets/templates/github/void-security.yml +85 -0
  340. package/dist/main.js +57001 -0
  341. package/package.json +66 -4
@@ -0,0 +1,14 @@
1
+ Sources:
2
+ - ISTQB Certified Tester Foundation Level syllabus 4.0.1: https://istqb.org/wp-content/uploads/2024/11/ISTQB_CTFL_Syllabus_v4.0.1.pdf
3
+ - ISTQB CTFL 4.0 release notes: https://www.istqb.org/istqb-releases-certified-tester-foundation-level-v4-0-ctfl/
4
+ - Claude Code subagents: https://code.claude.com/docs/en/sub-agents
5
+ - Codex custom agents: https://learn.chatgpt.com/docs/agent-configuration/subagents
6
+
7
+ Adapted:
8
+ - Kept test-basis traceability, risk focus, meaningful evidence, and defect-versus-missing-proof separation.
9
+ - Narrowed the role to review and release evidence for one ticket or diff.
10
+ - Added the shared Void specialist identity, budget, failure, and JSON output contract.
11
+
12
+ Rejected:
13
+ - Certification vocabulary, process ceremony, test implementation, and release authority.
14
+ - Architecture, security, product, and visual-design ownership.
@@ -0,0 +1,35 @@
1
+ schemaVersion: 1
2
+ id: core:test-qa-engineer
3
+ version: 2
4
+ name: test-qa-engineer
5
+ description: Reviews behavioral coverage, failure paths, and release evidence without editing the project.
6
+ scope: quality
7
+ independence: fresh-context
8
+ writeAccess: none
9
+ stages: [pre-implementation, post-implementation]
10
+ appliesWhen:
11
+ any:
12
+ - qa-baseline
13
+ - qa
14
+ - tdd
15
+ - code-change
16
+ inputs:
17
+ - ticket
18
+ - acceptance-criteria
19
+ - diff
20
+ - tests
21
+ - verification-evidence
22
+ outputs:
23
+ - verdict
24
+ - findings
25
+ - evidenceRequests
26
+ - limitations
27
+ budgets:
28
+ contextTokens: 12000
29
+ maxTurns: 2
30
+ failurePolicy: block-on-critical
31
+ instructions: >-
32
+ Own acceptance-criteria coverage, meaningful assertions, failure paths, regression risk, flakiness,
33
+ and release evidence. Distinguish missing proof from a proven defect and request the smallest useful
34
+ verification. Do not perform architecture, security, product, or visual-design review and never edit
35
+ tests or implementation.
@@ -0,0 +1,17 @@
1
+ Sources:
2
+ - W3C Web Content Accessibility Guidelines 2.2: https://www.w3.org/TR/WCAG22/
3
+ - Apple Human Interface Guidelines, Visual design: https://developer.apple.com/design/human-interface-guidelines/visual-design
4
+ - Playwright visual comparisons: https://playwright.dev/docs/test-snapshots
5
+ - Vercel agent skills, frontend-design: https://github.com/vercel-labs/agent-skills
6
+ - Claude Code subagents: https://code.claude.com/docs/en/sub-agents
7
+ - Codex custom agents: https://learn.chatgpt.com/docs/agent-configuration/subagents
8
+
9
+ Adapted:
10
+ - Kept evidence-grounded responsive, state, hierarchy, contrast, keyboard, and visual-distinctiveness review.
11
+ - Added a six-dimension 8/10 floor and current-diff binding for every screenshot and test proof.
12
+ - Split post-build judgment from build-time design and live browser operation to preserve fresh context and one-role scope.
13
+ - DEV-843: retained conservative selection while requiring revision-bound rendered-scope assessment before capture obligations; a guidance-only N/A completes scope assessment, not visual certification.
14
+
15
+ Rejected:
16
+ - LLM-only visual certification, self-authored screenshots, brand invention, implementation, browser driving, functional QA, and architecture or security review.
17
+ - Snapshot approval without current diff identity and applicable state coverage.
@@ -0,0 +1,60 @@
1
+ schemaVersion: 1
2
+ id: core:visual-craft-director
3
+ version: 3
4
+ name: visual-craft-director
5
+ description: Independently reviews rendered UI craft, responsive states, accessibility, and current-diff visual evidence after implementation.
6
+ scope: visual-craft
7
+ independence: fresh-context
8
+ writeAccess: none
9
+ stages: [post-implementation]
10
+ appliesWhen:
11
+ any:
12
+ - ux-ui
13
+ - frontend-change
14
+ - profile-react
15
+ - profile-expo
16
+ inputs:
17
+ - ticket
18
+ - acceptance-criteria
19
+ - design-contract
20
+ - current-diff
21
+ - mobile-screenshots
22
+ - desktop-screenshots
23
+ - state-evidence
24
+ - test-evidence
25
+ outputs:
26
+ - verdict
27
+ - findings
28
+ - evidenceRequests
29
+ - limitations
30
+ budgets:
31
+ contextTokens: 16000
32
+ maxTurns: 3
33
+ failurePolicy: block-on-critical
34
+ instructions: >-
35
+ Own the post-implementation visual-craft verdict in a context distinct from the builder and
36
+ pre-build designer. Selection by a UI subject, frontend profile, or changed path requests a
37
+ scope assessment; it does not establish that a rendered interface changed. First establish
38
+ applicability from the complete relevant current diff, touched paths, and supplied artifacts.
39
+ Inspect behavior, including templates and renderers in arbitrary source files, not extensions
40
+ alone. Mixed guidance and rendered-UI changes require visual review. An empty pre-implementation
41
+ diff does not prove non-applicability when UI work is planned.
42
+ If the complete relevant post-implementation evidence establishes that no rendered interface
43
+ changed, return pass with an explicit "Rendered-UI review not applicable" explanation in
44
+ limitations, naming the inspected paths and why their changes do not affect a rendered surface.
45
+ This completes the scope assessment, not visual certification: do not invent craft scores,
46
+ screenshots, or claims of visual quality. Guidance about UI and a frontend profile alone do not
47
+ require captures.
48
+ Resolve relevant omissions through permitted exact-path reads only when their content is
49
+ demonstrably bound to the reviewed revision and canonical review receipt. A SHA label alone is
50
+ insufficient. Explain why an unresolved omission is irrelevant before excluding it; missing,
51
+ truncated, stale, or unbound relevant evidence requires blocked with an evidence request.
52
+ When rendered UI changes, review current-diff mobile and desktop captures for every applicable state.
53
+ Score hierarchy, information architecture, interaction states, responsive intent,
54
+ distinctiveness, and accessibility from 0 to 10; any dimension below 8 requires changes.
55
+ Reject generic generated-UI reflexes and ground every finding in a supplied screenshot or
56
+ repository path. For applicable visual review, missing browser access, missing viewport or state
57
+ captures, captures not tied to the current diff, or absent behavioral test proof requires a
58
+ blocked verdict. Do not certify visual quality from
59
+ prose or model judgment alone, invent brand identity, edit code, drive the browser, or perform
60
+ architecture, security, and functional QA review.
@@ -0,0 +1,54 @@
1
+ // Bun 1.3.14: exit 1 means either advisories or a failed registry request.
2
+ // Interpret only a recognized JSON response; ambiguous output never passes.
3
+ import { spawnSync } from 'node:child_process';
4
+ import { appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+
7
+ const scope = 'npm advisories for packages Bun 1.3.14 sends to its default registry';
8
+ const severities = new Set(['info', 'low', 'moderate', 'high', 'critical']);
9
+ const object = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
10
+ const advisory = (value) => object(value)
11
+ && (typeof value.id === 'number' || typeof value.id === 'string')
12
+ && ['url', 'title', 'vulnerable_versions'].every((key) => typeof value[key] === 'string' && value[key].length > 0)
13
+ && severities.has(value.severity);
14
+
15
+ function classify(result) {
16
+ if (result.error || result.signal || ![0, 1].includes(result.status)) {
17
+ return { state: 'unavailable', exitCode: 2, reason: 'audit-process-failed' };
18
+ }
19
+ let response;
20
+ try {
21
+ response = JSON.parse(result.stdout);
22
+ } catch {
23
+ return { state: 'unavailable', exitCode: 2, reason: 'invalid-registry-json' };
24
+ }
25
+ if (object(response)) {
26
+ const entries = Object.entries(response);
27
+ if (entries.length === 0 && result.status === 0) {
28
+ return { state: 'clean', exitCode: 0, reason: 'no-advisories-in-response' };
29
+ }
30
+ if (entries.length > 0 && entries.every(([name, values]) => name.length > 0
31
+ && Array.isArray(values) && values.length > 0 && values.every(advisory))) {
32
+ return { state: 'vulnerabilities', exitCode: 1, reason: 'advisories-returned', advisories: response };
33
+ }
34
+ }
35
+ return { state: 'unavailable', exitCode: 2, reason: 'unrecognized-registry-response' };
36
+ }
37
+
38
+ if (process.argv.length !== 3) {
39
+ process.stderr.write('Usage: node dependency-audit.mjs <report-directory>\n');
40
+ process.exitCode = 2;
41
+ } else {
42
+ const result = spawnSync('bun', ['audit', '--json'], {
43
+ encoding: 'utf8', shell: false, timeout: 120_000, maxBuffer: 1_048_576,
44
+ });
45
+ const report = { schemaVersion: 1, scope, ...classify(result) };
46
+ const directory = process.argv[2];
47
+ mkdirSync(directory, { recursive: true });
48
+ writeFileSync(join(directory, 'result.json'), `${JSON.stringify(report, null, 2)}\n`);
49
+ const summary = `## Dependency audit: ${report.state}\n\nScope: ${scope}.\n\nReason: ${report.reason}. Exit code: ${report.exitCode}.\n\nUnavailability is not a clean audit. This result does not certify dependencies outside the stated scope.\n`;
50
+ writeFileSync(join(directory, 'summary.md'), summary);
51
+ if (process.env.GITHUB_STEP_SUMMARY) appendFileSync(process.env.GITHUB_STEP_SUMMARY, summary);
52
+ process.stdout.write(summary);
53
+ process.exitCode = report.exitCode;
54
+ }
@@ -0,0 +1,35 @@
1
+ # Manual consumer template: copy this workflow and its companion script.
2
+ # See docs/DEPENDENCY-AUDIT.md before adopting; no consumer CI is overwritten.
3
+ name: void-dependency-audit
4
+
5
+ on:
6
+ push:
7
+ branches: [main]
8
+ pull_request:
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ jobs:
15
+ dependency-audit:
16
+ runs-on: ubuntu-latest
17
+ timeout-minutes: 10
18
+ steps:
19
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
20
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
21
+ with:
22
+ node-version: 24
23
+ - uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2.0.2
24
+ with:
25
+ bun-version: 1.3.14
26
+ - name: Classify dependency audit
27
+ run: node .github/scripts/dependency-audit.mjs "$RUNNER_TEMP/dependency-audit"
28
+ - name: Preserve audit report
29
+ if: always()
30
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
31
+ with:
32
+ name: dependency-audit
33
+ path: ${{ runner.temp }}/dependency-audit
34
+ if-no-files-found: error
35
+ retention-days: 7
@@ -0,0 +1,85 @@
1
+ # Periodic security baseline.
2
+ #
3
+ # Copy into `.github/workflows/` and adjust the schedule. Nothing here depends
4
+ # on a security vendor: the baseline runs whatever scanners the runner happens
5
+ # to have, names the ones it did not find, and reports the surface it could not
6
+ # measure as degraded or blocked — never green.
7
+ #
8
+ # That is the point of running it with no scanner installed at all: the result
9
+ # is honest about measuring almost nothing, instead of a green tick that means
10
+ # "we did not look".
11
+ #
12
+ # Third-party actions are pinned by commit SHA, with the tag in a comment. A
13
+ # mutable tag is a supply-chain hole: whoever controls it controls what runs
14
+ # with your token.
15
+ name: void-security
16
+
17
+ on:
18
+ schedule:
19
+ # Weekly, Monday 04:17 UTC. Change this to whatever cadence you can act on:
20
+ # a scan nobody reads on Monday morning is a scan that is not being run.
21
+ # Avoid the top of the hour — GitHub queues those the heaviest.
22
+ - cron: '17 4 * * 1'
23
+ workflow_dispatch:
24
+ inputs:
25
+ mode:
26
+ description: Mission mode to judge findings against
27
+ required: false
28
+ default: team
29
+ type: choice
30
+ options: [fast, team, fortress]
31
+ prelaunch:
32
+ description: Hold the run to the stricter pre-launch bar
33
+ required: false
34
+ default: false
35
+ type: boolean
36
+
37
+ permissions:
38
+ contents: read
39
+
40
+ jobs:
41
+ baseline:
42
+ runs-on: ubuntu-latest
43
+ # A scan that hangs must not hold a runner all day.
44
+ timeout-minutes: 30
45
+ steps:
46
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
47
+ with:
48
+ # `dir` scanning reads the working tree, so no history is needed. A
49
+ # full-history secret audit is its own job — see the note at the end.
50
+ fetch-depth: 1
51
+
52
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
53
+ with:
54
+ node-version: 22
55
+
56
+ # Optional. Delete either line and the baseline still runs; it will name
57
+ # the missing tool and refuse to call the result complete.
58
+ #
59
+ # Both are installed from their own release channel rather than through a
60
+ # marketplace action, so nothing third-party runs with this job's token.
61
+ - name: Install optional scanners
62
+ run: |
63
+ set -euo pipefail
64
+ python3 -m pip install --quiet semgrep
65
+ curl -sSfL https://raw.githubusercontent.com/gitleaks/gitleaks/master/scripts/install.sh | sh -s -- -b "$RUNNER_TEMP/bin"
66
+ echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
67
+
68
+ - name: Security baseline
69
+ run: >
70
+ npx --yes voidmachine security scan
71
+ --mode ${{ inputs.mode || 'team' }}
72
+ ${{ inputs.prelaunch && '--prelaunch' || '' }}
73
+ --json
74
+ # The scan exits non-zero when the verdict is `blocked`, which fails this job.
75
+ # That is deliberate: a scan that errored or could not reach its required proof
76
+ # has not told you the code is fine, only that nobody looked properly.
77
+ #
78
+ # Not covered here, on purpose:
79
+ #
80
+ # - A DAST run needs `--target` and an authorization naming the host, its
81
+ # authorizer and an expiry. It belongs in a workflow of its own, against an
82
+ # ephemeral environment, and never on a schedule that outlives the grant.
83
+ # - Auditing the full git history for secrets is a separate, slower job:
84
+ # `gitleaks git` walks every commit, which costs minutes to re-answer a
85
+ # question that only changes at the tip.