Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/guide/01-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ You only override what you care about. A role with no line in the rule keeps the

You might be wondering what happens on Adaptive. Set a role to `inherit-parent` or `auto` and pstack spawns that role's subagents with `subagent_general` or `subagent_explore`, so they follow 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 `/pstack:swarm` worker unless a race names a model for each arm.

On Fusion, pstack shares the work with the sidekick. A step that hands one agent hands-on work, like writing the code or running a check, goes to the sidekick. It runs on the sidekick model you picked in `/fusion`, not on that step's role line. Panels, fan-out, and second opinions still run as pstack subagents on the models in your rule. A role set to `auto` or `inherit-parent` can run on the lead model, at the lead's price. Chats without Fusion work as described above.

## Accept the verification offers, or don't

At the end of setup, `/pstack:setup-pstack` looks for a way to prove app behavior in your project, either a `verify-*` skill or an existing harness. If it finds neither, it offers once to generate one with [`/pstack:create-verification-skill`](../../skills/create-verification-skill/SKILL.md).
Expand All @@ -45,7 +47,7 @@ After setup, start a new chat. The model rule applies to new sessions.
pstack spends extra tokens on subagents and review panels. That's the price of the rigor. To spend fewer:

- Rerun `/pstack:setup-pstack` and pick a smaller reasoning budget or cheaper models. A strong model in the main chat with cheaper, faster models in the code roles is a good split.
- Set a role to `auto` or `inherit-parent` so it runs on the chat's own model.
- Set a role to `auto` or `inherit-parent` so it runs on the chat's own model. On Fusion that can be the lead, so pin the sidekick's slug instead.
- Shorten a panel list. Each entry runs one subagent.
- Save `/pstack:poteto-mode` for work that needs rigor. A small, obvious edit doesn't.

Expand Down
1 change: 1 addition & 0 deletions docs/guide/10-recipes-and-pitfalls.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ That's the whole prompt. [`/pstack:bro`](../../skills/bro/SKILL.md) restates the
- **Using `/pstack:arena` for coverage.** `/pstack:arena` repeats one design or code brief, then picks a base and grafts the best parts. `/pstack:swarm` partitions slices or declared race arms and aggregates one report.
- **Accepting every review comment.** Bots and humans both file real catches and noise in one list. `/pstack:interrogate` sorts findings into act-on and dismissed buckets with reasons, and you can override either way.
- **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.
- **Putting a Fusion model in a role.** A `fusion-*` slug names a lead and sidekick pair for the main chat, so pstack rejects it and falls back to the role's default. Pick the lead's or the sidekick's own slug, like `claude-opus-5-5-max` or `swe-2-high`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not needed: the skills already reject fusion-* and fall back with a notice, so this pitfall bullet is extra divergence from upstream's list. drop it.

- **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.
- **Writing a `SKILL.md` freehand.** Route it through the [Authoring or modifying a skill playbook](../../skills/poteto-mode/playbooks/authoring-a-skill.md) so validation and review happen.

Expand Down
4 changes: 2 additions & 2 deletions skills/arena/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Every candidate gets the same prompt, so the prompt is the contract.

