Xctf Data

machina-sports/sports-skills/skills/xctf-data

作者 machina-sports09eb7e8566f4MIT242 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

NCAA cross country and track & field athlete data via TFRRS (tfrrs.org) and news via The Stride Report. Fetch athlete profiles including all personal records (PRs), eligibility year, school, full season-by-season results history, and XC/TF news. Zero config, no API keys. Use when: user asks about NCAA cross country, NCAA track and field, college running, TFRRS athlete profiles, personal records, PRs, XC or TF season results, individual athlete performance history, or XC/TF news. Don't use when: user asks about professional track, Diamond League, or other sports — use nfl-data, nba-data, wnba-data, nhl-data, mlb-data, golf-data, cricket-data, cfb-data, cbb-data, tennis-data, fastf1, or volleyball-data. For betting use polymarket or kalshi.

包含腳本Data & Analytics
AI 產生的概覽

從 TFRRS 擷取 NCAA 越野賽與田徑運動員資料,並從 The Stride Report 取得新聞。

功能
提供命令列工具與 Python SDK,用於從 TFRRS 公開頁面及 The Stride Report RSS 摘要取得 NCAA 越野賽與田徑資訊。可傳回包含個人最佳成績、參賽資格、學校與逐賽季比賽成績的運動員檔案,以及團隊名單、含團體得分的比賽結果、運動員搜尋和最新新聞文章。此技能附帶參數驗證指令碼與供模型閱讀的 API 參考文件。
適用情境
當使用者詢問 NCAA 越野賽或田徑、大學跑步、TFRRS 運動員檔案、個人最佳成績、賽季成績、團隊名單、比賽結果或越野賽/田徑新聞時使用。不適用於職業田徑、鑽石聯賽、其他運動或博彩。
執行需求
需要 Python 3.10+ 以及連線至 tfrrs.org 和 thestridereport.com 的網路存取。須透過 pip 安裝 sports-skills 套件,也可從 GitHub 安裝。不需要 API 金鑰。附帶可執行驗證指令碼與參考文件。

XC/TF Data (TFRRS — NCAA Cross Country & Track and Field)

Before writing queries, consult references/api-reference.md for parameters, URL conventions, and return shapes.

Setup

Before first use, check if the CLI is available:

bash
which sports-skills || pip install sports-skills

If pip install fails, install from GitHub:

bash
pip install git+https://github.com/machina-sports/sports-skills.git

Requires Python 3.10+. No API keys required. All data comes from TFRRS public pages and The Stride Report RSS feed.

Quick Start

CLI (preferred):

bash
sports-skills xctf get_athlete_profile --athlete_id=9230145 --school=BYU --name=Jane_Hedengrensports-skills xctf get_news --limit=5

Python SDK:

python
from sports_skills import xctf
profile = xctf.get_athlete_profile(    athlete_id="9230145",    school="BYU",    name="Jane_Hedengren",)

CRITICAL: Before Any Query

All three parameters are required and must match the athlete's TFRRS URL exactly:

https://www.tfrrs.org/athletes/{athlete_id}/{school}/{name}.html
  • athlete_id — numeric ID (e.g. 9230145)
  • school — school slug with underscores, not spaces (e.g. BYU)
  • name — athlete name slug (e.g. Jane_Hedengren)

Do NOT guess slugs. Find them by navigating to the athlete on tfrrs.org and copying the URL.

Commands

CommandDescription
search_athleteSearch the current team roster by name; returns athlete_id, school, and name slugs for use with get_athlete_profile. Searches both genders automatically. Current athletes only — graduated athletes require a direct TFRRS URL
get_athlete_profileAthlete name, school, eligibility, all PRs, and full season-by-season meet results
get_team_rosterFull XC and/or TF roster for a team
get_meet_resultsAll event results and team scores from a TFRRS meet
get_newsRecent XC/TF articles from The Stride Report (thestridereport.com)

See references/api-reference.md for full parameter details and return shapes.

Examples

Example 1: Look up a current athlete's PRs User says: "What are Jane Hedengren's PRs?" Actions:

  1. Call search_athlete(name="Jane Hedengren", school="UT_college_f_BYU") Result: data.matches contains entries with athlete_id, school, name slugs
  2. Call get_athlete_profile(athlete_id="9230145", school="BYU", name="Jane_Hedengren") Result: data.prs contains all personal records by event (e.g. {"1500": "4:10.24", "5000": "14:44.79", "6K (XC)": "18:29.6", ...})

Example 2: Get a runner's cross country season User says: "Show me Jane Hedengren's 2025 XC season results" Actions:

  1. Call search_athlete(name="Jane Hedengren", school="UT_college_f_BYU")
  2. Call get_athlete_profile with the matched athlete params
  3. Filter data.meets for entries whose date falls in the fall of 2025 (Sep–Nov 2025) Result: List of meets with dates, events, marks, and places

Example 3: Graduated or transferred athlete User says: "What are Katelyn Vuong's PRs from UC Davis?" Actions:

  1. Call search_athlete(name="Katelyn Vuong", school="CA_college_f_UC_Davis") Result: data.matches is empty — athlete has graduated
  2. Tell the user: "Katelyn Vuong is not on UC Davis's current roster. Please find her profile URL on tfrrs.org (e.g. search 'Katelyn Vuong UC Davis tfrrs') and share it."
  3. User provides: https://www.tfrrs.org/athletes/7899206/UC_Davis/Katelyn_Vuong.html
  4. Extract params from the URL and call get_athlete_profile(athlete_id="7899206", school="UC_Davis", name="Katelyn_Vuong") Note: TFRRS creates separate profiles for XC and TF. If both exist, fetch both IDs for complete PRs.

