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.
@@ -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 — REQUIRED: when the brief carries a Tier line, set from it:
9
- mechanical → the cheapest model the subagent tool offers; judgment →
10
- a standard mid-tier model. Otherwise choose per SKILL.md Model
11
- Selection. An omitted model silently inherits the session's most
12
- expensive one]
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 — REQUIRED: choose per SKILL.md Model Selection; an omitted
14
- model silently inherits the session's most expensive one]
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 — REQUIRED: choose per SKILL.md Model Selection; an omitted
14
- model silently inherits the session's most expensive one]
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,