1. State the artifact each candidate is producing.
2. Derive the rubric, 3-6 concrete gradeable criteria for what success looks like on *this* task. It is the picker's tool in Phase D. Candidates only see the task.
3. Pick the runners. Use the `arena runners` line in `~/.devin/rules/pstack-models.md`. If the rule or that line is missing, default to one each on `claude-opus-5-5-xhigh` and `swe-2-high`. Map each entry to the spawn's `profile`: a real slug `M` becomes `pstack-M`, and `auto` or `inherit-parent` means the parent model, so use `subagent_general` for it. Create a missing `pstack-M` profile per `/pstack:setup-pstack`. An entry `devin models list` doesn't report counts as a rejected slug; never create a profile for it. If a pinned slug is rejected at spawn, run that seat on its family's default and say so. Families go by prefix: `claude-*`, `gpt-*`, `swe-*`, `gemini-*`, plus the short aliases (`opus`, `sonnet`, `swe`, `codex`, `gpt`, `gemini`). With no family match, use `claude-opus-5-5-xhigh`. If it rejects a default, use the closest valid slug of the same family `devin models list` reports. Spawn more runners when the arena covers multiple design directions. Use the same model N times when the work is generation-bound rather than judgment-sensitive. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the **poteto-mode** skill.
3. Pick the runners. Use the `arena runners` line in `~/.devin/rules/pstack-models.md`. If the rule or that line is missing, default to one each on `claude-opus-5-5-xhigh` and `swe-2-high`. Map each entry to the spawn's `profile`: a real slug `M` becomes `pstack-M`, and `auto` or `inherit-parent` means the parent model, so use `subagent_general` for it. Create a missing `pstack-M` profile per `/pstack:setup-pstack`. An entry `devin models list` doesn't report, or any `fusion-*` entry, counts as a rejected slug; never create a profile for it. If a pinned slug is rejected at spawn, run that seat on its family's default and say so. Families go by prefix: `claude-*`, `gpt-*`, `swe-*`, `gemini-*`, plus the short aliases (`opus`, `sonnet`, `swe`, `codex`, `gpt`, `gemini`). With no family match, use `claude-opus-5-5-xhigh`. If it rejects a default, use the closest valid slug of the same family `devin models list` reports. Spawn more runners when the arena covers multiple design directions. Use the same model N times when the work is generation-bound rather than judgment-sensitive. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the **poteto-mode** skill.
4. Give each candidate its own output location (a git worktree where possible, otherwise `/tmp/arena-<slug>/candidate-<n>/`), per the **separate-before-serializing-shared-state** principle skill.

## Phase B: Fan out
Expand All @@ -25,7 +25,7 @@ If a candidate produces no output, proceed with N-1 and note the dropout.

## Phase C: Cross-judge

After all Phase B candidates complete, choose one model from the `arena cross-judge pool` line in `~/.devin/rules/pstack-models.md`. If the rule or that line is missing, choose from `claude-opus-5-5-xhigh` and `swe-2-high`. Prefer a different model family from the parent's. Spawn one read-only judge subagent on it (`pstack-M-ro`, or `subagent_explore` for `auto`/`inherit-parent`). An entry `devin models list` doesn't report counts as a rejected slug; never create a profile for it. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with your reading in Phase D. Don't spawn it while candidates are still writing.
After all Phase B candidates complete, choose one model from the `arena cross-judge pool` line in `~/.devin/rules/pstack-models.md`. If the rule or that line is missing, choose from `claude-opus-5-5-xhigh` and `swe-2-high`. Prefer a different model family from the parent's. On Fusion, prefer one outside both the lead's and the sidekick's families, else outside the lead's. Spawn one read-only judge subagent on it (`pstack-M-ro`, or `subagent_explore` for `auto`/`inherit-parent`). An entry `devin models list` doesn't report, or any `fusion-*` entry, counts as a rejected slug; never create a profile for it. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with your reading in Phase D. Don't spawn it while candidates are still writing.

## Phase D: Pick a base

Expand Down
2 changes: 1 addition & 1 deletion skills/how/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ triggers: [user]

Explore the codebase to answer "how does X work?" questions. Produce architectural explanations at the level of a senior engineer onboarding onto a subsystem, enough to build a working mental model, not so much that it reads like annotated source code.

Every spawn is a read-only `run_subagent` subagent. Explorers use the `how explorer` line in the `pstack-models.md` rule (default `swe-2-high`), and every explainer uses the `how explainer` line (default `claude-opus-5-5-xhigh`). Map each role's value to the spawn's `profile`: a real slug `M` becomes `pstack-M-ro`; `auto`, `inherit-parent`, or a missing rule or line uses `subagent_explore`, or `subagent_general` with a read-only brief when the explorer needs `exec` or MCP. Create a missing `pstack-M-ro` profile per `/pstack:setup-pstack` rather than swapping models. An entry `devin models list` doesn't report counts as a rejected slug; never create a profile for it. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the **poteto-mode** skill.
Every spawn is a read-only `run_subagent` subagent. Explorers use the `how explorer` line in the `pstack-models.md` rule (default `swe-2-high`), and every explainer uses the `how explainer` line (default `claude-opus-5-5-xhigh`). Map each role's value to the spawn's `profile`: a real slug `M` becomes `pstack-M-ro`; `auto`, `inherit-parent`, or a missing rule or line uses `subagent_explore`, or `subagent_general` with a read-only brief when the explorer needs `exec` or MCP. Create a missing `pstack-M-ro` profile per `/pstack:setup-pstack` rather than swapping models. An entry `devin models list` doesn't report, or any `fusion-*` entry, counts as a rejected slug; never create a profile for it. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the **poteto-mode** skill.

