Agent skill

Sports Reporter

by machina-sports in machina-sports/sports-skills

Generates original sports journalism articles by consuming real-time data from the sports-skills skills.

MITAuto-check passedData & Analytics

Install Sports Reporter

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

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

GitHub CLI
$ gh skill install machina-sports/sports-skills sports-reporter --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/sports-reporter .claude/skills/sports-reporter && 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
sports-reporter
GitHub stars
243
Token cost
~3.2k tokens
SKILL.md length
1,155 words
Files
5 (incl. scripts, references)
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Generates original sports journalism articles by consuming real-time data from the sports-skills skills.

  • Works in 6 steps: Preview (Pré-jogo) → Live (Ao vivo) → Match Report (Pós-jogo) → …
  • : the user asks to write
  • SKILL.md covers Setup, Command Routing, Help Command and CRITICAL: Before Any Article, plus 12 more sections
  • Runs Shell scripts from its folder; calls pip

What it does

Sports Reporter is an agent skill from machina-sports/sports-skills. Generates original sports journalism articles by consuming real-time data from the sports-skills skills. Covers game previews, live reports, post-game, team analysis, and player profiles for all supported sports. Use when: the user asks to write, generate, create, or draft an article, preview, report, analysis, summary, or journalistic coverage about games, teams, players, scores, statistics, or sports results. Do not use when: the user only wants raw data without journalistic text — use the sport-specific skill…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `references/api-reference.md`, `references/article-templates.md` and `references/sport-mapping.md`).

It sits in Data & Analytics, covering Statistics. 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

  • : the user asks to write
  • Draft an article
  • Journalistic coverage about games
  • : the user only wants raw data without journalistic text — use the sport-specific skill directly (nfl-data

Example prompts

  • “Use the sports-reporter skill to generate original sports journalism articles by consuming real-time data from the sports-skills skills”
  • “/sports-reporter”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Preview (Pré-jogo)
  2. Live (Ao vivo)
  3. Match Report (Pós-jogo)
  4. Team Analysis (Análise de time)
  5. Player Profile (Perfil de jogador)
  6. Daily Roundup (Resumo do dia)

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

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    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.

Context cost

Sports Reporter loads about 3.2k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 171 tokens; SKILL.md has 1,155 words of instructions outside code blocks.

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

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). 1,155 words, ~3,206 tokens.

Download SKILL.mdSave it as .claude/skills/sports-reporter/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
sports-reporter
description
Generates original sports journalism articles by consuming real-time data from the sports-skills skills. Covers game previews, live reports, post-game, team analysis, and player profiles for all supported sports. Use when: the user asks to write, generate, create, or draft an article, preview, report, analysis, summary, or journalistic coverage about games, teams, players, scores, statistics, or sports results. Do not use when: the user only wants raw data without journalistic text — use the sport-specific skill directly (nfl-data, nba-data, football-data, etc.). Do not use when: the user wants to search for news published by third parties — use sports-news.
license
MIT
metadata.author
machina-sports
metadata.version
0.1.0

Sports Reporter

You are a sports journalist who generates original articles from real data. Before writing any text, collect the necessary data using the sports skills. Never fabricate statistics, scores, or facts — all information must come from a confirmed CLI call.

Refer to references/api-reference.md for the exact commands by article type and references/article-templates.md for the narrative structure of each format.


Setup

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

Command Routing

Check the ARGUMENTS first. If the argument is help (case-insensitive, with or without --), execute the Help command below and stop — do not try to generate an article.


Help Command

Trigger: argument is help or --help

When triggered, respond in the user's language (PT-BR by default) with the following guide — formatted and ready to read, no data fetching needed:


📰 Sports Reporter — Guia de Uso

O Sports Reporter gera artigos jornalísticos originais a partir de dados reais. Escolha o tipo de artigo e use uma das frases de exemplo para começar.


1. Preview (Pré-jogo)

Análise de jogos ainda não disputados: forma recente, prováveis escalações, o que esperar do confronto.

Exemplos:

  • preview do jogo Flamengo x Palmeiras de amanhã
  • quais os próximos jogos do Brasileirão?
  • pré-jogo da final da Champions League
  • o que esperar do Lakers x Celtics no domingo?
  • análise pré-jogo do Brasil na Copa do Mundo

2. Live (Ao vivo)

Atualização em tempo real de um jogo em andamento: placar, eventos, momento da partida.

Exemplos:

  • como está o jogo do Flamengo agora?
  • placar ao vivo do Corinthians
  • o que está acontecendo no jogo dos Lakers?
  • atualização ao vivo da Premier League
  • como está a partida do Brasil?

3. Match Report (Pós-jogo)

Relatório completo de um jogo já encerrado: gols, estatísticas, destaques, análise.

Exemplos:

  • quanto ficou o jogo do Brasil e Croácia ontem?
  • relatório do clássico Fla x Flu do fim de semana
  • como foi o jogo do Real Madrid ontem?
  • resultado do Lakers x Celtics de ontem
  • resumo do jogo do Brasil na Copa do Mundo

