bigpowers 2.86.5 → 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/evolve-skill/SKILL.md +1 -1
- 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/evolve-skill/SKILL.md +1 -1
- package/.codebuddy/skills/write-document/SKILL.md +1 -1
- package/.codex/skills/commit-message/SKILL.md +1 -1
- package/.codex/skills/evolve-skill/SKILL.md +1 -1
- 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/evolve-skill/SKILL.md +1 -1
- package/.hermes/skills/write-document/SKILL.md +1 -1
- package/.kilocode/rules/commit-message.md +1 -1
- package/.kilocode/rules/evolve-skill.md +1 -1
- package/.kilocode/rules/write-document.md +1 -1
- package/.mimocode/skills/commit-message/SKILL.md +1 -1
- package/.mimocode/skills/evolve-skill/SKILL.md +1 -1
- 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/evolve-skill.md +1 -1
- package/.pi/prompts/write-document.md +1 -1
- package/.pi/skills/commit-message/SKILL.md +1 -1
- package/.pi/skills/evolve-skill/SKILL.md +1 -1
- 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/evolve-skill/SKILL.md +1 -1
- package/.trae/skills/write-document/SKILL.md +1 -1
- package/.windsurf/rules/commit-message.md +1 -1
- package/.windsurf/rules/evolve-skill.md +1 -1
- package/.windsurf/rules/write-document.md +1 -1
- package/.zcode/skills/commit-message/SKILL.md +1 -1
- package/.zcode/skills/evolve-skill/SKILL.md +1 -1
- package/.zcode/skills/write-document/SKILL.md +1 -1
- package/CHANGELOG.md +7 -0
- 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/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/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 +24 -0
- package/scripts/lib/install-targets-b.sh +0 -8
- package/scripts/lib/sync-render.sh +0 -43
- 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/skills/commit-message/REFERENCE.md +1 -1
- package/skills/evolve-skill/REFERENCE.md +1 -1
- package/skills/write-document/REFERENCE.md +1 -1
- 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
|
@@ -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
|
|
@@ -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.
|
|
@@ -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.
|
package/scripts/test-agy-hub.sh
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e74s02
|
|
3
|
-
# Regression tests for Antigravity CLI install hub wiring (Wave B).
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
-
PASS=0
|
|
8
|
-
FAIL=0
|
|
9
|
-
|
|
10
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
-
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
-
|
|
13
|
-
echo "=== test-agy-hub.sh ==="
|
|
14
|
-
|
|
15
|
-
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
-
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
-
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
-
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
-
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
-
|
|
21
|
-
install_grep -q 'install_agy()' && pass 'install.sh: install_agy()' || fail 'install.sh: missing install_agy()'
|
|
22
|
-
install_grep -q 'install_antigravity()' && pass 'install.sh: install_antigravity alias' || fail 'install.sh: missing install_antigravity()'
|
|
23
|
-
install_grep -q 'uninstall_agy()' && pass 'install.sh: uninstall_agy()' || fail 'install.sh: missing uninstall_agy()'
|
|
24
|
-
install_grep -q 'uninstall_antigravity()' && pass 'install.sh: uninstall_antigravity alias' || fail 'install.sh: missing uninstall_antigravity()'
|
|
25
|
-
install_grep -q 'AGY_SKILLS_DIR=' && pass 'install.sh: AGY_SKILLS_DIR' || fail 'install.sh: missing AGY_SKILLS_DIR'
|
|
26
|
-
install_grep -q 'antigravity-cli/skills' && pass 'install.sh: antigravity-cli path' || fail 'install.sh: missing antigravity-cli path'
|
|
27
|
-
install_grep -q 'install_agy' && install_grep -q 'uninstall_agy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing agy'
|
|
28
|
-
! grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p' "$INSTALL_SH")" \
|
|
29
|
-
&& pass 'install.sh: no gemini extension path' || fail 'install.sh: touches gemini extension path'
|
|
30
|
-
|
|
31
|
-
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
32
|
-
grep -q 'Antigravity CLI →' <<< "$DRY_OUT" && pass 'dry-run: Antigravity CLI section' || fail 'dry-run: missing Antigravity CLI section'
|
|
33
|
-
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
34
|
-
grep -q 'Antigravity CLI →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Antigravity CLI section' || fail 'dry-run uninstall: missing Antigravity CLI section'
|
|
35
|
-
|
|
36
|
-
grep -q "case 'antigravity'" "$HELPERS_JS" && pass 'install-helpers: antigravity case' || fail 'install-helpers: missing antigravity case'
|
|
37
|
-
grep -q "case 'agy'" "$HELPERS_JS" && pass 'install-helpers: agy case' || fail 'install-helpers: missing agy case'
|
|
38
|
-
grep -q "'antigravity-cli', 'skills'" "$HELPERS_JS" && pass 'install-helpers: antigravity-cli global path' || fail 'install-helpers: missing antigravity-cli path'
|
|
39
|
-
grep -q "'\\.agents', 'skills'" "$HELPERS_JS" && pass 'install-helpers: .agents/skills local path' || fail 'install-helpers: missing .agents/skills path'
|
|
40
|
-
|
|
41
|
-
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
42
|
-
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
43
|
-
echo "$SETUP_SRC" | grep -q "'antigravity'" && pass 'setup.js: antigravity in TOOLS/SUPPORTED_IDS' || fail 'setup.js: antigravity missing'
|
|
44
|
-
echo "$SETUP_SRC" | grep -q "'agy'" && pass 'setup.js: agy in SUPPORTED_IDS' || fail 'setup.js: agy missing from SUPPORTED_IDS'
|
|
45
|
-
echo "$SETUP_SRC" | grep -q 'antigravity-cli/skills' <<< "$DRY_OUT" && pass 'setup.js: antigravity-cli global path' || fail 'setup.js: wrong antigravity global path'
|
|
46
|
-
echo "$SETUP_SRC" | grep -q "'\\.agents/skills'" && pass 'setup.js: .agents/skills local path' || fail 'setup.js: wrong antigravity local path'
|
|
47
|
-
|
|
48
|
-
grep -q 'id: agy' "$TARGETS_YAML" && pass 'targets.yaml: agy row' || fail 'targets.yaml: missing agy row'
|
|
49
|
-
grep -q 'adapter: agy' "$TARGETS_YAML" && pass 'targets.yaml: agy adapter' || fail 'targets.yaml: missing agy adapter'
|
|
50
|
-
grep -q 'output: .agents/skills' "$TARGETS_YAML" && pass 'targets.yaml: agy output path' || fail 'targets.yaml: missing agy output'
|
|
51
|
-
grep -q 'agy_skills_nonempty' "$TARGETS_YAML" && pass 'targets.yaml: agy contract' || fail 'targets.yaml: missing agy contract'
|
|
52
|
-
|
|
53
|
-
grep -q 'install_agy()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_agy assertion' || fail 'verify-install: missing install_agy assertion'
|
|
54
|
-
|
|
55
|
-
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
56
|
-
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
57
|
-
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
58
|
-
|
|
59
|
-
echo "test-agy-hub: $PASS passed, $FAIL failed"
|
|
60
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e66s01
|
|
3
|
-
# scenario: SC-e66s01-P1-02
|
|
4
|
-
# Regression tests for Cline adapter render + hook templates.
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
-
|
|
10
|
-
PASS=0
|
|
11
|
-
FAIL=0
|
|
12
|
-
|
|
13
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
-
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
-
|
|
16
|
-
echo "=== test-cline-adapter.sh ==="
|
|
17
|
-
|
|
18
|
-
TMP=$(mktemp -d)
|
|
19
|
-
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
-
|
|
21
|
-
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
-
| CLINE_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/cline.sh" \
|
|
23
|
-
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
-
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
-
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
-
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
-
else
|
|
28
|
-
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
-
| CLINE_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/cline.sh" 2>/dev/null; then
|
|
33
|
-
pass "rejects path traversal in skill name"
|
|
34
|
-
else
|
|
35
|
-
fail "rejects path traversal in skill name"
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
if [[ -f "$REPO_ROOT/scripts/hooks/cline/plugin/guard-git-plugin.ts" ]] \
|
|
39
|
-
&& [[ -f "$REPO_ROOT/scripts/hooks/cline/hooks-manifest.json" ]] \
|
|
40
|
-
&& grep -q 'registerHook' "$REPO_ROOT/scripts/hooks/cline/plugin/guard-git-plugin.ts"; then
|
|
41
|
-
pass "plugin hook template present"
|
|
42
|
-
else
|
|
43
|
-
fail "plugin hook template present"
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" cline 2>&1 || true)
|
|
47
|
-
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
48
|
-
pass "test-adapters.sh cline"
|
|
49
|
-
else
|
|
50
|
-
fail "test-adapters.sh cline"
|
|
51
|
-
echo "$ADAPTER_OUT"
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
echo "test-cline-adapter: $PASS passed, $FAIL failed"
|
|
55
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e66s02
|
|
3
|
-
# Regression tests for Cline install hub wiring (Wave B).
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
-
PASS=0
|
|
8
|
-
FAIL=0
|
|
9
|
-
|
|
10
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
-
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
-
|
|
13
|
-
echo "=== test-cline-hub.sh ==="
|
|
14
|
-
|
|
15
|
-
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
-
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
-
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
-
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
-
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
-
|
|
21
|
-
install_grep -q 'install_cline()' && pass 'install.sh: install_cline()' || fail 'install.sh: missing install_cline()'
|
|
22
|
-
install_grep -q 'uninstall_cline()' && pass 'install.sh: uninstall_cline()' || fail 'install.sh: missing uninstall_cline()'
|
|
23
|
-
install_grep -q 'CLINE_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
-
install_grep -q 'install_cline' && install_grep -q 'uninstall_cline' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing cline'
|
|
25
|
-
|
|
26
|
-
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
-
grep -q 'Cline →' <<< "$DRY_OUT" && pass 'dry-run: Cline section' || fail 'dry-run: missing Cline section'
|
|
28
|
-
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
-
grep -q 'Cline →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Cline section' || fail 'dry-run uninstall: missing Cline section'
|
|
30
|
-
|
|
31
|
-
grep -q "case 'cline'" "$HELPERS_JS" && pass 'install-helpers: cline case' || fail 'install-helpers: missing cline case'
|
|
32
|
-
install_grep -q 'scripts/hooks/cline/plugin' && pass 'install.sh: plugin hook template' || fail 'install.sh: missing plugin template'
|
|
33
|
-
|
|
34
|
-
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
35
|
-
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
36
|
-
grep -q "'cline'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: cline in SUPPORTED_IDS' || fail 'setup.js: cline not in SUPPORTED_IDS'
|
|
37
|
-
|
|
38
|
-
grep -q 'id: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline row' || fail 'targets.yaml: missing cline row'
|
|
39
|
-
grep -q 'adapter: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline adapter' || fail 'targets.yaml: missing cline adapter'
|
|
40
|
-
grep -q 'cline_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: cline_hooks_manifest' || fail 'targets.yaml: missing cline_hooks_manifest'
|
|
41
|
-
grep -q 'install_cline()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_cline assertion' || fail 'verify-install: missing install_cline assertion'
|
|
42
|
-
|
|
43
|
-
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
44
|
-
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
45
|
-
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
46
|
-
|
|
47
|
-
echo "test-cline-hub: $PASS passed, $FAIL failed"
|
|
48
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e72s01
|
|
3
|
-
# scenario: SC-e72s01-P1-02
|
|
4
|
-
# Regression tests for CodeBuddy adapter render + hook templates.
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
-
|
|
10
|
-
PASS=0
|
|
11
|
-
FAIL=0
|
|
12
|
-
|
|
13
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
-
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
-
|
|
16
|
-
echo "=== test-codebuddy-adapter.sh ==="
|
|
17
|
-
|
|
18
|
-
TMP=$(mktemp -d)
|
|
19
|
-
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
-
|
|
21
|
-
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
-
| CODEBUDDY_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/codebuddy.sh" \
|
|
23
|
-
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
-
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
-
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
-
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
-
else
|
|
28
|
-
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
-
| CODEBUDDY_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/codebuddy.sh" 2>/dev/null; then
|
|
33
|
-
pass "rejects path traversal in skill name"
|
|
34
|
-
else
|
|
35
|
-
fail "rejects path traversal in skill name"
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
if [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/pre-tool-git-guard.sh" ]] \
|
|
39
|
-
&& [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/hooks-manifest.json" ]] \
|
|
40
|
-
&& [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/settings.example.json" ]]; then
|
|
41
|
-
pass "hook template bundle present"
|
|
42
|
-
else
|
|
43
|
-
fail "hook template bundle present"
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
BLOCK_OUT=$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
|
|
47
|
-
| bash "$REPO_ROOT/scripts/hooks/codebuddy/pre-tool-git-guard.sh")
|
|
48
|
-
if echo "$BLOCK_OUT" | grep -q 'block'; then
|
|
49
|
-
pass "pre-tool guard blocks dangerous command"
|
|
50
|
-
else
|
|
51
|
-
fail "pre-tool guard blocks dangerous command"
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" codebuddy 2>&1 || true)
|
|
55
|
-
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
56
|
-
pass "test-adapters.sh codebuddy"
|
|
57
|
-
else
|
|
58
|
-
fail "test-adapters.sh codebuddy"
|
|
59
|
-
echo "$ADAPTER_OUT"
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
echo "test-codebuddy-adapter: $PASS passed, $FAIL failed"
|
|
63
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e72s02
|
|
3
|
-
# Regression tests for CodeBuddy install hub wiring (Wave B).
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
-
PASS=0
|
|
8
|
-
FAIL=0
|
|
9
|
-
|
|
10
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
-
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
-
|
|
13
|
-
echo "=== test-codebuddy-hub.sh ==="
|
|
14
|
-
|
|
15
|
-
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
-
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
-
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
-
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
-
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
-
|
|
21
|
-
install_grep -q 'install_codebuddy()' && pass 'install.sh: install_codebuddy()' || fail 'install.sh: missing install_codebuddy()'
|
|
22
|
-
install_grep -q 'uninstall_codebuddy()' && pass 'install.sh: uninstall_codebuddy()' || fail 'install.sh: missing uninstall_codebuddy()'
|
|
23
|
-
install_grep -q 'CODEBUDDY_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
-
install_grep -q 'install_codebuddy' && install_grep -q 'uninstall_codebuddy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing codebuddy'
|
|
25
|
-
|
|
26
|
-
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
-
grep -q 'CodeBuddy →' <<< "$DRY_OUT" && pass 'dry-run: CodeBuddy section' || fail 'dry-run: missing CodeBuddy section'
|
|
28
|
-
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
-
grep -q 'CodeBuddy →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: CodeBuddy section' || fail 'dry-run uninstall: missing CodeBuddy section'
|
|
30
|
-
|
|
31
|
-
grep -q "case 'codebuddy'" "$HELPERS_JS" && pass 'install-helpers: codebuddy case' || fail 'install-helpers: missing codebuddy case'
|
|
32
|
-
install_grep -q 'CODEBUDDY_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
|
|
33
|
-
install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
|
|
34
|
-
|
|
35
|
-
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
36
|
-
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
37
|
-
grep -q "'codebuddy'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: codebuddy in SUPPORTED_IDS' || fail 'setup.js: codebuddy not in SUPPORTED_IDS'
|
|
38
|
-
|
|
39
|
-
grep -q 'id: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy row' || fail 'targets.yaml: missing codebuddy row'
|
|
40
|
-
grep -q 'adapter: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy adapter' || fail 'targets.yaml: missing codebuddy adapter'
|
|
41
|
-
grep -q 'codebuddy_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy_hooks_manifest' || fail 'targets.yaml: missing codebuddy_hooks_manifest'
|
|
42
|
-
grep -q 'install_codebuddy()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_codebuddy assertion' || fail 'verify-install: missing install_codebuddy assertion'
|
|
43
|
-
|
|
44
|
-
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
45
|
-
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
46
|
-
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
47
|
-
|
|
48
|
-
echo "test-codebuddy-hub: $PASS passed, $FAIL failed"
|
|
49
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e65s01
|
|
3
|
-
# scenario: SC-e65s01-P1-02
|
|
4
|
-
# Regression tests for Codex CLI adapter render + hook templates.
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
-
|
|
10
|
-
PASS=0
|
|
11
|
-
FAIL=0
|
|
12
|
-
|
|
13
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
-
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
-
|
|
16
|
-
echo "=== test-codex-adapter.sh ==="
|
|
17
|
-
|
|
18
|
-
TMP=$(mktemp -d)
|
|
19
|
-
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
-
|
|
21
|
-
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
-
| CODEX_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/codex.sh" \
|
|
23
|
-
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
-
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
-
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
-
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
-
else
|
|
28
|
-
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
-
| CODEX_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/codex.sh" 2>/dev/null; then
|
|
33
|
-
pass "rejects path traversal in skill name"
|
|
34
|
-
else
|
|
35
|
-
fail "rejects path traversal in skill name"
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
if [[ -f "$REPO_ROOT/scripts/hooks/codex/pre-tool-git-guard.sh" ]] \
|
|
39
|
-
&& [[ -f "$REPO_ROOT/scripts/hooks/codex/hooks-manifest.json" ]] \
|
|
40
|
-
&& [[ -f "$REPO_ROOT/scripts/hooks/codex/settings.example.json" ]]; then
|
|
41
|
-
pass "hook template bundle present"
|
|
42
|
-
else
|
|
43
|
-
fail "hook template bundle present"
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
BLOCK_OUT=$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
|
|
47
|
-
| bash "$REPO_ROOT/scripts/hooks/codex/pre-tool-git-guard.sh")
|
|
48
|
-
if echo "$BLOCK_OUT" | grep -q 'block'; then
|
|
49
|
-
pass "pre-tool guard blocks dangerous command"
|
|
50
|
-
else
|
|
51
|
-
fail "pre-tool guard blocks dangerous command"
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" codex 2>&1 || true)
|
|
55
|
-
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
56
|
-
pass "test-adapters.sh codex"
|
|
57
|
-
else
|
|
58
|
-
fail "test-adapters.sh codex"
|
|
59
|
-
echo "$ADAPTER_OUT"
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
echo "test-codex-adapter: $PASS passed, $FAIL failed"
|
|
63
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e65s02
|
|
3
|
-
# Regression tests for Codex CLI install hub wiring (Wave B).
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
-
PASS=0
|
|
8
|
-
FAIL=0
|
|
9
|
-
|
|
10
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
-
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
-
|
|
13
|
-
echo "=== test-codex-hub.sh ==="
|
|
14
|
-
|
|
15
|
-
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
-
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
-
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
-
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
-
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
-
|
|
21
|
-
install_grep -q 'install_codex()' && pass 'install.sh: install_codex()' || fail 'install.sh: missing install_codex()'
|
|
22
|
-
install_grep -q 'uninstall_codex()' && pass 'install.sh: uninstall_codex()' || fail 'install.sh: missing uninstall_codex()'
|
|
23
|
-
install_grep -q 'CODEX_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
-
install_grep -q 'install_codex' && install_grep -q 'uninstall_codex' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing codex'
|
|
25
|
-
|
|
26
|
-
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
-
grep -q 'Codex CLI →' <<< "$DRY_OUT" && pass 'dry-run: Codex CLI section' || fail 'dry-run: missing Codex CLI section'
|
|
28
|
-
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
-
grep -q 'Codex CLI →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Codex CLI section' || fail 'dry-run uninstall: missing Codex CLI section'
|
|
30
|
-
|
|
31
|
-
grep -q "case 'codex'" "$HELPERS_JS" && pass 'install-helpers: codex case' || fail 'install-helpers: missing codex case'
|
|
32
|
-
install_grep -q 'CODEX_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
|
|
33
|
-
install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
|
|
34
|
-
|
|
35
|
-
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
36
|
-
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
37
|
-
grep -q "'codex'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: codex in SUPPORTED_IDS' || fail 'setup.js: codex not in SUPPORTED_IDS'
|
|
38
|
-
|
|
39
|
-
grep -q 'id: codex' "$TARGETS_YAML" && pass 'targets.yaml: codex row' || fail 'targets.yaml: missing codex row'
|
|
40
|
-
grep -q 'adapter: codex' "$TARGETS_YAML" && pass 'targets.yaml: codex adapter' || fail 'targets.yaml: missing codex adapter'
|
|
41
|
-
grep -q 'codex_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: codex_hooks_manifest' || fail 'targets.yaml: missing codex_hooks_manifest'
|
|
42
|
-
grep -q 'install_codex()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_codex assertion' || fail 'verify-install: missing install_codex assertion'
|
|
43
|
-
|
|
44
|
-
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
45
|
-
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
46
|
-
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
47
|
-
|
|
48
|
-
echo "test-codex-hub: $PASS passed, $FAIL failed"
|
|
49
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# story: e71s01
|
|
3
|
-
# scenario: SC-e71s01-P1-02
|
|
4
|
-
# Regression tests for Copilot CLI adapter render + hook templates.
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
-
|
|
10
|
-
PASS=0
|
|
11
|
-
FAIL=0
|
|
12
|
-
|
|
13
|
-
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
-
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
-
|
|
16
|
-
echo "=== test-copilot-adapter.sh ==="
|
|
17
|
-
|
|
18
|
-
TMP=$(mktemp -d)
|
|
19
|
-
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
-
|
|
21
|
-
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
-
| COPILOT_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/copilot.sh" \
|
|
23
|
-
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
-
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
-
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
-
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
-
else
|
|
28
|
-
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
-
| COPILOT_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/copilot.sh" 2>/dev/null; then
|
|
33
|
-
pass "rejects path traversal in skill name"
|
|
34
|
-
else
|
|
35
|
-
fail "rejects path traversal in skill name"
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" copilot 2>&1 || true)
|
|
39
|
-
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
40
|
-
pass "test-adapters.sh copilot"
|
|
41
|
-
else
|
|
42
|
-
fail "test-adapters.sh copilot"
|
|
43
|
-
echo "$ADAPTER_OUT"
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
echo "test-copilot-adapter: $PASS passed, $FAIL failed"
|
|
47
|
-
[[ "$FAIL" -eq 0 ]] || exit 1
|