mcpField
M
mlb-matchup-analyzer

mlb-matchup-analyzer

github.com/lyndonklその他18746 回インストール10 週間前に更新
リポジトリ

mlb-matchup-analyzer について

mlb-matchup-analyzerは、MLBの試合を分析し、ファンタジーベースボールの分析やラインナップ判断向けに標準化された対戦シグナルを作成するスキルです。先発投手、球場、天候、ブルペンを扱い、出典と平易な左右投手の相性説明を記録します。

主な機能

  1. 01両チームの予想先発を収集
  2. 02球場と天候のシグナルを標準化
  3. 03両チームのブルペン状態を評価
  4. 04左右投手の相性を平易に説明
  5. 05出典付きの対戦シグナルファイルを作成

活用シーン

  1. 01試合ごとの打者の相性を評価
  2. 02球場と天候の打撃への影響を比較
  3. 03各チームのブルペン疲労を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lyndonkl/claude --skill mlb-matchup-analyzer

インストール後、Claude Code で/mlb-matchup-analyzerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

resources/
methodology.md
template.md
resources/evaluators/
rubric_mlb_matchup_analyzer.json

詳細

MLB 対戦分析

目次

例

シナリオ:ユーザーは、今日の試合で Junior Caminero(TB、右打者)を起用すべきか判断する必要があります。試合:Tampa Bay Rays 対 Colorado Rockies、2026-04-17、Coors Field。

調査段階(ウェブ検索、URL をすべて引用):

  • MLB.com の予想先発投手 -> COL の先発投手は German Marquez(右投手)、2026年の ERA は 5.10、K% は 19.0%、ハードヒット率は 43%
  • FanGraphs の2026年球場係数 -> Coors Field:wOBAcon 1.18(リーグ最高の打者有利な球場)
  • RotoWire の天気情報(デンバー、試合開始は PT 7:10) -> 82F、降水確率 0%、中堅方向への風速 9 mph
  • RotoBaller の抑え投手チャート -> COL のブルペン:抑え投手は健康で、セットアップ陣の構成も安定。TB のブルペン:抑え投手は直近4試合のうち3試合に登板しており、起用できない可能性が高い

正規化段階:

  • opp_sp_quality(TB 打者側から見た COL の先発投手):Marquez は平均以下 -> 打者側にとって対戦しやすい投手です。スコア = 30(50 = リーグ平均の先発投手。数値が低いほど打者にとって対戦しやすいです)。
  • park_hitter_factor:Coors の wOBAcon 1.18 -> 1.00 = 50 となるよう正規化します。スコア = 74(非常に打者有利)。
  • park_pitcher_factor:上記の逆数です。スコア = 26(投手にとって非常に不利)。
  • weather_risk:降水確率 0% + 穏やかな気温 + 有利な風向き -> 8(試合への影響リスクは非常に低い)。
  • bullpen_state(ホームチームの COL):抑え投手は休養十分で、セットアップ陣も健康です -> 65。(TB の場合:抑え投手は疲弊しています -> 35。)

プラトーンの説明(専門用語を使わず、平易な英語で): 「Caminero は右打ちで、右投手と対戦します。左右の相性は中立で、プラトーンの優位性はありません。ただし、Caminero の右投手に対するハードヒット率はシーズン平均を上回っており、Coors Field は野球界で最も打者有利な球場なので、総合的に見ると非常に有利な対戦です。」

下流での組み合わせ:mlb-player-analyzer がこれらのシグナルを読み取り、今日の Caminero の matchup_score = 40% opp_sp + 25% park_hitter + 25% platoon + 10% weather -> 約72 を算出します。これが daily_quality に渡され -> START となります。

ワークフロー

このチェックリストをコピーして、進捗を記録してください。

