Repository navigation
work with fusion's sidekick; reject fusion-* role slugs - #13
Conversation
On Fusion the lead gets a `sidekick` tool and Devin tells it to use no other subagent unless the user asks. pstack had no guidance for that, so delegation could split between the sidekick and pstack subagents or run twice. Single hands-on delegates now go to the sidekick, while panels, fan-out and second opinions stay on `run_subagent`. All of it is gated on the `sidekick` tool, so chats without Fusion behave as before. A `fusion-*` slug names a lead and sidekick pair for the main chat, not one subagent model, so setup-pstack drops them and every routed skill treats one as a rejected slug. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
caelaxie
left a comment
There was a problem hiding this comment.
verdict: changes requested (comment review only because github won't let the author account request changes).
scope is fine. this is a harness-only fix in the same lane as #4: devin's fusion prompt tells the lead to use no subagent but sidekick, and devin models list prints fusion-* pairs that would otherwise land in role lines. every new behavior sentence is gated on the sidekick tool, upstream text around it is untouched, no version bump, ci green, no open issue to link.
blocking:
- harness proof. the body only has the local validate run; the three behavior boxes are unchecked. need, on head
e602182:devin plugins install(the--localwrapper pinned to the full head sha is fine) +devin plugins listshowing pstack, and the installedpoteto-mode/setup-pstacktext showing the new paragraphs. then exercise at least one changed skill: a fusion chat where/pstack:poteto-modehands the delegate tosidekickwhile/pstack:interrogate(or arena) still spawns its panel onrun_subagent, or/pstack:setup-pstackdroppingfusion-*from the detected set. if fusion or live turns are blocked by auth, paste the verbatim error plus the install, list, and installed-text proof, same precedent as before.
minimum-changes trims (inline): two additions aren't needed for the harness; drop them so the port stays closer to upstream.
| - **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`. |
There was a problem hiding this comment.
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.
| 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`. |
There was a problem hiding this comment.
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.
Summary
pstack 0.15.28 never mentions Fusion. On a Fusion chat the lead gets a
sidekicktool, and Devin tells it "Do not use subagents other thansidekickunless the user explicitly asks you to." (string from the devin 3000.11.3 binary). Without guidance, a lead running/pstack:poteto-modecould split one unit of work between the sidekick and pstack subagents, run it twice, or skip pstack's panels.hardest tasksincluded). The lead takes a change back when the sidekick can't land it. Each brief points the sidekick atpoteto-mode/SKILL.md, the same way thepoteto-agentprofile does. Each brief also restates every directive still in force, because the sidekick keeps its context between handoffs instead of starting fresh.run_subagentwith their role profiles: arena runners and judges, swarm workers, reviewers, synthesizers. One sidekick can't run several agents in parallel or give an opinion from a different model. Invoking a pstack skill counts as the user's explicit ask for these subagents. The same unit of work never goes to both.auto/inherit-parenton Fusion. A seat onsubagent_generalruns on the lead model at the lead's price, with no sidekick. The guide,poteto-helpandsetup-pstacknow say so in their cost advice.fusion-*slugs are no longer valid role values. Each one names a lead and sidekick pair for the main chat, not one subagent model.devin models listprints 575 of them, sosetup-pstackdrops them from the detected set: its effort rule would otherwise rewrite the sidekick's effort.poteto-modeand every routed skill (arena,how,interrogate,reflect,swarm,why) treat one as a rejected slug, the same way Guard undetected rule slugs; cover cloud subagent profile gaps #4 handles undetected slugs.Chats without Fusion are unchanged. Every behavior change only applies when the session has a
sidekicktool. Thepoteto-modeparagraphs say so up front and end with "Sessions without asidekicktool skip these two paragraphs". The only change that applies everywhere is rejectingfusion-*values, which a non-Fusion rule has no reason to contain.How the
subagent_generalclaim was checked. I ran it on devin 3000.11.3 underfusion-claude-opus-5-5-max-sidekick-swe-2-high, spawning onesubagent_generalthat was told to make no tool calls. Its stored thinking signature has the same format as the Claude lead's (CAQS…), not SWE-2's (sealed.v…). Its system prompt has no sidekick tool and no Fusion guidance.Not touched: the
plugin.jsonversion (a release decision, as in #4).Test plan
Validated 56 skills, 2 agents, and 23 playbooks.sidekicktool; checked against the word diff/pstack:poteto-modeon a small Feature task: the implementation goes to the sidekick, and/pstack:arenaor/pstack:interrogatestill spawns its panel withrun_subagentpstack-<slug>profile fromfeature, refactoring/pstack:setup-pstackon a Fusion chat never offers afusion-*slug and explains the sidekick splitGenerated with Devin