mlb-league-state-reader について
後続の分析エージェント向けに、Yahoo Fantasy MLBのロスター、順位、対戦、FAAB、フリーエージェント情報を取得するスキルです。チーム状態を更新し、出典と信頼度を含むシグナルを出力します。
主な機能
- 01ロスター・順位・進行中の対戦の取得
- 02取引履歴からの残りFAAB算出
- 03フリーエージェント一覧の収集
- 04チーム状態プロフィールの更新
- 05出典と信頼度付きシグナルの出力
活用シーン
- 01日々のラインアップ分析に最新リーグ情報を用意
- 02ウェイバー分析にFAABと選手候補を提供
- 03共通状態を後続エージェントに渡し、再取得を回避
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill mlb-league-state-readerインストール後、Claude Code で/mlb-league-state-readerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/methodology.mdtemplate.mdresources/evaluators/rubric_mlb_league_state_reader.json詳細
MLB リーグ状況リーダー
目次
例
シナリオ:2026-04-17 に実行する朝のブリーフィングです。コーチは lineup-optimizer を起動する前に、最新のロースター、対戦相手、FAAB、順位表を必要としています。
最初に読み込む入力:
yahoo-mlb/context/league-config.md(リーグ ID 23756、チーム 5、12 チーム、5x5 カテゴリー)yahoo-mlb/context/team-profile.md(以前に把握したロースターの概要)
Chrome のナビゲーション手順(認証済み):
https://baseball.fantasysports.yahoo.com/b1/23756/5— 今日の対戦相手を選手ごとに表示するロースターhttps://baseball.fantasysports.yahoo.com/b1/23756?lhst=stand— 順位表とカテゴリー別順位https://baseball.fantasysports.yahoo.com/b1/23756/matchup— 今週の Los Doyers との直接対決https://baseball.fantasysports.yahoo.com/b1/23756/transactions— これまでの FAAB 使用額 → 残額https://baseball.fantasysports.yahoo.com/b1/23756/players?status=A— 上位のフリーエージェント(1 ページ目)
抽出したデータ一式:
| フィールド | 値 |
|---|---|
| 戦績 | 8-6-1 |
| 順位 | 12 チーム中 5 位 |
| FAAB 使用額 | $14 |
| FAAB 残額 | $86 |
| 今週の対戦相手 | Los Doyers |
| 試合中のスコア | 4-3-3(R、HR、K でリード、OBP、ERA、WHIP でビハインド) |
| 取得したロースター | 26 スロット中 26 スロットに選手を登録済み |
| 上位 20 人のフリーエージェント | waiver-analyst 用に取得済み |
書き込んだ出力:
context/team-profile.md— ロースターのスナップショットをその場で更新(スロット、選手、MLB チーム、今日の対戦相手、ステータス)signals/2026-04-17-league-state.md— YAML フロントマター、source_urls、信頼度を含むシグナルファイル
以降のすべてのエージェント(lineup-optimizer、waiver-analyst、category-strategist)は、Yahoo を再スクレイピングする代わりに、このシグナルファイルと team-profile.md を参照します。
ワークフロー
このチェックリストをコピーして、進捗を記録してください。
League State Reader Progress:
- [ ] Step 1: Read context files (league-config.md + team-profile.md)
- [ ] Step 2: Pull Yahoo pages via Claude-in-Chrome (5 URLs)
- [ ] Step 3: Parse roster, standings, matchup, FAAB, free agents
- [ ] Step 4: Update team-profile.md in place
- [ ] Step 5: Emit signal file with frontmatter + source_urls
ステップ 1:コンテキストファイルを読む
Yahoo にアクセスする前に、正式な契約内容と最後に確認された状態を読み込みます。これにより、リーグ ID/URL を確認し、差分比較の基準となる情報を取得できます。
-
yahoo-mlb/context/league-config.mdを読む — リーグ ID 23756、チーム 5、ロースター構成(C/1B/2B/3B/SS/3OF/2UTIL/3SP/2RP/5P/3BN/3IL = 26)、FAAB 予算 $100 を確認する -
yahoo-mlb/context/team-profile.mdを読む — 前回の FAAB 残額と、差分比較用の前回のロースターを記録する -
yahoo-mlb/context/frameworks/signal-framework.mdを読む — シグナルファイルの形式を確認する -
yahoo-mlb/context/frameworks/data-sources.mdを読む — 5 つの Yahoo URL を確認する
ステップ 2:Claude-in-Chrome 経由で Yahoo のページを取得する
ユーザーはすでにブラウザーで認証済みです。順番にページへ移動して、ページのテキストを解析します。いずれかの手順に失敗した場合は、全体の実行を中断せず、その URL のみ縮退モードに移行してください。正確なツール呼び出しの順序とページ解析のパターンについては、resources/methodology.mdを参照してください。
- チームページ:
https://baseball.fantasysports.yahoo.com/b1/23756/5 - 順位表:
https://baseball.fantasysports.yahoo.com/b1/23756?lhst=stand - 対戦:
https://baseball.fantasysports.yahoo.com/b1/23756/matchup - トランザクション(FAAB 用):
https://baseball.fantasysports.yahoo.com/b1/23756/transactions - フリーエージェント:
https://baseball.fantasysports.yahoo.com/b1/23756/players?status=A
ステップ 3:解析して正規化する
各ページから構造化データを抽出します。行ごとの解析ロジックについてはresources/methodology.mdを、トランザクションログから FAAB 残額を再構成する方法についてはresources/methodology.mdを参照してください。
- ロースター:26 枠それぞれについて、
{slot, player, mlb_team, opp_today, status: active|IL|DTD|NA|BN}を記録する - 順位表:勝敗分数、順位、カテゴリ別順位(10 カテゴリ)
- 対戦:対戦相手の名前、カテゴリ別の現在のスコア(今週ここまでの 10 カテゴリの勝敗分数)
- FAAB:今シーズンのトランザクション履歴から
-$Nの項目をすべて合計する。残額 = $100 - 支出合計 - フリーエージェント:ロースター登録率上位 25 人を記録する — waiver-analyst が順位付けを始めるのに十分な数です
ステップ 4:team-profile.md をその場で更新する
出力の正確な形式については、resources/template.mdを参照してください。既存のファイルを上書きしてください(追記ではありません)。このファイルは常に「最新の実行時点」の状態を反映するものです。
- ヘッダー:
## As of YYYY-MM-DD - 状態テーブル:成績、順位、FAAB 残額、現在の対戦相手、獲得枠の使用数、IL 枠の使用数
- ロースターのスナップショット:26 枠すべてを含む YAML ブロック
- 未解決の質問:ページの取得に失敗した場合を除き、空にする
ステップ 5:シグナルファイルを出力する
シグナルフレームワークに従って、yahoo-mlb/signals/YYYY-MM-DD-league-state.md に YAML フロントマターを記述します。移動したすべての URL を source_urls に含めてください。取得が縮退した場合は confidence を 0.5 に下げ、完全に取得に失敗した項目は 0.3 に下げて、その旨を明示してください。resources/template.mdを参照してください。
- フロントマター:
type: league-state、date、emitted_by: mlb-league-state-reader、confidence、source_urls[] - 本文:ロースターテーブル、順位表テーブル、対戦テーブル、FAAB 台帳、フリーエージェント上位 25 人
- 書き込む前に
mlb-signal-emitterで検証する(今回の実行でそのスキルが利用可能な場合)。利用できない場合は、そのまま書き込む
障害発生時の縮退モード
Chrome は、さまざまな理由で失敗する可能性があります。タブが開いていない、セッションの有効期限が切れている、Yahoo のレート制限、500 エラー、DOM を読み取れない、といったケースです。実行全体を中止してはいけません。 URL ごとに適切に失敗を処理してください。
URL ごとのフォールバック判断ツリー:
| 失敗 | フォールバック |
|---|---|
| ナビゲーションエラー/タイムアウト | 1 回再試行します。それでも失敗する場合は、ユーザーに「{URL} の内容を貼り付けてください。こちらで解析します。」と尋ねます。 |
| セッションの有効期限切れ(ログインページが返された) | ユーザーに「Chrome のタブで Yahoo にログインしてから、「retry」と入力してください。」と伝えます。再認証は試みません。 |
| ページは読み込まれるが、解析に失敗する(レイアウトが不明) | get_page_text の先頭約 4000 文字を raw_capture: の下にシグナルファイルへ書き出し、そのフィールドの信頼度を 0.4 に下げます。 |
| フリーエージェントのページがブロックされている/空 | free_agents: [] と設定し、シグナル内にその旨を記録します。ロースターと順位表があれば、waiver-analyst は引き続き実行できます。 |
| トランザクションページがブロックされている | ユーザーに「現在の FAAB 残高はいくらですか?トランザクションページの上部に表示されています。」と尋ねます。ユーザーの値を受け入れ、faab_confidence: 0.6 と設定します。 |
ユーザー貼り付け用テンプレート(Yahoo の各ページで使用):
「
{URL}にアクセスできませんでした。そのページに表示されている表をコピーして(すべて選択してチャットに貼り付けて)ください。貼り付けた内容から必要なフィールドを抽出します。」
貼り付けられたテキストは、ライブページと同じ正規表現/行パターンで解析します。resources/methodology.md を参照してください。
ガードレール
-
ロースターが昨日のままだと決めつけてはいけません。 ウェイバーは毎日処理され、トレードはいつでも成立する可能性があります。
team-profile.mdが新しく見えても、毎回の実行開始時に必ず Yahoo のチームページを再読み込みしてください。 -
残りの FAAB は表示値ではなく、計算で求めます。 Yahoo の UI では、「FAAB Balance」が表示される場合と表示されない場合があります。信頼できる計算方法は、「今シーズンのトランザクションページにある落札入札額の合計を 100 ドルから差し引く」です。画面に表示された単一の数値を台帳より優先してはいけません。
-
すべての URL を明記してください。 シグナルファイルの
source_urls:リストには、実際にアクセスした Yahoo のページをすべて含めてください。障害のためにページをスキップした場合は、黙って省略せず、シグナル本文に記録してください。 -
後続処理で再スクレイピングしてはいけません。 このスキルが本日のリーグ状態シグナルを出力したら、lineup-optimizer/waiver-analyst/category-strategist は Yahoo に再アクセスせず、そのシグナルを必ず読み取ってください。再スクレイピングはトークンを浪費し、データの不一致を招くおそれがあります。
-
team-profile.md は上書きし、追記してはいけません。 このファイルは「現在の状態」です。昨日のロースターを残すと、現在の情報に混在してしまいます。追記専用ログはここではなく、
tracker/decisions-log.mdにあります。 -
ステータス値は正規化された列挙値です。 Yahoo のラベル(
P、DTD、IL-10、IL-60、NA、SUSP)を、正規化された列挙値active | BN | IL | DTD | NA | SUSPにマッピングしてください。後続のエージェントは Yahoo の文字列ではなく、この列挙値に基づいて分岐します。 -
今日の対戦相手が空欄の場合もあります。 休養日、試合延期、ダブルヘッダーはいずれも、通常とは異なる
opp_todayの値を生みます。Yahoo に表示された内容(@TEX、TEX、Off、PPD、DH1/DH2)をそのまま記録してください。後続の lineup-optimizer に必要な情報を正規化して消してはいけません。 -
ソース URL が 0 件のシグナルを出力してはいけません。 すべてのページにアクセスできなかった場合は、本文が空のシグナルに
confidence: 0.0を設定し、コーチに目立つ形で「Yahoo にアクセスできませんでした。後続のエージェントを実行する前に、貼り付けまたは再試行が必要です。」と伝えてください。
クイックリファレンス
5 つの Yahoo URL(context/frameworks/data-sources.md より):
Team: https://baseball.fantasysports.yahoo.com/b1/23756/5
Standings: https://baseball.fantasysports.yahoo.com/b1/23756?lhst=stand
Matchup: https://baseball.fantasysports.yahoo.com/b1/23756/matchup
Transactions: https://baseball.fantasysports.yahoo.com/b1/23756/transactions
Free agents: https://baseball.fantasysports.yahoo.com/b1/23756/players?status=A
Chrome ツールの順序(最初に ToolSearch で読み込み、その後に呼び出します):
1. mcp__claude-in-chrome__tabs_context_mcp (confirm active tab, auth state)
2. mcp__claude-in-chrome__navigate (go to URL)
3. mcp__claude-in-chrome__get_page_text (extract DOM text)
4. mcp__claude-in-chrome__read_page (structured read if text fails)
ロスター枠の順序(チームプロフィール YAML 用。league-config.md と一致します):
C, 1B, 2B, 3B, SS, OF, OF, OF, UTIL, UTIL, SP, SP, SP, RP, RP, P, P, P, P, P, BN, BN, BN, IL, IL, IL
ステータスの列挙値の対応関係:
| Yahoo | 正規化後 |
|---|---|
| (blank) / P | active |
| BN | BN |
| DTD | DTD |
| IL-10 / IL-60 / IL | IL |
| NA | NA |
| SUSP | SUSP |
シグナルのフロントマター(必須の最小フィールド):
---
type: league-state
date: 2026-04-17
emitted_by: mlb-league-state-reader
variant_synthesis: false
confidence: 0.9
source_urls:
- https://baseball.fantasysports.yahoo.com/b1/23756/5
- https://baseball.fantasysports.yahoo.com/b1/23756?lhst=stand
- https://baseball.fantasysports.yahoo.com/b1/23756/matchup
- https://baseball.fantasysports.yahoo.com/b1/23756/transactions
- https://baseball.fantasysports.yahoo.com/b1/23756/players?status=A
---
主なリソース:
- resources/template.md:team-profile.md の出力形式、シグナルファイルの出力形式、ロスター YAML スキーマ、フリーエージェントの表スキーマ
- resources/methodology.md:Yahoo のナビゲーション手順、ページごとの解析パターン、FAAB の再構築、貼り付けデータの解析、縮退モードのプロンプト
- resources/evaluators/rubric_mlb_league_state_reader.json:8 つの評価基準(ロスターの完全性、FAAB の正確性、URL の引用、フォールバック処理など)
必要な入力:
- Chrome で認証済みの Yahoo Fantasy セッション(ユーザーの責任で用意)
context/league-config.md(リーグ ID、チーム ID、ロスター構成)context/team-profile.md(以前の状態。スタブの場合があります)
生成される出力:
- 更新された
context/team-profile.md(上書き。今日の状態を反映します) signals/YYYY-MM-DD-league-state.md(フロントマターと source_urls を含む)- ページの読み込みに失敗した場合は、ユーザーに縮退モードのプロンプトを提示します