You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pstack/.cursor-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "pstack",
3
3
"displayName": "pstack",
4
-
"version": "0.11.15",
4
+
"version": "0.12.0",
5
5
"description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.",
Copy file name to clipboardExpand all lines: pstack/docs/guide/01-setup.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Run:
24
24
25
25
You only override what you care about. A role with no line in the rule keeps the skill's default. To restore a default later, delete that role's line, or just run `/setup-pstack` again.
26
26
27
-
You might be wondering what happens if you use Auto. Set a role to `inherit-parent` or `auto` and pstack omits the subagent `model` field, so the subagent inherits your parent chat model. Both values mean the same thing, and neither is a model slug. For a panel role the value is a list, and one subagent runs per entry, so the list length sets the panel size.
27
+
You might be wondering what happens if you use Auto. Set a role to `inherit-parent` or `auto` and pstack omits the subagent `model` field, so the subagent inherits your parent chat model. Both values mean the same thing, and neither is a model slug. For a panel role the value is a list, and one subagent runs per entry, so the list length sets the panel size. Setup also configures `swarm workers`, the default model for every `/swarm` worker unless a race names a model for each arm.
Copy file name to clipboardExpand all lines: pstack/docs/guide/04-design.md
+13-2Lines changed: 13 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Design before you write code
2
2
3
-
One attempt at a hard design locks in the first shape the model thought of. These three skills exist so that doesn't happen. `/architect` settles types and boundaries before implementation. `/arena` runs several attempts in parallel and merges the best parts. `/interrogate` has other models try to break the result.
3
+
One attempt at a hard design locks in the first shape the model thought of. `/architect` settles types and boundaries before implementation. `/arena` runs several attempts at the same brief and merges the best parts. `/interrogate` has other models try to break the result. When the job is coverage rather than design synthesis, `/swarm` fans out slices or races and aggregates their results.
4
4
5
5

