mcpField
M
mlb-faab-sizer

mlb-faab-sizer

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

mlb-faab-sizer について

mlb-faab-sizerは、MLBファンタジーベースボールのFAAB入札額を算定するスキルです。選手価値、編成との適合度、役割の確実性、シーズン時期を考慮し、入札調整を兄弟スキルに委任して野球向けの制約を適用します。

主な機能

  1. 01野球要因を加味した基礎価値の算出
  2. 02共通価値と個別価値の分類
  3. 03オークション評価と入札調整の委任
  4. 04対戦相手情報に基づく入札者数の推定
  5. 05予算と役割に関する制約の適用
  6. 06推奨入札額と根拠の出力

活用シーン

  1. 01昇格した有望株への入札額の算定
  2. 02クローザー交代後の入札評価
  3. 03編成上のニーズに応じた選手評価

インストール

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

$npx skills add https://github.com/lyndonkl/claude --skill mlb-faab-sizer

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

同梱ファイル

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

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

詳細

MLB FAAB サイザー

目次

委任チェーン

このスキルは野球に特化したオーケストレーターです。入札の計算をインラインで行うことはありません。ドメインに依存しない2つの兄弟スキルを組み合わせます。

ステップ担当役割
1このスキルYahoo補正後の予測値、ポジション適性、役割の確実性、緊急度、シーズンの進行度(リーグのインフレ調整込み)からbase_valueを算出します
2このスキル対象をcommon_value/private_value/mixedに分類します
3auction-winners-curse-haircutadjusted_valuation(コモンバリューに対するベイズ的な減額)を返します
4このスキル対戦相手のプロフィールからNを推定します
5auction-first-price-shadingshaded_bid((N-1)/N + 分布 + リスク調整)を返します
6このスキル野球固有のガードレールを適用します(4月は40%、投機は20%、最低額は$1、役割確実性の下限)
7このスキル両方の委任先を明記した根拠とともに、faab_rec_bidとfaab_max_bidを出力します

不変条件:このスキルが(N-1)/Nやコモンバリューの減額を直接計算することはありません。これらの基本処理を変更する場合は、兄弟スキルを変更します。

例

シナリオ:佐々木朗希が昇格し、ドジャースのローテーション入りが有力です。残りFAABは$100、第4週です。

  1. base_value(このスキル):28 x 0.70 x 0.65 x 1.2 x 0.7 = $10.70
  2. 分類:common_value(注目の有望株)。
  3. (raw=10.70, type=common_value, N=6, dispersion=60)を指定してauction-winners-curse-haircutを呼び出し、adjusted_valuation = $7.39、減額率31%を得ます。
  4. Nの推定:6人の対戦相手に先発投手の補強ニーズと予算があります。
  5. (true_value=7.39, N=6, dist=log-normal, risk=0.2, budget=100)を指定してauction-first-price-shadingを呼び出し、shaded_bid = $7、値下げ率0.90を得ます。
  6. 野球固有のガードレール:すべて問題ありません。
  7. 出力:faab_rec_bid=$7、faab_max_bid=round($7.39 x 0.90)=$7。根拠には両方の兄弟スキルを明記します。

詳しい処理の流れは、resources/methodology.mdとresources/template.mdを参照してください。

ワークフロー

FAAB Sizing Progress:
- [ ] Step 1: Collect input signals and budget state
- [ ] Step 2: Compute base_value (baseball layering)
- [ ] Step 3: Classify value_type
- [ ] Step 4: Invoke auction-winners-curse-haircut -> adjusted_valuation
- [ ] Step 5: Estimate N from opponent profiles
- [ ] Step 6: Invoke auction-first-price-shading -> shaded_bid
- [ ] Step 7: Apply baseball guardrails
- [ ] Step 8: Emit signal + rationale with delegation trace

ステップ 1:入力を収集する(不足している場合は呼び出し元に確認します):

  • acquisition_value(ドル、1~100 の尺度)――mlb-player-analyzer から取得
  • positional_need_fit(0~100)――mlb-waiver-analyst から取得
  • role_certainty(0~100)――mlb-player-analyzer から取得
  • 残り FAAB、週番号、状況ラベル

