bigpowers 2.83.4 → 2.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codebuddy/skills/align-grid/SKILL.md +110 -0
- package/.codebuddy/skills/assess-impact/SKILL.md +91 -0
- package/.codebuddy/skills/audit-code/SKILL.md +187 -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 +96 -0
- package/.codebuddy/skills/grill-with-docs/SKILL.md +41 -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 +112 -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 +375 -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 +187 -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 +96 -0
- package/.codex/skills/grill-with-docs/SKILL.md +41 -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 +112 -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 +375 -0
- package/.codex/skills/wire-observability/SKILL.md +97 -0
- package/.codex/skills/write-document/SKILL.md +255 -0
- package/.kilocode/rules/align-grid.md +110 -0
- package/.kilocode/rules/assess-impact.md +91 -0
- package/.kilocode/rules/audit-code.md +187 -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 +96 -0
- package/.kilocode/rules/grill-with-docs.md +41 -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 +112 -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 +375 -0
- package/.kilocode/rules/wire-observability.md +97 -0
- package/.kilocode/rules/write-document.md +255 -0
- package/.pi/package.json +1 -1
- 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 +187 -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 +96 -0
- package/.trae/skills/grill-with-docs/SKILL.md +41 -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 +112 -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 +375 -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 +187 -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 +96 -0
- package/.windsurf/rules/grill-with-docs.md +41 -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 +112 -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 +375 -0
- package/.windsurf/rules/wire-observability.md +97 -0
- package/.windsurf/rules/write-document.md +255 -0
- package/CHANGELOG.md +30 -0
- package/CONVENTIONS.md +22 -0
- 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-wave-b-hub.py +31 -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
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e62s01
|
|
3
|
+
# scenario: SC-e62s01-P1-01
|
|
4
|
+
# OpenCode skill adapter — renders .opencode/skills from SkillIR.
|
|
5
|
+
|
|
6
|
+
opencode_is_unsafe_skill_name() {
|
|
7
|
+
local name="$1"
|
|
8
|
+
[[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* ]]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
opencode_sanitize_name() {
|
|
12
|
+
local name="$1"
|
|
13
|
+
if opencode_is_unsafe_skill_name "$name"; then
|
|
14
|
+
echo "opencode: invalid skill name: ${name:-<empty>}" >&2
|
|
15
|
+
return 1
|
|
16
|
+
fi
|
|
17
|
+
printf '%s' "$name"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
render_skill() {
|
|
21
|
+
local safe_name
|
|
22
|
+
safe_name=$(opencode_sanitize_name "${IR_NAME:-}") || return 1
|
|
23
|
+
local out="${OPENCODE_SKILLS:-.opencode/skills}"
|
|
24
|
+
mkdir -p "$out/$safe_name"
|
|
25
|
+
|
|
26
|
+
if [[ -n "${SKILL_MD_PATH:-}" && -f "$SKILL_MD_PATH" ]]; then
|
|
27
|
+
cp "$SKILL_MD_PATH" "$out/$safe_name/SKILL.md"
|
|
28
|
+
return 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
{
|
|
32
|
+
echo "---"
|
|
33
|
+
echo "name: $safe_name"
|
|
34
|
+
[[ -n "${IR_MODEL:-}" && "$IR_MODEL" != "null" ]] && echo "model: $IR_MODEL"
|
|
35
|
+
echo "description: \"${IR_DESC_ESCAPED:-}\""
|
|
36
|
+
echo "---"
|
|
37
|
+
echo ""
|
|
38
|
+
echo "${IR_BODY:-}"
|
|
39
|
+
} > "$out/$safe_name/SKILL.md"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
wire_context() {
|
|
44
|
+
source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
|
|
45
|
+
wire_context_mode symlink "${1:-AGENTS.md}"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]] && [[ ! -t 0 ]]; then
|
|
49
|
+
JSON_INPUT=$(cat)
|
|
50
|
+
if [[ -n "$JSON_INPUT" ]]; then
|
|
51
|
+
IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
|
|
52
|
+
IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
|
|
53
|
+
IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
|
|
54
|
+
IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
|
|
55
|
+
IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
|
|
56
|
+
render_skill
|
|
57
|
+
fi
|
|
58
|
+
fi
|
package/scripts/adapters/qwen.sh
CHANGED
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# story:
|
|
2
|
+
# story: e68s01
|
|
3
|
+
# scenario: SC-e68s01-P1-01
|
|
4
|
+
# Qwen Code skill adapter — renders .qwen/skills from SkillIR.
|
|
5
|
+
|
|
6
|
+
qwen_is_unsafe_skill_name() {
|
|
7
|
+
local name="$1"
|
|
8
|
+
[[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* ]]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
qwen_sanitize_name() {
|
|
12
|
+
local name="$1"
|
|
13
|
+
if qwen_is_unsafe_skill_name "$name"; then
|
|
14
|
+
echo "qwen: invalid skill name: ${name:-<empty>}" >&2
|
|
15
|
+
return 1
|
|
16
|
+
fi
|
|
17
|
+
printf '%s' "$name"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
render_skill() {
|
|
21
|
+
local safe_name
|
|
22
|
+
safe_name=$(qwen_sanitize_name "${IR_NAME:-}") || return 1
|
|
23
|
+
local out="${QWEN_SKILLS:-.qwen/skills}"
|
|
24
|
+
mkdir -p "$out/$safe_name"
|
|
25
|
+
|
|
26
|
+
if [[ -n "${SKILL_MD_PATH:-}" && -f "$SKILL_MD_PATH" ]]; then
|
|
27
|
+
cp "$SKILL_MD_PATH" "$out/$safe_name/SKILL.md"
|
|
28
|
+
return 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
{
|
|
32
|
+
echo "---"
|
|
33
|
+
echo "name: $safe_name"
|
|
34
|
+
[[ -n "${IR_MODEL:-}" && "$IR_MODEL" != "null" ]] && echo "model: $IR_MODEL"
|
|
35
|
+
echo "description: \"${IR_DESC_ESCAPED:-}\""
|
|
36
|
+
echo "---"
|
|
37
|
+
echo ""
|
|
38
|
+
echo "${IR_BODY:-}"
|
|
39
|
+
} > "$out/$safe_name/SKILL.md"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
3
43
|
wire_context() {
|
|
4
44
|
source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
|
|
5
45
|
wire_context_mode symlink "${1:-QWEN.md}"
|
|
6
46
|
}
|
|
47
|
+
|
|
48
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]] && [[ ! -t 0 ]]; then
|
|
49
|
+
JSON_INPUT=$(cat)
|
|
50
|
+
if [[ -n "$JSON_INPUT" ]]; then
|
|
51
|
+
IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
|
|
52
|
+
IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
|
|
53
|
+
IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
|
|
54
|
+
IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
|
|
55
|
+
IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
|
|
56
|
+
render_skill
|
|
57
|
+
fi
|
|
58
|
+
fi
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e70s01
|
|
3
|
+
# scenario: SC-e70s01-P1-01
|
|
4
|
+
# Trae skill adapter — renders .trae/skills from SkillIR.
|
|
5
|
+
|
|
6
|
+
trae_is_unsafe_skill_name() {
|
|
7
|
+
local name="$1"
|
|
8
|
+
[[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* ]]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
trae_sanitize_name() {
|
|
12
|
+
local name="$1"
|
|
13
|
+
if trae_is_unsafe_skill_name "$name"; then
|
|
14
|
+
echo "trae: invalid skill name: ${name:-<empty>}" >&2
|
|
15
|
+
return 1
|
|
16
|
+
fi
|
|
17
|
+
printf '%s' "$name"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
render_skill() {
|
|
21
|
+
local safe_name
|
|
22
|
+
safe_name=$(trae_sanitize_name "${IR_NAME:-}") || return 1
|
|
23
|
+
local out="${TRAE_SKILLS:-.trae/skills}"
|
|
24
|
+
mkdir -p "$out/$safe_name"
|
|
25
|
+
|
|
26
|
+
if [[ -n "${SKILL_MD_PATH:-}" && -f "$SKILL_MD_PATH" ]]; then
|
|
27
|
+
cp "$SKILL_MD_PATH" "$out/$safe_name/SKILL.md"
|
|
28
|
+
return 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
{
|
|
32
|
+
echo "---"
|
|
33
|
+
echo "name: $safe_name"
|
|
34
|
+
[[ -n "${IR_MODEL:-}" && "$IR_MODEL" != "null" ]] && echo "model: $IR_MODEL"
|
|
35
|
+
echo "description: \"${IR_DESC_ESCAPED:-}\""
|
|
36
|
+
echo "---"
|
|
37
|
+
echo ""
|
|
38
|
+
echo "${IR_BODY:-}"
|
|
39
|
+
} > "$out/$safe_name/SKILL.md"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
wire_context() {
|
|
44
|
+
source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
|
|
45
|
+
wire_context_mode symlink "${1:-AGENTS.md}"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]] && [[ ! -t 0 ]]; then
|
|
49
|
+
JSON_INPUT=$(cat)
|
|
50
|
+
if [[ -n "$JSON_INPUT" ]]; then
|
|
51
|
+
IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
|
|
52
|
+
IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
|
|
53
|
+
IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
|
|
54
|
+
IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
|
|
55
|
+
IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
|
|
56
|
+
render_skill
|
|
57
|
+
fi
|
|
58
|
+
fi
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e73s01
|
|
3
|
+
# scenario: SC-e73s01-P1-01
|
|
4
|
+
# Windsurf skill adapter — renders .windsurf/rules from SkillIR.
|
|
5
|
+
|
|
6
|
+
windsurf_is_unsafe_skill_name() {
|
|
7
|
+
local name="$1"
|
|
8
|
+
[[ -z "$name" || "$name" == "null" || "$name" == *"/"* || "$name" == *".."* ]]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
windsurf_sanitize_name() {
|
|
12
|
+
local name="$1"
|
|
13
|
+
if windsurf_is_unsafe_skill_name "$name"; then
|
|
14
|
+
echo "windsurf: invalid skill name: ${name:-<empty>}" >&2
|
|
15
|
+
return 1
|
|
16
|
+
fi
|
|
17
|
+
printf '%s' "$name"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
render_skill() {
|
|
21
|
+
local safe_name
|
|
22
|
+
safe_name=$(windsurf_sanitize_name "${IR_NAME:-}") || return 1
|
|
23
|
+
local out="${WINDSURF_RULES:-.windsurf/rules}"
|
|
24
|
+
mkdir -p "$out"
|
|
25
|
+
{
|
|
26
|
+
echo "---"
|
|
27
|
+
echo "name: $safe_name"
|
|
28
|
+
[[ -n "${IR_MODEL:-}" && "$IR_MODEL" != "null" ]] && echo "model: $IR_MODEL"
|
|
29
|
+
echo "description: \"${IR_DESC_ESCAPED:-}\""
|
|
30
|
+
echo "---"
|
|
31
|
+
echo ""
|
|
32
|
+
echo "${IR_BODY:-}"
|
|
33
|
+
} > "$out/$safe_name.md"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
wire_context() {
|
|
38
|
+
source "$(dirname "${BASH_SOURCE[0]}")/../lib/context-wire.sh"
|
|
39
|
+
wire_context_mode copy "${1:-AGENTS.md}"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]] && [[ ! -t 0 ]]; then
|
|
43
|
+
JSON_INPUT=$(cat)
|
|
44
|
+
if [[ -n "$JSON_INPUT" ]]; then
|
|
45
|
+
IR_NAME=$(echo "$JSON_INPUT" | jq -r '.name')
|
|
46
|
+
IR_MODEL=$(echo "$JSON_INPUT" | jq -r '.model')
|
|
47
|
+
IR_DESCRIPTION=$(echo "$JSON_INPUT" | jq -r '.description')
|
|
48
|
+
IR_BODY=$(echo "$JSON_INPUT" | jq -r '.body')
|
|
49
|
+
IR_DESC_ESCAPED=$(echo "$IR_DESCRIPTION" | sed 's/\\/\\\\/g; s/\"/\\"/g')
|
|
50
|
+
render_skill
|
|
51
|
+
fi
|
|
52
|
+
fi
|
package/scripts/bp-yaml-set.sh
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
# Usage: bp-yaml-set.sh <file> <dotted.key> <value>
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
source "$(dirname "${BASH_SOURCE[0]}")/lib/python-env.sh"
|
|
6
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/skill-common.sh"
|
|
7
|
+
resolve_repo_root
|
|
6
8
|
FILE="${1:?file}"
|
|
7
9
|
KEY="${2:?dotted.key}"
|
|
8
10
|
VAL="${3:?value}"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# story: e45s22
|
|
3
|
+
"""Apply Wave B install hub wiring for fleet integration epics."""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
_LIB = Path(__file__).resolve().parent / "lib"
|
|
10
|
+
if str(_LIB) not in sys.path:
|
|
11
|
+
sys.path.insert(0, str(_LIB))
|
|
12
|
+
|
|
13
|
+
from wave_b_hub_patch import apply_epic # noqa: E402
|
|
14
|
+
from wave_b_hub_config import HUB_EPICS # noqa: E402
|
|
15
|
+
|
|
16
|
+
def main(argv: list[str]) -> int:
|
|
17
|
+
if len(argv) < 2:
|
|
18
|
+
print("Usage: generate-wave-b-hub.py <e65|e68|...|all>", file=sys.stderr)
|
|
19
|
+
return 1
|
|
20
|
+
target = argv[1]
|
|
21
|
+
ids = list(HUB_EPICS.keys()) if target == "all" else [target]
|
|
22
|
+
for eid in ids:
|
|
23
|
+
if eid not in HUB_EPICS:
|
|
24
|
+
print(f"Unknown epic: {eid}", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
apply_epic(eid)
|
|
27
|
+
return 0
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
if __name__ == "__main__":
|
|
31
|
+
raise SystemExit(main(sys.argv))
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Cline Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/cline/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `tool.execute.before`
|
|
8
|
+
- `tool.execute.after`
|
|
9
|
+
- `session`
|
|
10
|
+
- `message`
|
|
11
|
+
- `permission`
|
|
12
|
+
|
|
13
|
+
## Security
|
|
14
|
+
|
|
15
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// story: e66s01
|
|
2
|
+
// scenario: SC-e66s01-P1-03
|
|
3
|
+
// cline plugin hook template — register tool guards (no dynamic eval).
|
|
4
|
+
|
|
5
|
+
export function register(ctx: { registerHook: (event: string, fn: Function) => void }) {
|
|
6
|
+
const events = ["tool.execute.before", "tool.execute.after", "session"] as const;
|
|
7
|
+
for (const event of events) {
|
|
8
|
+
ctx.registerHook(event, async (payload: { command?: string }) => {
|
|
9
|
+
const cmd = payload?.command ?? "";
|
|
10
|
+
if (/git push --force|reset --hard|rm -rf \//.test(cmd)) {
|
|
11
|
+
return { decision: "block", reason: "BLOCKED: dangerous command pattern" };
|
|
12
|
+
}
|
|
13
|
+
return { decision: "allow" };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# CodeBuddy Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/codebuddy/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `PreToolUse`
|
|
8
|
+
- `PostToolUse`
|
|
9
|
+
- `PostToolUseFailure`
|
|
10
|
+
- `SessionStart`
|
|
11
|
+
- `SessionEnd`
|
|
12
|
+
- `Stop`
|
|
13
|
+
- `SubagentStart`
|
|
14
|
+
- `SubagentStop`
|
|
15
|
+
- `UserPromptSubmit`
|
|
16
|
+
- `Notification`
|
|
17
|
+
- `PermissionRequest`
|
|
18
|
+
- `PreCompact`
|
|
19
|
+
- `PostCompact`
|
|
20
|
+
|
|
21
|
+
## Security
|
|
22
|
+
|
|
23
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
24
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"target": "codebuddy",
|
|
4
|
+
"events_total": 13,
|
|
5
|
+
"events": [
|
|
6
|
+
"PreToolUse",
|
|
7
|
+
"PostToolUse",
|
|
8
|
+
"PostToolUseFailure",
|
|
9
|
+
"SessionStart",
|
|
10
|
+
"SessionEnd",
|
|
11
|
+
"Stop",
|
|
12
|
+
"SubagentStart",
|
|
13
|
+
"SubagentStop",
|
|
14
|
+
"UserPromptSubmit",
|
|
15
|
+
"Notification",
|
|
16
|
+
"PermissionRequest",
|
|
17
|
+
"PreCompact",
|
|
18
|
+
"PostCompact"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e72s01
|
|
3
|
+
# scenario: SC-e72s01-P2-02
|
|
4
|
+
# codebuddy hook template — blocks dangerous terminal/git commands (fixed guard logic).
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
INPUT=$(cat)
|
|
8
|
+
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // .tool_input.cmd // .command // empty')
|
|
9
|
+
|
|
10
|
+
if [[ -z "$CMD" ]]; then
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
case "$CMD" in
|
|
15
|
+
*'git push --force'*|*'git push -f '*|*'reset --hard'*|*'git clean -f'*|*'rm -rf /'*)
|
|
16
|
+
jq -nc --arg reason "BLOCKED: dangerous command pattern" \
|
|
17
|
+
'{decision: "block", reason: $reason, hookVersion: "1.0.0"}'
|
|
18
|
+
exit 0
|
|
19
|
+
;;
|
|
20
|
+
esac
|
|
21
|
+
|
|
22
|
+
exit 0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PreToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"type": "command",
|
|
6
|
+
"command": "bash scripts/hooks/codebuddy/pre-tool-git-guard.sh"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"PostToolUse": [
|
|
10
|
+
{
|
|
11
|
+
"type": "command",
|
|
12
|
+
"command": "bash scripts/hooks/codebuddy/pre-tool-git-guard.sh"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Codex CLI Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/codex/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `PreToolUse`
|
|
8
|
+
- `PostToolUse`
|
|
9
|
+
- `SessionStart`
|
|
10
|
+
- `PermissionRequest`
|
|
11
|
+
- `PreCompact`
|
|
12
|
+
- `PostCompact`
|
|
13
|
+
- `UserPromptSubmit`
|
|
14
|
+
- `SubagentStart`
|
|
15
|
+
- `SubagentStop`
|
|
16
|
+
- `Stop`
|
|
17
|
+
|
|
18
|
+
## Security
|
|
19
|
+
|
|
20
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
21
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"target": "codex",
|
|
4
|
+
"events_total": 10,
|
|
5
|
+
"events": [
|
|
6
|
+
"PreToolUse",
|
|
7
|
+
"PostToolUse",
|
|
8
|
+
"SessionStart",
|
|
9
|
+
"PermissionRequest",
|
|
10
|
+
"PreCompact",
|
|
11
|
+
"PostCompact",
|
|
12
|
+
"UserPromptSubmit",
|
|
13
|
+
"SubagentStart",
|
|
14
|
+
"SubagentStop",
|
|
15
|
+
"Stop"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e65s01
|
|
3
|
+
# scenario: SC-e65s01-P2-02
|
|
4
|
+
# codex hook template — blocks dangerous terminal/git commands (fixed guard logic).
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
INPUT=$(cat)
|
|
8
|
+
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // .tool_input.cmd // .command // empty')
|
|
9
|
+
|
|
10
|
+
if [[ -z "$CMD" ]]; then
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
case "$CMD" in
|
|
15
|
+
*'git push --force'*|*'git push -f '*|*'reset --hard'*|*'git clean -f'*|*'rm -rf /'*)
|
|
16
|
+
jq -nc --arg reason "BLOCKED: dangerous command pattern" \
|
|
17
|
+
'{decision: "block", reason: $reason, hookVersion: "1.0.0"}'
|
|
18
|
+
exit 0
|
|
19
|
+
;;
|
|
20
|
+
esac
|
|
21
|
+
|
|
22
|
+
exit 0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PreToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"type": "command",
|
|
6
|
+
"command": "bash scripts/hooks/codex/pre-tool-git-guard.sh"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"PostToolUse": [
|
|
10
|
+
{
|
|
11
|
+
"type": "command",
|
|
12
|
+
"command": "bash scripts/hooks/codex/pre-tool-git-guard.sh"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Kilo Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/kilocode/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `tool.execute.before`
|
|
8
|
+
- `tool.execute.after`
|
|
9
|
+
- `chat.message`
|
|
10
|
+
- `permission.ask`
|
|
11
|
+
- `event`
|
|
12
|
+
|
|
13
|
+
## Security
|
|
14
|
+
|
|
15
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// story: e67s01
|
|
2
|
+
// scenario: SC-e67s01-P1-03
|
|
3
|
+
// kilocode plugin hook template — register tool guards (no dynamic eval).
|
|
4
|
+
|
|
5
|
+
export function register(ctx: { registerHook: (event: string, fn: Function) => void }) {
|
|
6
|
+
const events = ["tool.execute.before", "tool.execute.after", "chat.message"] as const;
|
|
7
|
+
for (const event of events) {
|
|
8
|
+
ctx.registerHook(event, async (payload: { command?: string }) => {
|
|
9
|
+
const cmd = payload?.command ?? "";
|
|
10
|
+
if (/git push --force|reset --hard|rm -rf \//.test(cmd)) {
|
|
11
|
+
return { decision: "block", reason: "BLOCKED: dangerous command pattern" };
|
|
12
|
+
}
|
|
13
|
+
return { decision: "allow" };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Qwen Code Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/qwen/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `PreToolUse`
|
|
8
|
+
- `PostToolUse`
|
|
9
|
+
- `PostToolUseFailure`
|
|
10
|
+
- `UserPromptSubmit`
|
|
11
|
+
- `SessionStart`
|
|
12
|
+
- `SessionEnd`
|
|
13
|
+
- `Stop`
|
|
14
|
+
- `SubagentStart`
|
|
15
|
+
- `SubagentStop`
|
|
16
|
+
- `PreCompact`
|
|
17
|
+
- `PostCompact`
|
|
18
|
+
- `Notification`
|
|
19
|
+
- `PermissionRequest`
|
|
20
|
+
- `TodoCreated`
|
|
21
|
+
- `TodoCompleted`
|
|
22
|
+
- `StopFailure`
|
|
23
|
+
|
|
24
|
+
## Security
|
|
25
|
+
|
|
26
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
27
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"target": "qwen",
|
|
4
|
+
"events_total": 16,
|
|
5
|
+
"events": [
|
|
6
|
+
"PreToolUse",
|
|
7
|
+
"PostToolUse",
|
|
8
|
+
"PostToolUseFailure",
|
|
9
|
+
"UserPromptSubmit",
|
|
10
|
+
"SessionStart",
|
|
11
|
+
"SessionEnd",
|
|
12
|
+
"Stop",
|
|
13
|
+
"SubagentStart",
|
|
14
|
+
"SubagentStop",
|
|
15
|
+
"PreCompact",
|
|
16
|
+
"PostCompact",
|
|
17
|
+
"Notification",
|
|
18
|
+
"PermissionRequest",
|
|
19
|
+
"TodoCreated",
|
|
20
|
+
"TodoCompleted",
|
|
21
|
+
"StopFailure"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e68s01
|
|
3
|
+
# scenario: SC-e68s01-P2-02
|
|
4
|
+
# qwen hook template — blocks dangerous terminal/git commands (fixed guard logic).
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
INPUT=$(cat)
|
|
8
|
+
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // .tool_input.cmd // .command // empty')
|
|
9
|
+
|
|
10
|
+
if [[ -z "$CMD" ]]; then
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
case "$CMD" in
|
|
15
|
+
*'git push --force'*|*'git push -f '*|*'reset --hard'*|*'git clean -f'*|*'rm -rf /'*)
|
|
16
|
+
jq -nc --arg reason "BLOCKED: dangerous command pattern" \
|
|
17
|
+
'{decision: "block", reason: $reason, hookVersion: "1.0.0"}'
|
|
18
|
+
exit 0
|
|
19
|
+
;;
|
|
20
|
+
esac
|
|
21
|
+
|
|
22
|
+
exit 0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PreToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"type": "command",
|
|
6
|
+
"command": "bash scripts/hooks/qwen/pre-tool-git-guard.sh"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"PostToolUse": [
|
|
10
|
+
{
|
|
11
|
+
"type": "command",
|
|
12
|
+
"command": "bash scripts/hooks/qwen/pre-tool-git-guard.sh"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Trae Hook Templates (Wave A)
|
|
2
|
+
|
|
3
|
+
Shipped under `scripts/hooks/trae/` — copy to user config in Wave B.
|
|
4
|
+
|
|
5
|
+
## Events
|
|
6
|
+
|
|
7
|
+
- `SessionStart`
|
|
8
|
+
- `UserPromptSubmit`
|
|
9
|
+
- `PreToolUse`
|
|
10
|
+
- `PostToolUse`
|
|
11
|
+
- `Stop`
|
|
12
|
+
- `Notification`
|
|
13
|
+
|
|
14
|
+
## Security
|
|
15
|
+
|
|
16
|
+
Templates use fixed guard logic only — no dynamic eval.
|
|
17
|
+
|