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