Carlomos7/commander-vault

複数の統率者のデッキ保管庫(ヴォールト)を一元管理し、ティアリスト、デッキリスト、価格帯、カードビューアーなどを1ページにまとめます。Sonnetサブエージェントと独立した検証エージェントを指揮し、現在編集中のデッキからも開始できます。

commander-vault とは?

このスキルは、複数の統率者向けに「統率者デッキ保管庫(ヴォールト)」を構築・管理するための、高度に自動化されたリードエージェントです。統率者やデッキのテーマに関係なく、ティアリスト、ブラケット(強度帯)ごとのデッキリスト、採用候補カード、価格帯、カードビューアーなど、あらゆる情報を一枚のウェブページに集約します。 特筆すべきは、厳格な精度モデルを採用している点です。カードの価格やリーガリティなどの計算可能な事実は専用の`mtgdb.py`スクリプトにのみ依存させ、その他の主張はすべてログ(`claims.jsonl`)に記録し、独立した検証エージェント`vault-verifier`が再検証を行います。これにより、ユーザーは信頼性の高い情報に基づいてデッキ構築を進められます。 対応プラットフォームはClaude Code(プラグインとして)であり、ワークフローはG0(セットアップ)からG5(ページ生成・公開)までのゲートで厳格に管理されます。各ゲートで品質チェックを行い、問題があれば即座に修正またはフラグを立てます。また、現在編集中のデッキから自動的に開始することも可能で、ユーザーは最低限の質問に答えるだけで高度なデッキ分析ページを入手できます。使い方は、`/mtg:commander-vault` として呼び出し、リクエスト内容を引数で渡すか、質問に答えることで開始します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Carlomos7/mtg-skills/tree/HEAD/plugins/mtg/skills/commander-vault

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Commander Deck Vault(リード)

リクエスト: $ARGUMENTS

次を今すぐ読み込む: mtg-research と commander-deckbuilding(ナレッジ)、次に references/theme-rules.md を読む。 プラグインとしてインストールされている場合、/mtg:commander-vault として呼び出される。ブリーフ用のパス: MTGDB=${CLAUDE_PLUGIN_ROOT}/scripts/mtgdb.py(mtgdb MCPツールと同じコマンド。サブエージェントはどちらを使ってもよい)。ページ用スクリプト: PAGES=${CLAUDE_SKILL_DIR}/scripts(references/pages.md を参照)。すべてのスクリプトは uv run で実行する。テーマがあるヴォールト実行では、--themes vault/themed-printings.json(および --reasons vault/<slug>/off-theme.json)を渡す。

現在の状態

test -f vault/plan.md && { echo "再開中。plan.md:"; cat vault/plan.md; } || echo "新規実行。vault/ はありません。"
test -f deck-brief.md && { echo "編集中のデッキがあります。deck-brief.md:"; cat deck-brief.md; ls *.txt 2>/dev/null; } || echo "ここに編集中のデッキはありません。"

再開する場合: 最初の未チェックゲートから続行する。特に指示がない限り、合格したゲートをやり直さない。

現在作業中のデッキから開始する。 リクエストが空、または「このデッキ」と指定されている(もしくはデッキファイルが指定されている)場合、かつ編集中のデッキが存在する場合(deck-brief.md とその <commander-slug>.txt が、このフォルダまたは会話履歴内にデッキ構築スキルによって存在する場合)、ペーストを求めずにそのデッキを中心にヴォールトを構築する:

  • ブリーフがリクエストを事前に入力する: 統率者、ブラケット、ハードライン、マネーアンサー、コレクション設定、必須/禁止カード、テーマ。
  • 既存のリストは、その統率者のブラケットにおけるデッキとなる: vault/<slug>/b<N>.txt にコピーし、G2チェックを実行する。チェックが失敗しない限り、再構築しない。
  • 質問を1つ行う(AskUserQuestion): 「ヴォールトに何を追加しますか?」 選択肢: 「この統率者の隣接ブラケット(推奨)」 · 「他の統率者も(名前を指定)」 · 「このデッキのページのみ」(最後の選択肢: references/pages.md に従ってレンダリングし、停止。エージェントは不要)。

精度モデル(ゲートが存在する理由)

  1. 計算可能な事実(リーガリティ、印刷版、価格、ゲームチェンジャー、カウント): mtgdb.py のみから取得。エージェントはこれらを別の方法で述べてはならない。
  2. ソース付きの主張(計画、必採用カード、コンボ、cEDH): claims.jsonl に記録され、スクリプトによって監査される。
  3. 独立検証: 作業を書いていない vault-verifier が、ソースを再度開き、チェックを再実行する。
  4. リードによる裁定: あなたは、反論または検証不可能な影響の大きい主張をすべて解決する。
  5. 開示: ページにはデータ日付、実行されたチェック、未検証のまま残ったものが表示される。

