superpowers-mcp 6.4.6 → 6.4.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.es.md +13 -2
- package/README.hi.md +13 -2
- package/README.ja.md +13 -2
- package/README.ko.md +13 -2
- package/README.md +14 -3
- package/README.pt-BR.md +13 -2
- package/README.zh-TW.md +13 -2
- package/out/server.js +93 -87
- package/out/setup-runner.js +35 -33
- package/out/setup.js +36 -34
- package/package.json +2 -2
- package/scripts/run-tests.js +51 -0
- package/skills/subagent-driven-development/implementer-prompt.md +6 -5
- package/skills/subagent-driven-development/re-review-prompt.md +3 -2
- package/skills/subagent-driven-development/task-reviewer-prompt.md +3 -2
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Runs every test suite and reports all failures, not just the first.
|
|
4
|
+
*
|
|
5
|
+
* The previous `test` script chained the suites with `&&`, so a failure in an early
|
|
6
|
+
* suite skipped every later one — a green-to-red signal depended on which suite
|
|
7
|
+
* broke first, and a single regression could hide most of the suite.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const { spawnSync } = require("child_process");
|
|
11
|
+
const path = require("path");
|
|
12
|
+
|
|
13
|
+
const SUITES = [
|
|
14
|
+
"tests/edge_cases_test.js",
|
|
15
|
+
"tests/run_test.js",
|
|
16
|
+
"tests/brainstorm_server_test.js",
|
|
17
|
+
"tests/prompts_compositions_test.js",
|
|
18
|
+
"tests/upstream_sync_test.js",
|
|
19
|
+
"tests/mcp_coverage_test.js",
|
|
20
|
+
"tests/drift_test.js",
|
|
21
|
+
"tests/setup_test.js",
|
|
22
|
+
"tests/executing-plans/test-task-start.sh",
|
|
23
|
+
"tests/executing-plans/test-task-done.sh",
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
const results = [];
|
|
27
|
+
|
|
28
|
+
for (const suite of SUITES) {
|
|
29
|
+
const started = process.hrtime.bigint();
|
|
30
|
+
const run = suite.endsWith(".sh")
|
|
31
|
+
? spawnSync("bash", [suite], { cwd: path.join(__dirname, ".."), stdio: "inherit" })
|
|
32
|
+
: spawnSync("node", [suite], { cwd: path.join(__dirname, ".."), stdio: "inherit" });
|
|
33
|
+
const ms = Number(process.hrtime.bigint() - started) / 1e6;
|
|
34
|
+
const code = run.status === null ? 1 : run.status;
|
|
35
|
+
results.push({ suite, code, ms });
|
|
36
|
+
if (code !== 0) {
|
|
37
|
+
console.error(`\n✗ ${suite} exited ${code} — continuing so every suite still runs\n`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
console.log("\n================ test summary ================");
|
|
42
|
+
for (const { suite, code, ms } of results) {
|
|
43
|
+
console.log(` ${code === 0 ? "PASS" : "FAIL"} ${suite.padEnd(48)} ${ms.toFixed(0)}ms`);
|
|
44
|
+
}
|
|
45
|
+
const failed = results.filter((r) => r.code !== 0);
|
|
46
|
+
console.log(`==============================================`);
|
|
47
|
+
console.log(` ${results.length - failed.length}/${results.length} suites passed`);
|
|
48
|
+
if (failed.length > 0) {
|
|
49
|
+
console.error(` failing: ${failed.map((f) => f.suite).join(", ")}`);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
@@ -5,11 +5,12 @@ Use this template when dispatching an implementer subagent.
|
|
|
5
5
|
```
|
|
6
6
|
Subagent (general-purpose):
|
|
7
7
|
description: "Implement Task N: [task name]"
|
|
8
|
-
model: [MODEL
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
model: [MODEL]
|
|
9
|
+
# Model selection: when the brief carries a Tier line, set from it —
|
|
10
|
+
# mechanical → the cheapest model the subagent tool offers; judgment →
|
|
11
|
+
# a standard mid-tier model. Otherwise choose per SKILL.md Model
|
|
12
|
+
# Selection. An omitted model silently inherits the session's most
|
|
13
|
+
# expensive one.
|
|
13
14
|
prompt: |
|
|
14
15
|
You are implementing Task N: [task name]
|
|
15
16
|
|
|
@@ -10,8 +10,9 @@ that the fix itself broke nothing.
|
|
|
10
10
|
```
|
|
11
11
|
Subagent (general-purpose):
|
|
12
12
|
description: "Re-review Task N fix round R"
|
|
13
|
-
model: [MODEL
|
|
14
|
-
|
|
13
|
+
model: [MODEL]
|
|
14
|
+
# Model selection: choose per SKILL.md Model Selection; an omitted model
|
|
15
|
+
# silently inherits the session's most expensive one.
|
|
15
16
|
prompt: |
|
|
16
17
|
You are re-reviewing one task's fix round. A previous review produced
|
|
17
18
|
findings; an implementer has attempted to fix them. Your job is to
|
|
@@ -10,8 +10,9 @@ more, nothing less) and is well-built (clean, tested, maintainable)
|
|
|
10
10
|
```
|
|
11
11
|
Subagent (general-purpose):
|
|
12
12
|
description: "Review Task N (spec + quality)"
|
|
13
|
-
model: [MODEL
|
|
14
|
-
|
|
13
|
+
model: [MODEL]
|
|
14
|
+
# Model selection: choose per SKILL.md Model Selection; an omitted model
|
|
15
|
+
# silently inherits the session's most expensive one.
|
|
15
16
|
prompt: |
|
|
16
17
|
You are reviewing one task's implementation: first whether it matches its
|
|
17
18
|
requirements, then whether it is well-built. This is a task-scoped gate,
|