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
@@ -10,51 +10,21 @@ description: Test-driven development with red-green-refactor loop using vertical
10
10
  >
11
11
  > **HARD GATE** — Do NOT write code before you have a plan. New feature: `plan-work` → epic capsule tasks. Bug: `investigate-bug` → `specs/bugs/BUG-*.md` (or use `fix-bug` orchestrator).
12
12
  >
13
- > **RECURSIVE DISCIPLINE** — This lifecycle apply to EVERY task, including updating these skills. Never skip planning because a task is "meta" or "just documentation."
13
+ > **RECURSIVE DISCIPLINE** — This lifecycle applies to EVERY task, including updating these skills. Never skip planning because a task is "meta" or "just documentation."
14
14
 
15
15
  ## Philosophy
16
16
 
17
- **Core principle**: Tests should verify behavior through public interfaces, not implementation details. Code can change entirely; tests shouldn't.
18
-
19
- **Good tests** are integration-style: they exercise real code paths through public APIs. They describe _what_ the system does, not _how_ it does it. A good test reads like a specification — "user can checkout with valid cart" tells you exactly what capability exists. These tests survive refactors because they don't care about internal structure.
20
-
21
- **Bad tests** are coupled to implementation. They mock internal collaborators, test private methods, or verify through external means. The warning sign: your test breaks when you refactor, but behavior hasn't changed.
22
-
23
- See [tests.md](tests.md) for examples and [mocking.md](mocking.md) for mocking guidelines.
24
-
25
- ## Anti-Pattern: Horizontal Slices
26
-
27
- **DO NOT write all tests first, then all implementation.** This is "horizontal slicing" — treating RED as "write all tests" and GREEN as "write all code."
28
-
29
- This produces **crap tests**:
30
-
31
- - Tests written in bulk test _imagined_ behavior, not _actual_ behavior
32
- - You end up testing the _shape_ of things rather than user-facing behavior
33
- - Tests become insensitive to real changes
34
-
35
- **Correct approach**: Vertical slices via tracer bullets. One test → one implementation → repeat.
36
-
37
- ```
38
- WRONG (horizontal):
39
- RED: test1, test2, test3, test4, test5
40
- GREEN: impl1, impl2, impl3, impl4, impl5
41
-
42
- RIGHT (vertical):
43
- RED→GREEN: test1→impl1
44
- RED→GREEN: test2→impl2
45
- RED→GREEN: test3→impl3
46
- ...
47
- ```
17
+ Tests verify behavior through public interfaces, not implementation details. A good test reads like a specification. See [REFERENCE.md](REFERENCE.md) for the horizontal-slice anti-pattern and TDD phase detail.
48
18
 
49
19
  ## Red Flags
50
20
 
51
- If you find yourself thinking these things, you are likely deviating from production-grade craft. Stop and reconsider.
21
+ If you catch yourself thinking these, stop and reconsider — you are likely deviating from production-grade craft.
52
22
 
53
23
  | Red Flag | Reality |
54
24
  | :--- | :--- |
55
25
  | "This is too simple to need tests." | Simple code is where bugs hide. If it's simple, the test is cheap. |
56
- | "I'll refactor this later." | "Later" is when technical debt becomes a bankruptcy. Refactor while Green. |
57
- | "The tests are already comprehensive." | If you're adding behavior, you need a new test. Coverage != Correctness. |
26
+ | "I'll refactor this later." | "Later" is when technical debt becomes bankruptcy. Refactor while Green. |
27
+ | "The tests are already comprehensive." | If you're adding behavior, you need a new test. Coverage Correctness. |
58
28
  | "I'm just fixing a small bug." | Small bugs often indicate deep interface flaws. Investigate root cause. |
59
29
  | "I need to mock this internal class." | Mocking internals couples tests to implementation. Mock only I/O. |
60
30
  | "This refactor is out of scope." | Leave the code cleaner than you found it (Boy Scout Rule). |
@@ -63,114 +33,44 @@ If you find yourself thinking these things, you are likely deviating from produc
63
33
 
64
34
  ### 1. Planning
65
35
 
66
- Before writing any code:
67
-
68
36
  - [ ] Read active `specs/epics/*/epic.yaml` story tasks or `specs/bugs/BUG-*.md` — understand verify steps
