mcpField
M
mlb-player-analyzer

mlb-player-analyzer

github.com/lyndonklデータ・データベース18744 回インストール9 週間前に更新
リポジトリ

mlb-player-analyzer について

MLBの打者と投手を評価するスキルです。成績、対戦状況、役割のシグナルを出典付きデータと当日の情報からまとめ、信頼度を付けたファイルでラインアップやストリーミングの判断を支援します。

主な機能

  1. 01選手データと試合状況の収集
  2. 02打者の調子・対戦・出場機会の評価
  3. 03投手のストリーミング適性とリスクの評価
  4. 04回帰シグナルと役割確度の追跡
  5. 05出典付きシグナルファイルの生成

活用シーン

  1. 01日々のラインアップに入れる打者の選定
  2. 02先発投手のストリーミング適性の評価
  3. 03リリーフ投手のセーブ役確度の判断
  4. 04買い・売り候補シグナルの把握

インストール

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

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

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

同梱ファイル

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

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

詳細

MLB選手アナライザー

目次

例

シナリオ:Junior Caminero(TBの三塁手)の打者分析。本日の対戦相手はBOS、相手先発投手はBrayan Bello(右投げ)、球場はFenway、風は弱めです。

ウェブ検索から収集した入力データ:

  • 直近15日間のxwOBA:.410、シーズンxwOBAは.355(Baseball Savant)
  • Belloの2026年K/9:8.1、xFIP:4.05、右打者に対するwOBA:.335(FanGraphs)
  • Fenwayのパークファクター:103 R、105 HR(FanGraphsのパークファクター)
  • 右投手に対するCamineroのwOBA:.360(FanGraphsのスプリット)
  • 天候:62F、左翼から中堅方向に風速8mph(RotoWire)
  • 打順:3番打者で確定(MLB.comの先発ラインナップ)
  • シーズン実績wOBAは.340、xwOBAは.370 -> 不運による差は+.030

シグナルの算出:

シグナル値簡易評価
form_score66直近のxwOBAはシーズン基準値を15%上回る
matchup_score58球場はまずまず、先発投手は中立、風によるわずかな追い風あり
opportunity_score783番打者、予想打席数は約4.6
daily_quality66START級(>=60)
regression_index+15不運が続いており、買い時
obp_contribution62予測OBP .355 x 4.6打席
sb_opportunity35Belloの走者けん制は平均的、BOS捕手の盗塁阻止率は28%、Camineroのスプリント速度は26.5 ft/s
role_certainty100確定ラインナップが公開済み

ラインナップ最適化ツールへの推奨:daily_quality = 66 -> START。regression_index = +15から、直近の不調によるノイズを理由にベンチに置く必要はないと考えられます。

投手の反例(先発登板):COL戦に登板するBowden Francis(TOR)。daily_qualityはstreamability_scoreに置き換わります。Coorsは球威にかかわらずstreamability_scoreを大きく下げます。skillはqs_probability ~28、k_ceiling ~40、era_whip_risk ~82を算出し、streamability_scoreは約32になります(70未満のしきい値のため、SIT / DO NOT STREAM)。

ワークフロー

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

MLB Player Analysis Progress:
- [ ] Step 1: Classify player (hitter vs pitcher; SP vs RP)
- [ ] Step 2: Collect season + 15-day performance (Savant, FanGraphs)
- [ ] Step 3: Collect today's context (opp SP/hitters, park, weather, lineup)
- [ ] Step 4: Compute normalized component scores
- [ ] Step 5: Compute composite signals (daily_quality or streamability_score)
- [ ] Step 6: Check regression_index and role_certainty
- [ ] Step 7: Validate against rubric and emit signal file

ステップ 1:選手を分類する

役割を判定します:打者(野手の全ポジション)、SP(先発投手)、RP(リリーフ投手、クローザーまたはセットアッパー)。役割ごとにシグナルのセットが異なります。二刀流選手やオープナー+ロングリリーフなど、選手に複数の適格性がある場合の役割判定ルールについては、resources/methodology.mdを参照してください。

  • 今日の役割を確認します:その選手は今日のラインナップに入っていますか?SP は今日の先発投手予想に掲載されていますか?
  • RP の場合:セーブ機会を担う RP ですか、それとも中継ぎ RP ですか?クローザーの序列を調べる必要があります。

ステップ 2:成績データを収集する

ウェブ検索で一次情報源を確認します。すべての URL をシグナルファイルのsource_urls:リストに記録してください。

  • Baseball Savant の選手ページ:シーズン xwOBA、直近 15 日間の xwOBA、xBA、バレル率、ハードヒット率、スプリント速度(打者);xERA、空振り率、チェイス率、CSW(投手)
  • FanGraphs の選手ページ:ATC 予測(シーズン残りの率指標)、スプリットタブ(対 LHP/対 RHP)
  • 指標の検索に失敗した場合:試行内容を記録し、confidence: 0.3を設定して、レッドチーム欄に不足情報を記載します

