bigpowers 2.83.3 → 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 +37 -0
- package/CONVENTIONS.md +22 -0
- package/bin/setup.js +35 -7
- 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-distribute-only.sh +3 -0
- 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,213 @@
|
|
|
1
|
+
"""Wave B hub patchers for install surface files."""
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import re
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from wave_b_hub_config import HUB_EPICS, HUB_ORDER, prefix
|
|
9
|
+
from wave_b_hub_codegen_install import install_sh_block
|
|
10
|
+
from wave_b_hub_codegen_helpers import (
|
|
11
|
+
helpers_global_case,
|
|
12
|
+
helpers_local_case,
|
|
13
|
+
helpers_uninstall_case,
|
|
14
|
+
targets_row,
|
|
15
|
+
test_hub_sh,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
REPO = Path(__file__).resolve().parents[2]
|
|
19
|
+
|
|
20
|
+
def patch_install_sh(cfg: dict, content: str) -> str:
|
|
21
|
+
fn = cfg["fn"]
|
|
22
|
+
block = install_sh_block(cfg)
|
|
23
|
+
# Remove existing section if present
|
|
24
|
+
pattern = rf"# ── .*? \({cfg['story']}\).*?(?=# ── |# ── main)"
|
|
25
|
+
old_pattern = rf"# ── {re.escape(cfg['label'])}.*?(?=# ── |# ── main)"
|
|
26
|
+
codex_old = r"# ── Codex CLI \(e37s15\).*?(?=# ── main)"
|
|
27
|
+
for pat in [pattern, old_pattern, codex_old if fn == "codex" else r"(?!x)x"]:
|
|
28
|
+
content = re.sub(pat, "", content, flags=re.DOTALL)
|
|
29
|
+
|
|
30
|
+
marker = "# ── main ──────────────────────────────────────────────────────────────────────"
|
|
31
|
+
if marker not in content:
|
|
32
|
+
raise SystemExit("install.sh: main marker not found")
|
|
33
|
+
content = content.replace(marker, block + marker)
|
|
34
|
+
|
|
35
|
+
# Ensure dispatch — chain after previous epic in WSJF order (or cursor for e65)
|
|
36
|
+
main_part = content.split(marker, 1)[1]
|
|
37
|
+
fn_inst = f"install_{fn}"
|
|
38
|
+
fn_uninst = f"uninstall_{fn}"
|
|
39
|
+
epic_idx = HUB_ORDER.index(cfg.get("_epic_id", "e65"))
|
|
40
|
+
anchor_fn = "cursor" if epic_idx == 0 else HUB_EPICS[HUB_ORDER[epic_idx - 1]]["fn"]
|
|
41
|
+
if f" {fn_inst}\n" not in main_part:
|
|
42
|
+
content = re.sub(
|
|
43
|
+
rf"( install_{anchor_fn}\n)",
|
|
44
|
+
rf"\1 {fn_inst}\n",
|
|
45
|
+
content,
|
|
46
|
+
count=1,
|
|
47
|
+
)
|
|
48
|
+
if f" {fn_uninst}\n" not in main_part:
|
|
49
|
+
content = re.sub(
|
|
50
|
+
rf"( uninstall_{anchor_fn}\n)",
|
|
51
|
+
rf"\1 {fn_uninst}\n",
|
|
52
|
+
content,
|
|
53
|
+
count=1,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
if f"# story: {cfg['story']}" not in content.split("\n")[0:5]:
|
|
57
|
+
content = content.replace(
|
|
58
|
+
"# story: e74s02",
|
|
59
|
+
f"# story: e74s02\n# story: {cfg['story']}",
|
|
60
|
+
1,
|
|
61
|
+
)
|
|
62
|
+
return content
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def patch_setup_js(cfg: dict, content: str) -> str:
|
|
66
|
+
sid = cfg["setup_id"]
|
|
67
|
+
m = re.search(r"const SUPPORTED_IDS = new Set\(\[(.*?)\]\);", content, re.DOTALL)
|
|
68
|
+
if not m:
|
|
69
|
+
raise SystemExit("setup.js: SUPPORTED_IDS not found")
|
|
70
|
+
if f"'{sid}'" in m.group(1):
|
|
71
|
+
return content
|
|
72
|
+
content = re.sub(
|
|
73
|
+
r"(const SUPPORTED_IDS = new Set\(\[[^\]]+)\]\);",
|
|
74
|
+
rf"\1, '{sid}']);",
|
|
75
|
+
content,
|
|
76
|
+
count=1,
|
|
77
|
+
)
|
|
78
|
+
if f"// story: {cfg['story']}" not in content:
|
|
79
|
+
content = content.replace(
|
|
80
|
+
"// story: e74s02",
|
|
81
|
+
f"// story: e74s02\n// story: {cfg['story']}",
|
|
82
|
+
1,
|
|
83
|
+
)
|
|
84
|
+
return content
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def insert_case_in_function(content: str, func_name: str, anchor_case: str, new_case: str) -> str:
|
|
88
|
+
sid = new_case.split("'")[1]
|
|
89
|
+
if f"case '{sid}'" in content:
|
|
90
|
+
return content
|
|
91
|
+
func_match = re.search(rf"function {func_name}\([^)]*\) \{{", content)
|
|
92
|
+
if not func_match:
|
|
93
|
+
raise SystemExit(f"function not found: {func_name}")
|
|
94
|
+
start = func_match.start()
|
|
95
|
+
# find matching closing brace for function (naive: next function or uninstall section)
|
|
96
|
+
rest = content[start:]
|
|
97
|
+
next_func = re.search(r"\nfunction \w+\(", rest[1:])
|
|
98
|
+
end = start + (next_func.start() + 1 if next_func else len(rest))
|
|
99
|
+
section = content[start:end]
|
|
100
|
+
if f"case '{sid}'" in section:
|
|
101
|
+
return content
|
|
102
|
+
idx = section.find(anchor_case)
|
|
103
|
+
if idx == -1:
|
|
104
|
+
raise SystemExit(f"anchor {anchor_case} not found in {func_name}")
|
|
105
|
+
new_section = section[:idx] + new_case + "\n" + section[idx:]
|
|
106
|
+
return content[:start] + new_section + content[end:]
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def patch_helpers(cfg: dict, content: str) -> str:
|
|
110
|
+
story = cfg["story"]
|
|
111
|
+
if f"story: {story}" in content:
|
|
112
|
+
return content
|
|
113
|
+
g = helpers_global_case(cfg)
|
|
114
|
+
content = insert_case_in_function(content, "installGlobal", " case 'cursor':", g)
|
|
115
|
+
l = helpers_local_case(cfg)
|
|
116
|
+
content = insert_case_in_function(content, "installLocal", " case 'cursor':", l)
|
|
117
|
+
u = helpers_uninstall_case(cfg)
|
|
118
|
+
if cfg["fn"] == "codex":
|
|
119
|
+
old = """ case 'codex':
|
|
120
|
+
removeSymlink(path.join(homeDir, '.codex', 'AGENTS.md'));
|
|
121
|
+
break;"""
|
|
122
|
+
if old in content:
|
|
123
|
+
content = content.replace(old, u)
|
|
124
|
+
else:
|
|
125
|
+
content = insert_case_in_function(content, "uninstallTool", " case 'cursor':", u)
|
|
126
|
+
else:
|
|
127
|
+
content = insert_case_in_function(content, "uninstallTool", " case 'cursor':", u)
|
|
128
|
+
if f"// story: {story}" not in content.split("\n")[0:10]:
|
|
129
|
+
content = content.replace(
|
|
130
|
+
"// story: e74s02",
|
|
131
|
+
f"// story: e74s02\n// story: {story}",
|
|
132
|
+
1,
|
|
133
|
+
)
|
|
134
|
+
return content
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def patch_verify_install(cfg: dict, content: str) -> str:
|
|
138
|
+
fn = cfg["fn"]
|
|
139
|
+
setup_id = cfg["setup_id"]
|
|
140
|
+
p = prefix(cfg)
|
|
141
|
+
story = cfg["story"]
|
|
142
|
+
if f"story: {story}" in content:
|
|
143
|
+
return content
|
|
144
|
+
|
|
145
|
+
if fn == "opencode":
|
|
146
|
+
content = content.replace(
|
|
147
|
+
'grep -qi \'opencode\' <<< "$DRY_OUT" && ta_fail "install references opencode" || ta_pass "install has no opencode reference"',
|
|
148
|
+
'grep -q \'OpenCode →\' <<< "$DRY_OUT" && ta_pass "install includes OpenCode" || ta_fail "install missing OpenCode"',
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
block = f"""grep -q 'install_{fn}()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: install_{fn}()" || ta_fail "source: missing install_{fn}()"
|
|
152
|
+
grep -q 'uninstall_{fn}()' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: uninstall_{fn}()" || ta_fail "source: missing uninstall_{fn}()"
|
|
153
|
+
grep -q '{p}_SKILLS_DIR=' "$REPO_ROOT/scripts/install.sh" && ta_pass "source: {fn} skills dir" || ta_fail "source: missing {fn} skills dir"
|
|
154
|
+
grep -q "'{setup_id}'" "$REPO_ROOT/bin/setup.js" && grep -q 'SUPPORTED_IDS' "$REPO_ROOT/bin/setup.js" && ta_pass "setup.js: {setup_id} supported" || ta_fail "setup.js: {setup_id} not in SUPPORTED_IDS"
|
|
155
|
+
grep -q "case '{setup_id}'" "$REPO_ROOT/scripts/lib/install-helpers.js" && ta_pass "install-helpers: {setup_id} case" || ta_fail "install-helpers: missing {setup_id} case"
|
|
156
|
+
"""
|
|
157
|
+
anchor = 'echo ""\necho "──────────────────────────────────────────"'
|
|
158
|
+
content = content.replace(anchor, block + anchor)
|
|
159
|
+
content = content.replace(
|
|
160
|
+
"# story: e74s02",
|
|
161
|
+
f"# story: e74s02\n# story: {story}",
|
|
162
|
+
1,
|
|
163
|
+
)
|
|
164
|
+
return content
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def patch_targets(cfg: dict, content: str) -> str:
|
|
168
|
+
fn = cfg["fn"]
|
|
169
|
+
manifest = cfg.get("manifest")
|
|
170
|
+
if manifest and manifest not in content and f"id: {fn}" in content:
|
|
171
|
+
content = re.sub(
|
|
172
|
+
rf"( - id: {fn}\n(?: .*\n)*? contracts:\n(?: - [^\n]+\n)+)",
|
|
173
|
+
rf"\1 - {manifest}\n",
|
|
174
|
+
content,
|
|
175
|
+
count=1,
|
|
176
|
+
)
|
|
177
|
+
return content
|
|
178
|
+
if f"\n - id: {fn}\n" in content:
|
|
179
|
+
return content
|
|
180
|
+
row = targets_row(cfg)
|
|
181
|
+
content = content.rstrip() + "\n\n # Fleet Wave B\n" + row
|
|
182
|
+
return content
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def apply_epic(epic_id: str) -> None:
|
|
186
|
+
cfg = dict(HUB_EPICS[epic_id])
|
|
187
|
+
cfg["_epic_id"] = epic_id
|
|
188
|
+
fn = cfg["fn"]
|
|
189
|
+
print(f"Applying Wave B hub for {epic_id} ({fn})...")
|
|
190
|
+
|
|
191
|
+
test_path = REPO / f"scripts/test-{fn}-hub.sh"
|
|
192
|
+
test_path.write_text(test_hub_sh(cfg))
|
|
193
|
+
test_path.chmod(0o755)
|
|
194
|
+
|
|
195
|
+
install_path = REPO / "scripts/install.sh"
|
|
196
|
+
install_path.write_text(patch_install_sh(cfg, install_path.read_text()))
|
|
197
|
+
|
|
198
|
+
helpers_path = REPO / "scripts/lib/install-helpers.js"
|
|
199
|
+
helpers_path.write_text(patch_helpers(cfg, helpers_path.read_text()))
|
|
200
|
+
|
|
201
|
+
setup_path = REPO / "bin/setup.js"
|
|
202
|
+
setup_path.write_text(patch_setup_js(cfg, setup_path.read_text()))
|
|
203
|
+
|
|
204
|
+
verify_path = REPO / "scripts/verify-install.sh"
|
|
205
|
+
verify_path.write_text(patch_verify_install(cfg, verify_path.read_text()))
|
|
206
|
+
|
|
207
|
+
if cfg.get("manifest"):
|
|
208
|
+
targets_path = REPO / "scripts/targets.yaml"
|
|
209
|
+
targets_path.write_text(patch_targets(cfg, targets_path.read_text()))
|
|
210
|
+
|
|
211
|
+
print(f" wrote test-{fn}-hub.sh and patched hub files")
|
|
212
|
+
|
|
213
|
+
|
|
@@ -14,20 +14,9 @@
|
|
|
14
14
|
# lead_time_minutes NON-ADDITIVE. Calendar latency, first-commit → merge.
|
|
15
15
|
# Aggregate by median/p75 over many stories. NEVER sum.
|
|
16
16
|
#
|
|
17
|
-
# Effort model (git-hours
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
# commit's story (the work that produced it);
|
|
21
|
-
# * gap >= IDLE -> session boundary: credit a flat PAD (120 min)
|
|
22
|
-
# to the later commit's story, drop the idle time;
|
|
23
|
-
# * the very first commit of the stream is never padded (no left neighbour).
|
|
24
|
-
#
|
|
25
|
-
# Why not run git-hours per story and sum? Because it doesn't sum: each
|
|
26
|
-
# per-story run re-pads its own first commit and drops its own leading gap,
|
|
27
|
-
# so the sum leaks both ways. The global partition above is additive by
|
|
28
|
-
# construction. Attribution of a shared <120-min window to "the later commit's
|
|
29
|
-
# story" is a documented CONVENTION, not a physical truth — it is the only way
|
|
30
|
-
# to keep the numbers summable without double-counting.
|
|
17
|
+
# Effort model (git-hours): commits sorted by author-date; gap < IDLE (120 min)
|
|
18
|
+
# credits elapsed time to the later commit's story; gap >= IDLE starts a new
|
|
19
|
+
# session with a flat PAD (120 min). Global partition keeps Σ effort additive.
|
|
31
20
|
#
|
|
32
21
|
# Story attribution: a `Story: <id>` trailer in the commit message. Commits
|
|
33
22
|
# with no trailer land in the `unattributed` bucket (surfaced, never dropped).
|
package/scripts/targets.yaml
CHANGED
|
@@ -53,6 +53,7 @@ targets:
|
|
|
53
53
|
mode: native
|
|
54
54
|
contracts:
|
|
55
55
|
- agents_md_exists
|
|
56
|
+
- cline_hooks_manifest
|
|
56
57
|
|
|
57
58
|
- id: aider
|
|
58
59
|
name: Aider
|
|
@@ -160,6 +161,7 @@ targets:
|
|
|
160
161
|
|
|
161
162
|
# Wave C (e37s11)
|
|
162
163
|
- id: qwen
|
|
164
|
+
# story: e68s02
|
|
163
165
|
name: Qwen (Alibaba)
|
|
164
166
|
tier: opt_in
|
|
165
167
|
skill: null
|
|
@@ -169,8 +171,7 @@ targets:
|
|
|
169
171
|
file: QWEN.md
|
|
170
172
|
contracts:
|
|
171
173
|
- agents_md_exists
|
|
172
|
-
|
|
173
|
-
- id: kilocode
|
|
174
|
+
- qwen_hooks_manifest
|
|
174
175
|
name: Kilocode
|
|
175
176
|
tier: opt_in
|
|
176
177
|
skill:
|
|
@@ -230,3 +231,75 @@ targets:
|
|
|
230
231
|
file: AGENTS.md
|
|
231
232
|
contracts:
|
|
232
233
|
- agents_md_exists
|
|
234
|
+
|
|
235
|
+
# Fleet Wave B
|
|
236
|
+
- id: codex
|
|
237
|
+
name: Codex CLI
|
|
238
|
+
tier: opt_in
|
|
239
|
+
skill:
|
|
240
|
+
adapter: codex
|
|
241
|
+
output: .codex/skills
|
|
242
|
+
context:
|
|
243
|
+
adapter: codex
|
|
244
|
+
mode: config-bridge
|
|
245
|
+
file: AGENTS.md
|
|
246
|
+
bridge_file: config.toml
|
|
247
|
+
bridge_key: instructions
|
|
248
|
+
contracts:
|
|
249
|
+
- codex_hooks_manifest
|
|
250
|
+
|
|
251
|
+
# Fleet Wave B
|
|
252
|
+
- id: codebuddy
|
|
253
|
+
name: CodeBuddy
|
|
254
|
+
tier: opt_in
|
|
255
|
+
skill:
|
|
256
|
+
adapter: codebuddy
|
|
257
|
+
output: .codebuddy/skills
|
|
258
|
+
context:
|
|
259
|
+
adapter: codebuddy
|
|
260
|
+
mode: symlink
|
|
261
|
+
file: AGENTS.md
|
|
262
|
+
contracts:
|
|
263
|
+
- codebuddy_hooks_manifest
|
|
264
|
+
|
|
265
|
+
# Fleet Wave B
|
|
266
|
+
- id: kilocode
|
|
267
|
+
name: Kilo
|
|
268
|
+
tier: opt_in
|
|
269
|
+
skill:
|
|
270
|
+
adapter: kilocode
|
|
271
|
+
output: .kilocode/rules
|
|
272
|
+
context:
|
|
273
|
+
adapter: kilocode
|
|
274
|
+
mode: copy
|
|
275
|
+
file: AGENTS.md
|
|
276
|
+
contracts:
|
|
277
|
+
- kilocode_hooks_manifest
|
|
278
|
+
|
|
279
|
+
# Fleet Wave B
|
|
280
|
+
- id: trae
|
|
281
|
+
name: Trae
|
|
282
|
+
tier: opt_in
|
|
283
|
+
skill:
|
|
284
|
+
adapter: trae
|
|
285
|
+
output: .trae/skills
|
|
286
|
+
context:
|
|
287
|
+
adapter: trae
|
|
288
|
+
mode: symlink
|
|
289
|
+
file: AGENTS.md
|
|
290
|
+
contracts:
|
|
291
|
+
- trae_hooks_manifest
|
|
292
|
+
|
|
293
|
+
# Fleet Wave B
|
|
294
|
+
- id: windsurf
|
|
295
|
+
name: Windsurf
|
|
296
|
+
tier: opt_in
|
|
297
|
+
skill:
|
|
298
|
+
adapter: windsurf
|
|
299
|
+
output: .windsurf/rules
|
|
300
|
+
context:
|
|
301
|
+
adapter: windsurf
|
|
302
|
+
mode: copy
|
|
303
|
+
file: AGENTS.md
|
|
304
|
+
contracts:
|
|
305
|
+
- windsurf_hooks_manifest
|
package/scripts/test-agy-hub.sh
CHANGED
|
@@ -13,24 +13,25 @@ fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
|
13
13
|
echo "=== test-agy-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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
install_grep -q 'install_agy()' && pass 'install.sh: install_agy()' || fail 'install.sh: missing install_agy()'
|
|
22
|
+
install_grep -q 'install_antigravity()' && pass 'install.sh: install_antigravity alias' || fail 'install.sh: missing install_antigravity()'
|
|
23
|
+
install_grep -q 'uninstall_agy()' && pass 'install.sh: uninstall_agy()' || fail 'install.sh: missing uninstall_agy()'
|
|
24
|
+
install_grep -q 'uninstall_antigravity()' && pass 'install.sh: uninstall_antigravity alias' || fail 'install.sh: missing uninstall_antigravity()'
|
|
25
|
+
install_grep -q 'AGY_SKILLS_DIR=' && pass 'install.sh: AGY_SKILLS_DIR' || fail 'install.sh: missing AGY_SKILLS_DIR'
|
|
26
|
+
install_grep -q 'antigravity-cli/skills' && pass 'install.sh: antigravity-cli path' || fail 'install.sh: missing antigravity-cli path'
|
|
27
|
+
install_grep -q 'install_agy' && install_grep -q 'uninstall_agy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing agy'
|
|
27
28
|
! grep -q '\.gemini/extensions/bigpowers' <<< "$(sed -n '/install_agy/,/^}/p' "$INSTALL_SH")" \
|
|
28
29
|
&& pass 'install.sh: no gemini extension path' || fail 'install.sh: touches gemini extension path'
|
|
29
30
|
|
|
30
31
|
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
31
|
-
|
|
32
|
+
grep -q 'Antigravity CLI →' <<< "$DRY_OUT" && pass 'dry-run: Antigravity CLI section' || fail 'dry-run: missing Antigravity CLI section'
|
|
32
33
|
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
33
|
-
|
|
34
|
+
grep -q 'Antigravity CLI →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Antigravity CLI section' || fail 'dry-run uninstall: missing Antigravity CLI section'
|
|
34
35
|
|
|
35
36
|
grep -q "case 'antigravity'" "$HELPERS_JS" && pass 'install-helpers: antigravity case' || fail 'install-helpers: missing antigravity case'
|
|
36
37
|
grep -q "case 'agy'" "$HELPERS_JS" && pass 'install-helpers: agy case' || fail 'install-helpers: missing agy case'
|
|
@@ -41,7 +42,7 @@ SETUP_SRC="$(cat "$SETUP_JS")"
|
|
|
41
42
|
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
42
43
|
echo "$SETUP_SRC" | grep -q "'antigravity'" && pass 'setup.js: antigravity in TOOLS/SUPPORTED_IDS' || fail 'setup.js: antigravity missing'
|
|
43
44
|
echo "$SETUP_SRC" | grep -q "'agy'" && pass 'setup.js: agy in SUPPORTED_IDS' || fail 'setup.js: agy missing from SUPPORTED_IDS'
|
|
44
|
-
echo "$SETUP_SRC" | grep -q 'antigravity-cli/skills' && pass 'setup.js: antigravity-cli global path' || fail 'setup.js: wrong antigravity global path'
|
|
45
|
+
echo "$SETUP_SRC" | grep -q 'antigravity-cli/skills' <<< "$DRY_OUT" && pass 'setup.js: antigravity-cli global path' || fail 'setup.js: wrong antigravity global path'
|
|
45
46
|
echo "$SETUP_SRC" | grep -q "'\\.agents/skills'" && pass 'setup.js: .agents/skills local path' || fail 'setup.js: wrong antigravity local path'
|
|
46
47
|
|
|
47
48
|
grep -q 'id: agy' "$TARGETS_YAML" && pass 'targets.yaml: agy row' || fail 'targets.yaml: missing agy row'
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e66s01
|
|
3
|
+
# scenario: SC-e66s01-P1-02
|
|
4
|
+
# Regression tests for Cline adapter render + hook templates.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
+
|
|
10
|
+
PASS=0
|
|
11
|
+
FAIL=0
|
|
12
|
+
|
|
13
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
+
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
+
|
|
16
|
+
echo "=== test-cline-adapter.sh ==="
|
|
17
|
+
|
|
18
|
+
TMP=$(mktemp -d)
|
|
19
|
+
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
+
|
|
21
|
+
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
+
| CLINE_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/cline.sh" \
|
|
23
|
+
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
+
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
+
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
+
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
+
else
|
|
28
|
+
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
+
| CLINE_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/cline.sh" 2>/dev/null; then
|
|
33
|
+
pass "rejects path traversal in skill name"
|
|
34
|
+
else
|
|
35
|
+
fail "rejects path traversal in skill name"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
if [[ -f "$REPO_ROOT/scripts/hooks/cline/plugin/guard-git-plugin.ts" ]] \
|
|
39
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/cline/hooks-manifest.json" ]] \
|
|
40
|
+
&& grep -q 'registerHook' "$REPO_ROOT/scripts/hooks/cline/plugin/guard-git-plugin.ts"; then
|
|
41
|
+
pass "plugin hook template present"
|
|
42
|
+
else
|
|
43
|
+
fail "plugin hook template present"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" cline 2>&1 || true)
|
|
47
|
+
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
48
|
+
pass "test-adapters.sh cline"
|
|
49
|
+
else
|
|
50
|
+
fail "test-adapters.sh cline"
|
|
51
|
+
echo "$ADAPTER_OUT"
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
echo "test-cline-adapter: $PASS passed, $FAIL failed"
|
|
55
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e66s02
|
|
3
|
+
# Regression tests for Cline install hub wiring (Wave B).
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
+
PASS=0
|
|
8
|
+
FAIL=0
|
|
9
|
+
|
|
10
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
+
|
|
13
|
+
echo "=== test-cline-hub.sh ==="
|
|
14
|
+
|
|
15
|
+
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
+
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
+
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
+
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
+
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
+
|
|
21
|
+
install_grep -q 'install_cline()' && pass 'install.sh: install_cline()' || fail 'install.sh: missing install_cline()'
|
|
22
|
+
install_grep -q 'uninstall_cline()' && pass 'install.sh: uninstall_cline()' || fail 'install.sh: missing uninstall_cline()'
|
|
23
|
+
install_grep -q 'CLINE_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
+
install_grep -q 'install_cline' && install_grep -q 'uninstall_cline' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing cline'
|
|
25
|
+
|
|
26
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
+
grep -q 'Cline →' <<< "$DRY_OUT" && pass 'dry-run: Cline section' || fail 'dry-run: missing Cline section'
|
|
28
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
+
grep -q 'Cline →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: Cline section' || fail 'dry-run uninstall: missing Cline section'
|
|
30
|
+
|
|
31
|
+
grep -q "case 'cline'" "$HELPERS_JS" && pass 'install-helpers: cline case' || fail 'install-helpers: missing cline case'
|
|
32
|
+
install_grep -q 'scripts/hooks/cline/plugin' && pass 'install.sh: plugin hook template' || fail 'install.sh: missing plugin template'
|
|
33
|
+
|
|
34
|
+
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
35
|
+
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
36
|
+
grep -q "'cline'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: cline in SUPPORTED_IDS' || fail 'setup.js: cline not in SUPPORTED_IDS'
|
|
37
|
+
|
|
38
|
+
grep -q 'id: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline row' || fail 'targets.yaml: missing cline row'
|
|
39
|
+
grep -q 'adapter: cline' "$TARGETS_YAML" && pass 'targets.yaml: cline adapter' || fail 'targets.yaml: missing cline adapter'
|
|
40
|
+
grep -q 'cline_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: cline_hooks_manifest' || fail 'targets.yaml: missing cline_hooks_manifest'
|
|
41
|
+
grep -q 'install_cline()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_cline assertion' || fail 'verify-install: missing install_cline assertion'
|
|
42
|
+
|
|
43
|
+
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
44
|
+
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
45
|
+
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
46
|
+
|
|
47
|
+
echo "test-cline-hub: $PASS passed, $FAIL failed"
|
|
48
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e72s01
|
|
3
|
+
# scenario: SC-e72s01-P1-02
|
|
4
|
+
# Regression tests for CodeBuddy adapter render + hook templates.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
+
|
|
10
|
+
PASS=0
|
|
11
|
+
FAIL=0
|
|
12
|
+
|
|
13
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
14
|
+
fail() { echo "FAIL: $1"; FAIL=$((FAIL + 1)); }
|
|
15
|
+
|
|
16
|
+
echo "=== test-codebuddy-adapter.sh ==="
|
|
17
|
+
|
|
18
|
+
TMP=$(mktemp -d)
|
|
19
|
+
trap 'rm -rf "$TMP"' EXIT
|
|
20
|
+
|
|
21
|
+
if echo '{"name":"test-skill","description":"test desc","body":"test body"}' \
|
|
22
|
+
| CODEBUDDY_SKILLS="$TMP" bash "$REPO_ROOT/scripts/adapters/codebuddy.sh" \
|
|
23
|
+
&& [[ -f $TMP/test-skill/SKILL.md ]] \
|
|
24
|
+
&& grep -q 'name: test-skill' $TMP/test-skill/SKILL.md \
|
|
25
|
+
&& grep -q 'test body' $TMP/test-skill/SKILL.md; then
|
|
26
|
+
pass "render_skill emits artifact from stdin SkillIR"
|
|
27
|
+
else
|
|
28
|
+
fail "render_skill emits artifact from stdin SkillIR"
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if ! echo '{"name":"../escape","description":"d","body":"b"}' \
|
|
32
|
+
| CODEBUDDY_SKILLS="$TMP/bad" bash "$REPO_ROOT/scripts/adapters/codebuddy.sh" 2>/dev/null; then
|
|
33
|
+
pass "rejects path traversal in skill name"
|
|
34
|
+
else
|
|
35
|
+
fail "rejects path traversal in skill name"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
if [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/pre-tool-git-guard.sh" ]] \
|
|
39
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/hooks-manifest.json" ]] \
|
|
40
|
+
&& [[ -f "$REPO_ROOT/scripts/hooks/codebuddy/settings.example.json" ]]; then
|
|
41
|
+
pass "hook template bundle present"
|
|
42
|
+
else
|
|
43
|
+
fail "hook template bundle present"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
BLOCK_OUT=$(echo '{"tool_input":{"command":"git push --force origin main"}}' \
|
|
47
|
+
| bash "$REPO_ROOT/scripts/hooks/codebuddy/pre-tool-git-guard.sh")
|
|
48
|
+
if echo "$BLOCK_OUT" | grep -q 'block'; then
|
|
49
|
+
pass "pre-tool guard blocks dangerous command"
|
|
50
|
+
else
|
|
51
|
+
fail "pre-tool guard blocks dangerous command"
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
ADAPTER_OUT=$(bash "$REPO_ROOT/scripts/test-adapters.sh" codebuddy 2>&1 || true)
|
|
55
|
+
if echo "$ADAPTER_OUT" | grep -q '0 failed'; then
|
|
56
|
+
pass "test-adapters.sh codebuddy"
|
|
57
|
+
else
|
|
58
|
+
fail "test-adapters.sh codebuddy"
|
|
59
|
+
echo "$ADAPTER_OUT"
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "test-codebuddy-adapter: $PASS passed, $FAIL failed"
|
|
63
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# story: e72s02
|
|
3
|
+
# Regression tests for CodeBuddy install hub wiring (Wave B).
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
+
PASS=0
|
|
8
|
+
FAIL=0
|
|
9
|
+
|
|
10
|
+
pass() { echo "PASS: $1"; PASS=$((PASS + 1)); }
|
|
11
|
+
fail() { echo "FAIL: $1" >&2; FAIL=$((FAIL + 1)); }
|
|
12
|
+
|
|
13
|
+
echo "=== test-codebuddy-hub.sh ==="
|
|
14
|
+
|
|
15
|
+
INSTALL_SH="$REPO_ROOT/scripts/install.sh"
|
|
16
|
+
source "$REPO_ROOT/scripts/lib/install-grep.sh"
|
|
17
|
+
HELPERS_JS="$REPO_ROOT/scripts/lib/install-helpers.js"
|
|
18
|
+
SETUP_JS="$REPO_ROOT/bin/setup.js"
|
|
19
|
+
TARGETS_YAML="$REPO_ROOT/scripts/targets.yaml"
|
|
20
|
+
|
|
21
|
+
install_grep -q 'install_codebuddy()' && pass 'install.sh: install_codebuddy()' || fail 'install.sh: missing install_codebuddy()'
|
|
22
|
+
install_grep -q 'uninstall_codebuddy()' && pass 'install.sh: uninstall_codebuddy()' || fail 'install.sh: missing uninstall_codebuddy()'
|
|
23
|
+
install_grep -q 'CODEBUDDY_SKILLS_DIR=' && pass 'install.sh: skills dir var' || fail 'install.sh: missing skills dir var'
|
|
24
|
+
install_grep -q 'install_codebuddy' && install_grep -q 'uninstall_codebuddy' && pass 'install.sh: dispatch wired' || fail 'install.sh: dispatch missing codebuddy'
|
|
25
|
+
|
|
26
|
+
DRY_OUT="$(bash "$INSTALL_SH" --dry-run 2>&1)"
|
|
27
|
+
grep -q 'CodeBuddy →' <<< "$DRY_OUT" && pass 'dry-run: CodeBuddy section' || fail 'dry-run: missing CodeBuddy section'
|
|
28
|
+
DRY_UNINSTALL="$(bash "$INSTALL_SH" --dry-run --uninstall 2>&1)"
|
|
29
|
+
grep -q 'CodeBuddy →' <<< "$DRY_UNINSTALL" && pass 'dry-run uninstall: CodeBuddy section' || fail 'dry-run uninstall: missing CodeBuddy section'
|
|
30
|
+
|
|
31
|
+
grep -q "case 'codebuddy'" "$HELPERS_JS" && pass 'install-helpers: codebuddy case' || fail 'install-helpers: missing codebuddy case'
|
|
32
|
+
install_grep -q 'CODEBUDDY_HOOK_SRC=' && pass 'install.sh: hook src' || fail 'install.sh: missing hook src'
|
|
33
|
+
install_grep -q 'pre-tool-git-guard.sh' && pass 'install.sh: git-guard hook' || fail 'install.sh: missing git-guard hook'
|
|
34
|
+
|
|
35
|
+
SETUP_SRC="$(cat "$SETUP_JS")"
|
|
36
|
+
echo "$SETUP_SRC" | grep -q "SUPPORTED_IDS = new Set" && pass 'setup.js: SUPPORTED_IDS set' || fail 'setup.js: missing SUPPORTED_IDS'
|
|
37
|
+
grep -q "'codebuddy'" <<< "$(sed -n "/SUPPORTED_IDS = new Set/,/);/p" "$SETUP_JS")" && pass 'setup.js: codebuddy in SUPPORTED_IDS' || fail 'setup.js: codebuddy not in SUPPORTED_IDS'
|
|
38
|
+
|
|
39
|
+
grep -q 'id: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy row' || fail 'targets.yaml: missing codebuddy row'
|
|
40
|
+
grep -q 'adapter: codebuddy' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy adapter' || fail 'targets.yaml: missing codebuddy adapter'
|
|
41
|
+
grep -q 'codebuddy_hooks_manifest' "$TARGETS_YAML" && pass 'targets.yaml: codebuddy_hooks_manifest' || fail 'targets.yaml: missing codebuddy_hooks_manifest'
|
|
42
|
+
grep -q 'install_codebuddy()' "$REPO_ROOT/scripts/verify-install.sh" && pass 'verify-install: install_codebuddy assertion' || fail 'verify-install: missing install_codebuddy assertion'
|
|
43
|
+
|
|
44
|
+
bash -n "$INSTALL_SH" && pass 'bash -n install.sh' || fail 'bash -n install.sh'
|
|
45
|
+
node --check "$HELPERS_JS" && pass 'node --check install-helpers.js' || fail 'node --check install-helpers.js'
|
|
46
|
+
node --check "$SETUP_JS" && pass 'node --check setup.js' || fail 'node --check setup.js'
|
|
47
|
+
|
|
48
|
+
echo "test-codebuddy-hub: $PASS passed, $FAIL failed"
|
|
49
|
+
[[ "$FAIL" -eq 0 ]] || exit 1
|