ステップ 2:base_value を計算する(野球固有のレイヤー処理):

base_value = acquisition_value
           x (positional_need_fit / 100)
           x (role_certainty / 100)
           x urgency_multiplier          [0.7 - 1.4]
           x season_pace_multiplier      [0.6 - 1.4 after inflation calib]

緊急度:1.4(クローザーが役割を失う/有望株が昇格);1.2(新たな機会);1.0(安定);0.8(波がある);0.7(憶測)。

ペースの基準値:0.6(4 月の第 1~4 週)、1.0(5~6 月)、1.2(7~8 月)、1.4/0.5(9 月の優勝争い中/敗退確定)。次に、tracker/faab-log.md の league_inflation_ratio を掛けます(methodology.md を参照)。有効な行が最低 5 件必要です。それに満たない場合は較正をスキップし、low_calibration_data を設定します。

ステップ 3:value_type を分類する:

  • common_value:注目の有望株、指名されたクローザー、故障者リストから復帰したスター選手(全チームが同じ情報を持つ)
  • private_value:ハンドカフ、プラトーン適性、特定カテゴリーを捨てる戦略に特化した選手(こちらだけがこのように評価する)
  • mixed:共通/個別の重みを記録する

不確かな場合は common_value を選択します(保守的な判断で、減額が適用されます)。

ステップ 4:auction-winners-curse-haircut を呼び出す――全参加者ではなく、競合入札者の人数を基準にします:

inputs = { raw_valuation: base_value, value_type, n_informed_bidders: n_contesters,
           signal_dispersion: 40 (default) }

n_contesters = この特定の対象に入札すると現実的に見込まれるライバルの人数(ステップ 5 を参照)。ここには入札する可能性のある参加者全員を渡さないでください。 勝者の呪いによる減額(ステップ 4)と初値入札のシェーディング(ステップ 6)は、必ず異なる人数を基準にする必要があります。そうしなければ、「入札者が多い」というシグナルが二重に計上され、競争の激しいクローザーや昇格選手への入札額が、実際の価値の約 58%まで体系的に低くなります(2026-06-02 の監査で、mlb-faab-sizer の二重計上を確認)。n_contesters <= 1 の場合、実質的に競合がないため、減額は 0 に短絡します(private_value として扱います)。adjusted_valuation を使用し、classification_rationale は保持します。分散のデフォルト値:有望株は 60、実績のある選手は 30、それ以外は 40 です。

ステップ 5:相手のプロフィールから 2 種類の入札者数を推定する(意図的に異なる数値であり、対象が本当に激しい競争になる場合にのみ一致します):

  • n_contesters(ステップ 4 の減額に使用)――positional_need > 50、残り FAAB が当初の 20%超、活動度が中程度以上で、かつこの選手を獲得したい具体的な理由があるライバル。入札額が低い市場(落札額の最頻値は 1~2 ドル)では、通常 1~2 人で、クローザー交代が確定した場合は 3~4 人になることもあります。[0, 6] の範囲に制限します。
  • N_field(ステップ 6 のシェーディングに使用)――入札する可能性が現実的にある、より広い範囲の参加者。[1, 8] の範囲に制限します。デフォルト:共通価値のスーパースターは 6、ロールプレイヤーは 3、個別価値は 1~2。

ステップ 6:auction-first-price-shading を呼び出す――参加者全体を基準にします:

inputs = { true_value: adjusted_valuation, n_bidders_estimate: N_field,
           value_distribution: "log-normal" (MLB default),
           risk_aversion: 0.2 (bump to 0.4 for contending September),
           budget_remaining: faab_remaining }

shaded_bid をガードレール適用前の faab_rec_bid に設定します。faab_max_bid = round(adjusted_valuation x 0.90) に設定します。

ステップ 7:野球向けガードレールを適用する(以下を参照)。暗黙のうちに違反してはなりません。

