mlb-regression-flagger について
mlb-regression-flaggerは、MLB選手の成績回帰シグナルを評価するファンタジーベースボール向けスキルです。期待値と実績、補助指標、サンプル数の条件を使い、根拠URL付きのシグナルと平易な解説を作成します。
主な機能
- 01期待値と実績の指標を比較
- 02回帰指数を計算して上限・下限を適用
- 03BABIPとHR/FBによる照合
- 04サンプル数や矛盾するシグナルに応じて確信度を調整
- 05シグナルファイルと平易な解説を作成
活用シーン
- 01不調からの回復が見込まれる選手の抽出
- 02基礎指標以上の結果を出す売却候補の特定
- 03指定選手の買い・売りシグナルの評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill mlb-regression-flaggerインストール後、Claude Code で/mlb-regression-flaggerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/methodology.mdtemplate.mdresources/evaluators/rubric_mlb_regression_flagger.json詳細
MLB 回帰フラガー
目次
例
シナリオ:ユーザーが「Junior Caminero は買い時の選手ですか。それとも、根拠のない情報に踊らされているだけですか?」と尋ねます。
Baseball Savant と FanGraphs から収集した生データ(URLを引用):
- Caminero の2026年 wOBA:.310(実際の結果)
- Caminero の2026年 xwOBA:.380(打球速度+打ち出し角度に基づく予測値)
- BABIP:.255(リーグ平均の.300を大きく下回る)
- バレル率:14.2%(エリート水準、90パーセンタイル)
- ハードヒット率:52%(エリート水準)
回帰指数の計算:
regression_index = (xwOBA - wOBA) x 500
= (.380 - .310) x 500
= +35
二次チェック — BABIP:打者に限ってさらに基準を厳しくする場合、.255は外れ値の下限である.240を下回ってはいませんが、.255という数値とエリート級のコンタクトの質を合わせて考えると、運に恵まれていないことが確認できます。「.300まで回復する」選手ではありませんが、打球の傾向を考えれば、.255のままでいる可能性は低いでしょう。
結論:regression_index = +35 → 買い。Caminero は運に恵まれていませんが、根底にあるコンタクトの質はエリート級です。今後30日間で、表面的な成績が実力に追いつくと予想されます。
ユーザー向けの説明(CLAUDE.md のルール #5 に従った、初心者向けの文章):
「Junior Caminero の表面的な数字は平凡に見えます(wOBA .310 — これは打撃全般を示す指標です)。しかし、実際のコンタクトの質(どれだけ強く、どの角度でボールを打っているか)から判断すると、.380を記録すべきです。この差はリーグでも最大級です。獲得可能なら追加するか、成績が実力に追いつく前にトレードで獲得しましょう。」
シグナルファイルの出力(signal-framework.md に従う):
---
type: regression
date: 2026-04-17
emitted_by: mlb-regression-flagger
player: Junior Caminero
regression_index: +35
direction: BUY
confidence: 0.78
source_urls:
- https://baseballsavant.mlb.com/savant-player/junior-caminero-...
- https://www.fangraphs.com/players/junior-caminero/...
---
ワークフロー
このチェックリストをコピーして、進捗を記録してください。
Regression Flagger Progress:
- [ ] Step 1: Define the candidate list (who to check)
- [ ] Step 2: Web-search Savant for expected stats (xwOBA, xERA, xBA)
- [ ] Step 3: Web-search FanGraphs for surface stats (wOBA, ERA, BABIP, HR/FB)
- [ ] Step 4: Compute regression_index per player
- [ ] Step 5: Apply secondary flags (BABIP, HR/FB)
- [ ] Step 6: Emit signal file + user-facing translation
ステップ 1:候補者リストを定義する
誰をチェックしますか?候補者の選定方法は 3 つあります。
- ユーザーの現在のロスター(SELL 候補 — 成績が実力を上回っている選手)
- フリーエージェント+ウェイバーワイヤー(BUY 候補 — 成績が振るわない一方、基礎指標が非常に優れている選手)
- 指定された選手(例:トレード候補)
ステップ 2:Web 検索で Baseball Savant の期待値指標を調べる
正確な検索クエリと URL の形式については、resources/methodology.md を参照してください。
- 打者:
xwOBA、xBA、xSLG、バレル率、ハードヒット率 - 投手:
xERA、被期待打率、空振り率、チェイス率 - 各 URL をシグナルファイルの
source_urlsに記録する
ステップ 3:Web 検索で FanGraphs の表面指標を調べる
検索クエリの形式については、resources/methodology.md を参照してください。
- 打者:
wOBA、BABIP、打率、出塁率、長打率 - 投手:
ERA、FIP、xFIP、被本塁打率、残塁率 - 各 URL を記録する
ステップ 4:regression_index を計算する
計算式については、resources/methodology.md を参照してください。
- 打者:
regression_index = (xwOBA - wOBA) x 500。範囲は ±100 に制限する - 投手:
regression_index = (FIP - ERA) x 50。範囲は ±100 に制限する- 注:投手の場合、FIP が ERA より大きい(よりプラス)と、投手は幸運だったことを意味します(ファンタジーではマイナスのシグナル)。FIP が ERA より小さいと、投手は不運だったことを意味します(プラスのシグナル)。符号の規則については methodology を参照してください。
- 算出結果を resources/template.md に記入する
ステップ 5:二次フラグを適用する
- 打者の BABIP を確認する:.370 を超える場合(持続不可能なほど幸運)、または .240 を下回る場合(持続不可能なほど不運)にフラグを付ける
- 投手の HR/FB を確認する:17% を超える場合(不運。通常は約 12% に戻る)、または 8% を下回る場合(幸運)にフラグを付ける
- 注:二次フラグは、主要な
regression_indexを補強したり、相反したりします。指標が一致する場合は確信度が上がります。一致しない場合は確信度が下がり、実行可能な BUY/SELL ではなく「watchlist」バケットに選手を分類します。
ステップ 6:シグナルファイルとユーザー向けの説明を出力する
- signal-framework.md に従って、フロントマターを含む
signals/YYYY-MM-DD-regression.mdを作成する - すべての指標をユーザー向けに平易な言葉で説明する(CLAUDE.md のルール #5 に従う)
- 推奨事項の最後には必ず行動を示す動詞を付ける:
BUY/SELL/HOLD/ADD/DROP(CLAUDE.md のルール #6 に従う) - resources/evaluators/rubric_mlb_regression_flagger.json に照らして検証する。目標平均スコアは 3.5 以上です。
よくあるパターン
パターン 1:優れたコンタクト能力を持つ不運な打者(典型的な BUY)
- シグナル:xwOBA - wOBA ≥ +.050、Barrel % ≥ 90 パーセンタイル、BABIP ≤ .260
- 典型的なプロフィール:優れた打球速度を持つ若手打者だが、ライナーが野手の正面を突いている
- アクション:積極的に BUY。市場が気づく前にトレードを申し込みましょう。ウェーバーに出ている場合は、FAAB で入札しましょう。
- 例:Junior Caminero — xwOBA .380 対 wOBA .310、BABIP .255 →
+35、BUY。
パターン 2:幸運なベテラン選手(典型的な SELL)
- シグナル:wOBA - xwOBA ≥ +.050、Barrel % が中央値未満、BABIP ≥ .360
- 典型的なプロフィール:キャリア平均程度の打者だが、弱いコンタクトで好調な時期を過ごしている
- アクション:高値で SELL。実力のある BUY-LOW 候補とのトレードを試みましょう。
- 例(仮定):BABIP .360、xwOBA .295 対 wOBA .340 で打率 .310 のユーティリティ IF →
-22、SELL。
パターン 3:幸運な投手の先発投手(SELL)
- シグナル:ERA が FIP より大幅に低い(例:ERA 2.50、FIP 4.20)、HR/FB < 8%、残塁率(LOB%)> 80%
- 典型的なプロフィール:フライボールがスタンドに届かず、前の投手から引き継いだ走者も得点していない先発投手
- アクション:ERA の見栄えがよいうちに SELL。
- Regression_index の例:
(FIP - ERA) x 50 = (4.20 - 2.50) x 50 = +85。ただし投手の場合、FIP と ERA の差が大きいほど幸運だったことを意味するため、符号を反転させて-85、SELL となります。符号の規約については、方法論を参照してください。
パターン 4:不運な投手の先発投手(BUY)
- シグナル:ERA が FIP を大きく上回る(例:ERA 5.10、FIP 3.40)、HR/FB > 17%、LOB% < 68%
- 典型的なプロフィール:優れた球威を持つが、投球の組み立てや BABIP の運に恵まれていない
- アクション:ERA が適正化する前に BUY。
パターン 5:シグナルが相反する(WATCHLIST、アクションの対象外)
- シグナル:xwOBA-wOBA の差は大きいが Barrel % は中央値未満、または BABIP が極端だがコンタクトの質がその数値を裏付けている
- アクション:BUY/SELL を自動でフラグ付けしないでください。信頼度を下げた(< 0.5)
regression_indexを出力し、もう 1 週間ウォッチリストに載せましょう。
ガードレール
-
サンプルサイズの最低基準:打者の打席数が80未満、または投手の投球回が30未満の場合、
regression_indexを出力しないでください。Statcastの期待成績は、この基準を下回るとノイズが大きくなります。基準を下回る場合は、confidence: 0.3を出力し、too-earlyとラベル付けしてください。 -
投手の符号規則:(FIP - ERA) x 50で生の数値が得られます。正の生の数値はERA < FIPを意味します。つまり投手は運に恵まれているため、負の
regression_index(SELLシグナル)になるよう符号を反転させます。負の生の数値はERA > FIPを意味します。つまり運に恵まれていないため、符号を反転させて正の値(BUY)にします。必ず符号を反転させてください。計算例は方法論を参照してください。打者には生の符号をそのまま使用します。 -
±100に制限:極端なxwOBAの差(>.200)は、ほぼ常にサンプルサイズが小さいことによるアーティファクトです。必ず上限・下限を適用してください。
regression_indexに+140を報告しないでください。 -
球場と左右の相性の調整:SavantのxwOBAは球場の影響を受けませんが、左右の相性による分割成績は調整されません。左打者が左打者に不利な球場(例:Oracle)でプレーし、今後の先発投手に左投手が多い場合、回帰は指数が示すよりも遅くなる可能性があります。注意点として記載してください。再計算はしないでください。
-
BABIPは副次的な指標であり、主指標ではありません:基礎的なコンタクトの質が非常に高い場合、高いBABIPだけではSELLシグナルになりません。極端に高い打球速度(例:Judge、Ohtani)の打者は、シーズンを通じて.340を超えるBABIPを維持します。フラグを立てる前に、必ずBABIPをHard-Hit %と照合してください。
-
投手のHR/FBの補正:リーグ平均のHR/FBは約12%です。投手はリーグ平均ではなく、キャリアHR/FBに近づくように回帰します。フライボール投手の「標準的な」HR/FBは14%、ゴロ投手は9%です。入手可能な場合はキャリア平均または3年平均を使用し、過去のデータがない場合に限り12%を使用してください。
-
すべての事実をウェブ検索する(CLAUDE.mdに従う):計算式に使うすべての数値は、
source_urls:にURLを記録したうえで、ライブウェブ検索から取得してください。記憶や学習データから補完してはいけません。検索に失敗した場合は、confidence: 0.3に下げ、レッドチーム確認でその旨を記録してください。 -
初心者向けに説明する:ユーザーには野球の知識がまったくありません。「xwOBA」「FIP」「BABIP」を使うユーザー向けの文では、初出時にそれぞれの意味を文中で説明してください。CLAUDE.mdのルール#5と上記の例を参照してください。
クイックリファレンス
基本の計算式:
HITTER: regression_index = clamp((xwOBA - wOBA) x 500, -100, +100)
positive = UNLUCKY (BUY); negative = LUCKY (SELL)
PITCHER: raw = (FIP - ERA) x 50
regression_index = clamp(-raw, -100, +100)
positive = UNLUCKY (BUY); negative = LUCKY (SELL)
SECONDARY (hitter): BABIP > .370 → lucky flag; BABIP < .240 → unlucky flag
SECONDARY (pitcher): HR/FB < 8% → lucky flag; HR/FB > 17% → unlucky flag
アクションのしきい値:
regression_index | 傾向 | ファンタジーでのアクション |
|---|---|---|
| ≥ +30 | 非常に運に恵まれていない | 積極的にBUY / ADD / 高額のFAAB入札 |
| +15 to +29 | やや運に恵まれていない | 安く入手できる場合はBUY |
| -14 to +14 | ノイズ | HOLD / アクションなし |
| -29 to -15 | やや運に恵まれている | 相場価格のオファーがあればSELL |
| ≤ -30 | 非常に運に恵まれている | 積極的にSELL / DROP / オファーを断る |
データソースの対応表(data-sources.mdに従う):
| 指標 | 主な情報源 | URLパターン |
|---|---|---|
| xwOBA、xBA、xSLG、Barrel %、Hard-Hit % | Baseball Savant | https://baseballsavant.mlb.com/savant-player/{slug}-{id} |
| wOBA、BABIP(打者) | FanGraphs | https://www.fangraphs.com/players/{slug}/{id} |
| ERA、FIP、xFIP、HR/FB、LOB% | FanGraphs | 同上 |
| xERA | Baseball Savant | 同上 |
主なリソース:
- resources/template.md:フラグ対象選手の表、選手ごとのワークシート、シグナルファイルのテンプレート
- resources/methodology.md:符号規則を含む計算式、ウェブ検索クエリのパターン、計算例、BABIPとHR/FBの補正
- resources/evaluators/rubric_mlb_regression_flagger.json:8項目の評価基準
必要な入力:
- 選手名(複数可)、または「ロースターをスキャン」/「ウェイバーをスキャン」
- リーグの状況:残り週数、カテゴリー別のニーズ(
context/league-config.mdおよびmlb-category-state-analyzerのシグナルから取得)
生成される出力:
- 選手ごとの
regression_index(-100から+100) - 傾向タグ:
BUY/SELL/HOLD/WATCHLIST - 副次的なフラグの注記(BABIP、HR/FB)
signals/YYYY-MM-DD-regression.mdのシグナルファイル- 専門用語の意味を文中で説明し、アクションを表す動詞を含むユーザー向けの要約