bigpowers 2.87.4 → 2.87.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/.cursor/rules/align-grid.mdc +109 -0
- package/.cursor/rules/assess-impact.mdc +90 -0
- package/.cursor/rules/audit-code.mdc +183 -0
- package/.cursor/rules/audit-plan.mdc +88 -0
- package/.cursor/rules/build-epic.mdc +104 -0
- package/.cursor/rules/change-request.mdc +120 -0
- package/.cursor/rules/commit-message.mdc +139 -0
- package/.cursor/rules/compose-workflow.mdc +81 -0
- package/.cursor/rules/context7-mcp.mdc +54 -0
- package/.cursor/rules/craft-skill.mdc +195 -0
- package/.cursor/rules/deepen-architecture.mdc +259 -0
- package/.cursor/rules/define-language.mdc +79 -0
- package/.cursor/rules/define-success.mdc +11 -0
- package/.cursor/rules/delegate-task.mdc +90 -0
- package/.cursor/rules/deploy.mdc +197 -0
- package/.cursor/rules/design-interface.mdc +96 -0
- package/.cursor/rules/develop-tdd.mdc +415 -0
- package/.cursor/rules/diagnose-root.mdc +23 -0
- package/.cursor/rules/diagnose-stall.mdc +53 -0
- package/.cursor/rules/dispatch-agents.mdc +117 -0
- package/.cursor/rules/edit-document.mdc +22 -0
- package/.cursor/rules/elaborate-spec.mdc +100 -0
- package/.cursor/rules/enforce-first.mdc +44 -0
- package/.cursor/rules/evolve-skill.mdc +54 -0
- package/.cursor/rules/execute-plan.mdc +60 -0
- package/.cursor/rules/extract-design.mdc +131 -0
- package/.cursor/rules/find-way.mdc +190 -0
- package/.cursor/rules/fix-bug.mdc +66 -0
- package/.cursor/rules/gate-trace.mdc +91 -0
- package/.cursor/rules/generate-allure-report.mdc +284 -0
- package/.cursor/rules/grill-me.mdc +107 -0
- package/.cursor/rules/grill-with-docs.mdc +52 -0
- package/.cursor/rules/guard-git.mdc +230 -0
- package/.cursor/rules/harden-vps.mdc +290 -0
- package/.cursor/rules/hook-commits.mdc +93 -0
- package/.cursor/rules/inspect-quality.mdc +105 -0
- package/.cursor/rules/investigate-bug.mdc +126 -0
- package/.cursor/rules/kickoff-branch.mdc +142 -0
- package/.cursor/rules/maintain-wiki.mdc +63 -0
- package/.cursor/rules/map-codebase.mdc +70 -0
- package/.cursor/rules/migrate-spec.mdc +907 -0
- package/.cursor/rules/model-domain.mdc +231 -0
- package/.cursor/rules/orchestrate-project.mdc +173 -0
- package/.cursor/rules/organize-workspace.mdc +163 -0
- package/.cursor/rules/plan-refactor.mdc +86 -0
- package/.cursor/rules/plan-release.mdc +144 -0
- package/.cursor/rules/plan-tests.mdc +74 -0
- package/.cursor/rules/plan-work.mdc +271 -0
- package/.cursor/rules/publish-package.mdc +337 -0
- package/.cursor/rules/quick-fix.mdc +113 -0
- package/.cursor/rules/release-branch.mdc +301 -0
- package/.cursor/rules/request-review.mdc +112 -0
- package/.cursor/rules/research-first.mdc +86 -0
- package/.cursor/rules/reset-baseline.mdc +20 -0
- package/.cursor/rules/respond-review.mdc +70 -0
- package/.cursor/rules/run-benchmark.mdc +84 -0
- package/.cursor/rules/run-evals.mdc +79 -0
- package/.cursor/rules/run-planning.mdc +100 -0
- package/.cursor/rules/scope-work.mdc +62 -0
- package/.cursor/rules/search-skills.mdc +72 -0
- package/.cursor/rules/security-review.mdc +383 -0
- package/.cursor/rules/seed-conventions.mdc +311 -0
- package/.cursor/rules/session-state.mdc +145 -0
- package/.cursor/rules/setup-environment.mdc +38 -0
- package/.cursor/rules/simple-english.mdc +345 -0
- package/.cursor/rules/simulate-agents.mdc +25 -0
- package/.cursor/rules/slice-tasks.mdc +67 -0
- package/.cursor/rules/smoke-test.mdc +260 -0
- package/.cursor/rules/spike-prototype.mdc +94 -0
- package/.cursor/rules/stocktake-skills.mdc +73 -0
- package/.cursor/rules/survey-context.mdc +134 -0
- package/.cursor/rules/terse-mode.mdc +41 -0
- package/.cursor/rules/trace-requirement.mdc +68 -0
- package/.cursor/rules/using-bigpowers.mdc +110 -0
- package/.cursor/rules/validate-contracts.mdc +285 -0
- package/.cursor/rules/validate-fix.mdc +146 -0
- package/.cursor/rules/verify-work.mdc +190 -0
- package/.cursor/rules/visual-dashboard.mdc +49 -0
- package/.cursor/rules/wire-ci.mdc +380 -0
- package/.cursor/rules/wire-observability.mdc +96 -0
- package/.cursor/rules/write-document.mdc +280 -0
- package/.gemini/extensions/bigpowers/commands/prompts/align-grid.md +109 -0
- package/.gemini/extensions/bigpowers/commands/prompts/assess-impact.md +90 -0
- package/.gemini/extensions/bigpowers/commands/prompts/audit-code.md +183 -0
- package/.gemini/extensions/bigpowers/commands/prompts/audit-plan.md +88 -0
- package/.gemini/extensions/bigpowers/commands/prompts/build-epic.md +104 -0
- package/.gemini/extensions/bigpowers/commands/prompts/change-request.md +120 -0
- package/.gemini/extensions/bigpowers/commands/prompts/commit-message.md +139 -0
- package/.gemini/extensions/bigpowers/commands/prompts/compose-workflow.md +81 -0
- package/.gemini/extensions/bigpowers/commands/prompts/context7-mcp.md +54 -0
- package/.gemini/extensions/bigpowers/commands/prompts/craft-skill.md +195 -0
- package/.gemini/extensions/bigpowers/commands/prompts/deepen-architecture.md +259 -0
- package/.gemini/extensions/bigpowers/commands/prompts/define-language.md +79 -0
- package/.gemini/extensions/bigpowers/commands/prompts/define-success.md +11 -0
- package/.gemini/extensions/bigpowers/commands/prompts/delegate-task.md +90 -0
- package/.gemini/extensions/bigpowers/commands/prompts/deploy.md +197 -0
- package/.gemini/extensions/bigpowers/commands/prompts/design-interface.md +96 -0
- package/.gemini/extensions/bigpowers/commands/prompts/develop-tdd.md +415 -0
- package/.gemini/extensions/bigpowers/commands/prompts/diagnose-root.md +23 -0
- package/.gemini/extensions/bigpowers/commands/prompts/diagnose-stall.md +53 -0
- package/.gemini/extensions/bigpowers/commands/prompts/dispatch-agents.md +117 -0
- package/.gemini/extensions/bigpowers/commands/prompts/edit-document.md +22 -0
- package/.gemini/extensions/bigpowers/commands/prompts/elaborate-spec.md +100 -0
- package/.gemini/extensions/bigpowers/commands/prompts/enforce-first.md +44 -0
- package/.gemini/extensions/bigpowers/commands/prompts/evolve-skill.md +54 -0
- package/.gemini/extensions/bigpowers/commands/prompts/execute-plan.md +60 -0
- package/.gemini/extensions/bigpowers/commands/prompts/extract-design.md +131 -0
- package/.gemini/extensions/bigpowers/commands/prompts/find-way.md +190 -0
- package/.gemini/extensions/bigpowers/commands/prompts/fix-bug.md +66 -0
- package/.gemini/extensions/bigpowers/commands/prompts/gate-trace.md +91 -0
- package/.gemini/extensions/bigpowers/commands/prompts/generate-allure-report.md +284 -0
- package/.gemini/extensions/bigpowers/commands/prompts/grill-me.md +107 -0
- package/.gemini/extensions/bigpowers/commands/prompts/grill-with-docs.md +52 -0
- package/.gemini/extensions/bigpowers/commands/prompts/guard-git.md +230 -0
- package/.gemini/extensions/bigpowers/commands/prompts/harden-vps.md +290 -0
- package/.gemini/extensions/bigpowers/commands/prompts/hook-commits.md +93 -0
- package/.gemini/extensions/bigpowers/commands/prompts/inspect-quality.md +105 -0
- package/.gemini/extensions/bigpowers/commands/prompts/investigate-bug.md +126 -0
- package/.gemini/extensions/bigpowers/commands/prompts/kickoff-branch.md +142 -0
- package/.gemini/extensions/bigpowers/commands/prompts/maintain-wiki.md +63 -0
- package/.gemini/extensions/bigpowers/commands/prompts/map-codebase.md +70 -0
- package/.gemini/extensions/bigpowers/commands/prompts/migrate-spec.md +907 -0
- package/.gemini/extensions/bigpowers/commands/prompts/model-domain.md +231 -0
- package/.gemini/extensions/bigpowers/commands/prompts/orchestrate-project.md +173 -0
- package/.gemini/extensions/bigpowers/commands/prompts/organize-workspace.md +163 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-refactor.md +86 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-release.md +144 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-tests.md +74 -0
- package/.gemini/extensions/bigpowers/commands/prompts/plan-work.md +271 -0
- package/.gemini/extensions/bigpowers/commands/prompts/publish-package.md +337 -0
- package/.gemini/extensions/bigpowers/commands/prompts/quick-fix.md +113 -0
- package/.gemini/extensions/bigpowers/commands/prompts/release-branch.md +301 -0
- package/.gemini/extensions/bigpowers/commands/prompts/request-review.md +112 -0
- package/.gemini/extensions/bigpowers/commands/prompts/research-first.md +86 -0
- package/.gemini/extensions/bigpowers/commands/prompts/reset-baseline.md +20 -0
- package/.gemini/extensions/bigpowers/commands/prompts/respond-review.md +70 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-benchmark.md +84 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-evals.md +79 -0
- package/.gemini/extensions/bigpowers/commands/prompts/run-planning.md +100 -0
- package/.gemini/extensions/bigpowers/commands/prompts/scope-work.md +62 -0
- package/.gemini/extensions/bigpowers/commands/prompts/search-skills.md +72 -0
- package/.gemini/extensions/bigpowers/commands/prompts/security-review.md +383 -0
- package/.gemini/extensions/bigpowers/commands/prompts/seed-conventions.md +311 -0
- package/.gemini/extensions/bigpowers/commands/prompts/session-state.md +145 -0
- package/.gemini/extensions/bigpowers/commands/prompts/setup-environment.md +38 -0
- package/.gemini/extensions/bigpowers/commands/prompts/simple-english.md +345 -0
- package/.gemini/extensions/bigpowers/commands/prompts/simulate-agents.md +25 -0
- package/.gemini/extensions/bigpowers/commands/prompts/slice-tasks.md +67 -0
- package/.gemini/extensions/bigpowers/commands/prompts/smoke-test.md +260 -0
- package/.gemini/extensions/bigpowers/commands/prompts/spike-prototype.md +94 -0
- package/.gemini/extensions/bigpowers/commands/prompts/stocktake-skills.md +73 -0
- package/.gemini/extensions/bigpowers/commands/prompts/survey-context.md +134 -0
- package/.gemini/extensions/bigpowers/commands/prompts/terse-mode.md +41 -0
- package/.gemini/extensions/bigpowers/commands/prompts/trace-requirement.md +68 -0
- package/.gemini/extensions/bigpowers/commands/prompts/using-bigpowers.md +110 -0
- package/.gemini/extensions/bigpowers/commands/prompts/validate-contracts.md +285 -0
- package/.gemini/extensions/bigpowers/commands/prompts/validate-fix.md +146 -0
- package/.gemini/extensions/bigpowers/commands/prompts/verify-work.md +190 -0
- package/.gemini/extensions/bigpowers/commands/prompts/visual-dashboard.md +49 -0
- package/.gemini/extensions/bigpowers/commands/prompts/wire-ci.md +380 -0
- package/.gemini/extensions/bigpowers/commands/prompts/wire-observability.md +96 -0
- package/.gemini/extensions/bigpowers/commands/prompts/write-document.md +280 -0
- package/.gemini/extensions/bigpowers/gemini-extension.json +16 -0
- package/.gemini/extensions/bigpowers/hooks/HOOKS.md +43 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-git-guard.sh +26 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-rtk.sh +14 -0
- package/.gemini/extensions/bigpowers/hooks/before-tool-token-mgmt.sh +19 -0
- package/.gemini/extensions/bigpowers/hooks/hooks-manifest.json +36 -0
- package/.gemini/extensions/bigpowers/hooks/run-hook.cmd +29 -0
- package/.gemini/extensions/bigpowers/hooks/session-start +48 -0
- package/.gemini/extensions/bigpowers/hooks/settings.json.example +41 -0
- package/.gemini/extensions/bigpowers/skills/align-grid/SKILL.md +111 -0
- package/.gemini/extensions/bigpowers/skills/assess-impact/SKILL.md +92 -0
- package/.gemini/extensions/bigpowers/skills/audit-code/SKILL.md +185 -0
- package/.gemini/extensions/bigpowers/skills/audit-plan/SKILL.md +90 -0
- package/.gemini/extensions/bigpowers/skills/build-epic/SKILL.md +106 -0
- package/.gemini/extensions/bigpowers/skills/change-request/SKILL.md +122 -0
- package/.gemini/extensions/bigpowers/skills/commit-message/SKILL.md +141 -0
- package/.gemini/extensions/bigpowers/skills/compose-workflow/SKILL.md +83 -0
- package/.gemini/extensions/bigpowers/skills/context7-mcp/SKILL.md +56 -0
- package/.gemini/extensions/bigpowers/skills/craft-skill/SKILL.md +197 -0
- package/.gemini/extensions/bigpowers/skills/deepen-architecture/SKILL.md +261 -0
- package/.gemini/extensions/bigpowers/skills/define-language/SKILL.md +81 -0
- package/.gemini/extensions/bigpowers/skills/define-success/SKILL.md +13 -0
- package/.gemini/extensions/bigpowers/skills/delegate-task/SKILL.md +92 -0
- package/.gemini/extensions/bigpowers/skills/deploy/SKILL.md +199 -0
- package/.gemini/extensions/bigpowers/skills/design-interface/SKILL.md +98 -0
- package/.gemini/extensions/bigpowers/skills/develop-tdd/SKILL.md +417 -0
- package/.gemini/extensions/bigpowers/skills/diagnose-root/SKILL.md +25 -0
- package/.gemini/extensions/bigpowers/skills/diagnose-stall/SKILL.md +55 -0
- package/.gemini/extensions/bigpowers/skills/dispatch-agents/SKILL.md +119 -0
- package/.gemini/extensions/bigpowers/skills/edit-document/SKILL.md +24 -0
- package/.gemini/extensions/bigpowers/skills/elaborate-spec/SKILL.md +102 -0
- package/.gemini/extensions/bigpowers/skills/enforce-first/SKILL.md +46 -0
- package/.gemini/extensions/bigpowers/skills/evolve-skill/SKILL.md +56 -0
- package/.gemini/extensions/bigpowers/skills/execute-plan/SKILL.md +62 -0
- package/.gemini/extensions/bigpowers/skills/extract-design/SKILL.md +133 -0
- package/.gemini/extensions/bigpowers/skills/find-way/SKILL.md +192 -0
- package/.gemini/extensions/bigpowers/skills/fix-bug/SKILL.md +68 -0
- package/.gemini/extensions/bigpowers/skills/gate-trace/SKILL.md +93 -0
- package/.gemini/extensions/bigpowers/skills/generate-allure-report/SKILL.md +286 -0
- package/.gemini/extensions/bigpowers/skills/grill-me/SKILL.md +109 -0
- package/.gemini/extensions/bigpowers/skills/grill-with-docs/SKILL.md +54 -0
- package/.gemini/extensions/bigpowers/skills/guard-git/SKILL.md +232 -0
- package/.gemini/extensions/bigpowers/skills/harden-vps/SKILL.md +292 -0
- package/.gemini/extensions/bigpowers/skills/hook-commits/SKILL.md +95 -0
- package/.gemini/extensions/bigpowers/skills/inspect-quality/SKILL.md +107 -0
- package/.gemini/extensions/bigpowers/skills/investigate-bug/SKILL.md +128 -0
- package/.gemini/extensions/bigpowers/skills/kickoff-branch/SKILL.md +144 -0
- package/.gemini/extensions/bigpowers/skills/maintain-wiki/SKILL.md +65 -0
- package/.gemini/extensions/bigpowers/skills/map-codebase/SKILL.md +72 -0
- package/.gemini/extensions/bigpowers/skills/migrate-spec/SKILL.md +909 -0
- package/.gemini/extensions/bigpowers/skills/model-domain/SKILL.md +233 -0
- package/.gemini/extensions/bigpowers/skills/orchestrate-project/SKILL.md +175 -0
- package/.gemini/extensions/bigpowers/skills/organize-workspace/SKILL.md +165 -0
- package/.gemini/extensions/bigpowers/skills/plan-refactor/SKILL.md +88 -0
- package/.gemini/extensions/bigpowers/skills/plan-release/SKILL.md +146 -0
- package/.gemini/extensions/bigpowers/skills/plan-tests/SKILL.md +76 -0
- package/.gemini/extensions/bigpowers/skills/plan-work/SKILL.md +273 -0
- package/.gemini/extensions/bigpowers/skills/publish-package/SKILL.md +339 -0
- package/.gemini/extensions/bigpowers/skills/quick-fix/SKILL.md +115 -0
- package/.gemini/extensions/bigpowers/skills/release-branch/SKILL.md +303 -0
- package/.gemini/extensions/bigpowers/skills/request-review/SKILL.md +114 -0
- package/.gemini/extensions/bigpowers/skills/research-first/SKILL.md +88 -0
- package/.gemini/extensions/bigpowers/skills/reset-baseline/SKILL.md +22 -0
- package/.gemini/extensions/bigpowers/skills/respond-review/SKILL.md +72 -0
- package/.gemini/extensions/bigpowers/skills/run-benchmark/SKILL.md +86 -0
- package/.gemini/extensions/bigpowers/skills/run-evals/SKILL.md +81 -0
- package/.gemini/extensions/bigpowers/skills/run-planning/SKILL.md +102 -0
- package/.gemini/extensions/bigpowers/skills/scope-work/SKILL.md +64 -0
- package/.gemini/extensions/bigpowers/skills/search-skills/SKILL.md +74 -0
- package/.gemini/extensions/bigpowers/skills/security-review/SKILL.md +385 -0
- package/.gemini/extensions/bigpowers/skills/seed-conventions/SKILL.md +313 -0
- package/.gemini/extensions/bigpowers/skills/session-state/SKILL.md +147 -0
- package/.gemini/extensions/bigpowers/skills/setup-environment/SKILL.md +40 -0
- package/.gemini/extensions/bigpowers/skills/simple-english/SKILL.md +347 -0
- package/.gemini/extensions/bigpowers/skills/simulate-agents/SKILL.md +27 -0
- package/.gemini/extensions/bigpowers/skills/slice-tasks/SKILL.md +69 -0
- package/.gemini/extensions/bigpowers/skills/smoke-test/SKILL.md +262 -0
- package/.gemini/extensions/bigpowers/skills/spike-prototype/SKILL.md +96 -0
- package/.gemini/extensions/bigpowers/skills/stocktake-skills/SKILL.md +75 -0
- package/.gemini/extensions/bigpowers/skills/survey-context/SKILL.md +136 -0
- package/.gemini/extensions/bigpowers/skills/terse-mode/SKILL.md +43 -0
- package/.gemini/extensions/bigpowers/skills/trace-requirement/SKILL.md +70 -0
- package/.gemini/extensions/bigpowers/skills/using-bigpowers/SKILL.md +112 -0
- package/.gemini/extensions/bigpowers/skills/validate-contracts/SKILL.md +287 -0
- package/.gemini/extensions/bigpowers/skills/validate-fix/SKILL.md +148 -0
- package/.gemini/extensions/bigpowers/skills/verify-work/SKILL.md +192 -0
- package/.gemini/extensions/bigpowers/skills/visual-dashboard/SKILL.md +51 -0
- package/.gemini/extensions/bigpowers/skills/wire-ci/SKILL.md +382 -0
- package/.gemini/extensions/bigpowers/skills/wire-observability/SKILL.md +98 -0
- package/.gemini/extensions/bigpowers/skills/write-document/SKILL.md +282 -0
- package/.pi/package.json +1 -1
- package/CHANGELOG.md +14 -0
- package/package.json +1 -1
- 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/install-helpers.js +33 -17
- package/scripts/test-install-helpers.js +31 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-bigpowers
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "One-time bootstrap that introduces the bigpowers skills system, the PMBOK lifecycle arc, and tells you which skill to call first for your situation. Use when starting with bigpowers for the first time, when user asks \"where do I start?\", or when the skills system needs to be explained."
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Using bigpowers
|
|
9
|
+
> **HARD GATE** — **HARD GATE** — This skill is the entry point. Do NOT skip it when onboarding new users or starting a new session. It establishes the bigpowers methodology, lifecycle phases, and conventions.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Welcome to **bigpowers** — a lifecycle of agent skills for production-ready, TDD-driven software by solo developers. The live catalog and its count are generated in [`SKILL-INDEX.md`](../../SKILL-INDEX.md); never hardcode the number here.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx bigpowers setup # one-shot setup
|
|
18
|
+
npm install -g bigpowers # global install
|
|
19
|
+
bigpowers setup # sync skills + link to your tools
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
From source: `git clone` → `bash scripts/install.sh`. Package: [bigpowers on npm](https://www.npmjs.com/package/bigpowers).
|
|
23
|
+
|
|
24
|
+
**Reach tools:** **Cline** — native AGENTS.md reader (no extension). **Aider** — opt-in `.aider.conf.yml` with `read: AGENTS.md` ([Aider-AI/aider](https://github.com/Aider-AI/aider)). **Codex CLI** — optional `.codex/config.toml` via seed-conventions; global `~/.codex/AGENTS.md` from install.sh.
|
|
25
|
+
|
|
26
|
+
## What bigpowers is
|
|
27
|
+
|
|
28
|
+
A curated set of skills organized around the PMBOK developer lifecycle. Each skill does one thing. Skills reference each other by name only — low coupling, high cohesion. All written output goes to `specs/` at your project root.
|
|
29
|
+
|
|
30
|
+
## The lifecycle at a glance
|
|
31
|
+
|
|
32
|
+
See orchestrate-project for the canonical 6-phase lifecycle.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
BOOTSTRAP using-bigpowers (this skill, first time only)
|
|
36
|
+
↓
|
|
37
|
+
DISCOVER survey-context → research-first → elaborate-spec
|
|
38
|
+
↓
|
|
39
|
+
DESIGN model-domain / define-language / grill-me / deepen-architecture / design-interface
|
|
40
|
+
↓
|
|
41
|
+
PLAN scope-work → slice-tasks → plan-work / plan-refactor
|
|
42
|
+
↓
|
|
43
|
+
INITIATE kickoff-branch → guard-git / hook-commits / seed-conventions
|
|
44
|
+
↓
|
|
45
|
+
SPIKE? spike-prototype → (feeds back to plan-work)
|
|
46
|
+
↓
|
|
47
|
+
EXECUTE develop-tdd + enforce-first ←→ delegate-task / dispatch-agents / execute-plan
|
|
48
|
+
↓
|
|
49
|
+
VERIFY run-evals → verify-work
|
|
50
|
+
↓
|
|
51
|
+
HARDEN wire-observability (any phase)
|
|
52
|
+
↓
|
|
53
|
+
BUG? investigate-bug → diagnose-root → validate-fix
|
|
54
|
+
↓
|
|
55
|
+
REVIEW audit-code → request-review → respond-review
|
|
56
|
+
↓
|
|
57
|
+
INTEGRATE commit-message → release-branch
|
|
58
|
+
↓
|
|
59
|
+
SUSTAIN inspect-quality / organize-workspace (ongoing)
|
|
60
|
+
|
|
61
|
+
UTILITY terse-mode / craft-skill / edit-document (any phase)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Where to start
|
|
65
|
+
|
|
66
|
+
| Your situation | First skill to call |
|
|
67
|
+
|---------------|---------------------|
|
|
68
|
+
| Greenfield project, nothing set up | `seed-conventions` |
|
|
69
|
+
| Existing project, new task | `survey-context` |
|
|
70
|
+
| Vague idea that needs shaping | `elaborate-spec` |
|
|
71
|
+
| Plan exists, ready to implement | `kickoff-branch` → `develop-tdd` |
|
|
72
|
+
| Bug to fix | `investigate-bug` |
|
|
73
|
+
| Code ready for review | `audit-code` |
|
|
74
|
+
| Shipping a feature | `commit-message` → `release-branch` |
|
|
75
|
+
| Solo dev, PRs feel heavy | Enable `profiles/solo-git.md` → `specs/WORKFLOW-solo-git.md` → land via `scripts/land-branch.sh` |
|
|
76
|
+
|
|
77
|
+
## Solo Git profile
|
|
78
|
+
|
|
79
|
+
If you work alone and do not want PR ceremony every task:
|
|
80
|
+
|
|
81
|
+
1. Read [profiles/solo-git.md](../../profiles/solo-git.md).
|
|
82
|
+
2. Register with `compose-workflow` → `specs/WORKFLOW-solo-git.md`.
|
|
83
|
+
3. Ship with `release-branch` in **solo-local** mode (`land-branch.sh`), not `gh pr create`.
|
|
84
|
+
|
|
85
|
+
You still use worktrees, protected `main`, and verification gates — only the integrate step changes.
|
|
86
|
+
|
|
87
|
+
## YAML cockpit and dashboard
|
|
88
|
+
|
|
89
|
+
Operational source of truth:
|
|
90
|
+
|
|
91
|
+
- `specs/state.yaml` — session, active epic/story, handoff
|
|
92
|
+
- `specs/release-plan.yaml` — release index and epic list
|
|
93
|
+
- `specs/epics/eNN-*.yaml` — stories and tasks with `verify`
|
|
94
|
+
- `specs/execution-status.yaml` — done/pending per story
|
|
95
|
+
|
|
96
|
+
Start the HTTP dashboard with `visual-dashboard` → `GET /api/status?projectDir=<abs>` and `GET /cockpit.html` for a read-only PM view.
|
|
97
|
+
|
|
98
|
+
## Key conventions
|
|
99
|
+
|
|
100
|
+
- **specs/ is your memory.** All domain docs, plans, and investigation outputs go in `specs/` at your project root.
|
|
101
|
+
- **Integrate:** team default is `gh pr` (team-pr); solo profile uses `land-branch.sh`. Never create GitHub issues from skills — use local Markdown files instead.
|
|
102
|
+
- **One skill, one thing.** If you're unsure which skill to call, call `survey-context` — it reads your current state and recommends the next step.
|
|
103
|
+
- **verify: every step.** Every epic task must have `verify: <runnable command>`. Evidence over claims.
|
|
104
|
+
- **The full catalog is auto-generated.** See `SKILL-INDEX.md`; find skills with `search-skills`.
|
|
105
|
+
|
|
106
|
+
## After this
|
|
107
|
+
|
|
108
|
+
Call `survey-context` to read your project's current state and get a personalized recommendation for where to go next.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
<!-- story: e03s02 -->
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validate-contracts
|
|
3
|
+
model: sonnet
|
|
4
|
+
description: "Assert data shape consistency across system boundaries — live API responses against JSON Schema, key-set comparison across layers, data shape validation for migrations and exports. Catches silent data corruption before deploy."
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Validate Contracts
|
|
9
|
+
|
|
10
|
+
> **HARD GATE** — Do NOT deploy or migrate data without running `validate-contracts` first. Silent data divergence between system boundaries causes the hardest-to-debug production bugs.
|
|
11
|
+
>
|
|
12
|
+
> **HARD GATE** — Contract files MUST be version-controlled alongside code. Outdated contracts are worse than no contracts. If a contract hasn't been reviewed in 30 days, flag it as stale.
|
|
13
|
+
|
|
14
|
+
Validate that data structures stay in sync across system boundaries — front-end vs back-end, API responses vs expected schemas, config files vs code assumptions, migration output vs target shape.
|
|
15
|
+
|
|
16
|
+
## Contract types
|
|
17
|
+
|
|
18
|
+
| Mode | What it catches | When to use |
|
|
19
|
+
|------|----------------|-------------|
|
|
20
|
+
| **Schema** | API response shape mismatches | Before every deploy, after API changes |
|
|
21
|
+
| **Key-set** | Missing/unexpected keys across two data sources | Translation files, configs, enum definitions |
|
|
22
|
+
| **Shape** | Column type or format violations | After migrations, before consuming exports |
|
|
23
|
+
|
|
24
|
+
## Contract file convention
|
|
25
|
+
|
|
26
|
+
All contract files live in `specs/contracts/` as YAML. See [REFERENCE.md](REFERENCE.md) for extended examples.
|
|
27
|
+
|
|
28
|
+
### Key-set example
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
# specs/contracts/i18n-keys.yaml
|
|
32
|
+
sources:
|
|
33
|
+
reference: src/locales/en.json
|
|
34
|
+
target: src/messages/en.json
|
|
35
|
+
mode: subset
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Process
|
|
39
|
+
|
|
40
|
+
### 1. Define contract
|
|
41
|
+
|
|
42
|
+
Create a YAML file in `specs/contracts/` following the schema for the mode.
|
|
43
|
+
|
|
44
|
+
### 2. Run validation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bash scripts/validate-contracts.sh specs/contracts/<contract>.yaml
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The runner auto-detects key-set contracts (`sources:` block). Schema and shape modes are documented in REFERENCE.md for consumer projects.
|
|
51
|
+
|
|
52
|
+
### 3. Read the report
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
PASS: key-set contract
|
|
56
|
+
# or
|
|
57
|
+
FAIL: key-set — N keys in reference missing from target
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
JSON Lines output for CI is planned for schema/shape modes; key-set failures exit non-zero.
|
|
61
|
+
|
|
62
|
+
### 4. Fix divergence
|
|
63
|
+
|
|
64
|
+
- **Missing keys** → add to target source
|
|
65
|
+
- **Type mismatches** → update schema or fix producer
|
|
66
|
+
- **Shape violations** → fix migration or consumer
|
|
67
|
+
|
|
68
|
+
### 5. Re-validate
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
bash scripts/validate-contracts.sh specs/contracts/<contract>.yaml
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Verify arc
|
|
75
|
+
|
|
76
|
+
Part of **★ VERIFY ★**: `verify-work` → `validate-contracts` → `smoke-test` → `run-evals` → `audit-code`
|
|
77
|
+
|
|
78
|
+
## Verify
|
|
79
|
+
|
|
80
|
+
→ verify: `test -x scripts/validate-contracts.sh && bash scripts/validate-contracts.sh --self-test && grep -q 'validate-contracts.sh' skills/validate-contracts/SKILL.md && echo OK`
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
# Validate Contracts — Reference
|
|
85
|
+
|
|
86
|
+
## Navigation
|
|
87
|
+
|
|
88
|
+
| Lines | Section |
|
|
89
|
+
|-------|---------|
|
|
90
|
+
| 1 | Title |
|
|
91
|
+
| 3–23 | Navigation |
|
|
92
|
+
| 24–32 | Integration |
|
|
93
|
+
| 33–44 | Configuration |
|
|
94
|
+
| 45–54 | Verification |
|
|
95
|
+
| 55–71 | Reference block 1 |
|
|
96
|
+
| 72–92 | Reference block 2 |
|
|
97
|
+
| 93–104 | Example 1 |
|
|
98
|
+
| 105–121 | Example 2 |
|
|
99
|
+
| 122–133 | Example 3 |
|
|
100
|
+
| 134–144 | Example 4 |
|
|
101
|
+
| 145–165 | Example 5 |
|
|
102
|
+
| 166–176 | Example 6 |
|
|
103
|
+
| 177–185 | Integration |
|
|
104
|
+
| 186–197 | Configuration |
|
|
105
|
+
| 198–204 | Verification |
|
|
106
|
+
|
|
107
|
+
## Integration
|
|
108
|
+
|
|
109
|
+
- **Pre-deploy gate:** The `deploy` skill runs `validate-contracts` before smoke-test.
|
|
110
|
+
- **CI pipeline:** JSON Lines output is CI-friendly; pipe to `jq` for assertions.
|
|
111
|
+
- **Pre-migration:** Run `validate-contracts --shape` before consuming migration output.
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Configuration
|
|
117
|
+
|
|
118
|
+
| Variable | Default | Description |
|
|
119
|
+
|----------|---------|-------------|
|
|
120
|
+
| `CONTRACTS_DIR` | `specs/contracts/` | Directory containing contract YAML files |
|
|
121
|
+
| `VALIDATE_ALL` | `false` | If true, run all contracts in the directory |
|
|
122
|
+
| `STRICT_MODE` | `false` | Treat warnings as failures |
|
|
123
|
+
| `OUTPUT_FORMAT` | `text` | `text` or `json` |
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Verification
|
|
129
|
+
|
|
130
|
+
→ verify: `test -f validate-contracts/SKILL.md && grep -q 'name: validate-contracts' validate-contracts/SKILL.md && echo OK`
|
|
131
|
+
→ verify: `grep -qi 'specs/contracts\|JSON Schema\|key.set\|data.shape' validate-contracts/SKILL.md && echo OK`
|
|
132
|
+
→ verify: `grep -ci 'divergence\|missing key\|type mismatch\|diff\|conforms\|column' validate-contracts/SKILL.md | awk '{if($1>=3) print "OK"; else print "FAIL"}'`
|
|
133
|
+
→ verify: `grep -ci 'JSON Lines\|machine.parse\|CI\|deploy.*gate\|pre.deploy' validate-contracts/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
|
|
134
|
+
→ verify: `grep -q 'validate-contracts' SKILL-INDEX.md && echo OK`
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Reference block 1
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
# specs/contracts/users.schema.yaml
|
|
142
|
+
endpoint: /api/users
|
|
143
|
+
method: GET
|
|
144
|
+
schema:
|
|
145
|
+
type: object
|
|
146
|
+
required: [id, name, email]
|
|
147
|
+
properties:
|
|
148
|
+
id: { type: number }
|
|
149
|
+
name: { type: string }
|
|
150
|
+
email: { type: string, format: email }
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Reference block 2
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
# specs/contracts/migration-output.yaml
|
|
159
|
+
file: data/users-export.json
|
|
160
|
+
format: json
|
|
161
|
+
fields:
|
|
162
|
+
- name: user_id
|
|
163
|
+
type: number
|
|
164
|
+
required: true
|
|
165
|
+
- name: full_name
|
|
166
|
+
type: string
|
|
167
|
+
required: true
|
|
168
|
+
- name: created_at
|
|
169
|
+
type: string
|
|
170
|
+
format: date-time
|
|
171
|
+
required: false
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Example 1
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
specs/contracts/
|
|
180
|
+
├── users.schema.yaml # API response schema
|
|
181
|
+
├── i18n-keys.yaml # Key-set comparison
|
|
182
|
+
├── migration-output.yaml # Data shape contract
|
|
183
|
+
└── README.md # Local conventions
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Example 2
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
# specs/contracts/users.schema.yaml
|
|
192
|
+
endpoint: /api/users
|
|
193
|
+
method: GET
|
|
194
|
+
schema:
|
|
195
|
+
type: object
|
|
196
|
+
required: [id, name, email]
|
|
197
|
+
properties:
|
|
198
|
+
id: { type: number }
|
|
199
|
+
name: { type: string }
|
|
200
|
+
email: { type: string, format: email }
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Example 3
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
# specs/contracts/i18n-keys.yaml
|
|
209
|
+
sources:
|
|
210
|
+
reference: src/frontend/locales/en.json
|
|
211
|
+
target: src/backend/messages/en.json
|
|
212
|
+
mode: subset # all target keys must exist in reference
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Example 4
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
validate-contracts --key-set specs/contracts/i18n-keys.yaml
|
|
221
|
+
# → missing: 2 keys in reference not found in target: ['settings.privacy', 'help.faq']
|
|
222
|
+
# → added: 1 key in target not in reference: ['deprecated.field']
|
|
223
|
+
# → exit 1 (divergence)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Example 5
|
|
229
|
+
|
|
230
|
+
```yaml
|
|
231
|
+
# specs/contracts/migration-output.yaml
|
|
232
|
+
file: data/users-export.json
|
|
233
|
+
format: json
|
|
234
|
+
fields:
|
|
235
|
+
- name: user_id
|
|
236
|
+
type: number
|
|
237
|
+
required: true
|
|
238
|
+
- name: full_name
|
|
239
|
+
type: string
|
|
240
|
+
required: true
|
|
241
|
+
- name: created_at
|
|
242
|
+
type: string
|
|
243
|
+
format: date-time
|
|
244
|
+
required: false
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Example 6
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
validate-contracts --shape specs/contracts/migration-output.yaml
|
|
253
|
+
# → PASS: 3/3 fields validated, 5000 rows OK
|
|
254
|
+
# → WARN: field 'full_name' has 12 null values (0.24%)
|
|
255
|
+
# → FAIL: field 'user_id' has 3 rows with type string (expected number)
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Integration
|
|
261
|
+
|
|
262
|
+
- **Pre-deploy gate:** The `deploy` skill runs `validate-contracts` before smoke-test.
|
|
263
|
+
- **CI pipeline:** JSON Lines output is CI-friendly; pipe to `jq` for assertions.
|
|
264
|
+
- **Pre-migration:** Run `validate-contracts --shape` before consuming migration output.
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Configuration
|
|
270
|
+
|
|
271
|
+
| Variable | Default | Description |
|
|
272
|
+
|----------|---------|-------------|
|
|
273
|
+
| `CONTRACTS_DIR` | `specs/contracts/` | Directory containing contract YAML files |
|
|
274
|
+
| `VALIDATE_ALL` | `false` | If true, run all contracts in the directory |
|
|
275
|
+
| `STRICT_MODE` | `false` | Treat warnings as failures |
|
|
276
|
+
| `OUTPUT_FORMAT` | `text` | `text` or `json` |
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Verification
|
|
282
|
+
|
|
283
|
+
→ verify: `test -f validate-contracts/SKILL.md && grep -q 'name: validate-contracts' validate-contracts/SKILL.md && echo OK`
|
|
284
|
+
→ verify: `grep -qi 'specs/contracts\|JSON Schema\|key.set\|data.shape' validate-contracts/SKILL.md && echo OK`
|
|
285
|
+
→ verify: `grep -ci 'divergence\|missing key\|type mismatch\|diff\|conforms\|column' validate-contracts/SKILL.md | awk '{if($1>=3) print "OK"; else print "FAIL"}'`
|
|
286
|
+
→ verify: `grep -ci 'JSON Lines\|machine.parse\|CI\|deploy.*gate\|pre.deploy' validate-contracts/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
|
|
287
|
+
→ verify: `grep -q 'validate-contracts' SKILL-INDEX.md && echo OK`
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validate-fix
|
|
3
|
+
model: haiku
|
|
4
|
+
description: "Prove a fix works before declaring done — re-run the failing test, run the full suite, typecheck, lint, and harden against recurrence. Use after implementing a bug fix, when user says \"is this fixed?\", or before closing an investigation."
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Validate Fix
|
|
9
|
+
> **HARD GATE** — Fix must not regress. Run full test suite and manual UAT before declaring success.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Prove the fix works. "I think it works" is not evidence. Run the suite, show the output, then harden against recurrence.
|
|
13
|
+
|
|
14
|
+
> **Two-commit red/green policy (e45s08)** — Bug fixes follow the same two-commit discipline as `develop-tdd`: first commit adds/adjusts the failing test (`test(<scope>): …`), second commit applies the fix (`fix(<scope>): …`). Do not squash RED and GREEN before review.
|
|
15
|
+
|
|
16
|
+
## Checklist
|
|
17
|
+
|
|
18
|
+
### 1. Re-run the originally failing test
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Run the specific test that captured the bug
|
|
22
|
+
<test command for the failing test>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- [ ] Previously failing test now passes
|
|
26
|
+
|
|
27
|
+
### 2. Run the full test suite
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Run all tests — no filtering
|
|
31
|
+
<full test command from CLAUDE.md>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- [ ] All tests pass (zero regressions)
|
|
35
|
+
|
|
36
|
+
### 3. Type check
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
<typecheck command>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- [ ] No type errors introduced
|
|
43
|
+
|
|
44
|
+
### 4. Lint
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
<lint command>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- [ ] No lint violations introduced
|
|
51
|
+
|
|
52
|
+
### 5. Harden against recurrence
|
|
53
|
+
|
|
54
|
+
For every bug fixed, add at least one prevention layer:
|
|
55
|
+
|
|
56
|
+
| Mechanism | When to use |
|
|
57
|
+
|-----------|-------------|
|
|
58
|
+
| Type guard | Input could be the wrong shape |
|
|
59
|
+
| Schema validation (Zod, Pydantic, etc.) | External data crossing a boundary |
|
|
60
|
+
| Invariant assertion | Internal state that must always hold |
|
|
61
|
+
| Lint rule | Pattern that's easy to repeat by mistake |
|
|
62
|
+
| Environment check at startup | Missing config causes silent failure |
|
|
63
|
+
|
|
64
|
+
- [ ] At least one hardening mechanism added
|
|
65
|
+
- [ ] Hardening mechanism is tested
|
|
66
|
+
|
|
67
|
+
### 5b. Generalize-fix (HARD GATE — e80s04 / GH #98)
|
|
68
|
+
|
|
69
|
+
Sweep the **defect class** across the codebase after local hardening — see [REFERENCE-generalize-fix.md](REFERENCE-generalize-fix.md).
|
|
70
|
+
|
|
71
|
+
- [ ] Defect class documented (not just the one-line root cause)
|
|
72
|
+
- [ ] Grep sweep run and `match_count` recorded
|
|
73
|
+
- [ ] `verify-generalize-sweep.sh` passes on the artifact
|
|
74
|
+
|
|
75
|
+
### 6. Update the bug file and registry.yaml
|
|
76
|
+
|
|
77
|
+
Find the most recent `specs/bugs/BUG-*.md` file and append the resolution:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
## Resolution
|
|
81
|
+
|
|
82
|
+
**Fixed:** [date]
|
|
83
|
+
**Root cause confirmed:** [one sentence]
|
|
84
|
+
**Fix applied:** [what was changed]
|
|
85
|
+
**Hardening added:** [type guard / schema / assertion / lint rule]
|
|
86
|
+
**Evidence:** all tests pass (`<verify command>`)
|
|
87
|
+
**Commit:** `fix(<scope>): <description>`
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Also update the corresponding row in `specs/bugs/registry.yaml`: set `status` to `fixed`, fill in `files_changed`, `approach`, `risk_level`, `commit_message`, and any other resolution fields.
|
|
91
|
+
|
|
92
|
+
- [ ] specs/bugs/BUG-*.md updated with resolution
|
|
93
|
+
- [ ] specs/bugs/registry.yaml row updated with resolution fields
|
|
94
|
+
|
|
95
|
+
### 7. Behavioral Proof (HARD GATE)
|
|
96
|
+
|
|
97
|
+
Mechanical verification (tests passing) is only half the fix. You must prove **behavioral correctness**.
|
|
98
|
+
|
|
99
|
+
- [ ] Manually demonstrate the fixed behavior (e.g., via `run_shell_command` or `web_fetch`)
|
|
100
|
+
- [ ] Compare the output/state against the "Expected Behavior" in the bug file
|
|
101
|
+
- [ ] Show the user evidence of the behavior, not just the test logs
|
|
102
|
+
|
|
103
|
+
## Rules
|
|
104
|
+
|
|
105
|
+
- **Loop until behavioral correctness is verified**: if any checklist item fails, or if the behavior is still incorrect despite passing tests, return to step 1 and run all checks again from the top — do not declare done until every item is green and the behavior is proven correct in a single run.
|
|
106
|
+
- **Never use `@ts-ignore`, `as any`, or `// eslint-disable`** to "fix" a bug — these suppress the symptom without fixing the root cause
|
|
107
|
+
- **Never mark the task done if any test is still failing**
|
|
108
|
+
- **The verify command from specs/bugs/BUG-*.md or the active epic task `verify` field must pass**
|
|
109
|
+
|
|
110
|
+
Suggest next skill: `audit-code` → `commit-message`.
|
|
111
|
+
|
|
112
|
+
## Verify
|
|
113
|
+
|
|
114
|
+
→ verify: `grep -q 'generalize-fix' skills/validate-fix/SKILL.md && test -x scripts/verify-generalize-sweep.sh && bash scripts/verify-generalize-sweep.sh --self-test && echo OK`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
# Generalize-fix (e80s04 / GH #98)
|
|
119
|
+
|
|
120
|
+
After local hardening in `validate-fix`, sweep the **defect class** across the codebase.
|
|
121
|
+
|
|
122
|
+
## Steps
|
|
123
|
+
|
|
124
|
+
1. **Classify** — name the pattern (e.g. `unscoped org query`, `fail-open verify`, `hardcoded package manager`).
|
|
125
|
+
2. **Sweep** — grep for sibling instances; record `match_count` and `grep_pattern`.
|
|
126
|
+
3. **Resolve** — patch all matches in this PR **or** file one tracking issue listing every remaining instance.
|
|
127
|
+
4. **Artifact** — write sweep evidence before declaring done:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
cat > specs/verifications/generalize-sweep-BUG-YYYY-MM-DD-slug.json <<EOF
|
|
131
|
+
{
|
|
132
|
+
"defect_class": "fail-open-verify",
|
|
133
|
+
"grep_pattern": "\\\\|\\\\| echo",
|
|
134
|
+
"match_count": 0,
|
|
135
|
+
"sweep_scope": "skills/*/SKILL.md",
|
|
136
|
+
"patched_in_pr": [],
|
|
137
|
+
"tracked_issues": []
|
|
138
|
+
}
|
|
139
|
+
EOF
|
|
140
|
+
bash scripts/verify-generalize-sweep.sh specs/verifications/generalize-sweep-*.json
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Security classes
|
|
144
|
+
|
|
145
|
+
When the defect class is security- or gate-relevant:
|
|
146
|
+
|
|
147
|
+
- Add a row to `security-review` CWE fixture table (see `skills/security-review/SKILL.md` § CWE mapping mandate).
|
|
148
|
+
- If security-impact was MEDIUM+: add regression test, false-positive exclusion rule, and threat-model update (HIGH+).
|