bigpowers 2.1.3 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/.pi/package.json +16 -0
  2. package/.pi/prompts/assess-impact.md +76 -0
  3. package/.pi/prompts/audit-code.md +156 -0
  4. package/.pi/prompts/build-epic.md +44 -0
  5. package/.pi/prompts/change-request.md +105 -0
  6. package/.pi/prompts/commit-message.md +135 -0
  7. package/.pi/prompts/compose-workflow.md +40 -0
  8. package/.pi/prompts/craft-skill.md +150 -0
  9. package/.pi/prompts/deepen-architecture.md +235 -0
  10. package/.pi/prompts/define-language.md +79 -0
  11. package/.pi/prompts/define-success.md +62 -0
  12. package/.pi/prompts/delegate-task.md +76 -0
  13. package/.pi/prompts/design-interface.md +96 -0
  14. package/.pi/prompts/develop-tdd.md +375 -0
  15. package/.pi/prompts/diagnose-root.md +23 -0
  16. package/.pi/prompts/dispatch-agents.md +83 -0
  17. package/.pi/prompts/edit-document.md +22 -0
  18. package/.pi/prompts/elaborate-spec.md +81 -0
  19. package/.pi/prompts/enforce-first.md +77 -0
  20. package/.pi/prompts/evolve-skill.md +38 -0
  21. package/.pi/prompts/execute-plan.md +54 -0
  22. package/.pi/prompts/fix-bug.md +36 -0
  23. package/.pi/prompts/grill-me.md +95 -0
  24. package/.pi/prompts/grill-with-docs.md +37 -0
  25. package/.pi/prompts/guard-git.md +212 -0
  26. package/.pi/prompts/hook-commits.md +93 -0
  27. package/.pi/prompts/inspect-quality.md +105 -0
  28. package/.pi/prompts/investigate-bug.md +117 -0
  29. package/.pi/prompts/kickoff-branch.md +99 -0
  30. package/.pi/prompts/map-codebase.md +70 -0
  31. package/.pi/prompts/migrate-spec.md +482 -0
  32. package/.pi/prompts/model-domain.md +227 -0
  33. package/.pi/prompts/orchestrate-project.md +161 -0
  34. package/.pi/prompts/organize-workspace.md +159 -0
  35. package/.pi/prompts/plan-refactor.md +77 -0
  36. package/.pi/prompts/plan-release.md +145 -0
  37. package/.pi/prompts/plan-work.md +161 -0
  38. package/.pi/prompts/release-branch.md +158 -0
  39. package/.pi/prompts/request-review.md +70 -0
  40. package/.pi/prompts/research-first.md +62 -0
  41. package/.pi/prompts/reset-baseline.md +20 -0
  42. package/.pi/prompts/respond-review.md +70 -0
  43. package/.pi/prompts/run-evals.md +56 -0
  44. package/.pi/prompts/run-planning.md +26 -0
  45. package/.pi/prompts/scope-work.md +23 -0
  46. package/.pi/prompts/search-skills.md +21 -0
  47. package/.pi/prompts/seed-conventions.md +132 -0
  48. package/.pi/prompts/session-state.md +146 -0
  49. package/.pi/prompts/setup-environment.md +23 -0
  50. package/.pi/prompts/simulate-agents.md +25 -0
  51. package/.pi/prompts/slice-tasks.md +23 -0
  52. package/.pi/prompts/spike-prototype.md +94 -0
  53. package/.pi/prompts/stocktake-skills.md +40 -0
  54. package/.pi/prompts/survey-context.md +129 -0
  55. package/.pi/prompts/terse-mode.md +37 -0
  56. package/.pi/prompts/trace-requirement.md +68 -0
  57. package/.pi/prompts/using-bigpowers.md +105 -0
  58. package/.pi/prompts/validate-fix.md +98 -0
  59. package/.pi/prompts/verify-work.md +125 -0
  60. package/.pi/prompts/visual-dashboard.md +51 -0
  61. package/.pi/prompts/wire-observability.md +92 -0
  62. package/.pi/prompts/write-document.md +244 -0
  63. package/.pi/skills/assess-impact/SKILL.md +77 -0
  64. package/.pi/skills/audit-code/SKILL.md +157 -0
  65. package/.pi/skills/build-epic/SKILL.md +45 -0
  66. package/.pi/skills/change-request/SKILL.md +106 -0
  67. package/.pi/skills/commit-message/SKILL.md +136 -0
  68. package/.pi/skills/compose-workflow/SKILL.md +41 -0
  69. package/.pi/skills/craft-skill/SKILL.md +151 -0
  70. package/.pi/skills/deepen-architecture/SKILL.md +236 -0
  71. package/.pi/skills/define-language/SKILL.md +80 -0
  72. package/.pi/skills/define-success/SKILL.md +63 -0
  73. package/.pi/skills/delegate-task/SKILL.md +77 -0
  74. package/.pi/skills/design-interface/SKILL.md +97 -0
  75. package/.pi/skills/develop-tdd/SKILL.md +376 -0
  76. package/.pi/skills/diagnose-root/SKILL.md +24 -0
  77. package/.pi/skills/dispatch-agents/SKILL.md +84 -0
  78. package/.pi/skills/edit-document/SKILL.md +23 -0
  79. package/.pi/skills/elaborate-spec/SKILL.md +82 -0
  80. package/.pi/skills/enforce-first/SKILL.md +78 -0
  81. package/.pi/skills/evolve-skill/SKILL.md +39 -0
  82. package/.pi/skills/execute-plan/SKILL.md +55 -0
  83. package/.pi/skills/fix-bug/SKILL.md +37 -0
  84. package/.pi/skills/grill-me/SKILL.md +96 -0
  85. package/.pi/skills/grill-with-docs/SKILL.md +38 -0
  86. package/.pi/skills/guard-git/SKILL.md +213 -0
  87. package/.pi/skills/hook-commits/SKILL.md +94 -0
  88. package/.pi/skills/inspect-quality/SKILL.md +106 -0
  89. package/.pi/skills/investigate-bug/SKILL.md +118 -0
  90. package/.pi/skills/kickoff-branch/SKILL.md +100 -0
  91. package/.pi/skills/map-codebase/SKILL.md +71 -0
  92. package/.pi/skills/migrate-spec/SKILL.md +483 -0
  93. package/.pi/skills/model-domain/SKILL.md +228 -0
  94. package/.pi/skills/orchestrate-project/SKILL.md +162 -0
  95. package/.pi/skills/organize-workspace/SKILL.md +160 -0
  96. package/.pi/skills/plan-refactor/SKILL.md +78 -0
  97. package/.pi/skills/plan-release/SKILL.md +146 -0
  98. package/.pi/skills/plan-work/SKILL.md +162 -0
  99. package/.pi/skills/release-branch/SKILL.md +159 -0
  100. package/.pi/skills/request-review/SKILL.md +71 -0
  101. package/.pi/skills/research-first/SKILL.md +63 -0
  102. package/.pi/skills/reset-baseline/SKILL.md +21 -0
  103. package/.pi/skills/respond-review/SKILL.md +71 -0
  104. package/.pi/skills/run-evals/SKILL.md +57 -0
  105. package/.pi/skills/run-planning/SKILL.md +27 -0
  106. package/.pi/skills/scope-work/SKILL.md +24 -0
  107. package/.pi/skills/search-skills/SKILL.md +22 -0
  108. package/.pi/skills/seed-conventions/SKILL.md +133 -0
  109. package/.pi/skills/session-state/SKILL.md +147 -0
  110. package/.pi/skills/setup-environment/SKILL.md +24 -0
  111. package/.pi/skills/simulate-agents/SKILL.md +26 -0
  112. package/.pi/skills/slice-tasks/SKILL.md +24 -0
  113. package/.pi/skills/spike-prototype/SKILL.md +95 -0
  114. package/.pi/skills/stocktake-skills/SKILL.md +41 -0
  115. package/.pi/skills/survey-context/SKILL.md +130 -0
  116. package/.pi/skills/terse-mode/SKILL.md +38 -0
  117. package/.pi/skills/trace-requirement/SKILL.md +69 -0
  118. package/.pi/skills/using-bigpowers/SKILL.md +106 -0
  119. package/.pi/skills/validate-fix/SKILL.md +99 -0
  120. package/.pi/skills/verify-work/SKILL.md +126 -0
  121. package/.pi/skills/visual-dashboard/SKILL.md +52 -0
  122. package/.pi/skills/wire-observability/SKILL.md +93 -0
  123. package/.pi/skills/write-document/SKILL.md +245 -0
  124. package/CHANGELOG.md +14 -0
  125. package/CLAUDE.md +1 -1
  126. package/CONVENTIONS.md +16 -10
  127. package/README.md +30 -4
  128. package/build-epic/SKILL.md +1 -1
  129. package/deepen-architecture/SKILL.md +2 -0
  130. package/define-language/SKILL.md +2 -0
  131. package/develop-tdd/REFERENCE.md +61 -0
  132. package/develop-tdd/SKILL.md +19 -119
  133. package/diagnose-root/SKILL.md +2 -0
  134. package/edit-document/SKILL.md +2 -0
  135. package/fix-bug/SKILL.md +3 -1
  136. package/grill-me/SKILL.md +3 -1
  137. package/grill-with-docs/SKILL.md +3 -1
  138. package/investigate-bug/SKILL.md +5 -11
  139. package/map-codebase/SKILL.md +3 -1
  140. package/migrate-spec/REFERENCE-GSD.md +4 -4
  141. package/migrate-spec/REFERENCE.md +33 -6
  142. package/migrate-spec/SKILL.md +1 -14
  143. package/model-domain/SKILL.md +2 -0
  144. package/orchestrate-project/REFERENCE.md +1 -1
  145. package/package.json +3 -2
  146. package/plan-release/SKILL.md +1 -1
  147. package/plan-work/REFERENCE.md +104 -0
  148. package/plan-work/SKILL.md +17 -151
  149. package/release-branch/REFERENCE.md +55 -0
  150. package/release-branch/SKILL.md +19 -117
  151. package/request-review/SKILL.md +1 -1
  152. package/run-planning/SKILL.md +3 -2
  153. package/scope-work/SKILL.md +3 -1
  154. package/scripts/audit-compliance.sh +15 -3
  155. package/scripts/check-skill-size.sh +79 -0
  156. package/scripts/generate-reference-tables.sh +64 -0
  157. package/scripts/project-survey.sh +2 -2
  158. package/scripts/sync-skills.sh +51 -3
  159. package/scripts/validate-doctrine.sh +143 -0
  160. package/seed-conventions/REFERENCE.md +63 -0
  161. package/seed-conventions/SKILL.md +23 -177
  162. package/slice-tasks/SKILL.md +3 -1
  163. package/survey-context/SKILL.md +3 -1
  164. package/write-document/SKILL.md +4 -2