ステップ 8:mlb-signal-emitter で出力する。ユーザー向けの根拠では、目的を含めて両方の関連スキルに必ず言及します。rubric で検証してください。最低 3.5 です。

よくあるパターン

1. シーズン序盤に昇格した、競争が激しい共通価値の選手:N=5-7、ペース 0.6-0.7、減額は約 25~30%、シェーディングは約 0.80-0.85。推奨額は通常 5~12 ドルです。

2. 個別価値のハンドカフ:N=1-2、減額=0(短絡)、シェーディングは 0.0-0.5。推奨額は通常 1~3 ドルです。

3. シーズン中盤のクローザー交代(共通価値):N=5-8、緊急度 1.4、減額は約 25%、シェーディングは約 0.83。推奨額は通常 10~30 ドルです。

4. 9 月に優勝争いをするチームの勝負をかけたターゲット:ペース 1.4、risk_aversion を 0.4 に引き上げ、シェーディングは約 0.88-0.92。残り FAAB の 40~60%に達することがあります。

ガードレール

  1. 4月の上限40%:第1〜13週は、faab_max_bid を残りのFAABの40%以下にします。april_40pct_cap_triggered を記録します。
  2. 投機の上限20%:situation=speculation または role_certainty<30 の場合、上限を20%にします。speculation_20pct_cap_triggered を記録します。
  3. 最低入札額1ドル:shaded_bid が四捨五入で0ドルになり、positional_need_fit >= 30 の場合は、1ドルを入札します(ローリングリストのタイブレーク)。それ以外の場合は0ドルを入札し、zero_bid_preservation を記録します。
  4. ロール確実性の下限:role_certainty < 20 の場合、faab_rec_bid = $0 にします。role_certainty_floor を記録します。
  5. 回帰による上書き:regression_index < -30 の場合、faab_rec_bid を30%減額します。regression_luck_discount を記録します。
  6. バリアント間の乖離:推奨側と批評側の差が30%を超える場合は、批評側を採用します。variant_divergence_applied を記録します。
  7. 予算下限(7月以降):第14週以降で残額が5ドル未満の場合、budget_floor_near_zero を記録します。
  8. 判断を記録する:0ドルの入札も含め、すべての計算を mlb-decision-logger 経由で記録します。

兄弟スキルの上限を重複して適用しないでください:0.9 x true_value の上限は auction-first-price-shading が適用し、35%の減額上限は auction-winners-curse-haircut が適用します。これらを信頼してください。

クイックリファレンス

パイプライン:

base_value = acq_value x (pos_fit/100) x (role_cert/100) x urgency x pace_calibrated

adjusted_valuation = auction-winners-curse-haircut(
    raw_valuation=base_value, value_type, n_informed_bidders=N, signal_dispersion)

shaded_bid = auction-first-price-shading(
    true_value=adjusted_valuation, n_bidders_estimate=N,
    value_distribution="log-normal", risk_aversion=0.2, budget_remaining)

faab_rec_bid = round(shaded_bid)          # then baseball guardrails
faab_max_bid = round(adjusted_valuation x 0.90)

必須入力:acquisition_value、positional_need_fit、role_certainty、残りのFAAB、週、状況ラベル、regression_index(任意)。

出力:faab_rec_bid、faab_max_bid、value_type、N、adjusted_valuation、shaded_bid、乗数、ガードレールフラグ、ユーザー向けの根拠。

兄弟スキル:

  • @skills/auction-first-price-shading/ -- (N-1)/N + 分布 + リスク回避
  • @skills/auction-winners-curse-haircut/ -- ベイズ法による共通価値の減額

主なリソース:

  • resources/template.md:入力ブロック、委譲トレースを含む出力テンプレート、対象ごとの概要、委譲フローの例
  • resources/methodology.md:野球におけるレイヤリング、インフレの調整、価値タイプの分類、野球向けガードレール。オークション計算については兄弟スキルを参照してください。
  • resources/evaluators/rubric_mlb_faab_sizer.json:委譲の完全性を含む8項目の評価基準。

コメント