mlb-player-analyzer について
MLBの打者と投手を評価するスキルです。成績、対戦状況、役割のシグナルを出典付きデータと当日の情報からまとめ、信頼度を付けたファイルでラインアップやストリーミングの判断を支援します。
主な機能
- 01選手データと試合状況の収集
- 02打者の調子・対戦・出場機会の評価
- 03投手のストリーミング適性とリスクの評価
- 04回帰シグナルと役割確度の追跡
- 05出典付きシグナルファイルの生成
活用シーン
- 01日々のラインアップに入れる打者の選定
- 02先発投手のストリーミング適性の評価
- 03リリーフ投手のセーブ役確度の判断
- 04買い・売り候補シグナルの把握
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill mlb-player-analyzerインストール後、Claude Code で/mlb-player-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/methodology.mdtemplate.mdresources/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_score | 66 | 直近のxwOBAはシーズン基準値を15%上回る |
| matchup_score | 58 | 球場はまずまず、先発投手は中立、風によるわずかな追い風あり |
| opportunity_score | 78 | 3番打者、予想打席数は約4.6 |
| daily_quality | 66 | START級(>=60) |
| regression_index | +15 | 不運が続いており、買い時 |
| obp_contribution | 62 | 予測OBP .355 x 4.6打席 |
| sb_opportunity | 35 | Belloの走者けん制は平均的、BOS捕手の盗塁阻止率は28%、Camineroのスプリント速度は26.5 ft/s |
| role_certainty | 100 | 確定ラインナップが公開済み |
ラインナップ最適化ツールへの推奨: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 をどれだけ使うか判断します。
ガードレール
-
すべての事実に出典を付けてください。 数値入力(xwOBA、予測打席数、球場係数、盗塁阻止率)はすべて、
source_urls:に記載された URL からたどれる必要があります。出典のない主張は、評価基準の「出典の引用」を満たしません。 -
このリーグではAVGよりOBPが重要です。 打撃カテゴリはR/HR/RBI/SB/OBP(AVGではありません)です。
obp_contributionの計算時と、form_scoreでどの率指標を重み付けするか選ぶ際は、OBPまたはwOBA(四球を含む)を使い、AVGだけを使わないでください。四球率は注記ではなく、特徴量です。 -
このリーグではWよりQSが重要です。
qs_probabilityでは、勝利の確率ではなく、6回以上を投げて自責点が3以下になる確率を計算してください。ブルペンゲームの先発投手とオープナーは、定義上QSポイントが0点なので対象外にしてください。 -
ATCの予測を使い、Steamerだけに頼らないでください。 FanGraphs ATCはコンセンサス・アンサンブルであり、単一のソースとして最も高い精度を誇ります。SteamerとZiPSは照合に参照してもかまいませんが、注記なしにATCの代わりとして使わないでください。
-
検索に失敗しても適切に対応してください。 ソースにアクセスできない場合は数値を捏造しないでください。その要素の
confidenceを0.3に設定し、レッドチームのnoteフィールドに不足情報を記録してください。レッドチームの確認では、confidenceが0.4未満の場合にエスカレーションされます。 -
マッチアップアナライザーのシグナルを再計算しないでください。 今日の試合について
signals/YYYY-MM-DD-matchup.mdが存在する場合は、opp_sp_quality、park_hitter_factor、park_pitcher_factor、weather_risk、bullpen_stateをそのまま使用してください。再計算は実行時間を無駄にし、エージェント間の不整合につながるおそれがあります。 -
すべてのシグナルにタイムスタンプを付けてください。
computed_at: YYYY-MM-DDTHH:MMZ。朝のブリーフィングの呼び出しは最新の情報です。午後の再確認(ラインアップ発表後)は、より高いrole_certaintyを持つシグナルとして朝のシグナルを上書きします。 -
すべての数値が範囲内にあるか確認してください。 0~100のシグナルは100を超えたり、0未満になったりしてはいけません。+/-100のシグナル(regression_index)は範囲内にクランプしてください。
mlb-signal-emitterのバリデーターは範囲外の値を拒否します。呼び出す前に確認してください。 -
本文は平易な英語にしてください。 フロントマターは機械向けです。本文は専門用語を避けるか、エンドユーザー向けに用語の意味を添えてください。「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(野手) | >= 60 | 45-59 | < 45 |
| streamability_score(先発投手) | >= 70 | 55-69 | < 55 |
| save_role_certainty(救援投手) | >= 70 | 40-69 | < 40 |
| regression_index | >= +25(買い) | -24..+24 | <= -25(売り) |
情報源の優先順位(必ずこの順番で試してください):
| 必要な情報 | 優先情報源 | 代替情報源 |
|---|---|---|
| 予測値 | FanGraphs ATC | Steamer、ZiPS、FantasyPros |
| Statcast / xwOBA / xERA | Baseball Savant | --(代替なし) |
| ラインナップ / 先発予定投手 | MLB.com | RotoWire、FanGraphs Roster Resource |
| 球場ファクター | FanGraphs park factors | Baseball-Reference park factors |
| 天気 | RotoWire weather forecast | Google weather + MLB.com game page |
| クローザーの序列 | RotoBaller closer charts | Pitcher List、Closer Monkey |
| 週2回先発 | FantasyPros two-start planner | FanGraphs probables grid |
主要なリソース:
- resources/template.md:YAML フロントマター、野手と投手のシグナル表、平易な英語の本文、作成例を含むシグナルファイルのテンプレート
- resources/methodology.md:情報源の URL 一覧、シグナルごとの正規化式、複合値の算出方法、回帰の計算方法、信頼度の割り当てルール
- resources/evaluators/rubric_mlb_player_analyzer.json:9 項目の評価基準
必要な入力:
- 選手名(正確な名前。曖昧な場合はチーム略称も指定します。例:「Will Smith (LAD)」)
- 選手の MLB チーム(3 文字の略称)
- 今日の対戦相手の先発投手(不明な場合、スキルが MLB.com の先発予定をウェブ検索します)
- 今日の球場 / 天気(利用可能な場合は matchup-analyzer のシグナルファイルから取得)
生成される出力:
signals/YYYY-MM-DD-player-<lastname>-<firstinitial>.md(分析した選手ごとに1日1ファイル)- signal-framework.md に従い、野手または投手のすべてのシグナルを記入
- 本文にはエンドユーザー向けの平易な説明を含む