Skip to content

Commit 825da15

Browse files
cursoragentpoteto
andcommitted
docs(pstack): refresh guide for 0.12.0
Co-authored-by: lauren <poteto@users.noreply.github.com>
1 parent da43b7d commit 825da15

7 files changed

Lines changed: 30 additions & 6 deletions

File tree

pstack/.cursor-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "pstack",
33
"displayName": "pstack",
4-
"version": "0.11.15",
4+
"version": "0.12.0",
55
"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.",
66
"author": {
77
"name": "Lauren Tan"

pstack/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ architect: design this instrumentation to be high signal with no false p
159159
this first.
160160
arena: /arena take my prompt to the arena verbatim. i want to compare their proposals
161161
with yours.
162+
swarm: /swarm check every package under packages/ against its check.sh. one worker per
163+
package. one report.
162164
interrogate: /interrogate review this pr.
163165
tdd: /tdd implement
164166
unslop: can we unslop and tighten the new changes?

pstack/docs/guide/01-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Run:
2424

2525
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.
2626

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.
2828

2929
## Accept the verification offer, or don't
3030

pstack/docs/guide/04-design.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Design before you write code
22

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.
44

55
![Three robots draft competing bridge models at their own tables under /architect, /arena, and /interrogate panels, while a judge robot with a clipboard inspects skeptically.](./images/design.jpg)
66

@@ -24,7 +24,7 @@ By default it proceeds straight from the synthesized design into implementation.
2424
/arena take my prompt to the arena verbatim. i want to compare their proposals with yours.
2525
```
2626

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.
2828

2929
```mermaid
3030
flowchart LR
@@ -46,6 +46,16 @@ The panel comes from your [`/setup-pstack`](../../skills/setup-pstack/SKILL.md)
4646
/arena this, 5 candidates. the cache key format is expensive to change later.
4747
```
4848

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+
4959
## Break it with `/interrogate`
5060

5161
```text
@@ -63,6 +73,7 @@ You might be wondering whether every change needs this. No. Most changes need no
6373
- A small, finished change you're unsure about needs `/interrogate` alone.
6474
- A change that crosses function boundaries or moves ownership earns `/architect`, which brings `/arena` with it.
6575
- 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`.
6677
- A contested design that's expensive to reverse gets `/architect`, then `/interrogate` before shipping.
6778

6879
`/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.

pstack/docs/guide/06-verify-and-ship.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ The UI bullet above hides a real requirement. The agent needs a scripted way to
3434

3535
[`/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.
3636

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.
3838

3939
From then on, "verify it in the app" is a step any agent can execute, in this repo, with no setup conversation.
4040

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+
4143
## Keep the verification skill honest
4244

4345
Apps change and feature maps rot. When yours drifts, run:

pstack/docs/guide/10-recipes-and-pitfalls.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ ask /arena for a second opinion on this thread and our approach
2020

2121
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.
2222

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+
2331
## Review a branch skeptically
2432

2533
```text
@@ -67,6 +75,7 @@ You rarely need more words. You need the right name, and [the principles page](.
6775
- **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.
6876
- **A vague finish condition.** "make it better" gives `/loop` nothing to check. Give a command or artifact that can pass or fail.
6977
- **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.
7079
- **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.
7180
- **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.
7281
- **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.

pstack/docs/guide/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Here's what you'll learn:
77
1. [Set up pstack](./01-setup.md). Install the plugin and pick your models.
88
2. [Route work through `/poteto-mode`](./02-poteto-mode.md). Give it a goal and watch it pick a playbook.
99
3. [Understand the code](./03-understand.md). `/how`, `/why`, `/teach`, and `/recall` before you edit anything.
10-
4. [Design the change](./04-design.md). `/architect`, `/arena`, and `/interrogate` before code locks in a shape.
10+
4. [Design the change](./04-design.md). `/architect`, `/arena`, `/swarm`, and `/interrogate` before code locks in a shape.
1111
5. [Build and clean the change](./05-build-and-clean.md). The build playbooks, `/tdd`, and `/unslop`.
1212
6. [Verify and ship](./06-verify-and-ship.md). Prove behavior on the real app, then open a focused PR.
1313
7. [Run work while you sleep](./07-overnight.md). An overnight contract and a decision log you can audit.

0 commit comments

Comments
 (0)