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.
- 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 +285 -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 +62 -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 +172 -0
- package/core-assets/contract-history/visual-craft-director/v2.yaml +43 -0
- package/core-assets/data/catalog.v3.json +10527 -0
- package/core-assets/data/certification.json +1826 -0
- package/core-assets/data/identity.json +8 -0
- package/core-assets/data/model.json +4256 -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 +15448 -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 +394 -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 +278 -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 +166 -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 +192 -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-orchestrate/.source +16 -0
- package/core-assets/skills/void-orchestrate/SKILL.md +311 -0
- package/core-assets/skills/void-orchestrate/harness.yaml +10 -0
- package/core-assets/skills/void-plan/.source +15 -0
- package/core-assets/skills/void-plan/SKILL.md +246 -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 +13 -0
- package/core-assets/skills/void-security-guidance/SKILL.md +294 -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 +238 -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 +38 -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 +70173 -0
- 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,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.
|