superpowers-mcp 6.3.6 → 6.3.7
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/README.ja.md +35 -56
- package/README.ko.md +35 -56
- package/README.md +35 -56
- package/README.zh-TW.md +35 -56
- package/out/server.js +23 -23
- package/package.json +10 -5
- package/scripts/upstream-drift.js +346 -0
- package/skills/brainstorming/SKILL.md +125 -25
- package/skills/brainstorming/scripts/start-server.ps1 +20 -1
- package/skills/brainstorming/scripts/start-server.sh +2 -2
- package/skills/executing-plans/SKILL.md +7 -1
- package/skills/finishing-a-development-branch/SKILL.md +15 -0
- package/skills/subagent-driven-development/SKILL.md +121 -36
- package/skills/subagent-driven-development/implementer-prompt.md +19 -0
- package/skills/subagent-driven-development/re-review-prompt.md +10 -4
- package/skills/subagent-driven-development/scripts/review-package +6 -0
- package/skills/subagent-driven-development/scripts/review-package.ps1 +7 -0
- package/skills/subagent-driven-development/scripts/sdd-workspace +8 -1
- package/skills/subagent-driven-development/scripts/sdd-workspace.ps1 +23 -2
- package/skills/subagent-driven-development/task-reviewer-prompt.md +28 -10
- package/skills/systematic-debugging/SKILL.md +1 -1
- package/skills/test-driven-development/SKILL.md +27 -3
- package/skills/test-driven-development/writing-good-tests.md +7 -0
- package/skills/using-git-worktrees/SKILL.md +12 -0
- package/skills/verification-before-completion/SKILL.md +54 -1
- package/skills/writing-plans/SKILL.md +20 -5
- package/skills/writing-skills/SKILL.md +30 -0
|
@@ -93,10 +93,19 @@ git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/d
|
|
|
93
93
|
# Determine path based on chosen location
|
|
94
94
|
path="$LOCATION/$BRANCH_NAME"
|
|
95
95
|
|
|
96
|
+
# Basing on current HEAD:
|
|
96
97
|
git worktree add "$path" -b "$BRANCH_NAME"
|
|
98
|
+
# Basing on any other ref (origin/main, origin/production, a tag) —
|
|
99
|
+
# --no-track is REQUIRED, not optional:
|
|
100
|
+
git worktree add "$path" -b "$BRANCH_NAME" --no-track <base-ref>
|
|
97
101
|
cd "$path"
|
|
102
|
+
|
|
103
|
+
# REQUIRED final check: the new branch must track no shared branch
|
|
104
|
+
git branch -vv | grep -F "$BRANCH_NAME"
|
|
98
105
|
```
|
|
99
106
|
|
|
107
|
+
**If that check shows `[origin/<shared branch>]`** (e.g. `[origin/main]`, `[origin/production]`): run `git branch --unset-upstream` now, before any commit. Inherited upstream is a git default, not anyone's intent — a later plain `git push`, an editor auto-sync, or a future session will land this work directly on that shared branch. A feature branch tracking a shared branch is never the correct end state, and mentioning it in your report while leaving it set does not count as handling it.
|
|
108
|
+
|
|
100
109
|
**Sandbox fallback:** If `git worktree add` fails with a permission error (sandbox denial), tell the user the sandbox blocked worktree creation and you're working in the current directory instead. Then run setup and baseline tests in place.
|
|
101
110
|
|
|
102
111
|
## Step 2: Project Setup
|
|
@@ -152,6 +161,7 @@ Ready to implement <feature-name>
|
|
|
152
161
|
| Both exist | Use `.worktrees/` |
|
|
153
162
|
| Neither exists | Check instruction file, then default `.worktrees/` |
|
|
154
163
|
| Directory not ignored | Add to .gitignore + commit |
|
|
164
|
+
| New branch tracks a shared remote branch | `git branch --unset-upstream` before committing (Step 1b) |
|
|
155
165
|
| Permission error on create | Sandbox fallback, work in place |
|
|
156
166
|
| Tests fail during baseline | Report failures + ask |
|
|
157
167
|
| No package.json/Cargo.toml | Skip dependency install |
|
|
@@ -165,3 +175,5 @@ Ready to implement <feature-name>
|
|
|
165
175
|
| "The worktree directory is surely ignored already" | Run `git check-ignore`. An unignored worktree directory commits the whole tree into the repo. |
|
|
166
176
|
| "Any directory name works" | Explicit instructions beat an existing project-local directory, which beats the `.worktrees/` default. |
|
|
167
177
|
| "The workspace is fresh — baseline tests can wait" | A dirty baseline makes every later failure ambiguous. Run the tests now; proceeding past failures is your human partner's call. |
|
|
178
|
+
| "It tracks origin/production, but nobody is pushing today" | The trap outlives today: the next plain `git push`, editor auto-sync, or session lands work on the shared branch. `git branch --unset-upstream` now — a warning note in your report doesn't disarm it. |
|
|
179
|
+
| "Tracking the base ref is expected — I branched from it" | Inherited upstream is a git default, not an intent. Pass `--no-track` at creation, or `--unset-upstream` the moment the check shows a shared branch. |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: verification-before-completion
|
|
3
|
-
description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
|
|
3
|
+
description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; for work with no test command (reports, research, recipes, correspondence, audits) requires re-opening the artifact and accounting for every part of the request; evidence before assertions always
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Verification Before Completion
|
|
@@ -118,3 +118,56 @@ Skip any step = lying, not verifying
|
|
|
118
118
|
- Paraphrases and synonyms
|
|
119
119
|
- Implications of success
|
|
120
120
|
- ANY communication suggesting completion/correctness
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## When There Is No Test Command
|
|
125
|
+
|
|
126
|
+
### Why this section exists
|
|
127
|
+
|
|
128
|
+
Everything above assumes an external judge: a test suite, a linter, an exit code.
|
|
129
|
+
The machine says pass or fail and you cannot argue with it.
|
|
130
|
+
|
|
131
|
+
Most work has no such judge. Nothing can run a report, a recipe or a research
|
|
132
|
+
answer and return "correct". The rule does not change — **no completion claim
|
|
133
|
+
without evidence** — only what evidence means.
|
|
134
|
+
|
|
135
|
+
### The failure this stops
|
|
136
|
+
|
|
137
|
+
Reporting what you INTENDED to produce rather than what is actually on disk.
|
|
138
|
+
|
|
139
|
+
**If you have not re-opened the artifact in this message, you have not checked
|
|
140
|
+
it.** You are remembering your own intentions, which is exactly the state in
|
|
141
|
+
which things get missed.
|
|
142
|
+
|
|
143
|
+
### Two levels, in this order
|
|
144
|
+
|
|
145
|
+
#### 1. Prove whatever CAN be proven
|
|
146
|
+
|
|
147
|
+
Some things are as binary as a test suite:
|
|
148
|
+
|
|
149
|
+
| Claim | Evidence |
|
|
150
|
+
|---|---|
|
|
151
|
+
| Followed the required structure | Open the file. Name each required section and where it appears. |
|
|
152
|
+
| Sources cited | Every claim carries a reference, present and in the required format |
|
|
153
|
+
| Standing constraints held | Re-read start to finish. A constraint honoured in step 1 and dropped in step 8 is a failure. |
|
|
154
|
+
| Findings are real | Every finding points at a location — a line, a quoted span. A finding with no location was recalled, not read. |
|
|
155
|
+
| Data reconciles | Totals add up; numbers in the summary match numbers in the table |
|
|
156
|
+
| Nothing was truncated | The output ends where it should, not mid-section |
|
|
157
|
+
|
|
158
|
+
#### 2. For everything else, account for the request in full
|
|
159
|
+
|
|
160
|
+
- Break what was asked into its separate parts.
|
|
161
|
+
- Open what you actually produced.
|
|
162
|
+
- Confirm each part is addressed.
|
|
163
|
+
- **State plainly anything you did not do.**
|
|
164
|
+
|
|
165
|
+
Four of five things done is not "done". Say which four.
|
|
166
|
+
|
|
167
|
+
### What this does NOT claim
|
|
168
|
+
|
|
169
|
+
Confirming that work is complete, consistent and within spec does not make it
|
|
170
|
+
correct. A recipe can hang together perfectly and still taste wrong; a report can
|
|
171
|
+
follow its structure and still reach the wrong conclusion.
|
|
172
|
+
|
|
173
|
+
**Say which you verified: that the work is *complete*, not that it is *right*.**
|
|
@@ -179,15 +179,30 @@ If you find issues, fix them inline. No need to re-review — just fix and move
|
|
|
179
179
|
|
|
180
180
|
## Execution Handoff
|
|
181
181
|
|
|
182
|
-
After saving the plan,
|
|
182
|
+
After saving and self-reviewing the plan, link it for your human partner
|
|
183
|
+
to read. If they have already explicitly supplied an execution method, ask
|
|
184
|
+
them to review the plan and confirm it captures what they want; wait for that
|
|
185
|
+
review before implementation, then use the preserved method. Otherwise, ask
|
|
186
|
+
them to review the plan and choose an execution method before implementation.
|
|
183
187
|
|
|
184
|
-
**
|
|
188
|
+
**When no execution method has already been supplied:**
|
|
185
189
|
|
|
186
|
-
**
|
|
190
|
+
**"Plan complete and saved to `docs/superpowers/plans/<filename>.md`. Please review the plan. Two execution options:**
|
|
187
191
|
|
|
188
|
-
**
|
|
192
|
+
**1. Subagent-Driven** - fresh subagent per task, review between tasks, fast iteration
|
|
189
193
|
|
|
190
|
-
**
|
|
194
|
+
**2. Inline Execution** - tasks in a session via executing-plans, batched with checkpoints
|
|
195
|
+
|
|
196
|
+
**Recommended for this plan: [pick one] — [one-line why].** Then: **Does the plan capture what you want, and which approach should we use?"**
|
|
197
|
+
|
|
198
|
+
Pick the recommendation from the plan in front of you:
|
|
199
|
+
- **Subagent-driven** when tasks are largely independent, the plan is short-to-medium, and a cold executor could pick up each task from its own task block alone.
|
|
200
|
+
- **Inline** when tasks share interfaces/state, build heavily on each other, the plan is long, or you (the parent) already hold the spec/architecture context that a cold subagent would spend a spawn re-deriving each time.
|
|
201
|
+
Say which and why. Never default to one without looking.
|
|
202
|
+
|
|
203
|
+
**When an execution method has already been supplied:**
|
|
204
|
+
|
|
205
|
+
**"Plan complete and saved to `docs/superpowers/plans/<filename>.md`. Please review the plan. Does it capture what you want?"**
|
|
191
206
|
|
|
192
207
|
**If Subagent-Driven chosen:**
|
|
193
208
|
- **REQUIRED SUB-SKILL:** Use superpowers:subagent-driven-development
|
|
@@ -371,6 +371,35 @@ pptx/
|
|
|
371
371
|
```
|
|
372
372
|
When: Reference material too large for inline
|
|
373
373
|
|
|
374
|
+
### Moving Content Into a Skill
|
|
375
|
+
|
|
376
|
+
Relative paths mean nothing on their own - they resolve against the file holding them. Moving content to a different depth invalidates every relative reference inside it.
|
|
377
|
+
|
|
378
|
+
**Re-resolve links mechanically, never by counting `../` by eye:**
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
# From the moved file's directory, assert every relative target exists
|
|
382
|
+
d=$(dirname "$FILE")
|
|
383
|
+
grep -o ']([^)]*)' "$FILE" | sed 's/^](//;s/)$//' | while read -r l; do
|
|
384
|
+
case "$l" in http*|\#*|mailto:*|"") continue;; esac
|
|
385
|
+
[ -e "$d/${l%%#*}" ] || echo "DANGLING: $l"
|
|
386
|
+
done
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
A link that is one `../` short still renders as a link. The count is not something you verify by looking at it.
|
|
390
|
+
|
|
391
|
+
Read the output - this is a heuristic, not a parser, so `](` inside a fenced code block shows up as a false positive.
|
|
392
|
+
|
|
393
|
+
**Then grep the moved text for prose cross-references:**
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
grep -n 'above\|below\|earlier\|later' "$FILE"
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
"The section above" has no referent once that section lives in a different file. No link checker can catch this - only reading can.
|
|
400
|
+
|
|
401
|
+
**Why this matters:** a dangling link fails silently. The agent follows it, finds nothing, and proceeds without the context it was supposed to have. No error, no failing test.
|
|
402
|
+
|
|
374
403
|
## The Iron Law (Same as TDD)
|
|
375
404
|
|
|
376
405
|
```
|
|
@@ -660,6 +689,7 @@ Deploying untested skills = deploying untested code. It's a violation of quality
|
|
|
660
689
|
- [ ] Common mistakes section
|
|
661
690
|
- [ ] No narrative storytelling
|
|
662
691
|
- [ ] Supporting files only for tools or heavy reference
|
|
692
|
+
- [ ] Content moved from another file: every relative link re-resolved against the new location and verified to exist; prose cross-references (`above`, `below`, `earlier`, `later`) re-read for lost referents
|
|
663
693
|
|
|
664
694
|
**Deployment:**
|
|
665
695
|
- [ ] Commit skill to git and push to your fork (if configured)
|