xctf-data について
xctf-dataは、TFRRSの公開ページとThe Stride ReportのRSSを利用して、NCAAのクロスカントリーと陸上競技データを取得するsports-skillsのスキルです。CLIまたはPython SDKで選手、チーム、競技会の情報を調べられます。
主な機能
- 01現行チーム名簿から選手を検索
- 02選手プロフィール・自己記録・シーズン結果の取得
- 03チームのクロスカントリーと陸上名簿の取得
- 04競技会の結果とチーム得点の取得
- 05最近のXC/TFニュースの閲覧
活用シーン
- 01選手の自己記録の確認
- 02選手のシーズン別競技会結果の確認
- 03チームの現行名簿の確認
- 04競技会の種目別結果とチーム得点の検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ machina-sports/ sports-skills --skill xctf-dataインストール後、Claude Code で/xctf-dataを入力して読み込まれたか確認します。
同梱ファイルreferences/api-reference.mdscripts/validate_params.sh
詳細
XC/TF データ(TFRRS — NCAA クロスカントリー&陸上競技)
クエリを作成する前に、パラメーター、URL の規則、戻り値の形式について references/api-reference.md を確認してください。
セットアップ
初めて使用する前に、CLI が利用可能か確認してください。
which sports-skills || pip install sports-skills
pip install に失敗した場合は、GitHub からインストールしてください。
pip install git+https://github.com/machina-sports/sports-skills.git
Python 3.10 以降が必要です。API キーは不要です。すべてのデータは TFRRS の公開ページと The Stride Report の RSS フィードから取得されます。
クイックスタート
CLI(推奨):
sports-skills xctf get_athlete_profile --athlete_id=9230145 --school=BYU --name=Jane_Hedengren
sports-skills xctf get_news --limit=5
Python SDK:
from sports_skills import xctf
profile = xctf.get_athlete_profile(
athlete_id="9230145",
school="BYU",
name="Jane_Hedengren",
)
重要:クエリを実行する前に
次の 3 つのパラメーターはすべて必須で、選手の TFRRS URL と正確に一致している必要があります。
https://www.tfrrs.org/athletes/{athlete_id}/{school}/{name}.html
athlete_id— 数値 ID(例:9230145)school— スペースではなく、アンダースコアを含む学校のスラッグ(例:BYU)name— 選手名のスラッグ(例:Jane_Hedengren)
スラッグを推測しないでください。tfrrs.org で選手のページに移動し、URL をコピーして確認してください。
コマンド
| コマンド | 説明 |
|---|---|
search_athlete | 現在のチーム名簿を名前で検索します。get_athlete_profile で使用する athlete_id、school、name のスラッグを返します。男女両方を自動的に検索します。現役選手のみが対象です。卒業した選手については、TFRRS の URL を直接指定する必要があります |
get_athlete_profile | 選手名、学校、出場資格、すべての自己記録、およびシーズンごとの全大会結果を取得します |
get_team_roster | チームの XC および/または TF の全選手名簿を取得します |
get_meet_results | TFRRS の大会におけるすべての種目の結果とチームの得点を取得します |
get_news | The Stride Report(thestridereport.com)の最近の XC/TF 記事を取得します |
パラメーターと戻り値の形式の詳細については、references/api-reference.md を参照してください。
例
例 1:現役選手の自己記録を調べる ユーザー:「Jane Hedengren の自己記録は?」 操作:
search_athlete(name="Jane Hedengren", school="UT_college_f_BYU")を呼び出します 結果:data.matchesにathlete_id、school、nameのスラッグを含むエントリーが表示されますget_athlete_profile(athlete_id="9230145", school="BYU", name="Jane_Hedengren")を呼び出します 結果:data.prsに種目ごとの自己記録が表示されます(例:{"1500": "4:10.24", "5000": "14:44.79", "6K (XC)": "18:29.6", ...})
例 2:ランナーのクロスカントリーシーズンを調べる ユーザー:「Jane Hedengren の 2025 年 XC シーズンの結果を見せて」 操作:
search_athlete(name="Jane Hedengren", school="UT_college_f_BYU")を呼び出します- 一致した選手のパラメーターを指定して
get_athlete_profileを呼び出します data.meetsの中から、dateが 2025 年秋(2025 年 9 月~11 月)に該当するエントリーを絞り込みます 結果:日付、種目、記録、順位を含む大会の一覧
例 3:卒業または移籍した選手 ユーザー:「UC Davis 時代の Katelyn Vuong の自己記録は?」 操作:
search_athlete(name="Katelyn Vuong", school="CA_college_f_UC_Davis")を呼び出します 結果:選手は卒業しているため、data.matchesは空です- ユーザーに次のように伝えます:「Katelyn Vuong は UC Davis の現在の選手名簿に掲載されていません。tfrrs.org でプロフィール URL を探して(例:'Katelyn Vuong UC Davis tfrrs' で検索)、共有してください。」
- ユーザーが次の URL を提供します:
https://www.tfrrs.org/athletes/7899206/UC_Davis/Katelyn_Vuong.html - URL からパラメーターを抽出し、
get_athlete_profile(athlete_id="7899206", school="UC_Davis", name="Katelyn_Vuong")を呼び出します 注:TFRRS は XC と TF で別々のプロフィールを作成します。両方ある場合は、自己記録をすべて確認するため、両方の ID を取得してください。
例 4:チームの現在の選手名簿を取得する ユーザー:「UC Davis 女子 XC チームの選手名簿を見せて」 操作:
get_team_roster(school="CA_college_f_UC_Davis", sport="xc")を呼び出します 結果:名前、学年、プロフィールのスラッグを含む選手一覧
例 5:大会の結果を取得する ユーザー:「Stanford Invitational の結果を見せて」 操作:
- tfrrs.org で大会を探し、URL から meet_id とスラッグをコピーします(例:tfrrs.org/results/95890/Stanford_Invitational)
get_meet_results(meet_id="95890", slug="Stanford_Invitational")を呼び出します 結果:大会のすべての種目の結果とチーム得点です。各結果にはplace、name、year、team、marks(記録されたタイムや距離。例:["9.72"]または["DNF"])、score(チームの得点。得点対象外の大会ではnull)が含まれます。種目に該当する場合は、wind、conversion(ヤード・ポンド法での記録)、リレーのathletesも表示されます。
クロスカントリー大会の場合(URL の例:tfrrs.org/results/xc/28714/Gans_Creek_Classic)、sport="xc" を渡します:get_meet_results(meet_id="28714", slug="Gans_Creek_Classic", sport="xc")。XC の team_scores はレース名をキーとして使用します。XC の ID は別の範囲を使用するため、sport="xc" を指定せずに XC の ID を渡すと、無関係なトラック大会が返されます(warnings にその旨が示されます)。
例 6:最新の XC/TF ニュースを取得する ユーザー:「大学の陸上競技に関する最新ニュースは?」 操作:
get_news(limit=10)を呼び出します 結果:The Stride Report の最近の記事が、タイトル、日付、要約、リンクとともに表示されます
存在しないコマンド — 絶対に呼び出さないでください
— 存在しません。個人のデータにはget_team_rankingsget_athlete_profileを使用してください。— 存在しません。正しいコマンドはsearch_athletessearch_athleteです(末尾に「s」は付きません)。— 存在しません。正しいコマンドはfetch_newsget_newsです。
上記の Commands テーブルに記載されていないコマンドは存在しません。
エラー処理
コマンドが失敗した場合、生のエラーをユーザーに表示しないでください。代わりに、次の手順を実行してください。
get_athlete_profileの場合:athlete_id、school、nameが TFRRS の URL と完全に一致していることを確認します(大文字と小文字を区別します)search_athleteの場合:チームの TFRRS ページ URL を確認して、チームのスラッグが正しいことを確かめますget_meet_resultsの場合:meet_idとslugが大会の TFRRS URL と完全に一致していることを確認しますget_team_rosterの場合:学校のスラッグが正しいことを確認しますget_newsの場合:フィードの取得に失敗したら、The Stride Report が一時的に利用できない可能性があることをユーザーに伝えます- ほかの手段をすべて試した後に限り、わかりやすいメッセージで失敗を報告します
トラブルシューティング
sports-skills コマンドが見つからない
pip install sports-skills を実行するか、GitHub からインストールしてください(上記のセットアップを参照)。
アスリートのプロフィールで HTTP 404 が発生する
school または name のスラッグが TFRRS の URL と完全に一致していません。スラッグは大文字と小文字を区別し、アンダースコアを使用します。tfrrs.org から直接コピーしてください。
prs が空の dict を返す
アスリートのプロフィールページが公開されたばかりか、構造が異なる可能性があります。tfrrs.org で URL を直接確認してください。
search_athlete が空の一致結果を返す
アスリートは卒業済みか、転校した可能性があります。この場合の対処方法は、上記の例 3 を参照してください。
get_meet_results がイベントを返さない
meet_id または slug が正しくない可能性があります。大会の TFRRS URL から両方を直接コピーしてください。URL に /results/xc/ が含まれている場合は、sport="xc" を渡してください。
get_news が失敗する、または記事を返さない
The Stride Report の RSS フィードが一時的に利用できない可能性があります。しばらくしてから再試行してください。
接続エラーまたはタイムアウト TFRRS が一時的に利用できない可能性があります。リクエストは自動的に 1 秒あたり 1 件に制限されています。少し待ってから再試行してください。