69
- - [ ] Confirm with user what interface changes are needed
70
- - [ ] Confirm with user which behaviors to test (prioritize)
71
- - [ ] Identify opportunities for [deep modules](deep-modules.md) (small interface, deep implementation)
72
- - [ ] Design interfaces for [testability](interface-design.md)
73
- - [ ] List the behaviors to test (not implementation steps)
37
+ - [ ] Confirm interface changes and behaviors to test (prioritize)
38
+ - [ ] Design interfaces for testability identify [deep modules](deep-modules.md) opportunities
74
39
  - [ ] Get user approval on the plan
75
40
 
76
- Ask: "What should the public interface look like? Which behaviors are most important to test?"
77
-
78
- **You can't test everything.** Confirm with the user exactly which behaviors matter most. Focus testing effort on critical paths and complex logic.
79
-
80
- Apply the **enforce-first** F.I.R.S.T rubric when writing tests: Fast, Independent, Repeatable, Self-Validating, Timely.
41
+ Apply the **enforce-first** F.I.R.S.T rubric: Fast, Independent, Repeatable, Self-Validating, Timely.
81
42
 
82
43
  ### 2. Tracer Bullet
83
44
 
84
45
  Write ONE test that confirms ONE thing about the system:
85
46
 
86
47
  ```
87
- RED: Write test for first behavior → test fails → commit via commit-message: test(<scope>): ...
88
- GREEN: Write minimal code to pass → test passes → commit: feat(<scope>): ... or fix(<scope>): ...
48
+ RED: Write test for first behavior → test fails → commit: test(<scope>): ...
49
+ GREEN: Write minimal code to pass → test passes → commit: feat(<scope>): ...
89
50
  REFACTOR (optional): clean up → commit: refactor(<scope>): ...
90
51
  ```
91
52
 
92
- This is your tracer bullet — proves the path works end-to-end.
93
-
94
53
  ### 3. Incremental Loop
95
54
 
96
- > **STREAM CONTINUITY** — When writing file content, output in continuous chunks of ~200 lines. Do not pause. Continue immediately until complete. If you need time, emit a placeholder comment rather than going silent.
55
+ > **STREAM CONTINUITY** — When writing file content, output in continuous chunks of ~200 lines. Do not pause. Emit a placeholder comment rather than going silent.
97
56
 
98
- For each remaining behavior:
57
+ For each remaining behavior: RED → GREEN → REFACTOR (optional). One test at a time. Commit after every GREEN phase.
99
58
 
100
- ```
101
- RED: Write next test → fails → commit: test(<scope>): ...
102
- GREEN: Minimal code to pass → passes → commit: feat|fix(<scope>): ...
103
- REFACTOR (optional): → commit: refactor(<scope>): ... (use commit-message skill for title/body)
104
- ```
59
+ ### 4. Visual Slices (UI alternate workflow)
105
60
 
106
- Rules:
107
-
108
- - One test at a time
109
- - Only enough code to pass current test
110
- - Don't anticipate future tests
111
- - Keep tests focused on observable behavior
112
- - **Atomic Commits**: Commit after every GREEN phase to record progress and prevent large diffs.
113
-
114
- ### 4. Visual Slices (UI Alternate Workflow)
115
-
116
- For UI components (SwiftUI, React, Flutter) where behavioral unit testing is brittle or low-signal:
117
-
118
- 1. **Test-First Logic**: Extract logic (state transitions, formatting, validation) into a separate Controller, ViewModel, or Hook. This logic MUST follow pure TDD (Red-Green-Refactor).
119
- 2. **Visual Verification**: For the View/Component itself, use "Visual Slices":
120
- - **RED**: Write the component signature and a basic preview/test snapshot that fails (or displays placeholder).
121
- - **GREEN**: Implement the UI and verify visually via manual run, preview, or snapshot test.
122
- - **REFINE**: Adjust styling and layout until it matches the "rich aesthetics" requirement.
123
- 3. **COMMIT**: git commit -m "feat(ui): <component name> visual slice verified"
61
+ For UI components where behavioral unit testing is brittle: extract logic into a Controller/ViewModel/Hook (pure TDD), then use Visual Slices for the View layer. See [REFERENCE.md](REFERENCE.md) for the full Visual Slices procedure.
124
62
 
125
63
  ### 5. Refactor
126
64
 
