Skip to main content
skill CX Codex

setup-pstack · backnotprop — Claude Code skill: pstack models per role

Sets which model pstack runs for each role and how much reasoning budget it gets, then writes that into a rule file that overrides the skill defaults.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add backnotprop/pstack --skill setup-pstack -a claude-code
Open on GitHub

What setup-pstack does

The skill builds a role-to-model table for pstack. It starts by listing the model slugs you can actually reach in this session: Task in Cursor, Agent in Claude Code, task in OpenCode, spawn_agent in Codex. If your harness has a command that prints your models, the skill uses that instead. A slug it has not confirmed never lands in the file, and inherit-parent and auto pass either way.

Then comes the budget, one of four: unlimited maps to max, large to xhigh, medium to high, small to medium. The skill moves the effort token at the end of each slug along max > xhigh > high > medium > low. Aliases stay untouched, because both mean the role runs on the parent chat model.

Where the file goes: ~/.claude/rules/pstack-models.md for Claude Code, ~/.cursor/rules/pstack-models.mdc for Cursor with alwaysApply: true, and ~/.agents/pstack-models.md for everything else. That last one matters. Codex, OpenCode and similar harnesses do not load it by themselves, so pstack skills read it when they pick a model. Grok slugs stop at xhigh, so under unlimited a Grok role falls back to xhigh or gets flagged as needing a choice — check the role list before you confirm.

What it helps with

  • pin a model to every pstack role without editing the skills
  • switch reasoning budget by changing one # budget line
  • drop all real slugs to medium with a single pick
  • catch slugs missing from the session before subagents run
  • keep a role on the parent chat model with auto

Example prompts for the agent

  • /setup-pstack with the small budget, leave the roles alone
  • configure pstack models: run hardest tasks on claude-opus-5-5-max
  • show the pstack role table, then we will change swarm workers

How to install setup-pstack

1Skills CLI (Vercel)

npx skills add backnotprop/pstack --skill setup-pstack -a claude-code

2Manually: put the files in place

~/.claude/skills/setup-pstack/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/setup-pstack/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about setup-pstack

How do I install setup-pstack in Claude Code?

Run npx skills add backnotprop/pstack --skill setup-pstack -a claude-code. The skill ends up at ~/.claude/skills/setup-pstack/SKILL.md.

What does setup-pstack do?

It detects your available models, assigns them to pstack roles with a reasoning budget, and writes the result as a rule that overrides the skill defaults. Re-running it overwrites the whole file.

Where does the skill write the model choices?

~/.claude/rules/pstack-models.md in Claude Code, ~/.cursor/rules/pstack-models.mdc in Cursor with alwaysApply: true, and ~/.agents/pstack-models.md for other harnesses, where pstack skills read it at model-selection time.

Source text

SKILL.md · MIT
---
name: setup-pstack
description: Configure which models pstack uses per role and at what reasoning budget. Detects your available models and writes an always-applied rule that overrides the skill defaults. Use for /setup-pstack, "configure pstack models", "pstack budget", or changing pstack's model choices.
---

# Setup pstack

Write pstack's model settings, one model per role:

- **Cursor:** `~/.cursor/rules/pstack-models.mdc`, an always-applied rule.
- **Claude Code:** `~/.claude/rules/pstack-models.md`. Claude Code loads every file in `~/.claude/rules/` into each new session.
- **Every other harness** (Codex, Pi, OpenCode, and others): `~/.agents/pstack-models.md`. These harnesses don't load it on their own, so pstack skills read this file when they pick a model.

"The settings file" below means the file for your harness. In Claude Code, if that file is missing, read `~/.agents/pstack-models.md` instead, where older versions of this skill wrote it.

## Steps

### 1. Detect available models

Enumerate the model slugs you can pass to a subagent in this session (Cursor `Task`, Claude Code `Agent`, OpenCode `task`, Codex `spawn_agent`). That is the dependable source. If your harness also has a command that lists the user's models, prefer it for completeness (for example `opencode models` or `pi --list-models`). 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.

### 2. Load current state

The default role-to-model mapping is the rule shape shown in step 5 below. If the settings file 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.

### 3. Budget, map, and confirm

