|
Scanned 9/9/2026
Install to Claude Code
npx -y skills add yanacuti1121/Yana-AI --skill sports--fastf1 --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Sports Fastf1?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/yanacuti1121-sports-fastf1)More formats (shields.io, HTML) on the badges page.
---
name: sports--fastf1
description: >-
|
origin: "github.com/machina-sports/sports-skills (skill: fastf1)"
license: MIT
version: "1.0.0"
compatibility: "yana-ai >= 0.14.0"
---
# FastF1 — Formula 1 Data
Before writing queries, consult `references/api-reference.md` for endpoints, ID conventions, and data shapes.
## Quick Start
Prefer the CLI — it avoids Python import path issues:
```bash
sports-skills f1 get_race_schedule --year=2025
sports-skills f1 get_race_results --year=2025 --event=Monza
```
Python SDK (alternative):
```python
from sports_skills import f1
schedule = f1.get_race_schedule(year=2025)
results = f1.get_race_results(year=2025, event="Monza")
```
## CRITICAL: Before Any Query
CRITICAL: Before calling any data endpoint, verify:
- Year is derived from the system prompt's `currentDate` — never hardcoded.
- In January or February, use `year = current_year - 1` (pre-season; the new F1 season has not started yet).
## Choosing the Year
Derive the current year from the system prompt's date (e.g., `currentDate: 2026-02-16` → current year is 2026).
- **If the user specifies a year**, use it as-is.
- **If the user says "latest", "recent", "last season", or doesn't specify**: The F1 season runs roughly March–December. If the current month is January or February, use `year = current_year - 1`. From March onward, use the current year.
## Workflows
### Race Weekend Analysis
1. `get_race_schedule --year=<year>` — find the event name and date
2. `get_race_results --year=<year> --event=<name>` — final classification (positions, times, points)
3. `get_lap_data --year=<year> --event=<name> --session_type=R` — lap-by-lap pace analysis
4. `get_tire_analysis --year=<year> --event=<name>` — strategy breakdown (compounds, stint lengths, degradation)
### Driver/Team Comparison
1. `get_championship_standings --year=<year>` — championship context (points, wins, podiums)
2. `get_team_comparison --year=<year> --team1=<t1> --team2=<t2>` OR `get_driver_comparison --year=<year> --driver1=<d1> --driver2=<d2>`
3. `get_season_stats --year=<year>` — aggregate performance (fastest laps, top speeds)
### Season Overview
1. `get_race_schedule --year=<year>` — full calendar with dates and circuits
2. `get_championship_standings --year=<year>` — driver and constructor standings
3. `get_season_stats --year=<year>` — season-wide fastest laps, top speeds, points leaders
4. `get_driver_info --year=<year>` — current grid (driver numbers, teams, nationalities)
## Commands
| Command | Description |
|---|---|
| `get_race_schedule` | Full season calendar with dates and circuits |
| `get_race_results` | Final race classification (positions, times, points) |
| `get_session_data` | Raw session info (Q, FP1, FP2, FP3, R) |
| `get_driver_info` | Driver details from the grid |
| `get_team_info` | Team info with driver lineup |
| `get_lap_data` | Lap-by-lap timing with sectors and tire data |
| `get_pit_stops` | Pit stop durations and team averages |
| `get_speed_data` | Speed trap and intermediate speed data |
| `get_championship_standings` | Driver and constructor championship standings |
| `get_season_stats` | Aggregate season performance |
| `get_team_comparison` | Team head-to-head: qualifying, race pace, sectors |
| `get_driver_comparison` | Driver head-to-head: qualifying H2H, race H2H, pace delta |
| `get_tire_analysis` | Tire strategy, stint lengths, degradation rates |
See `references/api-reference.md` for full parameter lists and return shapes.
## Examples
Example 1: F1 calendar
User says: "Show me the F1 calendar"
Actions:
1. Derive year from `currentDate`
2. Call `get_race_schedule(year=<derived_year>)`
Result: Full calendar with event names, dates, and circuits
Example 2: Driver race performance
User says: "How did Verstappen do at Monza?"
Actions:
1. Derive year from `currentDate` (or from context)
2. Call `get_race_results(year=<year>, event="Monza")` for final classification
3. Call `get_lap_data(year=<year>, event="Monza", session_type="R", driver="VER")` for lap times
Result: Finishing position, gap to leader, fastest lap, and tire strategy
Example 3: Latest results queried in pre-season
User says: "What were the latest F1 results?" (asked in February 2026)
Actions:
1. Current month is February → season not yet started → use `year = 2025`
2. Call `get_race_schedule(year=2025)` to find the last event of that season
3. Call `get_race_results(year=2025, event=<last_event>)` for the final race results
Result: Results of the final 2025 race
## Commands that DO NOT exist — never call these
- ~~`get_qualifying`~~ / ~~`get_practice`~~ — does not exist. Use `get_session_data` with `session_type="Q"` for qualifying or `session_type="FP1"`/`"FP2"`/`"FP3"` for practice.
- ~~`get_standings`~~ — does not exist. Use `get_championship_standings` instead.
- ~~`get_results`~~ — does not exist. Use `get_race_results` instead.
- ~~`get_calendar`~~ — does not exist. Use `get_race_schedule` instead.
If a command is not listed in the Commands table above, it does not exist.
## Troubleshooting
Error: Event name not found
Cause: Event name spelling does not match FastF1's internal naming
Solution: Call `get_race_schedule(year=<year>)` first to get the exact event names, then retry with the correct name
Error: Session data is empty
Cause: The session has not happened yet
Solution: FastF1 only returns data for completed sessions. Check `get_race_schedule` for when the session is scheduled
Error: `get_race_results` returns no `fastest_lap_time`
Cause: Some races do not include fastest lap data in the results endpoint
Solution: Use `get_lap_data(session_type="R")` and find the minimum `lap_time` across all drivers
Error: Querying the current year in January or February returns no data
Cause: The new F1 season has not started yet
Solution: Use `year = current_year - 1` for any pre-March query; do not query the current year before March
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!