NCAA cross country and track & field athlete data via TFRRS (tfrrs.org) and news via The Stride Report.

MITAuto-check passedSecurity

Install Xctf Data

skills CLI
$ npx skills add machina-sports/sports-skills --skill xctf-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install machina-sports/sports-skills xctf-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/xctf-data .claude/skills/xctf-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
xctf-data
GitHub stars
243
Token cost
~2k tokens
SKILL.md length
892 words
Files
3 (incl. scripts, references)
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

NCAA cross country and track & field athlete data via TFRRS (tfrrs.org) and news via The Stride Report.

  • Works in 2 steps: Call search_athlete(name="Jane… → Call…
  • : user asks about NCAA cross country
  • SKILL.md covers Setup, Quick Start, CRITICAL: Before Any Query and Commands, plus 4 more sections
  • Runs Shell scripts from its folder; calls pip; reaches tfrrs.org

What it does

Xctf Data is an agent skill from machina-sports/sports-skills. 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…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/api-reference.md` and `scripts/validate_params.sh`). Compatibility notes: Requires Python 3.10+ and internet access to tfrrs.org and thestridereport.com. No API keys required.

It sits in Security, covering Threat modeling. It works with Kalshi and Polymarket. The repository describes itself as: Open-source agent skills for live sports data and prediction markets. Football, F1, Kalshi, Polymarket. Zero API keys. SKILL.md format. The licence is MIT.

When your agent uses it

  • : user asks about NCAA cross country
  • NCAA track and field
  • College running
  • TFRRS athlete profiles

Example prompts

  • “/xctf-data”

Requirements

  • Python 3
  • A Bash shell
  • Compatibility (from SKILL.md): Requires Python 3.10+ and internet access to tfrrs.org and thestridereport.com. No API keys required.

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Call search_athlete(name="Jane Hedengren", school="UT_college_f_BYU")
  2. Call get_athlete_profile(athlete_id="9230145", school="BYU", name="Jane_Hedengren")

What it can do on your machine

Read from SKILL.md and the folder at commit 09eb7e8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • tfrrs.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Python 3.10+ and internet access to tfrrs.org and thestridereport.com. No API keys required.

    From compatibility in the SKILL.md frontmatter.

Context cost

Xctf Data loads about 2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 190 tokens; SKILL.md has 892 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~190
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from machina-sports/sports-skills at commit 09eb7e8, republished under its MIT licence (© machina-sports). 892 words, ~2,033 tokens.

Download SKILL.mdSave it as .claude/skills/xctf-data/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
xctf-data
description
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.
compatibility
Requires Python 3.10+ and internet access to tfrrs.org and thestridereport.com. No API keys required.
license
MIT
metadata.author
machina-sports
metadata.version
0.1.0

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_Hedengren
sports-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
Show full SKILL.md (300 more words)Show less

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, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in skills/xctf-data of machina-sports/sports-skills.

  • SKILL.md
  • references/api-reference.md
  • scripts/validate_params.sh

Open the folder on GitHubat commit 09eb7e8

Compare with similar skills

Xctf Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Xctf Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Xctf Data this skillmachina-sports/sports-skills243—~2kAutomated safety check: PassMIT
Digital Oraclekomako-workshop/digital-oracle878—~5.9kAutomated safety check: PassMIT
Dr Manhattanguzus/dr-manhattan204—~2kAutomated safety check: PassApache-2.0
Predexon Prediction Market DataBlockRunAI/ClawRouter6.6k—~4.7kAutomated safety check: PassMIT
Forensifyalexgreensh/repo-forensics190—~2.5kAutomated safety check: NotesCustom licence
Polymarket Tennislivetennisapi/livetennisapi-mcp152—~3kAutomated safety check: PassMIT

Similar skills

  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    878 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Dr Manhattan

    guzus/dr-manhattan

    Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.

    204 GitHub stars~2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Predexon Prediction Market Data

    BlockRunAI/ClawRouter

    Reads structured prediction market data for Polymarket, Kalshi and other venues through a local BlockRun gateway: markets, search, leaderboards, wallet analytics and odds.

    6.6k GitHub stars~4.7k tokensUpdated 5 days ago
    Business, Finance & HRAuto-check passed
  • Forensify

    alexgreensh/repo-forensics

    Cross-agent self-inspection of your AI-agent stack. An agent skill from alexgreensh/repo-forensics.

    190 GitHub stars~2.5k tokensUpdated 14 days ago
    SecurityAuto-check: notes
  • Polymarket Tennis

    livetennisapi/livetennisapi-mcp

    Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.

    152 GitHub stars~3k tokensUpdated 4 days ago
    Business, Finance & HRAuto-check passed
  • Create Rule

    cartography-cncf/cartography

    Author a Cartography security rule (one or more Cypher Facts plus a Pydantic Finding output model) under cartography/rules/data/rules/.

    4.1k GitHub stars~3k tokensUpdated today
    SecurityAuto-check passed

More from machina-sports/sports-skills

All 23 skills in this repo
  • Cbb Data

    machina-sports/sports-skills

    College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures…

    245 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Cfb Data

    machina-sports/sports-skills

    College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures…

    245 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Cricket Data

    machina-sports/sports-skills

    Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player…

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Fastf1

    machina-sports/sports-skills

    Formula 1 data — race schedules, results, lap timing, driver and team info.

    245 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Golf Data

    machina-sports/sports-skills

    PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news.

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Kalshi

    machina-sports/sports-skills

    Kalshi prediction markets — events, series, markets, trades, and candlestick data.

    245 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Categories

Questions about Xctf Data

What does Xctf Data do?

NCAA cross country and track & field athlete data via TFRRS (tfrrs.org) and news via The Stride Report. Xctf Data is an agent skill from machina-sports/sports-skills.org) and news via The Stride Report.

When should I use Xctf Data?

Xctf Data fits situations like: : user asks about NCAA cross country; NCAA track and field; college running; TFRRS athlete profiles.

How do I install Xctf Data in Claude Code?

Run `npx skills add machina-sports/sports-skills --skill xctf-data -a claude-code`. Or copy the skill folder (skills/xctf-data in machina-sports/sports-skills) into .claude/skills/xctf-data in your project. Claude Code loads it when a task matches its description.

How do I install Xctf Data in Codex?

Run `npx skills add machina-sports/sports-skills --skill xctf-data -a codex`. Or copy the skill folder (skills/xctf-data in machina-sports/sports-skills) into .agents/skills/xctf-data in your project. Codex loads it when a task matches its description.

Can I use Xctf Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add machina-sports/sports-skills --skill xctf-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xctf-data, .gemini/skills/xctf-data, .github/skills/xctf-data and .opencode/skills/xctf-data in your project.

What does Xctf Data need to run?

Going by SKILL.md and its folder, Xctf Data needs a shell for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3; A Bash shell. Compatibility (from SKILL.md): Requires Python 3.10+ and internet access to tfrrs.org and thestridereport.com. No API keys required..

Does Xctf Data access the network?

SKILL.md names 1 domain. In commands or code: tfrrs.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Xctf Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Xctf Data use?

Xctf Data is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Xctf Data use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Xctf Data?

Skills that share tags, products or a category with Xctf Data: Digital Oracle (komako-workshop/digital-oracle, 878 stars), Dr Manhattan (guzus/dr-manhattan, 204 stars), Predexon Prediction Market Data (BlockRunAI/ClawRouter, 6.6k stars) and Forensify (alexgreensh/repo-forensics, 190 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Xctf Data?

machina-sports (a GitHub organization) maintains it in machina-sports/sports-skills, which has 243 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 5, 2026.

Source: machina-sports/sports-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.