fastf1
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the FastF1 library. Covers F1 sessions, qualifying, practice, race results, sector times, tire strategy. Use when: user asks about F1 race results, qualifying, lap times, driver stats, team info, the F1 calendar, or Formula 1 data. Don't use when: user asks about other motorsports (MotoGP, NASCAR, IndyCar, WEC, Formula E). Don't use for F1 betting odds or predictions — use kalshi or polymarket instead. Don't use for F1 news articles — use sports-news instead.
What this skill does
# 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
Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.