bigpowers 2.82.4 → 2.83.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/align-grid/SKILL.md +110 -0
- package/.agents/skills/assess-impact/SKILL.md +91 -0
- package/.agents/skills/audit-code/SKILL.md +187 -0
- package/.agents/skills/audit-plan/SKILL.md +89 -0
- package/.agents/skills/build-epic/SKILL.md +105 -0
- package/.agents/skills/change-request/SKILL.md +121 -0
- package/.agents/skills/commit-message/SKILL.md +140 -0
- package/.agents/skills/compose-workflow/SKILL.md +82 -0
- package/.agents/skills/context7-mcp/SKILL.md +55 -0
- package/.agents/skills/craft-skill/SKILL.md +179 -0
- package/.agents/skills/deepen-architecture/SKILL.md +260 -0
- package/.agents/skills/define-language/SKILL.md +80 -0
- package/.agents/skills/define-success/SKILL.md +65 -0
- package/.agents/skills/delegate-task/SKILL.md +91 -0
- package/.agents/skills/deploy/SKILL.md +198 -0
- package/.agents/skills/design-interface/SKILL.md +97 -0
- package/.agents/skills/develop-tdd/SKILL.md +406 -0
- package/.agents/skills/diagnose-root/SKILL.md +24 -0
- package/.agents/skills/diagnose-stall/SKILL.md +54 -0
- package/.agents/skills/dispatch-agents/SKILL.md +118 -0
- package/.agents/skills/edit-document/SKILL.md +23 -0
- package/.agents/skills/elaborate-spec/SKILL.md +101 -0
- package/.agents/skills/enforce-first/SKILL.md +32 -0
- package/.agents/skills/evolve-skill/SKILL.md +55 -0
- package/.agents/skills/execute-plan/SKILL.md +61 -0
- package/.agents/skills/extract-design/SKILL.md +132 -0
- package/.agents/skills/find-way/SKILL.md +191 -0
- package/.agents/skills/fix-bug/SKILL.md +67 -0
- package/.agents/skills/gate-trace/SKILL.md +88 -0
- package/.agents/skills/generate-allure-report/SKILL.md +285 -0
- package/.agents/skills/grill-me/SKILL.md +96 -0
- package/.agents/skills/grill-with-docs/SKILL.md +41 -0
- package/.agents/skills/guard-git/SKILL.md +231 -0
- package/.agents/skills/harden-vps/SKILL.md +288 -0
- package/.agents/skills/hook-commits/SKILL.md +94 -0
- package/.agents/skills/inspect-quality/SKILL.md +106 -0
- package/.agents/skills/investigate-bug/SKILL.md +127 -0
- package/.agents/skills/kickoff-branch/SKILL.md +143 -0
- package/.agents/skills/maintain-wiki/SKILL.md +64 -0
- package/.agents/skills/map-codebase/SKILL.md +71 -0
- package/.agents/skills/migrate-spec/SKILL.md +862 -0
- package/.agents/skills/model-domain/SKILL.md +232 -0
- package/.agents/skills/orchestrate-project/SKILL.md +174 -0
- package/.agents/skills/organize-workspace/SKILL.md +164 -0
- package/.agents/skills/plan-refactor/SKILL.md +87 -0
- package/.agents/skills/plan-release/SKILL.md +145 -0
- package/.agents/skills/plan-tests/SKILL.md +75 -0
- package/.agents/skills/plan-work/SKILL.md +260 -0
- package/.agents/skills/publish-package/SKILL.md +328 -0
- package/.agents/skills/quick-fix/SKILL.md +114 -0
- package/.agents/skills/release-branch/SKILL.md +298 -0
- package/.agents/skills/request-review/SKILL.md +112 -0
- package/.agents/skills/research-first/SKILL.md +87 -0
- package/.agents/skills/reset-baseline/SKILL.md +21 -0
- package/.agents/skills/respond-review/SKILL.md +71 -0
- package/.agents/skills/run-benchmark/SKILL.md +85 -0
- package/.agents/skills/run-evals/SKILL.md +80 -0
- package/.agents/skills/run-planning/SKILL.md +101 -0
- package/.agents/skills/scope-work/SKILL.md +63 -0
- package/.agents/skills/search-skills/SKILL.md +73 -0
- package/.agents/skills/security-review/SKILL.md +384 -0
- package/.agents/skills/seed-conventions/SKILL.md +285 -0
- package/.agents/skills/session-state/SKILL.md +146 -0
- package/.agents/skills/setup-environment/SKILL.md +39 -0
- package/.agents/skills/simulate-agents/SKILL.md +26 -0
- package/.agents/skills/slice-tasks/SKILL.md +68 -0
- package/.agents/skills/smoke-test/SKILL.md +242 -0
- package/.agents/skills/spike-prototype/SKILL.md +95 -0
- package/.agents/skills/stocktake-skills/SKILL.md +72 -0
- package/.agents/skills/survey-context/SKILL.md +135 -0
- package/.agents/skills/terse-mode/SKILL.md +42 -0
- package/.agents/skills/trace-requirement/SKILL.md +69 -0
- package/.agents/skills/using-bigpowers/SKILL.md +111 -0
- package/.agents/skills/validate-contracts/SKILL.md +309 -0
- package/.agents/skills/validate-fix/SKILL.md +106 -0
- package/.agents/skills/verify-work/SKILL.md +191 -0
- package/.agents/skills/visual-dashboard/SKILL.md +50 -0
- package/.agents/skills/wire-ci/SKILL.md +375 -0
- package/.agents/skills/wire-observability/SKILL.md +97 -0
- package/.agents/skills/write-document/SKILL.md +255 -0
- package/.hermes/skills/align-grid/SKILL.md +110 -0
- package/.hermes/skills/assess-impact/SKILL.md +91 -0
- package/.hermes/skills/audit-code/SKILL.md +187 -0
- package/.hermes/skills/audit-plan/SKILL.md +89 -0
- package/.hermes/skills/build-epic/SKILL.md +105 -0
- package/.hermes/skills/change-request/SKILL.md +121 -0
- package/.hermes/skills/commit-message/SKILL.md +140 -0
- package/.hermes/skills/compose-workflow/SKILL.md +82 -0
- package/.hermes/skills/context7-mcp/SKILL.md +55 -0
- package/.hermes/skills/craft-skill/SKILL.md +179 -0
- package/.hermes/skills/deepen-architecture/SKILL.md +260 -0
- package/.hermes/skills/define-language/SKILL.md +80 -0
- package/.hermes/skills/define-success/SKILL.md +65 -0
- package/.hermes/skills/delegate-task/SKILL.md +91 -0
- package/.hermes/skills/deploy/SKILL.md +198 -0
- package/.hermes/skills/design-interface/SKILL.md +97 -0
- package/.hermes/skills/develop-tdd/SKILL.md +406 -0
- package/.hermes/skills/diagnose-root/SKILL.md +24 -0
- package/.hermes/skills/diagnose-stall/SKILL.md +54 -0
- package/.hermes/skills/dispatch-agents/SKILL.md +118 -0
- package/.hermes/skills/edit-document/SKILL.md +23 -0
- package/.hermes/skills/elaborate-spec/SKILL.md +101 -0
- package/.hermes/skills/enforce-first/SKILL.md +32 -0
- package/.hermes/skills/evolve-skill/SKILL.md +55 -0
- package/.hermes/skills/execute-plan/SKILL.md +61 -0
- package/.hermes/skills/extract-design/SKILL.md +132 -0
- package/.hermes/skills/find-way/SKILL.md +191 -0
- package/.hermes/skills/fix-bug/SKILL.md +67 -0
- package/.hermes/skills/gate-trace/SKILL.md +88 -0
- package/.hermes/skills/generate-allure-report/SKILL.md +285 -0
- package/.hermes/skills/grill-me/SKILL.md +96 -0
- package/.hermes/skills/grill-with-docs/SKILL.md +41 -0
- package/.hermes/skills/guard-git/SKILL.md +231 -0
- package/.hermes/skills/harden-vps/SKILL.md +288 -0
- package/.hermes/skills/hook-commits/SKILL.md +94 -0
- package/.hermes/skills/inspect-quality/SKILL.md +106 -0
- package/.hermes/skills/investigate-bug/SKILL.md +127 -0
- package/.hermes/skills/kickoff-branch/SKILL.md +143 -0
- package/.hermes/skills/maintain-wiki/SKILL.md +64 -0
- package/.hermes/skills/map-codebase/SKILL.md +71 -0
- package/.hermes/skills/migrate-spec/SKILL.md +862 -0
- package/.hermes/skills/model-domain/SKILL.md +232 -0
- package/.hermes/skills/orchestrate-project/SKILL.md +174 -0
- package/.hermes/skills/organize-workspace/SKILL.md +164 -0
- package/.hermes/skills/plan-refactor/SKILL.md +87 -0
- package/.hermes/skills/plan-release/SKILL.md +145 -0
- package/.hermes/skills/plan-tests/SKILL.md +75 -0
- package/.hermes/skills/plan-work/SKILL.md +260 -0
- package/.hermes/skills/publish-package/SKILL.md +328 -0
- package/.hermes/skills/quick-fix/SKILL.md +114 -0
- package/.hermes/skills/release-branch/SKILL.md +298 -0
- package/.hermes/skills/request-review/SKILL.md +112 -0
- package/.hermes/skills/research-first/SKILL.md +87 -0
- package/.hermes/skills/reset-baseline/SKILL.md +21 -0
- package/.hermes/skills/respond-review/SKILL.md +71 -0
- package/.hermes/skills/run-benchmark/SKILL.md +85 -0
- package/.hermes/skills/run-evals/SKILL.md +80 -0
- package/.hermes/skills/run-planning/SKILL.md +101 -0
- package/.hermes/skills/scope-work/SKILL.md +63 -0
- package/.hermes/skills/search-skills/SKILL.md +73 -0
- package/.hermes/skills/security-review/SKILL.md +384 -0
- package/.hermes/skills/seed-conventions/SKILL.md +285 -0
- package/.hermes/skills/session-state/SKILL.md +146 -0
- package/.hermes/skills/setup-environment/SKILL.md +39 -0
- package/.hermes/skills/simulate-agents/SKILL.md +26 -0
- package/.hermes/skills/slice-tasks/SKILL.md +68 -0
- package/.hermes/skills/smoke-test/SKILL.md +242 -0
- package/.hermes/skills/spike-prototype/SKILL.md +95 -0
- package/.hermes/skills/stocktake-skills/SKILL.md +72 -0
- package/.hermes/skills/survey-context/SKILL.md +135 -0
- package/.hermes/skills/terse-mode/SKILL.md +42 -0
- package/.hermes/skills/trace-requirement/SKILL.md +69 -0
- package/.hermes/skills/using-bigpowers/SKILL.md +111 -0
- package/.hermes/skills/validate-contracts/SKILL.md +309 -0
- package/.hermes/skills/validate-fix/SKILL.md +106 -0
- package/.hermes/skills/verify-work/SKILL.md +191 -0
- package/.hermes/skills/visual-dashboard/SKILL.md +50 -0
- package/.hermes/skills/wire-ci/SKILL.md +375 -0
- package/.hermes/skills/wire-observability/SKILL.md +97 -0
- package/.hermes/skills/write-document/SKILL.md +255 -0
- package/.mimocode/skills/align-grid/SKILL.md +110 -0
- package/.mimocode/skills/assess-impact/SKILL.md +91 -0
- package/.mimocode/skills/audit-code/SKILL.md +187 -0
- package/.mimocode/skills/audit-plan/SKILL.md +89 -0
- package/.mimocode/skills/build-epic/SKILL.md +105 -0
- package/.mimocode/skills/change-request/SKILL.md +121 -0
- package/.mimocode/skills/commit-message/SKILL.md +140 -0
- package/.mimocode/skills/compose-workflow/SKILL.md +82 -0
- package/.mimocode/skills/context7-mcp/SKILL.md +55 -0
- package/.mimocode/skills/craft-skill/SKILL.md +179 -0
- package/.mimocode/skills/deepen-architecture/SKILL.md +260 -0
- package/.mimocode/skills/define-language/SKILL.md +80 -0
- package/.mimocode/skills/define-success/SKILL.md +65 -0
- package/.mimocode/skills/delegate-task/SKILL.md +91 -0
- package/.mimocode/skills/deploy/SKILL.md +198 -0
- package/.mimocode/skills/design-interface/SKILL.md +97 -0
- package/.mimocode/skills/develop-tdd/SKILL.md +406 -0
- package/.mimocode/skills/diagnose-root/SKILL.md +24 -0
- package/.mimocode/skills/diagnose-stall/SKILL.md +54 -0
- package/.mimocode/skills/dispatch-agents/SKILL.md +118 -0
- package/.mimocode/skills/edit-document/SKILL.md +23 -0
- package/.mimocode/skills/elaborate-spec/SKILL.md +101 -0
- package/.mimocode/skills/enforce-first/SKILL.md +32 -0
- package/.mimocode/skills/evolve-skill/SKILL.md +55 -0
- package/.mimocode/skills/execute-plan/SKILL.md +61 -0
- package/.mimocode/skills/extract-design/SKILL.md +132 -0
- package/.mimocode/skills/find-way/SKILL.md +191 -0
- package/.mimocode/skills/fix-bug/SKILL.md +67 -0
- package/.mimocode/skills/gate-trace/SKILL.md +88 -0
- package/.mimocode/skills/generate-allure-report/SKILL.md +285 -0
- package/.mimocode/skills/grill-me/SKILL.md +96 -0
- package/.mimocode/skills/grill-with-docs/SKILL.md +41 -0
- package/.mimocode/skills/guard-git/SKILL.md +231 -0
- package/.mimocode/skills/harden-vps/SKILL.md +288 -0
- package/.mimocode/skills/hook-commits/SKILL.md +94 -0
- package/.mimocode/skills/inspect-quality/SKILL.md +106 -0
- package/.mimocode/skills/investigate-bug/SKILL.md +127 -0
- package/.mimocode/skills/kickoff-branch/SKILL.md +143 -0
- package/.mimocode/skills/maintain-wiki/SKILL.md +64 -0
- package/.mimocode/skills/map-codebase/SKILL.md +71 -0
- package/.mimocode/skills/migrate-spec/SKILL.md +862 -0
- package/.mimocode/skills/model-domain/SKILL.md +232 -0
- package/.mimocode/skills/orchestrate-project/SKILL.md +174 -0
- package/.mimocode/skills/organize-workspace/SKILL.md +164 -0
- package/.mimocode/skills/plan-refactor/SKILL.md +87 -0
- package/.mimocode/skills/plan-release/SKILL.md +145 -0
- package/.mimocode/skills/plan-tests/SKILL.md +75 -0
- package/.mimocode/skills/plan-work/SKILL.md +260 -0
- package/.mimocode/skills/publish-package/SKILL.md +328 -0
- package/.mimocode/skills/quick-fix/SKILL.md +114 -0
- package/.mimocode/skills/release-branch/SKILL.md +298 -0
- package/.mimocode/skills/request-review/SKILL.md +112 -0
- package/.mimocode/skills/research-first/SKILL.md +87 -0
- package/.mimocode/skills/reset-baseline/SKILL.md +21 -0
- package/.mimocode/skills/respond-review/SKILL.md +71 -0
- package/.mimocode/skills/run-benchmark/SKILL.md +85 -0
- package/.mimocode/skills/run-evals/SKILL.md +80 -0
- package/.mimocode/skills/run-planning/SKILL.md +101 -0
- package/.mimocode/skills/scope-work/SKILL.md +63 -0
- package/.mimocode/skills/search-skills/SKILL.md +73 -0
- package/.mimocode/skills/security-review/SKILL.md +384 -0
- package/.mimocode/skills/seed-conventions/SKILL.md +285 -0
- package/.mimocode/skills/session-state/SKILL.md +146 -0
- package/.mimocode/skills/setup-environment/SKILL.md +39 -0
- package/.mimocode/skills/simulate-agents/SKILL.md +26 -0
- package/.mimocode/skills/slice-tasks/SKILL.md +68 -0
- package/.mimocode/skills/smoke-test/SKILL.md +242 -0
- package/.mimocode/skills/spike-prototype/SKILL.md +95 -0
- package/.mimocode/skills/stocktake-skills/SKILL.md +72 -0
- package/.mimocode/skills/survey-context/SKILL.md +135 -0
- package/.mimocode/skills/terse-mode/SKILL.md +42 -0
- package/.mimocode/skills/trace-requirement/SKILL.md +69 -0
- package/.mimocode/skills/using-bigpowers/SKILL.md +111 -0
- package/.mimocode/skills/validate-contracts/SKILL.md +309 -0
- package/.mimocode/skills/validate-fix/SKILL.md +106 -0
- package/.mimocode/skills/verify-work/SKILL.md +191 -0
- package/.mimocode/skills/visual-dashboard/SKILL.md +50 -0
- package/.mimocode/skills/wire-ci/SKILL.md +375 -0
- package/.mimocode/skills/wire-observability/SKILL.md +97 -0
- package/.mimocode/skills/write-document/SKILL.md +255 -0
- package/.pi/package.json +1 -1
- package/.zcode/skills/align-grid/SKILL.md +110 -0
- package/.zcode/skills/assess-impact/SKILL.md +91 -0
- package/.zcode/skills/audit-code/SKILL.md +187 -0
- package/.zcode/skills/audit-plan/SKILL.md +89 -0
- package/.zcode/skills/build-epic/SKILL.md +105 -0
- package/.zcode/skills/change-request/SKILL.md +121 -0
- package/.zcode/skills/commit-message/SKILL.md +140 -0
- package/.zcode/skills/compose-workflow/SKILL.md +82 -0
- package/.zcode/skills/context7-mcp/SKILL.md +55 -0
- package/.zcode/skills/craft-skill/SKILL.md +179 -0
- package/.zcode/skills/deepen-architecture/SKILL.md +260 -0
- package/.zcode/skills/define-language/SKILL.md +80 -0
- package/.zcode/skills/define-success/SKILL.md +65 -0
- package/.zcode/skills/delegate-task/SKILL.md +91 -0
- package/.zcode/skills/deploy/SKILL.md +198 -0
- package/.zcode/skills/design-interface/SKILL.md +97 -0
- package/.zcode/skills/develop-tdd/SKILL.md +406 -0
- package/.zcode/skills/diagnose-root/SKILL.md +24 -0
- package/.zcode/skills/diagnose-stall/SKILL.md +54 -0
- package/.zcode/skills/dispatch-agents/SKILL.md +118 -0
- package/.zcode/skills/edit-document/SKILL.md +23 -0
- package/.zcode/skills/elaborate-spec/SKILL.md +101 -0
- package/.zcode/skills/enforce-first/SKILL.md +32 -0
- package/.zcode/skills/evolve-skill/SKILL.md +55 -0
- package/.zcode/skills/execute-plan/SKILL.md +61 -0
- package/.zcode/skills/extract-design/SKILL.md +132 -0
- package/.zcode/skills/find-way/SKILL.md +191 -0
- package/.zcode/skills/fix-bug/SKILL.md +67 -0
- package/.zcode/skills/gate-trace/SKILL.md +88 -0
- package/.zcode/skills/generate-allure-report/SKILL.md +285 -0
- package/.zcode/skills/grill-me/SKILL.md +96 -0
- package/.zcode/skills/grill-with-docs/SKILL.md +41 -0
- package/.zcode/skills/guard-git/SKILL.md +231 -0
- package/.zcode/skills/harden-vps/SKILL.md +288 -0
- package/.zcode/skills/hook-commits/SKILL.md +94 -0
- package/.zcode/skills/inspect-quality/SKILL.md +106 -0
- package/.zcode/skills/investigate-bug/SKILL.md +127 -0
- package/.zcode/skills/kickoff-branch/SKILL.md +143 -0
- package/.zcode/skills/maintain-wiki/SKILL.md +64 -0
- package/.zcode/skills/map-codebase/SKILL.md +71 -0
- package/.zcode/skills/migrate-spec/SKILL.md +862 -0
- package/.zcode/skills/model-domain/SKILL.md +232 -0
- package/.zcode/skills/orchestrate-project/SKILL.md +174 -0
- package/.zcode/skills/organize-workspace/SKILL.md +164 -0
- package/.zcode/skills/plan-refactor/SKILL.md +87 -0
- package/.zcode/skills/plan-release/SKILL.md +145 -0
- package/.zcode/skills/plan-tests/SKILL.md +75 -0
- package/.zcode/skills/plan-work/SKILL.md +260 -0
- package/.zcode/skills/publish-package/SKILL.md +328 -0
- package/.zcode/skills/quick-fix/SKILL.md +114 -0
- package/.zcode/skills/release-branch/SKILL.md +298 -0
- package/.zcode/skills/request-review/SKILL.md +112 -0
- package/.zcode/skills/research-first/SKILL.md +87 -0
- package/.zcode/skills/reset-baseline/SKILL.md +21 -0
- package/.zcode/skills/respond-review/SKILL.md +71 -0
- package/.zcode/skills/run-benchmark/SKILL.md +85 -0
- package/.zcode/skills/run-evals/SKILL.md +80 -0
- package/.zcode/skills/run-planning/SKILL.md +101 -0
- package/.zcode/skills/scope-work/SKILL.md +63 -0
- package/.zcode/skills/search-skills/SKILL.md +73 -0
- package/.zcode/skills/security-review/SKILL.md +384 -0
- package/.zcode/skills/seed-conventions/SKILL.md +285 -0
- package/.zcode/skills/session-state/SKILL.md +146 -0
- package/.zcode/skills/setup-environment/SKILL.md +39 -0
- package/.zcode/skills/simulate-agents/SKILL.md +26 -0
- package/.zcode/skills/slice-tasks/SKILL.md +68 -0
- package/.zcode/skills/smoke-test/SKILL.md +242 -0
- package/.zcode/skills/spike-prototype/SKILL.md +95 -0
- package/.zcode/skills/stocktake-skills/SKILL.md +72 -0
- package/.zcode/skills/survey-context/SKILL.md +135 -0
- package/.zcode/skills/terse-mode/SKILL.md +42 -0
- package/.zcode/skills/trace-requirement/SKILL.md +69 -0
- package/.zcode/skills/using-bigpowers/SKILL.md +111 -0
- package/.zcode/skills/validate-contracts/SKILL.md +309 -0
- package/.zcode/skills/validate-fix/SKILL.md +106 -0
- package/.zcode/skills/verify-work/SKILL.md +191 -0
- package/.zcode/skills/visual-dashboard/SKILL.md +50 -0
- package/.zcode/skills/wire-ci/SKILL.md +375 -0
- package/.zcode/skills/wire-observability/SKILL.md +97 -0
- package/.zcode/skills/write-document/SKILL.md +255 -0
- package/CHANGELOG.md +27 -0
- package/bin/setup.js +27 -5
- package/package.json +1 -1
- package/scripts/adapters/agy.sh +44 -1
- package/scripts/adapters/gemini.sh +83 -0
- package/scripts/adapters/hermes.sh +53 -1
- package/scripts/adapters/mimo.sh +41 -0
- package/scripts/adapters/zcode.sh +37 -0
- package/scripts/hooks/hermes/gateway/session-log/HOOK.yaml +5 -0
- package/scripts/hooks/hermes/gateway/session-log/handler.py +7 -0
- package/scripts/hooks/hermes/plugin/guard-git-plugin.py +14 -0
- package/scripts/hooks/hermes/shell/block-dangerous-terminal.sh +23 -0
- package/scripts/hooks/hermes/shell/hooks-config.example.yaml +7 -0
- package/scripts/install-cursor-skills-local.sh +8 -6
- package/scripts/install-cursor-skills.sh +15 -25
- package/scripts/install.sh +211 -13
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/golden-suite-gates.sh +2 -1
- package/scripts/lib/install-helpers.js +207 -12
- package/scripts/lib/sync-render.sh +43 -0
- package/scripts/lib/target-contracts.sh +22 -0
- package/scripts/targets.yaml +31 -1
- package/scripts/test-agy-hub.sh +59 -0
- package/scripts/test-gemini-adapter.sh +70 -0
- package/scripts/test-gemini-hub.sh +55 -0
- package/scripts/test-hermes-adapter.sh +85 -0
- package/scripts/test-hermes-hub.sh +51 -0
- package/scripts/test-install-helpers.js +103 -0
- package/scripts/test-install-helpers.sh +7 -0
- package/scripts/test-mimo-hub.sh +51 -0
- package/scripts/test-zcode-hub.sh +51 -0
- package/scripts/verify-install.sh +31 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wire-ci
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "CI pipeline setup with pre-built templates and local validation. Generates GitHub Actions workflows, validates YAML syntax and permissions, supports dry-run via act/gh. The CI equivalent of wire-observability."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Wire CI
|
|
8
|
+
|
|
9
|
+
> **HARD GATE** — Do not ship a project without CI. Run this skill before first merge to main or when adding CI to an existing project.
|
|
10
|
+
>
|
|
11
|
+
> **HARD GATE** — CI that is untestable locally will break every cycle. Always run `--validate` after generating workflows and `--dry-run` before pushing.
|
|
12
|
+
|
|
13
|
+
Generate, validate, and test CI workflows. Detects your project type, produces platform-appropriate GitHub Actions configurations, and provides local verification to catch auth, permissions, and syntax issues before they reach CI.
|
|
14
|
+
|
|
15
|
+
## What this sets up
|
|
16
|
+
|
|
17
|
+
1. **CI workflow** — `.github/workflows/ci.yaml` with test, lint, typecheck, build steps
|
|
18
|
+
2. **Release workflow** — `.github/workflows/release.yaml` with semantic-release (if applicable)
|
|
19
|
+
3. **`--validate` mode** — checks YAML syntax, workflow permissions, required secrets, and common pitfalls
|
|
20
|
+
4. **`--dry-run` mode** — runs workflows locally via `act` or `gh workflow run` to prove correctness before push
|
|
21
|
+
5. **Failure pattern documentation** — common CI failure categories and their fixes
|
|
22
|
+
|
|
23
|
+
## Process
|
|
24
|
+
|
|
25
|
+
### 1. Detect project type
|
|
26
|
+
|
|
27
|
+
Read the project root for manifest files to determine which template to use:
|
|
28
|
+
|
|
29
|
+
| Manifest | Type | Template |
|
|
30
|
+
|----------|------|----------|
|
|
31
|
+
| `Cargo.toml` | Rust | Rust CI: test, clippy, fmt, build |
|
|
32
|
+
| `package.json` | Node | Node CI: test, lint, typecheck, build |
|
|
33
|
+
| `setup.py` / `pyproject.toml` | Python | Python CI: pytest, ruff/mypy/flake8, build |
|
|
34
|
+
| `go.mod` | Go | Go CI: test, vet, staticcheck, build |
|
|
35
|
+
| `CMakeLists.txt` | C/C++ | C/C++ CI: cmake build, ctest |
|
|
36
|
+
| Multiple detected | Polyglot | Combined workflows or error if ambiguous |
|
|
37
|
+
|
|
38
|
+
If no manifest is found, prompt the user to specify the type or pass `--type <rust|node|python|go|cpp>`.
|
|
39
|
+
|
|
40
|
+
### 2. Generate CI workflow
|
|
41
|
+
|
|
42
|
+
Create `.github/workflows/ci.yaml` with standard steps derived from the project type and its manifest:
|
|
43
|
+
|
|
44
|
+
**Rust template (`Cargo.toml`):**
|
|
45
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
46
|
+
|
|
47
|
+
**Node template (`package.json`):**
|
|
48
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
49
|
+
|
|
50
|
+
**Python template (`setup.py` / `pyproject.toml`):**
|
|
51
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
52
|
+
|
|
53
|
+
**Go template (`go.mod`):**
|
|
54
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
55
|
+
|
|
56
|
+
**C/C++ template (`CMakeLists.txt`):**
|
|
57
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
58
|
+
|
|
59
|
+
### 3. Generate release workflow (if semantic-release detected)
|
|
60
|
+
|
|
61
|
+
If the project has semantic-release configured (in `package.json`, `.releaserc`, or `release.config.js`), also generate `.github/workflows/release.yaml`:
|
|
62
|
+
|
|
63
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
64
|
+
|
|
65
|
+
> **NPM_TOKEN is required** for publishing to npm. Without it, semantic-release will fail at the publish step. See `--validate` to check this.
|
|
66
|
+
|
|
67
|
+
### 4. Validate workflows (`--validate`)
|
|
68
|
+
|
|
69
|
+
Run `wire-ci --validate` to check all generated workflow files:
|
|
70
|
+
|
|
71
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
72
|
+
|
|
73
|
+
**Exit codes:**
|
|
74
|
+
- `0` — all checks pass (no errors)
|
|
75
|
+
- `1` — YAML syntax errors found
|
|
76
|
+
- `2` — validation warnings only (missing permissions, secrets, etc.)
|
|
77
|
+
|
|
78
|
+
### 5. Dry-run workflows (`--dry-run`)
|
|
79
|
+
|
|
80
|
+
Attempt to run the generated workflows locally to catch errors before push:
|
|
81
|
+
|
|
82
|
+
See [REFERENCE.md](REFERENCE.md)
|
|
83
|
+
|
|
84
|
+
> **act** runs workflows in a local Docker environment — the most accurate pre-push validation.
|
|
85
|
+
> **gh workflow run** sends the workflow to GitHub but doesn't execute locally — useful for checking YAML parsing but not for testing the actual steps.
|
|
86
|
+
|
|
87
|
+
### 6. Document common CI failure patterns
|
|
88
|
+
|
|
89
|
+
Add the following to the project's documentation or CLAUDE.md after setup:
|
|
90
|
+
|
|
91
|
+
| Failure | Cause | Fix |
|
|
92
|
+
|---------|-------|-----|
|
|
93
|
+
| `npm publish` fails | `NPM_TOKEN` not set as repo secret | Add `NPM_TOKEN` to GitHub repo secrets |
|
|
94
|
+
| `semantic-release` fails on push | Missing `permissions: contents: write` | Add `permissions: contents: write` to release job |
|
|
95
|
+
| `cargo publish` auth fail | `CARGO_REGISTRY_TOKEN` not set | Add token to `~/.cargo/config.toml` or env |
|
|
96
|
+
| `go vet` fails | Go version mismatch | Match `go.mod` `go` directive with setup-go version |
|
|
97
|
+
| `cargo clippy` errors | New lints in Rust nightly | `cargo clippy --fix` or allow specific lints |
|
|
98
|
+
| `act` not found | Docker not running or act not installed | `brew install act` / `docker ps` to verify Docker |
|
|
99
|
+
| Hardcoded Node version stale | `.nvmrc` exists but workflow uses hardcoded version | Use `node-version-file: .nvmrc` instead |
|
|
100
|
+
|
|
101
|
+
## Verify
|
|
102
|
+
|
|
103
|
+
→ verify: `grep -ci "template\|workflow\|validate\|dry.run" skills/wire-ci/SKILL.md | awk '{if($1>=3) print "OK: semantics"; else print "FAIL: missing"}'`
|
|
104
|
+
→ verify: `grep -q "wire-ci" SKILL-INDEX.md && echo "OK: in SKILL-INDEX" || echo "FAIL: not indexed"`
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
# Wire Ci — Reference
|
|
109
|
+
|
|
110
|
+
## Navigation
|
|
111
|
+
|
|
112
|
+
| Lines | Section |
|
|
113
|
+
|-------|---------|
|
|
114
|
+
| 1 | Title |
|
|
115
|
+
| 3–14 | Navigation |
|
|
116
|
+
| 16–38 | Examples |
|
|
117
|
+
| 40–52 | Options |
|
|
118
|
+
| 54–62 | Integration with build-epic |
|
|
119
|
+
| 64–270 | Reference blocks 1–8 |
|
|
120
|
+
|
|
121
|
+
## Examples
|
|
122
|
+
|
|
123
|
+
### Create CI for a Rust project
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Detect from Cargo.toml, generate workflows
|
|
127
|
+
wire-ci
|
|
128
|
+
|
|
129
|
+
# Validate generated workflows
|
|
130
|
+
wire-ci --validate
|
|
131
|
+
|
|
132
|
+
# Run locally with act
|
|
133
|
+
wire-ci --dry-run
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Create CI for a Node project with semantic-release
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
wire-ci
|
|
140
|
+
wire-ci --validate
|
|
141
|
+
# Expect warning: "npm publish step found but no NPM_TOKEN in secrets"
|
|
142
|
+
# Fix: add NPM_TOKEN to repo secrets
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Validate existing workflows (no generation)
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
wire-ci --validate --check-only
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Options
|
|
155
|
+
|
|
156
|
+
| Flag | Description |
|
|
157
|
+
|------|-------------|
|
|
158
|
+
| `--validate` | Check YAML syntax, permissions, secrets, common pitfalls |
|
|
159
|
+
| `--dry-run` | Run workflows locally via `act` or dispatch via `gh` |
|
|
160
|
+
| `--check-only` | Only validate, do not generate new files |
|
|
161
|
+
| `--type <type>` | Force project type (skip auto-detection) |
|
|
162
|
+
| `--force` | Overwrite existing workflow files |
|
|
163
|
+
| `--no-release` | Skip release workflow generation even if semantic-release detected |
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Integration with build-epic
|
|
169
|
+
|
|
170
|
+
When `wire-ci` is used as part of `build-epic`:
|
|
171
|
+
|
|
172
|
+
1. **During develop-tdd**: If the task modifies `.github/workflows/`, run `wire-ci --validate` as a CI dry-run sub-step
|
|
173
|
+
2. **During release-branch**: After push, run `gh run list --limit 1 --branch main --json status,conclusion` to verify CI passes
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Reference block 1
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
name: CI
|
|
181
|
+
on: [push, pull_request]
|
|
182
|
+
jobs:
|
|
183
|
+
test:
|
|
184
|
+
runs-on: ubuntu-latest
|
|
185
|
+
steps:
|
|
186
|
+
- uses: actions/checkout@v4
|
|
187
|
+
- uses: actions-rust/toolchain@v1
|
|
188
|
+
with:
|
|
189
|
+
toolchain: stable
|
|
190
|
+
components: clippy, rustfmt
|
|
191
|
+
- run: cargo fmt --all -- --check
|
|
192
|
+
- run: cargo clippy -- -D warnings
|
|
193
|
+
- run: cargo test
|
|
194
|
+
- run: cargo build --release
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Reference block 2
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
name: CI
|
|
203
|
+
on: [push, pull_request]
|
|
204
|
+
jobs:
|
|
205
|
+
test:
|
|
206
|
+
runs-on: ubuntu-latest
|
|
207
|
+
steps:
|
|
208
|
+
- uses: actions/checkout@v4
|
|
209
|
+
- uses: actions/setup-node@v4
|
|
210
|
+
with:
|
|
211
|
+
node-version: 20
|
|
212
|
+
cache: npm
|
|
213
|
+
- run: npm ci
|
|
214
|
+
- run: npm test
|
|
215
|
+
- run: npm run lint 2>/dev/null || true
|
|
216
|
+
- run: npm run typecheck 2>/dev/null || true
|
|
217
|
+
- run: npm run build 2>/dev/null || true
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Reference block 3
|
|
223
|
+
|
|
224
|
+
```yaml
|
|
225
|
+
name: CI
|
|
226
|
+
on: [push, pull_request]
|
|
227
|
+
jobs:
|
|
228
|
+
test:
|
|
229
|
+
runs-on: ubuntu-latest
|
|
230
|
+
steps:
|
|
231
|
+
- uses: actions/checkout@v4
|
|
232
|
+
- uses: actions/setup-python@v5
|
|
233
|
+
with:
|
|
234
|
+
python-version: "3.12"
|
|
235
|
+
cache: pip
|
|
236
|
+
- run: pip install -e ".[dev]" || pip install -e .
|
|
237
|
+
- run: pip install pytest ruff mypy
|
|
238
|
+
- run: ruff check .
|
|
239
|
+
- run: mypy . 2>/dev/null || true
|
|
240
|
+
- run: pytest
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Reference block 4
|
|
246
|
+
|
|
247
|
+
```yaml
|
|
248
|
+
name: CI
|
|
249
|
+
on: [push, pull_request]
|
|
250
|
+
jobs:
|
|
251
|
+
test:
|
|
252
|
+
runs-on: ubuntu-latest
|
|
253
|
+
steps:
|
|
254
|
+
- uses: actions/checkout@v4
|
|
255
|
+
- uses: actions/setup-go@v5
|
|
256
|
+
with:
|
|
257
|
+
go-version: stable
|
|
258
|
+
cache: true
|
|
259
|
+
- run: go vet ./...
|
|
260
|
+
- run: go test ./...
|
|
261
|
+
- run: go build ./...
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Reference block 5
|
|
267
|
+
|
|
268
|
+
```yaml
|
|
269
|
+
name: CI
|
|
270
|
+
on: [push, pull_request]
|
|
271
|
+
jobs:
|
|
272
|
+
test:
|
|
273
|
+
runs-on: ubuntu-latest
|
|
274
|
+
steps:
|
|
275
|
+
- uses: actions/checkout@v4
|
|
276
|
+
- run: cmake -B build
|
|
277
|
+
- run: cmake --build build
|
|
278
|
+
- run: ctest --test-dir build
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Reference block 6
|
|
284
|
+
|
|
285
|
+
```yaml
|
|
286
|
+
name: Release
|
|
287
|
+
on:
|
|
288
|
+
push:
|
|
289
|
+
branches: [main]
|
|
290
|
+
jobs:
|
|
291
|
+
release:
|
|
292
|
+
runs-on: ubuntu-latest
|
|
293
|
+
permissions:
|
|
294
|
+
contents: write
|
|
295
|
+
issues: write
|
|
296
|
+
pull-requests: write
|
|
297
|
+
id-token: write
|
|
298
|
+
steps:
|
|
299
|
+
- uses: actions/checkout@v4
|
|
300
|
+
with:
|
|
301
|
+
fetch-depth: 0
|
|
302
|
+
- uses: actions/setup-node@v4
|
|
303
|
+
with:
|
|
304
|
+
node-version: 20
|
|
305
|
+
cache: npm
|
|
306
|
+
- run: npm ci
|
|
307
|
+
- run: npm run build 2>/dev/null || true
|
|
308
|
+
- run: npx semantic-release
|
|
309
|
+
env:
|
|
310
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
311
|
+
NPM_TOKEN: \${{ secrets.NPM_TOKEN }}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Reference block 7
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Validate YAML syntax
|
|
320
|
+
for f in .github/workflows/*.yaml; do
|
|
321
|
+
python3 -c "import yaml; yaml.safe_load(open('$f'))" || echo "FAIL: $f has YAML syntax errors"
|
|
322
|
+
done
|
|
323
|
+
|
|
324
|
+
# Check permissions block presence
|
|
325
|
+
for f in .github/workflows/*.yaml; do
|
|
326
|
+
if grep -q "permissions:" "$f"; then
|
|
327
|
+
echo "OK: $f has permissions block"
|
|
328
|
+
else
|
|
329
|
+
echo "WARNING: $f missing permissions block — add one for security"
|
|
330
|
+
fi
|
|
331
|
+
done
|
|
332
|
+
|
|
333
|
+
# Check for npm publish without NPM_TOKEN
|
|
334
|
+
for f in .github/workflows/*.yaml; do
|
|
335
|
+
if grep -q "npm publish\|npx semantic-release" "$f"; then
|
|
336
|
+
if ! grep -q "NPM_TOKEN" "$f"; then
|
|
337
|
+
echo "WARNING: $f has npm publish/semantic-release but no NPM_TOKEN secret"
|
|
338
|
+
fi
|
|
339
|
+
fi
|
|
340
|
+
done
|
|
341
|
+
|
|
342
|
+
# Check for hardcoded Node versions
|
|
343
|
+
for f in .github/workflows/*.yaml; do
|
|
344
|
+
if grep -q "node-version: [0-9]" "$f" && grep -qv "node-version-file\|\.nvmrc" "$f"; then
|
|
345
|
+
echo "NOTE: $f has hardcoded Node version — consider using .nvmrc instead"
|
|
346
|
+
fi
|
|
347
|
+
done
|
|
348
|
+
|
|
349
|
+
# Check for common secrets reference errors
|
|
350
|
+
for f in .github/workflows/*.yaml; do
|
|
351
|
+
# Secrets referencing something that doesn't exist in the workflow
|
|
352
|
+
grep -oP 'secrets\.\w+' "$f" | sort -u | while read -r secret; do
|
|
353
|
+
echo "REF: $f references $secret"
|
|
354
|
+
done
|
|
355
|
+
done
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Reference block 8
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
# Option A: Use act (recommended)
|
|
364
|
+
if command -v act &>/dev/null; then
|
|
365
|
+
act push --dry-run
|
|
366
|
+
echo "OK: act dry-run completed"
|
|
367
|
+
elif command -v gh &>/dev/null; then
|
|
368
|
+
# Option B: Use gh workflow run (remote test, no local docker)
|
|
369
|
+
gh workflow run ci.yaml --ref "$(git branch --show-current)"
|
|
370
|
+
echo "OK: CI workflow dispatched. Check status: gh run list"
|
|
371
|
+
else
|
|
372
|
+
echo "NOTE: Install act (https://github.com/nektos/act) for full local dry-run"
|
|
373
|
+
echo " Install gh CLI for remote dry-run"
|
|
374
|
+
fi
|
|
375
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wire-observability
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "Add structured JSON logging, observability commands, and idempotent setup scripts to a project. Use when a project needs production-readiness instrumentation, when user wants structured logging, or as a production-readiness gate at any phase of development."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Wire Observability
|
|
8
|
+
> **HARD GATE** — **HARD GATE** — Observability is not optional. Before shipping, verify: structured logging is in place, key metrics are instrumented, error cases emit signals. 'We'll add metrics later' becomes 'never.'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Add structured logging, observability commands, and idempotent setup scripts. Can be invoked at any phase — recommended at the end of the first working slice, before the first deploy.
|
|
12
|
+
|
|
13
|
+
## What this sets up
|
|
14
|
+
|
|
15
|
+
1. **Structured JSON logging** — machine-readable logs for debugging and observability
|
|
16
|
+
2. **Observability commands** — how to check the system's health documented in CLAUDE.md
|
|
17
|
+
3. **Idempotent setup scripts** — scripts that can be run repeatedly without side effects
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
### 1. Assess current state
|
|
22
|
+
|
|
23
|
+
Check what's already in place:
|
|
24
|
+
- Is there a logging library? (pino, winston, structlog, zap, slog, etc.)
|
|
25
|
+
- Is logging JSON or plain text?
|
|
26
|
+
- Is there a health check endpoint or command?
|
|
27
|
+
- Are there setup scripts? Are they idempotent?
|
|
28
|
+
|
|
29
|
+
### 2. Add structured JSON logging
|
|
30
|
+
|
|
31
|
+
**For user-facing CLI output:** plain text is fine.
|
|
32
|
+
**For everything else:** structured JSON.
|
|
33
|
+
|
|
34
|
+
Structured log entry format:
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"level": "info",
|
|
38
|
+
"timestamp": "2025-01-15T10:23:45.123Z",
|
|
39
|
+
"message": "User created",
|
|
40
|
+
"userId": "usr_abc123",
|
|
41
|
+
"requestId": "req_xyz789"
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Guidelines:
|
|
46
|
+
- Include `level`, `timestamp`, `message` in every entry
|
|
47
|
+
- Add context fields relevant to the operation (userId, requestId, traceId)
|
|
48
|
+
- Log at boundaries: HTTP requests in/out, DB queries, external API calls, background job start/end
|
|
49
|
+
- Log errors with stack traces: `logger.error({ err, context }, "Operation failed")`
|
|
50
|
+
- **Never log secrets, passwords, tokens, or PII**
|
|
51
|
+
|
|
52
|
+
### 3. Document observability commands in CLAUDE.md
|
|
53
|
+
|
|
54
|
+
Add an "Observability" section to the project's CLAUDE.md:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
## Observability
|
|
58
|
+
|
|
59
|
+
| What | Command |
|
|
60
|
+
|------|---------|
|
|
61
|
+
| View logs | `<log tail command>` |
|
|
62
|
+
| Health check | `<health check command>` |
|
|
63
|
+
| Check DB connection | `<db ping command>` |
|
|
64
|
+
| View metrics | `<metrics command>` |
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 4. Write idempotent setup scripts
|
|
68
|
+
|
|
69
|
+
An idempotent script can be run multiple times and always produces the same result (no errors on re-run).
|
|
70
|
+
|
|
71
|
+
Pattern: check if the thing already exists before creating it.
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
#!/usr/bin/env bash
|
|
75
|
+
set -euo pipefail
|
|
76
|
+
|
|
77
|
+
# Idempotent: only create if not exists
|
|
78
|
+
if ! psql -c "SELECT 1 FROM pg_database WHERE datname = 'myapp'" | grep -q 1; then
|
|
79
|
+
createdb myapp
|
|
80
|
+
echo "Database created"
|
|
81
|
+
else
|
|
82
|
+
echo "Database already exists, skipping"
|
|
83
|
+
fi
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Place setup scripts in `scripts/setup.sh` (or language-appropriate equivalent). Document the command in CLAUDE.md under Commands.
|
|
87
|
+
|
|
88
|
+
### 5. Verify
|
|
89
|
+
|
|
90
|
+
- [ ] Run the app and confirm JSON logs appear in the correct format
|
|
91
|
+
- [ ] Run `scripts/setup.sh` twice — second run should produce no errors
|
|
92
|
+
- [ ] Health check command returns success
|
|
93
|
+
- [ ] No sensitive data in log output
|
|
94
|
+
|
|
95
|
+
## BCP Plus Integration
|
|
96
|
+
|
|
97
|
+
This skill maps to **BCP Plus dimension 11 (Quality Attributes)** — specifically performance, reliability, and availability instrumentation. Structured logging, health checks, and idempotent setup scripts are observable manifestations of quality-attribute requirements. The NFR Gate rule applies: standard-expectation items (e.g., "the app should log errors") score 0 with a one-line rationale; only above-standard quality requirements (e.g., p99 latency tracking, SLO-based alerting) contribute to the dimension 11 count. See `docs/references/bcp-plus.md` for the full 13-dimension framework and NFR Gate pattern.
|