127
- After all tests pass, look for [refactor candidates](refactoring.md):
128
-
129
- - [ ] Extract duplication
130
- - [ ] Deepen modules (move complexity behind simple interfaces)
131
- - [ ] Apply SOLID principles where natural
132
- - [ ] Consider what new code reveals about existing code
133
- - [ ] Run tests after each refactor step
134
-
135
- **Never refactor while RED.** Get to GREEN first.
136
-
137
- ### 5. Verify step
138
-
139
- After every behavior cycle, run the verify command from the active epic task if one exists. Show evidence before declaring the step done.
140
-
141
- ### 6. Manual Verification Handover
142
-
143
- Once the story is complete and all tests pass:
144
- 1. Locate the **Verification Script** in the active epic capsule (`specs/epics/`) for this story.
145
- 2. Present the script to the user as a step-by-step guide.
146
- 3. Wait for the user to confirm the behavioral correctness before moving to the next story or declaring the task done.
147
-
148
- ## TDD phases
149
-
150
- ### Red Phase
151
-
152
- Write a failing test first that confirms the behavior you want to implement:
153
-
154
- - Test describes the desired observable behavior through the public interface
155
- - Run the test to confirm it fails for the right reason (not a syntax error, not a typo)
156
- - Commit the failing test: `git commit -m "test(<scope>): <description>"`
157
-
158
- ### Green Phase
159
-
160
- Write the minimum amount of code to make the test pass:
65
+ After all tests pass: extract duplication, deepen modules, apply SOLID principles. **Never refactor while RED.**
161
66
 
162
- - No extra logic, no anticipated future cases, no premature optimization
163
- - Focus only on making the current test pass
164
- - Commit the passing code: `git commit -m "feat(<scope>): <description>" or "fix(<scope>): <description>"`
67
+ ### 6. Verify
165
68
 
166
- ### Refactor Phase
69
+ After every behavior cycle, run the verify command from the active epic task. Show evidence before declaring the step done.
167
70
 
168
- Improve the code structure, naming, and clarity without changing behavior:
71
+ ### 7. Manual Verification Handover
169
72
 
170
- - Extract duplication, apply SOLID principles where natural, deepen modules
171
- - Run tests after each refactor step to ensure behavior is preserved
172
- - Commit refactoring: `git commit -m "refactor(<scope>): <description>"`
173
- - Apply the Boy Scout Rule: leave the code cleaner than you found it
73
+ Once all tests pass: locate the Verification Script in the active epic capsule, present it to the user step-by-step, and wait for confirmation of behavioral correctness.
174
74
 
175
75
  ## Checklist Per Cycle
176
76
 
@@ -6,6 +6,8 @@ model: sonnet
6
6
 
7
7
  # Diagnose Root
8
8
 
9
+ **Boundary**: Canonical, reusable 4-phase RCA engine. Invoked by `investigate-bug` (as step 2 of the end-to-end flow) and by `fix-bug` (when no bug file exists). Does not write the bug file — that is `investigate-bug`'s responsibility.
10
+
9
11
  Four phases — do not skip. Update the active `specs/bugs/BUG-*.md` file at each phase.
10
12
 
11
13
  ## Phases
@@ -6,6 +6,8 @@ description: Edit and improve documents by restructuring sections, improving cla
6
6
 
7
7
  # Edit Document
8
8
 
9
+ **Distinct from `write-document`:** Use this skill when the document already exists and needs restructuring, clarity, or prose improvements. Use `write-document` to create a document from scratch.
10
+
9
11
  > **HARD GATE** — Document edits must preserve intent and accuracy. Do NOT remove or contradict existing content without understanding why it was written. Check git history for context.
10
12
 
11
13
  ## Process
package/fix-bug/SKILL.md CHANGED
@@ -6,13 +6,15 @@ description: Bug fix orchestrator — active_flow fix_bug; reads specs/bugs/BUG-
6
6
 
7
7
  # Fix Bug
8
8
 
9
+ **Boundary**: Orchestrator flow — chains `investigate-bug` (entry point + RCA via `diagnose-root`) → `develop-tdd` → `validate-fix`. Does not implement RCA or write bug files directly.
10
+
9
11
  Orchestrates **fix_bug** flow without mixing epic build state.
10
12
 
11
13
  > **HARD GATE** — Set `specs/state.yaml` `active_flow: fix_bug`.
