Install any skill in seconds. Free to start, no credit card required.
Get Started Free →michael-denyer/setup-pstack
Configure which models pstack uses per role. Detects your available Claude models and writes a per-role override file that the user can include from their CLAUDE.md.
Passed 19 of 19 test cases with the skill, and 5 of 19 without it.
and 26 more in the full report
14 fixed5 passed either way0 still failing0 broke3 errored
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am generating a fresh pstack model override sheet from defaults. What is the single-role default model, and what default model is assigned to bug-fix?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies opus as the single-role default model. | Missed | Passed |
| Identifies fable as the default model for bug-fix. | Missed | Passed |
The instructions your model reads when the skill loads.
On Codex, read the platform mapping, including its per-skill notes, before following this skill.
On GitHub Copilot, read the platform mapping, including its per-skill notes, before following this skill.
On GitHub Copilot, follow the Copilot setup in place of steps 1, 3, 4, and 7 and step 6's header.
On another runtime, read Other runtimes below for where the sheet lives and how it loads; the steps are the same.
Write the current runtime's per-role model override sheet, using the path in Other runtimes. Each pstack skill names a default model inline; the override sheet adapts those defaults to the models you actually have access to.
Claude Code has no auto-applied "rules" mechanism like Cursor's .mdc. The Claude Code config directory is $CLAUDE_CONFIG_DIR when that variable is set and ~/.claude otherwise. This skill calls it <config>. Inclusion is explicit: the user adds a line to <config>/CLAUDE.md (or their project CLAUDE.md) such as:
@<config>/pstack-models.md
with <config> written as the resolved path, so the file is loaded as context for every session.
The Codex home directory is $CODEX_HOME when that variable is set and ~/.codex otherwise. This skill calls it <codex-home>.
Enumerate the model names the Agent tool's model parameter accepts in this session. That is the dependable source. On Claude Code they are the family names listed in Models below, each running that family's current model, and a full model ID is rejected. The default panel is listed there too. The panel is chosen for cross-family diversity. Ask the user to confirm or paste any additional slugs they want available. 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. Both mean the role runs on the parent session's model, which the Agent call expresses by omitting model.
The default role-to-model mapping is the rule shape shown in the Write the override sheet step below. If the current runtime's sheet already exists, read it and treat its values as the current choices. Otherwise start from those defaults. A line whose role is not in that shape, such as how critics, is from a retired role. Drop it. An older sheet may name full model IDs that start with claude-, which the Agent tool rejects. Replace each with its family name, the word after claude-.
Show every role with its current model, marking any real slug not in the detected set as needing a choice. Also list each line step 2 dropped or rewrote. Ask whether to accept as-is or change specific roles, offering the detected models plus inherit-parent and auto as the options. Prefer AskUserQuestion 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.
Then ask for the default reasoning effort, the default effort line. It is session, which keeps the parent session's effort, or one of the levels in Models. Start from the default listed there. Every role value without a suffix runs at it. Then ask whether any role should run at another level. On Claude Code a role value may carry one after its slug, as in <slug> @xhigh; panel entries take their own, as in <slug> @xhigh, <slug> @max. Each level dispatches through the plugin's effort agent of that level, so the choice holds without changing the session. Leave the suffix off for the default effort.
test cases passed, vs 5 / 19 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.