Install any skill in seconds. Free to start, no credit card required.
Get Started Free →cursor/setup-pstack
Configure which models pstack uses per role. Detects your available models and writes an always-applied rule that overrides the skill defaults.
Passed 14 of 20 test cases with the skill, and 5 of 20 without it.
and 25 more in the full report
10 fixed4 passed either way5 still failing1 broke3 errored
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
At the end of configuring pstack models in a project that lacks a verify-* skill or automated app driving harness, what final optional step should the assistant offer?
| Checked | Without skill | With skill |
|---|---|---|
| Offers to generate a project-local verification skill using /create-verification-skill. | Missed | Passed |
| Asks the user once without repeatedly pushing if declined. | Missed | Passed |
| Invokes the skill generator command only upon explicit user confirmation. | Missed | Passed |
The instructions your model reads when the skill loads.
Write ~/.cursor/rules/pstack-models.mdc, an always-applied rule that sets pstack's model per role.
Enumerate the model slugs you can pass to a Task subagent in this session. That is the dependable source. If Cursor also exposes a models API or CLI that lists the user's entitled models, prefer it for completeness. If you cannot detect any, ask the user to paste the slugs they have access to. Never write a real slug you have not confirmed is available. The aliases inherit-parent and auto are always valid even though they are not detected slugs.
The default role-to-model mapping is the rule shape shown in step 5 below. If ~/.cursor/rules/pstack-models.mdc already exists, read it and treat its # budget line and its role values as the current choices. Otherwise start from those defaults. A line whose role is not in step 5, such as how critics, is from a retired role. Drop it.
(a) Ask for a budget. Prefer AskQuestion over free text. Offer these four options with these exact labels, and name the current budget when the rule records one. With no rule, say that large matches the skill defaults.
unlimited — max reasoninglarge — xhigh reasoningmedium — high reasoningsmall — medium reasoning(b) Apply it. Build the working table from the skill defaults, and on a re-run keep any role you changed by family, list, or alias (inherit-parent, auto). unlimited, large, medium, and small set the effort token of every real slug, panel entries included, to max, xhigh, high, or medium. The effort token is the last token, or the one before a trailing fast, on the ladder max > xhigh > high > medium > low. If the result is not a detected slug, use the same family's detected slug with the highest effort at or below the target, else mark the role as needing a choice. inherit-parent and auto do not change. So unlimited turns claude-opus-5-5-xhigh into claude-opus-5-5-max. Grok slugs top out at xhigh, so under unlimited the fallback puts Grok at xhigh and keeps grok-4.7-xhigh-fast as it is. large keeps both defaults. small turns them into claude-opus-5-5-medium and grok-4.7-medium-fast.
(c) Show the roles and confirm. Show every role with its model, marking any real slug not in the detected set as needing a choice. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering the detected models plus inherit-parent and auto (both mean: this role runs on the parent chat model, which is how Auto users stay on Auto) as the options. Prefer AskQuestion over free text. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one subagent runs per entry, alias entries included, so the list length sets the count. arena cross-judge pool is also a list, but Arena selects one value from it whose model family differs from the parent's when possible. swarm workers is the default model for every worker unless a race or comparison assigns another model per arm.
Every real slug written must be in the detected set. inherit-parent and auto always pass. If a chosen real slug is not available, stop and ask again.
Write ~/.cursor/rules/pstack-models.mdc with alwaysApply: true, a # budget line with the chosen label and its target effort, and one line per role, using the same labels poteto-mode uses. Overwrite the whole file so re-runs stay idempotent. Shape:
---
description: pstack per-role model choices (overrides skill defaults)
alwaysApply: true
---
test cases passed, vs 5 / 20 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.