インテーク

リクエストはコマンドの後に貼り付けられるか、ファイルとして渡される。通常はリポジトリの vault-request.md テンプレートに従う(例: Brackets: 2 and 3 のような行。括弧内のテキストはヒントであり、回答ではない)(セクション: 何についてか、テーブルとウォレット、あなたのカード、ページに何を載せるか)。以下を解決する: 統率者、ブラケット+デフォルト、予算、価格スタイル、ハードライン、コレクションと所有カードの設定、必須/禁止カード、タブグループ、ページ拡張、ラベルスタイル(デフォルトの中立的判定: Play、Good、Situational、Binder、Bracket 4+。「弱い」とは決して言わない)、テーマ(デフォルトなし。テーマが希望される場合、themes.md のインテーク質問: モード、フランチャイズ、制限、プレミアム)。 ページテンプレートがまだレンダリングできない拡張(代替統率者、コレクションプランナー、プレイヤー間での山の分割)は、vault/ 内のMarkdownファイルとして出力される(alternatives.md、collection-plan.md): すべての配置は、そのデッキの色同一性について mtgdb.py validate を通過し、どの統率者にも合わないカードはその色とともにリストされる。テンプレートのギャップを plan.md に記録する。これらについてのみ質問する(AskUserQuestion、選択式)。残りはデフォルト値を使用する。ユーザーが質問をした場合は、それに答えてビルドを行わない。統率者が6人、またはデッキが18を超える場合: 規模を伝え、確認を取る。 vault/plan.md を書く: 入力、スラッグ、ブラケット行列、デフォルト、コスト見積もり、チェックリスト G0 から G5。

G0 セットアップ(あなた)

  • mtgdb.py status --remote を実行し、次に古いものがあれば mtgdb.py sync を実行する(カード、タグ、ルーリング、コンボ、ルール。約1分)。その後 mtgdb.py selftest を実行する。失敗した場合は、説明されるまで実行を停止する。
  • 最新のWizardsブラケット/ゲームチェンジャー/禁止告知を読む。それが commander-deckbuilding/references/brackets.md よりも新しい場合、変更点を plan.md に記録し、すべてのブリーフに含める。
  • アドオンを、名前を読むのではなく、実際に呼び出してチェックする。mtg-research スキルのアドオンルール(references/sources.md、「オプションのMCPサーバー」)に従う: 各機能(EDHRECデータ、デッキリンク、ブラケット推定、トランスクリプト、ウェブ検索)に対して1回の安価な呼び出しを行う。どの機能が応答したかを plan.md に書き込む。欠落しているものについては、どのチェックが実行されないかを記述する。
  • テーマ(モードが none の場合はスキップ): vault/theme-spec.json を書き、theme-build を使用して vault/themed-printings.json を構築する(theme-rules.md)。strictの場合は、統率者ごとに theme-pool を実行する。次に、マップを双方向でチェックする:
    • 誤検出: マッピングされたすべてのSecret Lair印刷版の contact-sheet を表示する。自分で確認し、テーマから外れたものをすべて削除する。
    • ギャップ: すべてのセットにわたって、名前、アート(art:)、フレーバーテキスト(ft:)でテーマを search し、マップと差分を取る。
    • 最終的な削除/セットリストを1行でユーザーに表示する。
  • 新しさのカットオフ SINCE を、最新の禁止/ゲームチェンジャー更新の日付に設定する。
  • vault/config.json を書く: {"since": SINCE, "budget": <数値またはnull>, "commanders": {"<slug>": 1 または 2}}。プラグインのフックがこれを読み取る: vault/<slug>/b<N>.txt または claims*.jsonl が書き込まれるたびに、フックがそれを検証し、失敗を直接書き手にフィードバックする。フックはあなたのゲートを置き換えるものではなく、不良ファイルを早期に停止させるためのもの。
  • データの拡張: mtgdb.py sync prices(実行ごとに1回)を価格帯のベンダー価格のために実行する。ユーザーがコレクションを持っている場合、collection show を実行し、所有カードを優先するかどうかを尋ねる。

G1 リサーチ(vault-researcher、並列、2~3人の統率者ずつ)

ブリーフ: references/briefs.md §1。 ゲート: 各統率者について、mtgdb.py audit-claims vault/<slug>/claims.jsonl --since SINCE が合格すること。research.md にすべてのセクションが含まれていること。

G2 パイロット、次にデッキ(vault-deckbuilder)

まず1人の統率者に対してデフォルトブラケットを構築する(§2)。それに対してG2チェックを実行する。エージェントが何かを誤読した場合はブリーフを修正する。その後、展開する。 ゲート、すべてのデッキについて、あなたが実行する(エージェントの報告を決して信用しないこと):

  • mtgdb.py --themes vault/themed-printings.json validate <deck> --bracket N [--budget X]
  • mtgdb.py combos <deck>(ローカルのSpellbookデータ。B1~B3: 2枚コンボ禁止)。アドオンが提供する場合はブラケット推定も行う。
  • themed_printing_available の警告を修正するか、正当化する。
  • すべての consider.json のペアが swaptest を通過すること。