12
14
 
13
15
  ## Process
14
16
 
15
- 1. If no `specs/bugs/BUG-*.md`, run `investigate-bug` first (YAML frontmatter + fix plan in file).
17
+ 1. If no `specs/bugs/BUG-*.md`, run `investigate-bug` first — it handles history check, RCA (via `diagnose-root`), fix approach, and writes the bug file.
16
18
  2. `develop-tdd` against the bug file's verify steps.
17
19
  3. `validate-fix` — re-run failing test, full suite, lint.
18
20
  4. `bash scripts/sync-bugs-registry.sh` — refresh `specs/bugs/registry.yaml`.
package/grill-me/SKILL.md CHANGED
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: grill-me
3
3
  model: sonnet
4
- description: Stress-test a plan or design through relentless questioning until every decision is resolved. Two modes: Design (default Q&A on decisions) and Docs (grounds every challenge in real library or API documentation). Use when user wants to challenge a plan, validate API assumptions, or mentions "grill me" or "grill me with docs".
4
+ description: Interactive assumption-surfacing Q&A that stress-tests a plan through relentless questioning until every decision is resolved. Use when user wants to challenge a plan, validate decisions from conversation/context, or mentions "grill me". For doc-grounded variant, use grill-with-docs.
5
5
  ---
6
6
 
7
7
  # Grill Me
8
8
 
9
+ > **Use this vs grill-with-docs:** `grill-me` surfaces assumptions from the conversation and context alone — no documentation fetching. Use `grill-with-docs` (the doc-grounded variant) when the plan relies on a specific library or external API and every challenge must cite a real doc URL.
10
+
9
11
  Two modes. Default is **Design**. Switch to **Docs** by saying "grill me with docs" or when the plan relies on a specific library or external API.
10
12
 
11
13
  > **HARD GATE** — Do NOT accept a design until every hard decision has been stress-tested. "Seems right" is not a decision. Grilling must identify and resolve tensions before build begins.
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: grill-with-docs
3
- description: Stress-test plan assumptions grounded in real library or API documentation URLs. Use when the plan depends on a specific library or external API, or as a docs-grounded variant of grill-me.
3
+ description: Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API.
4
4
  model: opus
5
5
  ---
6
6
 
7
7
  # Grill With Docs
8
8
 
9
+ > **Use this vs grill-me:** `grill-with-docs` is the doc-grounded variant of `grill-me`. Use it when the plan relies on external libraries or APIs and every challenge must be grounded in and cite a real documentation URL. Use `grill-me` for context-only assumption surfacing without fetching docs.
10
+
9
11
  > **HARD GATE** — Every challenge must cite a real documentation URL. No hallucinated APIs.
10
12
 
11
13
  ## Process
@@ -6,6 +6,8 @@ description: Investigate a bug or issue by exploring the codebase to find root c
6
6
 
7
7
  # Investigate Bug
8
8
 
9
+ **Boundary**: End-to-end bug entry point — history check → RCA (via `diagnose-root`) → fix approach → TDD plan → bug file. Delegates the 4-phase RCA to `diagnose-root`; does not re-implement it.
10
+
9
11
  Investigate a reported problem, find its root cause, and write a TDD fix plan to `specs/bugs/BUG-*.md`. This is a mostly hands-off workflow — minimize questions to the user.
10
12
 
11
13
  ## Process
@@ -26,23 +28,15 @@ Do NOT ask follow-up questions yet. Start investigating immediately.
26
28
 
27
29
  ### 2. Explore and diagnose (4-phase RCA)
28
30
 
29
- Use the Agent tool with subagent_type=Explore to investigate the codebase. Run these phases in order:
30
-
31
- **Phase 1 — Reproduce**: Confirm the failure is consistent. Document exact inputs, environment, and observed vs. expected output. Do not proceed until you can reproduce reliably.
32
-
33
- **Phase 2 — Isolate**: Trace the code path from entry point to failure. Binary-search the call stack to find which layer first produces wrong output. Target: a single function or module where the wrong behavior first appears.
34
-
35
- **Phase 3 — Hypothesize**: Write a falsifiable hypothesis: "The bug occurs because [condition] causes [behavior] instead of [expected]." Generate at least 2 alternatives. Rank by probability.
36
-
37
- **Phase 4 — Verify**: Add a targeted assertion or log that fires if your top hypothesis is correct. Run the reproduction case. If confirmed, document the root cause. If not, return to Phase 3 with new evidence.
38
-
39
- > **HARD GATE** — Do NOT proceed to Step 3 (Fix Approach) until Phase 4 produces a verified root cause. "It probably is X" is not verified.
31
+ Run the 4-phase root-cause analysis via the `diagnose-root` skill (Reproduce → Isolate → Hypothesize → Verify). That skill is the canonical RCA engine — do not re-implement the phases here.
40
32
 
