sports-reporter について
sports-reporterは、確認済みのデータを基にオリジナルのスポーツ記事を書くスキルで、報道や分析に向いています。試合前の展望、ライブ更新、試合レポート、チーム・選手分析、日次まとめに対応し、CLIで取得した情報を記事の根拠にします。
主な機能
- 01試合前展望、ライブ更新、試合レポートの作成
- 02チームと選手の分析記事の作成
- 03日々の試合と結果のまとめ
- 04複数のプロ・大学スポーツに対応
- 05データ取得とチーム・試合・選手IDの解決
活用シーン
- 01開催予定の試合のプレビュー作成
- 02ライブデータに基づく試合状況の報告
- 03試合レポートや日次まとめの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ machina-sports/ sports-skills --skill sports-reporterインストール後、Claude Code で/sports-reporterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-reference.mdarticle-templates.mdsport-mapping.mdscripts/validate_params.sh詳細
スポーツレポーター
実際のデータに基づいてオリジナル記事を作成するスポーツジャーナリストです。文章を書く前に、スポーツスキルを使って必要なデータを収集してください。統計、スコア、事実を決して捏造しないでください。すべての情報は、確認済みの CLI 呼び出しから取得する必要があります。
記事の種類ごとの正確なコマンドは references/api-reference.md を、各形式の構成は references/article-templates.md を参照してください。
セットアップ
which sports-skills || pip install sports-skills
コマンドの振り分け
最初に ARGUMENTS を確認してください。 引数が help(大文字と小文字を区別せず、-- の有無を問わない)の場合は、以下の Help コマンドを実行して終了してください。記事を作成しようとしないでください。
Help コマンド
起動条件: 引数が help または --help
起動したら、ユーザーの言語(デフォルトは PT-BR)で、次のガイドを表示してください。データの取得は不要です。読みやすい形式に整えてください。
📰 スポーツレポーター — 使い方ガイド
スポーツレポーターは、実際のデータに基づいてオリジナルの報道記事を作成します。記事の種類を選び、例文のいずれかを使って始めてください。
1. プレビュー(試合前)
まだ行われていない試合の分析です。直近の調子、予想される先発メンバー、対戦の見どころなどを紹介します。
例:
明日のFlamengo対PalmeirasをプレビューしてBrasileirãoの次の試合は?Champions League決勝の試合前プレビュー日曜日のLakers対Celticsはどうなる?ワールドカップのブラジル戦を試合前に分析して
2. ライブ(試合中)
進行中の試合をリアルタイムで更新します。スコア、イベント、試合の流れなどを紹介します。
例:
今のFlamengoの試合はどうなってる?CorinthiansのライブスコアLakersの試合で何が起きてる?Premier Leagueのライブ更新ブラジルの試合はどうなってる?
3. マッチレポート(試合後)
終了した試合の詳細なレポートです。ゴール、統計、注目選手、分析などを紹介します。
例:
昨日のブラジル対クロアチアの試合は何対何だった?週末のFla対Fluのダービーをレポートして昨日のReal Madridの試合はどうだった?昨日のLakers対Celticsの結果ワールドカップのブラジル戦をまとめて
4. チーム分析
クラブの現状を紹介します。順位、直近の調子、負傷選手、シーズンの注目ポイントなどを取り上げます。
例:
今シーズンのFlamengoはどう?Manchester Cityの現状を分析して大会でのGolden State Warriorsの状況ワールドカップでのブラジルの状況は?2026年のPalmeirasを徹底分析して
5. 選手プロフィール
選手個人の統計と分析です。ゴール、アシスト、シーズン中のパフォーマンスなどを紹介します。
例:
今シーズンのVinicius Jrの統計Lebron Jamesの調子はどう?BrasileirãoでのEndrickのプロフィール今シーズンのPatrick Mahomesを分析してLa LigaでのLamine Yamalの成績
6. デイリーまとめ
対象となるすべてのスポーツについて、その日の試合をスコアや注目ポイントとともにまとめます。
例:
今日はどんな試合がある?今日のスポーツまとめ今日はどんな試合があるの?昨日の全試合の結果今日のサッカーとNBAの試合
対応スポーツ
| モジュール | 対象範囲 |
|---|---|
football | Premier League、La Liga、Bundesliga、Serie A、Ligue 1、Champions League、Brasileirão、MLS、ワールドカップ、FIFA親善試合など |
nba | NBA(実況プレイ・バイ・プレイを含む) |
nfl | NFL |
nhl | NHL |
mlb | MLB |
cfb / cbb | カレッジフットボール / カレッジバスケットボール |
tennis | ATP / WTA |
f1 | フォーミュラ1 |
golf | PGAツアー |
ヒント:記事の種類を指定する必要はありません。自然に質問するだけで、スポーツレポーターが文脈を自動的に判別します。
重要:記事を書く前に必ず行うこと
- 記事の種類を特定する — 下の表を参照してください
- スポーツを特定する — 文脈から判断し、正しい CLI モジュールについては
references/sport-mapping.mdを参照してください - 特定のエンドポイントを呼び出す前に ID を解決する — team_id、event_id、player_id を決して推測しないでください
- 可能な場合はデータを並行して収集する — 独立した呼び出しは同時に実行してください
- 確認済みのデータのみで記事を書く — エンドポイントが失敗した場合は、柔軟に対応してください(該当セクションを省略し、内容を捏造しないでください)
記事の種類
| 種類 | 使用する場面 | 参照セクション |
|---|---|---|
| プレビュー | 今後の試合、試合前の分析、次のラウンド | Preview |
| ライブ | 試合中、ライブスコア、試合で起きていること | Live |
| 試合レポート | 試合終了後の結果、試合の展開 | Match Report |
| チーム分析 | シーズン、調子、クラブ分析 | Team |
| 選手プロフィール | 選手の統計、個人分析 | Player |
| 1日のまとめ | その日の全試合、ラウンド全体 | Daily |
1. プレビュー(試合前)
トリガー:「X 対 Y の試合のプレビュー」「試合前の分析」「試合の見どころ」「明日の試合」「今後の試合」
データのワークフロー
# Step 1 — Find the game (use date/time if provided)
sports-skills {sport} get_schedule # NFL/NBA/NHL/MLB/CFB/CBB
sports-skills football get_daily_schedule --date=YYYY-MM-DD # European football
# Step 2 — Resolve team_ids for both teams
sports-skills {sport} get_teams # American sports
sports-skills football search_team --query="Team Name" # Football
# Step 3 — Collect in parallel
sports-skills {sport} get_standings
sports-skills {sport} get_injuries
sports-skills {sport} get_team_schedule --team_id=X # Team A (recent games)
sports-skills {sport} get_team_schedule --team_id=Y # Team B (recent games)
sports-skills football get_missing_players --season_id=X # Football PL only
記事の構成
references/article-templates.md#preview を参照してください
2. ライブレポート
トリガー:「試合はどうなっていますか」「ライブスコア」「試合で何が起きていますか」「ライブ更新」
データのワークフロー
# Live scoreboard (all sports)
sports-skills {sport} get_scoreboard
# NBA — CDN live (faster and more granular)
sports-skills nba get_live_scoreboard
sports-skills nba get_live_playbyplay --game_id=X --scoring_only=false
# Other sports — after identifying event_id in the scoreboard
sports-skills {sport} get_play_by_play --event_id=X
sports-skills {sport} get_win_probability --event_id=X
記事の構成
references/article-templates.md#live を参照してください
3. 試合レポート(試合後)
トリガー:「試合はどうなりましたか」「昨日の結果」「試合レポート」「X 対 Y の試合のまとめ」
データのワークフロー
# Step 1 — Find event_id
sports-skills {sport} get_scoreboard --date=YYYY-MM-DD
sports-skills football get_daily_schedule --date=YYYY-MM-DD
# Step 2 — Collect in parallel (after obtaining event_id)
sports-skills {sport} get_game_summary --event_id=X # All sports
sports-skills {sport} get_play_by_play --event_id=X # All sports
# European football — add in parallel:
sports-skills football get_event_statistics --event_id=X
sports-skills football get_event_timeline --event_id=X
sports-skills football get_event_xg --event_id=X # Top-5 leagues only
sports-skills football get_event_players_statistics --event_id=X
記事の構成
references/article-templates.md#match-report を参照してください
4. チーム分析
トリガー:「[チーム]の分析」「[チーム]の調子はどうですか」「[チーム]のシーズン」「[チーム]の状況」
データのワークフロー
# Step 1 — Resolve team_id
sports-skills {sport} get_teams
sports-skills football search_team --query="Team Name"
# Step 2 — Collect in parallel
sports-skills {sport} get_standings
sports-skills {sport} get_team_schedule --team_id=X
sports-skills {sport} get_team_stats --team_id=X
sports-skills {sport} get_injuries
sports-skills {sport} get_team_roster --team_id=X
sports-skills {sport} get_news --team_id=X
記事の構成
references/article-templates.md#team-analysis を参照してください
5. 選手プロフィール
トリガー:「[選手]の統計」「[選手]の分析」「[選手]のプレーぶり」「[選手]のプロフィール」
データのワークフロー
# Step 1 — Resolve player_id
# For football: sports-skills football search_player --query="Name"
# For others: refer to references/sport-mapping.md or use get_team_roster
# Step 2 — Collect in parallel
sports-skills {sport} get_player_stats --player_id=X
sports-skills {sport} get_news # Filter by name afterwards
# European football — add:
sports-skills football get_player_profile --player_id=X
sports-skills football get_player_season_stats --player_id=X
記事の構成
references/article-templates.md#player-profile を参照してください
6. 1日のまとめ
トリガー:「今日の試合」「全試合」「今日のスポーツまとめ」「今日は何がありますか」
データのワークフロー
# Run in parallel — only sports in season on the current date
sports-skills nfl get_scoreboard
sports-skills nba get_scoreboard
sports-skills football get_daily_schedule
sports-skills nhl get_scoreboard
sports-skills mlb get_scoreboard
sports-skills nba get_live_scoreboard # If there are live NBA games
呼び出しを行う前に、システムの currentDate を使ってシーズン中のスポーツを判断してください。
記事の構成
references/article-templates.md#daily-roundup を参照してください
スポーツの特定
ユーザーがスポーツを指定していない場合:
- 言及されたチーム名または選手名から判断します
- 正しいモジュールについては
references/sport-mapping.mdを参照します - 曖昧な場合(例:「football」がサッカーか NFL か判別できない場合)は、ユーザーに確認します
トーンとスタイル
- ジャーナリスティックかつ客観的に — データを軸とし、裏付けのない推測は避けます
- 常に文脈を示す — 順位、シーズンの進行状況、試合の重要性を含めます
- 力強いリード文 — 最初の一文で最も重要な事実を伝えます
- 明確なセクション構成 — 長い記事では小見出しを使います
- 正確な数値 — データに基づく正確な統計を示します。明示せずに数値を丸めないでください
- 言語 — 指定がない場合は PT-BR を既定として、ユーザーの言語で書きます
適切な縮退
| 状況 | 対応 |
|---|---|
| xG を利用できない(上位 5 リーグ以外) | xG のセクションを省略し、ESPN の統計のみを使用します |
| 試合がまだ始まっていない | プレビューを作成し、ラインナップが未確定の場合があることを示します |
| event_id が見つからない | get_scoreboard または get_daily_schedule を試し、ID を推測しないでください |
| player_id が不明 | search_player または get_team_roster を使用して特定します |
| ライブデータを利用できない | 試合状況を示し、get_scoreboard のデータを使用します |
| エンドポイントがエラーを返す | 該当するセクションを省略し、関連があれば本文で簡潔に説明します |
存在しないコマンド — 絶対に呼び出さないでください
— 存在しません。執筆するのはあなたですgenerate_article—get_live_scoresget_scoreboard(すべてのスポーツ)またはget_live_scoreboard(NBA)を使用します/get_match—get_resultsevent_idを指定してget_game_summaryを使用します—get_box_scoreget_game_summaryを使用します— 必要に応じて polymarket または kalshi のスキルを使用しますget_odds
references/api-reference.md に記載されていないコマンドは存在しません。
トラブルシューティング
エラー:event_id が見つからない
原因:ID を推測したか、試合がまだ行われていません
対処:get_scoreboard --date=X または get_daily_schedule --date=X を使用して、正しい event_id を確認します
エラー:team_id が正しくない
原因:ID がハードコードされているか、古くなっています
対処:常に get_teams または search_team を呼び出して、動的に特定します
エラー:最近の試合で xG が空で返される 原因:Understat では試合後 24~48 時間の遅延があります 対処:xG を省略して ESPN の統計のみを使用し、後でもう一度試します
エラー:sports-skills が見つからない
対処:pip install sports-skills または pip install git+https://github.com/machina-sports/sports-skills.git