bigpowers 2.86.4 → 2.86.6
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/.agents/skills/commit-message/SKILL.md +1 -1
- package/.agents/skills/craft-skill/SKILL.md +2 -2
- package/.agents/skills/define-success/SKILL.md +6 -59
- package/.agents/skills/deploy/SKILL.md +1 -1
- package/.agents/skills/elaborate-spec/SKILL.md +1 -1
- package/.agents/skills/evolve-skill/SKILL.md +1 -1
- package/.agents/skills/harden-vps/SKILL.md +63 -60
- package/.agents/skills/investigate-bug/SKILL.md +2 -2
- package/.agents/skills/orchestrate-project/SKILL.md +1 -1
- package/.agents/skills/plan-refactor/SKILL.md +2 -2
- package/.agents/skills/plan-release/SKILL.md +2 -2
- package/.agents/skills/plan-work/SKILL.md +1 -1
- package/.agents/skills/using-bigpowers/SKILL.md +2 -2
- package/.agents/skills/wire-ci/SKILL.md +11 -14
- package/.agents/skills/write-document/SKILL.md +1 -1
- package/.cline/skills/align-grid/SKILL.md +110 -0
- package/.cline/skills/assess-impact/SKILL.md +91 -0
- package/.cline/skills/audit-code/SKILL.md +184 -0
- package/.cline/skills/audit-plan/SKILL.md +89 -0
- package/.cline/skills/build-epic/SKILL.md +105 -0
- package/.cline/skills/change-request/SKILL.md +121 -0
- package/.cline/skills/commit-message/SKILL.md +140 -0
- package/.cline/skills/compose-workflow/SKILL.md +82 -0
- package/.cline/skills/context7-mcp/SKILL.md +55 -0
- package/.cline/skills/craft-skill/SKILL.md +196 -0
- package/.cline/skills/deepen-architecture/SKILL.md +260 -0
- package/.cline/skills/define-language/SKILL.md +80 -0
- package/.cline/skills/define-success/SKILL.md +12 -0
- package/.cline/skills/delegate-task/SKILL.md +91 -0
- package/.cline/skills/deploy/SKILL.md +198 -0
- package/.cline/skills/design-interface/SKILL.md +97 -0
- package/.cline/skills/develop-tdd/SKILL.md +416 -0
- package/.cline/skills/diagnose-root/SKILL.md +24 -0
- package/.cline/skills/diagnose-stall/SKILL.md +54 -0
- package/.cline/skills/dispatch-agents/SKILL.md +118 -0
- package/.cline/skills/edit-document/SKILL.md +23 -0
- package/.cline/skills/elaborate-spec/SKILL.md +101 -0
- package/.cline/skills/enforce-first/SKILL.md +45 -0
- package/.cline/skills/evolve-skill/SKILL.md +55 -0
- package/.cline/skills/execute-plan/SKILL.md +61 -0
- package/.cline/skills/extract-design/SKILL.md +132 -0
- package/.cline/skills/find-way/SKILL.md +191 -0
- package/.cline/skills/fix-bug/SKILL.md +67 -0
- package/.cline/skills/gate-trace/SKILL.md +92 -0
- package/.cline/skills/generate-allure-report/SKILL.md +285 -0
- package/.cline/skills/grill-me/SKILL.md +108 -0
- package/.cline/skills/grill-with-docs/SKILL.md +53 -0
- package/.cline/skills/guard-git/SKILL.md +231 -0
- package/.cline/skills/harden-vps/SKILL.md +291 -0
- package/.cline/skills/hook-commits/SKILL.md +94 -0
- package/.cline/skills/inspect-quality/SKILL.md +106 -0
- package/.cline/skills/investigate-bug/SKILL.md +127 -0
- package/.cline/skills/kickoff-branch/SKILL.md +143 -0
- package/.cline/skills/maintain-wiki/SKILL.md +64 -0
- package/.cline/skills/map-codebase/SKILL.md +71 -0
- package/.cline/skills/migrate-spec/SKILL.md +862 -0
- package/.cline/skills/model-domain/SKILL.md +232 -0
- package/.cline/skills/orchestrate-project/SKILL.md +174 -0
- package/.cline/skills/organize-workspace/SKILL.md +164 -0
- package/.cline/skills/plan-refactor/SKILL.md +87 -0
- package/.cline/skills/plan-release/SKILL.md +145 -0
- package/.cline/skills/plan-tests/SKILL.md +75 -0
- package/.cline/skills/plan-work/SKILL.md +260 -0
- package/.cline/skills/publish-package/SKILL.md +328 -0
- package/.cline/skills/quick-fix/SKILL.md +114 -0
- package/.cline/skills/release-branch/SKILL.md +298 -0
- package/.cline/skills/request-review/SKILL.md +113 -0
- package/.cline/skills/research-first/SKILL.md +87 -0
- package/.cline/skills/reset-baseline/SKILL.md +21 -0
- package/.cline/skills/respond-review/SKILL.md +71 -0
- package/.cline/skills/run-benchmark/SKILL.md +85 -0
- package/.cline/skills/run-evals/SKILL.md +80 -0
- package/.cline/skills/run-planning/SKILL.md +101 -0
- package/.cline/skills/scope-work/SKILL.md +63 -0
- package/.cline/skills/search-skills/SKILL.md +73 -0
- package/.cline/skills/security-review/SKILL.md +384 -0
- package/.cline/skills/seed-conventions/SKILL.md +302 -0
- package/.cline/skills/session-state/SKILL.md +146 -0
- package/.cline/skills/setup-environment/SKILL.md +39 -0
- package/.cline/skills/simulate-agents/SKILL.md +26 -0
- package/.cline/skills/slice-tasks/SKILL.md +68 -0
- package/.cline/skills/smoke-test/SKILL.md +257 -0
- package/.cline/skills/spike-prototype/SKILL.md +95 -0
- package/.cline/skills/stocktake-skills/SKILL.md +74 -0
- package/.cline/skills/survey-context/SKILL.md +135 -0
- package/.cline/skills/terse-mode/SKILL.md +42 -0
- package/.cline/skills/trace-requirement/SKILL.md +69 -0
- package/.cline/skills/using-bigpowers/SKILL.md +111 -0
- package/.cline/skills/validate-contracts/SKILL.md +277 -0
- package/.cline/skills/validate-fix/SKILL.md +147 -0
- package/.cline/skills/verify-work/SKILL.md +191 -0
- package/.cline/skills/visual-dashboard/SKILL.md +50 -0
- package/.cline/skills/wire-ci/SKILL.md +374 -0
- package/.cline/skills/wire-observability/SKILL.md +97 -0
- package/.cline/skills/write-document/SKILL.md +255 -0
- package/.codebuddy/skills/commit-message/SKILL.md +1 -1
- package/.codebuddy/skills/craft-skill/SKILL.md +2 -2
- package/.codebuddy/skills/define-success/SKILL.md +6 -59
- package/.codebuddy/skills/deploy/SKILL.md +1 -1
- package/.codebuddy/skills/elaborate-spec/SKILL.md +1 -1
- package/.codebuddy/skills/evolve-skill/SKILL.md +1 -1
- package/.codebuddy/skills/harden-vps/SKILL.md +63 -60
- package/.codebuddy/skills/investigate-bug/SKILL.md +2 -2
- package/.codebuddy/skills/orchestrate-project/SKILL.md +1 -1
- package/.codebuddy/skills/plan-refactor/SKILL.md +2 -2
- package/.codebuddy/skills/plan-release/SKILL.md +2 -2
- package/.codebuddy/skills/plan-work/SKILL.md +1 -1
- package/.codebuddy/skills/using-bigpowers/SKILL.md +2 -2
- package/.codebuddy/skills/wire-ci/SKILL.md +11 -14
- package/.codebuddy/skills/write-document/SKILL.md +1 -1
- package/.codex/skills/commit-message/SKILL.md +1 -1
- package/.codex/skills/craft-skill/SKILL.md +2 -2
- package/.codex/skills/define-success/SKILL.md +6 -59
- package/.codex/skills/deploy/SKILL.md +1 -1
- package/.codex/skills/elaborate-spec/SKILL.md +1 -1
- package/.codex/skills/evolve-skill/SKILL.md +1 -1
- package/.codex/skills/harden-vps/SKILL.md +63 -60
- package/.codex/skills/investigate-bug/SKILL.md +2 -2
- package/.codex/skills/orchestrate-project/SKILL.md +1 -1
- package/.codex/skills/plan-refactor/SKILL.md +2 -2
- package/.codex/skills/plan-release/SKILL.md +2 -2
- package/.codex/skills/plan-work/SKILL.md +1 -1
- package/.codex/skills/using-bigpowers/SKILL.md +2 -2
- package/.codex/skills/wire-ci/SKILL.md +11 -14
- package/.codex/skills/write-document/SKILL.md +1 -1
- package/.copilot/skills/align-grid/SKILL.md +110 -0
- package/.copilot/skills/assess-impact/SKILL.md +91 -0
- package/.copilot/skills/audit-code/SKILL.md +184 -0
- package/.copilot/skills/audit-plan/SKILL.md +89 -0
- package/.copilot/skills/build-epic/SKILL.md +105 -0
- package/.copilot/skills/change-request/SKILL.md +121 -0
- package/.copilot/skills/commit-message/SKILL.md +140 -0
- package/.copilot/skills/compose-workflow/SKILL.md +82 -0
- package/.copilot/skills/context7-mcp/SKILL.md +55 -0
- package/.copilot/skills/craft-skill/SKILL.md +196 -0
- package/.copilot/skills/deepen-architecture/SKILL.md +260 -0
- package/.copilot/skills/define-language/SKILL.md +80 -0
- package/.copilot/skills/define-success/SKILL.md +12 -0
- package/.copilot/skills/delegate-task/SKILL.md +91 -0
- package/.copilot/skills/deploy/SKILL.md +198 -0
- package/.copilot/skills/design-interface/SKILL.md +97 -0
- package/.copilot/skills/develop-tdd/SKILL.md +416 -0
- package/.copilot/skills/diagnose-root/SKILL.md +24 -0
- package/.copilot/skills/diagnose-stall/SKILL.md +54 -0
- package/.copilot/skills/dispatch-agents/SKILL.md +118 -0
- package/.copilot/skills/edit-document/SKILL.md +23 -0
- package/.copilot/skills/elaborate-spec/SKILL.md +101 -0
- package/.copilot/skills/enforce-first/SKILL.md +45 -0
- package/.copilot/skills/evolve-skill/SKILL.md +55 -0
- package/.copilot/skills/execute-plan/SKILL.md +61 -0
- package/.copilot/skills/extract-design/SKILL.md +132 -0
- package/.copilot/skills/find-way/SKILL.md +191 -0
- package/.copilot/skills/fix-bug/SKILL.md +67 -0
- package/.copilot/skills/gate-trace/SKILL.md +92 -0
- package/.copilot/skills/generate-allure-report/SKILL.md +285 -0
- package/.copilot/skills/grill-me/SKILL.md +108 -0
- package/.copilot/skills/grill-with-docs/SKILL.md +53 -0
- package/.copilot/skills/guard-git/SKILL.md +231 -0
- package/.copilot/skills/harden-vps/SKILL.md +291 -0
- package/.copilot/skills/hook-commits/SKILL.md +94 -0
- package/.copilot/skills/inspect-quality/SKILL.md +106 -0
- package/.copilot/skills/investigate-bug/SKILL.md +127 -0
- package/.copilot/skills/kickoff-branch/SKILL.md +143 -0
- package/.copilot/skills/maintain-wiki/SKILL.md +64 -0
- package/.copilot/skills/map-codebase/SKILL.md +71 -0
- package/.copilot/skills/migrate-spec/SKILL.md +862 -0
- package/.copilot/skills/model-domain/SKILL.md +232 -0
- package/.copilot/skills/orchestrate-project/SKILL.md +174 -0
- package/.copilot/skills/organize-workspace/SKILL.md +164 -0
- package/.copilot/skills/plan-refactor/SKILL.md +87 -0
- package/.copilot/skills/plan-release/SKILL.md +145 -0
- package/.copilot/skills/plan-tests/SKILL.md +75 -0
- package/.copilot/skills/plan-work/SKILL.md +260 -0
- package/.copilot/skills/publish-package/SKILL.md +328 -0
- package/.copilot/skills/quick-fix/SKILL.md +114 -0
- package/.copilot/skills/release-branch/SKILL.md +298 -0
- package/.copilot/skills/request-review/SKILL.md +113 -0
- package/.copilot/skills/research-first/SKILL.md +87 -0
- package/.copilot/skills/reset-baseline/SKILL.md +21 -0
- package/.copilot/skills/respond-review/SKILL.md +71 -0
- package/.copilot/skills/run-benchmark/SKILL.md +85 -0
- package/.copilot/skills/run-evals/SKILL.md +80 -0
- package/.copilot/skills/run-planning/SKILL.md +101 -0
- package/.copilot/skills/scope-work/SKILL.md +63 -0
- package/.copilot/skills/search-skills/SKILL.md +73 -0
- package/.copilot/skills/security-review/SKILL.md +384 -0
- package/.copilot/skills/seed-conventions/SKILL.md +302 -0
- package/.copilot/skills/session-state/SKILL.md +146 -0
- package/.copilot/skills/setup-environment/SKILL.md +39 -0
- package/.copilot/skills/simulate-agents/SKILL.md +26 -0
- package/.copilot/skills/slice-tasks/SKILL.md +68 -0
- package/.copilot/skills/smoke-test/SKILL.md +257 -0
- package/.copilot/skills/spike-prototype/SKILL.md +95 -0
- package/.copilot/skills/stocktake-skills/SKILL.md +74 -0
- package/.copilot/skills/survey-context/SKILL.md +135 -0
- package/.copilot/skills/terse-mode/SKILL.md +42 -0
- package/.copilot/skills/trace-requirement/SKILL.md +69 -0
- package/.copilot/skills/using-bigpowers/SKILL.md +111 -0
- package/.copilot/skills/validate-contracts/SKILL.md +277 -0
- package/.copilot/skills/validate-fix/SKILL.md +147 -0
- package/.copilot/skills/verify-work/SKILL.md +191 -0
- package/.copilot/skills/visual-dashboard/SKILL.md +50 -0
- package/.copilot/skills/wire-ci/SKILL.md +374 -0
- package/.copilot/skills/wire-observability/SKILL.md +97 -0
- package/.copilot/skills/write-document/SKILL.md +255 -0
- package/.hermes/skills/commit-message/SKILL.md +1 -1
- package/.hermes/skills/craft-skill/SKILL.md +2 -2
- package/.hermes/skills/define-success/SKILL.md +6 -59
- package/.hermes/skills/deploy/SKILL.md +1 -1
- package/.hermes/skills/elaborate-spec/SKILL.md +1 -1
- package/.hermes/skills/evolve-skill/SKILL.md +1 -1
- package/.hermes/skills/harden-vps/SKILL.md +63 -60
- package/.hermes/skills/investigate-bug/SKILL.md +2 -2
- package/.hermes/skills/orchestrate-project/SKILL.md +1 -1
- package/.hermes/skills/plan-refactor/SKILL.md +2 -2
- package/.hermes/skills/plan-release/SKILL.md +2 -2
- package/.hermes/skills/plan-work/SKILL.md +1 -1
- package/.hermes/skills/using-bigpowers/SKILL.md +2 -2
- package/.hermes/skills/wire-ci/SKILL.md +11 -14
- package/.hermes/skills/write-document/SKILL.md +1 -1
- package/.kilocode/rules/commit-message.md +1 -1
- package/.kilocode/rules/craft-skill.md +2 -2
- package/.kilocode/rules/define-success.md +6 -59
- package/.kilocode/rules/deploy.md +1 -1
- package/.kilocode/rules/elaborate-spec.md +1 -1
- package/.kilocode/rules/evolve-skill.md +1 -1
- package/.kilocode/rules/harden-vps.md +63 -60
- package/.kilocode/rules/investigate-bug.md +2 -2
- package/.kilocode/rules/orchestrate-project.md +1 -1
- package/.kilocode/rules/plan-refactor.md +2 -2
- package/.kilocode/rules/plan-release.md +2 -2
- package/.kilocode/rules/plan-work.md +1 -1
- package/.kilocode/rules/using-bigpowers.md +2 -2
- package/.kilocode/rules/wire-ci.md +11 -14
- package/.kilocode/rules/write-document.md +1 -1
- package/.mimocode/skills/commit-message/SKILL.md +1 -1
- package/.mimocode/skills/craft-skill/SKILL.md +2 -2
- package/.mimocode/skills/define-success/SKILL.md +6 -59
- package/.mimocode/skills/deploy/SKILL.md +1 -1
- package/.mimocode/skills/elaborate-spec/SKILL.md +1 -1
- package/.mimocode/skills/evolve-skill/SKILL.md +1 -1
- package/.mimocode/skills/harden-vps/SKILL.md +63 -60
- package/.mimocode/skills/investigate-bug/SKILL.md +2 -2
- package/.mimocode/skills/orchestrate-project/SKILL.md +1 -1
- package/.mimocode/skills/plan-refactor/SKILL.md +2 -2
- package/.mimocode/skills/plan-release/SKILL.md +2 -2
- package/.mimocode/skills/plan-work/SKILL.md +1 -1
- package/.mimocode/skills/using-bigpowers/SKILL.md +2 -2
- package/.mimocode/skills/wire-ci/SKILL.md +11 -14
- package/.mimocode/skills/write-document/SKILL.md +1 -1
- package/.opencode/skills/align-grid/SKILL.md +110 -0
- package/.opencode/skills/assess-impact/SKILL.md +91 -0
- package/.opencode/skills/audit-code/SKILL.md +184 -0
- package/.opencode/skills/audit-plan/SKILL.md +89 -0
- package/.opencode/skills/build-epic/SKILL.md +105 -0
- package/.opencode/skills/change-request/SKILL.md +121 -0
- package/.opencode/skills/commit-message/SKILL.md +140 -0
- package/.opencode/skills/compose-workflow/SKILL.md +82 -0
- package/.opencode/skills/context7-mcp/SKILL.md +55 -0
- package/.opencode/skills/craft-skill/SKILL.md +196 -0
- package/.opencode/skills/deepen-architecture/SKILL.md +260 -0
- package/.opencode/skills/define-language/SKILL.md +80 -0
- package/.opencode/skills/define-success/SKILL.md +12 -0
- package/.opencode/skills/delegate-task/SKILL.md +91 -0
- package/.opencode/skills/deploy/SKILL.md +198 -0
- package/.opencode/skills/design-interface/SKILL.md +97 -0
- package/.opencode/skills/develop-tdd/SKILL.md +416 -0
- package/.opencode/skills/diagnose-root/SKILL.md +24 -0
- package/.opencode/skills/diagnose-stall/SKILL.md +54 -0
- package/.opencode/skills/dispatch-agents/SKILL.md +118 -0
- package/.opencode/skills/edit-document/SKILL.md +23 -0
- package/.opencode/skills/elaborate-spec/SKILL.md +101 -0
- package/.opencode/skills/enforce-first/SKILL.md +45 -0
- package/.opencode/skills/evolve-skill/SKILL.md +55 -0
- package/.opencode/skills/execute-plan/SKILL.md +61 -0
- package/.opencode/skills/extract-design/SKILL.md +132 -0
- package/.opencode/skills/find-way/SKILL.md +191 -0
- package/.opencode/skills/fix-bug/SKILL.md +67 -0
- package/.opencode/skills/gate-trace/SKILL.md +92 -0
- package/.opencode/skills/generate-allure-report/SKILL.md +285 -0
- package/.opencode/skills/grill-me/SKILL.md +108 -0
- package/.opencode/skills/grill-with-docs/SKILL.md +53 -0
- package/.opencode/skills/guard-git/SKILL.md +231 -0
- package/.opencode/skills/harden-vps/SKILL.md +291 -0
- package/.opencode/skills/hook-commits/SKILL.md +94 -0
- package/.opencode/skills/inspect-quality/SKILL.md +106 -0
- package/.opencode/skills/investigate-bug/SKILL.md +127 -0
- package/.opencode/skills/kickoff-branch/SKILL.md +143 -0
- package/.opencode/skills/maintain-wiki/SKILL.md +64 -0
- package/.opencode/skills/map-codebase/SKILL.md +71 -0
- package/.opencode/skills/migrate-spec/SKILL.md +862 -0
- package/.opencode/skills/model-domain/SKILL.md +232 -0
- package/.opencode/skills/orchestrate-project/SKILL.md +174 -0
- package/.opencode/skills/organize-workspace/SKILL.md +164 -0
- package/.opencode/skills/plan-refactor/SKILL.md +87 -0
- package/.opencode/skills/plan-release/SKILL.md +145 -0
- package/.opencode/skills/plan-tests/SKILL.md +75 -0
- package/.opencode/skills/plan-work/SKILL.md +260 -0
- package/.opencode/skills/publish-package/SKILL.md +328 -0
- package/.opencode/skills/quick-fix/SKILL.md +114 -0
- package/.opencode/skills/release-branch/SKILL.md +298 -0
- package/.opencode/skills/request-review/SKILL.md +113 -0
- package/.opencode/skills/research-first/SKILL.md +87 -0
- package/.opencode/skills/reset-baseline/SKILL.md +21 -0
- package/.opencode/skills/respond-review/SKILL.md +71 -0
- package/.opencode/skills/run-benchmark/SKILL.md +85 -0
- package/.opencode/skills/run-evals/SKILL.md +80 -0
- package/.opencode/skills/run-planning/SKILL.md +101 -0
- package/.opencode/skills/scope-work/SKILL.md +63 -0
- package/.opencode/skills/search-skills/SKILL.md +73 -0
- package/.opencode/skills/security-review/SKILL.md +384 -0
- package/.opencode/skills/seed-conventions/SKILL.md +302 -0
- package/.opencode/skills/session-state/SKILL.md +146 -0
- package/.opencode/skills/setup-environment/SKILL.md +39 -0
- package/.opencode/skills/simulate-agents/SKILL.md +26 -0
- package/.opencode/skills/slice-tasks/SKILL.md +68 -0
- package/.opencode/skills/smoke-test/SKILL.md +257 -0
- package/.opencode/skills/spike-prototype/SKILL.md +95 -0
- package/.opencode/skills/stocktake-skills/SKILL.md +74 -0
- package/.opencode/skills/survey-context/SKILL.md +135 -0
- package/.opencode/skills/terse-mode/SKILL.md +42 -0
- package/.opencode/skills/trace-requirement/SKILL.md +69 -0
- package/.opencode/skills/using-bigpowers/SKILL.md +111 -0
- package/.opencode/skills/validate-contracts/SKILL.md +277 -0
- package/.opencode/skills/validate-fix/SKILL.md +147 -0
- package/.opencode/skills/verify-work/SKILL.md +191 -0
- package/.opencode/skills/visual-dashboard/SKILL.md +50 -0
- package/.opencode/skills/wire-ci/SKILL.md +374 -0
- package/.opencode/skills/wire-observability/SKILL.md +97 -0
- package/.opencode/skills/write-document/SKILL.md +255 -0
- package/.pi/package.json +1 -1
- package/.pi/prompts/commit-message.md +1 -1
- package/.pi/prompts/craft-skill.md +2 -2
- package/.pi/prompts/define-success.md +5 -58
- package/.pi/prompts/deploy.md +1 -1
- package/.pi/prompts/elaborate-spec.md +1 -1
- package/.pi/prompts/evolve-skill.md +1 -1
- package/.pi/prompts/harden-vps.md +63 -60
- package/.pi/prompts/investigate-bug.md +2 -2
- package/.pi/prompts/orchestrate-project.md +1 -1
- package/.pi/prompts/plan-refactor.md +2 -2
- package/.pi/prompts/plan-release.md +2 -2
- package/.pi/prompts/plan-work.md +1 -1
- package/.pi/prompts/using-bigpowers.md +2 -2
- package/.pi/prompts/wire-ci.md +11 -14
- package/.pi/prompts/write-document.md +1 -1
- package/.pi/skills/commit-message/SKILL.md +1 -1
- package/.pi/skills/craft-skill/SKILL.md +2 -2
- package/.pi/skills/define-success/SKILL.md +6 -59
- package/.pi/skills/deploy/SKILL.md +1 -1
- package/.pi/skills/elaborate-spec/SKILL.md +1 -1
- package/.pi/skills/evolve-skill/SKILL.md +1 -1
- package/.pi/skills/harden-vps/SKILL.md +63 -60
- package/.pi/skills/investigate-bug/SKILL.md +2 -2
- package/.pi/skills/orchestrate-project/SKILL.md +1 -1
- package/.pi/skills/plan-refactor/SKILL.md +2 -2
- package/.pi/skills/plan-release/SKILL.md +2 -2
- package/.pi/skills/plan-work/SKILL.md +1 -1
- package/.pi/skills/using-bigpowers/SKILL.md +2 -2
- package/.pi/skills/wire-ci/SKILL.md +11 -14
- package/.pi/skills/write-document/SKILL.md +1 -1
- package/.qwen/skills/align-grid/SKILL.md +110 -0
- package/.qwen/skills/assess-impact/SKILL.md +91 -0
- package/.qwen/skills/audit-code/SKILL.md +184 -0
- package/.qwen/skills/audit-plan/SKILL.md +89 -0
- package/.qwen/skills/build-epic/SKILL.md +105 -0
- package/.qwen/skills/change-request/SKILL.md +121 -0
- package/.qwen/skills/commit-message/SKILL.md +140 -0
- package/.qwen/skills/compose-workflow/SKILL.md +82 -0
- package/.qwen/skills/context7-mcp/SKILL.md +55 -0
- package/.qwen/skills/craft-skill/SKILL.md +196 -0
- package/.qwen/skills/deepen-architecture/SKILL.md +260 -0
- package/.qwen/skills/define-language/SKILL.md +80 -0
- package/.qwen/skills/define-success/SKILL.md +12 -0
- package/.qwen/skills/delegate-task/SKILL.md +91 -0
- package/.qwen/skills/deploy/SKILL.md +198 -0
- package/.qwen/skills/design-interface/SKILL.md +97 -0
- package/.qwen/skills/develop-tdd/SKILL.md +416 -0
- package/.qwen/skills/diagnose-root/SKILL.md +24 -0
- package/.qwen/skills/diagnose-stall/SKILL.md +54 -0
- package/.qwen/skills/dispatch-agents/SKILL.md +118 -0
- package/.qwen/skills/edit-document/SKILL.md +23 -0
- package/.qwen/skills/elaborate-spec/SKILL.md +101 -0
- package/.qwen/skills/enforce-first/SKILL.md +45 -0
- package/.qwen/skills/evolve-skill/SKILL.md +55 -0
- package/.qwen/skills/execute-plan/SKILL.md +61 -0
- package/.qwen/skills/extract-design/SKILL.md +132 -0
- package/.qwen/skills/find-way/SKILL.md +191 -0
- package/.qwen/skills/fix-bug/SKILL.md +67 -0
- package/.qwen/skills/gate-trace/SKILL.md +92 -0
- package/.qwen/skills/generate-allure-report/SKILL.md +285 -0
- package/.qwen/skills/grill-me/SKILL.md +108 -0
- package/.qwen/skills/grill-with-docs/SKILL.md +53 -0
- package/.qwen/skills/guard-git/SKILL.md +231 -0
- package/.qwen/skills/harden-vps/SKILL.md +291 -0
- package/.qwen/skills/hook-commits/SKILL.md +94 -0
- package/.qwen/skills/inspect-quality/SKILL.md +106 -0
- package/.qwen/skills/investigate-bug/SKILL.md +127 -0
- package/.qwen/skills/kickoff-branch/SKILL.md +143 -0
- package/.qwen/skills/maintain-wiki/SKILL.md +64 -0
- package/.qwen/skills/map-codebase/SKILL.md +71 -0
- package/.qwen/skills/migrate-spec/SKILL.md +862 -0
- package/.qwen/skills/model-domain/SKILL.md +232 -0
- package/.qwen/skills/orchestrate-project/SKILL.md +174 -0
- package/.qwen/skills/organize-workspace/SKILL.md +164 -0
- package/.qwen/skills/plan-refactor/SKILL.md +87 -0
- package/.qwen/skills/plan-release/SKILL.md +145 -0
- package/.qwen/skills/plan-tests/SKILL.md +75 -0
- package/.qwen/skills/plan-work/SKILL.md +260 -0
- package/.qwen/skills/publish-package/SKILL.md +328 -0
- package/.qwen/skills/quick-fix/SKILL.md +114 -0
- package/.qwen/skills/release-branch/SKILL.md +298 -0
- package/.qwen/skills/request-review/SKILL.md +113 -0
- package/.qwen/skills/research-first/SKILL.md +87 -0
- package/.qwen/skills/reset-baseline/SKILL.md +21 -0
- package/.qwen/skills/respond-review/SKILL.md +71 -0
- package/.qwen/skills/run-benchmark/SKILL.md +85 -0
- package/.qwen/skills/run-evals/SKILL.md +80 -0
- package/.qwen/skills/run-planning/SKILL.md +101 -0
- package/.qwen/skills/scope-work/SKILL.md +63 -0
- package/.qwen/skills/search-skills/SKILL.md +73 -0
- package/.qwen/skills/security-review/SKILL.md +384 -0
- package/.qwen/skills/seed-conventions/SKILL.md +302 -0
- package/.qwen/skills/session-state/SKILL.md +146 -0
- package/.qwen/skills/setup-environment/SKILL.md +39 -0
- package/.qwen/skills/simulate-agents/SKILL.md +26 -0
- package/.qwen/skills/slice-tasks/SKILL.md +68 -0
- package/.qwen/skills/smoke-test/SKILL.md +257 -0
- package/.qwen/skills/spike-prototype/SKILL.md +95 -0
- package/.qwen/skills/stocktake-skills/SKILL.md +74 -0
- package/.qwen/skills/survey-context/SKILL.md +135 -0
- package/.qwen/skills/terse-mode/SKILL.md +42 -0
- package/.qwen/skills/trace-requirement/SKILL.md +69 -0
- package/.qwen/skills/using-bigpowers/SKILL.md +111 -0
- package/.qwen/skills/validate-contracts/SKILL.md +277 -0
- package/.qwen/skills/validate-fix/SKILL.md +147 -0
- package/.qwen/skills/verify-work/SKILL.md +191 -0
- package/.qwen/skills/visual-dashboard/SKILL.md +50 -0
- package/.qwen/skills/wire-ci/SKILL.md +374 -0
- package/.qwen/skills/wire-observability/SKILL.md +97 -0
- package/.qwen/skills/write-document/SKILL.md +255 -0
- package/.trae/skills/commit-message/SKILL.md +1 -1
- package/.trae/skills/craft-skill/SKILL.md +2 -2
- package/.trae/skills/define-success/SKILL.md +6 -59
- package/.trae/skills/deploy/SKILL.md +1 -1
- package/.trae/skills/elaborate-spec/SKILL.md +1 -1
- package/.trae/skills/evolve-skill/SKILL.md +1 -1
- package/.trae/skills/harden-vps/SKILL.md +63 -60
- package/.trae/skills/investigate-bug/SKILL.md +2 -2
- package/.trae/skills/orchestrate-project/SKILL.md +1 -1
- package/.trae/skills/plan-refactor/SKILL.md +2 -2
- package/.trae/skills/plan-release/SKILL.md +2 -2
- package/.trae/skills/plan-work/SKILL.md +1 -1
- package/.trae/skills/using-bigpowers/SKILL.md +2 -2
- package/.trae/skills/wire-ci/SKILL.md +11 -14
- package/.trae/skills/write-document/SKILL.md +1 -1
- package/.windsurf/rules/commit-message.md +1 -1
- package/.windsurf/rules/craft-skill.md +2 -2
- package/.windsurf/rules/define-success.md +6 -59
- package/.windsurf/rules/deploy.md +1 -1
- package/.windsurf/rules/elaborate-spec.md +1 -1
- package/.windsurf/rules/evolve-skill.md +1 -1
- package/.windsurf/rules/harden-vps.md +63 -60
- package/.windsurf/rules/investigate-bug.md +2 -2
- package/.windsurf/rules/orchestrate-project.md +1 -1
- package/.windsurf/rules/plan-refactor.md +2 -2
- package/.windsurf/rules/plan-release.md +2 -2
- package/.windsurf/rules/plan-work.md +1 -1
- package/.windsurf/rules/using-bigpowers.md +2 -2
- package/.windsurf/rules/wire-ci.md +11 -14
- package/.windsurf/rules/write-document.md +1 -1
- package/.zcode/skills/commit-message/SKILL.md +1 -1
- package/.zcode/skills/craft-skill/SKILL.md +2 -2
- package/.zcode/skills/define-success/SKILL.md +6 -59
- package/.zcode/skills/deploy/SKILL.md +1 -1
- package/.zcode/skills/elaborate-spec/SKILL.md +1 -1
- package/.zcode/skills/evolve-skill/SKILL.md +1 -1
- package/.zcode/skills/harden-vps/SKILL.md +63 -60
- package/.zcode/skills/investigate-bug/SKILL.md +2 -2
- package/.zcode/skills/orchestrate-project/SKILL.md +1 -1
- package/.zcode/skills/plan-refactor/SKILL.md +2 -2
- package/.zcode/skills/plan-release/SKILL.md +2 -2
- package/.zcode/skills/plan-work/SKILL.md +1 -1
- package/.zcode/skills/using-bigpowers/SKILL.md +2 -2
- package/.zcode/skills/wire-ci/SKILL.md +11 -14
- package/.zcode/skills/write-document/SKILL.md +1 -1
- package/CHANGELOG.md +14 -0
- package/SKILL-INDEX.md +2 -2
- package/package.json +1 -1
- package/scripts/adapters/agy.sh +3 -0
- package/scripts/adapters/continue.sh +3 -0
- package/scripts/adapters/cursor.sh +3 -0
- package/scripts/adapters/gemini.sh +5 -24
- package/scripts/adapters/mimo.sh +3 -0
- package/scripts/adapters/omp.sh +3 -0
- package/scripts/adapters/pi.sh +6 -3
- package/scripts/adapters/zcode.sh +3 -0
- package/scripts/adapters/zed.sh +3 -0
- package/scripts/check-skill-links.py +35 -0
- package/scripts/generate-workflow-diagrams.sh +102 -0
- package/scripts/golden-g13-test-orphans.sh +70 -0
- package/scripts/golden-g14-adapter-dispatch.sh +113 -0
- package/scripts/land-branch.sh +9 -3
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/scripts/lib/adapter-guard.sh +30 -0
- package/scripts/lib/golden-suite-gates.sh +28 -0
- package/scripts/lib/install-targets-b.sh +0 -8
- package/scripts/lib/sync-render.sh +0 -43
- package/scripts/lib/target-contracts.sh +37 -1
- package/scripts/targets.yaml +35 -13
- package/scripts/test-adapter-render.sh +116 -0
- package/scripts/test-adapters.sh +10 -3
- package/scripts/test-install-hub.sh +139 -0
- package/scripts/test-target-contracts.sh +73 -0
- package/scripts/tombstone-skill.sh +6 -0
- package/skills/commit-message/REFERENCE.md +1 -1
- package/skills/craft-skill/SKILL.md +2 -2
- package/skills/define-success/SKILL.md +7 -61
- package/skills/deploy/SKILL.md +1 -1
- package/skills/elaborate-spec/SKILL.md +1 -1
- package/skills/evolve-skill/REFERENCE.md +1 -1
- package/skills/harden-vps/REFERENCE.md +39 -36
- package/skills/harden-vps/SKILL.md +24 -24
- package/skills/investigate-bug/SKILL.md +2 -2
- package/skills/orchestrate-project/REFERENCE.md +1 -1
- package/skills/plan-refactor/SKILL.md +2 -2
- package/skills/plan-release/SKILL.md +2 -2
- package/skills/plan-work/SKILL.md +1 -1
- package/skills/security-review/fixtures/CWE-639-idor-negative.go +1 -1
- package/skills/security-review/fixtures/CWE-639-idor-positive.go +1 -1
- package/skills/using-bigpowers/SKILL.md +2 -2
- package/skills/wire-ci/REFERENCE.md +11 -14
- package/skills/write-document/REFERENCE.md +1 -1
- package/skills-lock.json +12 -12
- package/.fix_regex.sh +0 -16
- package/.hermes-verify-sed-fix.py +0 -53
- package/_test_e28s01.sh +0 -2
- package/audit-independent-unwaived-2026-07-06.md +0 -49
- package/hermes-verify-sed-fix.py +0 -30
- package/instructions +0 -1
- package/scripts/hermes-verify-e39s02.sh +0 -28
- package/scripts/test-agy-hub.sh +0 -60
- package/scripts/test-cline-adapter.sh +0 -55
- package/scripts/test-cline-hub.sh +0 -48
- package/scripts/test-codebuddy-adapter.sh +0 -63
- package/scripts/test-codebuddy-hub.sh +0 -49
- package/scripts/test-codex-adapter.sh +0 -63
- package/scripts/test-codex-hub.sh +0 -49
- package/scripts/test-copilot-adapter.sh +0 -47
- package/scripts/test-copilot-hub.sh +0 -43
- package/scripts/test-gemini-adapter.sh +0 -70
- package/scripts/test-gemini-hub.sh +0 -56
- package/scripts/test-hermes-adapter.sh +0 -85
- package/scripts/test-hermes-hub.sh +0 -52
- package/scripts/test-kilocode-adapter.sh +0 -55
- package/scripts/test-kilocode-hub.sh +0 -48
- package/scripts/test-mimo-hub.sh +0 -52
- package/scripts/test-opencode-adapter.sh +0 -47
- package/scripts/test-opencode-hub.sh +0 -43
- package/scripts/test-qwen-adapter.sh +0 -63
- package/scripts/test-qwen-hub.sh +0 -49
- package/scripts/test-trae-adapter.sh +0 -63
- package/scripts/test-trae-hub.sh +0 -49
- package/scripts/test-windsurf-adapter.sh +0 -63
- package/scripts/test-windsurf-hub.sh +0 -49
- package/scripts/test-zcode-hub.sh +0 -52
- package/test_figlet.py +0 -17
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e37s05
|
|
3
|
+
# test-adapter-render.sh — render, path-traversal and hook-guard checks for
|
|
4
|
+
# every adapter, replacing 11 hand-written test-<target>-adapter.sh scripts.
|
|
5
|
+
#
|
|
6
|
+
# The 11 originals were the same five assertions with the target name
|
|
7
|
+
# substituted, none of them reachable from any gate, and they covered 11 of the
|
|
8
|
+
# 18 adapters that define render_skill(). Their fifth assertion was pure
|
|
9
|
+
# delegation to test-adapters.sh, which is already registry-driven.
|
|
10
|
+
#
|
|
11
|
+
# Adapters are discovered from scripts/adapters/*.sh, and each adapter's output
|
|
12
|
+
# directory variable is read out of its own source (they vary: *_SKILLS,
|
|
13
|
+
# *_RULES, *_EXT_DIR), so adding an adapter needs no edit here.
|
|
14
|
+
#
|
|
15
|
+
# Usage: bash scripts/test-adapter-render.sh
|
|
16
|
+
set -euo pipefail
|
|
17
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
|
|
18
|
+
resolve_repo_root
|
|
19
|
+
cd "$REPO_ROOT"
|
|
20
|
+
|
|
21
|
+
PASS=0
|
|
22
|
+
FAIL=0
|
|
23
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
24
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
25
|
+
|
|
26
|
+
TMP_ROOT=$(mktemp -d)
|
|
27
|
+
trap 'rm -rf "$TMP_ROOT"' EXIT
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
echo "=== test-adapter-render.sh ==="
|
|
33
|
+
|
|
34
|
+
for adapter in scripts/adapters/*.sh; do
|
|
35
|
+
id="$(basename "$adapter" .sh)"
|
|
36
|
+
|
|
37
|
+
grep -q "^render_skill()" "$adapter" || continue
|
|
38
|
+
|
|
39
|
+
# Adapters are sourced, not executed: several (continue, omp, zed) are stubs
|
|
40
|
+
# with no stdin entrypoint and would silently no-op — and exit 0 — if run as
|
|
41
|
+
# scripts. Sourcing and calling render_skill directly is how test-adapters.sh
|
|
42
|
+
# drives them, and it exercises every adapter the same way.
|
|
43
|
+
#
|
|
44
|
+
# An adapter may read more than one output variable (gemini uses GEMINI_SKILLS
|
|
45
|
+
# and GEMINI_EXT_DIR), so point all of them at the sandbox rather than
|
|
46
|
+
# guessing which one matters.
|
|
47
|
+
mapfile -t outvars < <(grep -oE '\$\{?[A-Z][A-Z0-9_]*_(SKILLS|RULES|EXT_DIR|OUT|COMMANDS|PROMPTS|HOOKS_DIR)[:-]' "$adapter" \
|
|
48
|
+
| tr -d '${:-' | sort -u)
|
|
49
|
+
if [[ ${#outvars[@]} -eq 0 ]]; then
|
|
50
|
+
echo " skip: $id — no output directory variable found"
|
|
51
|
+
continue
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
render_into() { # $1 = destination dir, $2 = skill name
|
|
55
|
+
local dir="$1" nm="$2" v
|
|
56
|
+
local -a envs=()
|
|
57
|
+
for v in "${outvars[@]}"; do envs+=("$v=$dir"); done
|
|
58
|
+
( set +e
|
|
59
|
+
env "${envs[@]}" bash -c '
|
|
60
|
+
source "$1" 2>/dev/null || exit 1
|
|
61
|
+
IR_NAME="$2"; IR_DESCRIPTION="test desc"; IR_BODY="test body"
|
|
62
|
+
IR_DESC_ESCAPED="test desc"; IR_MODEL=""
|
|
63
|
+
declare -f render_skill >/dev/null || exit 1
|
|
64
|
+
render_skill
|
|
65
|
+
' _ "$PWD/$adapter" "$nm" >/dev/null 2>&1 )
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
dest="$TMP_ROOT/$id"
|
|
69
|
+
mkdir -p "$dest"
|
|
70
|
+
if render_into "$dest" "test-skill" && [[ -n "$(find "$dest" -mindepth 1 2>/dev/null)" ]]; then
|
|
71
|
+
pass "$id: render_skill writes an artifact from a SkillIR"
|
|
72
|
+
else
|
|
73
|
+
fail "$id: render_skill produced no artifact (${outvars[*]})"
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# Path traversal must be refused — this is the security assertion the
|
|
77
|
+
# per-target scripts carried and nothing else covers.
|
|
78
|
+
#
|
|
79
|
+
# Each adapter gets its own sandbox parent so the escape probe is isolated:
|
|
80
|
+
# ../escape from <sandbox>/out lands in <sandbox>, and a single shared parent
|
|
81
|
+
# would make one adapter's artifact fail every later adapter.
|
|
82
|
+
sandbox="$TMP_ROOT/sandbox-$id"
|
|
83
|
+
mkdir -p "$sandbox/out"
|
|
84
|
+
if render_into "$sandbox/out" "../escape"; then
|
|
85
|
+
fail "$id: accepted a path-traversal skill name"
|
|
86
|
+
else
|
|
87
|
+
pass "$id: rejects path traversal in skill name"
|
|
88
|
+
fi
|
|
89
|
+
if [[ -e "$sandbox/escape" ]]; then
|
|
90
|
+
fail "$id: path traversal escaped into $sandbox"
|
|
91
|
+
else
|
|
92
|
+
pass "$id: traversal wrote nothing outside the destination"
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# Hook bundle + guard behaviour, only where the target ships hooks.
|
|
96
|
+
hookdir="scripts/hooks/$id"
|
|
97
|
+
guard="$hookdir/pre-tool-git-guard.sh"
|
|
98
|
+
if [[ -f "$guard" ]]; then
|
|
99
|
+
out="$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
|
|
100
|
+
| bash "$guard" 2>/dev/null || true)"
|
|
101
|
+
grep -q 'block' <<<"$out" \
|
|
102
|
+
&& pass "$id: pre-tool guard blocks a dangerous git command" \
|
|
103
|
+
|| fail "$id: pre-tool guard did not block git push --force"
|
|
104
|
+
fi
|
|
105
|
+
done
|
|
106
|
+
|
|
107
|
+
# The generic adapter-contract runner stays the source of truth for
|
|
108
|
+
# render_skill/wire_context wiring; assert it is green rather than restating it.
|
|
109
|
+
if bash scripts/test-adapters.sh 2>&1 | grep -q '0 failed'; then
|
|
110
|
+
pass "test-adapters.sh reports 0 failed across the registry"
|
|
111
|
+
else
|
|
112
|
+
fail "test-adapters.sh reported failures"
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
echo "test-adapter-render: $PASS passed, $FAIL failed"
|
|
116
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
package/scripts/test-adapters.sh
CHANGED
|
@@ -40,8 +40,13 @@ test_adapter() {
|
|
|
40
40
|
[[ -f "$adapter_file" ]] || { ta_fail "$id: adapter missing"; return; }
|
|
41
41
|
ta_pass "$id: exists"
|
|
42
42
|
|
|
43
|
+
# </dev/null is load-bearing. The caller feeds the target list into a
|
|
44
|
+
# `while read` loop, so a sourced adapter inherits it on fd 0 — and every
|
|
45
|
+
# adapter ends in a main block that reads stdin. agy.sh was consuming the
|
|
46
|
+
# remaining target list and running render_skill with an empty IR_NAME, so
|
|
47
|
+
# this "registry-driven" runner silently tested exactly one adapter.
|
|
43
48
|
# shellcheck source=/dev/null
|
|
44
|
-
source "$adapter_file" 2>/dev/null && ta_pass "$id: sourceable" || { ta_fail "$id: source error"; return; }
|
|
49
|
+
source "$adapter_file" </dev/null 2>/dev/null && ta_pass "$id: sourceable" || { ta_fail "$id: source error"; return; }
|
|
45
50
|
|
|
46
51
|
local has_skill has_context mode
|
|
47
52
|
has_skill=$(yq -r ".targets[] | select(.id==\"$id\") | .skill != null" "$TARGETS_FILE")
|
|
@@ -62,11 +67,13 @@ test_adapter() {
|
|
|
62
67
|
# to print 5 PASS lines and report 4. Capture the status, tally in-process.
|
|
63
68
|
if (
|
|
64
69
|
cd "$TA_TMPDIR"
|
|
70
|
+
# </dev/null for the same reason as above — this subshell also inherits
|
|
71
|
+
# the caller's target list on fd 0.
|
|
65
72
|
# shellcheck source=/dev/null
|
|
66
|
-
source "$adapter_file"
|
|
73
|
+
source "$adapter_file" </dev/null
|
|
67
74
|
wire_context >/dev/null 2>&1 || true
|
|
68
75
|
wire_context >/dev/null 2>&1
|
|
69
|
-
); then
|
|
76
|
+
) </dev/null; then
|
|
70
77
|
ta_pass "$id: idempotent wire_context"
|
|
71
78
|
else
|
|
72
79
|
ta_fail "$id: wire_context failed"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e37s05
|
|
3
|
+
# test-install-hub.sh — one registry-driven check of install-hub wiring for
|
|
4
|
+
# every target, replacing 14 hand-written test-<target>-hub.sh scripts.
|
|
5
|
+
#
|
|
6
|
+
# Those 14 were line-for-line identical apart from three substituted tokens, and
|
|
7
|
+
# none of them were reachable from any gate. They also covered only 14 of the 18
|
|
8
|
+
# targets install.sh actually defines, so antigravity, claude, cursor and pi had
|
|
9
|
+
# no hub coverage at all.
|
|
10
|
+
#
|
|
11
|
+
# Targets are discovered from install.sh's own install_<id>() definitions —
|
|
12
|
+
# the authoritative statement of what the hub installs — rather than from a
|
|
13
|
+
# table that would drift. Each target's display label is read out of its
|
|
14
|
+
# install function body, so adding a target needs no edit here.
|
|
15
|
+
#
|
|
16
|
+
# Usage: bash scripts/test-install-hub.sh [--self-test]
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
|
|
19
|
+
resolve_repo_root
|
|
20
|
+
cd "$REPO_ROOT"
|
|
21
|
+
|
|
22
|
+
PASS=0
|
|
23
|
+
FAIL=0
|
|
24
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
25
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
26
|
+
|
|
27
|
+
INSTALL_SH="scripts/install.sh"
|
|
28
|
+
HELPERS_JS="scripts/lib/install-helpers.js"
|
|
29
|
+
SETUP_JS="bin/setup.js"
|
|
30
|
+
TARGETS_YAML="scripts/targets.yaml"
|
|
31
|
+
INSTALL_SRC="$INSTALL_SH scripts/lib/install-targets-a.sh scripts/lib/install-targets-b.sh scripts/lib/install-targets-c.sh scripts/lib/install-targets-d.sh"
|
|
32
|
+
|
|
33
|
+
# setup.js registers Kilo under a shortened id; everything else matches 1:1.
|
|
34
|
+
setup_id_for() { [[ "$1" == "kilocode" ]] && echo "kilo" || echo "$1"; }
|
|
35
|
+
|
|
36
|
+
discover_targets() {
|
|
37
|
+
# shellcheck disable=SC2086
|
|
38
|
+
grep -hoE "^install_[a-z0-9]+\(\)" $INSTALL_SRC 2>/dev/null \
|
|
39
|
+
| sed 's/^install_//; s/()//' | sort -u
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Pull `echo "Label → ..."` out of the target's own install function body.
|
|
43
|
+
label_for() {
|
|
44
|
+
local id="$1"
|
|
45
|
+
# shellcheck disable=SC2086
|
|
46
|
+
# Strip around the arrow with sub() rather than substr()/RLENGTH — the arrow
|
|
47
|
+
# is multi-byte UTF-8 and byte-indexed slicing corrupts the trailing char.
|
|
48
|
+
awk -v fn="install_${id}()" '
|
|
49
|
+
$0 ~ "^" fn { inside = 1; next }
|
|
50
|
+
inside && /^}/ { exit }
|
|
51
|
+
inside && /echo "[^"]* →/ {
|
|
52
|
+
line = $0
|
|
53
|
+
sub(/^[^"]*"/, "", line)
|
|
54
|
+
sub(/ →.*$/, "", line)
|
|
55
|
+
print line; exit
|
|
56
|
+
}
|
|
57
|
+
' $INSTALL_SRC 2>/dev/null | head -1
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# Returns the delegate id when install_<id>() does nothing but call another
|
|
61
|
+
# install_<other>, otherwise empty.
|
|
62
|
+
alias_target_for() {
|
|
63
|
+
local id="$1"
|
|
64
|
+
# shellcheck disable=SC2086
|
|
65
|
+
awk -v fn="install_${id}()" '
|
|
66
|
+
$0 ~ "^" fn { inside = 1; body = ""; next }
|
|
67
|
+
inside && /^}/ { exit }
|
|
68
|
+
inside {
|
|
69
|
+
line = $0
|
|
70
|
+
gsub(/^[[:space:]]+|[[:space:]]+$/, "", line)
|
|
71
|
+
if (line != "") body = body line "\n"
|
|
72
|
+
}
|
|
73
|
+
END {
|
|
74
|
+
n = split(body, lines, "\n")
|
|
75
|
+
count = 0; only = ""
|
|
76
|
+
for (i = 1; i <= n; i++) if (lines[i] != "") { count++; only = lines[i] }
|
|
77
|
+
if (count == 1 && only ~ /^install_[a-z0-9]+$/) { sub(/^install_/, "", only); print only }
|
|
78
|
+
}
|
|
79
|
+
' $INSTALL_SRC 2>/dev/null | head -1
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
echo "=== test-install-hub.sh ==="
|
|
83
|
+
|
|
84
|
+
TARGETS=$(discover_targets)
|
|
85
|
+
[[ -n "$TARGETS" ]] || { fail "no install_<id>() functions discovered"; echo "test-install-hub: $PASS passed, $FAIL failed"; exit 1; }
|
|
86
|
+
echo "Discovered $(wc -w <<<"$TARGETS" | tr -d ' ') install targets"
|
|
87
|
+
|
|
88
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1 || true)"
|
|
89
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1 || true)"
|
|
90
|
+
SETUP_IDS="$(sed -n '/SUPPORTED_IDS = new Set/,/);/p' "$SETUP_JS")"
|
|
91
|
+
|
|
92
|
+
for id in $TARGETS; do
|
|
93
|
+
# shellcheck disable=SC2086
|
|
94
|
+
grep -qE "^uninstall_${id}\(\)" $INSTALL_SRC \
|
|
95
|
+
&& pass "$id: uninstall_${id}() defined" \
|
|
96
|
+
|| fail "$id: uninstall_${id}() missing"
|
|
97
|
+
|
|
98
|
+
# Some targets are pure aliases (install_antigravity just calls install_agy).
|
|
99
|
+
# They own no label; the delegate's label is asserted on its own pass.
|
|
100
|
+
alias_of="$(alias_target_for "$id")"
|
|
101
|
+
label="$(label_for "$id")"
|
|
102
|
+
if [[ -z "$label" && -n "$alias_of" ]]; then
|
|
103
|
+
pass "$id: alias of $alias_of (label asserted there)"
|
|
104
|
+
elif [[ -z "$label" ]]; then
|
|
105
|
+
fail "$id: no 'Label →' line found inside install_${id}()"
|
|
106
|
+
else
|
|
107
|
+
grep -qF "$label →" <<<"$DRY_OUT" \
|
|
108
|
+
&& pass "$id: dry-run shows '$label'" \
|
|
109
|
+
|| fail "$id: dry-run missing '$label' section"
|
|
110
|
+
grep -qF "$label →" <<<"$DRY_UNINSTALL" \
|
|
111
|
+
&& pass "$id: dry-run --uninstall shows '$label'" \
|
|
112
|
+
|| fail "$id: dry-run --uninstall missing '$label' section"
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
grep -q "case '${id}'" "$HELPERS_JS" \
|
|
116
|
+
&& pass "$id: install-helpers case" \
|
|
117
|
+
|| fail "$id: install-helpers missing case '${id}'"
|
|
118
|
+
|
|
119
|
+
sid="$(setup_id_for "$id")"
|
|
120
|
+
grep -q "'${sid}'" <<<"$SETUP_IDS" \
|
|
121
|
+
&& pass "$id: setup.js SUPPORTED_IDS carries '${sid}'" \
|
|
122
|
+
|| fail "$id: setup.js SUPPORTED_IDS missing '${sid}'"
|
|
123
|
+
done
|
|
124
|
+
|
|
125
|
+
# Global syntax gates — previously repeated in all 14 scripts.
|
|
126
|
+
bash -n "$INSTALL_SH" && pass "bash -n install.sh" || fail "bash -n install.sh"
|
|
127
|
+
node --check "$HELPERS_JS" >/dev/null 2>&1 && pass "node --check install-helpers.js" || fail "node --check install-helpers.js"
|
|
128
|
+
node --check "$SETUP_JS" >/dev/null 2>&1 && pass "node --check setup.js" || fail "node --check setup.js"
|
|
129
|
+
grep -q "SUPPORTED_IDS = new Set" "$SETUP_JS" && pass "setup.js defines SUPPORTED_IDS" || fail "setup.js missing SUPPORTED_IDS"
|
|
130
|
+
|
|
131
|
+
# Registry coverage is reported, not enforced: copilot, opencode, claude and
|
|
132
|
+
# antigravity ship install functions but have no targets.yaml row today.
|
|
133
|
+
# Failing on that here would block unrelated work; it is tracked separately.
|
|
134
|
+
for id in $TARGETS; do
|
|
135
|
+
grep -q "id: ${id}$" "$TARGETS_YAML" || echo " note: $id installs but has no targets.yaml row"
|
|
136
|
+
done
|
|
137
|
+
|
|
138
|
+
echo "test-install-hub: $PASS passed, $FAIL failed"
|
|
139
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e37s08
|
|
3
|
+
# test-target-contracts.sh — anti-vacuity guard for run_contract.
|
|
4
|
+
#
|
|
5
|
+
# Every contract named in scripts/targets.yaml must have a real assertion behind
|
|
6
|
+
# it. run_contract used to end in `*) echo "SKIP ..."; return 0`, so seven
|
|
7
|
+
# declared contracts (cline/codebuddy/codex/kilocode/qwen/trae/windsurf
|
|
8
|
+
# _hooks_manifest) silently passed forever. This test fails if that default ever
|
|
9
|
+
# returns to being permissive, or if targets.yaml declares a contract nothing
|
|
10
|
+
# implements.
|
|
11
|
+
#
|
|
12
|
+
# Usage: bash scripts/test-target-contracts.sh
|
|
13
|
+
set -euo pipefail
|
|
14
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
|
|
15
|
+
resolve_repo_root
|
|
16
|
+
cd "$REPO_ROOT"
|
|
17
|
+
|
|
18
|
+
PASS=0
|
|
19
|
+
FAIL=0
|
|
20
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
21
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
22
|
+
|
|
23
|
+
echo "=== test-target-contracts.sh ==="
|
|
24
|
+
|
|
25
|
+
# shellcheck source=lib/target-contracts.sh
|
|
26
|
+
source "$REPO_ROOT/scripts/lib/target-contracts.sh"
|
|
27
|
+
|
|
28
|
+
# 1. An unknown contract MUST fail. This is the anti-vacuity assertion.
|
|
29
|
+
set +e
|
|
30
|
+
out=$(run_contract "faketarget" "definitely_not_a_real_contract" 2>&1)
|
|
31
|
+
rc=$?
|
|
32
|
+
set -e
|
|
33
|
+
if [[ $rc -ne 0 ]]; then
|
|
34
|
+
pass "unknown contract fails (exit $rc)"
|
|
35
|
+
else
|
|
36
|
+
fail "unknown contract returned 0 — run_contract is fail-open again: $out"
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# 2. Every contract declared in targets.yaml must resolve to an assertion.
|
|
40
|
+
# Probing with a nonexistent target id means a real assertion returns 1 with
|
|
41
|
+
# a FAIL line, while a missing implementation hits the default branch and
|
|
42
|
+
# reports "unknown contract".
|
|
43
|
+
declared=$(grep -E "^ - [a-z0-9_]+$" scripts/targets.yaml | sed 's/^ - //' | sort -u)
|
|
44
|
+
[[ -n "$declared" ]] || fail "no contracts parsed from targets.yaml"
|
|
45
|
+
|
|
46
|
+
for c in $declared; do
|
|
47
|
+
set +e
|
|
48
|
+
out=$(run_contract "__probe__" "$c" 2>&1)
|
|
49
|
+
set -e
|
|
50
|
+
if grep -q "unknown contract" <<<"$out"; then
|
|
51
|
+
fail "$c declared in targets.yaml but no assertion implements it"
|
|
52
|
+
else
|
|
53
|
+
pass "$c has an implementation"
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
# 3. Every *_hooks_manifest target must actually ship a parseable manifest.
|
|
58
|
+
for c in $declared; do
|
|
59
|
+
case "$c" in
|
|
60
|
+
gemini_hooks_manifest) continue ;; # adapter-level validator, not a file check
|
|
61
|
+
*_hooks_manifest)
|
|
62
|
+
t="${c%_hooks_manifest}"
|
|
63
|
+
if [[ -f "scripts/hooks/${t}/hooks-manifest.json" ]]; then
|
|
64
|
+
pass "$t ships hooks-manifest.json"
|
|
65
|
+
else
|
|
66
|
+
fail "$t declares $c but scripts/hooks/${t}/hooks-manifest.json is missing"
|
|
67
|
+
fi
|
|
68
|
+
;;
|
|
69
|
+
esac
|
|
70
|
+
done
|
|
71
|
+
|
|
72
|
+
echo "test-target-contracts: $PASS passed, $FAIL failed"
|
|
73
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -54,9 +54,15 @@ STORY_TAGS=$(grep -E '^#\s*story:' "$OLD_SKILL_MD" || true)
|
|
|
54
54
|
CURRENT_VERSION=$(jq -r '.version' package.json 2>/dev/null)
|
|
55
55
|
CREATED_AT=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
56
56
|
|
|
57
|
+
# A tombstone is still a live SKILL.md for its transition window, so it must
|
|
58
|
+
# carry the same required frontmatter as any other skill. Omitting `model:`
|
|
59
|
+
# made docs/references/model-profiles.md count one fewer skill than there are
|
|
60
|
+
# skill directories, which fails validate-doctrine's skill-count check.
|
|
57
61
|
cat > "$OLD_SKILL_MD" <<STUBEOF
|
|
58
62
|
---
|
|
59
63
|
name: ${OLD_NAME}
|
|
64
|
+
model: haiku
|
|
65
|
+
effort: light
|
|
60
66
|
description: "TOMBSTONE — renamed/merged to ${NEW_NAME}. This stub resolves for one release then is removed."
|
|
61
67
|
---
|
|
62
68
|
|
|
@@ -78,4 +78,4 @@ This table reflects the **out-of-the-box** behavior of `semantic-release` using
|
|
|
78
78
|
|
|
79
79
|
- [Conventional Commits — specification](https://www.conventionalcommits.org/en/v1.0.0/#specification)
|
|
80
80
|
- [semantic-release — README (commit format & flow)](https://github.com/semantic-release/semantic-release#commit-message-format)
|
|
81
|
-
-
|
|
81
|
+
- Automation and docs align with [semantic-release](https://github.com/semantic-release/semantic-release) upstream; a fork may be substituted without changing this guidance.
|
|
@@ -48,7 +48,7 @@ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-S
|
|
|
48
48
|
- Any reference materials to include?
|
|
49
49
|
- What specs/ output does it produce (if any)?
|
|
50
50
|
|
|
51
|
-
2. **Verify Principles** — Ensure the skill aligns with [PRINCIPLES.md](
|
|
51
|
+
2. **Verify Principles** — Ensure the skill aligns with [PRINCIPLES.md](../../docs/PRINCIPLES.md):
|
|
52
52
|
- Is it atomic (verb-noun)?
|
|
53
53
|
- Is it "deep" (simple interface, complex internal logic)?
|
|
54
54
|
- Does it include Hard Gates?
|
|
@@ -62,7 +62,7 @@ Skill-body instructional prose MUST follow [AGENTIC-STE.md](../../docs/AGENTIC-S
|
|
|
62
62
|
**Auto-skill from library README:** When user provides a library README or API docs URL, extract triggers and HARD GATEs.
|
|
63
63
|
Draft verify commands and specs/ output into SKILL.md. Do NOT invent APIs not in the source.
|
|
64
64
|
|
|
65
|
-
4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](
|
|
65
|
+
4. Add `model:` frontmatter (`haiku` | `sonnet` | `opus`) per [model-profiles.md](../../docs/references/model-profiles.md).
|
|
66
66
|
|
|
67
67
|
> **STREAM CONTINUITY** — When writing file content, output in continuous chunks of ~200 lines. Do not pause. Continue immediately until complete. If you need time, emit a placeholder comment rather than going silent.
|
|
68
68
|
|
|
@@ -1,69 +1,15 @@
|
|
|
1
|
-
ARCHIVED: content absorbed into plan-work
|
|
2
|
-
|
|
3
1
|
---
|
|
4
2
|
name: define-success
|
|
5
|
-
model:
|
|
6
|
-
effort:
|
|
7
|
-
description:
|
|
3
|
+
model: haiku
|
|
4
|
+
effort: light
|
|
5
|
+
description: "TOMBSTONE — renamed/merged to plan-work. This stub resolves for one release then is removed."
|
|
8
6
|
---
|
|
9
7
|
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
Transform "do X" into "step → verify: <cmd>" pairs. This is the pre-flight check before `plan-work` or `develop-tdd` — it makes success observable and removes ambiguity about when you're done.
|
|
13
|
-
|
|
14
|
-
> **HARD GATE** — Success criteria must be testable and user-observable. "Code should be fast" is not testable. "Pageload latency < 2s" is testable.
|
|
15
|
-
|
|
16
|
-
## Why this matters
|
|
17
|
-
|
|
18
|
-
"Implement user authentication" is not a plan. It has no checkpoints, no evidence requirement, and no way to know if you're done. The Karpathy principle: every step must be independently verifiable with a runnable command. If you can't verify it, you can't prove it works.
|
|
19
|
-
|
|
20
|
-
## Process
|
|
21
|
-
|
|
22
|
-
### 1. Read the task statement
|
|
23
|
-
|
|
24
|
-
Take the task as stated (from conversation, or from `specs/epics/ (see slice-tasks)`, or from `specs/product/SCOPE_LATEST.yaml`).
|
|
25
|
-
|
|
26
|
-
### 2. Break into observable outcomes
|
|
27
|
-
|
|
28
|
-
For each thing the task requires, identify:
|
|
29
|
-
- The smallest unit of observable behavior that proves something works
|
|
30
|
-
- The command that proves it
|
|
31
|
-
|
|
32
|
-
Work at the level of behaviors (what the system does) not implementation steps (how you'll write the code).
|
|
33
|
-
|
|
34
|
-
### 3. Write the pairs
|
|
35
|
-
|
|
36
|
-
Format each pair as:
|
|
37
|
-
```
|
|
38
|
-
N. [What must be true] → verify: <runnable command>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Examples:
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
Task: "Add user registration to the API"
|
|
45
|
-
|
|
46
|
-
1. POST /users accepts {email, name} and returns {id, email, name} → verify: curl -s -X POST http://localhost:3000/users -H 'Content-Type: application/json' -d '{"email":"test@test.com","name":"Test"}' | jq .id
|
|
47
|
-
2. Duplicate email is rejected with 409 → verify: npm test -- user-registration.test.ts
|
|
48
|
-
3. Missing email is rejected with 400 and descriptive error → verify: npm test -- user-validation.test.ts
|
|
49
|
-
4. Password is hashed (never stored in plaintext) → verify: npm test -- user-security.test.ts
|
|
50
|
-
5. All existing tests still pass → verify: npm test
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 4. Challenge completeness
|
|
54
|
-
|
|
55
|
-
Ask yourself:
|
|
56
|
-
- Is there any behavior the task requires that isn't covered by a verify step?
|
|
57
|
-
- Is every verify step runnable right now without additional setup?
|
|
58
|
-
- Does the final step verify the whole thing end-to-end?
|
|
59
|
-
|
|
60
|
-
Add any missing pairs.
|
|
61
|
-
|
|
62
|
-
### 5. Output
|
|
8
|
+
# define-success (tombstoned)
|
|
63
9
|
|
|
64
|
-
|
|
10
|
+
This skill has been renamed or merged into `plan-work`. Use `plan-work` instead.
|
|
65
11
|
|
|
66
|
-
|
|
12
|
+
This stub exists for one release as a transition aid, then is removed once
|
|
13
|
+
`scripts/validate-tombstones.sh` flags it as expired.
|
|
67
14
|
|
|
68
|
-
## Verify
|
|
69
15
|
|
package/skills/deploy/SKILL.md
CHANGED
|
@@ -74,7 +74,7 @@ Platform-agnostic — supports multiple deployment targets via environment varia
|
|
|
74
74
|
|----------|---------|---------|
|
|
75
75
|
| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |
|
|
76
76
|
| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |
|
|
77
|
-
|
|
|
77
|
+
| Platform MCP | MCP tool call | `mcp deploy` via your platform MCP server |
|
|
78
78
|
| rsync/SSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR/ $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |
|
|
79
79
|
| Custom | `DEPLOY_COMMAND` | Run any deploy command string |
|
|
80
80
|
|
|
@@ -65,7 +65,7 @@ Once the user has answered the main questions, probe for assumptions:
|
|
|
65
65
|
|
|
66
66
|
### 4. Synthesize and confirm
|
|
67
67
|
|
|
68
|
-
Summarize your understanding in 3–5 bullet points aligned with [countable-story-format.md](
|
|
68
|
+
Summarize your understanding in 3–5 bullet points aligned with [countable-story-format.md](../../docs/countable-story-format.md):
|
|
69
69
|
- The problem (feeds into §1 Business narrative)
|
|
70
70
|
- The solution and main flow (feeds into §5)
|
|
71
71
|
- The key constraints and alternative flows (feeds into §6)
|
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
**Evidence:** path/to/benchmark-report.md
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
Benchmark repo: `bigpowers-benchmark` — resolve the local clone on this machine
|
|
12
|
+
Benchmark repo: `bigpowers-benchmark` — resolve the local clone on this machine; clone it from wherever your fork lives if absent. Never assume a hard-coded absolute path or a specific owner.
|