MLB Matchup Analysis Progress:
- [ ] Step 1: Collect game identifiers (home, away, date, first pitch time)
- [ ] Step 2: Identify both probable starting pitchers + handedness
- [ ] Step 3: Pull park factors (home park)
- [ ] Step 4: Pull weather forecast for first-pitch window
- [ ] Step 5: Assess bullpen state for both teams
- [ ] Step 6: Normalize each signal to 0-100 (50 = neutral)
- [ ] Step 7: Write platoon narrative (plain English)
- [ ] Step 8: Emit signal file and validate

ステップ 1:試合の識別情報を収集する

  • ホームチーム、アウェイチーム、現地での試合日、開始時刻、球場
  • 試合がすでに延期または日程変更されていないことを確認する

ステップ 2:先発予定投手を特定する

MLB.com の先発予定投手情報(https://www.mlb.com/probable-pitchers)を参照してください。検索手順と代替手段については、[resources/methodology.md](resources/methodology.md#probable-pitcher-research)を参照してください。

  • ホームの先発投手:名前、利き腕(L/R)、シーズン ERA、K%、xFIP
  • アウェイの先発投手:同じ項目
  • 起用の確度:先発が確定しているか、予想にすぎないか

ステップ 3:球場係数を取得する

FanGraphs の 2026 年球場係数(guts.aspx?type=pf)を使用してください。正規化の計算式(生の係数から 0~100 スケールへの変換)については、resources/methodology.mdを参照してください。

  • 総合球場係数(打者の視点)
  • 総合球場係数(投手の視点)
  • 該当する場合は利き腕別の係数(L/R)

ステップ 4:天気予報を取得する

RotoWire の天気予報(rotowire.com/baseball/weather-forecast.php)を使用してください。リスクの計算式については、resources/methodology.mdを参照してください。

  • 試合開始時間帯の降水確率
  • 気温+風向+風速
  • ドーム球場または開閉式屋根の球場か(該当する場合は天気の影響を無視)
  • 試合の重要度の乗数(順位争いにとって重要な試合ほど、延期や日程変更の調整が難しくなります)

ステップ 5:ブルペンの状態を評価する

RotoBaller のクローザー深度表と直近 7 日間の登板状況レポートを使用してください。resources/methodology.mdを参照してください。

  • クローザーの起用可能性(直近 3 日間の登板数、投球数)
  • 勝負どころで起用するセットアッパーが起用可能か
  • 直近 72 時間の IL 登録または降格

ステップ 6:シグナルを正規化する

すべてのシグナルを、50 = リーグ平均/中立となる 0~100 スケールに変換してください。各シグナルの計算式については、resources/methodology.mdを参照してください。

  • opp_sp_quality を各チームの視点から算出する
  • park_hitter_factor を中立的な球場 = 50 として設定する
  • park_pitcher_factor = 100 - park_hitter_factor(おおよその逆数)
  • weather_risk = 降水確率(%)×重要度の乗数。上限は 100
  • bullpen_state を各チーム(ホーム+アウェイ)について算出する

ステップ 7:プラトーンに関する説明を書く

yahoo-mlb/CLAUDE.md のルール 5 に従い、専門用語は使わないか、使う場合はその場で説明してください。注目する主要打者ごとに、打者の利き腕と先発投手の利き腕を示し、プラトーン上の優位性があるかどうかを平易な言葉で説明してください。resources/template.mdを参照してください。

ステップ 8:出力して検証する

resources/template.mdを使用して、signals/YYYY-MM-DD-matchup.md に書き込んでください。検証のために mlb-signal-emitter を呼び出してください。resources/evaluators/rubric_mlb_matchup_analyzer.jsonに照らして検証してください。最低基準:平均スコア 3.5 以上。

シグナルの出力

シグナル範囲意味
opp_sp_quality0-100相手先発投手の実力と当日の対戦状況。50 = リーグ平均の先発投手。数値が高いほど、対戦する打者にとって厳しい相手です。
park_hitter_factor0-10050 = 中立。>50 = 打者有利(Coors、Cincinnati)。<50 = 投手有利(Oracle、T-Mobile)。
park_pitcher_factor0-10050 = 中立。>50 = 投手有利。通常は ~= 100 - park_hitter_factor ですが、球場固有の要素(ファウルゾーンなど)を考慮して小幅に補正します。
weather_risk0-1000 = ドームまたは理想的な天候。100 = 試合延期と試合中断のリスクが高い状態。
bullpen_state0-100チームごと。50 = 通常の状態。>50 = ブルペンに余力があり、休養も十分。<50 = 疲労または消耗、もしくは IL 登録による戦力不足。

さらに、両チームの打線についてプラトーンの影響を説明する文章を加えます。

ガードレール

  1. 50は常に中立です。 すべてのシグナルは、50 = リーグ平均となるように基準化します。数式によって得られた分布の中央値が50にならない場合は、誤りです。基準を調整し直してください。

  2. すべてのURLを引用してください。 各シグナル値は、source_urls: に記載した特定のソースURLからたどれるようにしてください。ウェブ検索で事実を検証できない場合は、confidence を0.3以下に下げ、レッドチームでその旨を明記してください。

  3. 球場係数は状況によって異なります。 打者の左右による傾向が重要です。Yankee Stadiumは左打者に有利で、FenwayのGreen Monsterは引っ張る右打者に有利です。重要な打者に極端な左右別の傾向がある場合は、総合球場係数ではなく、左右別の球場係数を使用してください。

  4. 天候 = 降雨確率 × 重要度係数です。 9月のペナントレースでは、4月よりも降雨確率30%の影響が大きくなります。重要度係数については、methodologyを参照してください。

  5. ブルペンの状態は試合ごとではなく、チームごとです。 bullpen_state_home と bullpen_state_away の2つの値を出力してください。後続の利用者は必要な方を選びます(例:ストリーミング戦略エージェントは、終盤のリードにおける相手チームのブルペンを重視します)。

  6. プラトーンの説明では専門用語を使わないでください。 「右投手に対してプラスのスプリット」とは書かず、「左投手より右投手を相手にしたときの方がよく打つ」と書いてください。各統計用語は、初めて使うときに説明してください。

  7. ドームの場合、天候は考慮しません。 本拠地球場がドーム型の場合(または屋根が閉じていることが確認できた場合)、予報にかかわらず weather_risk = 0 とし、シグナル本文に屋根の状態を記載してください。

  8. 両先発投手について、双方の視点を記載してください。 シグナルファイルでは、双方の視点から opp_sp_quality を報告してください。本拠地チームの打者はビジターチームの先発投手と、ビジターチームの打者は本拠地チームの先発投手と対戦します。どちらか一方だけを選ばないでください。

クイックリファレンス

主な数式:

park_hitter_factor = 50 + (raw_wOBAcon_factor - 1.00) * 200
  (clamped to [0, 100]; neutral park wOBAcon ~ 1.00 -> 50)

park_pitcher_factor = 100 - park_hitter_factor (first-order approximation)

opp_sp_quality = 50 + (lg_avg_xFIP - SP_xFIP) * 15
  (better SP = higher score = tougher on opposing hitters)

weather_risk = min(100, rain_prob_pct * importance_multiplier)
  importance_multiplier: 1.0 (early season) .. 1.5 (playoff push) .. 2.0 (postseason)

bullpen_state = 50
  - 15 if closer unavailable
  - 10 per high-leverage arm unavailable
  + 5 if closer had 2+ days rest and full bullpen rested
  (clamped [0, 100])

主な情報源(全リストは context/frameworks/data-sources.md を参照してください):

必要な入力:本拠地チーム、ビジターチーム、日付(YYYY-MM-DD)、試合開始時刻(任意)。

生成される出力:signals/YYYY-MM-DD-matchup.md に、フロントマター、対戦概要表、左右別の傾向に関する説明、ソースURLを含むシグナルファイルを1つ生成します。

主なリソース:

コメント