skills/fpl-copilot/SKILL.md
Fantasy Premier League copilot: syncs live FPL data, analyzes players/teams/fixtures, manages your fantasy squad, and generates self-contained HTML reports for squads, fixtures, transfers, captain picks, and gameweek strategy. Use when the user asks about FPL, player stats, transfer advice, captain picks, fixture difficulty, gameweek strategy, or squad management.
npx skillsauth add sugarforever/01coder-agent-skills fpl-copilotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fantasy Premier League data sync, analysis, and squad management.
~/.fplcopilot/fplcopilot.db~/.fplcopilot/squads/Activate this skill when the user mentions:
sqlite3 ~/.fplcopilot/fplcopilot.db "SELECT * FROM sync_metadata;"
If the database doesn't exist or data is stale, sync first.
SYNC="${CLAUDE_PLUGIN_ROOT}/skills/fpl-copilot/references/sync.sh"
# First time or daily refresh
$SYNC bootstrap # Teams, gameweeks, ~600 players (~5s)
$SYNC fixtures # All 380 fixtures (~2s)
# On demand — single player's match history
$SYNC player 328 # e.g., Salah's detailed GW-by-GW stats
# Batch — all players' histories (slow, ~60s, rate-limited)
$SYNC player-stats
# Everything at once
$SYNC all
# Bypass freshness checks
$SYNC bootstrap --force
# All queries go through sqlite3
sqlite3 ~/.fplcopilot/fplcopilot.db "SELECT web_name, position, form, total_points, now_cost FROM players ORDER BY form DESC LIMIT 10;"
Read references/analysis.md for formulas and example SQL queries.
Read references/squad.md for squad management, persistence format, and multi-squad support.
Many FPL outputs are inherently spatial or color-coded — formation, FDR matrix, transfer comparison. For those, generate a self-contained HTML report instead of a markdown table. For quick lookups and one-shot answers, stay in markdown.
| Output type | Format | Template |
|---|---|---|
| Squad view (formation, bench, totals) | HTML | templates/squad-view.html |
| Fixture difficulty matrix (teams × next N GWs) | HTML | templates/fixture-matrix.html |
| Transfer comparison (out → in, deltas) | HTML | templates/transfer-comparison.html |
| Captain ranking with reasoning | HTML | templates/captain-ranking.html |
| Gameweek strategy report (squad + fixtures + recs) | HTML | templates/gameweek-report.html |
| Single-stat lookup ("Salah's form?") | markdown | — |
| Short reasoning ("Bench Haaland this week?") | markdown | — |
| Deadline, price changes, one-line answers | markdown | — |
| 3-row SQL result | markdown | — |
Heuristic: if the user will refer back to it, share it, or scan it visually → HTML. If they glance and move on → markdown.
.html file. No build step. CSS in <style>, JS in <script>, SVG inlined.<meta name="viewport" content="width=device-width, initial-scale=1">. Layout survives a phone viewport.~/.fplcopilot/reports/{YYYY-MM-DD}-{slug}.html. Create the directory with mkdir -p if missing.open <path> to view in their default browser.templates/, replace the placeholder data with real values from SQL, save the result.Before generating any HTML report, read references/html-output.md for color tokens, typography, the team-color table, the sortable-table snippet, and the list of anti-patterns to avoid.
Read these BEFORE answering questions in their domain:
| Doc | When to Read |
|-----|-------------|
| references/api.md | Understanding FPL API endpoints and data structure |
| references/analysis.md | Computing metrics (VAPM, projected points, FDR, momentum, etc.) |
| references/squad.md | Squad persistence, management, multi-squad, scoring rules |
| references/schema.sql | Understanding database tables and columns |
| references/html-output.md | Styling rules, color tokens, team colors, anti-patterns for HTML reports |
Squads are stored as markdown files in ~/.fplcopilot/squads/ — one file per squad. This enables multi-squad support (user's own team, friends' teams, draft plans).
Proactive persistence rules — the agent MUST follow these:
~/.fplcopilot/squads/. Ask for a name if unclear.~/.fplcopilot/squads/ for existing squad files first. List available squads if multiple exist.my-fpl-team.md, daves-team.md, wildcard-draft.md).Read references/squad.md for the full markdown format specification.
sync_metadata shows stale data (bootstrap > 6h, fixtures on match day > 2h), run the sync script first.~/.fplcopilot/squads/ before asking the user to re-share.-- Try exact web_name first, then partial, then full name
SELECT * FROM players WHERE web_name = 'Salah' COLLATE NOCASE;
SELECT * FROM players WHERE web_name LIKE '%salah%' COLLATE NOCASE;
SELECT * FROM players WHERE (first_name || ' ' || last_name) LIKE '%salah%' COLLATE NOCASE;
now_cost is in 0.1m units. 130 = £13.0m. Always display as £X.Xm.a=available, d=doubtful, i=injured, s=suspended, u=unavailable.sync.sh player <id> when the user asks about a specific player's match-by-match performance. Don't batch-fetch unless explicitly needed.templates/ — "plan gameweek" / "next gameweek team" → gameweek-report.html; "show/view my squad", formation, bench → squad-view.html; "compare transfer", out → in → transfer-comparison.html; "captain pick" with reasoning → captain-ranking.html; fixture run / FDR matrix → fixture-matrix.html — MUST produce the HTML file (saved to ~/.fplcopilot/reports/{YYYY-MM-DD}-{slug}.html) and report the path with an open <path> hint on macOS. Markdown is only for one-line / single-stat lookups, short reasoning, deadlines, price changes, or ≤3-row SQL results.tools
Design typography-driven video cover images using HTML/CSS + Chrome DevTools screenshot. Generates covers in all needed aspect ratios - 16:9 (YouTube), 16:10 (Bilibili), 9:16 and 3:4 (抖音/视频号 竖屏短视频) - with big readable text. Different from `cover-image` (AI hand-drawn aesthetic) - this is precise typography control via code. Use when user asks for "视频封面", "thumbnail", "做封面", "cover design", "缩略图", "横屏/竖屏封面", "抖音封面", "视频号封面".
data-ai
Produce slides-driven narration videos (口播视频) where each slide maps 1:1 to one voiceover section. Orchestrates a slides-generating skill (PPT, chosen from whatever is available) and `video-planner` (script + publishing materials) with a method-focused production workflow. Use when user wants to make a video that uses slides to explain a topic - e.g. 发布解读 / 产品评测 / 行业观察 / 技术解读 / 趋势分析. Triggers on "做一期视频 + PPT", "slides 视频", "发布解读视频", "深度讲解视频", or similar requests for structured narration videos.
development
Review one completed Claude Code session and propose a skill to create, update, or reuse so similar work goes faster next time. Use when the user asks to "mine a session for skills", "what skill can be created or updated from the session where I…", "extract a skill from this chat", or to review a past session for reusable workflows. Operates on exported session markdown from claude-session-manager. Not for exporting/converting sessions (use claude-session-manager) and not for writing blogs or TODOs from sessions.
tools
Manage local Codex session transcripts, including listing candidate sessions, exporting full or selected sessions to organized Markdown, inspecting archived sessions, and summarizing tool-call history. Use when the user asks to scan, parse, archive, inspect, recover, summarize, manage, or convert Codex sessions, `~/.codex/sessions` data, `~/.codex/archived_sessions` data, `.jsonl` transcripts, tool-call history, or hard-to-read Codex conversation logs.