setup-pstack について
現在のランタイム向けに、pstack の役割別モデル上書きシートを設定するスキルです。モデルの検出、割り当て確認、値の検証、ランタイムごとの読み込み方法を案内します。
主な機能
- 01利用可能なモデルの検出
- 02既存設定の確認
- 03役割ごとの割り当て確認
- 04モデルと推論レベルの検証
- 05ランタイム別設定の書き込み
活用シーン
- 01利用可能なモデルに合わせた役割設定
- 02モデル割り当ての更新
- 03セッションフック動作の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ michael-denyer/ pstack-claude --skill setup-pstackインストール後、Claude Code で/setup-pstackを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
copilot.mdscripts/check-sheet.awkcheck-sheet.shread-sheet.shsheet.awk詳細
pstack のセットアップ
Codex では、このスキルを実行する前に、スキルごとの注記も含めてプラットフォームの対応表を確認してください。
GitHub Copilot では、このスキルを実行する前に、スキルごとの注記も含めてプラットフォームの対応表を確認してください。
Muse では、このスキルを実行する前に、スキルごとの注記も含めてプラットフォームの対応表を確認してください。
GitHub Copilot では、手順1、3、4、7、および手順6の見出しの代わりに、Copilot のセットアップに従ってください。
別のランタイムでは、シートの保存場所と読み込み方法について、以下のその他のランタイムを確認してください。手順は同じです。
その他のランタイムに記載されたパスを使って、現在のランタイムのロールごとのモデル上書きシートを作成してください。各 pstack スキルではデフォルトモデルがインラインで指定されています。この上書きシートを使うと、それらのデフォルトを実際に利用できるモデルに合わせて調整できます。
Claude Code には、Cursor の .mdc のように自動適用される「ルール」の仕組みはありません。Claude Code の設定ディレクトリは、変数が設定されている場合は $CLAUDE_CONFIG_DIR、それ以外の場合は ~/.claude です。このスキルではこれを <config> と呼びます。読み込みは明示的に行います。ユーザーが <config>/CLAUDE.md(またはプロジェクトの CLAUDE.md)に、次のような行を追加します。
@<config>/pstack-models.md
<config> には解決済みのパスを記述し、すべてのセッションでこのファイルがコンテキストとして読み込まれるようにします。
Codex のホームディレクトリは、変数が設定されている場合は $CODEX_HOME、それ以外の場合は ~/.codex です。このスキルではこれを <codex-home> と呼びます。
手順
1. 利用可能なモデルを検出する
このセッションで Agent ツールの model パラメーターに指定できるモデル名を列挙します。これが信頼できる情報源です。Claude Code では、以下のモデルに記載された各ファミリー名が対象となり、それぞれのファミリーの最新モデルが実行されます。完全なモデル ID は拒否されます。デフォルトのパネルも同じ場所に記載されています。このパネルは、異なるファミリーを幅広く含めるために選ばれています。利用可能な追加のスラッグがあれば、ユーザーに確認するか、入力してもらってください。利用可能であることを確認していない実際のスラッグは、決して記述しないでください。inherit-parent と auto のエイリアスは、検出されたスラッグでなくても常に有効です。どちらもロールを親セッションのモデルで実行することを意味します。この場合、Agent 呼び出しでは model を省略します。
2. 現在の状態を読み込む
デフォルトのロールとモデルの対応付けは、以下の「上書きシートを作成する」手順に示されているルール形式です。現在のランタイム用のシートがすでに存在する場合は、それを読み込み、その値を現在の選択として扱います。存在しない場合は、デフォルトから始めます。how critics のように、この形式にないロールの行は、廃止されたロールに由来します。削除してください。古いシートでは、Agent ツールで拒否される claude- で始まる完全なモデル ID が記載されている場合があります。それぞれをファミリー名、つまり claude- の後の単語に置き換えてください。
3. マッピングして確認する
各ロールと現在のモデルをすべて表示し、検出されたモデルのセットに含まれない実際のスラッグには、選択が必要であることを示します。また、ステップ 2 で削除または書き換えられた各行も一覧表示します。そのまま受け入れるか、特定のロールを変更するかを尋ね、検出されたモデルに加えて inherit-parent と auto を選択肢として提示します。自由入力より AskUserQuestion を優先してください。パネルロール(Arena ランナー、Architect ランナー、Interrogate レビュアー)の値はリストで、エイリアスのエントリーも含め、エントリーごとにサブエージェントが 1 つ実行されるため、リストの長さで数が決まります。arena cross-judge pool もリストですが、Arena は可能な場合、親とはモデルファミリーが異なる値を 1 つ選択します。swarm workers は、レースまたは比較によってアームごとに別のモデルが割り当てられない限り、すべてのワーカーのデフォルトモデルになります。
次に、デフォルトの推論エフォートである default effort 行を尋ねます。これは session(親セッションのエフォートを維持)か、Models にあるレベルのいずれかです。そこに記載されたデフォルトから始めます。サフィックスのない各ロール値は、そのレベルで実行されます。次に、別のレベルで実行するロールがあるか尋ねます。Claude Code では、ロール値にスラッグの後ろへレベルを付けられます(例:<slug> @xhigh)。パネルのエントリーにはそれぞれ個別に指定します(例:<slug> @xhigh, <slug> @max)。各レベルはディスパッチのエフォートとして渡されるため、セッションを変更せずに選択した設定が適用されます。デフォルトのエフォートを使う場合は、サフィックスを付けないでください。
4. セッションフックでタスクをルーティングするか選択する
Claude Code と Codex では、プラグインの SessionStart フックが起動、再開、クリア、コンパクト時に poteto-mode の指示を挿入します。Codex では、フックを実行する前に /hooks からプラグインフックを信頼するようユーザーに求めます。Pi では、pstack 拡張機能がエージェントの起動ごとに同じ指示をシステムプロンプトに追加します。Muse では、ユーザーが muse plugins approve pstack でプラグインのフックを承認すると、ネイティブプラグインの SessionStart フックが指示を挿入します。フックを有効のままにするか尋ねます。デフォルトはオンです。回答は、現在のランタイムのシートにある session hook 行の on または off です。シートがない場合、または行がない場合は、フックが指示を挿入します。この行は他のランタイムでは機能しません。
5. 検証する
記述する実際のスラッグはすべて、検出されたセットに含まれている必要があります。inherit-parent と auto は常に有効です。@<level> サフィックスを除いたスラッグを検証し、レベルは Models のエフォートレベルと照合します。default effort の値は、これらのレベルのいずれか、または session です。Codex では、レベルは Codex のモデルが受け入れる reasoning_effort の値です。選択した実際のスラッグまたはレベルが利用できない場合は、停止してもう一度尋ねてください。
6. オーバーライドシートを書き込む
以下の形式で、現在のランタイムのシートを書き込みます。再実行しても冪等性が保たれるよう、ファイル全体を上書きしてください。
# pstack model configuration
Per-role model overrides for pstack skills. Each pstack 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. A model may carry a reasoning effort, as in `opus @xhigh` (levels: low, medium, high, xhigh, max); the role's subagent then runs at that level, each entry of a panel list on its own. `default effort` sets the level for a value without one; `session` keeps the parent session's effort. `session hook: off` stops the Claude Code, Codex, or Muse SessionStart hook, or the pstack Pi extension, from injecting the poteto-mode mandate; any other value, or no line, leaves it on.
feature, refactoring: sonnet
bug-fix: opus
perf-issue: opus
hillclimb: opus
judgment and prose: opus
strongest judgment: fable
how explorer: opus
how explainer: opus
why investigators: opus
why synthesizer: opus
reflect tooling: opus
reflect judgment, divergent, synthesizer: opus
arena runners: opus, fable, sonnet, haiku
arena cross-judge pool: opus, fable, sonnet, haiku
swarm workers: opus
architect runners: opus, fable, sonnet, haiku
interrogate reviewers: opus, fable, sonnet, haiku
default effort: session
session hook: on
7. 接続する
Claude Code では、<config>/CLAUDE.md に <config>/pstack-models.md がまだ含まれていない場合、シートの解決済みパスを示す @ 行を追記します(例:@~/.claude/pstack-models.md)。これにより、モデル行がすべてのセッションで読み込まれます。ユーザーがプロジェクトスコープを希望する場合は、代わりにプロジェクトの CLAUDE.md にインクルードを追加します。
Codex では、モデル行と default effort 行を <codex-home>/AGENTS.md に貼り付けます。Codex には @ インクルードがありません。session hook 行はそこに貼り付けないでください。プラグインフックは <codex-home>/pstack-models.md から直接読み取ります。
Muse では、インクルード行は不要です。プラグインフックがシートを直接読み取り、セッション開始時にロール行を挿入します。ユーザーがプラグインのフックを承認した後にのみ実行されるため、まだフックが実行されていない場合は muse plugins approve pstack を案内してください。
8. 確認する
オーバーライドを書き込んだ場所、モデル行の読み込み方法、プラグインフックが有効かどうかをユーザーに伝えます。このスキルを再実行すると、オーバーライドシートが更新されます。
9. 検証スキルを提案する(任意)
プロジェクトに、実際のアプリを操作して証拠を示す方法(プロジェクトの verify または verify-* スキル、あるいは既存のハーネス)があるか確認します。ない場合は、次のように一度だけ提案します。「エージェントがユーザーと同じようにアプリを操作し、変更が機能することを確認できる、プロジェクト固有の検証スキルが必要ですか? /create-verification-skill で生成できます。」はいの場合は、/create-verification-skill を実行します。いいえの場合は、無理に勧めずに先へ進みます。
10. 形式検証スキルを提案する(任意)
プロジェクトに形式検証スキル(モデルチェッカー、証明、または別の検証ツールをコードに対して実行するプロジェクトスキル)がすでにあるか確認します。ない場合は、次のように一度だけ提案します。「テストで到達できるケースだけでなく、対象範囲のすべてのケースでコードの重要な性質が成り立つことをエージェントが証明できる、形式検証スキルが必要ですか? /create-formal-verification-skill で生成できます。」はいの場合は、/create-formal-verification-skill を実行します。いいえの場合は、無理に勧めずに先へ進みます。
その他のランタイム
役割の記述はどのランタイムでも同じです。異なるのはシートのパス、ランタイムによる読み込み方法、モデルの一覧表示方法です。モデルの検出にはランタイム独自のツールを使い、一覧に表示されたことのないスラッグは決して記述しないでください。サブエージェント呼び出しにモデルパラメーターがないランタイムでも、ユーザーの選択を記録するものとしてシートを使用し、可能な範囲で適用します。session hook の行は、Claude Code、Codex、GitHub Copilot のプラグイン、および pstack Pi 拡張機能に適用されます。
| ランタイム | シート | 読み込み | モデルの一覧表示 | ステータス |
|---|---|---|---|---|
| Claude Code | <config>/pstack-models.md | <config>/CLAUDE.md 内の @<config>/pstack-models.md | Agent ツールのモデルパラメーター | 実環境で検証済み |
| Codex | <codex-home>/pstack-models.md | モデル行:<codex-home>/AGENTS.md に貼り付けます。フック設定:プラグインが読み込みます | 設定済みの Codex モデル。codex-tools.md を参照してください | フックの契約をテスト済み。検出を検証済み |
| Pi | Pi エージェントディレクトリ内の pstack-models.md、$PI_CODING_AGENT_DIR または ~/.pi/agent | pstack Pi 拡張機能が読み込みます。モデル行とフック設定の両方が対象です。include 行は不要です | pi --list-models。pi-tools.md とその setup-pstack の注記を参照してください | 拡張機能の契約をオフラインでテスト済み。実環境での結果はリポジトリの docs/pi-equivalence.md に記載されています |
| GitHub Copilot(CLI とアプリ) | ${COPILOT_HOME:-~/.copilot}/pstack-models.md | プラグインのフックが確認し、セッション開始時に役割の記述を挿入します。スキルのみのインストールでは view で読み込みます | task ツールの model 列挙型。copilot-tools.md を参照してください | フックの契約をテスト済み。CLI のインストールをスモークテスト済み |
| Muse | ${XDG_CONFIG_HOME:-~/.config}/muse/pstack-models.md | フックが承認されると、プラグインのフックが読み込み、セッション開始時に役割の記述を挿入します。include 行は不要です | モデルカタログ(muse model-profile show <model> で各モデルの名前を確認できます)。muse-tools.md を参照してください | フックの契約をテスト済み。プラグインのインストールを検証済み |
| opencode | ~/.config/opencode/pstack-models.md | opencode.json の instructions 配列にパスを追加します | セッション内の models スラッシュコマンド | 公開ドキュメントに基づくものです。実セッションでは未確認 |
| Gemini CLI | ~/.gemini/pstack-models.md | ~/.gemini/GEMINI.md 内の @~/.gemini/pstack-models.md | セッション内の model スラッシュコマンド | 公開ドキュメントに基づくものです。実セッションでは未確認 |
| Prime Agent | ドキュメント化されたシートのパスはありません。モデルは Prime の設定で選択します | 実セッションでは未確認 |
モデル
plugins/pstack/models.json から生成されます(そこを編集し、tools/generate.mjs を再実行してください)。
- 利用可能な Claude モデル:
opus、fable、sonnet、haiku - デフォルトパネル:
opus、fable、sonnet、haiku - 推論レベル:
low、medium、high、xhigh、max - デフォルトの推論レベル:
session - 単一ロールのデフォルト:
opus