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,15 @@
1
+ # Harness metadata for this skill. Not part of the Agent Skills
2
+ # specification, and never copied into a consumer project: the SKILL.md
3
+ # beside it stays portable and validates against the official six fields.
4
+ # Read by this repository's graph, and by the installer for `runtimes`.
5
+ kind: standard
6
+ activation: always
7
+ owner: folpe
8
+ runtimes: [claude, codex]
9
+ enforcement:
10
+ floor: ci
11
+ inline:
12
+ claude: pretooluse
13
+ codex: pretooluse
14
+ hermes: ci-only
15
+ eval_targets: [claude/anthropic/opus]
@@ -0,0 +1,15 @@
1
+ Sources for `void-plan` skill (see `docs/plans/skill-audits/void-plan.md` for full audit):
2
+
3
+ - superpowers/plan — primary source. Used to ship Phase A–C of this very harness.
4
+ - superpowers/executing-plans — KEEP EXTERNAL. Plans transition to it. No improvement vector identified.
5
+ - superpowers/subagent-driven-development — reference for parallelizable plans.
6
+ - citypaul plan templates — sectioning style, numbered steps with verification gates.
7
+ - plan-review — composed for high-risk plans (post-write review via CEO/Eng/Design/DevEx lenses; was gstack /autoplan, vendored in DEV-385).
8
+ - gstack /spec — VENDORED (DEV-388, the planning half): the executability gate (an unfamiliar implementer/agent could execute with zero follow-up questions) + MVP-cut-first. The precision/grounding half went to brainstorm.
9
+
10
+ Strategy: distill. Three deliberate changes from superpowers:
11
+ 1. TDD mode per step (declared inline)
12
+ 2. Resume point is first-class (every plan has one)
13
+ 3. Verification gates between steps map explicitly to hooks
14
+
15
+ No companion hooks; the discipline is in the plan structure + downstream composition.
@@ -0,0 +1,239 @@
1
+ ---
2
+ name: void-plan
3
+ description: Turn an approved spec into vertical slices with dependencies, TDD mode, verification gates, checkpoints, and a tracker handoff. Use after brainstorm approves a spec.
4
+ ---
5
+
6
+ # plan — voidcorp craftsman edition
7
+
8
+ The spec answers "what should we build." This skill answers "in what order, with what gates, and how later sessions recover the work." Plans live on disk. Every implementation step declares its TDD mode. Verification gates between steps prevent regressions.
9
+
10
+ **Attribution**: see `.source`. Primary source: superpowers/plan, adapted for void-machine.
11
+
12
+ ---
13
+
14
+ ## When to invoke
15
+
16
+ Invoke immediately after `void-brainstorm` approves a spec. The plan is the next deliverable before any code.
17
+
18
+ **A `source: forge` spec is a ready spec.** When `docs/specs/YYYY-MM-DD-<slug>.md` carries `source: forge` in its frontmatter (the forge→harness artifact contract), consume it **directly** — it already holds the 18 recon variables, the winning design, and the critique verdict, so `void-brainstorm` need not have run. Plan from it as-is; if it is partial (missing critique, or a field absent in an older `forge_version`), plan around the holes and flag them as the first open decisions rather than re-deriving the whole thing.
19
+
20
+ Do NOT invoke without an approved spec. If you find yourself wanting to plan without a spec, that means brainstorm was skipped — go back.
21
+
22
+ ---
23
+
24
+ ## Plan structure
25
+
26
+ A plan is a markdown file at `docs/plans/YYYY-MM-DD-<topic>-plan.md`. Frontmatter:
27
+
28
+ ```yaml
29
+ ---
30
+ title: <topic>
31
+ date: YYYY-MM-DD
32
+ status: in-progress # in-progress → executing → done
33
+ spec: docs/specs/YYYY-MM-DD-<topic>.md
34
+ ticket: <tracker id, once `void-ticket` has created it; leave empty until then>
35
+ author: <user> + Claude/Codex
36
+ high_risk: false # set true if the plan touches payment, auth, prod data migration, security-sensitive code → triggers plan-review recommendation
37
+ ---
38
+ ```
39
+
40
+ Then sections:
41
+
42
+ 1. **Goal** — one paragraph from the spec
43
+ 2. **Steps** — numbered, each with the structure below
44
+ 3. **Review checkpoints** — explicit points where the user reviews work-to-date
45
+ 4. **Execution handoff** — dependency/order table for tracker-backed programs, or a resume point for a standalone sequential plan
46
+
47
+ ---
48
+
49
+ ## Step structure
50
+
51
+ Each implementation step has this shape:
52
+
53
+ ```markdown
54
+ ### Step N — <imperative subject>
55
+
56
+ - **Goal**: <one sentence>
57
+ - **Depends on**: [step-3, step-5] (or "none")
58
+ - **TDD mode**: strict | souple | exploratory
59
+ - **Verification gate**: <what must pass before moving to step N+1>
60
+ - **Expected commits**:
61
+ - `test: <reproducing or new behavior>`
62
+ - `feat: <implementation>` (or `fix:` / `refactor:` per `void-commit-discipline`)
63
+ - **Notes**: <constraints, gotchas, hook implications>
64
+ ```
65
+
66
+ ### TDD mode declaration
67
+
68
+ Every implementation step states its mode. Examples:
69
+
70
+ - **strict** — new business behavior, hotfix on payment surface, refactor that changes payment behavior
71
+ - **souple** — glue at integration boundary covered by higher-level test, framework wiring
72
+ - **exploratory** — spike, POC, throwaway script
73
+
74
+ The declared mode flows into `tdd-guard` enforcement at execution time. If mode is missing, the plan is incomplete.
75
+
76
+ ### Verification gate
77
+
78
+ Each step's gate states which checks must pass before moving on. Examples:
79
+
80
+ - `tsc --noEmit && vitest run --filter checkoutCart`
81
+ - `pre-commit hooks dry-run on staged set` (composes with `tdd-guard`, `tigerstyle-check`, `no-any-grep`, etc.)
82
+ - `mutation testing score ≥ 90%` (strict mode steps with critical surface)
83
+
84
+ The gate is observable. The user sees the output before the next step begins.
85
+
86
+ ---
87
+
88
+ ## Vertical slices over horizontal phases
89
+
90
+ Slice the plan into **vertical tranches** that cut through every layer (UI → domain → persistence) and deliver one end-to-end testable behavior. Do NOT phase horizontally — "first the whole schema, then the whole API, then the whole UI."
91
+
92
+ Why vertical wins:
93
+
94
+ - A vertical slice is verifiable and mergeable on its own: it produces working, demonstrable value at each step.
95
+ - Horizontal phasing accumulates undeliverable work and hides integration errors until the final wiring step, exactly when they are most expensive to fix.
96
+ - Each slice exercises the seams between layers early, so contract mismatches surface in step 1, not step 8.
97
+
98
+ Prefer "checkout one item, end to end" then "checkout many items" over "all models, then all ports, then all UI." Each step in the plan should name the thin slice it ships.
99
+
100
+ **MVP-cut first** (vendored from gstack `/spec`): the first slice is the smallest version that delivers real value — name it explicitly, and defer everything not required to prove that value. The plan grows from a shipping core, not toward one.
101
+
102
+ ---
103
+
104
+ ## Review checkpoints
105
+
106
+ For non-trivial plans (≥ 5 steps), declare 1–2 explicit checkpoints where the user reviews work-to-date.
107
+
108
+ ```markdown
109
+ ### Checkpoint A — after Step 4
110
+
111
+ User reviews the domain layer (Steps 1–4) before proceeding to the adapters layer.
112
+
113
+ Stop here. Run `void-verify`. Wait for user signal to proceed.
114
+ ```
115
+
116
+ Checkpoints prevent "I shipped 10 steps before you noticed step 3 was wrong."
117
+
118
+ ---
119
+
120
+ ## Resume point
121
+
122
+ Use this only for a standalone sequential plan that is not decomposed into tracker tickets. The execution skill updates it as steps complete. Format:
123
+
124
+ ```markdown
125
+ ## Resume point
126
+
127
+ **Next step**: Step 5 (Implement Stripe adapter)
128
+
129
+ **Completed**:
130
+ - ✅ Step 1: Domain models (commit `feat: domain Order + LineItem + Money`)
131
+ - ✅ Step 2: OrdersPort interface (commit `feat: OrdersPort port interface`)
132
+ - ✅ Step 3: In-memory adapter (commit `feat: in-memory OrdersAdapter for tests`)
133
+ - ✅ Step 4: checkoutCart use-case (commits `test:` + `feat:`)
134
+
135
+ **Pending**:
136
+ - ⏳ Step 5: Stripe adapter
137
+ - ⏳ Step 6: Server Action boundary
138
+ - ⏳ Step 7: UI Server Component
139
+ - ⏳ Step 8: E2E happy-path test
140
+ ```
141
+
142
+ The next session reads the resume point and continues.
143
+
144
+ For a provider-backed multi-unit programme, do not maintain a second mutable next-step pointer in
145
+ the plan. Instead, add a final `Execution handoff` table that gives each plan unit a stable order
146
+ key, title, dependency keys, estimate, and human-gate flag. After `void-ticket` creates the native
147
+ units and dependency relations, it installs `.void/program.md`; the declared progress provider
148
+ then owns current state and readiness.
149
+
150
+ ---
151
+
152
+ ## Plan self-review
153
+
154
+ After writing the plan, scan for:
155
+
156
+ 1. **Placeholders** — any TBD / TODO / vague steps? Fix.
157
+ 2. **Missing verification gates** — every step has one? Fix.
158
+ 3. **Missing TDD mode** — every implementation step declares one? Fix.
159
+ 4. **Unrealistic dependencies** — does step N actually need step N-1, or could they parallelize?
160
+ 5. **Missing execution handoff** — a standalone plan has a correct resume point; a tracker-backed program has the complete stable order/dependency table?
161
+ 6. **Frontmatter `spec:`** — links back to the approved spec?
162
+ 7. **Executability gate** (vendored from gstack `/spec`) — could an *unfamiliar* implementer or agent execute this plan with **zero follow-up questions**? Walk one step as if you'd never seen the codebase: is every file named, every metric quantified, every acceptance criterion observable? Any "figure it out at implementation time" is an ambiguity to resolve now.
163
+
164
+ Fix inline. Then user-review gate.
165
+
166
+ ---
167
+
168
+ ## User-review gate
169
+
170
+ Ask the user to review the plan before execution begins:
171
+
172
+ > "Plan written and committed to `docs/plans/<file>.md`. Please review and let me know if you want changes before we start executing."
173
+
174
+ Wait for response. If changes requested, make them and re-run self-review.
175
+
176
+ ---
177
+
178
+ ## Transition to execution
179
+
180
+ After plan approval, transition to:
181
+
182
+ - **`void-ticket`** when the plan becomes multiple provider-native units. It writes native dependencies and the programme descriptor after the pool is approved.
183
+ - **`void-implement`** for a named single ticket or standalone implementation unit.
184
+ - **`void-autopilot`** only when the user requests its attended independent-ticket flow.
185
+
186
+ For a provider-backed programme, later sessions recover work through `.void/program.md` and the
187
+ declared progress adapter; they do not mutate the plan or checkpoint to repoint the next unit.
188
+
189
+ ---
190
+
191
+ ## High-risk plans — plan-review recommendation
192
+
193
+ If `high_risk: true` in the frontmatter, recommend running `void-plan-review` (the `all` mode) after the plan is written but before execution begins.
194
+
195
+ `void-plan-review` critiques the plan through CEO / Eng / Design / DevEx lenses, auto-decides the mechanical calls and surfaces the taste calls for the user. It catches issues brainstorm may have missed. It proposes findings; this skill's author folds them in.
196
+
197
+ Set `high_risk: true` when the plan touches:
198
+
199
+ - Payment / billing surface
200
+ - Authentication / authorization changes
201
+ - Production data migration (composes with `void-migrations`)
202
+ - Security-sensitive code (secrets, auth tokens, PII)
203
+ - LLM call sites with user-controlled input (composes with `void-security-guidance` LLM section)
204
+
205
+ ---
206
+
207
+ ## Composition with other skills
208
+
209
+ - **Upstream — `void-brainstorm`**: the approved spec is the input.
210
+ - **Downstream — `void-ticket`**: converts a multi-ticket plan into native tracker items and installs its active handoff.
211
+ - **Downstream — `void-implement`**: executes one complete ticket and maintains its tracker lifecycle.
212
+ - **With `void-autopilot`**: drains independent ready tickets only through its attended flow.
213
+ - **With `void-tdd`**: per-step mode selection lives in the plan.
214
+ - **With `void-code-review`**: review checkpoints declared in the plan are honored.
215
+ - **With `void-verify`**: the plan's "Done" criteria feed the completion checklist.
216
+ - **With `void-plan-review`**: optional multi-lens review for high-risk plans (downstream of this skill, upstream of implementation).
217
+ - **With `void-commit-discipline`**: each step states the expected conventional-commit message.
218
+
219
+ ---
220
+
221
+ ## Anti-rules
222
+
223
+ - MUST NOT plan without an approved spec.
224
+ - MUST NOT skip TDD mode declaration per implementation step.
225
+ - MUST NOT skip verification gates per step.
226
+ - MUST NOT omit the applicable execution handoff: resume point for standalone work, tracker table for a multi-ticket program.
227
+ - MUST NOT skip the spec link in frontmatter.
228
+ - MUST NOT execute the plan (downstream skills do that).
229
+
230
+ ---
231
+
232
+ ## Final rule
233
+
234
+ ```
235
+ Approved spec → plan written → self-review → user approves → ticket or implement.
236
+ Otherwise → it is not voidcorp plan.
237
+ ```
238
+
239
+ The plan is the contract between sessions and between agent and user. Make it explicit.
@@ -0,0 +1,14 @@
1
+ # Harness metadata for this skill. Not part of the Agent Skills
2
+ # specification, and never copied into a consumer project: the SKILL.md
3
+ # beside it stays portable and validates against the official six fields.
4
+ # Read by this repository's graph, and by the installer for `runtimes`.
5
+ kind: action
6
+ owner: folpe
7
+ runtimes: [claude, codex]
8
+ enforcement:
9
+ floor: ci
10
+ inline:
11
+ claude: active
12
+ codex: active
13
+ hermes: ci-only
14
+ eval_targets: [claude/anthropic/opus]
@@ -0,0 +1,12 @@
1
+ Sources for `void-plan-review` skill (see `docs/plans/skill-audits/void-plan-review.md` for full audit):
2
+
3
+ - gstack /plan-ceo-review (1434 LOC + sections) — the CEO lens: premise/leverage/trajectory challenge, mandatory weighted alternatives, and the four scope modes (EXPANSION/SELECTIVE/HOLD/REDUCTION). The EXPANSION mode is the plan-level "10x" move.
4
+ - gstack /plan-eng-review (990 LOC + sections) — the Eng lens: architecture soundness, four-data-path failure modes, the deep test-coverage trace + regression-iron-rule + coverage map, performance.
5
+ - gstack /plan-design-review (1455 LOC + sections) — the Design lens: IA hierarchy, interaction-state coverage, journey/emotional arc, AI-slop classifier, responsive/a11y.
6
+ - gstack /plan-devex-review (1418 LOC + sections) — the DevEx lens: developer journey, time-to-first-value (TTHW) vs competitors, error-message quality, docs, upgrade path.
7
+ - gstack /autoplan (1810 LOC) — distilled into the `all` MODE (not a separate skill): fixed CEO→Design→Eng→DX order, the decision taxonomy (Mechanical auto / Taste + User-challenge escalate), the 6 decision principles, cross-lens theme synthesis, single final gate.
8
+ - OpenAI "designing delightful frontends" + Steve Krug "Don't Make Me Think" — re-cited for the Design lens' slop bar and usability laws (paraphrased, not pasted).
9
+
10
+ Strategy: distill (5 sources → 1 skill, 129 LOC). Chosen over 4-5 dedicated skills (anti-bloat: one subject = "critique a written plan"; mirrors code-review's one-skill-many-dimensions) and over extending plan (authoring != adversarial multi-persona critique; would overlap >30%). autoplan dissolves into a mode (YAGNI). See docs/DECISIONS.md (2026-07-10, DEV-385).
11
+
12
+ Rejected (not vendored): all gstack runtime (preamble bash, gbrain, telemetry, plan-mode detection, AskUserQuestion D-numbering/completeness machinery, Codex-CLI invocation, voice/writing-style); the named-founder "Cognitive Patterns — How Great X Think" rosters (highest copy-risk, least load-bearing — the value is the checks, not the name-dropping); the dx-hall-of-fame.md exemplar corpus (calibration reference, not methodology). The shared substrate (scope gate, one-finding-one-question, registries, task list, verdict, second-opinion) was factored ONCE rather than duplicated per lens to stay under the 30% cross-lens overlap cap.
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: void-plan-review
3
+ description: "Critique a written plan (not a diff) via four lenses: CEO premise/ambition, Eng test-coverage, Design states/slop, DevEx time-to-first-value. Proposes findings; the author disposes."
4
+ ---
5
+
6
+ # plan-review — voidcorp craftsman edition
7
+
8
+ `void-brainstorm` pressure-tests the idea and `void-plan` authors the plan. This skill sits between the written plan and implementation: it **critiques an already-written plan** from up to four expert lenses, surfaces findings one decision at a time, and appends an Implementation Tasks list to the plan. It is read-mostly — it **proposes**; the plan's author (you, via `void-plan`) **disposes**. It never writes code and never restructures the plan itself.
9
+
10
+ Invoke it on a plan in `docs/specs/` or `docs/plans/` before the plan becomes tickets. Pick one lens, several, or `all` (the orchestrated pass, below).
11
+
12
+ **Attribution**: see `.source`. Distilled from gstack `/plan-ceo-review`, `/plan-eng-review`, `/plan-design-review`, `/plan-devex-review`, `/autoplan` (methodology only; the runtime and the named-founder rosters are rejected).
13
+
14
+ ---
15
+
16
+ ## The shared contract (every lens obeys this)
17
+
18
+ - **Scope gate first.** Before reviewing, state what the plan touches and what is explicitly NOT in scope. A plan touching > 8 files or > 2 new services is a size smell — flag it before anything else.
19
+ - **One finding = one decision.** Surface findings interactively, one at a time, each as a concrete decision with 2-3 options (always including "do nothing / defer") and a recommendation mapped to a stated preference. Never dump a wall of findings.
20
+ - **Severity**: `P1` blocks ship · `P2` same-branch follow-up · `P3` later. Effort is dual-scaled (human hours vs AI-agent minutes — completeness is cheap when an agent implements).
21
+ - **Findings become tasks, not edits.** The lens appends an Implementation Tasks list (P1/P2/P3) to the plan. It does not silently rewrite the plan; the author folds the fixes in. Registries the plan should already contain (Not-in-scope, What-already-exists, diagrams) are `void-plan`' job — the lens flags their absence, it does not own them.
22
+ - **Verdict**: `CLEARED` (no P1 unresolved) or `NOT CLEARED` with the blocking findings named.
23
+ - **Optional second opinion.** For a high-stakes plan, run one independent pass (a fresh subagent, or a second model) and surface only where it disagrees — cross-model tension is signal.
24
+
25
+ ---
26
+
27
+ ## Lens: CEO — is this the right thing, at the right ambition?
28
+
29
+ The only lens that may challenge the **premise** and say "scrap it, do this instead." It accepts nothing as given.
30
+
31
+ - **Premise & leverage**: right problem? a cheaper reframing? real outcome vs a proxy metric? cost of doing nothing? what existing code already solves each sub-problem?
32
+ - **Trajectory**: current → delta → 12-month ideal. Reversibility 1-5 (one-way vs two-way door); path dependency; debt introduced; "obvious to a new engineer in 12 months?"
33
+ - **Alternatives are mandatory**: 2-3 approaches, weighting *minimal-viable* and *ideal-architecture* equally, each with effort/risk/reuse; recommend one; do not proceed without approval. (Authoring the chosen approach is `void-plan`' job — the lens forces the comparison, not the write-up.)
34
+
35
+ **Scope mode** (pick once, up front — this is the plan-level 10x move):
36
+ - `EXPANSION` — cathedral: run the 10x check, sketch the Platonic-ideal version, name ≥ 5 delight opportunities. Default for greenfield.
37
+ - `SELECTIVE` — hold rigor as the baseline, then offer neutral expansion candidates + platform potential to cherry-pick. Default for an enhancement.
38
+ - `HOLD` — maximum rigor, no expansion; > 8 files / > 2 services is a smell. Default for a bugfix.
39
+ - `REDUCTION` — ruthless minimum. Default for a > 15-file plan.
40
+
41
+ **Verdict shape**: CRITICAL GAP / WARNING / OK per area, plus the unresolved decisions.
42
+
43
+ ---
44
+
45
+ ## Lens: Eng — is this buildable, testable, and will it not break?
46
+
47
+ The gating lens. Owns the deep **test-coverage trace** no other lens does. Four sections, each answered even when "no issues":
48
+
49
+ - **Architecture**: boundaries and dependency direction, coupling / SPOFs, scaling, security architecture, the distribution/build pipeline, and one realistic production-failure scenario per new codepath.
50
+ - **Failure modes**: every codepath walked for four data paths — happy / nil / empty / upstream-error. A failure that is neither rescued nor tested is a CRITICAL GAP.
51
+ - **Tests**: detect the framework; trace every branch, error, and null path; map interaction edge cases (double-submit, navigate-away, stale data, slow network, concurrency); decide unit vs E2E vs eval per behavior. **A regression fix ships with a test — non-negotiable.** Emit a coverage map of what is and isn't covered.
52
+ - **Performance**: N+1, unbounded memory, missing caching on hot paths.
53
+
54
+ **Output**: per-finding `[severity] (confidence N/10) file:line`, and quote the line that motivates each finding (no quote → it is unverified, drop the confidence). Verdict CLEARED / NOT CLEARED gates the plan.
55
+
56
+ ---
57
+
58
+ ## Lens: Design — what does the user perceive on screen?
59
+
60
+ Scope-gated: no UI in the plan → skip. Judges what reaches the user's eyes.
61
+
62
+ - **Information architecture**: explicit primary / secondary / tertiary emphasis per screen.
63
+ - **Interaction-state coverage**: every state the user actually hits — loading, empty, error, success, partial — described as what the user *sees*. A missing state is a first-class plan gap, not a detail.
64
+ - **Journey & emotional arc**: the 5-second / 5-minute / 5-year read of the feature.
65
+ - **AI-slop risk**: classify the surface (marketing vs app-UI vs hybrid) and hold it to the matching bar; reject generic-AI-generated patterns. (Bar and blacklist re-derived from OpenAI's "designing delightful frontends" + Krug — cited in `.source`, composes with `void-frontend-design` / `void-ui-review`.)
66
+ - **Responsive & a11y**: per-viewport intent, keyboard path, ARIA, 44px targets, 4.5:1 contrast — as plan requirements, not afterthoughts.
67
+
68
+ **Output**: rate each dimension `N/10 → M/10` with the fix written into the plan; "design-complete" when every dimension ≥ 8.
69
+
70
+ ---
71
+
72
+ ## Lens: DevEx — is the developer-facing surface a good journey?
73
+
74
+ Scope-gated: no API / CLI / SDK / library / docs surface → skip. Audits the developer journey from "never heard of it" → hello-world → upgrade. Signature metric: **time-to-first-value (TTHW)**, scored against real competitors (verify with a web search, do not invent numbers).
75
+
76
+ - **Getting started**: one-command install, try-before-install, steps to a working example.
77
+ - **Interface design**: guessable naming, sensible defaults, coverage vs dropping to raw HTTP, progressive disclosure.
78
+ - **Error messages**: trace three real error paths — each names the problem, the cause, the fix, and links docs.
79
+ - **Docs**: findable in 2 minutes, copy-paste works, version-matched.
80
+ - **Upgrade path**: blast radius, deprecation warnings, codemods, semver honored.
81
+ - **Dev environment**: LSP autocomplete, non-interactive CI, types, hot reload, cross-platform.
82
+
83
+ **Output**: a DX scorecard (each dimension Score/Prior/Trend + TTHW tier + competitive rank); TTHW > 10 min is blocking; any dimension < 6 is critical DX debt. This lens judges the *plan's promises*; once the surface ships, `void-devex-audit` measures the reality against them.
84
+
85
+ ---
86
+
87
+ ## `all` — the orchestrated pass (replaces gstack autoplan)
88
+
89
+ Runs the applicable lenses in the fixed order **CEO → Design → Eng → DX** (Design/DX skipped when their scope gate is empty). The order is load-bearing: each phase completes and writes its findings before the next. autoplan is a **mode here, not a separate skill** — once the lenses are one skill, an orchestrator that "runs the four" is a mode, not a new subject (YAGNI).
90
+
91
+ Between phases, auto-decide only the safe class; escalate the rest:
92
+ - **Decision taxonomy**: *Mechanical* (one correct answer) → auto-decide. *Taste* (defensible either way) and *User-challenge* (contradicts a stated goal) → surface to the human, never auto-decide.
93
+ - **Decision principles** for the Mechanical class: choose completeness; fix the whole blast radius (auto-approve in-radius expansions under ~1 day / 5 files / no new infra); when two fixes are equivalent, take the cleaner one without agonizing; reject duplication, reuse; explicit-and-graspable beats clever; bias toward flagging over blocking.
94
+ - **Cross-lens synthesis**: a concern raised by 2+ lenses is a high-confidence theme (the dedup that makes the multi-lens pass worth more than four solo runs).
95
+ - **One final gate**: present the aggregated, deduped task list and the auto-decision audit trail; the human approves / overrides / challenges / revises-and-re-runs the affected lens. The pass drives to this gate; it never auto-applies plan edits beyond appending the task list.
96
+
97
+ ---
98
+
99
+ ## Composition & boundaries
100
+
101
+ - **Downstream of `void-plan`** (which authors the plan) and **upstream of implementation** (`void-implement`). It reviews the artifact `void-plan` produced.
102
+ - **Not `void-brainstorm`**: brainstorm pressure-tests the *idea* (is there demand?); plan-review critiques the *written plan* (is it the right shape, buildable, complete?). Different artifact, different question.
103
+ - **Not `void-code-review`**: that reviews a *diff*; this reviews a *plan* before any code exists.
104
+ - **Not `doctrine-critic`**: that judges a diff against VoidCorp doctrine; this critiques a plan across product/eng/design/DX lenses.
105
+ - **Composes with `void-frontend-design` / `void-ui-review`** (the Design lens defers UI build-craft and audit to them), `void-devex-audit` (the DevEx lens's shipped-surface counterpart — this judges the plan, that measures the deployed reality), and `void-security-guidance` / `void-security-audit` (the Eng lens routes a deep security concern there).
106
+
107
+ ---
108
+
109
+ ## Anti-rules
110
+
111
+ - MUST NOT rewrite the plan — it appends a findings/task list; the author folds fixes in.
112
+ - MUST NOT own plan structure or registries (Not-in-scope, diagrams) — that is `void-plan`.
113
+ - MUST NOT re-litigate the idea's demand — that is `void-brainstorm`.
114
+ - MUST NOT review code or a diff — that is `void-code-review`.
115
+ - MUST NOT auto-decide a Taste or User-challenge call — those go to the human.
116
+ - MUST NOT dump findings in bulk — one finding, one decision.
117
+ - MUST NOT vendor the gstack runtime or the named-founder "how great X think" rosters.
118
+
119
+ ---
120
+
121
+ ## Final rule
122
+
123
+ ```
124
+ Written plan → pick lens(es) → one finding at a time → Implementation Tasks appended → CLEARED verdict.
125
+ The lens proposes; the author disposes. Otherwise → it is not voidcorp plan-review.
126
+ ```
127
+
128
+ A plan reviewed by the right lens before it becomes tickets is cheaper by an order of magnitude than the same gap found in code review.
@@ -0,0 +1,15 @@
1
+ # Harness metadata for this skill. Not part of the Agent Skills
2
+ # specification, and never copied into a consumer project: the SKILL.md
3
+ # beside it stays portable and validates against the official six fields.
4
+ # Read by this repository's graph, and by the installer for `runtimes`.
5
+ kind: action
6
+ activation: on-demand
7
+ owner: folpe
8
+ runtimes: [claude, codex]
9
+ enforcement:
10
+ floor: ci
11
+ inline:
12
+ claude: active
13
+ codex: active
14
+ hermes: ci-only
15
+ eval_targets: [claude/anthropic/opus]
@@ -0,0 +1,15 @@
1
+ Sources for `void-qa` skill (see `docs/plans/skill-audits/void-qa.md` for the full distribution matrix):
2
+
3
+ - gstack /qa (1642 LOC, "Test → Fix → Verify") — VENDORED (DEV-390): the QA methodology. Kept + distilled: the QA-engineer-AND-bug-fixer role, test-as-a-user (never read source to test), the modes (diff-aware default / full / quick / regression), the clean-working-tree precondition for atomic fix commits, the Orient → Explore → Document → Score → Triage → Fix-loop → Self-regulate → Report workflow, the per-page checklist (interactive / forms / navigation / empty-loading-error-overflow states / console-after-every-interaction / responsive), the two evidence tiers (interactive before/after vs static single shot), the health-score rubric (per-category deductions + weights), the atomic `fix(qa):` commit-per-fix + re-verify + regression-test + verified/best-effort/reverted classification, and the WTF self-regulation stop-and-ask heuristic.
4
+ - gstack /qa-only (1214 LOC) — VENDORED as the `--report-only` mode (phases through Report, no fix loop). No second skill: report-only is a mode, not a subject.
5
+ - gstack /design-review (1952 LOC), live half — the live-screenshot visual QA is re-homed here as the "visual pass" that COMPOSES `void-ui-review` (which already owns the visual-craft methodology: register split, squint test, interaction-state coverage, technical audit). This skill drives the browser; void-ui-review supplies the bar. No duplication.
6
+ - REPOINTED, not ported: every gstack `$B <cmd>` browse-daemon call (goto/snapshot/click/fill/console/viewport/screenshot) maps onto the `mcp__claude-in-chrome__*` MCP tools (navigate/computer/read_page/form_input/read_console_messages/resize_window/gif_creator/read_network_requests), with `tabs_context_mcp` called first. Full daemon port was ~190 CDP/Chromium files and weeks of work; the re-point is the same prose on a browser layer Claude Code already ships. This IS the epic's "Vague 4" claude-in-chrome re-point.
7
+ - REJECTED (gstack runtime, not doctrine): the browse binary + `./setup` + bun bootstrap, CDP-mode detection, gbrain/learnings search + log, telemetry/review-log, the `~/.gstack/projects` + chromium-profile cookie import (claude-in-chrome uses the user's real logged-in Chrome, so cookie import is moot — documented as a rejection per the ticket), TESTING.md / CLAUDE.md auto-edit.
8
+ - REJECTED (scope creep, routed elsewhere): the entire Test-Framework-Bootstrap block (detect runtime → research → install → write TESTING.md). Standing up a test framework is `void-tdd`/`void-testing`, not QA. A QA skill that also bootstraps a framework is two subjects; the ticket's "un sujet, un skill" forbids it.
9
+
10
+ Strategy: distill + repoint. One skill, one subject ("live browser QA of a running web app"). qa-only folds in as a mode; the visual pass composes ui-review; the regression test composes tdd/testing. < 30% overlap is structural: this drives the browser + functional/fix loop; ui-review judges visuals; devex-audit audits dev surfaces; tdd/testing author suites.
11
+
12
+ Companion change (same ticket, gated by Folpe): the "Never use mcp__claude-in-chrome__*" rule in ~/.claude/CLAUDE.md predates the claude-in-chrome adoption and makes this skill unusable; it is lifted in the same move.
13
+
14
+ DEV-444 adaptation: UI evidence now covers mobile and desktop applicable states, carries the current
15
+ diff identity, and is handed to a fresh Visual Craft Director; unavailable browser proof blocks.
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: void-qa
3
+ description: "Live browser QA of a running web app via the claude-in-chrome MCP: systematic exploration, edge/error/empty states, atomic fix loop, evidence-backed report. Report-only mode available."
4
+ ---
5
+
6
+ # qa — voidcorp craftsman edition
7
+
8
+ You are a QA engineer AND a bug-fix engineer. Test a running web app like a real user — click everything, fill every form, check every state — using the **claude-in-chrome MCP** to drive the browser. When you find a bug, fix it in source with an atomic commit, then re-verify. Produce a structured report with before/after evidence.
9
+
10
+ This tests the *shipped, running app* through a real browser. It is not unit/E2E authoring (`void-tdd` + `void-testing` own that), and it does not judge visual craft from code (`void-ui-review` owns that — this skill composes it for the live visual pass).
11
+
12
+ **Attribution**: see `.source`. Vendored from gstack `/void-qa` + `/qa-only` + the live half of `/design-review`, repointed off the gstack browse daemon onto the claude-in-chrome MCP already present in Claude Code. The gstack runtime (browse binary, gbrain/learnings, telemetry, `~/.gstack` artifacts, test-framework bootstrap) is rejected.
13
+
14
+ ---
15
+
16
+ ## When to invoke
17
+
18
+ - Verifying a running app after a change (the default: a feature branch, "does it actually work?").
19
+ - Auditing a deployed site for bugs and broken flows.
20
+ - A report-only pass (no fixes) before a review or handoff.
21
+
22
+ Do NOT use this to author a unit/E2E suite (`void-tdd`/`void-testing`), to audit UI craft from code (`void-ui-review`), or to audit a dev-facing API/CLI/SDK surface (`void-devex-audit`).
23
+
24
+ ## Browser tooling: claude-in-chrome (load first)
25
+
26
+ The execution primitives are the `mcp__claude-in-chrome__*` tools. If they are deferred, load the core set in **one** ToolSearch call before anything else:
27
+
28
+ `select:mcp__claude-in-chrome__tabs_context_mcp,mcp__claude-in-chrome__navigate,mcp__claude-in-chrome__computer,mcp__claude-in-chrome__read_page,mcp__claude-in-chrome__tabs_create_mcp,mcp__claude-in-chrome__read_console_messages,mcp__claude-in-chrome__form_input,mcp__claude-in-chrome__gif_creator,mcp__claude-in-chrome__resize_window,mcp__claude-in-chrome__read_network_requests`
29
+
30
+ Command mapping from the old gstack browse (`$B`) to the MCP:
31
+
32
+ | Need | claude-in-chrome tool |
33
+ |------|-----------------------|
34
+ | Session tab context (**call first**) | `tabs_context_mcp` |
35
+ | Open the target in a **new** tab | `tabs_create_mcp` |
36
+ | Navigate | `navigate` |
37
+ | Click / type / screenshot | `computer` |
38
+ | Fill a form field | `form_input` |
39
+ | Read DOM / accessibility tree | `read_page` |
40
+ | Console errors after an action | `read_console_messages` (filter with `pattern`) |
41
+ | Network (data-fetch 404s) | `read_network_requests` |
42
+ | Responsive viewport | `resize_window` |
43
+ | Record a repro | `gif_creator` |
44
+
45
+ ## Hard constraints (claude-in-chrome reality)
46
+
47
+ - **`tabs_context_mcp` first**, every session. Never reuse a tab id from another session; open a fresh tab with `tabs_create_mcp` unless the user names a tab.
48
+ - **Permissions are per-site.** If a site is not authorized and permission is refused, STOP and tell the user which site to allow — never loop retrying the same denied call.
49
+ - **Never trigger a JS dialog** (`alert`/`confirm`/`prompt`) or a browser modal — they block the extension and kill the session. For repro debugging use `console.log` + `read_console_messages`, not `alert`. Warn the user before touching any element that may open one.
50
+ - **Not headless.** claude-in-chrome drives the user's real, interactive Chrome (already logged in — no cookie import, no `~/.gstack/chromium-profile`). QA in a cloud/cron session with no interactive Chrome is **out of scope** — an assumed limitation the browse daemon did not have; say so rather than faking it.
51
+ - After 2-3 failed tool calls, a page that will not load, or unexpected tangents: stop and ask the user, do not keep retrying.
52
+
53
+ ## Modes
54
+
55
+ - **Diff-aware** (default on a feature branch with no URL) — read the branch diff, map changed files to affected pages/routes, detect the local dev server, test only those pages plus a homepage smoke. The common case.
56
+ - **Full** (a URL is given) — systematic exploration of every reachable page; 5-10 well-evidenced issues; health score.
57
+ - **Quick** (`--quick`) — 30-second smoke: homepage + top 5 nav targets, load + console + broken links only.
58
+ - **Regression** (`--regression <baseline.json>`) — run full, then diff against a prior baseline: fixed vs new vs score delta.
59
+ - **Report-only** (`--report-only`, the old `/qa-only`) — phases through Report, then STOP. No fix loop, no commits.
60
+
61
+ ## Precondition: clean working tree
62
+
63
+ Each fix must be its own atomic commit, so before fixing, `git status --porcelain` must be empty. If dirty, ask the user to commit / stash / abort first (recommend commit — preserve their work before QA adds fix commits). Report-only mode may run on a dirty tree.
64
+
65
+ ## Workflow
66
+
67
+ 1. **Orient** — `tabs_context_mcp`, open the target in a new tab, screenshot, read the page, check console. Detect the framework (Next.js `__next` / `_next/data`; Rails `csrf-token`; SPA = client routing) and note it. For an SPA, map nav from `read_page` (client routes, not raw links).
68
+ 2. **Explore** — visit pages systematically. Per page: visual scan of the screenshot; click interactive elements; fill + submit forms (empty, invalid, edge, overflow); walk navigation in and out; exercise **the states a user actually hits — empty, loading, error, overflow**; check console after every interaction; for responsive, `resize_window` then **verify the screenshot dimensions actually changed** — on some setups it resizes the window without re-rendering to a true mobile viewport, so confirm before trusting a "mobile" shot (else note responsive as unverified). Depth over breadth: more time on core flows (auth, checkout, search), less on static pages.
69
+ 3. **Document** — write each issue the moment you find it, never batch. Two evidence tiers: an **interactive** bug gets a before-screenshot, the action, an after-screenshot (a `gif_creator` repro for a flow); a **static** bug gets one annotated screenshot. Verify a bug reproduces once before writing it. For a UI quality pass, capture mobile and desktop for every applicable state and bind each capture to the current diff hash; a later CSS/UI diff makes it stale. Redact credentials (`[REDACTED]`). Surface every screenshot to the user (Read the file) — otherwise it is invisible.
70
+ 4. **Health score** — per-category 0-100 (Console, Links, Visual, Functional, UX, Performance, Content, Accessibility) minus severity deductions (critical -25 / high -15 / medium -8 / low -3), weighted average. Record it as the baseline.
71
+ 5. **Visual pass** — for visual/interaction judgment on the live screenshots, compose `void-ui-review`, then hand the current-diff evidence to `core:visual-craft-director` in fresh context. This skill drives the browser; `void-ui-review` supplies the craft bar; the specialist owns the independent verdict. If the browser or required captures are unavailable, report the UI pass blocked rather than certifying from prose.
72
+ 6. **Triage** — sort by severity; fix per tier: `--quick` critical+high · standard (default) +medium · `--exhaustive` +low. Mark unfixable-from-source (third-party, infra) as deferred.
73
+ 7. **Fix loop** (skipped in report-only) — per issue in severity order: locate source (grep/glob — only now do you read code); make the **minimal** fix (no refactor, no scope creep); commit one fix `fix(qa): <issue> — <desc>`; re-test the page with a before/after pair + console + a regression test that reproduces the bug (compose `void-tdd`/`void-testing` — assert behavior, not "it renders"); classify **verified / best-effort / reverted** (`git revert` on a regression → defer).
74
+ 8. **Self-regulation** — every 5 fixes or after any revert, stop and evaluate: reverts, fixes touching many files, all-low-severity remaining, and unrelated-file edits all raise the "this is going wrong" signal. Above the threshold, or past a hard cap of ~50 fixes, STOP and show the user before continuing.
75
+ 9. **Report** — issues with severity + evidence + fix status (verified/best-effort/reverted/deferred) + commit SHA; health-score delta baseline → final; a one-line PR summary ("QA found N, fixed M, health X → Y"). If the final score is worse than baseline, warn prominently. Write it under the project's report location, not `~/.gstack`.
76
+
77
+ ## Composition & boundaries
78
+
79
+ - **With `void-ui-review`** — this skill owns driving the browser and the functional/fix loop; `void-ui-review` owns the visual-craft judgment applied to the live screenshots (step 5). No restated design rules here.
80
+ - **With `void-tdd` / `void-testing`** — the regression test in the fix loop is authored per their discipline. This skill finds bugs in a running app; they own how the test that locks the fix is written.
81
+ - **Not `void-devex-audit`** — that audits a developer-facing surface (API/CLI/SDK/docs journey, TTHW); this QAs an end-user web app in a browser. Different surface.
82
+ - **Not E2E authoring** — Playwright suites are `void-testing`'s output; this is exploratory human-style QA of the deployed thing.
83
+ - **Supersedes** gstack `/void-qa`, `/qa-only`, and the live-screenshot half of `/design-review`.
84
+
85
+ ## Anti-rules
86
+
87
+ - MUST NOT test by reading source — test as a user; read code only in the fix loop, to locate the bug.
88
+ - MUST NOT trigger a blocking JS dialog / modal — it kills the claude-in-chrome session.
89
+ - MUST NOT reuse a cross-session tab id, or assume a headless/CI browser — mark non-interactive sessions out of scope.
90
+ - MUST NOT bundle fixes — one atomic `fix(qa):` commit each; revert on regression.
91
+ - MUST NOT include credentials in the report — `[REDACTED]`.
92
+ - MUST NOT bootstrap a test framework or edit CI/CLAUDE.md — that is `void-tdd`/`void-testing`, not QA.
93
+ - MUST NOT vendor the gstack runtime (browse binary, gbrain/learnings, telemetry, `~/.gstack` artifacts, cookie-profile import).
94
+
95
+ ## Final rule
96
+
97
+ ```
98
+ Running app → load claude-in-chrome (tabs_context first) → orient → explore every state → document with
99
+ evidence → score → triage → atomic fix + regression test + re-verify → self-regulate → report.
100
+ Report-only stops before the fix loop. Otherwise → it is not voidcorp qa.
101
+ ```
102
+
103
+ QA is the discipline of hitting the app the way a user will, before the user does — and, when it breaks, fixing it under the same evidence bar that found it.
@@ -0,0 +1,15 @@
1
+ # Harness metadata for this skill. Not part of the Agent Skills
2
+ # specification, and never copied into a consumer project: the SKILL.md
3
+ # beside it stays portable and validates against the official six fields.
4
+ # Read by this repository's graph, and by the installer for `runtimes`.
5
+ kind: action
6
+ activation: on-demand
7
+ owner: folpe
8
+ runtimes: [claude, codex]
9
+ enforcement:
10
+ floor: ci
11
+ inline:
12
+ claude: active
13
+ codex: active
14
+ hermes: ci-only
15
+ eval_targets: [claude/anthropic/opus]
@@ -0,0 +1,9 @@
1
+ Sources for `void-refactor` skill (see `docs/plans/skill-audits/void-refactor.md` for full audit):
2
+
3
+ - Kent Beck "Tidy First?" 2023 — https://www.oreilly.com/library/view/tidy-first/9781098151232/ — separate Tidyings from Behavior Changes, Two-Hat principle
4
+ - Martin Fowler "Refactoring" 2nd ed. 2018 — https://martinfowler.com/books/refactor.html — catalog of named refactors + smells catalog
5
+ - Michael Feathers "Working Effectively with Legacy Code" 2004 — Sprout Method, Wrap Method for legacy/untested code
6
+ - citypaul/.dotfiles refactor notes — Tidy-First commit cadence
7
+ - Joshua Kerievsky "Refactoring to Patterns" — referenced, used sparingly (not daily practice)
8
+
9
+ Strategy: distill. Author for void-machine with two modes mirroring tdd. Reject monolithic-rewrite framing. Companion hooks: tidying-commit-prefix, refactor-named-grep. Allowed Fowler names in ../../hooks/fowler-refactors.txt.