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.
- package/LICENSE +21 -0
- package/README.md +123 -4
- package/bin/void-harness.mjs +12 -0
- package/bin/void-machine.mjs +12 -0
- package/core-assets/.claude-plugin/plugin.json +253 -0
- package/core-assets/.gitkeep +0 -0
- package/core-assets/PHILOSOPHY.md +218 -0
- package/core-assets/PROJECT-DOCTRINE.template.md +14 -0
- package/core-assets/adapters/security/manifest.yaml +96 -0
- package/core-assets/agents/.gitkeep +0 -0
- package/core-assets/agents/accessibility-specialist.md +59 -0
- package/core-assets/agents/api-integration-engineer.md +59 -0
- package/core-assets/agents/code-explorer.md +94 -0
- package/core-assets/agents/code-explorer.source +7 -0
- package/core-assets/agents/data-migration-engineer.md +59 -0
- package/core-assets/agents/devex-docs-engineer.md +57 -0
- package/core-assets/agents/doctrine-critic.md +91 -0
- package/core-assets/agents/doctrine-critic.source +11 -0
- package/core-assets/agents/domain-architect.md +56 -0
- package/core-assets/agents/experience-designer.md +59 -0
- package/core-assets/agents/frontend-engineer.md +60 -0
- package/core-assets/agents/independent-code-reviewer.md +61 -0
- package/core-assets/agents/migration-planner.md +97 -0
- package/core-assets/agents/migration-planner.source +7 -0
- package/core-assets/agents/observability-sre-engineer.md +59 -0
- package/core-assets/agents/pdf-specialist.md +58 -0
- package/core-assets/agents/performance-engineer.md +58 -0
- package/core-assets/agents/product-challenger.md +55 -0
- package/core-assets/agents/security-engineer.md +66 -0
- package/core-assets/agents/silent-failure-hunter.md +94 -0
- package/core-assets/agents/silent-failure-hunter.source +8 -0
- package/core-assets/agents/solution-architect.md +57 -0
- package/core-assets/agents/test-qa-engineer.md +60 -0
- package/core-assets/agents/type-design-analyzer.md +93 -0
- package/core-assets/agents/type-design-analyzer.source +8 -0
- package/core-assets/agents/visual-craft-director.md +62 -0
- package/core-assets/codex/hooks.json +157 -0
- package/core-assets/contract-history/visual-craft-director/v2.yaml +43 -0
- package/core-assets/data/catalog.v3.json +10479 -0
- package/core-assets/data/certification.json +1800 -0
- package/core-assets/data/identity.json +8 -0
- package/core-assets/data/model.json +4226 -0
- package/core-assets/enforce/ci-enforce.sh +183 -0
- package/core-assets/hooks/_checks.sh +145 -0
- package/core-assets/hooks/_hooklib.sh +163 -0
- package/core-assets/hooks/_syntax-worker.cjs +503 -0
- package/core-assets/hooks/_void-hook.mjs +5459 -0
- package/core-assets/hooks/activation-meter.sh +13 -0
- package/core-assets/hooks/anti-ai-slop-grep.sh +38 -0
- package/core-assets/hooks/auto-format.sh +9 -0
- package/core-assets/hooks/axe-precommit.sh +35 -0
- package/core-assets/hooks/block-dangerous-bash.sh +10 -0
- package/core-assets/hooks/block-protected-push.sh +81 -0
- package/core-assets/hooks/boundary-direction-check.sh +10 -0
- package/core-assets/hooks/control-character-grep.sh +10 -0
- package/core-assets/hooks/fowler-refactors.txt +71 -0
- package/core-assets/hooks/large-cl-grep.sh +9 -0
- package/core-assets/hooks/llm-cost-precommit.sh +55 -0
- package/core-assets/hooks/migration-lint.sh +58 -0
- package/core-assets/hooks/migration-pr-template.sh +55 -0
- package/core-assets/hooks/no-ai-design-slop.sh +10 -0
- package/core-assets/hooks/no-any-grep.sh +10 -0
- package/core-assets/hooks/no-as-cast-grep.sh +10 -0
- package/core-assets/hooks/no-console-log-grep.sh +10 -0
- package/core-assets/hooks/no-null-grep.sh +10 -0
- package/core-assets/hooks/no-only-no-skip.sh +10 -0
- package/core-assets/hooks/outcome-meter.sh +13 -0
- package/core-assets/hooks/pre-PR-review-evidence.sh +47 -0
- package/core-assets/hooks/protect-sensitive-files.sh +10 -0
- package/core-assets/hooks/refactor-named-grep.sh +49 -0
- package/core-assets/hooks/secret-in-content.sh +10 -0
- package/core-assets/hooks/sessionstart-context.sh +9 -0
- package/core-assets/hooks/stop-typecheck.sh +9 -0
- package/core-assets/hooks/tdd-guard.md +90 -0
- package/core-assets/hooks/tdd-guard.sh +10 -0
- package/core-assets/hooks/test-name-lint.sh +10 -0
- package/core-assets/hooks/tidying-commit-prefix.sh +37 -0
- package/core-assets/hooks/trim-large-output.sh +9 -0
- package/core-assets/hooks/tsc-noemit-precommit.sh +22 -0
- package/core-assets/hooks/ubiquitous-language-lint.sh +58 -0
- package/core-assets/hooks/viewport-screenshot-gate.sh +48 -0
- package/core-assets/modules/.gitkeep +0 -0
- package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/.source +7 -0
- package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/SKILL.md +164 -0
- package/core-assets/packs/pack-mobile/skills/void-eas-build-profile/harness.yaml +14 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/.source +7 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/SKILL.md +178 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-config-plugins/harness.yaml +14 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/.source +8 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/SKILL.md +209 -0
- package/core-assets/packs/pack-mobile/skills/void-expo-router-pattern/harness.yaml +14 -0
- package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/.source +7 -0
- package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/SKILL.md +194 -0
- package/core-assets/packs/pack-mobile/skills/void-ota-update-strategy/harness.yaml +14 -0
- package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/.source +5 -0
- package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/SKILL.md +160 -0
- package/core-assets/packs/pack-monorepo/skills/void-dependency-direction/harness.yaml +14 -0
- package/core-assets/packs/pack-monorepo/skills/void-package-extraction/.source +5 -0
- package/core-assets/packs/pack-monorepo/skills/void-package-extraction/SKILL.md +70 -0
- package/core-assets/packs/pack-monorepo/skills/void-package-extraction/harness.yaml +14 -0
- package/core-assets/packs/pack-monorepo/skills/void-service-package/.source +5 -0
- package/core-assets/packs/pack-monorepo/skills/void-service-package/SKILL.md +122 -0
- package/core-assets/packs/pack-monorepo/skills/void-service-package/harness.yaml +14 -0
- package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/.source +7 -0
- package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/SKILL.md +116 -0
- package/core-assets/packs/pack-monorepo/skills/void-turbo-pipeline-tuning/harness.yaml +14 -0
- package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/.source +5 -0
- package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/SKILL.md +162 -0
- package/core-assets/packs/pack-nextjs/skills/void-cache-component-pattern/harness.yaml +14 -0
- package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/.source +5 -0
- package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/SKILL.md +161 -0
- package/core-assets/packs/pack-nextjs/skills/void-instrumentation-setup/harness.yaml +14 -0
- package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/.source +5 -0
- package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/SKILL.md +176 -0
- package/core-assets/packs/pack-nextjs/skills/void-loading-error-boundaries/harness.yaml +14 -0
- package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/.source +5 -0
- package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/SKILL.md +129 -0
- package/core-assets/packs/pack-nextjs/skills/void-parallel-routes-slots/harness.yaml +14 -0
- package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/.source +5 -0
- package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/SKILL.md +107 -0
- package/core-assets/packs/pack-nextjs/skills/void-route-group-decision/harness.yaml +14 -0
- package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/.source +5 -0
- package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/SKILL.md +153 -0
- package/core-assets/packs/pack-pwa/skills/void-install-prompt-ux/harness.yaml +14 -0
- package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/.source +5 -0
- package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/SKILL.md +204 -0
- package/core-assets/packs/pack-pwa/skills/void-manifest-checklist/harness.yaml +14 -0
- package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/.source +8 -0
- package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/SKILL.md +266 -0
- package/core-assets/packs/pack-pwa/skills/void-offline-first-mutation/harness.yaml +14 -0
- package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/.source +5 -0
- package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/SKILL.md +178 -0
- package/core-assets/packs/pack-pwa/skills/void-service-worker-strategy/harness.yaml +14 -0
- package/core-assets/packs/pack-react/skills/void-accessibility-check/.source +8 -0
- package/core-assets/packs/pack-react/skills/void-accessibility-check/SKILL.md +136 -0
- package/core-assets/packs/pack-react/skills/void-accessibility-check/harness.yaml +14 -0
- package/core-assets/packs/pack-react/skills/void-client-vs-server-component/.source +5 -0
- package/core-assets/packs/pack-react/skills/void-client-vs-server-component/SKILL.md +116 -0
- package/core-assets/packs/pack-react/skills/void-client-vs-server-component/harness.yaml +14 -0
- package/core-assets/packs/pack-react/skills/void-form-pattern/.source +7 -0
- package/core-assets/packs/pack-react/skills/void-form-pattern/SKILL.md +157 -0
- package/core-assets/packs/pack-react/skills/void-form-pattern/harness.yaml +14 -0
- package/core-assets/packs/pack-react/skills/void-state-architecture/.source +5 -0
- package/core-assets/packs/pack-react/skills/void-state-architecture/SKILL.md +160 -0
- package/core-assets/packs/pack-react/skills/void-state-architecture/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-background-job-pattern/.source +6 -0
- package/core-assets/packs/pack-server/skills/void-background-job-pattern/SKILL.md +214 -0
- package/core-assets/packs/pack-server/skills/void-background-job-pattern/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/.source +6 -0
- package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/SKILL.md +168 -0
- package/core-assets/packs/pack-server/skills/void-drizzle-migration-safe/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-env-validation/.source +6 -0
- package/core-assets/packs/pack-server/skills/void-env-validation/SKILL.md +131 -0
- package/core-assets/packs/pack-server/skills/void-env-validation/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/.source +6 -0
- package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/SKILL.md +149 -0
- package/core-assets/packs/pack-server/skills/void-rate-limit-strategy/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-server-action/.source +7 -0
- package/core-assets/packs/pack-server/skills/void-server-action/SKILL.md +181 -0
- package/core-assets/packs/pack-server/skills/void-server-action/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-testing-server-modules/.source +7 -0
- package/core-assets/packs/pack-server/skills/void-testing-server-modules/SKILL.md +73 -0
- package/core-assets/packs/pack-server/skills/void-testing-server-modules/harness.yaml +14 -0
- package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/.source +7 -0
- package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/SKILL.md +205 -0
- package/core-assets/packs/pack-server/skills/void-webhook-handler-pattern/harness.yaml +14 -0
- package/core-assets/policies/core.yaml +95 -0
- package/core-assets/policies/ui.yaml +23 -0
- package/core-assets/profiles/base.yaml +29 -0
- package/core-assets/profiles/expo-config.yaml +36 -0
- package/core-assets/profiles/expo.yaml +35 -0
- package/core-assets/profiles/monorepo.yaml +33 -0
- package/core-assets/profiles/nextjs-config.yaml +31 -0
- package/core-assets/profiles/nextjs.yaml +31 -0
- package/core-assets/profiles/node-server.yaml +31 -0
- package/core-assets/profiles/pwa.yaml +33 -0
- package/core-assets/profiles/react.yaml +39 -0
- package/core-assets/profiles/sql.yaml +39 -0
- package/core-assets/profiles/typescript.yaml +39 -0
- package/core-assets/skills/.gitkeep +0 -0
- package/core-assets/skills/void-accessibility/.source +15 -0
- package/core-assets/skills/void-accessibility/SKILL.md +275 -0
- package/core-assets/skills/void-accessibility/harness.yaml +17 -0
- package/core-assets/skills/void-api-and-interface-design/.source +13 -0
- package/core-assets/skills/void-api-and-interface-design/SKILL.md +231 -0
- package/core-assets/skills/void-api-and-interface-design/harness.yaml +16 -0
- package/core-assets/skills/void-async-safety/.source +13 -0
- package/core-assets/skills/void-async-safety/SKILL.md +287 -0
- package/core-assets/skills/void-async-safety/harness.yaml +16 -0
- package/core-assets/skills/void-audit/.source +15 -0
- package/core-assets/skills/void-audit/SKILL.md +83 -0
- package/core-assets/skills/void-audit/harness.yaml +14 -0
- package/core-assets/skills/void-autopilot/.source +21 -0
- package/core-assets/skills/void-autopilot/SKILL.md +358 -0
- package/core-assets/skills/void-autopilot/harness.yaml +14 -0
- package/core-assets/skills/void-brainstorm/.source +14 -0
- package/core-assets/skills/void-brainstorm/SKILL.md +271 -0
- package/core-assets/skills/void-brainstorm/harness.yaml +14 -0
- package/core-assets/skills/void-checkpoint/.source +39 -0
- package/core-assets/skills/void-checkpoint/SKILL.md +227 -0
- package/core-assets/skills/void-checkpoint/harness.yaml +14 -0
- package/core-assets/skills/void-claude-md/.source +15 -0
- package/core-assets/skills/void-claude-md/SKILL.md +180 -0
- package/core-assets/skills/void-claude-md/harness.yaml +14 -0
- package/core-assets/skills/void-code-review/.source +14 -0
- package/core-assets/skills/void-code-review/SKILL.md +232 -0
- package/core-assets/skills/void-code-review/harness.yaml +15 -0
- package/core-assets/skills/void-commit-discipline/.source +9 -0
- package/core-assets/skills/void-commit-discipline/SKILL.md +211 -0
- package/core-assets/skills/void-commit-discipline/harness.yaml +15 -0
- package/core-assets/skills/void-context/.source +15 -0
- package/core-assets/skills/void-context/SKILL.md +167 -0
- package/core-assets/skills/void-context/harness.yaml +14 -0
- package/core-assets/skills/void-debug/.source +11 -0
- package/core-assets/skills/void-debug/SKILL.md +211 -0
- package/core-assets/skills/void-debug/harness.yaml +14 -0
- package/core-assets/skills/void-decide/.source +9 -0
- package/core-assets/skills/void-decide/SKILL.md +147 -0
- package/core-assets/skills/void-decide/harness.yaml +14 -0
- package/core-assets/skills/void-devex-audit/.source +8 -0
- package/core-assets/skills/void-devex-audit/SKILL.md +113 -0
- package/core-assets/skills/void-devex-audit/harness.yaml +15 -0
- package/core-assets/skills/void-doctor/.source +15 -0
- package/core-assets/skills/void-doctor/SKILL.md +83 -0
- package/core-assets/skills/void-doctor/harness.yaml +14 -0
- package/core-assets/skills/void-domain-driven-design/.source +13 -0
- package/core-assets/skills/void-domain-driven-design/SKILL.md +292 -0
- package/core-assets/skills/void-domain-driven-design/harness.yaml +15 -0
- package/core-assets/skills/void-frontend-design/.source +19 -0
- package/core-assets/skills/void-frontend-design/SKILL.md +274 -0
- package/core-assets/skills/void-frontend-design/harness.yaml +17 -0
- package/core-assets/skills/void-functional/.source +14 -0
- package/core-assets/skills/void-functional/SKILL.md +312 -0
- package/core-assets/skills/void-functional/harness.yaml +15 -0
- package/core-assets/skills/void-graph/.source +15 -0
- package/core-assets/skills/void-graph/SKILL.md +80 -0
- package/core-assets/skills/void-graph/harness.yaml +14 -0
- package/core-assets/skills/void-hexagonal-architecture/.source +12 -0
- package/core-assets/skills/void-hexagonal-architecture/SKILL.md +276 -0
- package/core-assets/skills/void-hexagonal-architecture/harness.yaml +15 -0
- package/core-assets/skills/void-implement/.source +39 -0
- package/core-assets/skills/void-implement/SKILL.md +183 -0
- package/core-assets/skills/void-implement/harness.yaml +14 -0
- package/core-assets/skills/void-learn/.source +13 -0
- package/core-assets/skills/void-learn/SKILL.md +226 -0
- package/core-assets/skills/void-learn/harness.yaml +14 -0
- package/core-assets/skills/void-llm-cost-discipline/.source +13 -0
- package/core-assets/skills/void-llm-cost-discipline/SKILL.md +299 -0
- package/core-assets/skills/void-llm-cost-discipline/harness.yaml +15 -0
- package/core-assets/skills/void-make-pdf/.source +9 -0
- package/core-assets/skills/void-make-pdf/SKILL.md +52 -0
- package/core-assets/skills/void-make-pdf/harness.yaml +15 -0
- package/core-assets/skills/void-merge/.source +8 -0
- package/core-assets/skills/void-merge/SKILL.md +111 -0
- package/core-assets/skills/void-merge/harness.yaml +14 -0
- package/core-assets/skills/void-migrations/.source +13 -0
- package/core-assets/skills/void-migrations/SKILL.md +264 -0
- package/core-assets/skills/void-migrations/harness.yaml +17 -0
- package/core-assets/skills/void-observability/.source +12 -0
- package/core-assets/skills/void-observability/SKILL.md +245 -0
- package/core-assets/skills/void-observability/harness.yaml +15 -0
- package/core-assets/skills/void-plan/.source +15 -0
- package/core-assets/skills/void-plan/SKILL.md +239 -0
- package/core-assets/skills/void-plan/harness.yaml +14 -0
- package/core-assets/skills/void-plan-review/.source +12 -0
- package/core-assets/skills/void-plan-review/SKILL.md +128 -0
- package/core-assets/skills/void-plan-review/harness.yaml +15 -0
- package/core-assets/skills/void-qa/.source +15 -0
- package/core-assets/skills/void-qa/SKILL.md +103 -0
- package/core-assets/skills/void-qa/harness.yaml +15 -0
- package/core-assets/skills/void-refactor/.source +9 -0
- package/core-assets/skills/void-refactor/SKILL.md +220 -0
- package/core-assets/skills/void-refactor/harness.yaml +15 -0
- package/core-assets/skills/void-retrospective/.source +9 -0
- package/core-assets/skills/void-retrospective/SKILL.md +71 -0
- package/core-assets/skills/void-retrospective/harness.yaml +15 -0
- package/core-assets/skills/void-security-audit/.source +12 -0
- package/core-assets/skills/void-security-audit/SKILL.md +138 -0
- package/core-assets/skills/void-security-audit/harness.yaml +15 -0
- package/core-assets/skills/void-security-guidance/.source +12 -0
- package/core-assets/skills/void-security-guidance/SKILL.md +255 -0
- package/core-assets/skills/void-security-guidance/harness.yaml +15 -0
- package/core-assets/skills/void-source-driven-development/.source +12 -0
- package/core-assets/skills/void-source-driven-development/SKILL.md +158 -0
- package/core-assets/skills/void-source-driven-development/harness.yaml +15 -0
- package/core-assets/skills/void-tdd/.source +15 -0
- package/core-assets/skills/void-tdd/SKILL.md +394 -0
- package/core-assets/skills/void-tdd/harness.yaml +15 -0
- package/core-assets/skills/void-testing/.source +19 -0
- package/core-assets/skills/void-testing/SKILL.md +301 -0
- package/core-assets/skills/void-testing/harness.yaml +17 -0
- package/core-assets/skills/void-ticket/.source +18 -0
- package/core-assets/skills/void-ticket/SKILL.md +239 -0
- package/core-assets/skills/void-ticket/harness.yaml +14 -0
- package/core-assets/skills/void-typescript-strict/.source +10 -0
- package/core-assets/skills/void-typescript-strict/SKILL.md +294 -0
- package/core-assets/skills/void-typescript-strict/harness.yaml +17 -0
- package/core-assets/skills/void-ui-review/.source +12 -0
- package/core-assets/skills/void-ui-review/SKILL.md +97 -0
- package/core-assets/skills/void-ui-review/harness.yaml +15 -0
- package/core-assets/skills/void-verify/.source +12 -0
- package/core-assets/skills/void-verify/SKILL.md +184 -0
- package/core-assets/skills/void-verify/harness.yaml +15 -0
- package/core-assets/specialists/accessibility-specialist.source +11 -0
- package/core-assets/specialists/accessibility-specialist.yaml +30 -0
- package/core-assets/specialists/api-integration-engineer.source +11 -0
- package/core-assets/specialists/api-integration-engineer.yaml +30 -0
- package/core-assets/specialists/data-migration-engineer.source +11 -0
- package/core-assets/specialists/data-migration-engineer.yaml +30 -0
- package/core-assets/specialists/devex-docs-engineer.source +11 -0
- package/core-assets/specialists/devex-docs-engineer.yaml +29 -0
- package/core-assets/specialists/domain-architect.source +11 -0
- package/core-assets/specialists/domain-architect.yaml +28 -0
- package/core-assets/specialists/experience-designer.source +15 -0
- package/core-assets/specialists/experience-designer.yaml +38 -0
- package/core-assets/specialists/frontend-engineer.source +11 -0
- package/core-assets/specialists/frontend-engineer.yaml +32 -0
- package/core-assets/specialists/independent-code-reviewer.source +10 -0
- package/core-assets/specialists/independent-code-reviewer.yaml +37 -0
- package/core-assets/specialists/migrations.json +15 -0
- package/core-assets/specialists/observability-sre-engineer.source +11 -0
- package/core-assets/specialists/observability-sre-engineer.yaml +30 -0
- package/core-assets/specialists/pdf-specialist.source +11 -0
- package/core-assets/specialists/pdf-specialist.yaml +29 -0
- package/core-assets/specialists/performance-engineer.source +11 -0
- package/core-assets/specialists/performance-engineer.yaml +29 -0
- package/core-assets/specialists/product-challenger.source +10 -0
- package/core-assets/specialists/product-challenger.yaml +27 -0
- package/core-assets/specialists/security-engineer.source +13 -0
- package/core-assets/specialists/security-engineer.yaml +41 -0
- package/core-assets/specialists/solution-architect.source +13 -0
- package/core-assets/specialists/solution-architect.yaml +32 -0
- package/core-assets/specialists/test-qa-engineer.source +14 -0
- package/core-assets/specialists/test-qa-engineer.yaml +35 -0
- package/core-assets/specialists/visual-craft-director.source +17 -0
- package/core-assets/specialists/visual-craft-director.yaml +60 -0
- package/core-assets/templates/github/dependency-audit.mjs +54 -0
- package/core-assets/templates/github/void-dependency-audit.yml +35 -0
- package/core-assets/templates/github/void-security.yml +85 -0
- package/dist/main.js +57001 -0
- 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).
|