6
6
@@ -24,7 +24,7 @@ By default it proceeds straight from the synthesized design into implementation.
24
24
/arena take my prompt to the arena verbatim. i want to compare their proposals with yours.
25
25
```
26
26
27
-
[`/arena`](../../skills/arena/SKILL.md) is the general tool underneath. N subagents attempt the same task in parallel, each writing to its own worktree or directory. A read-only judge, on a different model family when your configuration allows one, scores every candidate against a rubric. The coordinator reads each candidate end to end, picks a base, grafts in the best ideas from the losers, and verifies the result.
27
+
[`/arena`](../../skills/arena/SKILL.md) is the general tool underneath. N subagents attempt the same design or code brief in parallel, each writing to its own worktree or directory. A read-only judge, on a different model family when your configuration allows one, scores every candidate against a rubric. The coordinator reads each candidate end to end, picks a base, grafts in the best ideas from the losers, and verifies the result.
28
28
29
29
```mermaid
30
30
flowchart LR
@@ -46,6 +46,16 @@ The panel comes from your [`/setup-pstack`](../../skills/setup-pstack/SKILL.md)
46
46
/arena this, 5 candidates. the cache key format is expensive to change later.
47
47
```
48
48
49
+
## Cover slices and races with `/swarm`
50
+
51
+
```text
52
+
/swarm check every package under packages/ against its check.sh. one worker per package. one report.
53
+
```
54
+
55
+
[`/swarm`](../../skills/swarm/SKILL.md) fans N workers across independent slices, coverage matrices, gauntlet lanes, exploration partitions, or declared race arms. Each worker gets its own scope and check, then reports `PASS`, `ISSUES`, or `BLOCKED`. The parent waits for the workers and returns one compact report with any gaps or dropouts.
56
+
57
+
Reach for it when parallelism buys coverage or lets independent checks race. `/arena` gives every worker the same design or code brief, then picks a base and grafts the best parts. `/swarm` covers slices or runs a race with a selection rule declared up front. It does not use the base-selection and grafting ceremony.
58
+
49
59
## Break it with `/interrogate`
50
60
51
61
```text
@@ -63,6 +73,7 @@ You might be wondering whether every change needs this. No. Most changes need no
63
73
- A small, finished change you're unsure about needs `/interrogate` alone.
64
74
- A change that crosses function boundaries or moves ownership earns `/architect`, which brings `/arena` with it.
65
75
- A standalone decision where independent attempts would help, like naming, formats, or an algorithm, is `/arena` directly.
76
+
- A coverage matrix, set of parallel checks, or race with declared arms is `/swarm`.
66
77
- A contested design that's expensive to reverse gets `/architect`, then `/interrogate` before shipping.
67
78
68
79
`/poteto-mode` already applies this ladder. Boundary-crossing work triggers `/architect` on its own, so you reach for these directly mainly when you want more or less scrutiny than the default.
Copy file name to clipboardExpand all lines: pstack/docs/guide/06-verify-and-ship.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,10 +34,12 @@ The UI bullet above hides a real requirement. The agent needs a scripted way to
34
34
35
35
[`/create-verification-skill`](../../skills/create-verification-skill/SKILL.md) interviews the repository, not you. It works out what a user touches, how the app launches locally, what can drive it (an existing harness first, otherwise browser and CDP, a PTY, or plain HTTP), what evidence proves behavior, and whether two instances can run side by side. It asks you only what the code can't answer.
36
36
37
-
It writes `.cursor/skills/verify-<app>/`, agent-facing instructions with exact Launch, Doctor, Drive, Evidence, and Cleanup sections, plus a feature map under `features/` that indexes what the app does and what result proves each feature works. Before handing it over, the generator proves the skill once end to end: launch, doctor check, drive one feature, capture evidence, clean up. If that proof fails, don't use the output.
37
+
It writes `.cursor/skills/verify-<app>/`, agent-facing instructions with exact Launch, Doctor, Drive, Evidence, and Cleanup sections, plus a feature map under `features/` that indexes what the app does and what result proves each feature works. The skill ships a [worked feature-map example](../../skills/create-verification-skill/references/feature-map-example/) with a README index and one file per feature using the four required H2s. Before handing it over, the generator proves the skill once end to end: launch, doctor check, drive one feature, capture evidence, clean up. If that proof fails, don't use the output.
38
38
39
39
From then on, "verify it in the app" is a step any agent can execute, in this repo, with no setup conversation.
40
40
41
+
Once the verify skill works, a [`/swarm`](../../skills/swarm/SKILL.md) can split a full pass by feature-map entry and aggregate the results.
42
+
41
43
## Keep the verification skill honest
42
44
43
45
Apps change and feature maps rot. When yours drifts, run:
Copy file name to clipboardExpand all lines: pstack/docs/guide/10-recipes-and-pitfalls.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,14 @@ ask /arena for a second opinion on this thread and our approach
20
20
21
21
Your current design becomes one candidate among several, and the synthesis tells you whether the panel found something better or confirmed what you had. Cheap insurance before a costly commitment.
22
22
23
+
## Check independent slices in parallel
24
+
25
+
```text
26
+
/swarm check every package under packages/ against its check.sh. one worker per package. one report.
27
+
```
28
+
29
+
Each worker owns one package. The parent waits for every slice and returns one `PASS`, `ISSUES`, or `BLOCKED` report instead of raw worker dumps.
30
+
23
31
## Review a branch skeptically
24
32
25
33
```text
@@ -67,6 +75,7 @@ You rarely need more words. You need the right name, and [the principles page](.
67
75
-**Enumerating skills in the prompt.** "use /how then /architect then /arena" reorders steps the playbook already sequences. State the goal and constraints. Name a skill only to override a default.
68
76
-**A vague finish condition.** "make it better" gives `/loop` nothing to check. Give a command or artifact that can pass or fail.
69
77
-**Parallel agents in one worktree.** They overwrite each other and the diff becomes archaeology. Say "own worktree per attempt" and the isolation is free.
78
+
-**Using `/arena` for coverage.**`/arena` repeats one design or code brief, then picks a base and grafts the best parts. `/swarm` partitions slices or declared race arms and aggregates one report.
70
79
-**Accepting every review comment.** Bots and humans both file real catches and noise in one list. `/interrogate` sorts findings into act-on and dismissed buckets with reasons, and you can override either way.
71
80
-**Treating `auto` as a model slug.**`auto` and `inherit-parent` mean "omit the model field so the subagent inherits the parent chat model." [Setup](./01-setup.md) covers the roles.
72
81
-**Reporting success off a green build.** A build proves it compiles. Ask for the real command, flow, stored value, or profile, and expect the evidence in the reply.
0 commit comments