41
33
  Also look at:
42
34
  - Recent changes to affected files (`git log --oneline <file>`)
43
35
  - Existing tests (what's tested, what's missing)
44
36
  - Similar patterns elsewhere in the codebase that work correctly
45
37
 
38
+ > **HARD GATE** — Do NOT proceed to Step 3 (Fix Approach) until `diagnose-root` Phase 4 produces a verified root cause. "It probably is X" is not verified.
39
+
46
40
  ### 3. Identify the fix approach
47
41
 
48
42
  Based on your investigation, determine:
@@ -1,13 +1,15 @@
1
1
  ---
2
2
  name: map-codebase
3
3
  model: sonnet
4
- description: "High-fidelity codebase surveying — analyzes stack, architecture, and gray areas (error handling, API shapes) and persists them into specs/tech-architecture/tech-stack.md. Goes beyond survey-context by identifying 'signals' for planning."
4
+ description: "Derives the tech-stack doc from scratch by scanning the codebase — analyzes stack, architecture, and gray areas (error handling, API shapes) and persists findings into specs/tech-architecture/tech-stack.md. Run when the tech doc doesn't exist yet; use survey-context to consume it once it does."
5
5
  ---
6
6
 
7
7
  # Map Codebase
8
8
 
9
9
  Perform a deep architectural and structural analysis of the codebase. Unlike `survey-context` which identifies "where we are", `map-codebase` identifies "what we are dealing with" and "how things are done".
10
10
 
11
+ > **Use this vs survey-context:** `map-codebase` BUILDS the tech-stack doc by scanning the codebase from scratch. `survey-context` READS existing specs/tech-architecture docs without re-deriving them. Run `map-codebase` when `specs/tech-architecture/tech-stack.md` doesn't exist yet; run `survey-context` when it does.
12
+
11
13
  > **HARD GATE** — Cold analysis only. Do NOT assume architectural patterns without reading the code. If the codebase structure surprises you, call out the delta.
12
14
 
13
15
  ## Process
@@ -43,7 +43,7 @@ Transform:
43
43
 
44
44
  ---
45
45
 
46
- ### `.planning/REQUIREMENTS.md` → `specs/requirements/SCOPE_LATEST.yaml`
46
+ ### `.planning/REQUIREMENTS.md` → `specs/product/SCOPE_LATEST.yaml`
47
47
 
48
48
  GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.
49
49
 
@@ -55,7 +55,7 @@ Transform:
55
55
 
56
56
  ---
57
57
 
58
- ### `.planning/phases/XX-name/XX-CONTEXT.md` → `specs/plans/TECH_STACK_LATEST.md` + `specs/adr/`
58
+ ### `.planning/phases/XX-name/XX-CONTEXT.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/adr/`
59
59
 
60
60
  GSD CONTEXT.md has 6 sections: domain, decisions, canonical_refs, code_context, specifics, deferred.
61
61
 
@@ -80,12 +80,12 @@ Transform:
80
80
 
81
81
  ---
82
82
 
83
- ### `.planning/METHODOLOGY.md` → `specs/plans/METHODOLOGY_LATEST.md`
83
+ ### `.planning/METHODOLOGY.md` → `specs/tech-architecture/METHODOLOGY_LATEST.md`
84
84
 
85
85
  GSD METHODOLOGY.md is a standing reference for analytical lenses (Bayesian updating, STRIDE, cost-of-delay).
86
86
 
87
87
  Transform:
88
- - Copy each lens as a section in `specs/plans/METHODOLOGY_LATEST.md`
88
+ - Copy each lens as a section in `specs/tech-architecture/METHODOLOGY_LATEST.md`
89
89
  - Note: "These lenses should inform `plan-work` and `audit-code` sessions."
90
90
 
91
91
  ---