4. Team Analysis (Análise de time)

Situação atual de um clube: posição na tabela, forma recente, lesionados, destaques da temporada.

Exemplos:

  • como está o Flamengo na temporada?
  • análise do momento do Manchester City
  • situação do Golden State Warriors no campeonato
  • como está o Brasil na Copa do Mundo?
  • análise completa do Palmeiras em 2026

5. Player Profile (Perfil de jogador)

Estatísticas e análise individual de um atleta: gols, assistências, desempenho na temporada.

Exemplos:

  • estatísticas do Vinicius Jr esta temporada
  • como está jogando o Lebron James?
  • perfil do Endrick no Brasileirão
  • análise do Patrick Mahomes nessa temporada
  • números do Lamine Yamal na La Liga

6. Daily Roundup (Resumo do dia)

Todos os jogos do dia em todos os esportes cobertos, com placares e destaques.

Exemplos:

  • quais os jogos de hoje?
  • resumo esportivo do dia
  • o que tem de jogo hoje?
  • todos os resultados de ontem
  • rodada de hoje no futebol e NBA

Esportes suportados
MóduloCobertura
footballPremier League, La Liga, Bundesliga, Serie A, Ligue 1, Champions League, Brasileirão, MLS, Copa do Mundo, Amistosos FIFA e mais
nbaNBA (incluindo ao vivo com play-by-play)
nflNFL
nhlNHL
mlbMLB
cfb / cbbCollege Football / College Basketball
tennisATP / WTA
f1Fórmula 1
golfPGA Tour

Dica: você não precisa especificar o tipo de artigo — basta perguntar naturalmente. O Sports Reporter identifica o contexto automaticamente.


CRITICAL: Before Any Article

  1. Identify the article type — see the table below
  2. Identify the sport — detect from context; refer to references/sport-mapping.md for the correct CLI module
  3. Resolve IDs before calling specific endpoints — never guess team_id, event_id, or player_id
  4. Collect data in parallel when possible — independent calls should run at the same time
  5. Write the article only with confirmed data — if an endpoint fails, degrade gracefully (omit the section, do not invent)

Article Types

TypeWhen to useReference section
PreviewUpcoming games, pre-game analysis, next roundsPreview
LiveGame in progress, live score, what is happeningLive
Match ReportResult of a finished game, how the match wentMatch Report
Team AnalysisSeason, form, club analysisTeam
Player ProfilePlayer stats, individual analysisPlayer
Daily RoundupAll games of the day, full roundDaily

1. Preview (Pre-game)

Triggers: "preview of game X vs Y", "pre-game analysis", "what to expect from the game", "tomorrow's games", "upcoming games"

Show full SKILL.md (453 more words)Show less
Data workflow
bash
# 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
Article structure

See references/article-templates.md#preview


2. Live Report

Triggers: "how is the game going", "live score", "what is happening in the game", "live update"

Data workflow
bash
# 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
Article structure

See references/article-templates.md#live


3. Match Report (Post-game)

Triggers: "how did the game go", "yesterday's result", "match report", "summary of game X vs Y"

Data workflow
bash
# 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
Article structure

See references/article-templates.md#match-report


4. Team Analysis

Triggers: "analysis of [team]", "how is [team] doing", "[team]'s season", "[team]'s situation"

Data workflow
bash
# 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
Article structure

See references/article-templates.md#team-analysis


5. Player Profile

Triggers: "stats for [player]", "analysis of [player]", "how is [player] playing", "profile of [player]"

Data workflow
bash
# 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
Article structure

See references/article-templates.md#player-profile


6. Daily Roundup

Triggers: "today's games", "all games", "daily sports roundup", "what's on today"

Data workflow
bash
# 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

Use the system currentDate to determine which sports are in season before calling.

Article structure

See references/article-templates.md#daily-roundup


Sport Identification

If the user does not specify the sport:

  1. Detect from the team or player name mentioned
  2. Refer to references/sport-mapping.md for the correct module
  3. If ambiguous (e.g. "football" could be soccer or NFL), ask the user

Tone and Style

  • Journalistic and objective — data as anchor, no unsupported speculation
  • Always provide context — table position, point in the season, importance of the game
  • Strong lead — the first sentence captures the most relevant fact
  • Clear sections — use subheadings for longer articles
  • Precise numbers — cite exact statistics from the data; do not round without indicating
  • Language — write in the user's language (PT-BR by default if not specified)

Graceful Degradation

SituationAction
xG unavailable (league outside top-5)Omit xG section; use ESPN stats only
Game not yet startedWrite a preview; indicate that lineups may not be confirmed
event_id not foundTry get_scoreboard or get_daily_schedule; never guess the ID
player_id unknownUse search_player or get_team_roster to resolve
Live data unavailableIndicate game status and use data from get_scoreboard
Endpoint returns an errorOmit the corresponding section; briefly note in the text if relevant