正確な URL パターンについては、resources/data-cheatsheetを参照してください。

ステップ 3:今日の状況を収集する

  • 相手先発投手(MLB.com の先発投手予想、またはすでに出力されている場合は matchup-analyzer シグナルから)
  • 球場ファクター(FanGraphs の球場ファクター、または matchup-analyzer のpark_hitter_factor/park_pitcher_factorから)
  • 天候(RotoWire の天気予報、または matchup-analyzer のweather_riskから)
  • 確定した打順(MLB.com の先発ラインナップから。試合開始の約 2~3 時間前に公開されます)
  • 今日の試合について matchup-analyzer のシグナルファイルが存在する場合は、そのシグナルを使用します。再計算しないでください

ステップ 4:正規化した構成スコアを計算する

すべての生の統計値を、シグナルフレームワークに従って 0~100(単極)または +/-100(双極)に変換します。各計算式については、resources/methodology.mdを参照してください。

  • 打者:form_score、matchup_score、opportunity_score(daily_quality の構成要素)
  • 打者:regression_index、obp_contribution、sb_opportunity、role_certainty
  • 投手:qs_probability、k_ceiling、era_whip_risk
  • 投手 RP:save_role_certainty

ステップ 5:複合シグナルを計算する

  • 打者の主要指標:daily_quality = 0.35 * form_score + 0.40 * matchup_score + 0.25 * opportunity_score
  • 投手 SP の主要指標:streamability_score = 0.40 * qs_probability + 0.30 * k_ceiling + 0.30 * (100 - era_whip_risk)
  • 投手 SP の週間指標:two_start_bonus(FantasyPros の 2 試合先発ページをもとにした bool 値)

ステップ 6:回帰と役割を確認する

  • regression_index = clamp((xwOBA - wOBA) * 500, -100, +100)。正の値 = 不運(買い)。負の値 = 幸運(売り/回避)。
  • role_certainty(打者):100 = 今日のラインナップ入りが確定、70 = 球団担当記者による先発予想、40 = プラトーン起用が不確実、0 = ベンチまたは負傷
  • save_role_certainty(RP):100 = RotoBaller でクローザーの地位が確定、50 = 共同起用、20 = 7 回担当

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

  • resources/template.mdのフロントマターと表を記入します
  • resources/evaluators/rubric_mlb_player_analyzer.jsonに照らしてスコアを確認します。平均の目標は 3.5 以上です
  • すべての数値シグナルにconfidenceと、少なくとも 1 つのsource_urlがあることを確認します
  • mlb-signal-emitterを呼び出して検証します。失敗した場合は、tracker/decisions-log.mdに記録します

よくあるパターン

パターン 1:好調が続く打者(好材料で売る)

  • プロフィール:直近 15 日間の wOBA が xwOBA を大きく上回っている(実績が期待値を上回っている)
  • シグナルの特徴:form_score が高い(>=70)、regression_index が負の値(例:-25)
  • 見方:成績は BABIP に助けられており、Statcast の質に裏付けられていません。直近の成績を過大評価しないでください。
  • lineup-optimizer へのアクションフィード:頭の中で daily_quality を約 5 ポイント差し引きます。ユーザーが高値での売却を検討している場合は、waiver-analyst にフラグを立てます。

パターン 2:強い打球を打っている不調の打者(買い時)

  • プロフィール:直近 15 日間の wOBA はシーズン平均を下回っているものの、xwOBA は依然として良好(シーズン xwOBA 以上)
  • シグナルの特徴:form_score が低く、regression_index が正の値(>=+20)、barrel% は依然として良好
  • 見方:不運が続いている期間です。打球の質は維持されています。不調を乗り越えるまで起用しましょう。
  • アクション:算出された daily_quality の重みを維持します。カテゴリー・ストラテジストにポジティブな回帰を知らせます(来週ブレイクする可能性がある選手です)。

パターン 3:不利な球場で週 2 回先発する投手

  • プロフィール:対象週に 2 回先発する SP で、そのうち 1 試合が COL / CIN / BOS で行われる
  • シグナルの特徴:two_start_bonus = true だが、1 試合の era_whip_risk が 70 以上
  • 見方:登板数の多さは K と QS で有利ですが、クアーズでの大炎上により週の ERA / WHIP が壊滅する可能性があります。
  • アクション:2 試合をそれぞれ個別の投手シグナルとして出力し、各試合に独自の streamability_score を設定します。登板数を優先して不利な球場での登板を受け入れるかどうかは、streaming-strategist が判断します。

パターン 4:クローザーが複数いる状況/役割が不確実

  • プロフィール:RP にセーブ機会があるものの、監督が「使い分け」または「対戦相手に応じた起用」と発言している
  • シグナルの特徴:save_role_certainty が 50 以下、k_ceiling はまずまず、era_whip_risk は低い
  • 見方:獲得するメリットは、セーブが実際に記録される場合に限られます。率系指標は優秀ですが、ファンタジーのカテゴリーである SV は不確実です。
  • アクション:シグナル本文で明示的に記載します。Waiver-analyst はこれをもとに FAAB をどれだけ使うか判断します。