@@ -22,7 +22,7 @@ project-root/
22
22
  └── log.jsonl
23
23
  ```
24
24
 
25
- ### `spec.md` → `specs/requirements/SCOPE_LATEST.yaml` + `specs/plans/TECH_STACK_LATEST.md`
25
+ ### `spec.md` → `specs/product/SCOPE_LATEST.yaml` + `specs/tech-architecture/TECH_STACK_LATEST.md`
26
26
 
27
27
  spec-kit `spec.md` focuses on: who uses it, user journeys, success criteria, what's in/out of scope.
28
28
 
@@ -32,7 +32,7 @@ Transform:
32
32
  - Domain terms / glossary → `requirements/GLOSSARY_LATEST.yaml`
33
33
  - Problem statement / vision → `requirements/VISION_LATEST.yaml`
34
34
 
35
- ### `plan.md` → `specs/plans/TECH_STACK_LATEST.md` + `specs/release-plan.yaml` + `specs/epics/`
35
+ ### `plan.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/release-plan.yaml` + `specs/epics/`
36
36
 
37
37
  spec-kit `plan.md` covers: technology stack, architectural patterns, implementation constraints.
38
38
 
@@ -79,14 +79,14 @@ project-root/
79
79
  └── story-{slug}.md
80
80
  ```
81
81
 
82
- ### `product-brief.md` / `prfaq-{project}.md` → `specs/requirements/VISION_LATEST.yaml`
82
+ ### `product-brief.md` / `prfaq-{project}.md` → `specs/product/VISION_LATEST.yaml`
83
83
 
84
84
  Transform:
85
85
  - Vision + core value → `VISION_LATEST.yaml` north_star / success_criteria
86
86
  - Target users → notes in VISION or SCOPE
87
87
  - prfaq customer FAQ → can inform success criteria in SCOPE
88
88
 
89
- ### `prd.md` → `specs/requirements/SCOPE_LATEST.yaml` + `GLOSSARY_LATEST.yaml`
89
+ ### `prd.md` → `specs/product/SCOPE_LATEST.yaml` + `GLOSSARY_LATEST.yaml`
90
90
 
91
91
  BMAD `prd.md` has: Glossary, FR-XX functional requirements, UJ-XX user journeys, NFRs, assumptions.
92
92
 
@@ -105,7 +105,7 @@ Transform:
105
105
  - Lightweight decisions → `specs/DECISION-LOG.md` (date | decision | rationale)
106
106
  - `addendum.md` change signals → note in `SCOPE_LATEST.yaml` metadata
107
107
 
108
- ### `architecture.md` → `specs/plans/TECH_STACK_LATEST.md` + `specs/adr/`
108
+ ### `architecture.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/adr/`
109
109
 
110
110
  Transform:
111
111
  - ADR sections → individual `specs/adr/NNNN-{slug}.md` files
@@ -132,7 +132,7 @@ Optional enhancements to offer the user after migration. Present as checkboxes.
132
132
 
133
133
  ### From GSD
134
134
 
135
- - [ ] **`specs/plans/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
135
+ - [ ] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning.
136
136
  - [ ] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session.
137
137
  - [ ] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability.
138
138
 
@@ -183,3 +183,30 @@ For lightweight decisions that don't warrant a full ADR:
183
183
  |------|----------|-----------|--------------|
184
184
  | 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |
185
185
  ```
186
+
187
+ ### `specs/state.yaml` template format
188
+
189
+ Generated during Step 4 of migration. Regenerate from scratch in bigpowers format:
190
+
191
+ ```markdown
192
+ # Session State: <project name>
193
+
194
+ ## Current Milestone
195
+
196
+ Migrated from <framework> on <date>. Next: review generated specs and run plan-work.
197
+
198
+ ## Git Metadata
199
+
200
+ - **Branch**: <current branch>
201
+ - **Hash**: <git rev-parse HEAD>
202
+
203
+ ## Completed Releases
204
+
205
+ (none — migration starting point)
206
+
207
+ ## Pending Releases
208
+
209
+ - [ ] Review migrated specs
210
+ - [ ] Run elaborate-spec to validate scope
211
+ - [ ] Run plan-work to produce first release plan
212
+ ```
@@ -82,26 +82,13 @@ Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./R
82
82
 
83
83
  ### Step 4 — Generate state.yaml
84
84
 