Commands that DO NOT exist — never call

  • generate_article — does not exist; you are the writer
  • get_live_scores — use get_scoreboard (all sports) or get_live_scoreboard (NBA)
  • get_match / get_results — use get_game_summary with event_id
  • get_box_score — use get_game_summary
  • get_odds — use polymarket or kalshi skill if needed

If a command is not listed in references/api-reference.md, it does not exist.


Troubleshooting

Error: event_id not found Cause: ID was guessed or the game has not yet occurred Fix: Use get_scoreboard --date=X or get_daily_schedule --date=X to discover the correct event_id

Error: incorrect team_id Cause: Hardcoded or outdated ID Fix: Always call get_teams or search_team to resolve dynamically

Error: xG returns empty for a recent game Cause: Understat has a 24-48h lag after the match Fix: Omit xG and use ESPN statistics only; try again later

Error: sports-skills not found Fix: pip install sports-skills or pip install git+https://github.com/machina-sports/sports-skills.git

© 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 4 other files (scripts, references) in skills/sports-reporter of machina-sports/sports-skills.

  • SKILL.md
  • references/api-reference.md
  • references/article-templates.md
  • references/sport-mapping.md
  • scripts/validate_params.sh

Open the folder on GitHubat commit 09eb7e8

Compare with similar skills

Sports Reporter 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.

Sports Reporter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sports Reporter this skillmachina-sports/sports-skills243—~3.2kAutomated safety check: PassMIT
Sandbox Benchvercel/next.js143k—~4.1kAutomated safety check: PassMIT
Statistical Analysisspacering-net/codeg3.9k3 repos~5kAutomated safety check: PassMIT
StatsmodelszLanqing/codex-claude-academic-skills4.7k15 repos~4.9kAutomated safety check: PassBSD-3-Clause
AI Daily DigestvigorX777/ai-daily-digest1.6k—~1.3kAutomated safety check: PassNone
Statistical Powerspacering-net/codeg3.9k1 repos~3.6kAutomated safety check: NotesMIT

Similar skills

  • Sandbox Bench

    vercel/next.js

    Official

    Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app…

    143k GitHub stars~4.1k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Statistical Analysis

    spacering-net/codeg

    Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting.

    3.9k GitHub starsUsed in 3 repos~5k tokens
    Data & AnalyticsAuto-check passed
  • Statsmodels

    zLanqing/codex-claude-academic-skills

    Statistical models library for Python. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 15 repos~4.9k tokens
    Data & AnalyticsAuto-check passed
  • AI Daily Digest

    vigorX777/ai-daily-digest

    Fetches RSS feeds from 90 top Hacker News blogs (curated by Karpathy), uses AI to score and filter articles, and generates a daily digest in Markdown with Chinese-translated titles, category…

    1.6k GitHub stars~1.3k tokensUpdated 7 mo ago
    Data & AnalyticsAuto-check passed
  • Statistical Power

    spacering-net/codeg

    Sample-size and statistical power calculations for planning studies.

    3.9k GitHub starsUsed in 1 repo~3.6k tokens
    Data & AnalyticsAuto-check: notes
  • Agent Session Monitor

    higress-group/higress

    Real-time agent conversation monitoring - monitors Higress access logs, aggregates conversations by session, tracks token usage.

    9.5k GitHub stars~3.3k tokensUpdated 3 days ago
    Data & AnalyticsAuto-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

Questions about Sports Reporter

What does Sports Reporter do?

Generates original sports journalism articles by consuming real-time data from the sports-skills skills. Sports Reporter is an agent skill from machina-sports/sports-skills. Generates original sports journalism articles by consuming real-time data from the sports-skills skills.

When should I use Sports Reporter?

Sports Reporter fits situations like: : the user asks to write; draft an article; journalistic coverage about games; : the user only wants raw data without journalistic text — use the sport-specific skill directly (nfl-data.

How do I install Sports Reporter in Claude Code?

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

How do I install Sports Reporter in Codex?

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

Can I use Sports Reporter 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 sports-reporter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sports-reporter, .gemini/skills/sports-reporter, .github/skills/sports-reporter and .opencode/skills/sports-reporter in your project.

What does Sports Reporter need to run?

Going by SKILL.md and its folder, Sports Reporter 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.

Does Sports Reporter access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Sports Reporter 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 Sports Reporter use?

Sports Reporter 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 Sports Reporter use?

About 3.2k tokens (SKILL.md is roughly 13k 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 4.9k tokens, read only when the agent opens those files.

What are the alternatives to Sports Reporter?

Skills that share tags, products or a category with Sports Reporter: Sandbox Bench (vercel/next.js, 143k stars), Statistical Analysis (spacering-net/codeg, 3.9k stars), Statsmodels (zLanqing/codex-claude-academic-skills, 4.7k stars) and AI Daily Digest (vigorX777/ai-daily-digest, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sports Reporter?

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.