ガードレール

  1. すべての事実に出典を付けてください。 数値入力(xwOBA、予測打席数、球場係数、盗塁阻止率)はすべて、source_urls: に記載された URL からたどれる必要があります。出典のない主張は、評価基準の「出典の引用」を満たしません。

  2. このリーグではAVGよりOBPが重要です。 打撃カテゴリはR/HR/RBI/SB/OBP(AVGではありません)です。obp_contribution の計算時と、form_score でどの率指標を重み付けするか選ぶ際は、OBPまたはwOBA(四球を含む)を使い、AVGだけを使わないでください。四球率は注記ではなく、特徴量です。

  3. このリーグではWよりQSが重要です。 qs_probability では、勝利の確率ではなく、6回以上を投げて自責点が3以下になる確率を計算してください。ブルペンゲームの先発投手とオープナーは、定義上QSポイントが0点なので対象外にしてください。

  4. ATCの予測を使い、Steamerだけに頼らないでください。 FanGraphs ATCはコンセンサス・アンサンブルであり、単一のソースとして最も高い精度を誇ります。SteamerとZiPSは照合に参照してもかまいませんが、注記なしにATCの代わりとして使わないでください。

  5. 検索に失敗しても適切に対応してください。 ソースにアクセスできない場合は数値を捏造しないでください。その要素のconfidenceを0.3に設定し、レッドチームのnoteフィールドに不足情報を記録してください。レッドチームの確認では、confidenceが0.4未満の場合にエスカレーションされます。

  6. マッチアップアナライザーのシグナルを再計算しないでください。 今日の試合についてsignals/YYYY-MM-DD-matchup.mdが存在する場合は、opp_sp_quality、park_hitter_factor、park_pitcher_factor、weather_risk、bullpen_stateをそのまま使用してください。再計算は実行時間を無駄にし、エージェント間の不整合につながるおそれがあります。

  7. すべてのシグナルにタイムスタンプを付けてください。 computed_at: YYYY-MM-DDTHH:MMZ。朝のブリーフィングの呼び出しは最新の情報です。午後の再確認(ラインアップ発表後)は、より高いrole_certaintyを持つシグナルとして朝のシグナルを上書きします。

  8. すべての数値が範囲内にあるか確認してください。 0~100のシグナルは100を超えたり、0未満になったりしてはいけません。+/-100のシグナル(regression_index)は範囲内にクランプしてください。mlb-signal-emitterのバリデーターは範囲外の値を拒否します。呼び出す前に確認してください。

  9. 本文は平易な英語にしてください。 フロントマターは機械向けです。本文は専門用語を避けるか、エンドユーザー向けに用語の意味を添えてください。「xwOBA」→「打球がグローブに収まったかどうかにかかわらず、打球の強さと角度に基づいて推定した攻撃力」。

クイックリファレンス

複合式(導出についてはresources/methodology.mdを参照してください):

daily_quality       = 0.35 * form_score + 0.40 * matchup_score + 0.25 * opportunity_score
streamability_score = 0.40 * qs_probability + 0.30 * k_ceiling + 0.30 * (100 - era_whip_risk)
regression_index    = clamp((xwOBA - wOBA) * 500, -100, +100)

アクションのしきい値(lineup-optimizer / streaming-strategist に渡します):

シグナルSTART / STREAM中立SIT / FADE
daily_quality(野手)>= 6045-59< 45
streamability_score(先発投手)>= 7055-69< 55
save_role_certainty(救援投手)>= 7040-69< 40
regression_index>= +25(買い)-24..+24<= -25(売り)

情報源の優先順位(必ずこの順番で試してください):

必要な情報優先情報源代替情報源
予測値FanGraphs ATCSteamer、ZiPS、FantasyPros
Statcast / xwOBA / xERABaseball Savant--(代替なし)
ラインナップ / 先発予定投手MLB.comRotoWire、FanGraphs Roster Resource
球場ファクターFanGraphs park factorsBaseball-Reference park factors
天気RotoWire weather forecastGoogle weather + MLB.com game page
クローザーの序列RotoBaller closer chartsPitcher List、Closer Monkey
週2回先発FantasyPros two-start plannerFanGraphs probables grid

主要なリソース:

必要な入力:

  • 選手名(正確な名前。曖昧な場合はチーム略称も指定します。例:「Will Smith (LAD)」)
  • 選手の MLB チーム(3 文字の略称)
  • 今日の対戦相手の先発投手(不明な場合、スキルが MLB.com の先発予定をウェブ検索します)
  • 今日の球場 / 天気(利用可能な場合は matchup-analyzer のシグナルファイルから取得)

生成される出力:

  • signals/YYYY-MM-DD-player-<lastname>-<firstinitial>.md(分析した選手ごとに1日1ファイル)
  • signal-framework.md に従い、野手または投手のすべてのシグナルを記入
  • 本文にはエンドユーザー向けの平易な説明を含む

コメント