**(a) Ask for a budget.** Prefer your structured-question tool (`AskQuestion` in Cursor, `AskUserQuestion` in Claude Code, `question` in OpenCode) 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 reasoning`
- `large — xhigh reasoning`
- `medium — high reasoning`
- `small — 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 your structured-question tool 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.

### 4. Validate

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.

### 5. Write the rule

Write the settings file with a `# budget` line with the chosen label and its target effort, and one line per role, using the same labels poteto-mode uses. In Cursor, include the frontmatter below with `alwaysApply: true`. In other harnesses, write the settings file without the frontmatter (start at the first `#` line). Overwrite the whole file so re-runs stay idempotent. Shape:

```
---
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.
# `inherit-parent` or `auto` as a value: the role runs on the parent chat model (omit the subagent `model`). Alias entries in a panel list still count toward its fan-out.
# budget: large (xhigh)
feature, refactoring: grok-4.7-xhigh-fast
bug-fix: grok-4.7-xhigh-fast
perf-issue: grok-4.7-xhigh-fast
hillclimb: grok-4.7-xhigh-fast
judgment and prose: claude-opus-5-5-xhigh
hardest tasks: claude-opus-5-5-xhigh
how explorer: grok-4.7-xhigh-fast
how explainer: claude-opus-5-5-xhigh
why investigators: grok-4.7-xhigh-fast
why synthesizer: claude-opus-5-5-xhigh
reflect tooling: grok-4.7-xhigh-fast
reflect judgment, divergent, synthesizer: claude-opus-5-5-xhigh
arena runners: claude-opus-5-5-xhigh, grok-4.7-xhigh-fast
arena cross-judge pool: claude-opus-5-5-xhigh, grok-4.7-xhigh-fast
swarm workers: grok-4.7-xhigh-fast
architect runners: claude-opus-5-5-xhigh, grok-4.7-xhigh-fast
interrogate reviewers: claude-opus-5-5-xhigh, grok-4.7-xhigh-fast
```

### 6. Confirm

Tell the user which file was written. In Cursor and Claude Code, it applies to new sessions. In other harnesses, pstack skills read `~/.agents/pstack-models.md` when they pick a model. Re-running this skill updates it.

### 7. Offer a verification skill (optional)

Check whether the project has a way to drive the real app for proof (a `verify-*` skill, or an existing harness). If not, offer once: "want a project-local verification skill, so agents can drive the app the way a user does and prove changes work? I can generate one with /create-verification-skill." On yes, invoke `/create-verification-skill` (resolves wherever pstack is installed: workspace, user, or plugin). On no, move on without pushing.

### 8. Offer a formal verification skill (optional)

Check whether the project already has a formal verification skill (a project skill that runs a model checker, a proof, or another verifier against the code). If not, offer once: "want a formal verification skill, so agents can prove a key property of your code holds in every case in scope, not only the cases tests reach? I can generate one with /create-formal-verification-skill." On yes, invoke `/create-formal-verification-skill` (resolves wherever pstack is installed: workspace, user, or plugin). On no, move on without pushing.

© backnotprop · MIT · backnotprop/pstack

Similar skills

All skills for Agent setup: memory, context, orchestration →

setup-pstack by other authors comes first.

setup-pstack michael-denyer Picks a model for every pstack role, detects what your session actually offers, and writes the override sheet. CX Codex +1 899installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. 1,052,851installs prisma-database-setup prisma A deprecated compatibility name for prisma-orm-setup, which handles Prisma setup and database connection repair. CX Codex +1 390,200installs argent-android-emulator-setup software-mansion This skill connects an Android emulator through argent MCP tools. Use it to find a device or boot an AVD before working with an Android UI. CX Codex +1 26,600installs argent-ios-simulator-setup software-mansion A skill for connecting to an iOS simulator via argent MCP tools. Use it to find a booted simulator, get its UDID, and prepare for any interaction task. CX Codex +1 26,500installs dart-setup-ffi-assets flutter Skill guides agents in automating compilation and packaging of C/C++ code into dynamic or static libraries via Dart's Native Assets system. Use it to integrate native code into Flutter or Dart packages. CX Codex +1 14,000installs plannotator-setup-goal backnotprop This skill turns an idea into a goal package through user interview, fact gathering, and codebase exploration. It helps clarify what needs to be done and creates an execution plan. CX Codex +1 11,400installs

From the same set44

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor