voidmachine 0.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -4
  3. package/bin/void-harness.mjs +12 -0
  4. package/bin/void-machine.mjs +12 -0
  5. package/core-assets/.claude-plugin/plugin.json +285 -0
  6. package/core-assets/.gitkeep +0 -0
  7. package/core-assets/PHILOSOPHY.md +218 -0
  8. package/core-assets/PROJECT-DOCTRINE.template.md +14 -0
  9. package/core-assets/adapters/security/manifest.yaml +96 -0
  10. package/core-assets/agents/.gitkeep +0 -0
  11. package/core-assets/agents/accessibility-specialist.md +59 -0
  12. package/core-assets/agents/api-integration-engineer.md +59 -0
  13. package/core-assets/agents/code-explorer.md +94 -0
  14. package/core-assets/agents/code-explorer.source +7 -0
  15. package/core-assets/agents/data-migration-engineer.md +59 -0
  16. package/core-assets/agents/devex-docs-engineer.md +57 -0
  17. package/core-assets/agents/doctrine-critic.md +91 -0
  18. package/core-assets/agents/doctrine-critic.source +11 -0
  19. package/core-assets/agents/domain-architect.md +56 -0
  20. package/core-assets/agents/experience-designer.md +59 -0
  21. package/core-assets/agents/frontend-engineer.md +60 -0
  22. package/core-assets/agents/independent-code-reviewer.md +62 -0
  23. package/core-assets/agents/migration-planner.md +97 -0
  24. package/core-assets/agents/migration-planner.source +7 -0
  25. package/core-assets/agents/observability-sre-engineer.md +59 -0
  26. package/core-assets/agents/pdf-specialist.md +58 -0
  27. package/core-assets/agents/performance-engineer.md +58 -0
  28. package/core-assets/agents/product-challenger.md +55 -0
  29. package/core-assets/agents/security-engineer.md +66 -0
  30. package/core-assets/agents/silent-failure-hunter.md +94 -0
  31. package/core-assets/agents/silent-failure-hunter.source +8 -0
  32. package/core-assets/agents/solution-architect.md +57 -0
  33. package/core-assets/agents/test-qa-engineer.md +60 -0
  34. package/core-assets/agents/type-design-analyzer.md +93 -0
  35. package/core-assets/agents/type-design-analyzer.source +8 -0
  36. package/core-assets/agents/visual-craft-director.md +62 -0
  37. package/core-assets/codex/hooks.json +172 -0
  38. package/core-assets/contract-history/visual-craft-director/v2.yaml +43 -0
  39. package/core-assets/data/catalog.v3.json +10527 -0
  40. package/core-assets/data/certification.json +1826 -0
  41. package/core-assets/data/identity.json +8 -0
  42. package/core-assets/data/model.json +4256 -0
  43. package/core-assets/enforce/ci-enforce.sh +183 -0
  44. package/core-assets/hooks/_checks.sh +145 -0
  45. package/core-assets/hooks/_hooklib.sh +163 -0
  46. package/core-assets/hooks/_syntax-worker.cjs +503 -0
  47. package/core-assets/hooks/_void-hook.mjs +15448 -0
  48. package/core-assets/hooks/activation-meter.sh +13 -0
  49. package/core-assets/hooks/anti-ai-slop-grep.sh +38 -0
  50. package/core-assets/hooks/auto-format.sh +9 -0
  51. package/core-assets/hooks/axe-precommit.sh +35 -0
  52. package/core-assets/hooks/block-dangerous-bash.sh +10 -0
  53. package/core-assets/hooks/block-protected-push.sh +81 -0
  54. package/core-assets/hooks/boundary-direction-check.sh +10 -0
  55. package/core-assets/hooks/control-character-grep.sh +10 -0
  56. package/core-assets/hooks/fowler-refactors.txt +71 -0
  57. package/core-assets/hooks/large-cl-grep.sh +9 -0
  58. package/core-assets/hooks/llm-cost-precommit.sh +55 -0
  59. package/core-assets/hooks/migration-lint.sh +58 -0
  60. package/core-assets/hooks/migration-pr-template.sh +55 -0
  61. package/core-assets/hooks/no-ai-design-slop.sh +10 -0
  62. package/core-assets/hooks/no-any-grep.sh +10 -0
  63. package/core-assets/hooks/no-as-cast-grep.sh +10 -0
  64. package/core-assets/hooks/no-console-log-grep.sh +10 -0
  65. package/core-assets/hooks/no-null-grep.sh +10 -0
  66. package/core-assets/hooks/no-only-no-skip.sh +10 -0
  67. package/core-assets/hooks/outcome-meter.sh +13 -0
  68. package/core-assets/hooks/pre-PR-review-evidence.sh +47 -0
  69. package/core-assets/hooks/protect-sensitive-files.sh +10 -0
  70. package/core-assets/hooks/refactor-named-grep.sh +49 -0
  71. package/core-assets/hooks/secret-in-content.sh +10 -0
  72. package/core-assets/hooks/sessionstart-context.sh +9 -0
  73. package/core-assets/hooks/stop-typecheck.sh +9 -0
  74. package/core-assets/hooks/tdd-guard.md +90 -0
  75. package/core-assets/hooks/tdd-guard.sh +10 -0
  76. package/core-assets/hooks/test-name-lint.sh +10 -0
  77. package/core-assets/hooks/tidying-commit-prefix.sh +37 -0
  78. package/core-assets/hooks/trim-large-output.sh +9 -0
  79. package/core-assets/hooks/tsc-noemit-precommit.sh +22 -0
  80. package/core-assets/hooks/ubiquitous-language-lint.sh +58 -0
  81. package/core-assets/hooks/viewport-screenshot-gate.sh +48 -0
  82. package/core-assets/modules/.gitkeep +0 -0
  83. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/.source +7 -0
  84. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/SKILL.md +164 -0
  85. package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/harness.yaml +14 -0
  86. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/.source +7 -0
  87. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/SKILL.md +178 -0
  88. package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/harness.yaml +14 -0
  89. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/.source +8 -0
  90. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/SKILL.md +209 -0
  91. package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/harness.yaml +14 -0
  92. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/.source +7 -0
  93. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/SKILL.md +194 -0
  94. package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/harness.yaml +14 -0
  95. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/.source +5 -0
  96. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/SKILL.md +160 -0
  97. package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/harness.yaml +14 -0
  98. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/.source +5 -0
  99. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/SKILL.md +70 -0
  100. package/core-assets/packs/pack-monorepo/skills/void-package-extraction/harness.yaml +14 -0
  101. package/core-assets/packs/pack-monorepo/skills/void-service-package/.source +5 -0
  102. package/core-assets/packs/pack-monorepo/skills/void-service-package/SKILL.md +122 -0
  103. package/core-assets/packs/pack-monorepo/skills/void-service-package/harness.yaml +14 -0
  104. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/.source +7 -0
  105. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/SKILL.md +116 -0
  106. package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/harness.yaml +14 -0
  107. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/.source +5 -0
  108. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/SKILL.md +162 -0
  109. package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/harness.yaml +14 -0
  110. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/.source +5 -0
  111. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/SKILL.md +161 -0
  112. package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/harness.yaml +14 -0
  113. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/.source +5 -0
  114. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/SKILL.md +176 -0
  115. package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/harness.yaml +14 -0
  116. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/.source +5 -0
  117. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/SKILL.md +129 -0
  118. package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/harness.yaml +14 -0
  119. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/.source +5 -0
  120. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/SKILL.md +107 -0
  121. package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/harness.yaml +14 -0
  122. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/.source +5 -0
  123. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/SKILL.md +153 -0
  124. package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/harness.yaml +14 -0
  125. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/.source +5 -0
  126. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/SKILL.md +204 -0
  127. package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/harness.yaml +14 -0
  128. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/.source +8 -0
  129. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/SKILL.md +266 -0
  130. package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/harness.yaml +14 -0
  131. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/.source +5 -0
  132. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/SKILL.md +178 -0
  133. package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/harness.yaml +14 -0
  134. package/core-assets/packs/pack-react/skills/void-accessibility-check/.source +8 -0
  135. package/core-assets/packs/pack-react/skills/void-accessibility-check/SKILL.md +136 -0
  136. package/core-assets/packs/pack-react/skills/void-accessibility-check/harness.yaml +14 -0
  137. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/.source +5 -0
  138. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/SKILL.md +116 -0
  139. package/core-assets/packs/pack-react/skills/void-client-vs-server-component/harness.yaml +14 -0
  140. package/core-assets/packs/pack-react/skills/void-form-pattern/.source +7 -0
  141. package/core-assets/packs/pack-react/skills/void-form-pattern/SKILL.md +157 -0
  142. package/core-assets/packs/pack-react/skills/void-form-pattern/harness.yaml +14 -0
  143. package/core-assets/packs/pack-react/skills/void-state-architecture/.source +5 -0
  144. package/core-assets/packs/pack-react/skills/void-state-architecture/SKILL.md +160 -0
  145. package/core-assets/packs/pack-react/skills/void-state-architecture/harness.yaml +14 -0
  146. package/core-assets/packs/pack-server/skills/void-background-job-pattern/.source +6 -0
  147. package/core-assets/packs/pack-server/skills/void-background-job-pattern/SKILL.md +214 -0
  148. package/core-assets/packs/pack-server/skills/void-background-job-pattern/harness.yaml +14 -0
  149. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/.source +6 -0
  150. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/SKILL.md +168 -0
  151. package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/harness.yaml +14 -0
  152. package/core-assets/packs/pack-server/skills/void-env-validation/.source +6 -0
  153. package/core-assets/packs/pack-server/skills/void-env-validation/SKILL.md +131 -0
  154. package/core-assets/packs/pack-server/skills/void-env-validation/harness.yaml +14 -0
  155. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/.source +6 -0
  156. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/SKILL.md +149 -0
  157. package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/harness.yaml +14 -0
  158. package/core-assets/packs/pack-server/skills/void-server-action/.source +7 -0
  159. package/core-assets/packs/pack-server/skills/void-server-action/SKILL.md +181 -0
  160. package/core-assets/packs/pack-server/skills/void-server-action/harness.yaml +14 -0
  161. package/core-assets/packs/pack-server/skills/void-testing-server-modules/.source +7 -0
  162. package/core-assets/packs/pack-server/skills/void-testing-server-modules/SKILL.md +73 -0
  163. package/core-assets/packs/pack-server/skills/void-testing-server-modules/harness.yaml +14 -0
  164. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/.source +7 -0
  165. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/SKILL.md +205 -0
  166. package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/harness.yaml +14 -0
  167. package/core-assets/policies/core.yaml +95 -0
  168. package/core-assets/policies/ui.yaml +23 -0
  169. package/core-assets/profiles/base.yaml +29 -0
  170. package/core-assets/profiles/expo-config.yaml +36 -0
  171. package/core-assets/profiles/expo.yaml +35 -0
  172. package/core-assets/profiles/monorepo.yaml +33 -0
  173. package/core-assets/profiles/nextjs-config.yaml +31 -0
  174. package/core-assets/profiles/nextjs.yaml +31 -0
  175. package/core-assets/profiles/node-server.yaml +31 -0
  176. package/core-assets/profiles/pwa.yaml +33 -0
  177. package/core-assets/profiles/react.yaml +39 -0
  178. package/core-assets/profiles/sql.yaml +39 -0
  179. package/core-assets/profiles/typescript.yaml +39 -0
  180. package/core-assets/skills/.gitkeep +0 -0
  181. package/core-assets/skills/void-accessibility/.source +15 -0
  182. package/core-assets/skills/void-accessibility/SKILL.md +275 -0
  183. package/core-assets/skills/void-accessibility/harness.yaml +17 -0
  184. package/core-assets/skills/void-api-and-interface-design/.source +13 -0
  185. package/core-assets/skills/void-api-and-interface-design/SKILL.md +231 -0
  186. package/core-assets/skills/void-api-and-interface-design/harness.yaml +16 -0
  187. package/core-assets/skills/void-async-safety/.source +13 -0
  188. package/core-assets/skills/void-async-safety/SKILL.md +287 -0
  189. package/core-assets/skills/void-async-safety/harness.yaml +16 -0
  190. package/core-assets/skills/void-audit/.source +15 -0
  191. package/core-assets/skills/void-audit/SKILL.md +83 -0
  192. package/core-assets/skills/void-audit/harness.yaml +14 -0
  193. package/core-assets/skills/void-autopilot/.source +21 -0
  194. package/core-assets/skills/void-autopilot/SKILL.md +394 -0
  195. package/core-assets/skills/void-autopilot/harness.yaml +14 -0
  196. package/core-assets/skills/void-brainstorm/.source +14 -0
  197. package/core-assets/skills/void-brainstorm/SKILL.md +278 -0
  198. package/core-assets/skills/void-brainstorm/harness.yaml +14 -0
  199. package/core-assets/skills/void-checkpoint/.source +39 -0
  200. package/core-assets/skills/void-checkpoint/SKILL.md +227 -0
  201. package/core-assets/skills/void-checkpoint/harness.yaml +14 -0
  202. package/core-assets/skills/void-claude-md/.source +15 -0
  203. package/core-assets/skills/void-claude-md/SKILL.md +180 -0
  204. package/core-assets/skills/void-claude-md/harness.yaml +14 -0
  205. package/core-assets/skills/void-code-review/.source +14 -0
  206. package/core-assets/skills/void-code-review/SKILL.md +232 -0
  207. package/core-assets/skills/void-code-review/harness.yaml +15 -0
  208. package/core-assets/skills/void-commit-discipline/.source +9 -0
  209. package/core-assets/skills/void-commit-discipline/SKILL.md +211 -0
  210. package/core-assets/skills/void-commit-discipline/harness.yaml +15 -0
  211. package/core-assets/skills/void-context/.source +15 -0
  212. package/core-assets/skills/void-context/SKILL.md +166 -0
  213. package/core-assets/skills/void-context/harness.yaml +14 -0
  214. package/core-assets/skills/void-debug/.source +11 -0
  215. package/core-assets/skills/void-debug/SKILL.md +211 -0
  216. package/core-assets/skills/void-debug/harness.yaml +14 -0
  217. package/core-assets/skills/void-decide/.source +9 -0
  218. package/core-assets/skills/void-decide/SKILL.md +147 -0
  219. package/core-assets/skills/void-decide/harness.yaml +14 -0
  220. package/core-assets/skills/void-devex-audit/.source +8 -0
  221. package/core-assets/skills/void-devex-audit/SKILL.md +113 -0
  222. package/core-assets/skills/void-devex-audit/harness.yaml +15 -0
  223. package/core-assets/skills/void-doctor/.source +15 -0
  224. package/core-assets/skills/void-doctor/SKILL.md +83 -0
  225. package/core-assets/skills/void-doctor/harness.yaml +14 -0
  226. package/core-assets/skills/void-domain-driven-design/.source +13 -0
  227. package/core-assets/skills/void-domain-driven-design/SKILL.md +292 -0
  228. package/core-assets/skills/void-domain-driven-design/harness.yaml +15 -0
  229. package/core-assets/skills/void-frontend-design/.source +19 -0
  230. package/core-assets/skills/void-frontend-design/SKILL.md +274 -0
  231. package/core-assets/skills/void-frontend-design/harness.yaml +17 -0
  232. package/core-assets/skills/void-functional/.source +14 -0
  233. package/core-assets/skills/void-functional/SKILL.md +312 -0
  234. package/core-assets/skills/void-functional/harness.yaml +15 -0
  235. package/core-assets/skills/void-graph/.source +15 -0
  236. package/core-assets/skills/void-graph/SKILL.md +80 -0
  237. package/core-assets/skills/void-graph/harness.yaml +14 -0
  238. package/core-assets/skills/void-hexagonal-architecture/.source +12 -0
  239. package/core-assets/skills/void-hexagonal-architecture/SKILL.md +276 -0
  240. package/core-assets/skills/void-hexagonal-architecture/harness.yaml +15 -0
  241. package/core-assets/skills/void-implement/.source +39 -0
  242. package/core-assets/skills/void-implement/SKILL.md +192 -0
  243. package/core-assets/skills/void-implement/harness.yaml +14 -0
  244. package/core-assets/skills/void-learn/.source +13 -0
  245. package/core-assets/skills/void-learn/SKILL.md +226 -0
  246. package/core-assets/skills/void-learn/harness.yaml +14 -0
  247. package/core-assets/skills/void-llm-cost-discipline/.source +13 -0
  248. package/core-assets/skills/void-llm-cost-discipline/SKILL.md +299 -0
  249. package/core-assets/skills/void-llm-cost-discipline/harness.yaml +15 -0
  250. package/core-assets/skills/void-make-pdf/.source +9 -0
  251. package/core-assets/skills/void-make-pdf/SKILL.md +52 -0
  252. package/core-assets/skills/void-make-pdf/harness.yaml +15 -0
  253. package/core-assets/skills/void-merge/.source +8 -0
  254. package/core-assets/skills/void-merge/SKILL.md +111 -0
  255. package/core-assets/skills/void-merge/harness.yaml +14 -0
  256. package/core-assets/skills/void-migrations/.source +13 -0
  257. package/core-assets/skills/void-migrations/SKILL.md +264 -0
  258. package/core-assets/skills/void-migrations/harness.yaml +17 -0
  259. package/core-assets/skills/void-observability/.source +12 -0
  260. package/core-assets/skills/void-observability/SKILL.md +245 -0
  261. package/core-assets/skills/void-observability/harness.yaml +15 -0
  262. package/core-assets/skills/void-orchestrate/.source +16 -0
  263. package/core-assets/skills/void-orchestrate/SKILL.md +311 -0
  264. package/core-assets/skills/void-orchestrate/harness.yaml +10 -0
  265. package/core-assets/skills/void-plan/.source +15 -0
  266. package/core-assets/skills/void-plan/SKILL.md +246 -0
  267. package/core-assets/skills/void-plan/harness.yaml +14 -0
  268. package/core-assets/skills/void-plan-review/.source +12 -0
  269. package/core-assets/skills/void-plan-review/SKILL.md +128 -0
  270. package/core-assets/skills/void-plan-review/harness.yaml +15 -0
  271. package/core-assets/skills/void-qa/.source +15 -0
  272. package/core-assets/skills/void-qa/SKILL.md +103 -0
  273. package/core-assets/skills/void-qa/harness.yaml +15 -0
  274. package/core-assets/skills/void-refactor/.source +9 -0
  275. package/core-assets/skills/void-refactor/SKILL.md +220 -0
  276. package/core-assets/skills/void-refactor/harness.yaml +15 -0
  277. package/core-assets/skills/void-retrospective/.source +9 -0
  278. package/core-assets/skills/void-retrospective/SKILL.md +71 -0
  279. package/core-assets/skills/void-retrospective/harness.yaml +15 -0
  280. package/core-assets/skills/void-security-audit/.source +12 -0
  281. package/core-assets/skills/void-security-audit/SKILL.md +138 -0
  282. package/core-assets/skills/void-security-audit/harness.yaml +15 -0
  283. package/core-assets/skills/void-security-guidance/.source +13 -0
  284. package/core-assets/skills/void-security-guidance/SKILL.md +294 -0
  285. package/core-assets/skills/void-security-guidance/harness.yaml +15 -0
  286. package/core-assets/skills/void-source-driven-development/.source +12 -0
  287. package/core-assets/skills/void-source-driven-development/SKILL.md +158 -0
  288. package/core-assets/skills/void-source-driven-development/harness.yaml +15 -0
  289. package/core-assets/skills/void-tdd/.source +15 -0
  290. package/core-assets/skills/void-tdd/SKILL.md +394 -0
  291. package/core-assets/skills/void-tdd/harness.yaml +15 -0
  292. package/core-assets/skills/void-testing/.source +19 -0
  293. package/core-assets/skills/void-testing/SKILL.md +301 -0
  294. package/core-assets/skills/void-testing/harness.yaml +17 -0
  295. package/core-assets/skills/void-ticket/.source +18 -0
  296. package/core-assets/skills/void-ticket/SKILL.md +238 -0
  297. package/core-assets/skills/void-ticket/harness.yaml +14 -0
  298. package/core-assets/skills/void-typescript-strict/.source +10 -0
  299. package/core-assets/skills/void-typescript-strict/SKILL.md +294 -0
  300. package/core-assets/skills/void-typescript-strict/harness.yaml +17 -0
  301. package/core-assets/skills/void-ui-review/.source +12 -0
  302. package/core-assets/skills/void-ui-review/SKILL.md +97 -0
  303. package/core-assets/skills/void-ui-review/harness.yaml +15 -0
  304. package/core-assets/skills/void-verify/.source +12 -0
  305. package/core-assets/skills/void-verify/SKILL.md +184 -0
  306. package/core-assets/skills/void-verify/harness.yaml +15 -0
  307. package/core-assets/specialists/accessibility-specialist.source +11 -0
  308. package/core-assets/specialists/accessibility-specialist.yaml +30 -0
  309. package/core-assets/specialists/api-integration-engineer.source +11 -0
  310. package/core-assets/specialists/api-integration-engineer.yaml +30 -0
  311. package/core-assets/specialists/data-migration-engineer.source +11 -0
  312. package/core-assets/specialists/data-migration-engineer.yaml +30 -0
  313. package/core-assets/specialists/devex-docs-engineer.source +11 -0
  314. package/core-assets/specialists/devex-docs-engineer.yaml +29 -0
  315. package/core-assets/specialists/domain-architect.source +11 -0
  316. package/core-assets/specialists/domain-architect.yaml +28 -0
  317. package/core-assets/specialists/experience-designer.source +15 -0
  318. package/core-assets/specialists/experience-designer.yaml +38 -0
  319. package/core-assets/specialists/frontend-engineer.source +11 -0
  320. package/core-assets/specialists/frontend-engineer.yaml +32 -0
  321. package/core-assets/specialists/independent-code-reviewer.source +10 -0
  322. package/core-assets/specialists/independent-code-reviewer.yaml +38 -0
  323. package/core-assets/specialists/migrations.json +15 -0
  324. package/core-assets/specialists/observability-sre-engineer.source +11 -0
  325. package/core-assets/specialists/observability-sre-engineer.yaml +30 -0
  326. package/core-assets/specialists/pdf-specialist.source +11 -0
  327. package/core-assets/specialists/pdf-specialist.yaml +29 -0
  328. package/core-assets/specialists/performance-engineer.source +11 -0
  329. package/core-assets/specialists/performance-engineer.yaml +29 -0
  330. package/core-assets/specialists/product-challenger.source +10 -0
  331. package/core-assets/specialists/product-challenger.yaml +27 -0
  332. package/core-assets/specialists/security-engineer.source +13 -0
  333. package/core-assets/specialists/security-engineer.yaml +41 -0
  334. package/core-assets/specialists/solution-architect.source +13 -0
  335. package/core-assets/specialists/solution-architect.yaml +32 -0
  336. package/core-assets/specialists/test-qa-engineer.source +14 -0
  337. package/core-assets/specialists/test-qa-engineer.yaml +35 -0
  338. package/core-assets/specialists/visual-craft-director.source +17 -0
  339. package/core-assets/specialists/visual-craft-director.yaml +60 -0
  340. package/core-assets/templates/github/dependency-audit.mjs +54 -0
  341. package/core-assets/templates/github/void-dependency-audit.yml +35 -0
  342. package/core-assets/templates/github/void-security.yml +85 -0
  343. package/dist/main.js +70173 -0
  344. package/package.json +68 -4
