Use when the user wants to configure Jstack's per-role Claude models.
Scanned 9/23/2026
Install to Claude Code
npx -y skills add jaydubya818/MissionControl --skill setup-jstack --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Setup Jstack?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jaydubya818-setup-jstack)More formats (shields.io, HTML) on the badges page.
---
name: setup-jstack
description: "Use when the user wants to configure Jstack's per-role Claude models."
license: MIT
metadata:
author: jstack-maintainers
source: michael-denyer/pstack-claude
source-version: "0.9.30"
source-commit: 45f768349a6d7d7e71509fee3f5bccfad54b3bad
owner: software-factory
risk: medium
capabilities: jstack,engineering-workflow
---
# Setup Jstack
On Codex, Cursor, or another non-Claude runtime, read the [runtime mapping](../poteto-mode/references/harness-tools.md), including its per-skill notes, before following this skill.
Write `~/.claude/jstack-models.md`, a per-role model override sheet you include from your global `CLAUDE.md`. Each Jstack skill names a default model inline; the override sheet is the layer that adapts those defaults to the models you actually have access to.
Claude Code has no auto-applied "rules" mechanism like Cursor's `.mdc`. Inclusion is explicit: the user adds a line to `~/.claude/CLAUDE.md` (or their project `CLAUDE.md`) such as:
```text
@~/.claude/jstack-models.md
```
so the file is loaded as context for every session.
## Steps
### 1. Detect available models
Enumerate the model slugs you can pass to an `Agent` subagent in this session — that is the dependable source. The currently available Claude models and the default panel are listed in [Models](#models) below; the quad is chosen for cross-family, cross-tier diversity, and the single-role default stays out of the panels because it already covers the single-model roles. 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`.
### 2. Load current state
The default role-to-model mapping is the rule shape shown in step 5 below. If `~/.claude/jstack-models.md` already exists, read it and treat its values as the current choices. Otherwise start from those defaults.
### 3. Map and confirm
Show every role with its current model, marking any real slug not in the detected set as needing a choice. 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.
### 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 override sheet
Write `~/.claude/jstack-models.md` with the shape below. Overwrite the whole file so re-runs stay idempotent.
```markdown
# Jstack model configuration
Per-role model overrides for Jstack skills. Each Jstack SKILL.md names its defaults in a Models section; the values here override those defaults. Delete a line to fall back to the skill default. A value of `inherit-parent` or `auto` runs that role on the parent session's model (the `Agent` call omits `model`); an alias entry in a panel list still counts toward that panel's fan-out.
feature, refactoring: claude-opus-5
bug-fix: claude-fable-5-1
perf-issue: claude-fable-5-1
hillclimb: claude-fable-5-1
judgment and prose: claude-opus-5
strongest judgment: claude-fable-5-1
how explorer: claude-opus-5
how explainer: claude-opus-5
why investigators: claude-opus-5
why synthesizer: claude-opus-5
reflect tooling: claude-opus-5
reflect judgment, divergent, synthesizer: claude-opus-5
arena runners: claude-opus-5, claude-fable-5-1, claude-sonnet-5
arena cross-judge pool: claude-opus-5, claude-fable-5-1, claude-sonnet-5
swarm workers: claude-opus-5
architect runners: claude-opus-5, claude-fable-5-1, claude-sonnet-5
interrogate reviewers: claude-opus-5, claude-fable-5-1, claude-sonnet-5
```
### 6. Wire it in
If `~/.claude/CLAUDE.md` does not already include `~/.claude/jstack-models.md`, append the `@~/.claude/jstack-models.md` line so it loads on every session. If the user prefers project scope, add the include to the project's `CLAUDE.md` instead.
### 7. Confirm
Tell the user where the override was written and how it loads (via the `@` include in CLAUDE.md). Re-running this skill updates the override sheet.
## Models
Defaults originate from the upstream `plugins/pstack/models.json`. Refresh them through `scripts/vendor_jstack.py` after reviewing the upstream change.
- Available Claude models: Opus 5 (`claude-opus-5`), Opus 4.8 (`claude-opus-4-8`), Opus 4.6 (`claude-opus-4-6`), Fable 5.1 (`claude-fable-5-1`), Sonnet 5 (`claude-sonnet-5`), Sonnet 4.6 (`claude-sonnet-4-6`), Haiku 4.5 (`claude-haiku-4-5`)
- Default panel: `claude-opus-5`, `claude-fable-5-1`, `claude-sonnet-5`
- Single-role default: `claude-opus-5`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!