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,9 @@
1
+ Sources for `void-decide` skill (see `docs/plans/skill-audits/void-decide.md` for full audit):
2
+
3
+ - Michael Nygard, "Documenting Architecture Decisions" (2011) — https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions — the original ADR format (Context / Decision / Consequences) and the immutable-record lifecycle.
4
+ - adr.github.io / Markdown Architectural Decision Records (MADR) — https://adr.github.io/ — status and supersession lifecycle retained; sequential numbering rejected because it creates a parallel-writer coordination point.
5
+ - joelparkerhenderson/architecture-decision-record — https://github.com/joelparkerhenderson/architecture-decision-record — templates surveyed; the terse ~50-line shape kept, heavier templates rejected.
6
+
7
+ Strategy: native (no single source combines terse records, reversal-cost discipline and safe parallel authorship; retained the load-bearing format, added the rejected-alternative gate, UUID identity, exclusive one-file ownership and read-only projections).
8
+
9
+ Promoted from pack-monorepo to core on 2026-06-04: ADRs are a universal craftsman concern, not monorepo-specific, and the repo meta-rule already mandates logging non-obvious decisions. Composes with plan, commit-discipline, source-driven-development (alternatives cite official docs), learn.
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: void-decide
3
+ description: Capture structural choices as one immutable ADR file with collision-free identity, explicit alternatives, reversal cost, and supersession. Use when future code depends on why.
4
+ ---
5
+
6
+ # decide
7
+
8
+ Use when a structural choice changes how future code is written and a future
9
+ contributor would otherwise ask "why?". ADRs are codebase-scoped. Product or
10
+ cross-organization strategy belongs in the product's decision system.
11
+
12
+ This composes with `void-plan`: plans describe work; ADRs preserve
13
+ the decisions behind it.
14
+
15
+ ## Write an ADR when
16
+
17
+ - A library or platform choice creates material lock-in.
18
+ - A naming, layout or dependency convention affects the codebase broadly.
19
+ - Ownership, trust or deployment boundaries change.
20
+ - A performance, availability, privacy or security trade-off is accepted.
21
+ - A previous accepted ADR must be reversed or narrowed.
22
+
23
+ Do not write one for bug fixes, preference, pure refactors or choices reversible
24
+ in one small PR. If no credible alternative was rejected, the record is usually
25
+ ceremony rather than a decision.
26
+
27
+ ## Storage contract
28
+
29
+ One decision owns one Markdown file. Never append to, number from, or regenerate
30
+ a shared index.
31
+
32
+ Default location:
33
+
34
+ ```text
35
+ docs/decisions/
36
+ 2026-07-24-use-drizzle--018f43f4-3ac4-7c40-8000-000000000001.md
37
+ ```
38
+
39
+ An existing project may keep an established equivalent such as
40
+ `docs/decisions-log/` or `decisions/`.
41
+
42
+ The filename contains:
43
+
44
+ - an ISO date for scanning;
45
+ - a readable slug describing the chosen direction;
46
+ - a collision-resistant UUID used by the ADR identity.
47
+
48
+ Prefer the project command when present:
49
+
50
+ ```sh
51
+ void-machine decisions new \
52
+ --title "Adopt Server Actions for UI mutations" \
53
+ --slug adopt-server-actions \
54
+ --decider folpe
55
+ ```
56
+
57
+ Without the CLI, generate a UUID locally and create the same standalone contract.
58
+ Never inspect sibling files to allocate `NNNN`; parallel workers must not share a
59
+ counter.
60
+
61
+ ## Format
62
+
63
+ Keep the record terse, normally under 100 lines:
64
+
65
+ ```md
66
+ ---
67
+ schemaVersion: 1
68
+ id: "adr:018f43f4-3ac4-7c40-8000-000000000001"
69
+ createdAt: "2026-07-24T10:15:00.000Z"
70
+ title: "Adopt Server Actions for UI mutations"
71
+ status: proposed
72
+ deciders: [folpe]
73
+ supersedes: []
74
+ ---
75
+
76
+ # Adopt Server Actions for UI mutations
77
+
78
+ ## Context
79
+
80
+ What forces, constraints and pain make the choice necessary?
81
+
82
+ ## Decision
83
+
84
+ We will <one sentence>.
85
+
86
+ ## Consequences
87
+
88
+ Positive:
89
+
90
+ - ...
91
+
92
+ Negative:
93
+
94
+ - ...
95
+
96
+ ## Alternatives considered
97
+
98
+ - **tRPC mutations**: rejected because ...
99
+ - **REST endpoints**: rejected because ...
100
+
101
+ ## Reversal cost
102
+
103
+ Low, Medium or High, with the concrete migration cost.
104
+ ```
105
+
106
+ ## Lifecycle
107
+
108
+ - `proposed`: open for review and editable.
109
+ - `accepted`: merged and binding for new work.
110
+ - `deprecated`: retained for history but discouraged for new work.
111
+ - `superseded`: replaced by a newer record.
112
+
113
+ Accepted decision content is immutable. To reverse, clarify or partially replace
114
+ one, create a new ADR whose `supersedes` contains the old `id`. Never delete or
115
+ rename the accepted file. This preserves evidence and prevents parallel branches
116
+ from rewriting the same history.
117
+
118
+ One mechanical exception keeps references usable without diluting the journal:
119
+ an accepted file may replace a bounded repository-local path when frontmatter,
120
+ headings, Markdown structure and surrounding prose stay byte-for-byte stable and
121
+ the new target exists inside the repository. `void-machine decisions check`
122
+ proves that narrow shape and fails closed on a missing target, path escape or
123
+ symlink escape. A change to wording, reasoning, scope, consequences or identity
124
+ is not a reference migration; it requires supersession. Do not create a new ADR
125
+ merely to record a proven file move or rename.
126
+
127
+ ## Workflow
128
+
129
+ 1. State the decision in one sentence before expanding it.
130
+ 2. Record forces and constraints, not a chronology of discussion.
131
+ 3. Name at least two credible alternatives and reject them with evidence.
132
+ 4. State negative consequences and concrete reversal cost.
133
+ 5. Let the accountable decider accept it through normal review.
134
+ 6. Run `void-machine decisions check` when available.
135
+ 7. Link foundational ADRs from project doctrine by their source file or stable
136
+ `adr:<uuid>` identity.
137
+
138
+ Do not commit a rendered Markdown or JSON projection. Generate it on demand with
139
+ `void-machine decisions render`; source files alone participate in merges.
140
+
141
+ ## Composition
142
+
143
+ - `void-plan`: plans cover work; ADRs cover durable decisions.
144
+ - `void-source-driven-development`: alternatives cite primary documentation.
145
+ - `void-commit-discipline`: a long commit rationale can expose ADR-worthy work.
146
+ - `void-learn`: recurring lessons become doctrine; structural
147
+ choices become ADRs.
@@ -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,8 @@
1
+ Sources for `void-devex-audit` skill (see `docs/plans/skill-audits/void-devex-audit.md` for the full distribution matrix):
2
+
3
+ - gstack /devex-review (1263 LOC, "Live Developer Experience Audit") — VENDORED (DEV-398): the live DX audit methodology. Kept + distilled: the DX first principles (zero-friction T0, error = problem+cause+fix, decide-for-me-let-me-override, show-code-in-context, speed, magical moment), the measured-TTHW benchmark tiers (Champion <2min … Red Flag >10min), the gap-method scoring rubric (score + "what a 10 looks like for THIS surface"), the six evidence-tagged audit passes (getting-started, API/CLI/SDK ergonomics, error-message tracing, docs, upgrade path, dev environment), the TESTED/PARTIAL/INFERRED evidence discipline ("a guess is not a score"), and the plan-vs-reality boomerang concept.
4
+ - REJECTED (gstack runtime, not doctrine): the review-log / review-readiness dashboard, the `gstack-*` bin machinery (gstack-review-log/read, gstack-slug), the boomerang tied to gstack bin files, the external hall-of-fame file dependency, telemetry + learnings-log, the plan-mode plumbing and plan-file review-report writer, gbrain context-load. These are gstack's operational surface, not the DX method.
5
+ - DEFERRED (Vague 4, claude-in-chrome MCP): the live browser driver — screenshotting hosted docs, navigating an API playground, walking a signup/first-key flow, hitting 404/error pages. Same deferral as ui-review. Until then the skill tests the bash/file-accessible surface and marks web-only checks "requires live audit — out of scope".
6
+ - The Seven DX Characteristics table + the ten "cognitive patterns" (chef-for-chefs, first-five-minutes, pit-of-success, progressive disclosure, upgrade fear) — folded into the first-principles list and the pass prose rather than transcribed as separate rosters (anti-bloat; "internalize, don't enumerate", per the source's own instruction).
7
+
8
+ Strategy: distill + re-home. The plan-time DevEx checklist already lives in plan-review's DevEx lens (DEV-385); this skill is the audit-time ceiling for the SHIPPED surface. Mirrors the floor/ceiling split used for security (security-guidance/security-audit), plans+UI (plan-review Design lens / frontend-design / ui-review), and now DevEx (plan-review DevEx lens / api-and-interface-design / devex-audit). < 30% overlap is structural: plan-requirements in plan-review, contract-design in api-and-interface-design, measured-reality here.
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: void-devex-audit
3
+ description: "Audit an EXISTING dev-facing surface (API/CLI/SDK/docs): measured TTHW, real error-path tracing, evidence-backed DX scorecard, scoped refine. The audit ceiling to plan-review's DevEx-lens."
4
+ ---
5
+
6
+ # devex-audit — voidcorp craftsman edition
7
+
8
+ `void-plan-review`'s DevEx lens judges a *written plan*'s promises before code exists. This skill dogfoods the *shipped* developer-facing surface and measures what a developer actually hits. It is the audit-time ceiling: a deliberate pass over an existing API / CLI / SDK / docs product to measure its real time-to-value, trace its real error paths, score each dimension against evidence, and drive fixes.
9
+
10
+ Invoke it to critique, score, or improve a deployed dev surface. It proposes findings and scoped edits; it does not design the contract (`void-api-and-interface-design` owns that) and it does not re-teach the plan-time DevEx checklist (`void-plan-review` owns that — this skill assumes it and checks the shipped reality against it).
11
+
12
+ **Attribution**: see `.source`. Vendored from gstack `/devex-review` (the live DX audit methodology). The gstack runtime (review-log/dashboard, boomerang bin, hall-of-fame file, telemetry, plan-mode plumbing) is rejected. The live browser driver is deferred to Vague 4 (claude-in-chrome MCP).
13
+
14
+ ---
15
+
16
+ ## First principles (every finding traces to one)
17
+
18
+ 1. **Zero friction at T0.** The first five minutes decide adoption. Hello-world without reading docs, without a credit card, without a demo call.
19
+ 2. **Every error = problem + cause + fix.** An error that only says what, not why or how to recover, is a finding.
20
+ 3. **Decide for me, let me override.** Opinionated defaults are a feature; escape hatches are a requirement. A default with no override is a finding.
21
+ 4. **Show code in context.** Hello-world is a lie if it omits real auth, real error handling, real deployment. Solve 100% of the problem, not the toy.
22
+ 5. **Speed is a feature.** Iteration speed, response time, lines-to-accomplish, concepts-to-learn — measure them.
23
+ 6. **A magical moment.** The one thing that should feel like magic (Stripe's instant response, Vercel's push-to-deploy) should be the *first* thing a developer experiences.
24
+
25
+ ## Scope honesty: what you can test now vs Vague 4
26
+
27
+ - **Testable now, via bash + files** — CLI `--help` ergonomics, README/getting-started step count, install command, error output on bad input/missing args, `CHANGELOG`/migration/deprecation quality, TS types + LSP inference, CI config, docs-as-code findability, package manifest.
28
+ - **Deferred to Vague 4 (live browser)** — hosted docs search, API playground, signup / first-key flow, 404 and error pages, dashboard. Mark each **"requires live audit — out of scope (Vague 4)"**. Never guess a score for it.
29
+ - **Evidence tag on every score**: `TESTED` (you ran it), `PARTIAL` (ran some, inferred the rest), `INFERRED` (read from files only). A guess is not a score. State the evidence source for each dimension.
30
+
31
+ ## The signature metric: measured TTHW (time to hello-world)
32
+
33
+ Walk the journey `never-heard-of-it → working example`, counting the real steps and time. Score against the benchmark:
34
+
35
+ | Tier | Time | Impact |
36
+ |------|------|--------|
37
+ | Champion | < 2 min | 3-4x higher adoption |
38
+ | Competitive | 2-5 min | baseline |
39
+ | Needs Work | 5-10 min | significant drop-off |
40
+ | Red Flag | > 10 min | 50-70% abandon |
41
+
42
+ TTHW > 10 min is a **blocking** finding.
43
+
44
+ ## The audit passes (each: evidence + score 0-10 + gap-to-10)
45
+
46
+ These are the same six dimensions `void-plan-review`'s DevEx lens names as *plan requirements*; here each is measured on the shipped surface with an evidence tag, not promised on paper. Keep the two lists aligned if that lens reshapes a dimension.
47
+
48
+ 1. **Getting started** — step-by-step table (`step · time · friction low/med/high · evidence`), ending in the measured TTHW. Count what a first-timer actually does.
49
+ 2. **API/CLI/SDK ergonomics** — guessable naming, sensible defaults, escape hatches, progressive disclosure (simple case is production-ready, complex case uses the same surface), coverage vs. dropping to raw HTTP.
50
+ 3. **Error messages** — trigger three real error paths (bad input, missing arg, unauthenticated). Each must name the problem, the cause, the fix, and link docs (the Elm/Rust/Stripe three-tier bar).
51
+ 4. **Documentation** — findable in < 2 min, code examples copy-paste-complete (not fragments), version-matched to the installed release.
52
+ 5. **Upgrade path** — `CHANGELOG` clarity and user-facing framing, migration guides, codemods, deprecation warnings, semver honored, blast radius of a major bump.
53
+ 6. **Dev environment** — TS types + LSP autocomplete, non-interactive CI, hot reload, cross-platform, test utilities/fixtures.
54
+
55
+ ## Scoring: the gap method
56
+
57
+ For each dimension, score 0-10 **and** write what a 10 looks like for *this* surface, then fix toward it. Rubric anchors: `9-10` best-in-class (Stripe/Vercel tier) · `7-8` usable, minor gaps · `5-6` works with friction · `3-4` developers complain · `1-2` abandoned after first try · `0` not addressed.
58
+
59
+ ## Evidence-backed scorecard
60
+
61
+ ```
62
+ DX AUDIT — <surface>
63
+ Dimension Score Method Evidence
64
+ Getting started _/10 TESTED <step count / cmd>
65
+ API/CLI/SDK _/10 PARTIAL <--help output / naming>
66
+ Error messages _/10 PARTIAL <3 traced paths>
67
+ Documentation _/10 INFERRED <file refs> (live search: Vague 4)
68
+ Upgrade path _/10 INFERRED <CHANGELOG / migration>
69
+ Dev environment _/10 INFERRED <types / CI>
70
+ TTHW (measured) _ min TESTED <journey>
71
+ Overall _/10
72
+ ```
73
+
74
+ ## Plan-vs-reality (optional)
75
+
76
+ If a prior `void-plan-review` DevEx scorecard exists for this surface, compare its per-dimension plan score against the live score; flag any dimension where **live < plan − 2** (the plan over-promised). Re-homed from the gstack boomerang — the comparison concept is kept, its `gstack-*` bin machinery is not.
77
+
78
+ ## Refine modes
79
+
80
+ Once findings exist, drive a scoped, finding-driven fix (not a rewrite):
81
+
82
+ - `quickstart` — cut TTHW (fewer steps, working default, try-before-install).
83
+ - `errors` — rewrite the traced error paths to problem + cause + fix + docs link.
84
+ - `docs` — findability, copy-paste-completeness, version match.
85
+ - `upgrade` — changelog framing, migration guide, codemods, deprecation warnings.
86
+ - `types` — LSP autocomplete, inference, exported types at the boundary.
87
+
88
+ ## Composition & boundaries
89
+
90
+ - **Not `void-plan-review`'s DevEx lens** — that judges a *written plan* before code (does the plan name a TTHW target, the error paths, the upgrade story?); this audits the *shipped* surface with measured evidence. Different artifact, different lifecycle stage. The < 30% overlap is structural: plan-requirements there, measured-reality here.
91
+ - **Not `void-ui-review`** — that audits the *visual / interaction* UI (hierarchy, slop, states); this audits the *developer journey* (naming, errors, docs, upgrade). Different subject.
92
+ - **With `void-api-and-interface-design`** — its build-time floor (designing a minimal, stable contract) is what this skill audits after the fact. Build there, judge here.
93
+ - **Live browser audit** — deferred to Vague 4 (claude-in-chrome); until then test via bash/files and mark web-only checks as deferred.
94
+ - **Supersedes** gstack `/devex-review` (methodology now harness-native).
95
+
96
+ ## Anti-rules
97
+
98
+ - MUST NOT score a dimension without an evidence tag (`TESTED`/`PARTIAL`/`INFERRED`) — a guess is not a score.
99
+ - MUST NOT re-judge a written plan — that is `void-plan-review`'s DevEx lens.
100
+ - MUST NOT redesign the API/CLI/SDK contract — `void-api-and-interface-design` owns it; this proposes fixes, it does not re-architect the surface.
101
+ - MUST NOT drive a browser or make live web requests — defer to Vague 4; test via bash/files and mark web-only checks out of scope.
102
+ - MUST NOT trigger error paths against a production tenant or shared data — use a throwaway/local surface for the error pass.
103
+ - MUST NOT vendor the gstack runtime (review-log, dashboard, boomerang bin, telemetry, hall-of-fame file).
104
+
105
+ ## Final rule
106
+
107
+ ```
108
+ Existing dev surface → scope (testable now vs deferred) → measured TTHW → 6 audit passes with evidence →
109
+ gap-method scorecard → scoped refine.
110
+ Otherwise → it is not voidcorp devex-audit.
111
+ ```
112
+
113
+ Anyone can ship an API. This skill is what tells you, with evidence, whether a developer can actually fall into the pit of success on 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,15 @@
1
+ Sources for `void-doctor` (see `docs/plans/skill-audits/void-doctor.md` for the full audit).
2
+
3
+ Original to void-machine. It wraps this repository's own CLI, so there is no upstream skill to
4
+ distil: the subject did not exist anywhere else.
5
+
6
+ Provenance rather than inspiration: it was a slash command under `packages/core/commands/`,
7
+ shipped there on 2026-06-04 because the plugin carried no in-session ergonomics at the time and a
8
+ skill was not invocable from the keyboard. Claude Code has since merged commands into skills, and
9
+ neither Codex nor Kimi ever had the command format, so the command was Claude-only for a reason
10
+ that had expired. Converted on 2026-08-19, keeping its name and its `allowed-tools`, gaining
11
+ `disable-model-invocation: true` — the gesture is typed by a human, never guessed by the model.
12
+
13
+ Rejected while converting: letting the model invoke it on its own. A health check, an audit or a
14
+ graph report that fires unprompted arrives when nobody asked and nobody acts on it, and it spends
15
+ a screen doing so.
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: void-doctor
3
+ description: Run the harness health checks and report what is healthy, missing or stale, with the exact command that repairs each finding. Reports; never repairs on its own.
4
+ allowed-tools: Bash(void-machine:*) Bash(npx:*)
5
+ ---
6
+
7
+ # void-doctor
8
+
9
+ Answer one question: is this project's harness actually wired, or does it only look wired.
10
+
11
+ **Attribution**: see `.source`.
12
+
13
+ ---
14
+
15
+ ## When it fires
16
+
17
+ Only when a human asks. `disable-model-invocation: true` is deliberate: a health check that
18
+ fires on its own turns a session into a diagnostic, and its findings arrive when nobody asked
19
+ for them and nobody acts on them.
20
+
21
+ The moments worth running it: after an install or an update, when a rule that should have
22
+ blocked something did not, when a skill you expected did not load, and when a session opens on a
23
+ project you have not touched in a while.
24
+
25
+ ---
26
+
27
+ ## Run it
28
+
29
+ ```
30
+ void-machine doctor
31
+ ```
32
+
33
+ The CLI is public on npm as `voidmachine`, whose binary is `void-machine` (alias `vm`;
34
+ the former command still works, with a deprecation notice). If it is not on PATH,
35
+ `npx voidmachine doctor` is the same thing without an install.
36
+
37
+ In the void-machine repository itself, `doctor` delegates to the self-host doctor, which asks a
38
+ different question: do the current sources still compile into a working harness. Both are valid;
39
+ say which one ran, because "healthy" means different things.
40
+
41
+ ---
42
+
43
+ ## Read it
44
+
45
+ Give a one-screen summary, in this order:
46
+
47
+ 1. **What is broken**, and for each one the exact command that fixes it. A finding without its
48
+ repair command is a finding the reader has to research, which is how a doctor report becomes
49
+ something nobody runs twice.
50
+ 2. **What is stale** rather than broken: an artefact older than its sources, a version behind, a
51
+ marketplace unreachable. Stale degrades; it does not fail.
52
+ 3. **What is healthy**, in one line. Not a list.
53
+
54
+ Do not paste the raw output back. It is written to be read by a human at a terminal, and
55
+ repeating it costs the whole screen for no added meaning.
56
+
57
+ ---
58
+
59
+ ## What it must not do
60
+
61
+ **Never repair automatically.** The report names the command; the human runs it. A check that
62
+ silently rewrites a project's configuration removes the one moment where someone could have said
63
+ "no, that file is mine".
64
+
65
+ The exception is explicit and stays explicit: when a repair flag exists, it runs only because a
66
+ human typed it, never as a follow-up this skill decides on.
67
+
68
+ ---
69
+
70
+ ## Red flags
71
+
72
+ | Rationalization | Reality |
73
+ |---|---|
74
+ | "It reported stale, I'll just re-run init to clean it up" | init rewrites managed files. Report it and let the human choose. |
75
+ | "The output is long, I'll paste it and let them read" | Then the skill added nothing. Summarise, or say it was already clear. |
76
+ | "Everything is green, nothing to say" | Say it in one line, including which target ran: the repo doctor and the consumer doctor answer different questions. |
77
+
78
+ ---
79
+
80
+ ## Composition
81
+
82
+ Adjacent: `void-verify` proves one unit of work; this proves the harness that guards every unit.
83
+ Downstream: a finding about a missing doctrine rule is routed to `void-learn`, never fixed here.
@@ -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,13 @@
1
+ Sources for `void-domain-driven-design` skill (see `docs/plans/skill-audits/void-domain-driven-design.md` for full audit):
2
+
3
+ - Eric Evans "Domain-Driven Design: Tackling Complexity in the Heart of Software" 2003 — book — foundation, strategic DDD vocabulary
4
+ - Vaughn Vernon "Implementing Domain-Driven Design" 2013 — book — tactical patterns, "small aggregates" rule
5
+ - Scott Wlaschin "Domain Modeling Made Functional" — https://pragprog.com/titles/swdddf — DDD + FP synthesis, make illegal states unrepresentable
6
+ - Khalil Stemmler practical DDD in TypeScript — https://khalilstemmler.com/articles/categories/domain-driven-design/ — TS-flavored tactical examples
7
+ - Vlad Khorikov "Domain Modeling" course/blog — https://enterprisecraftsmanship.com — always-valid domain model, Result over exceptions
8
+ - Vaughn Vernon "Domain-Driven Design Distilled" 2016 — book — shorter intro
9
+ - citypaul/.dotfiles DDD notes — ubiquitous language enforcement
10
+
11
+ Strategy: distill. Reject CQRS, event sourcing, mediator, generic Repository<T> as defaults (per docs/PHILOSOPHY.md Wing Chun). Sub-domain analysis (Core/Supporting/Generic) delegated upstream to brainstorm / plan-review (CEO lens).
12
+
13
+ Companion hook: ubiquitous-language-lint (advisory).