@@ -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,16 @@
1
+ Distilled from official contracts, checked against installed versions on 2026-10-08:
2
+ - Herdr 0.9.0 automation: https://raw.githubusercontent.com/herdrdev/herdr/v0.9.0/docs/next/website/src/content/docs/agent-automation.mdx
3
+ - Herdr 0.9.0 restoration: https://raw.githubusercontent.com/herdrdev/herdr/v0.9.0/docs/next/website/src/content/docs/session-state.mdx
4
+ - Herdr metadata implementation: https://github.com/herdrdev/herdr/blob/v0.9.0/src/metadata_tokens.rs
5
+ - Herdr resume_argv version boundary: https://github.com/herdrdev/herdr/blob/v0.9.2/CHANGELOG.md
6
+ - Native runtime CLI help (Codex and Claude) and mission-engine review-receipt/specialist-lifecycle contracts in this repository.
7
+ Adaptations/rejections: docs/plans/skill-audits/void-orchestrate.md.
8
+
9
+ Adaptive delegation, researched 2026-10-13 (distilled, no upstream code copied):
10
+ - OpenAI native subagents: https://learn.chatgpt.com/docs/agent-configuration/subagents
11
+ - Anthropic research teams: https://www.anthropic.com/engineering/multi-agent-research-system
12
+ - OpenClaw context and collection: https://docs.openclaw.ai/tools/subagents/tool-reference
13
+ - OpenClaw lifecycle: https://docs.openclaw.ai/tools/subagents/slash-command
14
+ - OpenClaw responsibilities: https://docs.openclaw.ai/concepts/parallel-specialist-lanes
15
+ - Hermes delegation: https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation
16
+ - Hermes task selection: https://hermes-agent.nousresearch.com/docs/guides/delegation-patterns
@@ -0,0 +1,311 @@
1
+ ---
2
+ name: void-orchestrate
3
+ description: Delegate independent research and substantial implementation through native agents; choose context, isolation and bounded concurrency, collect results and preserve review evidence. Use the supported session host.
4
+ ---
5
+
6
+ # Orchestrate
7
+
8
+ The user-facing coordinator keeps intent, decisions and synthesis. This skill owns
9
+ adaptive delegation, transport and continuity; `void-implement` owns delivery quality
10
+ and `void-autopilot` its loop. Neither a pane nor a report grants merge permission.
11
+
12
+ ## Choose work and capabilities
13
+
14
+ Read project instructions, the approved task and Git state; preserve other writers'
15
+ changes. Before dispatch, inspect the actual native agent tools and their supported
16
+ context, permissions, completion and resume capabilities. Use the best supported
17
+ capabilities for the task in the current session; an installed executable or an
18
+ environment hint alone does not validate a host, identity or permission.
19
+
20
+ Herdr is optional for consumers, not discretionary inside a validated Herdr session.
21
+ When fresh discovery validates the coordinator in Herdr, use its adapter below for
22
+ durable terminal workers and mission visibility. Short agents remain native; never
23
+ duplicate an agent to give it a pane. Outside Herdr, use the current supported host
24
+ (such as tmux) when its required capabilities and ownership can be verified. This
25
+ policy adds no tmux transport and never relaunches through the legacy kernel.
26
+ Without supported presentation, retain native delegation and report the limitation;
27
+ do not claim durability from a pane or unsupported API. Failed or ambiguous host
28
+ discovery blocks the affected host action: diagnose it, never silently switch hosts
29
+ or act on an unrelated project. Native work independent of that action may continue.
30
+
31
+ - Work directly for a tiny targeted change, a single tool call, mechanical processing,
32
+ or tightly coupled work where delegation adds no useful separation.
33
+ - Delegate bounded independent research and exploration during brainstorm and plan.
34
+ Keep the user conversation, evaluation of sources and decisions in the coordinator.
35
+ - Delegate substantial implementation to one writer when supported. A writer
36
+ already assigned the unit executes it; never delegate the same complete workflow
37
+ recursively. Retain that writer for corrections. Before parallel feature slices,
38
+ define disjoint ownership, dependencies and acceptance of the integrated result.
39
+ - No native agent capability: execute sequentially and state the limitation. A
40
+ mandatory independent review or required isolation remains a blocker; do not
41
+ replace it with self-review or silently weaken its requirement.
42
+
43
+ ## Brief and bound the delegation
44
+
45
+ Use a fresh context by default. Choose a supported fork only when the task needs
46
+ conversation history. Give objective, relevant context/source revision, owned paths,
47
+ permissions, acceptance, result format and bounds. Tell writers they are not alone
48
+ and must preserve others' changes. Ask researchers for conclusions, source references,
49
+ uncertainty and remaining questions, not all intermediate logs. Ordinary research
50
+ uses this lightweight brief: do not invent specialist events or review receipts.
51
+ Formal specialist envelopes and evidence follow the independent contract below.
52
+
53
+ Count writer, research and review children together against observed available runtime slots
54
+ and the coordinator's bounded dispatch; queue work when full. Preserve tighter caller
55
+ limits, including Autopilot's ticket cap and the central schema's four-worker limit.
56
+ This is no machine-wide quota. Do not create recursive child coordinators or redispatch
57
+ the same complete workflow. Required formal specialists remain dispatched by their
58
+ designated owner within the shared available capacity. Do not duplicate a child's work
59
+ in the coordinator. Run independent work concurrently only when it helps the critical
60
+ path; use ordinary tools for mechanical operations. Respect permissions throughout.
61
+
62
+ Read-only research needs no new worktree. Reviews use an immutable exact subject.
63
+ Concurrent authors need isolated assigned worktrees and disjoint ownership; if
64
+ isolation fails, serialize rather than share concurrent writes. Required isolation
65
+ that cannot be met stays blocked. A sole writer may reuse its assigned checkout;
66
+ Autopilot retains its per-ticket worktree requirement. Follow the universal durable
67
+ worktree invariant and existing shared Git restrictions, irrespective of display.
68
+
69
+ ## Collect and resume honestly
70
+
71
+ Prefer native completion events; otherwise wait in bounded slices. A wait timeout
72
+ is not failure. Reconcile an uncertain launch or side effect before retrying. Use
73
+ partial results when useful, distinguish failure from missing output, and verify
74
+ acceptance before claiming success. Reuse the same session for corrections; confirm
75
+ that a new instruction was consumed or reflected in the result before calling it applied.
76
+
77
+ Distinguish saved work, live session, retained result and delivered result. A finished
78
+ turn or report alone proves no accepted outcome or crash recovery. Use the selected
79
+ runtime's actual persistence/recovery path; expose a lost session or unknown effects.
80
+ Never invent a durable inbox. Preserve formal receipts separately from working notes.
81
+
82
+ ## Short native specialists
83
+
84
+ Pass the returned specialist envelope unchanged: runtime, agentName, missionId,
85
+ contextPack and, when present, reviewSubject and reviewScope. Invoke the runtime's
86
+ native fresh-context primitive; native Agent calls are not intercepted. Keep the
87
+ real opaque context ID exactly as returned, including slash-prefixed names; it is
88
+ data, never a filesystem path. Record actual starts/completions with
89
+ `mission specialist-event`; never invent IDs or convert a failed call into a review.
90
+ Before another invocation, reconcile any existing invocation for the same envelope.
91
+ Preserve the complete result; incomplete results go back to the same agent.
92
+ With `panel.provider: orchestrator`, only ORCH launches and collects this panel.
93
+ Missing required native capability is reported with cause and next action.
94
+
95
+ ## Herdr adapter: recovery
96
+
97
+ The following Herdr sections apply when the session-host policy selects this adapter.
98
+ Native delegation without it does not require these central files or pane discovery.
99
+
100
+ Read project instructions, the approved task and the current Git status. Preserve
101
+ other writers' changes. Resolve the canonical Git common directory, SHA-256 its
102
+ absolute real path as UTF-8, and inspect
103
+ `~/.local/state/orchestra/<project>/<mission>/`. Never use an inherited workspace
104
+ variable or a stale pane ID as authority. Read mission.md, the applicable
105
+ workers/<label>/brief.md and report.md. Re-read `herdr pane list` before every
106
+ identity decision. Match **label + worktree**, using the canonical worktree path.
107
+ Refuse multiple matches, incomplete discovery, symlinks, traversal and invalid data.
108
+ After reattachment/restart, ORCH atomically updates pane_id and coordinator.workspace
109
+ from that validated fresh inventory. Hooks and workers never write these hints.
110
+ A missing unrelated historical worktree does not invalidate a current identity.
111
+
112
+ The coordinator is the existing ORCH session, never a second agent opened for display.
113
+ Resolve its own label + worktree before selecting its workspace. Keep each writer
114
+ in its assigned worktree. Do not affect any other project, workspace or pane.
115
+ An uncertain launch or prompt acknowledgement requires reconciliation of that same
116
+ worker before retrying. A timeout proves neither launch failure nor prompt loss.
117
+
118
+ ## Herdr adapter: explicit coordinator context
119
+
120
+ If unique discovery refuses multiple compatible missions, ORCH reads the target
121
+ mission and reports, then atomically replaces its local, unversioned
122
+ `<canonical worktree>/.void/machine/orchestra-selection.json`. Schema 1 is strict
123
+ JSON, at most 4096 UTF-8 bytes: `{ "schema": 1, "project": "<project-sha256>",
124
+ "mission": "<existing-id>", "coordinator": { "label": "ORCH", "worktree":
125
+ "/absolute/canonical/worktree" } }`. ORCH alone writes it; hooks never repair it.
126
+ No unknown or duplicate keys, YAML, traversal, symlinks or partial writes.
127
+
128
+ This selects context only, never execution state or permissions. Full bounded
129
+ central discovery still runs; malformed unrelated missions or limits refuse.
130
+ A stale/invalid binding never falls back. Verify selected coordinator label and
131
+ canonical worktree against the current worktree and a fresh `herdr pane list`;
132
+ missing or duplicate live matches refuse. Never prefer timestamps, running status
133
+ or pane tokens to decide intent. Without a binding, preserve unique discovery.
134
+ Clear/compact/resume re-read selection and central state without launching workers.
135
+ Separate worker worktrees retain their own mission, attempt and report discovery.
136
+ A selected terminal mission retains the guarded cleanup below: never clear tokens
137
+ belonging to another mission. No binding belongs in the programme descriptor.
138
+
139
+ ## Herdr adapter: central files and ownership
140
+
141
+ Use schema: 1 YAML frontmatter, strict string keys and one document, followed by
142
+ Markdown. Reject duplicate keys, tags, anchors, aliases and unknown fields. Bound
143
+ mission/report to 64 KiB, brief to 256 KiB, discovery to 64 entries and 1 MiB of
144
+ mission bytes; exceeding a bound is incomplete, never a unique match.
145
+ See the shipped technical contract `docs/ORCHESTRA.md` in the harness source for
146
+ schemas; the operational fields are listed here so an installed skill is sufficient.
147
+
148
+ - mission.md: schema, mission, project, status, updated_at (UTC ISO), repository
149
+ (canonical Git common path), coordinator {label, worktree, workspace?}, workers.
150
+ - Worker entries: label, agent (codex or claude), worktree, branch, ticket, status,
151
+ attempt; optional pane_id and session are hints only. At most four workers.
152
+ - Coordinator status and worker status: planned, running, blocked, done, failed.
153
+ - report.md: schema, mission, attempt, worker, branch, status (running, blocked,
154
+ done, failed), commits (full SHAs), tests (passed, failed, not_run), updated_at.
155
+ Body: actual commands/results, proof locations, risks, questions and remaining work.
156
+ - brief.md: absolute paths, exact base, footprint, acceptance criteria, ownership,
157
+ permissions, forbidden effects and current attempt. No secrets. Explicitly warn
158
+ that other writers exist and their changes must be preserved.
159
+
160
+ ORCH alone writes mission and briefs; each worker alone writes its report. Use an
161
+ atomic replacement: write an exclusive temporary sibling, then rename. Hooks never
162
+ write these files. A new work turn gets a new attempt; resume keeps its attempt.
163
+ A valid report for the current mission/attempt overrides workers[].status at every
164
+ event. An absent report falls back to the manifest. Malformed, foreign, partial or
165
+ unrecognized stale reports refuse usage; never turn a parse failure into absence.
166
+ The files carry coordination state, not independent review proof.
167
+
168
+ ## Herdr adapter: copyable starting files
169
+
170
+ Replace the example project hash with SHA-256 of the canonical common Git path.
171
+ Replace every path, branch, ticket and timestamp from actual observations. These
172
+ three files are authored by their owner, never by the hook.
173
+
174
+ mission.md:
175
+
176
+ ```yaml
177
+ ---
178
+ schema: 1
179
+ mission: dev-42
180
+ project: "<project-sha256>"
181
+ status: planned
182
+ updated_at: "2026-10-08T10:00:00.000Z"
183
+ repository: /absolute/repository/.git
184
+ coordinator:
185
+ label: ORCH
186
+ worktree: /absolute/repository
187
+ workspace: wA
188
+ workers:
189
+ - label: WORK-1
190
+ agent: codex
191
+ worktree: /absolute/worktrees/dev-42
192
+ branch: work/dev-42
193
+ ticket: DEV-42
194
+ status: planned
195
+ attempt: implementation-1
196
+ ---
197
+ # Mission
198
+ Scope, acceptance criteria, canonical mission journal and proof locations.
199
+ ```
200
+
201
+ workers/WORK-1/brief.md:
202
+
203
+ ```yaml
204
+ ---
205
+ schema: 1
206
+ mission: dev-42
207
+ attempt: implementation-1
208
+ worker: WORK-1
209
+ ---
210
+ # Work
211
+ Worktree: /absolute/worktrees/dev-42. Branch: work/dev-42.
212
+ Base: <verified full commit SHA>. Ticket: DEV-42.
213
+ Footprint: <exact owned files/directories>; preserve every other writer's edits.
214
+ Acceptance: <complete observable criteria and verification commands>.
215
+ Limits: <role permissions, forbidden effects, human gates>.
216
+ Report: /absolute/mission/workers/WORK-1/report.md, owned only by this worker.
217
+ Resume: <actual runtime session and the recipe from the table below>.
218
+ ```
219
+
220
+ workers/WORK-1/report.md:
221
+
222
+ ```yaml
223
+ ---
224
+ schema: 1
225
+ mission: dev-42
226
+ attempt: implementation-1
227
+ worker: WORK-1
228
+ branch: work/dev-42
229
+ status: running
230
+ commits: []
231
+ tests: not_run
232
+ updated_at: "2026-10-08T10:00:00.000Z"
233
+ ---
234
+ # Checkpoint
235
+ Completed: <actual changes>. Verification: <commands, results and proof paths>.
236
+ Remaining: <work and exact next action>. Risks/questions: <observed limitations>.
237
+ ```
238
+
239
+ ## Herdr adapter: durable workers
240
+
241
+ Read installed `herdr --help`, `herdr agent --help` and the live schema before
242
+ issuing commands. Use structured argv, exact acknowledged identities and bounded
243
+ waits/output. The launch recipes for the selected worktree are:
244
+
245
+ | Kind | Launch argv | Resume argv | Short contexts | ctx capability |
246
+ | --- | --- | --- | --- | --- |
247
+ | codex | `--no-daemon --add-dir <absolute-mission>` | `resume <actual-session> --no-daemon --add-dir <absolute-mission>` | Native fresh context | Unmeasurable without a supported usage source |
248
+ | claude | `--add-dir <absolute-mission>` | `--resume <actual-session> --add-dir <absolute-mission>` | Native Agent, no interception | Fresh transcript usage plus required context.windowTokens |
249
+
250
+ Use the selected kind's executable and preserve these options on every launch/resume:
251
+
252
+ ```sh
253
+ herdr agent start <unique-mission-worker-name> --kind <kind> --pane <resolved-pane> -- <argv-from-table>
254
+ ```
255
+
256
+ The arguments after `--` belong to the selected runtime. The name is unique within
257
+ the mission; it is not an invented native session ID. Resolve the pane first and
258
+ keep the session ID actually returned by the runtime.
259
+
260
+ Apply the role's existing permission/read-only policy; `--add-dir` only grants the
261
+ specified directory, never disables a sandbox or an approval. Unsupported kind or
262
+ option: diagnose and stop that launch. Do not update or restart Herdr to make it fit.
263
+ Register planned worker before creating its owned surface. Keep the returned pane
264
+ ID as a hint, launch once, submit the brief once, then reconcile by label + worktree.
265
+ Use `herdr agent wait` in bounded slices and read the report after every turn.
266
+ Idle/done is a turn ending, never proof the task passed. Request a missing report
267
+ from the same session. Follow up in that session; never create a duplicate worker.
268
+ After /clear read the same mission; after a killed process resume its actual session
269
+ in the same worktree. Missing session: retain the mission and expose the loss.
270
+
271
+ `resume_argv` is absent from Herdr 0.9.0 and 0.9.1, present from 0.9.2. Publish it
272
+ only after the installed schema proves support. Otherwise retain the complete resume
273
+ recipe in the brief. Never claim restart restoration was tested without doing it.
274
+
275
+ ## Herdr adapter: projection and closure
276
+
277
+ The hook publishes source void-machine on SessionStart startup/resume/clear/compact
278
+ and Stop after re-reading central state and fresh Herdr identities. Pane tokens:
279
+ mission, worker, ticket, wstatus; coordinator-only workspace: mission, wstatus, workers.
280
+ These are file status, never agent state. ctx requires the selected kind's measured capability from the table; unavailable measurement stays unavailable. Clear
281
+ removes ctx before fresh measurement. State TTL is 86400000 ms, ctx TTL 7200000 ms.
282
+ Sequences are exact nanosecond decimal BigInts captured before discovery. Old or
283
+ equal seq is ignored by Herdr. Tokens are global keys, not source namespaces: another
284
+ source may overwrite them; null clears globally. Never reconfigure cockpit to win.
285
+
286
+ Terminal mission cleanup explicitly clears keys on all still-resolved owned panes,
287
+ only where the currently projected mission still matches. Only the resolved
288
+ coordinator clears workspace keys, again after verifying the displayed mission.
289
+ A late closure of A must not clear B. A worker SessionEnd never cleans the workspace.
290
+ When no mission is active, recover the verified displayed terminal mission; do not
291
+ choose arbitrary history. Discovery/transport errors never trigger a purge.
292
+ After collection and acceptance ORCH may close its owned surfaces; retain worktrees,
293
+ branches and evidence according to their own lifecycle. Do not close the coordinator.
294
+
295
+ ## Independent review
296
+
297
+ Commit the candidate before the independent pass. Keep a fresh read-only reviewer,
298
+ different from the writer, on the exact reviewedCommit, baseCommit and
299
+ acceptanceCriteriaHash. Preserve its actual canonical request/start/completion and
300
+ receipt (native-context or supported review-artifact provenance). Artifact provenance
301
+ stays within the existing project boundary and must match its digest and invocation.
302
+ A central report marked done is never a review receipt. Preserve limitations honestly.
303
+
304
+ For autopilot, `autopilot review --ticket <id> --pr <n> --head <sha> --round <1|2>
305
+ --mission <canonical-id>` checks the target ticket against the existing bounded ticket reader (filename identity
306
+ and frozen content hash), then prepares the exact review subject/worktree and, when
307
+ pending, returns awaiting-native-review. ORCH performs the native invocation and
308
+ records its real receipts, then repeats the same command to collect. Do not start a
309
+ new mission to repair a pending attempt. Budgets, protected paths, HEAD drift checks,
310
+ local verdict admission and merge holds remain enforced. In-flight legacy runs are
311
+ collected through their existing transport and journals; never duplicate them.
@@ -0,0 +1,10 @@
1
+ kind: action
2
+ owner: folpe
3
+ runtimes: [claude, codex]
4
+ enforcement:
5
+ floor: ci
6
+ inline:
7
+ claude: pretooluse
8
+ codex: pretooluse
9
+ hermes: ci-only
10
+ 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,246 @@
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
+ ## Delegated investigation
15
+
16
+ Invoke `void-orchestrate` for independent dependency, codebase or verification
17
+ investigations that inform the plan. The coordinator integrates the results into
18
+ one dependency graph and retains scope, sequencing and approval decisions; agents
19
+ do not independently approve plans or start implementation.
20
+
21
+ ## When to invoke
22
+
23
+ Invoke immediately after `void-brainstorm` approves a spec. The plan is the next deliverable before any code.
24
+
25
+ **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.
26
+
27
+ Do NOT invoke without an approved spec. If you find yourself wanting to plan without a spec, that means brainstorm was skipped — go back.
28
+
29
+ ---
30
+
31
+ ## Plan structure
32
+
33
+ A plan is a markdown file at `docs/plans/YYYY-MM-DD-<topic>-plan.md`. Frontmatter:
34
+
35
+ ```yaml
36
+ ---
37
+ title: <topic>
38
+ date: YYYY-MM-DD
39
+ status: in-progress # in-progress → executing → done
40
+ spec: docs/specs/YYYY-MM-DD-<topic>.md
41
+ ticket: <tracker id, once `void-ticket` has created it; leave empty until then>
42
+ author: <user> + Claude/Codex
43
+ high_risk: false # set true if the plan touches payment, auth, prod data migration, security-sensitive code → triggers plan-review recommendation
44
+ ---
45
+ ```
46
+
47
+ Then sections:
48
+
49
+ 1. **Goal** — one paragraph from the spec
50
+ 2. **Steps** — numbered, each with the structure below
51
+ 3. **Review checkpoints** — explicit points where the user reviews work-to-date
52
+ 4. **Execution handoff** — dependency/order table for tracker-backed programs, or a resume point for a standalone sequential plan
53
+
54
+ ---
55
+
56
+ ## Step structure
57
+
58
+ Each implementation step has this shape:
59
+
60
+ ```markdown
61
+ ### Step N — <imperative subject>
62
+
63
+ - **Goal**: <one sentence>
64
+ - **Depends on**: [step-3, step-5] (or "none")
65
+ - **TDD mode**: strict | souple | exploratory
66
+ - **Verification gate**: <what must pass before moving to step N+1>
67
+ - **Expected commits**:
68
+ - `test: <reproducing or new behavior>`
69
+ - `feat: <implementation>` (or `fix:` / `refactor:` per `void-commit-discipline`)
70
+ - **Notes**: <constraints, gotchas, hook implications>
71
+ ```
72
+
73
+ ### TDD mode declaration
74
+
75
+ Every implementation step states its mode. Examples:
76
+
77
+ - **strict** — new business behavior, hotfix on payment surface, refactor that changes payment behavior
78
+ - **souple** — glue at integration boundary covered by higher-level test, framework wiring
79
+ - **exploratory** — spike, POC, throwaway script
80
+
81
+ The declared mode flows into `tdd-guard` enforcement at execution time. If mode is missing, the plan is incomplete.
82
+
83
+ ### Verification gate
84
+
85
+ Each step's gate states which checks must pass before moving on. Examples:
86
+
87
+ - `tsc --noEmit && vitest run --filter checkoutCart`
88
+ - `pre-commit hooks dry-run on staged set` (composes with `tdd-guard`, `tigerstyle-check`, `no-any-grep`, etc.)
89
+ - `mutation testing score ≥ 90%` (strict mode steps with critical surface)
90
+
91
+ The gate is observable. The user sees the output before the next step begins.
92
+
93
+ ---
94
+
95
+ ## Vertical slices over horizontal phases
96
+
97
+ 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."
98
+
99
+ Why vertical wins:
100
+
101
+ - A vertical slice is verifiable and mergeable on its own: it produces working, demonstrable value at each step.
102
+ - Horizontal phasing accumulates undeliverable work and hides integration errors until the final wiring step, exactly when they are most expensive to fix.
103
+ - Each slice exercises the seams between layers early, so contract mismatches surface in step 1, not step 8.
104
+
105
+ 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.
106
+
107
+ **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.
108
+
109
+ ---
110
+
111
+ ## Review checkpoints
112
+
113
+ For non-trivial plans (≥ 5 steps), declare 1–2 explicit checkpoints where the user reviews work-to-date.
114
+
115
+ ```markdown
116
+ ### Checkpoint A — after Step 4
117
+
118
+ User reviews the domain layer (Steps 1–4) before proceeding to the adapters layer.
119
+
120
+ Stop here. Run `void-verify`. Wait for user signal to proceed.
121
+ ```
122
+
123
+ Checkpoints prevent "I shipped 10 steps before you noticed step 3 was wrong."
124
+
125
+ ---
126
+
127
+ ## Resume point
128
+
129
+ Use this only for a standalone sequential plan that is not decomposed into tracker tickets. The execution skill updates it as steps complete. Format:
130
+
131
+ ```markdown
132
+ ## Resume point
133
+
134
+ **Next step**: Step 5 (Implement Stripe adapter)
135
+
136
+ **Completed**:
137
+ - ✅ Step 1: Domain models (commit `feat: domain Order + LineItem + Money`)
138
+ - ✅ Step 2: OrdersPort interface (commit `feat: OrdersPort port interface`)
139
+ - ✅ Step 3: In-memory adapter (commit `feat: in-memory OrdersAdapter for tests`)
140
+ - ✅ Step 4: checkoutCart use-case (commits `test:` + `feat:`)
141
+
142
+ **Pending**:
143
+ - ⏳ Step 5: Stripe adapter
144
+ - ⏳ Step 6: Server Action boundary
145
+ - ⏳ Step 7: UI Server Component
146
+ - ⏳ Step 8: E2E happy-path test
147
+ ```
148
+
149
+ The next session reads the resume point and continues.
150
+
151
+ For a provider-backed multi-unit programme, do not maintain a second mutable next-step pointer in
152
+ the plan. Instead, add a final `Execution handoff` table that gives each plan unit a stable order
153
+ key, title, dependency keys, estimate, and human-gate flag. After `void-ticket` creates the native
154
+ units and dependency relations, it installs `.void/program.md`; the declared progress provider
155
+ then owns current state and readiness.
156
+
157
+ ---
158
+
159
+ ## Plan self-review
160
+
161
+ After writing the plan, scan for:
162
+
163
+ 1. **Placeholders** — any TBD / TODO / vague steps? Fix.
164
+ 2. **Missing verification gates** — every step has one? Fix.
165
+ 3. **Missing TDD mode** — every implementation step declares one? Fix.
166
+ 4. **Unrealistic dependencies** — does step N actually need step N-1, or could they parallelize?
167
+ 5. **Missing execution handoff** — a standalone plan has a correct resume point; a tracker-backed program has the complete stable order/dependency table?
168
+ 6. **Frontmatter `spec:`** — links back to the approved spec?
169
+ 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.
170
+
171
+ Fix inline. Then user-review gate.
172
+
173
+ ---
174
+
175
+ ## User-review gate
176
+
177
+ Ask the user to review the plan before execution begins:
178
+
179
+ > "Plan written and committed to `docs/plans/<file>.md`. Please review and let me know if you want changes before we start executing."
180
+
181
+ Wait for response. If changes requested, make them and re-run self-review.
182
+
183
+ ---
184
+
185
+ ## Transition to execution
186
+
187
+ After plan approval, transition to:
188
+
189
+ - **`void-ticket`** when the plan becomes multiple provider-native units. It writes native dependencies and the programme descriptor after the pool is approved.
190
+ - **`void-implement`** for a named single ticket or standalone implementation unit.
191
+ - **`void-autopilot`** only when the user requests its attended independent-ticket flow.
192
+
193
+ For a provider-backed programme, later sessions recover work through `.void/program.md` and the
194
+ declared progress adapter; they do not mutate the plan or checkpoint to repoint the next unit.
195
+
196
+ ---
197
+
198
+ ## High-risk plans — plan-review recommendation
199
+
200
+ If `high_risk: true` in the frontmatter, recommend running `void-plan-review` (the `all` mode) after the plan is written but before execution begins.
201
+
202
+ `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.
203
+
204
+ Set `high_risk: true` when the plan touches:
205
+
206
+ - Payment / billing surface
207
+ - Authentication / authorization changes
208
+ - Production data migration (composes with `void-migrations`)
209
+ - Security-sensitive code (secrets, auth tokens, PII)
210
+ - LLM call sites with user-controlled input (composes with `void-security-guidance` LLM section)
211
+
212
+ ---
213
+
214
+ ## Composition with other skills
215
+
216
+ - **Upstream — `void-brainstorm`**: the approved spec is the input.
217
+ - **Downstream — `void-ticket`**: converts a multi-ticket plan into native tracker items and installs its active handoff.
218
+ - **Downstream — `void-implement`**: executes one complete ticket and maintains its tracker lifecycle.
219
+ - **With `void-autopilot`**: drains independent ready tickets only through its attended flow.
220
+ - **With `void-tdd`**: per-step mode selection lives in the plan.
221
+ - **With `void-code-review`**: review checkpoints declared in the plan are honored.
222
+ - **With `void-verify`**: the plan's "Done" criteria feed the completion checklist.
223
+ - **With `void-plan-review`**: optional multi-lens review for high-risk plans (downstream of this skill, upstream of implementation).
224
+ - **With `void-commit-discipline`**: each step states the expected conventional-commit message.
225
+
226
+ ---
227
+
228
+ ## Anti-rules
229
+
230
+ - MUST NOT plan without an approved spec.
231
+ - MUST NOT skip TDD mode declaration per implementation step.
232
+ - MUST NOT skip verification gates per step.
233
+ - MUST NOT omit the applicable execution handoff: resume point for standalone work, tracker table for a multi-ticket program.
234
+ - MUST NOT skip the spec link in frontmatter.
235
+ - MUST NOT execute the plan (downstream skills do that).
236
+
237
+ ---
238
+
239
+ ## Final rule
240
+
241
+ ```
242
+ Approved spec → plan written → self-review → user approves → ticket or implement.
243
+ Otherwise → it is not voidcorp plan.
244
+ ```
245
+
246
+ 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.