mirror of
https://github.com/cursor/plugins.git
synced 2026-09-14 20:00:00 +08:00
pstack: route composer slots to grok-4.5-fast-xhigh (#142)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "pstack",
|
||||
"displayName": "pstack",
|
||||
"version": "0.10.0",
|
||||
"version": "0.10.1",
|
||||
"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.",
|
||||
"author": {
|
||||
"name": "Lauren Tan"
|
||||
|
||||
@@ -30,7 +30,7 @@ Skip Phase A only when the work is genuinely greenfield with no surrounding syst
|
||||
|
||||
Run the **arena** skill with the design-sketch task and the Phase A grounding artifacts. Pass `references/runner-prompt.md` as each runner's prompt. Each candidate produces a design package shaped per `references/rationale-template.md`: the caller's usage written first, then the type sketch, function signatures, module map, and prose rationale derived from it.
|
||||
|
||||
Use your configured architect runners (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `composer-2.5-fast`).
|
||||
Use your configured architect runners (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `grok-4.5-fast-xhigh`).
|
||||
|
||||
This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ The N candidates will receive the same prompt, so the prompt is the contract. Ge
|
||||
|
||||
1. State the artifact each candidate is producing.
|
||||
2. Derive the rubric. State what success looks like for *this* task, then turn it into 3-6 concrete gradeable criteria. Concrete: `Adds a --dry-run flag that skips writes`. Vague: `code is correct`. The rubric is the picker's tool in Phase D; candidates only see the task.
|
||||
3. Pick the runners. Default runners are your configured arena list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `composer-2.5-fast`). Spawn more when the arena covers multiple design directions. Same model N times when the work is generation-bound rather than judgment-sensitive.
|
||||
3. Pick the runners. Default runners are your configured arena list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `grok-4.5-fast-xhigh`). Spawn more when the arena covers multiple design directions. Same model N times when the work is generation-bound rather than judgment-sensitive.
|
||||
4. Assign output paths. Each candidate writes to its own location (a git worktree where possible, otherwise `/tmp/arena-<slug>/candidate-<n>/`). N candidates writing to the same path is shared mutable state and fails the the **separate-before-serializing-shared-state** principle skill test.
|
||||
|
||||
## Phase B: Fan out
|
||||
|
||||
@@ -45,7 +45,7 @@ The right decomposition depends on the question. Use your judgment. Narrow quest
|
||||
Spawn all explorers in a single message:
|
||||
|
||||
- `subagent_type`: `generalPurpose`
|
||||
- `model`: your configured how-explorer model (default `composer-2.5-fast`)
|
||||
- `model`: your configured how-explorer model (default `grok-4.5-fast-xhigh`)
|
||||
- `readonly`: `true`
|
||||
|
||||
Each explorer gets the same base prompt from `references/explorer-prompt.md` plus a specific exploration angle naming its slice. Each explorer should:
|
||||
@@ -109,7 +109,7 @@ Run the full explain flow above (Steps 1-4). You must understand the architectur
|
||||
|
||||
### Step 2. Spawn Critics
|
||||
|
||||
After the explanation is complete, spawn one architectural critic per model in your configured how-critics list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `composer-2.5-fast`), all in a single message.
|
||||
After the explanation is complete, spawn one architectural critic per model in your configured how-critics list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `grok-4.5-fast-xhigh`), all in a single message.
|
||||
|
||||
For each critic:
|
||||
- `subagent_type`: `generalPurpose`
|
||||
|
||||
@@ -33,7 +33,7 @@ Write one clear paragraph. Reviewers challenge whether the work achieves the int
|
||||
|
||||
## Step 3, Spawn Reviewers
|
||||
|
||||
Launch one reviewer per model in your configured interrogate list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `composer-2.5-fast`), all in a single message.
|
||||
Launch one reviewer per model in your configured interrogate list (defaults `claude-opus-4-8-thinking-xhigh`, `gpt-5.5-high-fast`, `grok-4.5-fast-xhigh`), all in a single message.
|
||||
|
||||
For each reviewer:
|
||||
- `subagent_type`: `generalPurpose`
|
||||
|
||||
@@ -79,7 +79,7 @@ Read the leaf skill in full for any principle you apply. Each entry names when i
|
||||
|
||||
**Use `subagent_type: "poteto-agent"` for any subagent you spawn inside a playbook step** (code-writing delegates, ad-hoc helpers). `/poteto-mode` and `poteto-agent` route through the same wrapper. Routed workflow skills (`how`, `why`, `interrogate`, `reflect`) set their own `subagent_type` for diverse-model review; respect what the skill prescribes, don't override to `poteto-agent`.
|
||||
|
||||
**Defaults for every `Task` call.** `run_in_background: true`, agent mode (readonly strips MCP), file pointers not inlined context, explicit model per role (configurable via `/setup-pstack`; defaults `composer-2.5-fast` for code, `claude-opus-4-8-thinking-xhigh` for prose and judgment).
|
||||
**Defaults for every `Task` call.** `run_in_background: true`, agent mode (readonly strips MCP), file pointers not inlined context, explicit model per role (configurable via `/setup-pstack`; defaults `grok-4.5-fast-xhigh` for code, `claude-opus-4-8-thinking-xhigh` for prose and judgment).
|
||||
|
||||
You own every subagent's work. Review the diff and write your own summary, don't pass through what it said. Interrupt-chained resumes silently drop directives, so fire a fresh subagent with consolidated scope rather than trusting a "done" summary. A second opinion is the same prompt against a different model. Agreement is high-signal.
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
- **Independent workstreams.** Disjoint files, services, or layers parallelize. Shared writes serialize.
|
||||
- **Shared mutable state.** Default to splitting the target (the **separate-before-serializing-shared-state** principle skill). Serialize only for real invariants.
|
||||
- **Smallest safe decomposition.** If one worker is best, name why.
|
||||
4. Delegate code-writing to a subagent using your configured feature model (default `composer-2.5-fast`) with a specific scope (file paths, named data shape, success criteria); review its diff yourself. When the implementation admits multiple valid shapes (error handling, abstraction layer, test structure), delegate via the **arena** skill instead so the runners surface the alternatives and the cross-judge guards the pick. Mandatory: no skip-with-reason escape, and Laziness Protocol does not override it (the gain is review separation, not lines saved). You can spawn a subagent even though you are one; "the app is small" and "a subagent cannot spawn one" are both wrong. A subagent forbidden to spawn satisfies this by owning the diff directly with the same review separation; no "standing by" reply that waits on a nested agent. Comments per **Comments**. Surgical edits, re-ground against the source for upstream-derived files. Port shared-primitive improvements to all consumers and verify each. Commit liberally.
|
||||
4. Delegate code-writing to a subagent using your configured feature model (default `grok-4.5-fast-xhigh`) with a specific scope (file paths, named data shape, success criteria); review its diff yourself. When the implementation admits multiple valid shapes (error handling, abstraction layer, test structure), delegate via the **arena** skill instead so the runners surface the alternatives and the cross-judge guards the pick. Mandatory: no skip-with-reason escape, and Laziness Protocol does not override it (the gain is review separation, not lines saved). You can spawn a subagent even though you are one; "the app is small" and "a subagent cannot spawn one" are both wrong. A subagent forbidden to spawn satisfies this by owning the diff directly with the same review separation; no "standing by" reply that waits on a nested agent. Comments per **Comments**. Surgical edits, re-ground against the source for upstream-derived files. Port shared-primitive improvements to all consumers and verify each. Commit liberally.
|
||||
5. Verify on the matching surface. "Inconclusive" or wrong-surface is not a pass; flag it.
|
||||
6. Rebase into small, ordered commits; stack follow-ups.
|
||||
Use the **sequence-verifiable-units** principle skill, building, verifying, and committing each small unit before the next.
|
||||
|
||||
@@ -7,7 +7,7 @@ If the cleanup reveals a missing feature or a real bug, split it out and ship th
|
||||
1. Pin the behavior contract first. Run the **how** skill over the affected subsystem to learn the contract, then write a characterization test, snapshot, or equivalence harness that captures current behavior before any structure moves. The harness makes "refactor" a checkable claim (**principle-prove-it-works**). If the area has no coverage, write the pin before touching structure. Type check and lint are not a pin.
|
||||
2. Name the target shape. State what the module layout, types, and call graph should be if built today (**principle-foundational-thinking**, **principle-redesign-from-first-principles**). If the target crosses a function boundary, run the **architect** skill for parallel design exploration of the shape before the move.
|
||||
3. Subtract before you add. Delete dead weight, collapse one-caller wrappers, drop redundant validators, and remove orphan references before introducing the new shape (**principle-subtract-before-you-add**). The smallest change that reaches the target shape ships (**principle-laziness-protocol**). A speculative cleanup that "might help" gets reverted, not left to ride.
|
||||
4. Move in small behavior-preserving steps, each keeping the pin green. For API reshapes, migrate every caller and delete the old API in the same wave (**principle-migrate-callers-then-delete-legacy-apis**). No compatibility shims, no parallel old-and-new paths. Spot-check every rename against the actual files; renames silently miss usages in strings, prose, and back-references. Delegate the mechanical edits to a subagent using your configured refactoring model (default `composer-2.5-fast`) with a specific scope (file paths, the names being moved, the behavior to hold); review the diff yourself.
|
||||
4. Move in small behavior-preserving steps, each keeping the pin green. For API reshapes, migrate every caller and delete the old API in the same wave (**principle-migrate-callers-then-delete-legacy-apis**). No compatibility shims, no parallel old-and-new paths. Spot-check every rename against the actual files; renames silently miss usages in strings, prose, and back-references. Delegate the mechanical edits to a subagent using your configured refactoring model (default `grok-4.5-fast-xhigh`) with a specific scope (file paths, the names being moved, the behavior to hold); review the diff yourself.
|
||||
5. Prove behavior is unchanged on the real artifact, not "it compiles" (**principle-prove-it-works**). For larger reshapes, run an equivalence check: a script that diffs old-vs-new outputs, a recorded baseline replayed against the new code, or a smoke run on the matching surface via the relevant control skill. Own the verification yourself; do not trust a delegate's "looks good" summary.
|
||||
6. Confirm the change earns its place. The success measure is reduced reader load (**principle-minimize-reader-load**): fewer layers between question and answer, less hidden state, fewer indirections without a second consumer. If the diff does not lower reader load somewhere, revert it.
|
||||
7. Rebase into small ordered commits that tell the story. A subtraction commit, then the reshape, then any follow-on cleanup, so a single revert undoes one slice. Shape them with the **sequence-verifiable-units** principle skill, so each behavior-preserving slice stays green before the next. Run **Opening a PR**.
|
||||
|
||||
@@ -25,7 +25,7 @@ Resolve what is in scope vs explicitly out, technical or platform constraints, p
|
||||
Delegate codebase exploration (the **guard-the-context-window** principle skill).
|
||||
|
||||
- Prefer `subagent_type: "poteto-agent"`. `generalPurpose` is the fallback. Never use the built-in `plan` subagent_type; it ignores this skill.
|
||||
- Pass `model:` explicitly per the configured roles (defaults `composer-2.5-fast` for code, `claude-opus-4-8-thinking-xhigh` for judgment).
|
||||
- Pass `model:` explicitly per the configured roles (defaults `grok-4.5-fast-xhigh` for code, `claude-opus-4-8-thinking-xhigh` for judgment).
|
||||
|
||||
Each explorer returns file pointers, conventions, dependencies, test infrastructure, and entry points. No inlined dumps.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ One message, three `Task` calls, `subagent_type: generalPurpose`, explicit `mode
|
||||
| Lens | `model` | Prompt template |
|
||||
|---|---|---|
|
||||
| Judgment | your configured reflect-judgment model (default `claude-opus-4-8-thinking-xhigh`) | `references/judgment-reviewer.md` |
|
||||
| Tooling | your configured reflect-tooling model (default `composer-2.5-fast`) | `references/tooling-reviewer.md` |
|
||||
| Tooling | your configured reflect-tooling model (default `grok-4.5-fast-xhigh`) | `references/tooling-reviewer.md` |
|
||||
| Divergent | your configured reflect-judgment model (default `claude-opus-4-8-thinking-xhigh`) | `references/divergent-reviewer.md` |
|
||||
|
||||
Pass each template verbatim, substituting the transcript path or digest where marked. Reviewers return findings in the `Task` response body.
|
||||
|
||||
@@ -35,21 +35,21 @@ description: pstack per-role model choices (overrides skill defaults)
|
||||
alwaysApply: true
|
||||
---
|
||||
# pstack model configuration. One line per role. Delete a line to fall back to the skill default.
|
||||
feature, refactoring: composer-2.5-fast
|
||||
feature, refactoring: grok-4.5-fast-xhigh
|
||||
bug-fix: gpt-5.5-high-fast
|
||||
perf-issue: gpt-5.5-high-fast
|
||||
hillclimb: gpt-5.5-high-fast
|
||||
judgment and prose: claude-opus-4-8-thinking-xhigh
|
||||
how explorer: composer-2.5-fast
|
||||
how explorer: grok-4.5-fast-xhigh
|
||||
how explainer: claude-opus-4-8-thinking-xhigh
|
||||
how critics: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, composer-2.5-fast
|
||||
why investigators: composer-2.5-fast
|
||||
how critics: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, grok-4.5-fast-xhigh
|
||||
why investigators: grok-4.5-fast-xhigh
|
||||
why synthesizer: claude-opus-4-8-thinking-xhigh
|
||||
reflect tooling: composer-2.5-fast
|
||||
reflect tooling: grok-4.5-fast-xhigh
|
||||
reflect judgment, divergent, synthesizer: claude-opus-4-8-thinking-xhigh
|
||||
arena runners: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, composer-2.5-fast
|
||||
architect runners: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, composer-2.5-fast
|
||||
interrogate reviewers: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, composer-2.5-fast
|
||||
arena runners: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, grok-4.5-fast-xhigh
|
||||
architect runners: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, grok-4.5-fast-xhigh
|
||||
interrogate reviewers: claude-opus-4-8-thinking-xhigh, gpt-5.5-high-fast, grok-4.5-fast-xhigh
|
||||
```
|
||||
|
||||
### 6. Confirm
|
||||
|
||||
@@ -117,7 +117,7 @@ Launch all matching investigators in a single message so they run concurrently.
|
||||
|
||||
Subagent config (each):
|
||||
- `subagent_type`: `generalPurpose`
|
||||
- `model`: your configured why-investigators model (default `composer-2.5-fast`)
|
||||
- `model`: your configured why-investigators model (default `grok-4.5-fast-xhigh`)
|
||||
- `readonly`: `false` (agent mode). **Do not use readonly/Ask mode.** It strips MCP access, which disables MCP-backed investigators entirely. The source control investigator would be safe in readonly, but keep modes uniform. Investigators still shouldn't write anything. That's a posture, not a sandbox.
|
||||
|
||||
Each investigator gets:
|
||||
|
||||
Reference in New Issue
Block a user