@@ -0,0 +1,145 @@
1
+ ---
2
+ description: "RELEASE-INDEX BUILDER — Sequence elaborated epics into specs/release-plan.yaml with WSJF ordering and BCP baselines. NOT a planning-spine substitute: it does not scope work (scope-work) or write story tasks (plan-work). Use after elaborate-spec when the user wants a versioned release index of epics."
3
+ ---
4
+
5
+
6
+ # Plan Release
7
+
8
+ > **HARD GATE** — Do NOT run this skill unless `elaborate-spec` has produced a clear spec or the user has already defined the feature in detail. If the problem is still fuzzy, run `elaborate-spec` first.
9
+
10
+ > **HARD GATE** — `specs/product/SCOPE_LATEST.yaml` (or legacy `specs/product/SCOPE_LATEST.yaml`) must exist. If missing, run `scope-work` first.
11
+
12
+ Synthesize the conversation context into `specs/release-plan.yaml` (index) and shard detail under `specs/epics/`. No new interview — only clarify if something is genuinely ambiguous.
13
+
14
+ ## Outputs
15
+
16
+ | File | Content |
17
+ |------|---------|
18
+ | `specs/release-plan.yaml` | `release.version`, semver bump hint, WSJF-ordered epic list with `id`, `capsule_dir`, `wsjf`, `bcps` — **no story status** |
19
+ | `specs/epics/eNN-<slug>/epic.yaml` | Epic manifest: `id`, `title`, `wsjf`, `total_bcps`, `status`, `stories[]` list |
20
+ | `specs/epics/eNN-<slug>/eNNsYY-<slug>.md` | Story spec in [countable-story-format.md](file:///Users/danielvm/Developer/bigpowers/countable-story-format.md) with 20 sections and Gherkin acceptance criteria |
21
+ | `specs/epics/eNN-<slug>/eNNsYY-tasks.yaml` | Decoupled task checklist with `verify:` commands per task |
22
+ | `specs/execution-status.yaml` | Flat key-value store for story status (`eNNsYY: todo`) |
23
+
24
+ ## Epic Capsule Structure
25
+
26
+ All epics use capsule directories (no flat/folder distinction):
27
+
28
+ ```
29
+ specs/epics/e01-auth-system/
30
+ ├── epic.yaml # Epic manifest
31
+ ├── adr/ # Epic-local ADRs (created lazily)
32
+ ├── e01s01-login.md # Story spec (countable-story-format)
33
+ ├── e01s01-tasks.yaml # Decoupled task checklist
34
+ ├── e01s02-jwt.md # Story spec
35
+ └── e01s02-tasks.yaml # Decoupled task checklist
36
+ ```
37
+
38
+ **Rationale:** Capsule dirs achieve change isolation (C9), enable archive pruning (C2/C6), and enforce SRP by decoupling spec `.md` from execution `-tasks.yaml` (C1). See `sdd-adequacy-ranking.md` for the full 10-criteria scoring.
39
+
40
+ ## Process
41
+
42
+ ### 1. Draft epics and stories
43
+
44
+ From the conversation context, define:
45
+ - **Epics** — `e01`, `e02`, … (stable IDs; WSJF order in `release-plan.yaml` only)
46
+ - **Stories** — `e01s01`, `e01s02`, … with Gherkin acceptance criteria
47
+
48
+ WSJF-sort epics: score = (Business Value + Time Criticality + Risk Reduction) / Job Size. Highest score first.
49
+
50
+ ### 2. Write acceptance criteria (Gherkin)
51
+
52
+ For each story, write at least one happy-path and one edge-case scenario (countable format §17 if maturity ≥ 3).
53
+
54
+ ### 3. Write tasks with verify commands
55
+
56
+ Every task must have a `verify:` command. No verify command = not a task.
57
+
58
+ ### 4. Save specs/release-plan.yaml
59
+
60
+ ```yaml
61
+ release:
62
+ version: "3.0.0"
63
+ codename: "Feature Name"
64
+ status: planning # planning | in_progress | released
65
+ semantic_release: true
66
+ bump_hint: minor # patch | minor | major — CI decides at merge
67
+ epics:
68
+ - id: e01
69
+ title: Auth System
70
+ wsjf: 4.5
71
+ capsule_dir: epics/e01-auth-system
72
+ - id: e02
73
+ title: User Profile
74
+ wsjf: 3.8
75
+ capsule_dir: epics/e02-user-profile
76
+ ```
77
+
78
+ ### 5. Save epic manifest (`epic.yaml`)
79
+
80
+ Each epic capsule directory contains an `epic.yaml` manifest:
81
+
82
+ ```yaml
83
+ id: e01
84
+ title: Auth System
85
+ wsjf: 4.5
86
+ total_bcps: 8
87
+ status: in_progress
88
+ stories:
89
+ - id: e01s01
90
+ title: Login
91
+ bcps: 3
92
+ status: todo
93
+ spec: e01s01-login.md
94
+ tasks: e01s01-tasks.yaml
95
+ - id: e01s02
96
+ title: JWT Token Management
97
+ bcps: 5
98
+ status: todo
99
+ spec: e01s02-jwt.md
100
+ tasks: e01s02-tasks.yaml
101
+ ```
102
+
103
+ ### 6. Save story specs (countable-story-format .md)
104
+
105
+ Each story becomes a standalone `.md` file following [countable-story-format.md](file:///Users/danielvm/Developer/bigpowers/countable-story-format.md). Minimum: maturity 3 (Countable) with all 20 sections present. Acceptance criteria in §17 use Gherkin scenarios.
106
+
107
+ ### 7. Save decoupled task files (`-tasks.yaml`)
108
+
109
+ Each story has a decoupled `-tasks.yaml` with implementation steps:
110
+
111
+ ```yaml
112
+ story_id: e01s01
113
+ title: Login
114
+ status: todo
115
+ bcps: 3
116
+ tasks:
117
+ - id: 1
118
+ description: "Add login form component tests"
119
+ verify: "npm test -- login-form.test.tsx"
120
+ status: todo
121
+ - id: 2
122
+ description: "Implement login form with validation"
123
+ verify: "npm test -- login-form.test.tsx"
124
+ status: todo
125
+ ```
126
+
127
+ > **HARD GATE** — Every task MUST have a runnable `verify:` command. No `verify:` = not a task.
128
+
129
+ → verify: `bash scripts/validate-specs-yaml.sh`
130
+
131
+ ### 8. Sync execution status
132
+
133
+ ```bash
134
+ bash scripts/sync-status-from-epics.sh
135
+ ```
136
+
137
+ ### 9. Snapshot on planning close (optional)
138
+
139
+ Copy to `specs/product/snapshots/release-<version>/` when the user approves the plan.
140
+
141
+ ### 10. Suggest next steps
142
+
143
+ - Run `assess-impact` before `plan-work` for any story touching existing modules.
144
+ - Run `plan-work` per story for detailed steps inside the epic shard.
145
+ - Run `change-request` if a new requirement arrives mid-flight.
@@ -0,0 +1,161 @@
1
+ ---
2
+ description: "PLANNING SPINE STEP 3 of 3 — Plan the work: write detailed implementation tasks into the active epic capsule (specs/epics/eNN-slug/). Produces countable-story-format .md specs and runnable -tasks.yaml files. Use after slice-tasks (step 2). Not a substitute for scope-work (step 1) or slice-tasks (step 2)."
3
+ ---
4
+
5
+
6
+ # Plan Work
7
+
8
+ > **Spine position:** Step 3 — scope-work → slice-tasks → plan-work.
9
+
10
+ Produce a detailed, verifiable implementation plan in the **active epic capsule directory** (`specs/epics/eNN-slug/`). Output: a story spec `.md` file (countable-story-format) and a decoupled `eNNsYY-tasks.yaml` with runnable verify commands. "I think it works" is not a step.
11
+
12
+ > **HARD GATE** — Do NOT proceed with a plan until the task's success criteria are clear. If success is ambiguous, run `define-success` first to convert the task into "step → verify: <cmd>" pairs.
13
+ >
14
+ > **RECURSIVE DISCIPLINE** — This lifecycle applies to EVERY task, including updating these skills. Never skip planning because a task is "meta" or "just documentation."
15
+
16
+ ## Pre-flight
17
+
18
+ Read: `release-plan.yaml`, `product/SCOPE_LATEST.yaml`, active `epics/<capsule>/epic.yaml`, `tech-architecture/tech-stack.md`, `product/GLOSSARY_LATEST.yaml`.
19
+
20
+ > **ZOOM-OUT MANDATE** (v1.17.0) — If modifying an existing module: (1) State the module's **purpose**. (2) Name its **callers**. (3) List its **contracts**. Cannot answer all three? Stop — scope is misunderstood.
21
+
22
+ If this plan touches an existing module, run `assess-impact` first to understand blast radius.
23
+
24
+ > **DISCOVERY MANDATE** (v1.18.0) — For external API integration, verify the API signature via local docs or search and quote at least one technical detail in the step's context.
25
+
26
+ > **MULTIPLE INTERPRETATIONS (HARD GATE)** — If the task admits ≥2 valid interpretations, list them and get a user decision before drafting any steps.
27
+
28
+ > **COMPLEXITY PUSHBACK (HARD GATE)** — Every new abstraction MUST include a one-sentence "Reason for Depth." If it can't be filled non-trivially, the abstraction is premature — use inline code instead.
29
+
30
+ > **SLOPCHECK (HARD GATE)** — For every external package, tag it `[OK]`, `[SUS]`, or `[SLOP]`. `[SUS]`/`[SLOP]` require human approval before execution.
31
+
32
+ ## Invocation modes
33
+
34
+ - Default: full plan with zoom-out mandate, impact assessment, slopcheck
35
+ - `--fast`: Skip zoom-out and impact assessment. Use for tasks under 3 BCPs with no module interface changes.
36
+
37
+ ## Process
38
+
39
+ 1. **Explore** — Use `Explore` subagent to understand affected modules, existing test patterns, similar prior art, and dependencies.
40
+
41
+ 2. **Draft steps** — Break implementation into the smallest possible steps where each step leaves the codebase working, has one observable outcome, and can be verified with a single command. Red-flag check: name any rationalization you caught before moving to step 3.
42
+
43
+ 3. **Write capsule story spec + tasks** — Output two files inside the active epic capsule. See [REFERENCE.md](REFERENCE.md) for file formats and the plan-template.
44
+
45
+ 4. **Verify step format** — Every step MUST follow: `N. <What to do> → verify: <runnable command>`. See [REFERENCE.md](REFERENCE.md) for good/bad examples.
46
+
47
+ 5. **Review with user** — Confirm step order, granularity, and that verify commands are runnable in this project.
48
+
49
+ After writing capsule tasks, suggest `kickoff-branch` (if not already on a feature branch) then `build-epic`, `execute-plan`, or `develop-tdd`.
50
+
51
+ ## Handoff
52
+
53
+ Gate: READY -> next: kickoff-branch
54
+ Writes: state.yaml handoff.next_skill = kickoff-branch
55
+
56
+ ---
57
+
58
+ # Plan Work — Reference
59
+
60
+ ## Output file formats
61
+
62
+ ### Story spec: `specs/epics/<capsule>/eNNsYY-<slug>.md`
63
+
64
+ Populated countable-story-format with all 20 sections. Minimum maturity: 3 (Countable). Acceptance criteria in §17.
65
+
66
+ ### Task checklist: `specs/epics/<capsule>/eNNsYY-tasks.yaml`
67
+
68
+ ```yaml
69
+ story_id: e01s01
70
+ title: Login
71
+ status: todo
72
+ bcps: 3
73
+ tasks:
74
+ - id: 1
75
+ description: "Add login form component tests"
76
+ verify: "npm test -- login-form.test.tsx"
77
+ status: todo
78
+ ```
79
+
80
+ Update `specs/epics/<capsule>/epic.yaml` manifest to list the story and its BCPs. Run `bash scripts/sync-status-from-epics.sh` after structural changes.
81
+
82
+ ## Plan template
83
+
84
+ ```
85
+ ### Story [X.Y]: [title] — Implementation Steps
86
+
87
+ **type:** feat | fix | refactor
88
+ **context:** domain | infra
89
+ **Context**: [One paragraph: what this story implements and why]
90
+
91
+ ## Steps
92
+
93
+ 1. [Step description] (ref: ADR-NNNN or commit SHA) → verify: `<runnable command>`
94
+ 2. [Step description] (ref: ADR-NNNN or commit SHA) → verify: `<runnable command>`
95
+ ...
96
+
97
+ ## Verification Script (Step-by-Step)
98
+
99
+ [A human-readable, step-by-step script for the user to verify the story's outcome.]
100
+
101
+ 1. [Action 1: e.g. Start the server]
102
+ 2. [Action 2: e.g. Open browser to http://localhost:3000]
103
+ 3. [Observation: e.g. Verify that the login modal appears]
104
+
105
+ ## Out of scope
106
+
107
+ - [Explicit exclusions]
108
+
109
+ ## Risks
110
+
111
+ - [Anything that could go wrong and how to detect it early]
112
+ ```
113
+
114
+ ## Verify step format rules
115
+
116
+ Every step MUST follow this exact format:
117
+ ```
118
+ N. <What to do> → verify: <runnable command that proves it worked>
119
+ ```
120
+
121
+ **Good examples:**
122
+ ```
123
+ 1. Add User model with email and name fields → verify: npm test -- user.test.ts
124
+ 2. Add POST /users endpoint → verify: curl -s -X POST http://localhost:3000/users -d '{"email":"a@b.com"}' | jq .id
125
+ 3. Add email uniqueness constraint → verify: npm test -- user-uniqueness.test.ts
126
+ ```
127
+
128
+ **Bad examples (no verify command):**
129
+ ```
130
+ 1. Implement the user creation flow
131
+ 2. Write tests for the API
132
+ ```
133
+
134
+ ## Sub-operations
135
+
136
+ ### Define Success
137
+
138
+ Before planning, convert task statements into observable "step → verify: <cmd>" pairs:
139
+ - Break the task into observable outcomes (behaviors) rather than implementation steps
140
+ - Write pairs in the format: `[What must be true] → verify: <runnable command>`
141
+ - Challenge completeness: are all required behaviors covered?
142
+ - Get user confirmation: "Does this capture everything the task requires?"
143
+ - Once confirmed, these pairs become the skeleton for plan-work steps
144
+
145
+ ### Zoom-Out Check
146
+
147
+ When modifying an existing module, confirm scope is understood:
148
+ - State the module's **purpose** — what is it responsible for?
149
+ - Name the **callers** — who depends on it?
150
+ - List the **contracts** — what invariants or interfaces must be preserved?
151
+
152
+ If you cannot answer all three without deep code archaeology, scope is misunderstood. Clarify with the user before writing steps.
153
+
154
+ ### Slopcheck
155
+
156
+ For every external package proposed in the plan, tag each with one of:
157
+ - `[OK]` — package is mature, actively maintained, appropriate scope
158
+ - `[SUS]` — suspiciously broad, has maintenance concerns, or unclear fit
159
+ - `[SLOP]` — unmaintained, known security issues, or out of scope
160
+
161
+ `[SUS]` and `[SLOP]` require explicit human approval before the step may execute. Document tags inline next to the package name.
@@ -0,0 +1,158 @@
1
+ ---
2
+ description: Make the merge/PR/keep/discard decision for a feature branch, verify coverage gates, create the PR with gh, and clean up the worktree. Use when a feature is done and ready to ship, or when user says "release", "merge", or "open a PR".
3
+ ---
4
+
5
+
6
+ # Release Branch
7
+
8
+ > **HARD GATE** — Do NOT merge or release if tests fail or if coverage gates are not met. If the branch is red, return to `develop-tdd` to fix regressions or add missing tests before proceeding.
9
+
10
+ Finalize a completed feature branch: verify coverage gates, integrate onto `main`, and clean up the worktree.
11
+
12
+ ## Additional modes
13
+
14
+ - `--hotfix`: Emergency fix. Cherry-pick to main plus immediate tag. Skip PR in solo profile.
15
+
16
+ ## Integrate mode
17
+
18
+ Read `specs/state.yaml` key `workflow_mode` first (`team-pr` | `solo-git`). Fall back to sniffing `profiles/solo-git.md` only when the key is absent.
19
+
20
+ | Mode | When | Ship path |
21
+ |------|------|-----------|
22
+ | **solo-local** | `workflow_mode: solo-git` (or `profiles/solo-git.md` present as fallback) | `bash scripts/land-branch.sh <branch> "<conventional message>"` |
23
+ | **team-pr** | `workflow_mode: team-pr` (default) | `gh pr create` → `gh pr merge --squash` |
24
+
25
+ If unsure and working alone, prefer **solo-local**.
26
+
27
+ ## Process
28
+
29
+ ### 1. Final verification
30
+
31
+ ```bash
32
+ <full test command> && <typecheck command> && <lint command>
33
+ git log main...HEAD --oneline | grep -vE "^[a-f0-9]+ (feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?: .+$" && echo "❌ Non-conventional commits found" || echo "✅ Commits verified"
34
+ ```
35
+
36
+ - [ ] All tests pass, no type errors, no lint violations, all commits follow Conventional Commits
37
+
38
+ ### 2. Coverage check
39
+
40
+ - [ ] Overall coverage ≥ 80%; business logic coverage ≥ 95%
41
+
42
+ ### 3. Diff review
43
+
44
+ - [ ] All commits intentional, no secrets, CONVENTIONS.md compliance
45
+
46
+ ### 4. Decision
47
+
48
+ Options: **Release (solo-local)** / **Open PR** / **Keep branch** / **Discard**
49
+
50
+ ### 5. Solo-local integrate
51
+
52
+ Run `commit-message` to produce the squash commit subject, then:
53
+ ```bash
54
+ bash scripts/land-branch.sh <task-slug> "feat(scope): description"
55
+ ```
56
+
57
+ ### 6. Create PR (team-pr only)
58
+
59
+ See [REFERENCE.md](REFERENCE.md) for the full PR body template and gh commands.
60
+
61
+ ### 7. Merge (team-pr only)
62
+
63
+ ```bash
64
+ gh pr merge --squash --delete-branch
65
+ ```
66
+
67
+ `semantic-release` auto-detects the commit, bumps SemVer, tags the repo, generates release notes.
68
+
69
+ ### 7a. Archive completed epic capsule
70
+
71
+ > **HARD GATE** — When all epic stories are done (all `done` in `execution-status.yaml`), archive the capsule:
72
+
73
+ ```bash
74
+ mv specs/epics/eNN-slug specs/epics/archive/
75
+ ```
76
+
77
+ ### 8. Clean up worktree
78
+
79
+ ```bash
80
+ git worktree prune
81
+ git worktree remove ../<branch-name> 2>/dev/null || true
82
+ git branch -d <branch-name>
83
+ ```
84
+
85
+ ### 8a. Cycle-time recording
86
+
87
+ After landing, record delivery metrics. See [REFERENCE.md](REFERENCE.md) for fields and example row.
88
+
89
+ ### 9. Return to main
90
+
91
+ ```bash
92
+ git checkout main && git status && pwd
93
+ ```
94
+
95
+ Report: "Branch released. Integrate mode: <solo-local|team-pr>. cwd: $(pwd) on $(git branch --show-current)."
96
+
97
+ ## Handoff
98
+
99
+ Gate: READY -> next: survey-context
100
+ Writes: state.yaml handoff.next_skill = survey-context
101
+
102
+ ---
103
+
104
+ # Release Branch — Reference
105
+
106
+ ## PR body template (team-pr mode)
107
+
108
+ ```bash
109
+ PR_TITLE="<type>(<scope>): <description>"
110
+ echo "$PR_TITLE" | grep -vE "^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?: .+$" && echo "❌ ERROR: PR Title must follow Conventional Commits"
111
+
112
+ gh pr create \
113
+ --title "$PR_TITLE" \
114
+ --body "$(cat <<'EOF'
115
+ ## Summary
116
+ - [What this PR does]
117
+ - [Key decisions made]
118
+
119
+ ## Verify
120
+ - [ ] All tests pass
121
+ - [ ] Coverage gates met (≥80% overall, ≥95% business logic)
122
+ - [ ] CONVENTIONS.md compliance verified
123
+ - [ ] PR Title follows Conventional Commits (for automated release)
124
+
125
+ ## specs/ artifacts
126
+ - [List any specs/ files produced or updated]
127
+ EOF
128
+ )"
129
+ ```
130
+
131
+ ## Worktree cleanup details
132
+
133
+ ```bash
134
+ # From the main repo root
135
+ git worktree prune
136
+ git worktree remove ../<branch-name> 2>/dev/null || true
137
+ git branch -d <branch-name>
138
+ ```
139
+
140
+ If `git worktree remove` fails due to uncommitted changes, ask: "There are uncommitted changes in the worktree. Force remove? (y/n)". If yes: `git worktree remove -f ../<branch-name>`.
141
+
142
+ ## Cycle-time recording
143
+
144
+ After landing the branch, record delivery metrics for this story:
145
+
146
+ 1. Write `metrics.story_end` (ISO 8601) to `specs/state.yaml`
147
+ 2. Compute `cycle_minutes`: `story_end` minus `story_start` in minutes
148
+ 3. Compute `bcp_per_hour`: `epic_cycle.story_bcps / (cycle_minutes / 60)`
149
+ 4. Append a row to `specs/metrics/cycle-times.yaml`:
150
+
151
+ ```yaml
152
+ - id: e01s01
153
+ bcps: 3
154
+ start: "2026-06-10T09:45:00Z"
155
+ end: "2026-06-10T11:15:00Z"
156
+ cycle_minutes: 90
157
+ bcp_per_hour: 2.0
158
+ ```
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: Dispatch a fresh reviewer agent with a clean context to critique the code after audit-code passes. The reviewer has no shared state with the coding agent and gives a genuine second opinion. Use after audit-code passes, before committing, or when user wants an independent code review.
3
+ ---
4
+
5
+
6
+ # Request Review
7
+
8
+ Dispatch a fresh reviewer agent with a clean context. The reviewer has no shared state — it can give a genuine second opinion because it hasn't been involved in writing the code.
9
+
10
+ **Distinct from `audit-code`:** `audit-code` is the coding agent checking its own work (internal). This skill dispatches an external agent whose job is to find what the coding agent missed.
11
+
12
+ **Solo developer note:** This replaces the human reviewer. The reviewer agent IS the reviewer.
13
+
14
+ **Run `audit-code` first.** This skill assumes `audit-code` has already passed. Don't waste a reviewer's attention on hygiene issues you could have caught yourself.
15
+
16
+ ## Process
17
+
18
+ ### 1. Prepare the review brief
19
+
20
+ Write a self-contained brief for the reviewer agent. Include:
21
+
22
+ - What was built (feature description, not implementation)
23
+ - Which files changed (the diff context)
24
+ - What `specs/` artifacts are relevant (active `epics/eNN-*.yaml`, `requirements/SCOPE_LATEST.yaml`, `bugs/BUG-*.md`)
25
+ - What CONVENTIONS.md requires
26
+ - What the verify command is
27
+ - What you're most uncertain about (where you want fresh eyes)
28
+
29
+ ### 2. Dispatch the reviewer agent
30
+
31
+ Use the Agent tool with a completely fresh context. The agent prompt must be self-contained — no references to "our conversation" or "what we discussed."
32
+
33
+ ```
34
+ You are a code reviewer. Review the following code changes.
35
+
36
+ Context: [feature description]
37
+ CONVENTIONS.md rules: [paste relevant sections]
38
+ Active epic shard: [paste or summarize from specs/epics/]
39
+
40
+ Diff: [paste git diff or describe changed files]
41
+
42
+ Verify command: [runnable command]
43
+
44
+ Review for:
45
+ 1. Correctness — does the code do what was intended?
46
+ 2. CONVENTIONS.md compliance — are all rules followed?
47
+ 3. Test quality — do tests verify behavior (not implementation)?
48
+ 4. Design — are there simpler or more robust approaches?
49
+ 5. Edge cases — what inputs or states could cause failures?
50
+ 6. Security — any injection, auth, or data exposure risks?
51
+
52
+ For each finding, categorize as: must-fix / should-fix / consider.
53
+ Run the verify command and report the result.
54
+ ```
55
+
56
+ ### 3. Collect the report
57
+
58
+ When the reviewer returns:
59
+ - Read every finding before acting on any
60
+ - Note the verify command result
61
+ - Compute the quality score: `100 × (total_items − must_fix − should_fix) / total_items`
62
+ - Report the score to the user
63
+
64
+ > **HARD GATE** — If score < 94%, do NOT merge. Run `respond-review` to resolve must-fix and should-fix findings first. The 94% threshold also applies to the compliance SCORE computed by `npm run compliance` (scripts/audit-compliance.sh): SCORE = passing Gherkin scenarios / total × 100.
65
+
66
+ ### 4. Hand off to respond-review
67
+
68
+ Pass the reviewer's report to `respond-review` to categorize findings and apply fixes.
69
+
70
+ Report to user: "Review complete. [N] findings: [X] must-fix, [Y] should-fix, [Z] consider. Running respond-review."
@@ -0,0 +1,62 @@
1
+ ---
2
+ description: Look-before-build — search registries, repo, existing skills, and web for prior art before implementing. Appends Prior Art to the spec. Use after survey-context and before elaborate-spec, when adding dependencies, or when the task may already be solved.model: sonnet
3
+ ---
4
+
5
+
6
+ # Research First
7
+
8
+ > **HARD GATE** — Do NOT implement until prior art is searched. Minimum outcome: adopt, extend, compose, or build — with evidence.
9
+
10
+ ## Process
11
+
12
+ 1. Read `specs/product/SCOPE_LATEST.yaml`, `specs/release-plan.yaml + epic shards`, and the current task statement.
13
+ 2. Search in order: this repo → bigpowers skills (`search-skills`) → package registries → web docs.
14
+ 3. For each candidate: note name, URL/path, fit (adopt | extend | compose | build).
15
+ 4. Append `## Prior Art` to `requirements/SCOPE_LATEST.yaml` notes or the active epic story.
16
+
17
+ ## Outcome matrix
18
+
19
+ | Verdict | Action |
20
+ |---------|--------|
21
+ | **adopt** | Use as-is; link in plan; no new code |
22
+ | **extend** | Wrap or configure existing solution |
23
+ | **compose** | Chain existing skills/modules |
24
+ | **build** | New implementation — justify why others failed |
25
+
26
+ ## Verify
27
+
28
+ → verify: `grep -c "Prior Art" specs/product/SCOPE_LATEST.yaml specs/release-plan.yaml + epic shards 2>/dev/null | awk '{s+=$1} END {if(s>0) print "OK"; else print "MISSING"}'`
29
+
30
+ See [REFERENCE.md](REFERENCE.md) for search commands and registry checklist.
31
+
32
+ ---
33
+
34
+ # Research First — Reference
35
+
36
+ ## Search commands
37
+
38
+ ```bash
39
+ # Repo prior art
40
+ rg -l "<keyword>" --glob '!node_modules' .
41
+ find . -maxdepth 3 -name "SKILL.md" | xargs grep -l "<intent>"
42
+
43
+ # Installed packages (if package.json exists)
44
+ cat package.json | jq '.dependencies,.devDependencies' 2>/dev/null
45
+ ```
46
+
47
+ ## Registry checklist
48
+
49
+ - [ ] npm / PyPI / crates.io (if applicable)
50
+ - [ ] Existing bigpowers skill (`bash scripts/build-skill-index.sh && rg "<intent>" specs/SKILL-SEARCH-INDEX.md`)
51
+ - [ ] Project `docs/` and `specs/adr/`
52
+ - [ ] Official library documentation (quote one API detail)
53
+
54
+ ## Prior Art template
55
+
56
+ ```markdown
57
+ ## Prior Art
58
+
59
+ | Candidate | Source | Verdict | Notes |
60
+ |-----------|--------|---------|-------|
61
+ | ... | ... | adopt/extend/compose/build | ... |
62
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: Restore the project to a known clean state between agent runs or experiments. Use between benchmark runs, after a failed spike, or when user wants a clean working tree.model: haiku
3
+ ---
4
+
5
+
6
+ # Reset Baseline
7
+
8
+ > **HARD GATE** — Confirm with user before any destructive git operation. Never `reset --hard` without explicit approval.
9
+
10
+ ## Process
11
+
12
+ 1. `git status` — list uncommitted and untracked files.
13
+ 2. Ask: stash, discard, or keep each category.
14
+ 3. Safe defaults: `git stash push -u -m "reset-baseline"` for WIP; never force-push.
15
+ 4. Re-run `setup-environment` after reset.
16
+ 5. Run test baseline from `kickoff-branch` verify command.
17
+
18
+ ## Verify
19
+
20
+ → verify: `git status --short | wc -l | awk '{if($1==0) print "OK"; else print "DIRTY:" $1}'
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: Act on a reviewer agent's feedback systematically — categorize findings, apply fixes, verify tests still pass. Use after request-review returns a report, or when user wants to work through code review findings.
3
+ ---
4
+
5
+
6
+ # Respond Review
7
+ > **HARD GATE** — **HARD GATE** — Every reviewer comment must be addressed (fix, disagree + document reason, or ask clarification). Do NOT ignore feedback and merge.
8
+
9
+
10
+ Work through reviewer findings systematically. Don't apply changes blindly — categorize first, then decide, then fix, then verify.
11
+
12
+ ## Process
13
+
14
+ ### 1. Read the full review report
15
+
16
+ Read every finding before acting on any of them. Get the full picture first.
17
+
18
+ ### 2. Categorize findings
19
+
20
+ For each finding, assign a category:
21
+
22
+ | Category | Meaning | Action |
23
+ |----------|---------|--------|
24
+ | **must-fix** | Correctness bug, security issue, test failure, CONVENTIONS.md violation | Fix before proceeding |
25
+ | **should-fix** | Code quality issue, naming, clarity — worth fixing but not blocking | Fix if time allows |
26
+ | **consider** | Architectural suggestion, alternative approach — may or may not apply | Discuss with user |
27
+
28
+ Create a numbered list of all findings with their categories.
29
+
30
+ ### 3. Confirm with user (for consider-category items)
31
+
32
+ For each "consider" item, briefly describe the trade-off and ask: "Apply, skip, or discuss?"
33
+
34
+ ### 4. Apply must-fix items first
35
+
36
+ Fix every must-fix item. For each one:
37
+ - Describe what you're changing and why
38
+ - Make the change
39
+ - Run the verify command if one exists for this area
40
+
41
+ ### 5. Apply should-fix items
42
+
43
+ Apply should-fix items. If any are large enough to warrant their own commit, note them separately.
44
+
45
+ ### 6. Run the full suite
46
+
47
+ After all changes are applied:
48
+
49
+ ```bash
50
+ <full test command>
51
+ <typecheck command>
52
+ <lint command>
53
+ ```
54
+
55
+ - [ ] All tests pass
56
+ - [ ] No type errors
57
+ - [ ] No lint violations
58
+
59
+ ### 7. Report
60
+
61
+ Summarize what was applied and what was skipped:
62
+
63
+ ```
64
+ Applied (must-fix): #1, #2, #3
65
+ Applied (should-fix): #4
66
+ Skipped (consider): #5 — agreed with user to defer
67
+ All tests pass.
68
+ ```
69
+
70
+ Suggest next skill: `commit-message`.