From machina-sports-sports-skills
Fetches PGA Tour, LPGA, and DP World Tour golf data: tournament leaderboards, scorecards, schedules, golfer profiles, and news via ESPN public endpoints using Python CLI. Zero config, no API keys.
npx claudepluginhub joshuarweaver/cascade-data-analytics --plugin machina-sports-sports-skillsThis skill uses the workspace's default tool permissions.
Before writing queries, consult `references/api-reference.md` for endpoints, player IDs, and score formats.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
Before writing queries, consult references/api-reference.md for endpoints, player IDs, and score formats.
Before first use, check if the CLI is available:
which sports-skills || pip install sports-skills
If pip install fails with a Python version error, the package requires Python 3.10+. Find a compatible Python:
python3 --version # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills
No API keys required.
Prefer the CLI — it avoids Python import path issues:
sports-skills golf get_leaderboard --tour=pga
sports-skills golf get_schedule --tour=pga --year=2026
sports-skills golf get_news --tour=pga
CRITICAL: Before calling any data endpoint, verify:
tour parameter is specified (pga, lpga, or eur) — there is no default tour.get_leaderboard results or ESPN golf URLs — never guessed.tour ParameterMost commands require --tour=pga, --tour=lpga, or --tour=eur:
If the user doesn't specify, default to pga. If they say "women's golf" or "LPGA", use lpga. If they mention the European Tour or DP World Tour, use eur.
| Command | Description |
|---|---|
get_leaderboard | Current tournament leaderboard with all golfer scores |
get_schedule | Full season tournament schedule |
get_player_info | Individual golfer profile |
get_player_overview | Detailed overview with season stats, rankings, recent results |
get_scorecard | Hole-by-hole scorecard for a golfer |
get_news | Golf news articles |
See references/api-reference.md for full parameter lists and return shapes.
Example 1: Current leaderboard User says: "What's the PGA leaderboard right now?" Actions:
get_leaderboard(tour="pga")
Result: Current tournament leaderboard sorted by position with each golfer's score and round-by-round breakdownExample 2: Season schedule User says: "Show me the LPGA schedule for 2026" Actions:
get_schedule(tour="lpga", year=2026)
Result: Full LPGA tournament calendar with names, dates, and venuesExample 3: Golfer profile User says: "Tell me about Scottie Scheffler" Actions:
get_player_info(player_id="9478", tour="pga")
Result: Scheffler's profile with age, nationality, height/weight, turned pro yearExample 4: Upcoming major User says: "When is the Masters this year?" Actions:
currentDateget_schedule(tour="pga", year=<derived_year>)Example 5: Player scorecard User says: "Show me Scottie Scheffler's scorecard" Actions:
get_scorecard(tour="pga", player_id="9478")
Result: Hole-by-hole scores for each completed round with strokes and score-to-parExample 6: Player season form User says: "How has Rory McIlroy been playing this season?" Actions:
get_player_overview(player_id="3470", tour="pga")
Result: Season stats (scoring average, earnings, wins, top-10s), world ranking, and recent resultsget_tournament_resultsget_leaderboard for current/recent tournament scores.get_rankingsget_player_overview for individual rankings.get_oddsget_betting_oddssearch_playerget_leaderboard to find player IDs from the current field.If a command is not listed in the Commands table above, it does not exist.
When a command fails, do not surface raw errors to the user. Instead:
get_leaderboard to find current player IDsError: sports-skills command not found
Cause: Package not installed
Solution: Run pip install sports-skills
Error: No active tournament on leaderboard
Cause: Golf tournaments run Thursday–Sunday; between events the leaderboard may show no active tournament
Solution: Call get_schedule(tour="pga") to find the next upcoming event
Error: Limited round data — scores are empty
Cause: Before a tournament starts, round scores will be empty. During the tournament, only completed rounds have scores.
Solution: Check get_leaderboard for tournament status and current round; wait for rounds to complete
Error: Player not found by ID
Cause: Player ID is incorrect or the player is not in the current tournament field
Solution: Get player IDs from get_leaderboard results, or look up ESPN golf URLs (espn.com/golf/player/_/id/<id>/player-name)