Example 4: Get a team's current roster User says: "Show me the UC Davis women's XC roster" Actions:

  1. Call get_team_roster(school="CA_college_f_UC_Davis", sport="xc") Result: List of athletes with name, year, and profile slugs

Example 5: Get results from a meet User says: "Show me the results from the Stanford Invitational" Actions:

  1. Find the meet on tfrrs.org and copy the meet_id and slug from the URL (e.g. tfrrs.org/results/95890/Stanford_Invitational)
  2. Call get_meet_results(meet_id="95890", slug="Stanford_Invitational") Result: All event results and team scores from the meet. Each result has place, name, year, team, marks (the recorded mark, e.g. ["9.72"], or ["DNF"]) and score (team points, null at unscored meets); wind, conversion (imperial mark) and relay athletes appear when the event has them.

For a cross-country meet (URL like tfrrs.org/results/xc/28714/Gans_Creek_Classic) pass sport="xc": get_meet_results(meet_id="28714", slug="Gans_Creek_Classic", sport="xc"). XC team_scores are keyed by race name. XC ids use a separate range, so an XC id without sport="xc" returns an unrelated track meet (flagged in warnings).

Example 6: Get the latest XC/TF news User says: "What's the latest college track news?" Actions:

  1. Call get_news(limit=10) Result: Recent articles from The Stride Report with title, date, summary, and link

Commands that DO NOT exist — never call these

  • get_team_rankings — does not exist. Use get_athlete_profile for individual data.
  • search_athletes — does not exist. The correct command is search_athlete (no trailing 's').
  • fetch_news — does not exist. The correct command is get_news.

If a command is not listed in the Commands table above, it does not exist.

Error Handling

When a command fails, do not surface raw errors to the user. Instead:

  1. For get_athlete_profile: confirm athlete_id, school, and name match the TFRRS URL exactly (case-sensitive)
  2. For search_athlete: verify the team slug is correct by checking the team's TFRRS page URL
  3. For get_meet_results: verify the meet_id and slug match the meet's TFRRS URL exactly
  4. For get_team_roster: verify the school slug is correct
  5. For get_news: if the feed fails, inform the user that The Stride Report may be temporarily unavailable
  6. Report failure with a clean message only after exhausting alternatives

Troubleshooting

sports-skills command not found Run pip install sports-skills or install from GitHub (see Setup above).

HTTP 404 on athlete profile The school or name slug does not match the TFRRS URL exactly. Slugs are case-sensitive and use underscores. Copy directly from tfrrs.org.

prs returns empty dict The athlete's profile page may be very new or structured differently. Check the URL directly on tfrrs.org.

search_athlete returns empty matches The athlete is likely graduated or transferred. See Example 3 above for how to handle this.

get_meet_results returns no events The meet_id or slug may be incorrect. Copy both directly from the meet's TFRRS URL. If the URL contains /results/xc/, pass sport="xc".

get_news fails or returns no articles The Stride Report RSS feed may be temporarily unavailable. Try again later.

Connection errors or timeouts TFRRS may be temporarily unavailable. Requests are throttled to 1 per second automatically — wait a moment and retry.

來源與署名

來源:machina-sports/sports-skills位於skills/xctf-data提交09eb7e8

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 machina-sports/sports-skills 的技能

World Cup

machina-sports

Premium FIFA World Cup 2026 market & match intelligence — a hosted, read-only layer that fuses official match truth (fixtures, standings, squads, injuries, player performance) with live prediction markets (Kalshi + Polymarket: prices, order books, price history, movers, cross-venue edges) and AI-grounded context (prematch briefs, move explanations, fan/social pulse). Every entity carries a canonical machina URN cross-walked across api-football, sportradar, opta, entain and ESPN, so a market resolves to a fixture resolves to two teams. This skill is prompt-only and premium: it routes the agent to the hosted World Cup Intelligence project (a per-project Machina MCP server) via `machina-cli`. It runs no code locally and ships no API keys. Use when: the user wants World Cup 2026 odds + match context together, asks "what moved and why", wants a grounded market brief or fan-sentiment read on a fixture, or needs one stable id that joins markets ↔ fixtures ↔ teams across providers. Don't use when: the user wants fr

待分類2423 天前更新

Sports Reporter

machina-sports

透過 sports-skills 命令列工具取得即時資料,產生原創體育新聞文章。

包含腳本
Writing & Content2423 天前更新

Volleyball Data

machina-sports

透過 Nevobo API 取得荷蘭排球資料:積分榜、賽程、賽果、俱樂部、賽事與新聞。

Data & Analytics2423 天前更新

Polymarket

machina-sports

以唯讀方式存取 Polymarket 運動預測市場:賠率、價格、委託簿、賽事與市場搜尋。

包含腳本
Business & Finance2423 天前更新

Metadata

machina-sports

透過 TheSportsDB 查詢球隊隊徽、球員照片、球場與俱樂部資訊,並支援球隊與球員名稱搜尋。

Research & Analysis2423 天前更新

Markets

machina-sports

Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.

待分類2423 天前更新