## 1. Assess complexity

Expand Down
2 changes: 1 addition & 1 deletion skills/interrogate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Launch all reviewers in a single message with run_subagent, one per entry on the
| Reviewer A | `claude-opus-5-5-xhigh` |
| Reviewer B | `swe-2-high` |

Each reviewer is read-only and gets `profile` from its configured entry, or its table default when there is no configured line. A real slug `M` becomes `pstack-M-ro` (create it per `/pstack:setup-pstack` if missing). An entry `devin models list` doesn't report counts as a rejected slug; never create a profile for it. An `auto` or `inherit-parent` entry uses `subagent_explore`, so that reviewer runs on the parent-assigned default; use `subagent_general` with a read-only brief when the review needs `exec` or MCP.
Each reviewer is read-only and gets `profile` from its configured entry, or its table default when there is no configured line. A real slug `M` becomes `pstack-M-ro` (create it per `/pstack:setup-pstack` if missing). An entry `devin models list` doesn't report, or any `fusion-*` entry, counts as a rejected slug; never create a profile for it. An `auto` or `inherit-parent` entry uses `subagent_explore`, so that reviewer runs on the parent-assigned default; use `subagent_general` with a read-only brief when the review needs `exec` or MCP.

If a pinned slug is rejected at spawn, run that reviewer on its family's table default and say so. Families go by prefix: `claude-*`, `gpt-*`, `swe-*`, `gemini-*`, plus the short aliases (`opus`, `sonnet`, `swe`, `codex`, `gpt`, `gemini`). With no family match, use Reviewer A's default. If it rejects a table default, spawn with the closest equivalent `devin models list` reports (prefer the same family and reasoning tier), and open a separate PR to update the default table. Do not block the review on the slug issue. Never treat an alias entry as a rejected slug or apply either fallback to it.

Expand Down
4 changes: 2 additions & 2 deletions skills/poteto-help/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ When the model rule is missing and it matters, ask whether the user wants to pic

Installing changes nothing until the user invokes a skill. Only `/pstack:setup-pstack` loads from the user's words. The [README](../../README.md) and [guide page 1](../../docs/guide/01-setup.md) have the details. Offer to word their first prompt with them, per [`references/prompting.md`](references/prompting.md).

If cost is the worry, say where the tokens go and how to spend fewer. pstack spends extra tokens on subagents and review panels. Rerun `/pstack:setup-pstack` and pick a smaller budget or cheaper models. A role set to `auto` or `inherit-parent` runs on the chat's model, which saves tokens when the chat runs on Auto or a cheaper model. A shorter panel list runs fewer subagents, one for each entry. Save `/pstack:poteto-mode` for work that needs rigor.
If cost is the worry, say where the tokens go and how to spend fewer. pstack spends extra tokens on subagents and review panels. Rerun `/pstack:setup-pstack` and pick a smaller budget or cheaper models. A role set to `auto` or `inherit-parent` runs on the chat's model, which saves tokens when the chat runs on Auto or a cheaper model. On Fusion it can run on the lead model, so pinning the sidekick's slug costs less. A shorter panel list runs fewer subagents, one for each entry. Save `/pstack:poteto-mode` for work that needs rigor.

This is the Devin port of pstack. Its skills use the Agent Skills format, its subagents run on Devin's `run_subagent`, and per-role models work through the `pstack-<slug>` profiles `/pstack:setup-pstack` writes.
This is the Devin port of pstack. Its skills use the Agent Skills format, its subagents run on Devin's `run_subagent`, and per-role models work through the `pstack-<slug>` profiles `/pstack:setup-pstack` writes. On Fusion, a step that hands one agent hands-on work goes to the sidekick, and panels and fan-out stay on `run_subagent`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this repeats the poteto-mode fusion paragraphs in the port note. the cost sentence on line 44 is enough here; drop the added sentence and keep this line identical to main.


## Start a task with `/pstack:poteto-mode`

Expand Down
Loading
Loading