85
- Always regenerate `specs/state.yaml` from scratch in bigpowers format:
85
+ Always regenerate `specs/state.yaml` from scratch in bigpowers format (see REFERENCE.md for template):
86
86
 
87
87
  ```markdown
88
88
  # Session State: <project name>
89
-
90
89
  ## Current Milestone
91
-
92
90
  Migrated from <framework> on <date>. Next: review generated specs and run plan-work.
93
-
94
- ## Git Metadata
95
-
96
- - **Branch**: <current branch>
97
- - **Hash**: <git rev-parse HEAD>
98
-
99
- ## Completed Releases
100
-
101
- (none — migration starting point)
102
-
103
91
  ## Pending Releases
104
-
105
92
  - [ ] Review migrated specs
106
93
  - [ ] Run elaborate-spec to validate scope
107
94
  - [ ] Run plan-work to produce first release plan
@@ -6,6 +6,8 @@ description: Grilling session that challenges your plan against the existing dom
6
6
 
7
7
  # Model Domain
8
8
 
9
+ **Distinct from `define-language` and `deepen-architecture`:** Use this skill to stress-test a plan through a grilling interview that resolves domain model decisions and captures invariants. Use `define-language` to produce a canonical glossary of terms. Use `deepen-architecture` to find module-level refactoring opportunities in code.
10
+
9
11
  Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
10
12
 
11
13
  > **HARD GATE** — Capture invariants (what MUST always be true) and state machines (what transitions are legal) for core entities. If these are fuzzy, design will fail.
@@ -26,7 +26,7 @@ Detailed documentation for the `orchestrate-project` meta-skill.
26
26
  - **Goal**: Execute the plan story-by-story using the 8-step `build-epic` cycle with TDD and vertical slices.
27
27
  - **Deliverables**: Code; `execution-status.yaml` updated per story; `specs/metrics/cycle-times.yaml` row per story.
28
28
  - **Skills**: `build-epic` (conductor) → per-story: `survey-context`, `plan-work`, `kickoff-branch`, `develop-tdd`, `verify-work`, `audit-code`, `commit-message`, `release-branch`.
29
- - **BCP tracking**: `plan-work` labels every task `[BCP N]`; total written to `state.yaml` as `epic_cycle.story_bcps`. BCP baseline must exist in `release-plan.yaml` before starting.
29
+ - **BCP tracking**: `plan-release` sizes each story in Business Complexity Points (BCP) before the build queue; `plan-work` confirms and writes the size to `state.yaml` as `epic_cycle.story_bcps`. See `docs/references/bcp.md` for the canonical sizing method.
30
30
  - **Timestamps**: `survey-context` stamps `metrics.story_start`; `release-branch` stamps `metrics.story_end` and writes BCP/hr to `specs/metrics/cycle-times.yaml`.
31
31
  - **next_skill**: Each critical-path skill writes `handoff.next_skill` to `state.yaml`. Agents resume by reading `state.yaml` — no guessing.
32
32
  - **Dashboard**: `npm run dashboard` (TUI) or `npm run dashboard:web` (browser, port 7742) shows live pipeline, epic queue, BCP metrics, and cycle-time ledger.
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "bigpowers",
3
- "version": "2.1.3",
3
+ "version": "2.3.0",
4
4
  "description": "61 agent skills for spec-driven, test-first software development by solo developers",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
- "compliance": "bash scripts/audit-compliance.sh specs/audit/features",
7
+ "compliance": "bash scripts/audit-compliance.sh specs/verifications/features && bash scripts/validate-doctrine.sh",
8
+ "doctrine": "bash scripts/validate-doctrine.sh",
8
9
  "sync": "bash scripts/sync-skills.sh",
9
10
  "validate-specs": "bash scripts/validate-specs-yaml.sh",
10
11
  "enrich-epics": "bash scripts/enrich-epics-from-archive.sh",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: plan-release
3
3
  model: sonnet
4
- description: Convert elaborated specs into a structured release plan with Gherkin acceptance criteria and WSJF-sorted epics. Produces specs/release-plan.yaml and epic capsule directories (specs/epics/eNN-slug/) with epic.yaml manifests, countable-story-format .md specs, and decoupled -tasks.yaml files. Use when a spec is clear and ready to plan, after elaborate-spec, or when the user wants a release plan broken into epics and stories.
4
+ 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."
5
5
  ---
6
6
 
7
7
  # Plan Release
@@ -0,0 +1,104 @@
1
+ # Plan Work — Reference
2
+
3
+ ## Output file formats
4
+
5
+ ### Story spec: `specs/epics/<capsule>/eNNsYY-<slug>.md`
6
+
7
+ Populated countable-story-format with all 20 sections. Minimum maturity: 3 (Countable). Acceptance criteria in §17.
8
+
9
+ ### Task checklist: `specs/epics/<capsule>/eNNsYY-tasks.yaml`
10
+
11
+ ```yaml
12
+ story_id: e01s01
13
+ title: Login
14
+ status: todo
15
+ bcps: 3
16
+ tasks:
17
+ - id: 1
18
+ description: "Add login form component tests"
19
+ verify: "npm test -- login-form.test.tsx"
20
+ status: todo
21
+ ```
22
+
23
+ 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.
24
+
25
+ ## Plan template
26
+
27
+ ```
28
+ ### Story [X.Y]: [title] — Implementation Steps
29
+
30
+ **type:** feat | fix | refactor
31
+ **context:** domain | infra
32
+ **Context**: [One paragraph: what this story implements and why]
33
+
34
+ ## Steps
35
+
36
+ 1. [Step description] (ref: ADR-NNNN or commit SHA) → verify: `<runnable command>`
37
+ 2. [Step description] (ref: ADR-NNNN or commit SHA) → verify: `<runnable command>`
38
+ ...
39
+
40
+ ## Verification Script (Step-by-Step)
41
+
42
+ [A human-readable, step-by-step script for the user to verify the story's outcome.]
43
+
44
+ 1. [Action 1: e.g. Start the server]
45
+ 2. [Action 2: e.g. Open browser to http://localhost:3000]
46
+ 3. [Observation: e.g. Verify that the login modal appears]
47
+
48
+ ## Out of scope
49
+
50
+ - [Explicit exclusions]
51
+
52
+ ## Risks
53
+
54
+ - [Anything that could go wrong and how to detect it early]
55
+ ```
56
+
57
+ ## Verify step format rules
58
+
59
+ Every step MUST follow this exact format:
60
+ ```
61
+ N. <What to do> → verify: <runnable command that proves it worked>
62
+ ```
63
+
64
+ **Good examples:**
65
+ ```
66
+ 1. Add User model with email and name fields → verify: npm test -- user.test.ts
67
+ 2. Add POST /users endpoint → verify: curl -s -X POST http://localhost:3000/users -d '{"email":"a@b.com"}' | jq .id
68
+ 3. Add email uniqueness constraint → verify: npm test -- user-uniqueness.test.ts
69
+ ```
70
+
71
+ **Bad examples (no verify command):**
72
+ ```
73
+ 1. Implement the user creation flow
74
+ 2. Write tests for the API
75
+ ```
76
+
77
+ ## Sub-operations
78
+
79
+ ### Define Success
80
+
81
+ Before planning, convert task statements into observable "step → verify: <cmd>" pairs:
82
+ - Break the task into observable outcomes (behaviors) rather than implementation steps
83
+ - Write pairs in the format: `[What must be true] → verify: <runnable command>`
84
+ - Challenge completeness: are all required behaviors covered?
85
+ - Get user confirmation: "Does this capture everything the task requires?"
86
+ - Once confirmed, these pairs become the skeleton for plan-work steps
87
+
88
+ ### Zoom-Out Check
89
+
90
+ When modifying an existing module, confirm scope is understood:
91
+ - State the module's **purpose** — what is it responsible for?
92
+ - Name the **callers** — who depends on it?
93
+ - List the **contracts** — what invariants or interfaces must be preserved?
94
+
95
+ If you cannot answer all three without deep code archaeology, scope is misunderstood. Clarify with the user before writing steps.
96
+
97
+ ### Slopcheck
98
+
99
+ For every external package proposed in the plan, tag each with one of:
100
+ - `[OK]` — package is mature, actively maintained, appropriate scope
101
+ - `[SUS]` — suspiciously broad, has maintenance concerns, or unclear fit
102
+ - `[SLOP]` — unmaintained, known security issues, or out of scope
103
+
104
+ `[SUS]` and `[SLOP]` require explicit human approval before the step may execute. Document tags inline next to the package name.