bigpowers 2.83.4 → 2.84.1
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/audit-code/SKILL.md +4 -7
- package/.agents/skills/grill-me/SKILL.md +12 -0
- package/.agents/skills/grill-with-docs/SKILL.md +12 -0
- package/.agents/skills/request-review/SKILL.md +1 -0
- package/.agents/skills/wire-ci/SKILL.md +164 -181
- package/.codebuddy/skills/align-grid/SKILL.md +110 -0
- package/.codebuddy/skills/assess-impact/SKILL.md +91 -0
- package/.codebuddy/skills/audit-code/SKILL.md +184 -0
- package/.codebuddy/skills/audit-plan/SKILL.md +89 -0
- package/.codebuddy/skills/build-epic/SKILL.md +105 -0
- package/.codebuddy/skills/change-request/SKILL.md +121 -0
- package/.codebuddy/skills/commit-message/SKILL.md +140 -0
- package/.codebuddy/skills/compose-workflow/SKILL.md +82 -0
- package/.codebuddy/skills/context7-mcp/SKILL.md +55 -0
- package/.codebuddy/skills/craft-skill/SKILL.md +179 -0
- package/.codebuddy/skills/deepen-architecture/SKILL.md +260 -0
- package/.codebuddy/skills/define-language/SKILL.md +80 -0
- package/.codebuddy/skills/define-success/SKILL.md +65 -0
- package/.codebuddy/skills/delegate-task/SKILL.md +91 -0
- package/.codebuddy/skills/deploy/SKILL.md +198 -0
- package/.codebuddy/skills/design-interface/SKILL.md +97 -0
- package/.codebuddy/skills/develop-tdd/SKILL.md +406 -0
- package/.codebuddy/skills/diagnose-root/SKILL.md +24 -0
- package/.codebuddy/skills/diagnose-stall/SKILL.md +54 -0
- package/.codebuddy/skills/dispatch-agents/SKILL.md +118 -0
- package/.codebuddy/skills/edit-document/SKILL.md +23 -0
- package/.codebuddy/skills/elaborate-spec/SKILL.md +101 -0
- package/.codebuddy/skills/enforce-first/SKILL.md +32 -0
- package/.codebuddy/skills/evolve-skill/SKILL.md +55 -0
- package/.codebuddy/skills/execute-plan/SKILL.md +61 -0
- package/.codebuddy/skills/extract-design/SKILL.md +132 -0
- package/.codebuddy/skills/find-way/SKILL.md +191 -0
- package/.codebuddy/skills/fix-bug/SKILL.md +67 -0
- package/.codebuddy/skills/gate-trace/SKILL.md +88 -0
- package/.codebuddy/skills/generate-allure-report/SKILL.md +285 -0
- package/.codebuddy/skills/grill-me/SKILL.md +108 -0
- package/.codebuddy/skills/grill-with-docs/SKILL.md +53 -0
- package/.codebuddy/skills/guard-git/SKILL.md +231 -0
- package/.codebuddy/skills/harden-vps/SKILL.md +288 -0
- package/.codebuddy/skills/hook-commits/SKILL.md +94 -0
- package/.codebuddy/skills/inspect-quality/SKILL.md +106 -0
- package/.codebuddy/skills/investigate-bug/SKILL.md +127 -0
- package/.codebuddy/skills/kickoff-branch/SKILL.md +143 -0
- package/.codebuddy/skills/maintain-wiki/SKILL.md +64 -0
- package/.codebuddy/skills/map-codebase/SKILL.md +71 -0
- package/.codebuddy/skills/migrate-spec/SKILL.md +862 -0
- package/.codebuddy/skills/model-domain/SKILL.md +232 -0
- package/.codebuddy/skills/orchestrate-project/SKILL.md +174 -0
- package/.codebuddy/skills/organize-workspace/SKILL.md +164 -0
- package/.codebuddy/skills/plan-refactor/SKILL.md +87 -0
- package/.codebuddy/skills/plan-release/SKILL.md +145 -0
- package/.codebuddy/skills/plan-tests/SKILL.md +75 -0
- package/.codebuddy/skills/plan-work/SKILL.md +260 -0
- package/.codebuddy/skills/publish-package/SKILL.md +328 -0
- package/.codebuddy/skills/quick-fix/SKILL.md +114 -0
- package/.codebuddy/skills/release-branch/SKILL.md +298 -0
- package/.codebuddy/skills/request-review/SKILL.md +113 -0
- package/.codebuddy/skills/research-first/SKILL.md +87 -0
- package/.codebuddy/skills/reset-baseline/SKILL.md +21 -0
- package/.codebuddy/skills/respond-review/SKILL.md +71 -0
- package/.codebuddy/skills/run-benchmark/SKILL.md +85 -0
- package/.codebuddy/skills/run-evals/SKILL.md +80 -0
- package/.codebuddy/skills/run-planning/SKILL.md +101 -0
- package/.codebuddy/skills/scope-work/SKILL.md +63 -0
- package/.codebuddy/skills/search-skills/SKILL.md +73 -0
- package/.codebuddy/skills/security-review/SKILL.md +384 -0
- package/.codebuddy/skills/seed-conventions/SKILL.md +285 -0
- package/.codebuddy/skills/session-state/SKILL.md +146 -0
- package/.codebuddy/skills/setup-environment/SKILL.md +39 -0
- package/.codebuddy/skills/simulate-agents/SKILL.md +26 -0
- package/.codebuddy/skills/slice-tasks/SKILL.md +68 -0
- package/.codebuddy/skills/smoke-test/SKILL.md +242 -0
- package/.codebuddy/skills/spike-prototype/SKILL.md +95 -0
- package/.codebuddy/skills/stocktake-skills/SKILL.md +72 -0
- package/.codebuddy/skills/survey-context/SKILL.md +135 -0
- package/.codebuddy/skills/terse-mode/SKILL.md +42 -0
- package/.codebuddy/skills/trace-requirement/SKILL.md +69 -0
- package/.codebuddy/skills/using-bigpowers/SKILL.md +111 -0
- package/.codebuddy/skills/validate-contracts/SKILL.md +309 -0
- package/.codebuddy/skills/validate-fix/SKILL.md +106 -0
- package/.codebuddy/skills/verify-work/SKILL.md +191 -0
- package/.codebuddy/skills/visual-dashboard/SKILL.md +50 -0
- package/.codebuddy/skills/wire-ci/SKILL.md +358 -0
- package/.codebuddy/skills/wire-observability/SKILL.md +97 -0
- package/.codebuddy/skills/write-document/SKILL.md +255 -0
- package/.codex/skills/align-grid/SKILL.md +110 -0
- package/.codex/skills/assess-impact/SKILL.md +91 -0
- package/.codex/skills/audit-code/SKILL.md +184 -0
- package/.codex/skills/audit-plan/SKILL.md +89 -0
- package/.codex/skills/build-epic/SKILL.md +105 -0
- package/.codex/skills/change-request/SKILL.md +121 -0
- package/.codex/skills/commit-message/SKILL.md +140 -0
- package/.codex/skills/compose-workflow/SKILL.md +82 -0
- package/.codex/skills/context7-mcp/SKILL.md +55 -0
- package/.codex/skills/craft-skill/SKILL.md +179 -0
- package/.codex/skills/deepen-architecture/SKILL.md +260 -0
- package/.codex/skills/define-language/SKILL.md +80 -0
- package/.codex/skills/define-success/SKILL.md +65 -0
- package/.codex/skills/delegate-task/SKILL.md +91 -0
- package/.codex/skills/deploy/SKILL.md +198 -0
- package/.codex/skills/design-interface/SKILL.md +97 -0
- package/.codex/skills/develop-tdd/SKILL.md +406 -0
- package/.codex/skills/diagnose-root/SKILL.md +24 -0
- package/.codex/skills/diagnose-stall/SKILL.md +54 -0
- package/.codex/skills/dispatch-agents/SKILL.md +118 -0
- package/.codex/skills/edit-document/SKILL.md +23 -0
- package/.codex/skills/elaborate-spec/SKILL.md +101 -0
- package/.codex/skills/enforce-first/SKILL.md +32 -0
- package/.codex/skills/evolve-skill/SKILL.md +55 -0
- package/.codex/skills/execute-plan/SKILL.md +61 -0
- package/.codex/skills/extract-design/SKILL.md +132 -0
- package/.codex/skills/find-way/SKILL.md +191 -0
- package/.codex/skills/fix-bug/SKILL.md +67 -0
- package/.codex/skills/gate-trace/SKILL.md +88 -0
- package/.codex/skills/generate-allure-report/SKILL.md +285 -0
- package/.codex/skills/grill-me/SKILL.md +108 -0
- package/.codex/skills/grill-with-docs/SKILL.md +53 -0
- package/.codex/skills/guard-git/SKILL.md +231 -0
- package/.codex/skills/harden-vps/SKILL.md +288 -0
- package/.codex/skills/hook-commits/SKILL.md +94 -0
- package/.codex/skills/inspect-quality/SKILL.md +106 -0
- package/.codex/skills/investigate-bug/SKILL.md +127 -0
- package/.codex/skills/kickoff-branch/SKILL.md +143 -0
- package/.codex/skills/maintain-wiki/SKILL.md +64 -0
- package/.codex/skills/map-codebase/SKILL.md +71 -0
- package/.codex/skills/migrate-spec/SKILL.md +862 -0
- package/.codex/skills/model-domain/SKILL.md +232 -0
- package/.codex/skills/orchestrate-project/SKILL.md +174 -0
- package/.codex/skills/organize-workspace/SKILL.md +164 -0
- package/.codex/skills/plan-refactor/SKILL.md +87 -0
- package/.codex/skills/plan-release/SKILL.md +145 -0
- package/.codex/skills/plan-tests/SKILL.md +75 -0
- package/.codex/skills/plan-work/SKILL.md +260 -0
- package/.codex/skills/publish-package/SKILL.md +328 -0
- package/.codex/skills/quick-fix/SKILL.md +114 -0
- package/.codex/skills/release-branch/SKILL.md +298 -0
- package/.codex/skills/request-review/SKILL.md +113 -0
- package/.codex/skills/research-first/SKILL.md +87 -0
- package/.codex/skills/reset-baseline/SKILL.md +21 -0
- package/.codex/skills/respond-review/SKILL.md +71 -0
- package/.codex/skills/run-benchmark/SKILL.md +85 -0
- package/.codex/skills/run-evals/SKILL.md +80 -0
- package/.codex/skills/run-planning/SKILL.md +101 -0
- package/.codex/skills/scope-work/SKILL.md +63 -0
- package/.codex/skills/search-skills/SKILL.md +73 -0
- package/.codex/skills/security-review/SKILL.md +384 -0
- package/.codex/skills/seed-conventions/SKILL.md +285 -0
- package/.codex/skills/session-state/SKILL.md +146 -0
- package/.codex/skills/setup-environment/SKILL.md +39 -0
- package/.codex/skills/simulate-agents/SKILL.md +26 -0
- package/.codex/skills/slice-tasks/SKILL.md +68 -0
- package/.codex/skills/smoke-test/SKILL.md +242 -0
- package/.codex/skills/spike-prototype/SKILL.md +95 -0
- package/.codex/skills/stocktake-skills/SKILL.md +72 -0
- package/.codex/skills/survey-context/SKILL.md +135 -0
- package/.codex/skills/terse-mode/SKILL.md +42 -0
- package/.codex/skills/trace-requirement/SKILL.md +69 -0
- package/.codex/skills/using-bigpowers/SKILL.md +111 -0
- package/.codex/skills/validate-contracts/SKILL.md +309 -0
- package/.codex/skills/validate-fix/SKILL.md +106 -0
- package/.codex/skills/verify-work/SKILL.md +191 -0
- package/.codex/skills/visual-dashboard/SKILL.md +50 -0
- package/.codex/skills/wire-ci/SKILL.md +358 -0
- package/.codex/skills/wire-observability/SKILL.md +97 -0
- package/.codex/skills/write-document/SKILL.md +255 -0
- package/.hermes/skills/audit-code/SKILL.md +4 -7
- package/.hermes/skills/grill-me/SKILL.md +12 -0
- package/.hermes/skills/grill-with-docs/SKILL.md +12 -0
- package/.hermes/skills/request-review/SKILL.md +1 -0
- package/.hermes/skills/wire-ci/SKILL.md +164 -181
- package/.kilocode/rules/align-grid.md +110 -0
- package/.kilocode/rules/assess-impact.md +91 -0
- package/.kilocode/rules/audit-code.md +184 -0
- package/.kilocode/rules/audit-plan.md +89 -0
- package/.kilocode/rules/build-epic.md +105 -0
- package/.kilocode/rules/change-request.md +121 -0
- package/.kilocode/rules/commit-message.md +140 -0
- package/.kilocode/rules/compose-workflow.md +82 -0
- package/.kilocode/rules/context7-mcp.md +55 -0
- package/.kilocode/rules/craft-skill.md +179 -0
- package/.kilocode/rules/deepen-architecture.md +260 -0
- package/.kilocode/rules/define-language.md +80 -0
- package/.kilocode/rules/define-success.md +65 -0
- package/.kilocode/rules/delegate-task.md +91 -0
- package/.kilocode/rules/deploy.md +198 -0
- package/.kilocode/rules/design-interface.md +97 -0
- package/.kilocode/rules/develop-tdd.md +406 -0
- package/.kilocode/rules/diagnose-root.md +24 -0
- package/.kilocode/rules/diagnose-stall.md +54 -0
- package/.kilocode/rules/dispatch-agents.md +118 -0
- package/.kilocode/rules/edit-document.md +23 -0
- package/.kilocode/rules/elaborate-spec.md +101 -0
- package/.kilocode/rules/enforce-first.md +32 -0
- package/.kilocode/rules/evolve-skill.md +55 -0
- package/.kilocode/rules/execute-plan.md +61 -0
- package/.kilocode/rules/extract-design.md +132 -0
- package/.kilocode/rules/find-way.md +191 -0
- package/.kilocode/rules/fix-bug.md +67 -0
- package/.kilocode/rules/gate-trace.md +88 -0
- package/.kilocode/rules/generate-allure-report.md +285 -0
- package/.kilocode/rules/grill-me.md +108 -0
- package/.kilocode/rules/grill-with-docs.md +53 -0
- package/.kilocode/rules/guard-git.md +231 -0
- package/.kilocode/rules/harden-vps.md +288 -0
- package/.kilocode/rules/hook-commits.md +94 -0
- package/.kilocode/rules/inspect-quality.md +106 -0
- package/.kilocode/rules/investigate-bug.md +127 -0
- package/.kilocode/rules/kickoff-branch.md +143 -0
- package/.kilocode/rules/maintain-wiki.md +64 -0
- package/.kilocode/rules/map-codebase.md +71 -0
- package/.kilocode/rules/migrate-spec.md +862 -0
- package/.kilocode/rules/model-domain.md +232 -0
- package/.kilocode/rules/orchestrate-project.md +174 -0
- package/.kilocode/rules/organize-workspace.md +164 -0
- package/.kilocode/rules/plan-refactor.md +87 -0
- package/.kilocode/rules/plan-release.md +145 -0
- package/.kilocode/rules/plan-tests.md +75 -0
- package/.kilocode/rules/plan-work.md +260 -0
- package/.kilocode/rules/publish-package.md +328 -0
- package/.kilocode/rules/quick-fix.md +114 -0
- package/.kilocode/rules/release-branch.md +298 -0
- package/.kilocode/rules/request-review.md +113 -0
- package/.kilocode/rules/research-first.md +87 -0
- package/.kilocode/rules/reset-baseline.md +21 -0
- package/.kilocode/rules/respond-review.md +71 -0
- package/.kilocode/rules/run-benchmark.md +85 -0
- package/.kilocode/rules/run-evals.md +80 -0
- package/.kilocode/rules/run-planning.md +101 -0
- package/.kilocode/rules/scope-work.md +63 -0
- package/.kilocode/rules/search-skills.md +73 -0
- package/.kilocode/rules/security-review.md +384 -0
- package/.kilocode/rules/seed-conventions.md +285 -0
- package/.kilocode/rules/session-state.md +146 -0
- package/.kilocode/rules/setup-environment.md +39 -0
- package/.kilocode/rules/simulate-agents.md +26 -0
- package/.kilocode/rules/slice-tasks.md +68 -0
- package/.kilocode/rules/smoke-test.md +242 -0
- package/.kilocode/rules/spike-prototype.md +95 -0
- package/.kilocode/rules/stocktake-skills.md +72 -0
- package/.kilocode/rules/survey-context.md +135 -0
- package/.kilocode/rules/terse-mode.md +42 -0
- package/.kilocode/rules/trace-requirement.md +69 -0
- package/.kilocode/rules/using-bigpowers.md +111 -0
- package/.kilocode/rules/validate-contracts.md +309 -0
- package/.kilocode/rules/validate-fix.md +106 -0
- package/.kilocode/rules/verify-work.md +191 -0
- package/.kilocode/rules/visual-dashboard.md +50 -0
- package/.kilocode/rules/wire-ci.md +358 -0
- package/.kilocode/rules/wire-observability.md +97 -0
- package/.kilocode/rules/write-document.md +255 -0
- package/.mimocode/skills/audit-code/SKILL.md +4 -7
- package/.mimocode/skills/grill-me/SKILL.md +12 -0
- package/.mimocode/skills/grill-with-docs/SKILL.md +12 -0
- package/.mimocode/skills/request-review/SKILL.md +1 -0
- package/.mimocode/skills/wire-ci/SKILL.md +164 -181
- package/.pi/package.json +1 -1
- package/.pi/prompts/audit-code.md +4 -7
- package/.pi/prompts/grill-me.md +12 -0
- package/.pi/prompts/grill-with-docs.md +12 -0
- package/.pi/prompts/request-review.md +1 -0
- package/.pi/prompts/wire-ci.md +164 -181
- package/.pi/skills/audit-code/SKILL.md +4 -7
- package/.pi/skills/grill-me/SKILL.md +12 -0
- package/.pi/skills/grill-with-docs/SKILL.md +12 -0
- package/.pi/skills/request-review/SKILL.md +1 -0
- package/.pi/skills/wire-ci/SKILL.md +164 -181
- package/.trae/skills/align-grid/SKILL.md +110 -0
- package/.trae/skills/assess-impact/SKILL.md +91 -0
- package/.trae/skills/audit-code/SKILL.md +184 -0
- package/.trae/skills/audit-plan/SKILL.md +89 -0
- package/.trae/skills/build-epic/SKILL.md +105 -0
- package/.trae/skills/change-request/SKILL.md +121 -0
- package/.trae/skills/commit-message/SKILL.md +140 -0
- package/.trae/skills/compose-workflow/SKILL.md +82 -0
- package/.trae/skills/context7-mcp/SKILL.md +55 -0
- package/.trae/skills/craft-skill/SKILL.md +179 -0
- package/.trae/skills/deepen-architecture/SKILL.md +260 -0
- package/.trae/skills/define-language/SKILL.md +80 -0
- package/.trae/skills/define-success/SKILL.md +65 -0
- package/.trae/skills/delegate-task/SKILL.md +91 -0
- package/.trae/skills/deploy/SKILL.md +198 -0
- package/.trae/skills/design-interface/SKILL.md +97 -0
- package/.trae/skills/develop-tdd/SKILL.md +406 -0
- package/.trae/skills/diagnose-root/SKILL.md +24 -0
- package/.trae/skills/diagnose-stall/SKILL.md +54 -0
- package/.trae/skills/dispatch-agents/SKILL.md +118 -0
- package/.trae/skills/edit-document/SKILL.md +23 -0
- package/.trae/skills/elaborate-spec/SKILL.md +101 -0
- package/.trae/skills/enforce-first/SKILL.md +32 -0
- package/.trae/skills/evolve-skill/SKILL.md +55 -0
- package/.trae/skills/execute-plan/SKILL.md +61 -0
- package/.trae/skills/extract-design/SKILL.md +132 -0
- package/.trae/skills/find-way/SKILL.md +191 -0
- package/.trae/skills/fix-bug/SKILL.md +67 -0
- package/.trae/skills/gate-trace/SKILL.md +88 -0
- package/.trae/skills/generate-allure-report/SKILL.md +285 -0
- package/.trae/skills/grill-me/SKILL.md +108 -0
- package/.trae/skills/grill-with-docs/SKILL.md +53 -0
- package/.trae/skills/guard-git/SKILL.md +231 -0
- package/.trae/skills/harden-vps/SKILL.md +288 -0
- package/.trae/skills/hook-commits/SKILL.md +94 -0
- package/.trae/skills/inspect-quality/SKILL.md +106 -0
- package/.trae/skills/investigate-bug/SKILL.md +127 -0
- package/.trae/skills/kickoff-branch/SKILL.md +143 -0
- package/.trae/skills/maintain-wiki/SKILL.md +64 -0
- package/.trae/skills/map-codebase/SKILL.md +71 -0
- package/.trae/skills/migrate-spec/SKILL.md +862 -0
- package/.trae/skills/model-domain/SKILL.md +232 -0
- package/.trae/skills/orchestrate-project/SKILL.md +174 -0
- package/.trae/skills/organize-workspace/SKILL.md +164 -0
- package/.trae/skills/plan-refactor/SKILL.md +87 -0
- package/.trae/skills/plan-release/SKILL.md +145 -0
- package/.trae/skills/plan-tests/SKILL.md +75 -0
- package/.trae/skills/plan-work/SKILL.md +260 -0
- package/.trae/skills/publish-package/SKILL.md +328 -0
- package/.trae/skills/quick-fix/SKILL.md +114 -0
- package/.trae/skills/release-branch/SKILL.md +298 -0
- package/.trae/skills/request-review/SKILL.md +113 -0
- package/.trae/skills/research-first/SKILL.md +87 -0
- package/.trae/skills/reset-baseline/SKILL.md +21 -0
- package/.trae/skills/respond-review/SKILL.md +71 -0
- package/.trae/skills/run-benchmark/SKILL.md +85 -0
- package/.trae/skills/run-evals/SKILL.md +80 -0
- package/.trae/skills/run-planning/SKILL.md +101 -0
- package/.trae/skills/scope-work/SKILL.md +63 -0
- package/.trae/skills/search-skills/SKILL.md +73 -0
- package/.trae/skills/security-review/SKILL.md +384 -0
- package/.trae/skills/seed-conventions/SKILL.md +285 -0
- package/.trae/skills/session-state/SKILL.md +146 -0
- package/.trae/skills/setup-environment/SKILL.md +39 -0
- package/.trae/skills/simulate-agents/SKILL.md +26 -0
- package/.trae/skills/slice-tasks/SKILL.md +68 -0
- package/.trae/skills/smoke-test/SKILL.md +242 -0
- package/.trae/skills/spike-prototype/SKILL.md +95 -0
- package/.trae/skills/stocktake-skills/SKILL.md +72 -0
- package/.trae/skills/survey-context/SKILL.md +135 -0
- package/.trae/skills/terse-mode/SKILL.md +42 -0
- package/.trae/skills/trace-requirement/SKILL.md +69 -0
- package/.trae/skills/using-bigpowers/SKILL.md +111 -0
- package/.trae/skills/validate-contracts/SKILL.md +309 -0
- package/.trae/skills/validate-fix/SKILL.md +106 -0
- package/.trae/skills/verify-work/SKILL.md +191 -0
- package/.trae/skills/visual-dashboard/SKILL.md +50 -0
- package/.trae/skills/wire-ci/SKILL.md +358 -0
- package/.trae/skills/wire-observability/SKILL.md +97 -0
- package/.trae/skills/write-document/SKILL.md +255 -0
- package/.windsurf/rules/align-grid.md +110 -0
- package/.windsurf/rules/assess-impact.md +91 -0
- package/.windsurf/rules/audit-code.md +184 -0
- package/.windsurf/rules/audit-plan.md +89 -0
- package/.windsurf/rules/build-epic.md +105 -0
- package/.windsurf/rules/change-request.md +121 -0
- package/.windsurf/rules/commit-message.md +140 -0
- package/.windsurf/rules/compose-workflow.md +82 -0
- package/.windsurf/rules/context7-mcp.md +55 -0
- package/.windsurf/rules/craft-skill.md +179 -0
- package/.windsurf/rules/deepen-architecture.md +260 -0
- package/.windsurf/rules/define-language.md +80 -0
- package/.windsurf/rules/define-success.md +65 -0
- package/.windsurf/rules/delegate-task.md +91 -0
- package/.windsurf/rules/deploy.md +198 -0
- package/.windsurf/rules/design-interface.md +97 -0
- package/.windsurf/rules/develop-tdd.md +406 -0
- package/.windsurf/rules/diagnose-root.md +24 -0
- package/.windsurf/rules/diagnose-stall.md +54 -0
- package/.windsurf/rules/dispatch-agents.md +118 -0
- package/.windsurf/rules/edit-document.md +23 -0
- package/.windsurf/rules/elaborate-spec.md +101 -0
- package/.windsurf/rules/enforce-first.md +32 -0
- package/.windsurf/rules/evolve-skill.md +55 -0
- package/.windsurf/rules/execute-plan.md +61 -0
- package/.windsurf/rules/extract-design.md +132 -0
- package/.windsurf/rules/find-way.md +191 -0
- package/.windsurf/rules/fix-bug.md +67 -0
- package/.windsurf/rules/gate-trace.md +88 -0
- package/.windsurf/rules/generate-allure-report.md +285 -0
- package/.windsurf/rules/grill-me.md +108 -0
- package/.windsurf/rules/grill-with-docs.md +53 -0
- package/.windsurf/rules/guard-git.md +231 -0
- package/.windsurf/rules/harden-vps.md +288 -0
- package/.windsurf/rules/hook-commits.md +94 -0
- package/.windsurf/rules/inspect-quality.md +106 -0
- package/.windsurf/rules/investigate-bug.md +127 -0
- package/.windsurf/rules/kickoff-branch.md +143 -0
- package/.windsurf/rules/maintain-wiki.md +64 -0
- package/.windsurf/rules/map-codebase.md +71 -0
- package/.windsurf/rules/migrate-spec.md +862 -0
- package/.windsurf/rules/model-domain.md +232 -0
- package/.windsurf/rules/orchestrate-project.md +174 -0
- package/.windsurf/rules/organize-workspace.md +164 -0
- package/.windsurf/rules/plan-refactor.md +87 -0
- package/.windsurf/rules/plan-release.md +145 -0
- package/.windsurf/rules/plan-tests.md +75 -0
- package/.windsurf/rules/plan-work.md +260 -0
- package/.windsurf/rules/publish-package.md +328 -0
- package/.windsurf/rules/quick-fix.md +114 -0
- package/.windsurf/rules/release-branch.md +298 -0
- package/.windsurf/rules/request-review.md +113 -0
- package/.windsurf/rules/research-first.md +87 -0
- package/.windsurf/rules/reset-baseline.md +21 -0
- package/.windsurf/rules/respond-review.md +71 -0
- package/.windsurf/rules/run-benchmark.md +85 -0
- package/.windsurf/rules/run-evals.md +80 -0
- package/.windsurf/rules/run-planning.md +101 -0
- package/.windsurf/rules/scope-work.md +63 -0
- package/.windsurf/rules/search-skills.md +73 -0
- package/.windsurf/rules/security-review.md +384 -0
- package/.windsurf/rules/seed-conventions.md +285 -0
- package/.windsurf/rules/session-state.md +146 -0
- package/.windsurf/rules/setup-environment.md +39 -0
- package/.windsurf/rules/simulate-agents.md +26 -0
- package/.windsurf/rules/slice-tasks.md +68 -0
- package/.windsurf/rules/smoke-test.md +242 -0
- package/.windsurf/rules/spike-prototype.md +95 -0
- package/.windsurf/rules/stocktake-skills.md +72 -0
- package/.windsurf/rules/survey-context.md +135 -0
- package/.windsurf/rules/terse-mode.md +42 -0
- package/.windsurf/rules/trace-requirement.md +69 -0
- package/.windsurf/rules/using-bigpowers.md +111 -0
- package/.windsurf/rules/validate-contracts.md +309 -0
- package/.windsurf/rules/validate-fix.md +106 -0
- package/.windsurf/rules/verify-work.md +191 -0
- package/.windsurf/rules/visual-dashboard.md +50 -0
- package/.windsurf/rules/wire-ci.md +358 -0
- package/.windsurf/rules/wire-observability.md +97 -0
- package/.windsurf/rules/write-document.md +255 -0
- package/.zcode/skills/audit-code/SKILL.md +4 -7
- package/.zcode/skills/grill-me/SKILL.md +12 -0
- package/.zcode/skills/grill-with-docs/SKILL.md +12 -0
- package/.zcode/skills/request-review/SKILL.md +1 -0
- package/.zcode/skills/wire-ci/SKILL.md +164 -181
- package/CHANGELOG.md +37 -0
- package/CONVENTIONS.md +22 -0
- package/README.md +14 -1
- package/SKILL-INDEX.md +84 -76
- package/bin/setup.js +9 -1
- package/instructions +1 -0
- package/package.json +1 -1
- package/scripts/adapters/cline.sh +53 -3
- package/scripts/adapters/codebuddy.sh +58 -0
- package/scripts/adapters/codex.sh +58 -0
- package/scripts/adapters/copilot.sh +58 -0
- package/scripts/adapters/kilocode.sh +44 -3
- package/scripts/adapters/opencode.sh +58 -0
- package/scripts/adapters/qwen.sh +53 -1
- package/scripts/adapters/trae.sh +58 -0
- package/scripts/adapters/windsurf.sh +52 -0
- package/scripts/bp-yaml-set.sh +2 -0
- package/scripts/generate-skill-index.sh +20 -4
- package/scripts/generate-wave-b-hub.py +31 -0
- package/scripts/golden-g04-selftest.sh +19 -0
- package/scripts/hooks/cline/HOOKS.md +16 -0
- package/scripts/hooks/cline/hooks-manifest.json +12 -0
- package/scripts/hooks/cline/plugin/guard-git-plugin.ts +16 -0
- package/scripts/hooks/codebuddy/HOOKS.md +24 -0
- package/scripts/hooks/codebuddy/hooks-manifest.json +20 -0
- package/scripts/hooks/codebuddy/pre-tool-git-guard.sh +22 -0
- package/scripts/hooks/codebuddy/settings.example.json +16 -0
- package/scripts/hooks/codex/HOOKS.md +21 -0
- package/scripts/hooks/codex/hooks-manifest.json +17 -0
- package/scripts/hooks/codex/pre-tool-git-guard.sh +22 -0
- package/scripts/hooks/codex/settings.example.json +16 -0
- package/scripts/hooks/kilocode/HOOKS.md +16 -0
- package/scripts/hooks/kilocode/hooks-manifest.json +12 -0
- package/scripts/hooks/kilocode/plugin/guard-git-plugin.ts +16 -0
- package/scripts/hooks/qwen/HOOKS.md +27 -0
- package/scripts/hooks/qwen/hooks-manifest.json +23 -0
- package/scripts/hooks/qwen/pre-tool-git-guard.sh +22 -0
- package/scripts/hooks/qwen/settings.example.json +16 -0
- package/scripts/hooks/trae/HOOKS.md +17 -0
- package/scripts/hooks/trae/hooks-manifest.json +13 -0
- package/scripts/hooks/trae/pre-tool-git-guard.sh +22 -0
- package/scripts/hooks/trae/settings.example.json +16 -0
- package/scripts/hooks/windsurf/HOOKS.md +23 -0
- package/scripts/hooks/windsurf/hooks-manifest.json +19 -0
- package/scripts/hooks/windsurf/pre-tool-git-guard.sh +22 -0
- package/scripts/hooks/windsurf/settings.example.json +16 -0
- package/scripts/install.sh +33 -373
- 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/context-wire.sh +5 -0
- package/scripts/lib/install-grep.sh +18 -0
- package/scripts/lib/install-helpers.js +139 -2
- package/scripts/lib/install-targets-a.sh +227 -0
- package/scripts/lib/install-targets-b.sh +226 -0
- package/scripts/lib/install-targets-c.sh +128 -0
- package/scripts/lib/install-targets-d.sh +179 -0
- package/scripts/lib/srp-engine.py +2 -70
- package/scripts/lib/srp_engine_links.py +59 -0
- package/scripts/lib/wave_b_hub_codegen_helpers.py +273 -0
- package/scripts/lib/wave_b_hub_codegen_install.py +134 -0
- package/scripts/lib/wave_b_hub_config.py +130 -0
- package/scripts/lib/wave_b_hub_patch.py +213 -0
- package/scripts/record-cycle-time.sh +3 -14
- package/scripts/targets.yaml +75 -2
- package/scripts/test-agy-hub.sh +11 -10
- package/scripts/test-cline-adapter.sh +55 -0
- package/scripts/test-cline-hub.sh +48 -0
- package/scripts/test-codebuddy-adapter.sh +63 -0
- package/scripts/test-codebuddy-hub.sh +49 -0
- package/scripts/test-codex-adapter.sh +63 -0
- package/scripts/test-codex-hub.sh +49 -0
- package/scripts/test-copilot-adapter.sh +47 -0
- package/scripts/test-copilot-hub.sh +43 -0
- package/scripts/test-gemini-hub.sh +10 -9
- package/scripts/test-hermes-hub.sh +7 -6
- package/scripts/test-install-helpers.js +9 -3
- package/scripts/test-kilocode-adapter.sh +55 -0
- package/scripts/test-kilocode-hub.sh +48 -0
- package/scripts/test-mimo-hub.sh +7 -6
- package/scripts/test-opencode-adapter.sh +47 -0
- package/scripts/test-opencode-hub.sh +43 -0
- package/scripts/test-qwen-adapter.sh +63 -0
- package/scripts/test-qwen-hub.sh +49 -0
- package/scripts/test-trae-adapter.sh +63 -0
- package/scripts/test-trae-hub.sh +49 -0
- package/scripts/test-windsurf-adapter.sh +63 -0
- package/scripts/test-windsurf-hub.sh +49 -0
- package/scripts/test-zcode-hub.sh +7 -6
- package/scripts/verify-install.sh +83 -29
- package/skills/audit-code/SKILL.md +4 -7
- package/skills/grill-me/SKILL.md +12 -0
- package/skills/grill-with-docs/SKILL.md +12 -0
- package/skills/request-review/SKILL.md +1 -0
- package/skills/visual-dashboard/scripts/frame-template.html +1 -39
- package/skills/wire-ci/REFERENCE.md +137 -152
- package/skills/wire-ci/SKILL.md +28 -30
- package/skills-lock.json +5 -5
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e68s02
|
|
3
|
+
# Regression tests for Qwen Code 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-qwen-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_qwen()' && pass 'install.sh: install_qwen()' || fail 'install.sh: missing install_qwen()'
|
|
22
|
+
install_grep -q 'uninstall_qwen()' && pass 'install.sh: uninstall_qwen()' || fail 'install.sh: missing uninstall_qwen()'
|
|
23
|
+
install_grep -q 'QWEN_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
+
install_grep -q 'install_qwen' && install_grep -q 'uninstall_qwen' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing qwen'
|
|
25
|
+
|
|
26
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
+
grep -q 'Qwen Code →' <<< "$DRY_OUT" && pass 'dry-run: Qwen Code section' || fail 'dry-run: missing Qwen Code section'
|
|
28
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
+
grep -q 'Qwen Code →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Qwen Code section' || fail 'dry-run uninstall: missing Qwen Code section'
|
|
30
|
+
|
|
31
|
+
grep -q "case 'qwen'" "$HELPERS_JS" && pass 'install-helpers: qwen case' || fail 'install-helpers: missing qwen case'
|
|
32
|
+
install_grep -q 'QWEN_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 "'qwen'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: qwen in SUPPORTED_IDS' || fail 'setup.js: qwen not in SUPPORTED_IDS'
|
|
38
|
+
|
|
39
|
+
grep -q 'id: qwen' "$TARGETS_YAML" && pass 'targets.yaml: qwen row' || fail 'targets.yaml: missing qwen row'
|
|
40
|
+
grep -q 'adapter: qwen' "$TARGETS_YAML" && pass 'targets.yaml: qwen adapter' || fail 'targets.yaml: missing qwen adapter'
|
|
41
|
+
grep -q 'qwen_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: qwen_hooks_manifest' || fail 'targets.yaml: missing qwen_hooks_manifest'
|
|
42
|
+
grep -q 'install_qwen()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_qwen assertion' || fail 'verify-install: missing install_qwen 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-qwen-hub: $PASS passed, $FAIL failed"
|
|
49
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e70s01
|
|
3
|
+
# scenario: SC-e70s01-P1-02
|
|
4
|
+
# Regression tests for Trae 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-trae-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
|
+
| TRAE_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/trae.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
|
+
| TRAE_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/trae.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/trae/pre-tool-git-guard.sh" ]] \
|
|
39
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/trae/hooks-manifest.json" ]] \
|
|
40
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/trae/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/trae/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" trae 2>&1 || true)
|
|
55
|
+
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
56
|
+
pass "test-adapters.sh trae"
|
|
57
|
+
else
|
|
58
|
+
fail "test-adapters.sh trae"
|
|
59
|
+
echo "$ADAPTER_OUT"
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "test-trae-adapter: $PASS passed, $FAIL failed"
|
|
63
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e70s02
|
|
3
|
+
# Regression tests for Trae 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-trae-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_trae()' && pass 'install.sh: install_trae()' || fail 'install.sh: missing install_trae()'
|
|
22
|
+
install_grep -q 'uninstall_trae()' && pass 'install.sh: uninstall_trae()' || fail 'install.sh: missing uninstall_trae()'
|
|
23
|
+
install_grep -q 'TRAE_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
+
install_grep -q 'install_trae' && install_grep -q 'uninstall_trae' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing trae'
|
|
25
|
+
|
|
26
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
+
grep -q 'Trae →' <<< "$DRY_OUT" && pass 'dry-run: Trae section' || fail 'dry-run: missing Trae section'
|
|
28
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
+
grep -q 'Trae →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Trae section' || fail 'dry-run uninstall: missing Trae section'
|
|
30
|
+
|
|
31
|
+
grep -q "case 'trae'" "$HELPERS_JS" && pass 'install-helpers: trae case' || fail 'install-helpers: missing trae case'
|
|
32
|
+
install_grep -q 'TRAE_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 "'trae'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: trae in SUPPORTED_IDS' || fail 'setup.js: trae not in SUPPORTED_IDS'
|
|
38
|
+
|
|
39
|
+
grep -q 'id: trae' "$TARGETS_YAML" && pass 'targets.yaml: trae row' || fail 'targets.yaml: missing trae row'
|
|
40
|
+
grep -q 'adapter: trae' "$TARGETS_YAML" && pass 'targets.yaml: trae adapter' || fail 'targets.yaml: missing trae adapter'
|
|
41
|
+
grep -q 'trae_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: trae_hooks_manifest' || fail 'targets.yaml: missing trae_hooks_manifest'
|
|
42
|
+
grep -q 'install_trae()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_trae assertion' || fail 'verify-install: missing install_trae 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-trae-hub: $PASS passed, $FAIL failed"
|
|
49
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e73s01
|
|
3
|
+
# scenario: SC-e73s01-P1-02
|
|
4
|
+
# Regression tests for Windsurf 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-windsurf-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
|
+
| WINDSURF_RULES="$TMP" bash "$REPO_ROOT/scripts/adapters/windsurf.sh" \
|
|
23
|
+
&& [[ -f $TMP/test-skill.md ]] \
|
|
24
|
+
&& grep -q 'name: test-skill' $TMP/test-skill.md \
|
|
25
|
+
&& grep -q 'test body' $TMP/test-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
|
+
| WINDSURF_RULES="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/windsurf.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/windsurf/pre-tool-git-guard.sh" ]] \
|
|
39
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/windsurf/hooks-manifest.json" ]] \
|
|
40
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/windsurf/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/windsurf/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" windsurf 2>&1 || true)
|
|
55
|
+
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
56
|
+
pass "test-adapters.sh windsurf"
|
|
57
|
+
else
|
|
58
|
+
fail "test-adapters.sh windsurf"
|
|
59
|
+
echo "$ADAPTER_OUT"
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "test-windsurf-adapter: $PASS passed, $FAIL failed"
|
|
63
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e73s02
|
|
3
|
+
# Regression tests for Windsurf 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-windsurf-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_windsurf()' && pass 'install.sh: install_windsurf()' || fail 'install.sh: missing install_windsurf()'
|
|
22
|
+
install_grep -q 'uninstall_windsurf()' && pass 'install.sh: uninstall_windsurf()' || fail 'install.sh: missing uninstall_windsurf()'
|
|
23
|
+
install_grep -q 'WINDSURF_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
+
install_grep -q 'install_windsurf' && install_grep -q 'uninstall_windsurf' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing windsurf'
|
|
25
|
+
|
|
26
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
+
grep -q 'Windsurf →' <<< "$DRY_OUT" && pass 'dry-run: Windsurf section' || fail 'dry-run: missing Windsurf section'
|
|
28
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
+
grep -q 'Windsurf →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Windsurf section' || fail 'dry-run uninstall: missing Windsurf section'
|
|
30
|
+
|
|
31
|
+
grep -q "case 'windsurf'" "$HELPERS_JS" && pass 'install-helpers: windsurf case' || fail 'install-helpers: missing windsurf case'
|
|
32
|
+
install_grep -q 'WINDSURF_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 "'windsurf'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: windsurf in SUPPORTED_IDS' || fail 'setup.js: windsurf not in SUPPORTED_IDS'
|
|
38
|
+
|
|
39
|
+
grep -q 'id: windsurf' "$TARGETS_YAML" && pass 'targets.yaml: windsurf row' || fail 'targets.yaml: missing windsurf row'
|
|
40
|
+
grep -q 'adapter: windsurf' "$TARGETS_YAML" && pass 'targets.yaml: windsurf adapter' || fail 'targets.yaml: missing windsurf adapter'
|
|
41
|
+
grep -q 'windsurf_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: windsurf_hooks_manifest' || fail 'targets.yaml: missing windsurf_hooks_manifest'
|
|
42
|
+
grep -q 'install_windsurf()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_windsurf assertion' || fail 'verify-install: missing install_windsurf 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-windsurf-hub: $PASS passed, $FAIL failed"
|
|
49
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -13,19 +13,20 @@ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
|
13
13
|
echo "=== test-zcode-hub.sh ==="
|
|
14
14
|
|
|
15
15
|
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
+
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
16
17
|
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
17
18
|
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
18
19
|
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
install_grep -q 'install_zcode()' && pass 'install.sh: install_zcode()' || fail 'install.sh: missing install_zcode()'
|
|
22
|
+
install_grep -q 'uninstall_zcode()' && pass 'install.sh: uninstall_zcode()' || fail 'install.sh: missing uninstall_zcode()'
|
|
23
|
+
install_grep -q 'ZCODE_SKILLS_DIR=' && pass 'install.sh: ZCODE_SKILLS_DIR' || fail 'install.sh: missing ZCODE_SKILLS_DIR'
|
|
24
|
+
install_grep -q 'install_zcode' && install_grep -q 'uninstall_zcode' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing zcode'
|
|
24
25
|
|
|
25
26
|
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
26
|
-
|
|
27
|
+
grep -q 'ZCode →' <<< "$DRY_OUT" && pass 'dry-run: ZCode section' || fail 'dry-run: missing ZCode section'
|
|
27
28
|
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
28
|
-
|
|
29
|
+
grep -q 'ZCode →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: ZCode section' || fail 'dry-run uninstall: missing ZCode section'
|
|
29
30
|
|
|
30
31
|
grep -q "case 'zcode'" "$HELPERS_JS" && pass 'install-helpers: zcode global case' || fail 'install-helpers: missing zcode global case'
|
|
31
32
|
grep -q "case 'zcode'" "$HELPERS_JS" && pass 'install-helpers: zcode cases present' || fail 'install-helpers: missing zcode cases'
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# story: e47s04 e37s02 e37s04 e37s08
|
|
3
3
|
# story: e74s02
|
|
4
|
+
# story: e71s02
|
|
5
|
+
# story: e62s02
|
|
6
|
+
# story: e73s02
|
|
7
|
+
# story: e70s02
|
|
8
|
+
# story: e67s02
|
|
9
|
+
# story: e66s02
|
|
10
|
+
# story: e72s02
|
|
11
|
+
# story: e68s02
|
|
12
|
+
# story: e65s02
|
|
4
13
|
# verify-install.sh — manual assertion harness for install + seed wiring + Reach matrix
|
|
5
14
|
set -euo pipefail
|
|
6
15
|
source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
|
|
7
16
|
resolve_repo_root
|
|
17
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/install-grep.sh"
|
|
8
18
|
|
|
9
19
|
MATRIX_MODE=0
|
|
10
20
|
FULL_MATRIX=0
|
|
@@ -64,14 +74,14 @@ trap ta_cleanup EXIT
|
|
|
64
74
|
echo "=== install.sh --dry-run ==="
|
|
65
75
|
DRY_OUT="$("$REPO_ROOT/scripts/install.sh" --dry-run 2>&1)"
|
|
66
76
|
|
|
67
|
-
|
|
77
|
+
grep -q 'pi →' <<< "$DRY_OUT" && ta_pass "install --dry-run includes pi" || ta_fail "install --dry-run missing pi"
|
|
68
78
|
DRY_UNINSTALL="$("$REPO_ROOT/scripts/install.sh" --dry-run --uninstall 2>&1)"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
grep -q 'pi →' <<< "$DRY_UNINSTALL" && ta_pass "uninstall --dry-run includes pi" || ta_fail "uninstall --dry-run missing pi"
|
|
80
|
+
grep -q 'OpenCode →' <<< "$DRY_OUT" && ta_pass "install includes OpenCode" || ta_fail "install missing OpenCode"
|
|
81
|
+
grep -q 'Claude Code →' <<< "$DRY_OUT" && ta_pass "install includes Claude Code" || ta_fail "install missing Claude Code"
|
|
82
|
+
grep -q 'Gemini CLI →' <<< "$DRY_OUT" && ta_pass "install includes Gemini CLI" || ta_fail "install missing Gemini CLI"
|
|
83
|
+
grep -q 'Cursor →' <<< "$DRY_OUT" && ta_pass "install includes Cursor" || ta_fail "install missing Cursor"
|
|
84
|
+
grep -q 'Hermes Agent →' <<< "$DRY_OUT" && ta_pass "install includes Hermes Agent" || ta_fail "install missing Hermes Agent"
|
|
75
85
|
|
|
76
86
|
for tool in "Claude Code" "pi"; do
|
|
77
87
|
section=$(echo "$DRY_OUT" | sed -n "/${tool} →/,/^$/p")
|
|
@@ -102,7 +112,7 @@ echo ""
|
|
|
102
112
|
echo "=== Optional Codex wave (e37s04) ==="
|
|
103
113
|
if grep -qi 'codex' "$REPO_ROOT/skills/seed-conventions/SKILL.md" 2>/dev/null; then
|
|
104
114
|
grep -qi 'config.toml' "$REPO_ROOT/skills/seed-conventions/REFERENCE.md" && ta_pass "Codex: REFERENCE config.toml" || ta_fail "Codex: missing config.toml"
|
|
105
|
-
|
|
115
|
+
grep -qi 'codex' <<< "$DRY_OUT" && ta_pass "Codex: install --dry-run mentions codex" || ta_fail "Codex: install missing codex"
|
|
106
116
|
else
|
|
107
117
|
ta_pass "Codex: wave absent — assertions skipped"
|
|
108
118
|
fi
|
|
@@ -127,40 +137,84 @@ fi
|
|
|
127
137
|
|
|
128
138
|
echo ""
|
|
129
139
|
echo "=== install.sh source ==="
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
install_grep -q 'install_pi()' && ta_pass "source: install_pi()" || ta_fail "source: missing install_pi()"
|
|
141
|
+
install_grep -q 'uninstall_pi()' && ta_pass "source: uninstall_pi()" || ta_fail "source: missing uninstall_pi()"
|
|
142
|
+
install_grep -q 'PI_SKILLS_DIR="$PI_CONFIG_DIR/agent/skills"' && ta_pass "source: targets ~/.pi/agent/skills/" || ta_fail "source: wrong pi target"
|
|
143
|
+
install_grep -q 'install_hermes()' && ta_pass "source: install_hermes()" || ta_fail "source: missing install_hermes()"
|
|
144
|
+
install_grep -q 'uninstall_hermes()' && ta_pass "source: uninstall_hermes()" || ta_fail "source: missing uninstall_hermes()"
|
|
145
|
+
install_grep -q 'HERMES_SKILLS_DIR=' && ta_pass "source: targets ~/.hermes/skills/" || ta_fail "source: wrong hermes target"
|
|
136
146
|
grep -q "'hermes'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: hermes supported" || ta_fail "setup.js: hermes not in SUPPORTED_IDS"
|
|
137
147
|
grep -q "case 'hermes'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: hermes case" || ta_fail "install-helpers: missing hermes case"
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
148
|
+
install_grep -q 'install_zcode()' && ta_pass "source: install_zcode()" || ta_fail "source: missing install_zcode()"
|
|
149
|
+
install_grep -q 'uninstall_zcode()' && ta_pass "source: uninstall_zcode()" || ta_fail "source: missing uninstall_zcode()"
|
|
150
|
+
install_grep -q 'ZCODE_SKILLS_DIR=' && ta_pass "source: targets ~/.zcode/skills/" || ta_fail "source: wrong zcode target"
|
|
141
151
|
grep -q "'zcode'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: zcode supported" || ta_fail "setup.js: zcode not in SUPPORTED_IDS"
|
|
142
152
|
grep -q "case 'zcode'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: zcode case" || ta_fail "install-helpers: missing zcode case"
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
153
|
+
install_grep -q 'install_mimo()' && ta_pass "source: install_mimo()" || ta_fail "source: missing install_mimo()"
|
|
154
|
+
install_grep -q 'uninstall_mimo()' && ta_pass "source: uninstall_mimo()" || ta_fail "source: missing uninstall_mimo()"
|
|
155
|
+
install_grep -q 'MIMO_SKILLS_DIR=' && ta_pass "source: targets ~/.mimocode/skills/" || ta_fail "source: wrong mimo target"
|
|
146
156
|
grep -q "'mimo'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: mimo supported" || ta_fail "setup.js: mimo not in SUPPORTED_IDS"
|
|
147
157
|
grep -q "case 'mimo'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: mimo case" || ta_fail "install-helpers: missing mimo case"
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
158
|
+
install_grep -q 'install_gemini()' && ta_pass "source: install_gemini()" || ta_fail "source: missing install_gemini()"
|
|
159
|
+
install_grep -q 'uninstall_gemini()' && ta_pass "source: uninstall_gemini()" || ta_fail "source: missing uninstall_gemini()"
|
|
160
|
+
install_grep -q 'before-tool-git-guard.sh' && ta_pass "source: gemini Wave A hook templates" || ta_fail "source: missing gemini hook templates"
|
|
151
161
|
grep -q "'gemini'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: gemini supported" || ta_fail "setup.js: gemini not in SUPPORTED_IDS"
|
|
152
162
|
grep -q "case 'gemini'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: gemini case" || ta_fail "install-helpers: missing gemini case"
|
|
153
163
|
grep -q 'gemini_hooks_manifest' "$REPO_ROOT/scripts/targets.yaml" && ta_pass "targets.yaml: gemini_hooks_manifest" || ta_fail "targets.yaml: missing gemini_hooks_manifest"
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
164
|
+
install_grep -q 'install_agy()' && ta_pass "source: install_agy()" || ta_fail "source: missing install_agy()"
|
|
165
|
+
install_grep -q 'uninstall_agy()' && ta_pass "source: uninstall_agy()" || ta_fail "source: missing uninstall_agy()"
|
|
166
|
+
install_grep -q 'AGY_SKILLS_DIR=' && ta_pass "source: targets ~/.gemini/antigravity-cli/skills/" || ta_fail "source: wrong agy target"
|
|
157
167
|
grep -q "'antigravity'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: antigravity supported" || ta_fail "setup.js: antigravity not in SUPPORTED_IDS"
|
|
158
168
|
grep -q "'agy'" "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: agy supported" || ta_fail "setup.js: agy not in SUPPORTED_IDS"
|
|
159
169
|
grep -q "case 'antigravity'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: antigravity case" || ta_fail "install-helpers: missing antigravity case"
|
|
160
170
|
grep -q "case 'agy'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: agy case" || ta_fail "install-helpers: missing agy case"
|
|
161
|
-
!
|
|
162
|
-
|
|
163
|
-
|
|
171
|
+
! install_grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p')" && ta_pass "source: agy avoids gemini extension path" || ta_fail "source: agy touches gemini extension path"
|
|
172
|
+
|
|
173
|
+
install_grep -q 'install_codex()' && ta_pass "source: install_codex()" || ta_fail "source: missing install_codex()"
|
|
174
|
+
install_grep -q 'uninstall_codex()' && ta_pass "source: uninstall_codex()" || ta_fail "source: missing uninstall_codex()"
|
|
175
|
+
install_grep -q 'CODEX_SKILLS_DIR=' && ta_pass "source: codex skills dir" || ta_fail "source: missing codex skills dir"
|
|
176
|
+
grep -q "'codex'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: codex supported" || ta_fail "setup.js: codex not in SUPPORTED_IDS"
|
|
177
|
+
grep -q "case 'codex'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: codex case" || ta_fail "install-helpers: missing codex case"
|
|
178
|
+
install_grep -q 'install_qwen()' && ta_pass "source: install_qwen()" || ta_fail "source: missing install_qwen()"
|
|
179
|
+
install_grep -q 'uninstall_qwen()' && ta_pass "source: uninstall_qwen()" || ta_fail "source: missing uninstall_qwen()"
|
|
180
|
+
install_grep -q 'QWEN_SKILLS_DIR=' && ta_pass "source: qwen skills dir" || ta_fail "source: missing qwen skills dir"
|
|
181
|
+
grep -q "'qwen'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: qwen supported" || ta_fail "setup.js: qwen not in SUPPORTED_IDS"
|
|
182
|
+
grep -q "case 'qwen'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: qwen case" || ta_fail "install-helpers: missing qwen case"
|
|
183
|
+
install_grep -q 'install_codebuddy()' && ta_pass "source: install_codebuddy()" || ta_fail "source: missing install_codebuddy()"
|
|
184
|
+
install_grep -q 'uninstall_codebuddy()' && ta_pass "source: uninstall_codebuddy()" || ta_fail "source: missing uninstall_codebuddy()"
|
|
185
|
+
install_grep -q 'CODEBUDDY_SKILLS_DIR=' && ta_pass "source: codebuddy skills dir" || ta_fail "source: missing codebuddy skills dir"
|
|
186
|
+
grep -q "'codebuddy'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: codebuddy supported" || ta_fail "setup.js: codebuddy not in SUPPORTED_IDS"
|
|
187
|
+
grep -q "case 'codebuddy'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: codebuddy case" || ta_fail "install-helpers: missing codebuddy case"
|
|
188
|
+
install_grep -q 'install_cline()' && ta_pass "source: install_cline()" || ta_fail "source: missing install_cline()"
|
|
189
|
+
install_grep -q 'uninstall_cline()' && ta_pass "source: uninstall_cline()" || ta_fail "source: missing uninstall_cline()"
|
|
190
|
+
install_grep -q 'CLINE_SKILLS_DIR=' && ta_pass "source: cline skills dir" || ta_fail "source: missing cline skills dir"
|
|
191
|
+
grep -q "'cline'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: cline supported" || ta_fail "setup.js: cline not in SUPPORTED_IDS"
|
|
192
|
+
grep -q "case 'cline'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: cline case" || ta_fail "install-helpers: missing cline case"
|
|
193
|
+
install_grep -q 'install_kilocode()' && ta_pass "source: install_kilocode()" || ta_fail "source: missing install_kilocode()"
|
|
194
|
+
install_grep -q 'uninstall_kilocode()' && ta_pass "source: uninstall_kilocode()" || ta_fail "source: missing uninstall_kilocode()"
|
|
195
|
+
install_grep -q 'KILOCODE_SKILLS_DIR=' && ta_pass "source: kilocode skills dir" || ta_fail "source: missing kilocode skills dir"
|
|
196
|
+
grep -q "'kilo'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: kilo supported" || ta_fail "setup.js: kilo not in SUPPORTED_IDS"
|
|
197
|
+
grep -q "case 'kilo'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: kilo case" || ta_fail "install-helpers: missing kilo case"
|
|
198
|
+
install_grep -q 'install_trae()' && ta_pass "source: install_trae()" || ta_fail "source: missing install_trae()"
|
|
199
|
+
install_grep -q 'uninstall_trae()' && ta_pass "source: uninstall_trae()" || ta_fail "source: missing uninstall_trae()"
|
|
200
|
+
install_grep -q 'TRAE_SKILLS_DIR=' && ta_pass "source: trae skills dir" || ta_fail "source: missing trae skills dir"
|
|
201
|
+
grep -q "'trae'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: trae supported" || ta_fail "setup.js: trae not in SUPPORTED_IDS"
|
|
202
|
+
grep -q "case 'trae'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: trae case" || ta_fail "install-helpers: missing trae case"
|
|
203
|
+
install_grep -q 'install_windsurf()' && ta_pass "source: install_windsurf()" || ta_fail "source: missing install_windsurf()"
|
|
204
|
+
install_grep -q 'uninstall_windsurf()' && ta_pass "source: uninstall_windsurf()" || ta_fail "source: missing uninstall_windsurf()"
|
|
205
|
+
install_grep -q 'WINDSURF_SKILLS_DIR=' && ta_pass "source: windsurf skills dir" || ta_fail "source: missing windsurf skills dir"
|
|
206
|
+
grep -q "'windsurf'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: windsurf supported" || ta_fail "setup.js: windsurf not in SUPPORTED_IDS"
|
|
207
|
+
grep -q "case 'windsurf'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: windsurf case" || ta_fail "install-helpers: missing windsurf case"
|
|
208
|
+
install_grep -q 'install_opencode()' && ta_pass "source: install_opencode()" || ta_fail "source: missing install_opencode()"
|
|
209
|
+
install_grep -q 'uninstall_opencode()' && ta_pass "source: uninstall_opencode()" || ta_fail "source: missing uninstall_opencode()"
|
|
210
|
+
install_grep -q 'OPENCODE_SKILLS_DIR=' && ta_pass "source: opencode skills dir" || ta_fail "source: missing opencode skills dir"
|
|
211
|
+
grep -q "'opencode'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: opencode supported" || ta_fail "setup.js: opencode not in SUPPORTED_IDS"
|
|
212
|
+
grep -q "case 'opencode'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: opencode case" || ta_fail "install-helpers: missing opencode case"
|
|
213
|
+
install_grep -q 'install_copilot()' && ta_pass "source: install_copilot()" || ta_fail "source: missing install_copilot()"
|
|
214
|
+
install_grep -q 'uninstall_copilot()' && ta_pass "source: uninstall_copilot()" || ta_fail "source: missing uninstall_copilot()"
|
|
215
|
+
install_grep -q 'COPILOT_SKILLS_DIR=' && ta_pass "source: copilot skills dir" || ta_fail "source: missing copilot skills dir"
|
|
216
|
+
grep -q "'copilot'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: copilot supported" || ta_fail "setup.js: copilot not in SUPPORTED_IDS"
|
|
217
|
+
grep -q "case 'copilot'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: copilot case" || ta_fail "install-helpers: missing copilot case"
|
|
164
218
|
echo ""
|
|
165
219
|
echo "──────────────────────────────────────────"
|
|
166
220
|
echo "verify-install: $TA_PASS passed, $TA_FAIL failed"
|
|
@@ -99,6 +99,10 @@ bash scripts/lib/parallel-review-worktrees.sh audit-code
|
|
|
99
99
|
- [ ] Dependency Inversion: dependencies injected, not imported globally where avoidable
|
|
100
100
|
- [ ] **Chapter 17 Heuristics**: Code is free of smells documented in `audit-code/HEURISTICS.md` (G, N, C, T)
|
|
101
101
|
|
|
102
|
+
### Refactoring Smells (Fowler)
|
|
103
|
+
|
|
104
|
+
Explicitly name any detected smells: Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Message Chains, Middle Man.
|
|
105
|
+
|
|
102
106
|
### Code Style (CONVENTIONS.md)
|
|
103
107
|
|
|
104
108
|
- [ ] Functions: 4–20 lines; split if longer
|
|
@@ -110,13 +114,6 @@ bash scripts/lib/parallel-review-worktrees.sh audit-code
|
|
|
110
114
|
- [ ] Conditionals: expressed as positives (G29)
|
|
111
115
|
- [ ] Comments explain WHY, not WHAT
|
|
112
116
|
|
|
113
|
-
### Agent Readability (Akita's Lens)
|
|
114
|
-
|
|
115
|
-
- [ ] Functions are small enough to fit in a standard context window (4–20 lines)
|
|
116
|
-
- [ ] Names are unique and specific enough to be `grep`-able (grep returns < 5 hits)
|
|
117
|
-
- [ ] Types are explicit (no `any`, no inferred return types for public APIs)
|
|
118
|
-
- [ ] Code avoids deep nesting (max 2 levels) and uses early returns
|
|
119
|
-
|
|
120
117
|
### Red Flags
|
|
121
118
|
|
|
122
119
|
Before reporting, name any rationalization you caught yourself making for skipping a checklist item. Silence is not acceptable — if you skipped an item, state the reason explicitly.
|
package/skills/grill-me/SKILL.md
CHANGED
|
@@ -19,6 +19,14 @@ Interview relentlessly about every aspect of this plan until reaching shared und
|
|
|
19
19
|
|
|
20
20
|
If a question can be answered by exploring the codebase, explore it instead.
|
|
21
21
|
|
|
22
|
+
### Facts vs. Decisions Boundary
|
|
23
|
+
|
|
24
|
+
Distinguish between **facts** and **decisions**:
|
|
25
|
+
- **Facts** — things discoverable by exploring the codebase, reading docs, or checking APIs. Do not ask the user to confirm facts; find them yourself.
|
|
26
|
+
- **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
|
|
27
|
+
|
|
28
|
+
Never "grill yourself" — if the answer is in the code, go find it. Only ask questions where the user's judgment is needed.
|
|
29
|
+
|
|
22
30
|
## Docs mode
|
|
23
31
|
|
|
24
32
|
Ground every challenge in real documentation — no assumption about a library's behavior goes unchecked. See [REFERENCE.md](REFERENCE.md) for the full process.
|
|
@@ -30,3 +38,7 @@ Short form:
|
|
|
30
38
|
4. Report confirmed ✓, corrected ✗ (with the real behavior), and uncertain → `spike-prototype`.
|
|
31
39
|
5. Update the plan for each confirmed discrepancy.
|
|
32
40
|
|
|
41
|
+
## Confirmation Gate
|
|
42
|
+
|
|
43
|
+
> **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
|
|
44
|
+
|
|
@@ -24,6 +24,18 @@ effort: standard
|
|
|
24
24
|
- If docs contradict the plan, plan loses until updated.
|
|
25
25
|
- Prefer official docs over blog posts.
|
|
26
26
|
|
|
27
|
+
## Facts vs. Decisions Boundary
|
|
28
|
+
|
|
29
|
+
Distinguish between **facts** and **decisions**:
|
|
30
|
+
- **Facts** — things discoverable by reading docs, checking APIs, or exploring the codebase. Do not ask the user to confirm facts; find them yourself.
|
|
31
|
+
- **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
|
|
32
|
+
|
|
33
|
+
Never "grill yourself" — if the answer is in the docs, go fetch it. Only ask questions where the user's judgment is needed.
|
|
34
|
+
|
|
35
|
+
## Confirmation Gate
|
|
36
|
+
|
|
37
|
+
> **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
|
|
38
|
+
|
|
27
39
|
## Verify
|
|
28
40
|
|
|
29
41
|
→ verify: `grep -c 'https\?://' skills/grill-with-docs/SKILL.md | awk '{if($1>=2) print "OK"; else print "NEEDS DOCS"}'`
|
|
@@ -90,6 +90,7 @@ Review for:
|
|
|
90
90
|
4. Design — are there simpler or more robust approaches?
|
|
91
91
|
5. Edge cases — what inputs or states could cause failures?
|
|
92
92
|
6. Security — any injection, auth, or data exposure risks?
|
|
93
|
+
7. Refactoring smells — explicitly name any detected Fowler smells: Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Message Chains, Middle Man
|
|
93
94
|
|
|
94
95
|
For each finding, categorize as: must-fix / should-fix / consider.
|
|
95
96
|
Run the verify command and report the result.
|
|
@@ -232,45 +232,7 @@
|
|
|
232
232
|
<div id="claude-content" class="spread">
|
|
233
233
|
<div class="wrap">
|
|
234
234
|
<div class="grid">
|
|
235
|
-
|
|
236
|
-
<h2 class="opt-align">Dashboard Template</h2>
|
|
237
|
-
<p class="subtitle">Mockup and structure using the new 12-column Müller-Brockmann grid.</p>
|
|
238
|
-
</div>
|
|
239
|
-
|
|
240
|
-
<div class="band section split">
|
|
241
|
-
<div>
|
|
242
|
-
<h3 class="opt-align">Split Left (6 cols)</h3>
|
|
243
|
-
<p>Aligned precisely to the grid. All baselines lock to 8px.</p>
|
|
244
|
-
</div>
|
|
245
|
-
<div>
|
|
246
|
-
<h3 class="opt-align">Split Right (6 cols)</h3>
|
|
247
|
-
<p>The gap between is precisely one gutter (24px).</p>
|
|
248
|
-
</div>
|
|
249
|
-
</div>
|
|
250
|
-
|
|
251
|
-
<div class="band section cards">
|
|
252
|
-
<div class="card">
|
|
253
|
-
<div class="card-image">Img 1</div>
|
|
254
|
-
<div class="card-body">
|
|
255
|
-
<h3>Card 1 (4 cols)</h3>
|
|
256
|
-
<p>Three cards fit perfectly in 12 columns.</p>
|
|
257
|
-
</div>
|
|
258
|
-
</div>
|
|
259
|
-
<div class="card">
|
|
260
|
-
<div class="card-image">Img 2</div>
|
|
261
|
-
<div class="card-body">
|
|
262
|
-
<h3>Card 2 (4 cols)</h3>
|
|
263
|
-
<p>Aligned on the baseline.</p>
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
<div class="card selected">
|
|
267
|
-
<div class="card-image">Img 3</div>
|
|
268
|
-
<div class="card-body">
|
|
269
|
-
<h3>Card 3 (4 cols)</h3>
|
|
270
|
-
<p>This card is selected.</p>
|
|
271
|
-
</div>
|
|
272
|
-
</div>
|
|
273
|
-
</div>
|
|
235
|
+
<!-- CONTENT -->
|
|
274
236
|
<!-- GRID GUIDES -->
|
|
275
237
|
<div class="guides" aria-hidden="true">
|
|
276
238
|
<div class="cols"></div><div class="rows"></div>
|