bigpowers 2.86.5 → 2.86.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/commit-message/SKILL.md +1 -1
- package/.agents/skills/evolve-skill/SKILL.md +1 -1
- package/.agents/skills/write-document/SKILL.md +1 -1
- package/.cline/skills/align-grid/SKILL.md +110 -0
- package/.cline/skills/assess-impact/SKILL.md +91 -0
- package/.cline/skills/audit-code/SKILL.md +184 -0
- package/.cline/skills/audit-plan/SKILL.md +89 -0
- package/.cline/skills/build-epic/SKILL.md +105 -0
- package/.cline/skills/change-request/SKILL.md +121 -0
- package/.cline/skills/commit-message/SKILL.md +140 -0
- package/.cline/skills/compose-workflow/SKILL.md +82 -0
- package/.cline/skills/context7-mcp/SKILL.md +55 -0
- package/.cline/skills/craft-skill/SKILL.md +196 -0
- package/.cline/skills/deepen-architecture/SKILL.md +260 -0
- package/.cline/skills/define-language/SKILL.md +80 -0
- package/.cline/skills/define-success/SKILL.md +12 -0
- package/.cline/skills/delegate-task/SKILL.md +91 -0
- package/.cline/skills/deploy/SKILL.md +198 -0
- package/.cline/skills/design-interface/SKILL.md +97 -0
- package/.cline/skills/develop-tdd/SKILL.md +416 -0
- package/.cline/skills/diagnose-root/SKILL.md +24 -0
- package/.cline/skills/diagnose-stall/SKILL.md +54 -0
- package/.cline/skills/dispatch-agents/SKILL.md +118 -0
- package/.cline/skills/edit-document/SKILL.md +23 -0
- package/.cline/skills/elaborate-spec/SKILL.md +101 -0
- package/.cline/skills/enforce-first/SKILL.md +45 -0
- package/.cline/skills/evolve-skill/SKILL.md +55 -0
- package/.cline/skills/execute-plan/SKILL.md +61 -0
- package/.cline/skills/extract-design/SKILL.md +132 -0
- package/.cline/skills/find-way/SKILL.md +191 -0
- package/.cline/skills/fix-bug/SKILL.md +67 -0
- package/.cline/skills/gate-trace/SKILL.md +92 -0
- package/.cline/skills/generate-allure-report/SKILL.md +285 -0
- package/.cline/skills/grill-me/SKILL.md +108 -0
- package/.cline/skills/grill-with-docs/SKILL.md +53 -0
- package/.cline/skills/guard-git/SKILL.md +231 -0
- package/.cline/skills/harden-vps/SKILL.md +291 -0
- package/.cline/skills/hook-commits/SKILL.md +94 -0
- package/.cline/skills/inspect-quality/SKILL.md +106 -0
- package/.cline/skills/investigate-bug/SKILL.md +127 -0
- package/.cline/skills/kickoff-branch/SKILL.md +143 -0
- package/.cline/skills/maintain-wiki/SKILL.md +64 -0
- package/.cline/skills/map-codebase/SKILL.md +71 -0
- package/.cline/skills/migrate-spec/SKILL.md +862 -0
- package/.cline/skills/model-domain/SKILL.md +232 -0
- package/.cline/skills/orchestrate-project/SKILL.md +174 -0
- package/.cline/skills/organize-workspace/SKILL.md +164 -0
- package/.cline/skills/plan-refactor/SKILL.md +87 -0
- package/.cline/skills/plan-release/SKILL.md +145 -0
- package/.cline/skills/plan-tests/SKILL.md +75 -0
- package/.cline/skills/plan-work/SKILL.md +260 -0
- package/.cline/skills/publish-package/SKILL.md +328 -0
- package/.cline/skills/quick-fix/SKILL.md +114 -0
- package/.cline/skills/release-branch/SKILL.md +298 -0
- package/.cline/skills/request-review/SKILL.md +113 -0
- package/.cline/skills/research-first/SKILL.md +87 -0
- package/.cline/skills/reset-baseline/SKILL.md +21 -0
- package/.cline/skills/respond-review/SKILL.md +71 -0
- package/.cline/skills/run-benchmark/SKILL.md +85 -0
- package/.cline/skills/run-evals/SKILL.md +80 -0
- package/.cline/skills/run-planning/SKILL.md +101 -0
- package/.cline/skills/scope-work/SKILL.md +63 -0
- package/.cline/skills/search-skills/SKILL.md +73 -0
- package/.cline/skills/security-review/SKILL.md +384 -0
- package/.cline/skills/seed-conventions/SKILL.md +302 -0
- package/.cline/skills/session-state/SKILL.md +146 -0
- package/.cline/skills/setup-environment/SKILL.md +39 -0
- package/.cline/skills/simulate-agents/SKILL.md +26 -0
- package/.cline/skills/slice-tasks/SKILL.md +68 -0
- package/.cline/skills/smoke-test/SKILL.md +257 -0
- package/.cline/skills/spike-prototype/SKILL.md +95 -0
- package/.cline/skills/stocktake-skills/SKILL.md +74 -0
- package/.cline/skills/survey-context/SKILL.md +135 -0
- package/.cline/skills/terse-mode/SKILL.md +42 -0
- package/.cline/skills/trace-requirement/SKILL.md +69 -0
- package/.cline/skills/using-bigpowers/SKILL.md +111 -0
- package/.cline/skills/validate-contracts/SKILL.md +277 -0
- package/.cline/skills/validate-fix/SKILL.md +147 -0
- package/.cline/skills/verify-work/SKILL.md +191 -0
- package/.cline/skills/visual-dashboard/SKILL.md +50 -0
- package/.cline/skills/wire-ci/SKILL.md +374 -0
- package/.cline/skills/wire-observability/SKILL.md +97 -0
- package/.cline/skills/write-document/SKILL.md +255 -0
- package/.codebuddy/skills/commit-message/SKILL.md +1 -1
- package/.codebuddy/skills/evolve-skill/SKILL.md +1 -1
- package/.codebuddy/skills/write-document/SKILL.md +1 -1
- package/.codex/skills/commit-message/SKILL.md +1 -1
- package/.codex/skills/evolve-skill/SKILL.md +1 -1
- package/.codex/skills/write-document/SKILL.md +1 -1
- package/.copilot/skills/align-grid/SKILL.md +110 -0
- package/.copilot/skills/assess-impact/SKILL.md +91 -0
- package/.copilot/skills/audit-code/SKILL.md +184 -0
- package/.copilot/skills/audit-plan/SKILL.md +89 -0
- package/.copilot/skills/build-epic/SKILL.md +105 -0
- package/.copilot/skills/change-request/SKILL.md +121 -0
- package/.copilot/skills/commit-message/SKILL.md +140 -0
- package/.copilot/skills/compose-workflow/SKILL.md +82 -0
- package/.copilot/skills/context7-mcp/SKILL.md +55 -0
- package/.copilot/skills/craft-skill/SKILL.md +196 -0
- package/.copilot/skills/deepen-architecture/SKILL.md +260 -0
- package/.copilot/skills/define-language/SKILL.md +80 -0
- package/.copilot/skills/define-success/SKILL.md +12 -0
- package/.copilot/skills/delegate-task/SKILL.md +91 -0
- package/.copilot/skills/deploy/SKILL.md +198 -0
- package/.copilot/skills/design-interface/SKILL.md +97 -0
- package/.copilot/skills/develop-tdd/SKILL.md +416 -0
- package/.copilot/skills/diagnose-root/SKILL.md +24 -0
- package/.copilot/skills/diagnose-stall/SKILL.md +54 -0
- package/.copilot/skills/dispatch-agents/SKILL.md +118 -0
- package/.copilot/skills/edit-document/SKILL.md +23 -0
- package/.copilot/skills/elaborate-spec/SKILL.md +101 -0
- package/.copilot/skills/enforce-first/SKILL.md +45 -0
- package/.copilot/skills/evolve-skill/SKILL.md +55 -0
- package/.copilot/skills/execute-plan/SKILL.md +61 -0
- package/.copilot/skills/extract-design/SKILL.md +132 -0
- package/.copilot/skills/find-way/SKILL.md +191 -0
- package/.copilot/skills/fix-bug/SKILL.md +67 -0
- package/.copilot/skills/gate-trace/SKILL.md +92 -0
- package/.copilot/skills/generate-allure-report/SKILL.md +285 -0
- package/.copilot/skills/grill-me/SKILL.md +108 -0
- package/.copilot/skills/grill-with-docs/SKILL.md +53 -0
- package/.copilot/skills/guard-git/SKILL.md +231 -0
- package/.copilot/skills/harden-vps/SKILL.md +291 -0
- package/.copilot/skills/hook-commits/SKILL.md +94 -0
- package/.copilot/skills/inspect-quality/SKILL.md +106 -0
- package/.copilot/skills/investigate-bug/SKILL.md +127 -0
- package/.copilot/skills/kickoff-branch/SKILL.md +143 -0
- package/.copilot/skills/maintain-wiki/SKILL.md +64 -0
- package/.copilot/skills/map-codebase/SKILL.md +71 -0
- package/.copilot/skills/migrate-spec/SKILL.md +862 -0
- package/.copilot/skills/model-domain/SKILL.md +232 -0
- package/.copilot/skills/orchestrate-project/SKILL.md +174 -0
- package/.copilot/skills/organize-workspace/SKILL.md +164 -0
- package/.copilot/skills/plan-refactor/SKILL.md +87 -0
- package/.copilot/skills/plan-release/SKILL.md +145 -0
- package/.copilot/skills/plan-tests/SKILL.md +75 -0
- package/.copilot/skills/plan-work/SKILL.md +260 -0
- package/.copilot/skills/publish-package/SKILL.md +328 -0
- package/.copilot/skills/quick-fix/SKILL.md +114 -0
- package/.copilot/skills/release-branch/SKILL.md +298 -0
- package/.copilot/skills/request-review/SKILL.md +113 -0
- package/.copilot/skills/research-first/SKILL.md +87 -0
- package/.copilot/skills/reset-baseline/SKILL.md +21 -0
- package/.copilot/skills/respond-review/SKILL.md +71 -0
- package/.copilot/skills/run-benchmark/SKILL.md +85 -0
- package/.copilot/skills/run-evals/SKILL.md +80 -0
- package/.copilot/skills/run-planning/SKILL.md +101 -0
- package/.copilot/skills/scope-work/SKILL.md +63 -0
- package/.copilot/skills/search-skills/SKILL.md +73 -0
- package/.copilot/skills/security-review/SKILL.md +384 -0
- package/.copilot/skills/seed-conventions/SKILL.md +302 -0
- package/.copilot/skills/session-state/SKILL.md +146 -0
- package/.copilot/skills/setup-environment/SKILL.md +39 -0
- package/.copilot/skills/simulate-agents/SKILL.md +26 -0
- package/.copilot/skills/slice-tasks/SKILL.md +68 -0
- package/.copilot/skills/smoke-test/SKILL.md +257 -0
- package/.copilot/skills/spike-prototype/SKILL.md +95 -0
- package/.copilot/skills/stocktake-skills/SKILL.md +74 -0
- package/.copilot/skills/survey-context/SKILL.md +135 -0
- package/.copilot/skills/terse-mode/SKILL.md +42 -0
- package/.copilot/skills/trace-requirement/SKILL.md +69 -0
- package/.copilot/skills/using-bigpowers/SKILL.md +111 -0
- package/.copilot/skills/validate-contracts/SKILL.md +277 -0
- package/.copilot/skills/validate-fix/SKILL.md +147 -0
- package/.copilot/skills/verify-work/SKILL.md +191 -0
- package/.copilot/skills/visual-dashboard/SKILL.md +50 -0
- package/.copilot/skills/wire-ci/SKILL.md +374 -0
- package/.copilot/skills/wire-observability/SKILL.md +97 -0
- package/.copilot/skills/write-document/SKILL.md +255 -0
- package/.hermes/skills/commit-message/SKILL.md +1 -1
- package/.hermes/skills/evolve-skill/SKILL.md +1 -1
- package/.hermes/skills/write-document/SKILL.md +1 -1
- package/.kilocode/rules/commit-message.md +1 -1
- package/.kilocode/rules/evolve-skill.md +1 -1
- package/.kilocode/rules/write-document.md +1 -1
- package/.mimocode/skills/commit-message/SKILL.md +1 -1
- package/.mimocode/skills/evolve-skill/SKILL.md +1 -1
- package/.mimocode/skills/write-document/SKILL.md +1 -1
- package/.opencode/skills/align-grid/SKILL.md +110 -0
- package/.opencode/skills/assess-impact/SKILL.md +91 -0
- package/.opencode/skills/audit-code/SKILL.md +184 -0
- package/.opencode/skills/audit-plan/SKILL.md +89 -0
- package/.opencode/skills/build-epic/SKILL.md +105 -0
- package/.opencode/skills/change-request/SKILL.md +121 -0
- package/.opencode/skills/commit-message/SKILL.md +140 -0
- package/.opencode/skills/compose-workflow/SKILL.md +82 -0
- package/.opencode/skills/context7-mcp/SKILL.md +55 -0
- package/.opencode/skills/craft-skill/SKILL.md +196 -0
- package/.opencode/skills/deepen-architecture/SKILL.md +260 -0
- package/.opencode/skills/define-language/SKILL.md +80 -0
- package/.opencode/skills/define-success/SKILL.md +12 -0
- package/.opencode/skills/delegate-task/SKILL.md +91 -0
- package/.opencode/skills/deploy/SKILL.md +198 -0
- package/.opencode/skills/design-interface/SKILL.md +97 -0
- package/.opencode/skills/develop-tdd/SKILL.md +416 -0
- package/.opencode/skills/diagnose-root/SKILL.md +24 -0
- package/.opencode/skills/diagnose-stall/SKILL.md +54 -0
- package/.opencode/skills/dispatch-agents/SKILL.md +118 -0
- package/.opencode/skills/edit-document/SKILL.md +23 -0
- package/.opencode/skills/elaborate-spec/SKILL.md +101 -0
- package/.opencode/skills/enforce-first/SKILL.md +45 -0
- package/.opencode/skills/evolve-skill/SKILL.md +55 -0
- package/.opencode/skills/execute-plan/SKILL.md +61 -0
- package/.opencode/skills/extract-design/SKILL.md +132 -0
- package/.opencode/skills/find-way/SKILL.md +191 -0
- package/.opencode/skills/fix-bug/SKILL.md +67 -0
- package/.opencode/skills/gate-trace/SKILL.md +92 -0
- package/.opencode/skills/generate-allure-report/SKILL.md +285 -0
- package/.opencode/skills/grill-me/SKILL.md +108 -0
- package/.opencode/skills/grill-with-docs/SKILL.md +53 -0
- package/.opencode/skills/guard-git/SKILL.md +231 -0
- package/.opencode/skills/harden-vps/SKILL.md +291 -0
- package/.opencode/skills/hook-commits/SKILL.md +94 -0
- package/.opencode/skills/inspect-quality/SKILL.md +106 -0
- package/.opencode/skills/investigate-bug/SKILL.md +127 -0
- package/.opencode/skills/kickoff-branch/SKILL.md +143 -0
- package/.opencode/skills/maintain-wiki/SKILL.md +64 -0
- package/.opencode/skills/map-codebase/SKILL.md +71 -0
- package/.opencode/skills/migrate-spec/SKILL.md +862 -0
- package/.opencode/skills/model-domain/SKILL.md +232 -0
- package/.opencode/skills/orchestrate-project/SKILL.md +174 -0
- package/.opencode/skills/organize-workspace/SKILL.md +164 -0
- package/.opencode/skills/plan-refactor/SKILL.md +87 -0
- package/.opencode/skills/plan-release/SKILL.md +145 -0
- package/.opencode/skills/plan-tests/SKILL.md +75 -0
- package/.opencode/skills/plan-work/SKILL.md +260 -0
- package/.opencode/skills/publish-package/SKILL.md +328 -0
- package/.opencode/skills/quick-fix/SKILL.md +114 -0
- package/.opencode/skills/release-branch/SKILL.md +298 -0
- package/.opencode/skills/request-review/SKILL.md +113 -0
- package/.opencode/skills/research-first/SKILL.md +87 -0
- package/.opencode/skills/reset-baseline/SKILL.md +21 -0
- package/.opencode/skills/respond-review/SKILL.md +71 -0
- package/.opencode/skills/run-benchmark/SKILL.md +85 -0
- package/.opencode/skills/run-evals/SKILL.md +80 -0
- package/.opencode/skills/run-planning/SKILL.md +101 -0
- package/.opencode/skills/scope-work/SKILL.md +63 -0
- package/.opencode/skills/search-skills/SKILL.md +73 -0
- package/.opencode/skills/security-review/SKILL.md +384 -0
- package/.opencode/skills/seed-conventions/SKILL.md +302 -0
- package/.opencode/skills/session-state/SKILL.md +146 -0
- package/.opencode/skills/setup-environment/SKILL.md +39 -0
- package/.opencode/skills/simulate-agents/SKILL.md +26 -0
- package/.opencode/skills/slice-tasks/SKILL.md +68 -0
- package/.opencode/skills/smoke-test/SKILL.md +257 -0
- package/.opencode/skills/spike-prototype/SKILL.md +95 -0
- package/.opencode/skills/stocktake-skills/SKILL.md +74 -0
- package/.opencode/skills/survey-context/SKILL.md +135 -0
- package/.opencode/skills/terse-mode/SKILL.md +42 -0
- package/.opencode/skills/trace-requirement/SKILL.md +69 -0
- package/.opencode/skills/using-bigpowers/SKILL.md +111 -0
- package/.opencode/skills/validate-contracts/SKILL.md +277 -0
- package/.opencode/skills/validate-fix/SKILL.md +147 -0
- package/.opencode/skills/verify-work/SKILL.md +191 -0
- package/.opencode/skills/visual-dashboard/SKILL.md +50 -0
- package/.opencode/skills/wire-ci/SKILL.md +374 -0
- package/.opencode/skills/wire-observability/SKILL.md +97 -0
- package/.opencode/skills/write-document/SKILL.md +255 -0
- package/.pi/package.json +1 -1
- package/.pi/prompts/commit-message.md +1 -1
- package/.pi/prompts/evolve-skill.md +1 -1
- package/.pi/prompts/write-document.md +1 -1
- package/.pi/skills/commit-message/SKILL.md +1 -1
- package/.pi/skills/evolve-skill/SKILL.md +1 -1
- package/.pi/skills/write-document/SKILL.md +1 -1
- package/.qwen/skills/align-grid/SKILL.md +110 -0
- package/.qwen/skills/assess-impact/SKILL.md +91 -0
- package/.qwen/skills/audit-code/SKILL.md +184 -0
- package/.qwen/skills/audit-plan/SKILL.md +89 -0
- package/.qwen/skills/build-epic/SKILL.md +105 -0
- package/.qwen/skills/change-request/SKILL.md +121 -0
- package/.qwen/skills/commit-message/SKILL.md +140 -0
- package/.qwen/skills/compose-workflow/SKILL.md +82 -0
- package/.qwen/skills/context7-mcp/SKILL.md +55 -0
- package/.qwen/skills/craft-skill/SKILL.md +196 -0
- package/.qwen/skills/deepen-architecture/SKILL.md +260 -0
- package/.qwen/skills/define-language/SKILL.md +80 -0
- package/.qwen/skills/define-success/SKILL.md +12 -0
- package/.qwen/skills/delegate-task/SKILL.md +91 -0
- package/.qwen/skills/deploy/SKILL.md +198 -0
- package/.qwen/skills/design-interface/SKILL.md +97 -0
- package/.qwen/skills/develop-tdd/SKILL.md +416 -0
- package/.qwen/skills/diagnose-root/SKILL.md +24 -0
- package/.qwen/skills/diagnose-stall/SKILL.md +54 -0
- package/.qwen/skills/dispatch-agents/SKILL.md +118 -0
- package/.qwen/skills/edit-document/SKILL.md +23 -0
- package/.qwen/skills/elaborate-spec/SKILL.md +101 -0
- package/.qwen/skills/enforce-first/SKILL.md +45 -0
- package/.qwen/skills/evolve-skill/SKILL.md +55 -0
- package/.qwen/skills/execute-plan/SKILL.md +61 -0
- package/.qwen/skills/extract-design/SKILL.md +132 -0
- package/.qwen/skills/find-way/SKILL.md +191 -0
- package/.qwen/skills/fix-bug/SKILL.md +67 -0
- package/.qwen/skills/gate-trace/SKILL.md +92 -0
- package/.qwen/skills/generate-allure-report/SKILL.md +285 -0
- package/.qwen/skills/grill-me/SKILL.md +108 -0
- package/.qwen/skills/grill-with-docs/SKILL.md +53 -0
- package/.qwen/skills/guard-git/SKILL.md +231 -0
- package/.qwen/skills/harden-vps/SKILL.md +291 -0
- package/.qwen/skills/hook-commits/SKILL.md +94 -0
- package/.qwen/skills/inspect-quality/SKILL.md +106 -0
- package/.qwen/skills/investigate-bug/SKILL.md +127 -0
- package/.qwen/skills/kickoff-branch/SKILL.md +143 -0
- package/.qwen/skills/maintain-wiki/SKILL.md +64 -0
- package/.qwen/skills/map-codebase/SKILL.md +71 -0
- package/.qwen/skills/migrate-spec/SKILL.md +862 -0
- package/.qwen/skills/model-domain/SKILL.md +232 -0
- package/.qwen/skills/orchestrate-project/SKILL.md +174 -0
- package/.qwen/skills/organize-workspace/SKILL.md +164 -0
- package/.qwen/skills/plan-refactor/SKILL.md +87 -0
- package/.qwen/skills/plan-release/SKILL.md +145 -0
- package/.qwen/skills/plan-tests/SKILL.md +75 -0
- package/.qwen/skills/plan-work/SKILL.md +260 -0
- package/.qwen/skills/publish-package/SKILL.md +328 -0
- package/.qwen/skills/quick-fix/SKILL.md +114 -0
- package/.qwen/skills/release-branch/SKILL.md +298 -0
- package/.qwen/skills/request-review/SKILL.md +113 -0
- package/.qwen/skills/research-first/SKILL.md +87 -0
- package/.qwen/skills/reset-baseline/SKILL.md +21 -0
- package/.qwen/skills/respond-review/SKILL.md +71 -0
- package/.qwen/skills/run-benchmark/SKILL.md +85 -0
- package/.qwen/skills/run-evals/SKILL.md +80 -0
- package/.qwen/skills/run-planning/SKILL.md +101 -0
- package/.qwen/skills/scope-work/SKILL.md +63 -0
- package/.qwen/skills/search-skills/SKILL.md +73 -0
- package/.qwen/skills/security-review/SKILL.md +384 -0
- package/.qwen/skills/seed-conventions/SKILL.md +302 -0
- package/.qwen/skills/session-state/SKILL.md +146 -0
- package/.qwen/skills/setup-environment/SKILL.md +39 -0
- package/.qwen/skills/simulate-agents/SKILL.md +26 -0
- package/.qwen/skills/slice-tasks/SKILL.md +68 -0
- package/.qwen/skills/smoke-test/SKILL.md +257 -0
- package/.qwen/skills/spike-prototype/SKILL.md +95 -0
- package/.qwen/skills/stocktake-skills/SKILL.md +74 -0
- package/.qwen/skills/survey-context/SKILL.md +135 -0
- package/.qwen/skills/terse-mode/SKILL.md +42 -0
- package/.qwen/skills/trace-requirement/SKILL.md +69 -0
- package/.qwen/skills/using-bigpowers/SKILL.md +111 -0
- package/.qwen/skills/validate-contracts/SKILL.md +277 -0
- package/.qwen/skills/validate-fix/SKILL.md +147 -0
- package/.qwen/skills/verify-work/SKILL.md +191 -0
- package/.qwen/skills/visual-dashboard/SKILL.md +50 -0
- package/.qwen/skills/wire-ci/SKILL.md +374 -0
- package/.qwen/skills/wire-observability/SKILL.md +97 -0
- package/.qwen/skills/write-document/SKILL.md +255 -0
- package/.trae/skills/commit-message/SKILL.md +1 -1
- package/.trae/skills/evolve-skill/SKILL.md +1 -1
- package/.trae/skills/write-document/SKILL.md +1 -1
- package/.windsurf/rules/commit-message.md +1 -1
- package/.windsurf/rules/evolve-skill.md +1 -1
- package/.windsurf/rules/write-document.md +1 -1
- package/.zcode/skills/commit-message/SKILL.md +1 -1
- package/.zcode/skills/evolve-skill/SKILL.md +1 -1
- package/.zcode/skills/write-document/SKILL.md +1 -1
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/scripts/adapters/agy.sh +3 -0
- package/scripts/adapters/continue.sh +3 -0
- package/scripts/adapters/cursor.sh +3 -0
- package/scripts/adapters/gemini.sh +5 -24
- package/scripts/adapters/mimo.sh +3 -0
- package/scripts/adapters/omp.sh +3 -0
- package/scripts/adapters/pi.sh +6 -3
- package/scripts/adapters/zcode.sh +3 -0
- package/scripts/adapters/zed.sh +3 -0
- package/scripts/generate-workflow-diagrams.sh +102 -0
- package/scripts/golden-g13-test-orphans.sh +70 -0
- package/scripts/golden-g14-adapter-dispatch.sh +113 -0
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/scripts/lib/adapter-guard.sh +30 -0
- package/scripts/lib/golden-suite-gates.sh +24 -0
- package/scripts/lib/install-targets-b.sh +0 -8
- package/scripts/lib/sync-render.sh +0 -43
- package/scripts/targets.yaml +35 -13
- package/scripts/test-adapter-render.sh +116 -0
- package/scripts/test-adapters.sh +10 -3
- package/scripts/test-install-hub.sh +139 -0
- package/skills/commit-message/REFERENCE.md +1 -1
- package/skills/evolve-skill/REFERENCE.md +1 -1
- package/skills/write-document/REFERENCE.md +1 -1
- package/scripts/test-agy-hub.sh +0 -60
- package/scripts/test-cline-adapter.sh +0 -55
- package/scripts/test-cline-hub.sh +0 -48
- package/scripts/test-codebuddy-adapter.sh +0 -63
- package/scripts/test-codebuddy-hub.sh +0 -49
- package/scripts/test-codex-adapter.sh +0 -63
- package/scripts/test-codex-hub.sh +0 -49
- package/scripts/test-copilot-adapter.sh +0 -47
- package/scripts/test-copilot-hub.sh +0 -43
- package/scripts/test-gemini-adapter.sh +0 -70
- package/scripts/test-gemini-hub.sh +0 -56
- package/scripts/test-hermes-adapter.sh +0 -85
- package/scripts/test-hermes-hub.sh +0 -52
- package/scripts/test-kilocode-adapter.sh +0 -55
- package/scripts/test-kilocode-hub.sh +0 -48
- package/scripts/test-mimo-hub.sh +0 -52
- package/scripts/test-opencode-adapter.sh +0 -47
- package/scripts/test-opencode-hub.sh +0 -43
- package/scripts/test-qwen-adapter.sh +0 -63
- package/scripts/test-qwen-hub.sh +0 -49
- package/scripts/test-trae-adapter.sh +0 -63
- package/scripts/test-trae-hub.sh +0 -49
- package/scripts/test-windsurf-adapter.sh +0 -63
- package/scripts/test-windsurf-hub.sh +0 -49
- package/scripts/test-zcode-hub.sh +0 -52
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-trace
|
|
3
|
+
model: haiku
|
|
4
|
+
description: "Deterministic traceability quality gate — reads coverage matrix + blind-spot data, applies decision rules with oracle confidence downgrade, emits PASS/CONCERNS/FAIL/WAIVED verdict. Use before release-branch to gate merges on traceability."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Gate Trace
|
|
8
|
+
|
|
9
|
+
Deterministic quality gate that combines traceability coverage and blind-spot data into a single PASS/FAIL/CONCERNS/WAIVED decision before release.
|
|
10
|
+
|
|
11
|
+
## Decision Rules
|
|
12
|
+
|
|
13
|
+
| Rule | Condition | Verdict |
|
|
14
|
+
|------|-----------|---------|
|
|
15
|
+
| R1 | Any undone story with 0 code tags | FAIL |
|
|
16
|
+
| R2 | Any story done but no verify evidence | CONCERNS |
|
|
17
|
+
| R3 | P0 story (top WSJF quartile) with 0% coverage | FAIL |
|
|
18
|
+
| R4 | Overall coverage < 60% | CONCERNS |
|
|
19
|
+
| R6 | P0 story + eNN-TEST_PLAN_LATEST.md exists + zero SC-eNNsYY-P0-* in test files | CONCERNS |
|
|
20
|
+
| R5 | Overall ≥ 80% + no critical gaps + all verify → PASS | PASS |
|
|
21
|
+
|
|
22
|
+
## Oracle Confidence Downgrade
|
|
23
|
+
|
|
24
|
+
TEA-inspired: if trace links rely on heuristics rather than explicit tags, confidence drops.
|
|
25
|
+
|
|
26
|
+
| Heuristic Ratio | Downgrade |
|
|
27
|
+
|-----------------|-----------|
|
|
28
|
+
| > 50% links from heuristics (file-name or task-reference) | One level (PASS→CONCERNS, CONCERNS→FAIL) |
|
|
29
|
+
| > 80% links from heuristics | Two levels (PASS→FAIL, CONCERNS→FAIL) |
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
1. **Pre-flight:** Ensure `scripts/trace-stories.sh --json` has been run (produces `specs/traceability-matrix.json`). If not present, run it.
|
|
34
|
+
2. Ensure `scripts/check-blind-spots.sh` has been run (produces `specs/blind-spots.json`). If not present, run it.
|
|
35
|
+
3. Read `specs/traceability-matrix.json` and `specs/blind-spots.json`.
|
|
36
|
+
4. Apply decision rules R1–R5 in order (first match wins).
|
|
37
|
+
5. Apply oracle confidence downgrade based on the heuristic link ratio from the matrix's `oracle_stats`.
|
|
38
|
+
6. **Drift check (e39s03):** If `specs/drift-report.json` exists and has suspect links, mark verdict as CONCERNS with note: "Drift detected — some implementing files are newer than their specs. Run scripts/check-spec-drift.sh for details."
|
|
39
|
+
7. Output verdict + rationale to stdout.
|
|
40
|
+
8. **Adversarial refute check (e45s32):** Before emitting PASS, attempt to **refute** the verdict — list at least one concrete traceability gap that would block merge if it were real. If the gap is real, downgrade the verdict. Rubber-stamping is prohibited; every PASS must survive one refutation attempt.
|
|
41
|
+
9. **Completeness critic (e45s05)** — Run adversarial gap-finding:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bash scripts/lib/completeness-critic.sh
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Classify output as **BLOCKER / WARNING / FILLED**. **BLOCKER overrides any PASS verdict → FAIL.** Append critic summary to rationale.
|
|
48
|
+
10. Update `specs/execution-status.yaml` with gate-trace result.
|
|
49
|
+
|
|
50
|
+
## Verdict Semantics
|
|
51
|
+
|
|
52
|
+
| Verdict | Meaning | Action |
|
|
53
|
+
|---------|---------|--------|
|
|
54
|
+
| PASS | All gates satisfied | Proceed with merge |
|
|
55
|
+
| CONCERNS | Non-critical issues found | Requires explicit human override in `state.yaml` |
|
|
56
|
+
| FAIL | Critical traceability gap | Block merge — fix gap first |
|
|
57
|
+
| WAIVED | Cannot evaluate (missing inputs) | Skip gate — data not available |
|
|
58
|
+
|
|
59
|
+
## Output Format
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
gate_trace:
|
|
63
|
+
verdict: PASS|CONCERNS|FAIL|WAIVED
|
|
64
|
+
generated_at: "<ISO 8601>"
|
|
65
|
+
rationale: "<human-readable explanation>"
|
|
66
|
+
heuristic_ratio: <0.0–1.0>
|
|
67
|
+
downgrade_applied: <true|false>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Integration Points
|
|
71
|
+
|
|
72
|
+
- **release-branch SKILL.md** — pre-PR gate (FAIL blocks merge).
|
|
73
|
+
- **sync-skills.yml** — runs `trace-stories.sh --strict` as its "Traceability gate" step (FAIL
|
|
74
|
+
blocks pipeline), which shares this skill's coverage data (`traceability-matrix.json`) but
|
|
75
|
+
does not invoke a gate-trace PASS/CONCERNS/FAIL/WAIVED verdict directly.
|
|
76
|
+
- **verify-work SKILL.md** — runs blind-spot checks; gate-trace consumes the result.
|
|
77
|
+
|
|
78
|
+
## References
|
|
79
|
+
|
|
80
|
+
- BMAD TEA traceability approach (market survey 2026-07-02).
|
|
81
|
+
- scripts/trace-stories.sh (e38s01) — produces traceability-matrix.json.
|
|
82
|
+
- scripts/check-blind-spots.sh (e38s04) — produces blind-spots.json.
|
|
83
|
+
- specs/execution-status.yaml — output target for gate result.
|
|
84
|
+
|
|
85
|
+
## Handoff
|
|
86
|
+
|
|
87
|
+
Gate: READY → next: release-branch (final step before merge)
|
|
88
|
+
Writes: state.yaml handoff.next_skill = release-branch
|
|
89
|
+
|
|
90
|
+
## Verify
|
|
91
|
+
|
|
92
|
+
→ verify: `test -x scripts/run-gate-trace-verify.sh && bash scripts/run-gate-trace-verify.sh --self-test && echo OK`
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-allure-report
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "Generate Allure-ready reports from bigpowers YAML metadata. Reads execution-status.yaml, release-plan.yaml, epic capsules, task YAMLs, cycle-times.yaml, and bug registry to produce allure-results/junit-results.xml, categories.json, and executor.json. Use when preparing progress dashboards, integrating with Allure TestOps, or generating CI reports."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Generate Allure Report
|
|
8
|
+
|
|
9
|
+
Generate Allure TestOps-compatible reports from bigpowers project metadata. Produces JUnit XML for story-level test results, custom categories for filtering, and executor metadata — all in the `allure-results/` directory.
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
bash scripts/generate-allure-report.sh
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What It Produces
|
|
18
|
+
|
|
19
|
+
Three files in `allure-results/`:
|
|
20
|
+
|
|
21
|
+
| File | Description |
|
|
22
|
+
|------|-------------|
|
|
23
|
+
| `junit-results.xml` | One `<testcase>` per story with `<properties>` for risk, security, WSJF, tier, wave, and status. Incomplete stories get a `<failure>` element. |
|
|
24
|
+
| `categories.json` | Custom Allure categories for filtering by epic, risk level (P0), and security reviews. |
|
|
25
|
+
| `executor.json` | Build metadata — name, type, version from release-plan.yaml, build order. |
|
|
26
|
+
|
|
27
|
+
## Data Sources
|
|
28
|
+
|
|
29
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
30
|
+
|
|
31
|
+
## Verify
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
test -f allure-results/junit-results.xml && test -f allure-results/categories.json && test -f allure-results/executor.json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Handoff
|
|
38
|
+
|
|
39
|
+
- next_skill: null (terminal skill — no downstream workflow step)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# generate-allure-report — Reference
|
|
44
|
+
|
|
45
|
+
## Data Sources
|
|
46
|
+
|
|
47
|
+
The script reads five YAML sources from the project:
|
|
48
|
+
|
|
49
|
+
| Source | Path | Fields Used |
|
|
50
|
+
|--------|------|-------------|
|
|
51
|
+
| Execution status | `specs/execution-status.yaml` | `epics`, `stories`, `development_status` |
|
|
52
|
+
| Release plan | `specs/release-plan.yaml` | `release.version`, `release.status`, `bugs` summary |
|
|
53
|
+
| Epic capsules | `specs/epics/**/epic.yaml` + `-tasks.yaml` | Epic metadata, task pass/fail counts |
|
|
54
|
+
| Cycle times | `specs/metrics/cycle-times.yaml` | Story-level `cycle_minutes`, `bcp_per_hour`, `source` |
|
|
55
|
+
| Bug registry | `specs/bugs/registry.yaml` | Bug counts by status and severity |
|
|
56
|
+
|
|
57
|
+
## Script Body
|
|
58
|
+
|
|
59
|
+
`scripts/generate-allure-report.sh`:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
#!/usr/bin/env bash
|
|
63
|
+
set -euo pipefail
|
|
64
|
+
source "$(dirname "${BASH_SOURCE[0]}")/lib/python-env.sh"
|
|
65
|
+
ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || ROOT="$(dirname "${BASH_SOURCE[0]}")/.."
|
|
66
|
+
|
|
67
|
+
mkdir -p "$ROOT/allure-results"
|
|
68
|
+
|
|
69
|
+
$PYTHON - "$ROOT" <<'PY'
|
|
70
|
+
import json
|
|
71
|
+
import sys
|
|
72
|
+
import xml.etree.ElementTree as ET
|
|
73
|
+
from pathlib import Path
|
|
74
|
+
|
|
75
|
+
root = Path(sys.argv[1])
|
|
76
|
+
out = root / "allure-results"
|
|
77
|
+
|
|
78
|
+
# 1. Read execution-status.yaml
|
|
79
|
+
exec_status_file = root / "specs" / "execution-status.yaml"
|
|
80
|
+
release_plan_file = root / "specs" / "release-plan.yaml"
|
|
81
|
+
cycle_times_file = root / "specs" / "metrics" / "cycle-times.yaml"
|
|
82
|
+
bugs_registry_file = root / "specs" / "bugs" / "registry.yaml"
|
|
83
|
+
|
|
84
|
+
sys.path.insert(0, str(root / "scripts" / "lib"))
|
|
85
|
+
from simple_yaml import parse_simple_yaml
|
|
86
|
+
|
|
87
|
+
exec_status = parse_simple_yaml(exec_status_file.read_text()) if exec_status_file.exists() else {}
|
|
88
|
+
release_plan = parse_simple_yaml(release_plan_file.read_text()) if release_plan_file.exists() else {}
|
|
89
|
+
cycle_times = parse_simple_yaml(cycle_times_file.read_text()) if cycle_times_file.exists() else {"stories": []}
|
|
90
|
+
bugs_registry = parse_simple_yaml(bugs_registry_file.read_text()) if bugs_registry_file.exists() else {"bugs": []}
|
|
91
|
+
|
|
92
|
+
# Build cycle-times lookup
|
|
93
|
+
ct_lookup = {}
|
|
94
|
+
for ct in cycle_times.get("stories", []):
|
|
95
|
+
if isinstance(ct, dict):
|
|
96
|
+
ct_lookup[ct.get("id", "")] = ct
|
|
97
|
+
|
|
98
|
+
# 2. Build JUnit XML
|
|
99
|
+
stories = exec_status.get("stories", {})
|
|
100
|
+
|
|
101
|
+
# Counts for testsuite attributes
|
|
102
|
+
total_stories = len(stories)
|
|
103
|
+
incomplete = sum(1 for s in stories.values() if isinstance(s, dict) and s.get("status") != "done")
|
|
104
|
+
|
|
105
|
+
testsuite = ET.Element("testsuite", {
|
|
106
|
+
"name": "bigpowers-epic-progress",
|
|
107
|
+
"tests": str(total_stories),
|
|
108
|
+
"failures": str(incomplete),
|
|
109
|
+
"errors": "0",
|
|
110
|
+
"skipped": "0",
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
for story_id in sorted(stories.keys()):
|
|
114
|
+
story = stories[story_id]
|
|
115
|
+
if not isinstance(story, dict):
|
|
116
|
+
continue
|
|
117
|
+
|
|
118
|
+
epic_id = story.get("epic", "unknown")
|
|
119
|
+
title = story.get("title", story_id)
|
|
120
|
+
bcps = story.get("bcps", 0)
|
|
121
|
+
status = story.get("status", "backlog")
|
|
122
|
+
risk_max = story.get("risk_max", "none")
|
|
123
|
+
security_max = story.get("security_max", "none")
|
|
124
|
+
|
|
125
|
+
# Enrich with cycle-times data
|
|
126
|
+
ct_data = ct_lookup.get(story_id, {})
|
|
127
|
+
cycle_minutes = ct_data.get("cycle_minutes", 0)
|
|
128
|
+
bcp_per_hour = ct_data.get("bcp_per_hour", 0)
|
|
129
|
+
|
|
130
|
+
# Time: cycle_minutes * 60 for seconds in Allure display
|
|
131
|
+
time_seconds = cycle_minutes * 60.0 if cycle_minutes else 0.0
|
|
132
|
+
|
|
133
|
+
testcase = ET.SubElement(testsuite, "testcase", {
|
|
134
|
+
"classname": epic_id,
|
|
135
|
+
"name": f"{story_id}: {title}",
|
|
136
|
+
"time": str(round(time_seconds, 3)),
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
props = ET.SubElement(testcase, "properties")
|
|
140
|
+
ET.SubElement(props, "property", {"name": "risk", "value": risk_max})
|
|
141
|
+
ET.SubElement(props, "property", {"name": "security", "value": security_max})
|
|
142
|
+
ET.SubElement(props, "property", {"name": "bcps", "value": str(bcps)})
|
|
143
|
+
ET.SubElement(props, "property", {"name": "status", "value": status})
|
|
144
|
+
ET.SubElement(props, "property", {"name": "bcp_per_hour", "value": str(bcp_per_hour)})
|
|
145
|
+
ET.SubElement(props, "property", {"name": "lead_time_minutes", "value": str(cycle_minutes)})
|
|
146
|
+
|
|
147
|
+
if status != "done":
|
|
148
|
+
ET.SubElement(testcase, "failure", {
|
|
149
|
+
"message": f"Story {story_id} is {status} [risk={risk_max}, security={security_max}]",
|
|
150
|
+
"type": "StoryIncomplete"
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
tree = ET.ElementTree(testsuite)
|
|
154
|
+
ET.indent(tree, space=" ")
|
|
155
|
+
tree.write(str(out / "junit-results.xml"), encoding="utf-8", xml_declaration=True)
|
|
156
|
+
|
|
157
|
+
# 3. Build categories.json
|
|
158
|
+
epics = exec_status.get("epics", {})
|
|
159
|
+
categories = []
|
|
160
|
+
|
|
161
|
+
for epic_id in sorted(epics.keys()):
|
|
162
|
+
epic = epics[epic_id]
|
|
163
|
+
if isinstance(epic, dict) and epic.get("status") != "done":
|
|
164
|
+
categories.append({
|
|
165
|
+
"name": f"Epic: {epic.get('title', epic_id)}",
|
|
166
|
+
"matchedStatuses": ["failed"],
|
|
167
|
+
"messageRegex": f".*{epic_id}:.*"
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
categories.append({
|
|
171
|
+
"name": "P0 Risk",
|
|
172
|
+
"matchedStatuses": ["failed"],
|
|
173
|
+
"messageRegex": ".*risk.*P0.*"
|
|
174
|
+
})
|
|
175
|
+
categories.append({
|
|
176
|
+
"name": "Security Review",
|
|
177
|
+
"matchedStatuses": ["failed"],
|
|
178
|
+
"messageRegex": ".*security.*(?:medium|high).*"
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
# Add bug-based categories
|
|
182
|
+
bug_list = bugs_registry.get("bugs", [])
|
|
183
|
+
bug_count = len(bug_list) if isinstance(bug_list, list) else 0
|
|
184
|
+
open_bugs = sum(1 for b in bug_list if isinstance(b, dict) and b.get("status") not in ("fixed", "closed", None))
|
|
185
|
+
if open_bugs > 0:
|
|
186
|
+
categories.append({
|
|
187
|
+
"name": "Open Bugs",
|
|
188
|
+
"matchedStatuses": ["failed"],
|
|
189
|
+
"messageRegex": ".*Bug.*"
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
(out / "categories.json").write_text(json.dumps(categories, indent=2))
|
|
193
|
+
|
|
194
|
+
# 4. Build executor.json
|
|
195
|
+
rl = release_plan.get("release", {}) if isinstance(release_plan.get("release"), dict) else {}
|
|
196
|
+
executor = {
|
|
197
|
+
"name": "bigpowers",
|
|
198
|
+
"type": "bigpowers",
|
|
199
|
+
"buildName": rl.get("version", "unknown") if isinstance(rl, dict) else "unknown",
|
|
200
|
+
"buildOrder": len(exec_status.get("development_status", {})),
|
|
201
|
+
}
|
|
202
|
+
(out / "executor.json").write_text(json.dumps(executor, indent=2))
|
|
203
|
+
|
|
204
|
+
# Summary
|
|
205
|
+
epic_count = len([e for e in epics.values() if isinstance(e, dict) and e.get("status") == "done"])
|
|
206
|
+
total_epics = len(epics)
|
|
207
|
+
print(f"generate-allure-report: {total_stories} stories, {epic_count}/{total_epics} epics done, {bug_count} bugs")
|
|
208
|
+
print(f" -> {out}/junit-results.xml")
|
|
209
|
+
print(f" -> {out}/categories.json")
|
|
210
|
+
print(f" -> {out}/executor.json")
|
|
211
|
+
PY
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## JUnit XML Schema
|
|
215
|
+
|
|
216
|
+
```xml
|
|
217
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
218
|
+
<testsuite name="bigpowers-epic-progress" tests="N" failures="F" errors="0" skipped="0">
|
|
219
|
+
<testcase classname="e01" name="e01s01: Security slopcheck tags" time="0.75">
|
|
220
|
+
<properties>
|
|
221
|
+
<property name="risk" value="none"/>
|
|
222
|
+
<property name="security" value="none"/>
|
|
223
|
+
<property name="bcps" value="1"/>
|
|
224
|
+
<property name="status" value="done"/>
|
|
225
|
+
<property name="bcp_per_hour" value="1.3"/>
|
|
226
|
+
<property name="lead_time_minutes" value="45"/>
|
|
227
|
+
</properties>
|
|
228
|
+
</testcase>
|
|
229
|
+
<testcase classname="e01" name="e01s99: Some incomplete story" time="0.0">
|
|
230
|
+
<properties>...</properties>
|
|
231
|
+
<failure message="Story e01s99 is backlog [risk=P0, security=high]" type="StoryIncomplete"/>
|
|
232
|
+
</testcase>
|
|
233
|
+
</testsuite>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Categories JSON Schema
|
|
237
|
+
|
|
238
|
+
```json
|
|
239
|
+
[
|
|
240
|
+
{
|
|
241
|
+
"name": "Epic: Quality Core - Skill Hardening",
|
|
242
|
+
"matchedStatuses": ["failed"],
|
|
243
|
+
"messageRegex": ".*e45:.*"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"name": "P0 Risk",
|
|
247
|
+
"matchedStatuses": ["failed"],
|
|
248
|
+
"messageRegex": ".*risk.*P0.*"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"name": "Security Review",
|
|
252
|
+
"matchedStatuses": ["failed"],
|
|
253
|
+
"messageRegex": ".*security.*(?:medium|high).*"
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Executor JSON Schema
|
|
259
|
+
|
|
260
|
+
```json
|
|
261
|
+
{
|
|
262
|
+
"name": "bigpowers",
|
|
263
|
+
"type": "bigpowers",
|
|
264
|
+
"buildName": "2.76.2",
|
|
265
|
+
"buildOrder": 400
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Example Usage
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# Generate reports
|
|
273
|
+
bash scripts/generate-allure-report.sh
|
|
274
|
+
|
|
275
|
+
# Verify output
|
|
276
|
+
test -f allure-results/junit-results.xml && echo "JUnit OK"
|
|
277
|
+
test -f allure-results/categories.json && echo "Categories OK"
|
|
278
|
+
test -f allure-results/executor.json && echo "Executor OK"
|
|
279
|
+
|
|
280
|
+
# Serve with Allure
|
|
281
|
+
allure serve allure-results/
|
|
282
|
+
|
|
283
|
+
# Or open the Allure TestOps UI
|
|
284
|
+
allure open allure-results/
|
|
285
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-me
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "Interactive assumption-surfacing Q&A that stress-tests a plan through relentless questioning until every decision is resolved. Use when user wants to challenge a plan, validate decisions from conversation/context, or mentions \"grill me\". For doc-grounded variant, use grill-with-docs."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Grill Me
|
|
8
|
+
|
|
9
|
+
> **Use this vs grill-with-docs:** `grill-me` surfaces assumptions from the conversation and context alone — no documentation fetching. Use `grill-with-docs` (the doc-grounded variant) when the plan relies on a specific library or external API and every challenge must cite a real doc URL.
|
|
10
|
+
|
|
11
|
+
Two modes. Default is **Design**. Switch to **Docs** by saying "grill me with docs" or when the plan relies on a specific library or external API.
|
|
12
|
+
|
|
13
|
+
> **HARD GATE** — Do NOT accept a design until every hard decision has been stress-tested. "Seems right" is not a decision. Grilling must identify and resolve tensions before build begins.
|
|
14
|
+
|
|
15
|
+
## Design mode (default)
|
|
16
|
+
|
|
17
|
+
Interview relentlessly about every aspect of this plan until reaching shared understanding. Walk each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. Ask one question at a time.
|
|
18
|
+
|
|
19
|
+
If a question can be answered by exploring the codebase, explore it instead.
|
|
20
|
+
|
|
21
|
+
### Facts vs. Decisions Boundary
|
|
22
|
+
|
|
23
|
+
Distinguish between **facts** and **decisions**:
|
|
24
|
+
- **Facts** — things discoverable by exploring the codebase, reading docs, or checking APIs. Do not ask the user to confirm facts; find them yourself.
|
|
25
|
+
- **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
|
|
26
|
+
|
|
27
|
+
Never "grill yourself" — if the answer is in the code, go find it. Only ask questions where the user's judgment is needed.
|
|
28
|
+
|
|
29
|
+
## Docs mode
|
|
30
|
+
|
|
31
|
+
Ground every challenge in real documentation — no assumption about a library's behavior goes unchecked. See [REFERENCE.md](REFERENCE.md) for the full process.
|
|
32
|
+
|
|
33
|
+
Short form:
|
|
34
|
+
1. List every external library, third-party API, and framework behavior relied upon.
|
|
35
|
+
2. Fetch the actual docs for each (`WebFetch` the official API reference).
|
|
36
|
+
3. Challenge each plan assumption against the real docs: correct method signature? right version? deprecated?
|
|
37
|
+
4. Report confirmed ✓, corrected ✗ (with the real behavior), and uncertain → `spike-prototype`.
|
|
38
|
+
5. Update the plan for each confirmed discrepancy.
|
|
39
|
+
|
|
40
|
+
## Confirmation Gate
|
|
41
|
+
|
|
42
|
+
> **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# Docs Mode — Full Process
|
|
47
|
+
|
|
48
|
+
Triggered by "grill me with docs" or when a plan depends on a specific library or external API.
|
|
49
|
+
|
|
50
|
+
**Why this matters:** AI agents hallucinate API methods, argument orders, and behaviors. Every assumption about an external dependency must be validated against the actual docs before code is written.
|
|
51
|
+
|
|
52
|
+
## Step 1 — Identify the dependencies
|
|
53
|
+
|
|
54
|
+
From the plan or conversation, list:
|
|
55
|
+
- Every external library being used
|
|
56
|
+
- Every third-party API being called
|
|
57
|
+
- Every framework behavior being relied upon
|
|
58
|
+
|
|
59
|
+
Ask: "Which of these are you most confident about? Which are you less sure of?"
|
|
60
|
+
|
|
61
|
+
## Step 2 — Fetch the relevant docs
|
|
62
|
+
|
|
63
|
+
For each dependency, fetch the actual documentation:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
WebFetch the official docs for [library/API]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Prioritize:
|
|
70
|
+
- The API reference for the specific method being used
|
|
71
|
+
- The changelog for the version in use (breaking changes)
|
|
72
|
+
- Migration guides if upgrading from a previous version
|
|
73
|
+
- Known gotchas / FAQ sections
|
|
74
|
+
|
|
75
|
+
## Step 3 — Challenge each assumption
|
|
76
|
+
|
|
77
|
+
For every assumption in the plan, find the corresponding doc section and ask:
|
|
78
|
+
|
|
79
|
+
- "Does the real API actually work this way? Show me the doc."
|
|
80
|
+
- "Is this method available in the version you're using?"
|
|
81
|
+
- "Does this argument order match the actual signature?"
|
|
82
|
+
- "Are there rate limits, quotas, or timeout behaviors that affect this design?"
|
|
83
|
+
- "Is this marked as deprecated in the current version?"
|
|
84
|
+
|
|
85
|
+
Ask one question at a time. For each challenge, cite the specific URL and section.
|
|
86
|
+
|
|
87
|
+
## Step 4 — Surface hallucinations
|
|
88
|
+
|
|
89
|
+
When an assumption doesn't match the docs:
|
|
90
|
+
|
|
91
|
+
> "Your plan uses `library.doThing(a, b)` but the [docs](https://example.com/api-reference) show the signature is `doThing(config: {a, b})` with a config object. This will fail at runtime."
|
|
92
|
+
|
|
93
|
+
Document each discrepancy clearly.
|
|
94
|
+
|
|
95
|
+
## Step 5 — Update the plan
|
|
96
|
+
|
|
97
|
+
For each confirmed discrepancy, recommend a concrete fix:
|
|
98
|
+
- Correct method signature
|
|
99
|
+
- Correct argument order
|
|
100
|
+
- Alternative approach that matches what the library actually supports
|
|
101
|
+
- Whether a spike (`spike-prototype`) is needed to validate a remaining uncertainty
|
|
102
|
+
|
|
103
|
+
## Step 6 — Sign off
|
|
104
|
+
|
|
105
|
+
When all major assumptions have been validated against docs, report:
|
|
106
|
+
- Which assumptions were confirmed ✓
|
|
107
|
+
- Which were corrected ✗ + what the correct approach is
|
|
108
|
+
- Which remain uncertain → recommend `spike-prototype`
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-with-docs
|
|
3
|
+
model: opus
|
|
4
|
+
description: "Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Grill With Docs
|
|
8
|
+
|
|
9
|
+
> **Use this vs grill-me:** `grill-with-docs` is the doc-grounded variant of `grill-me`. Use it when the plan relies on external libraries or APIs and every challenge must be grounded in and cite a real documentation URL. Use `grill-me` for context-only assumption surfacing without fetching docs.
|
|
10
|
+
|
|
11
|
+
> **HARD GATE** — Every challenge must cite a real documentation URL. No hallucinated APIs.
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
1. Read the plan or design under test (`specs/release-plan.yaml + epic shards`, INTERFACE-OPTIONS.md, etc.).
|
|
16
|
+
2. List assumptions that depend on external libraries or APIs.
|
|
17
|
+
3. For each assumption: fetch or quote official docs; challenge with "docs say X, plan says Y."
|
|
18
|
+
4. Resolve or update the plan inline; unresolved items block `plan-work`.
|
|
19
|
+
|
|
20
|
+
## Docs mode rules
|
|
21
|
+
|
|
22
|
+
- Cite URL + quoted snippet (method name, parameter, version).
|
|
23
|
+
- If docs contradict the plan, plan loses until updated.
|
|
24
|
+
- Prefer official docs over blog posts.
|
|
25
|
+
|
|
26
|
+
## Facts vs. Decisions Boundary
|
|
27
|
+
|
|
28
|
+
Distinguish between **facts** and **decisions**:
|
|
29
|
+
- **Facts** — things discoverable by reading docs, checking APIs, or exploring the codebase. Do not ask the user to confirm facts; find them yourself.
|
|
30
|
+
- **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
|
|
31
|
+
|
|
32
|
+
Never "grill yourself" — if the answer is in the docs, go fetch it. Only ask questions where the user's judgment is needed.
|
|
33
|
+
|
|
34
|
+
## Confirmation Gate
|
|
35
|
+
|
|
36
|
+
> **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
|
|
37
|
+
|
|
38
|
+
## Verify
|
|
39
|
+
|
|
40
|
+
→ verify: `test -f skills/grill-with-docs/SKILL.md && test -f skills/grill-with-docs/REFERENCE.md`
|
|
41
|
+
|
|
42
|
+
See [REFERENCE.md](REFERENCE.md) for question templates.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<!-- story: e03s01 -->
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# Grill With Docs — Question templates
|
|
50
|
+
|
|
51
|
+
- "Docs at [URL] show signature `foo(bar?: Baz)`. Your plan calls `foo(bar, baz)` — which is correct?"
|
|
52
|
+
- "The changelog at [URL] deprecates X in v3. Your plan still uses X — migrate or pin version?"
|
|
53
|
+
- "Error handling in [URL] throws `NetworkError`. Your plan catches `Error` only — is that sufficient?"
|