mlb-faab-sizer について
mlb-faab-sizerは、MLBファンタジーベースボールのFAAB入札額を算定するスキルです。選手価値、編成との適合度、役割の確実性、シーズン時期を考慮し、入札調整を兄弟スキルに委任して野球向けの制約を適用します。
主な機能
- 01野球要因を加味した基礎価値の算出
- 02共通価値と個別価値の分類
- 03オークション評価と入札調整の委任
- 04対戦相手情報に基づく入札者数の推定
- 05予算と役割に関する制約の適用
- 06推奨入札額と根拠の出力
活用シーン
- 01昇格した有望株への入札額の算定
- 02クローザー交代後の入札評価
- 03編成上のニーズに応じた選手評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill mlb-faab-sizerインストール後、Claude Code で/mlb-faab-sizerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/methodology.mdtemplate.mdresources/evaluators/rubric_mlb_faab_sizer.json詳細
MLB FAAB サイザー
目次
委任チェーン
このスキルは野球に特化したオーケストレーターです。入札の計算をインラインで行うことはありません。ドメインに依存しない2つの兄弟スキルを組み合わせます。
| ステップ | 担当 | 役割 |
|---|---|---|
| 1 | このスキル | Yahoo補正後の予測値、ポジション適性、役割の確実性、緊急度、シーズンの進行度(リーグのインフレ調整込み)からbase_valueを算出します |
| 2 | このスキル | 対象をcommon_value/private_value/mixedに分類します |
| 3 | auction-winners-curse-haircut | adjusted_valuation(コモンバリューに対するベイズ的な減額)を返します |
| 4 | このスキル | 対戦相手のプロフィールからNを推定します |
| 5 | auction-first-price-shading | shaded_bid((N-1)/N + 分布 + リスク調整)を返します |
| 6 | このスキル | 野球固有のガードレールを適用します(4月は40%、投機は20%、最低額は$1、役割確実性の下限) |
| 7 | このスキル | 両方の委任先を明記した根拠とともに、faab_rec_bidとfaab_max_bidを出力します |
不変条件:このスキルが(N-1)/Nやコモンバリューの減額を直接計算することはありません。これらの基本処理を変更する場合は、兄弟スキルを変更します。
例
シナリオ:佐々木朗希が昇格し、ドジャースのローテーション入りが有力です。残りFAABは$100、第4週です。
- base_value(このスキル):
28 x 0.70 x 0.65 x 1.2 x 0.7 = $10.70 - 分類:
common_value(注目の有望株)。 (raw=10.70, type=common_value, N=6, dispersion=60)を指定してauction-winners-curse-haircutを呼び出し、adjusted_valuation = $7.39、減額率31%を得ます。- Nの推定:6人の対戦相手に先発投手の補強ニーズと予算があります。
(true_value=7.39, N=6, dist=log-normal, risk=0.2, budget=100)を指定してauction-first-price-shadingを呼び出し、shaded_bid = $7、値下げ率0.90を得ます。- 野球固有のガードレール:すべて問題ありません。
- 出力:
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%に達することがあります。
ガードレール
- 4月の上限40%:第1〜13週は、
faab_max_bidを残りのFAABの40%以下にします。april_40pct_cap_triggeredを記録します。 - 投機の上限20%:
situation=speculationまたはrole_certainty<30の場合、上限を20%にします。speculation_20pct_cap_triggeredを記録します。 - 最低入札額1ドル:
shaded_bidが四捨五入で0ドルになり、positional_need_fit >= 30の場合は、1ドルを入札します(ローリングリストのタイブレーク)。それ以外の場合は0ドルを入札し、zero_bid_preservationを記録します。 - ロール確実性の下限:
role_certainty < 20の場合、faab_rec_bid = $0にします。role_certainty_floorを記録します。 - 回帰による上書き:
regression_index < -30の場合、faab_rec_bidを30%減額します。regression_luck_discountを記録します。 - バリアント間の乖離:推奨側と批評側の差が30%を超える場合は、批評側を採用します。
variant_divergence_appliedを記録します。 - 予算下限(7月以降):第14週以降で残額が5ドル未満の場合、
budget_floor_near_zeroを記録します。 - 判断を記録する: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項目の評価基準。