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.
- package/.pi/package.json +16 -0
- package/.pi/prompts/assess-impact.md +76 -0
- package/.pi/prompts/audit-code.md +156 -0
- package/.pi/prompts/build-epic.md +44 -0
- package/.pi/prompts/change-request.md +105 -0
- package/.pi/prompts/commit-message.md +135 -0
- package/.pi/prompts/compose-workflow.md +40 -0
- package/.pi/prompts/craft-skill.md +150 -0
- package/.pi/prompts/deepen-architecture.md +235 -0
- package/.pi/prompts/define-language.md +79 -0
- package/.pi/prompts/define-success.md +62 -0
- package/.pi/prompts/delegate-task.md +76 -0
- package/.pi/prompts/design-interface.md +96 -0
- package/.pi/prompts/develop-tdd.md +375 -0
- package/.pi/prompts/diagnose-root.md +23 -0
- package/.pi/prompts/dispatch-agents.md +83 -0
- package/.pi/prompts/edit-document.md +22 -0
- package/.pi/prompts/elaborate-spec.md +81 -0
- package/.pi/prompts/enforce-first.md +77 -0
- package/.pi/prompts/evolve-skill.md +38 -0
- package/.pi/prompts/execute-plan.md +54 -0
- package/.pi/prompts/fix-bug.md +36 -0
- package/.pi/prompts/grill-me.md +95 -0
- package/.pi/prompts/grill-with-docs.md +37 -0
- package/.pi/prompts/guard-git.md +212 -0
- package/.pi/prompts/hook-commits.md +93 -0
- package/.pi/prompts/inspect-quality.md +105 -0
- package/.pi/prompts/investigate-bug.md +117 -0
- package/.pi/prompts/kickoff-branch.md +99 -0
- package/.pi/prompts/map-codebase.md +70 -0
- package/.pi/prompts/migrate-spec.md +482 -0
- package/.pi/prompts/model-domain.md +227 -0
- package/.pi/prompts/orchestrate-project.md +161 -0
- package/.pi/prompts/organize-workspace.md +159 -0
- package/.pi/prompts/plan-refactor.md +77 -0
- package/.pi/prompts/plan-release.md +145 -0
- package/.pi/prompts/plan-work.md +161 -0
- package/.pi/prompts/release-branch.md +158 -0
- package/.pi/prompts/request-review.md +70 -0
- package/.pi/prompts/research-first.md +62 -0
- package/.pi/prompts/reset-baseline.md +20 -0
- package/.pi/prompts/respond-review.md +70 -0
- package/.pi/prompts/run-evals.md +56 -0
- package/.pi/prompts/run-planning.md +26 -0
- package/.pi/prompts/scope-work.md +23 -0
- package/.pi/prompts/search-skills.md +21 -0
- package/.pi/prompts/seed-conventions.md +132 -0
- package/.pi/prompts/session-state.md +146 -0
- package/.pi/prompts/setup-environment.md +23 -0
- package/.pi/prompts/simulate-agents.md +25 -0
- package/.pi/prompts/slice-tasks.md +23 -0
- package/.pi/prompts/spike-prototype.md +94 -0
- package/.pi/prompts/stocktake-skills.md +40 -0
- package/.pi/prompts/survey-context.md +129 -0
- package/.pi/prompts/terse-mode.md +37 -0
- package/.pi/prompts/trace-requirement.md +68 -0
- package/.pi/prompts/using-bigpowers.md +105 -0
- package/.pi/prompts/validate-fix.md +98 -0
- package/.pi/prompts/verify-work.md +125 -0
- package/.pi/prompts/visual-dashboard.md +51 -0
- package/.pi/prompts/wire-observability.md +92 -0
- package/.pi/prompts/write-document.md +244 -0
- package/.pi/skills/assess-impact/SKILL.md +77 -0
- package/.pi/skills/audit-code/SKILL.md +157 -0
- package/.pi/skills/build-epic/SKILL.md +45 -0
- package/.pi/skills/change-request/SKILL.md +106 -0
- package/.pi/skills/commit-message/SKILL.md +136 -0
- package/.pi/skills/compose-workflow/SKILL.md +41 -0
- package/.pi/skills/craft-skill/SKILL.md +151 -0
- package/.pi/skills/deepen-architecture/SKILL.md +236 -0
- package/.pi/skills/define-language/SKILL.md +80 -0
- package/.pi/skills/define-success/SKILL.md +63 -0
- package/.pi/skills/delegate-task/SKILL.md +77 -0
- package/.pi/skills/design-interface/SKILL.md +97 -0
- package/.pi/skills/develop-tdd/SKILL.md +376 -0
- package/.pi/skills/diagnose-root/SKILL.md +24 -0
- package/.pi/skills/dispatch-agents/SKILL.md +84 -0
- package/.pi/skills/edit-document/SKILL.md +23 -0
- package/.pi/skills/elaborate-spec/SKILL.md +82 -0
- package/.pi/skills/enforce-first/SKILL.md +78 -0
- package/.pi/skills/evolve-skill/SKILL.md +39 -0
- package/.pi/skills/execute-plan/SKILL.md +55 -0
- package/.pi/skills/fix-bug/SKILL.md +37 -0
- package/.pi/skills/grill-me/SKILL.md +96 -0
- package/.pi/skills/grill-with-docs/SKILL.md +38 -0
- package/.pi/skills/guard-git/SKILL.md +213 -0
- package/.pi/skills/hook-commits/SKILL.md +94 -0
- package/.pi/skills/inspect-quality/SKILL.md +106 -0
- package/.pi/skills/investigate-bug/SKILL.md +118 -0
- package/.pi/skills/kickoff-branch/SKILL.md +100 -0
- package/.pi/skills/map-codebase/SKILL.md +71 -0
- package/.pi/skills/migrate-spec/SKILL.md +483 -0
- package/.pi/skills/model-domain/SKILL.md +228 -0
- package/.pi/skills/orchestrate-project/SKILL.md +162 -0
- package/.pi/skills/organize-workspace/SKILL.md +160 -0
- package/.pi/skills/plan-refactor/SKILL.md +78 -0
- package/.pi/skills/plan-release/SKILL.md +146 -0
- package/.pi/skills/plan-work/SKILL.md +162 -0
- package/.pi/skills/release-branch/SKILL.md +159 -0
- package/.pi/skills/request-review/SKILL.md +71 -0
- package/.pi/skills/research-first/SKILL.md +63 -0
- package/.pi/skills/reset-baseline/SKILL.md +21 -0
- package/.pi/skills/respond-review/SKILL.md +71 -0
- package/.pi/skills/run-evals/SKILL.md +57 -0
- package/.pi/skills/run-planning/SKILL.md +27 -0
- package/.pi/skills/scope-work/SKILL.md +24 -0
- package/.pi/skills/search-skills/SKILL.md +22 -0
- package/.pi/skills/seed-conventions/SKILL.md +133 -0
- package/.pi/skills/session-state/SKILL.md +147 -0
- package/.pi/skills/setup-environment/SKILL.md +24 -0
- package/.pi/skills/simulate-agents/SKILL.md +26 -0
- package/.pi/skills/slice-tasks/SKILL.md +24 -0
- package/.pi/skills/spike-prototype/SKILL.md +95 -0
- package/.pi/skills/stocktake-skills/SKILL.md +41 -0
- package/.pi/skills/survey-context/SKILL.md +130 -0
- package/.pi/skills/terse-mode/SKILL.md +38 -0
- package/.pi/skills/trace-requirement/SKILL.md +69 -0
- package/.pi/skills/using-bigpowers/SKILL.md +106 -0
- package/.pi/skills/validate-fix/SKILL.md +99 -0
- package/.pi/skills/verify-work/SKILL.md +126 -0
- package/.pi/skills/visual-dashboard/SKILL.md +52 -0
- package/.pi/skills/wire-observability/SKILL.md +93 -0
- package/.pi/skills/write-document/SKILL.md +245 -0
- package/CHANGELOG.md +14 -0
- package/CLAUDE.md +1 -1
- package/CONVENTIONS.md +16 -10
- package/README.md +30 -4
- package/build-epic/SKILL.md +1 -1
- package/deepen-architecture/SKILL.md +2 -0
- package/define-language/SKILL.md +2 -0
- package/develop-tdd/REFERENCE.md +61 -0
- package/develop-tdd/SKILL.md +19 -119
- package/diagnose-root/SKILL.md +2 -0
- package/edit-document/SKILL.md +2 -0
- package/fix-bug/SKILL.md +3 -1
- package/grill-me/SKILL.md +3 -1
- package/grill-with-docs/SKILL.md +3 -1
- package/investigate-bug/SKILL.md +5 -11
- package/map-codebase/SKILL.md +3 -1
- package/migrate-spec/REFERENCE-GSD.md +4 -4
- package/migrate-spec/REFERENCE.md +33 -6
- package/migrate-spec/SKILL.md +1 -14
- package/model-domain/SKILL.md +2 -0
- package/orchestrate-project/REFERENCE.md +1 -1
- package/package.json +3 -2
- package/plan-release/SKILL.md +1 -1
- package/plan-work/REFERENCE.md +104 -0
- package/plan-work/SKILL.md +17 -151
- package/release-branch/REFERENCE.md +55 -0
- package/release-branch/SKILL.md +19 -117
- package/request-review/SKILL.md +1 -1
- package/run-planning/SKILL.md +3 -2
- package/scope-work/SKILL.md +3 -1
- package/scripts/audit-compliance.sh +15 -3
- package/scripts/check-skill-size.sh +79 -0
- package/scripts/generate-reference-tables.sh +64 -0
- package/scripts/project-survey.sh +2 -2
- package/scripts/sync-skills.sh +51 -3
- package/scripts/validate-doctrine.sh +143 -0
- package/seed-conventions/REFERENCE.md +63 -0
- package/seed-conventions/SKILL.md +23 -177
- package/slice-tasks/SKILL.md +3 -1
- package/survey-context/SKILL.md +3 -1
- package/write-document/SKILL.md +4 -2
package/develop-tdd/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
|
57
|
-
| "The tests are already comprehensive." | If you're adding behavior, you need a new test. Coverage
|
|
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
|
|
70
|
-
- [ ]
|
|
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
|
-
|
|
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
|
|
88
|
-
GREEN: Write minimal code to pass → test passes → commit: feat(<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.
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
69
|
+
After every behavior cycle, run the verify command from the active epic task. Show evidence before declaring the step done.
|
|
167
70
|
|
|
168
|
-
|
|
71
|
+
### 7. Manual Verification Handover
|
|
169
72
|
|
|
170
|
-
|
|
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
|
|
package/diagnose-root/SKILL.md
CHANGED
|
@@ -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
|
package/edit-document/SKILL.md
CHANGED
|
@@ -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 (
|
|
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:
|
|
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.
|
package/grill-with-docs/SKILL.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grill-with-docs
|
|
3
|
-
description:
|
|
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
|
package/investigate-bug/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
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:
|
package/map-codebase/SKILL.md
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: map-codebase
|
|
3
3
|
model: sonnet
|
|
4
|
-
description: "
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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
|
+
```
|
package/migrate-spec/SKILL.md
CHANGED
|
@@ -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
|
package/model-domain/SKILL.md
CHANGED
|
@@ -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-
|
|
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.
|
|
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/
|
|
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",
|
package/plan-release/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-release
|
|
3
3
|
model: sonnet
|
|
4
|
-
description:
|
|
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.
|