G3 マージ(vault-merger、タブごとに1つ)

§3。ゲート: merged.json 内のすべてのカードが、そのタブの少なくとも1つの consider.json ファイルに出現すること。カウントが一致すること。すべてのペアが swaptest を通過すること(B3以下の場合は自分で25%のサンプルを再実行し、それ以外はすべて)。

G4 検証(vault-verifier、新しいコンテキスト、3~4人の統率者ごとに1つ)

§4。影響の大きい主張の100%と、残りの20%のサンプルを検証する。すべてのデッキチェックを再実行する。アートを見て、争いのある印刷版をチェックする。 ゲート: mtgdb.py audit-claims vault/<slug>/claims.verified.jsonl --since SINCE --require-verified が合格すること。verification.md 内のすべての refuted(反論)または unverifiable(検証不可能)な項目が、あなたによって解決されていること: 修正、削除、または「未検証」ラベルを表示したまま維持。

G5 ページ(あなた、references/pages.md に従う)

  1. site_data.py init vault/site-data.json(テーマがある場合は --themes を付けて)を実行し、次に各デッキに対して add-deck(エージェントの deck-notes.md をデッキごとの notes.json に凝縮)、ティアタブごとに add-tier(EDHRECの数値を n で表示)、タブごとに add-swaps、すべての claims.verified.jsonl で add-claims を実行する。
  2. build_site.py vault/site-data.json --out vault/site を実行する。すべてのエラーを修正する。
  3. pages.md のステップ4と5に従う: デスクトップと390pxで表示し、mtgdb.py に対してランダムに10枚のカードをスポットチェックし、公開する。
  4. 数行で返信する: 含まれているもの、テーマカウント(テーマ付きヴォールトの場合)、精度サマリー(検証済み/未検証とラベル付けされた主張、データ日付)、受け入れた例外。

ページを手動で構築したり、スタイルを変更したりしないでください。テンプレートにすべてのヴォールトに必要なものが欠けている場合は、後でテンプレートを変更するために plan.md に記録してください。

実行中に変更があった場合

  • ユーザーによる方向転換(新しいブラケット焦点、テーマルール、予算): 最初に plan.md と config.json を更新し、次に SendMessage で実行中のすべてのエージェントに正確な変更を伝え、その後、古いルールですでに構築されたものに対してゲートを再度実行する。
  • エージェントの停止(セッション再起動、クラッシュ): どのファイルが存在するかを確認し、欠落している作業のみを再開する。小さい場合は自分で行う。実行されていないエージェントを待ってはいけない。
  • ツールのダウン: どのチェックが実行されなかったかを示し、影響を受ける項目を未検証とマークする。不足を手動で埋めてはいけない。

規模とコスト(インテーク時に決定し、plan.md に記述する)

おおよそのエージェント時間: リサーチに統率者1人あたり約10~20分、デッキ構築に約10分、検証は構築時間の約半分。12統率者、40デッキのヴォールトは数時間実行された。

  • デフォルトの範囲: ユーザーのブラケットに加えて1つ上のブラケット。B5は要請があった場合のみ、かつ実際のcEDHの証拠(EDHTop16エントリー)がある統率者に対してのみ。それ以外の統率者には、「実際のcEDH統率者ではありません」と述べ、誰もプレイしないB5リストは構築しない。
  • デフォルトのサイズ: 最大6統率者。それを超える場合は、最初に見積もりを確認するか、複数のヴォールトに分割する。
  • 検証者の範囲: 影響の大きい主張の100%だが、統率者あたり40件に制限する。それ以上ある場合は、ページに表示される40件(必採用、コンボ、cEDH)を検証し、残りは未検証とラベル付けする。
  • オプションの重いデータ: prices-sync --history(大規模なダウンロード)は、ページに価格傾向を表示する場合のみ。
  • スキップしてもコストがかからないもの: B5のコミュニティパスは不要(トーナメントデータが決定する)。EDHRECデッキ数が約200未満の統率者に対するYouTubeリサーチは不要(コンテンツがほとんどない。データとSpellbookのみ)。
  • 決してカットしてはいけないもの: 検証、Spellbookコンボチェック、フック、テーママップチェック、G5レンダリングチェック。

コストとコンテキスト

  • エージェントはファイルを書き、短いレポートを返す。ゲートでのみそれらのファイルを読む。
  • カードごとのライブScryfall呼び出しは禁止。インデックスがそれをカバーする。
  • あなたが行うすべての修正を plan.md に記録し、再開時に認識できるようにする。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル