{"id":"411a4c96-5fe1-46f8-ad66-a3980e474eea","entityType":"agent","slug":"clawhub-robbyczgw-cla-sports-ticker","name":"Sports Ticker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-robbyczgw-cla-sports-ticker","canonicalPath":"/agent/clawhub-robbyczgw-cla-sports-ticker","generatedAt":"2026-10-10T03:09:56.740Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Skill: Sports Ticker Owner: robbyczgw-cla Summary: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Tags: latest:3.0.6 Version history: v3.0.6 | 2026-02-15T19:29:26.374Z | user Security: validate ESPN API endpoint to prevent SSRF v3.0.5 | 2026-02-11T09:05:16.936Z | user Fix: SKILL.md metadata updated to openclaw forma","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 4.3K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn73gpe8xz2630jrknkb3ya96h7zb84h:sports-ticker","sourceUrl":"https://clawhub.ai/robbyczgw-cla/sports-ticker","homepage":"https://clawhub.ai/robbyczgw-cla/sports-ticker","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/robbyczgw-cla/sports-ticker","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":67,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Skill: Spo"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No protocol or capability metadata is available."},"protocols":[],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":0,"capabilityMatrix":{"rows":[],"flattenedTokens":""}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":4298,"packageName":null,"latestVersion":"3.0.6","tractionLabel":"4.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T17:31:02.516Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T17:31:02.516Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T17:31:02.516Z","lastVerifiedAt":null,"highlights":[{"version":"3.0.6","createdAt":"2026-02-15T19:29:26.374Z","changelog":"Security: validate ESPN API endpoint to prevent SSRF","fileCount":14,"zipByteSize":32953},{"version":"3.0.5","createdAt":"2026-02-11T09:05:16.936Z","changelog":"Fix: SKILL.md metadata updated to openclaw format.","fileCount":14,"zipByteSize":32361},{"version":"3.0.4","createdAt":"2026-02-11T08:49:10.319Z","changelog":"Security: removed subprocess.run, output JSON for platform cron tool instead","fileCount":null,"zipByteSize":null},{"version":"3.0.3","createdAt":"2026-02-04T23:04:02.436Z","changelog":"- Bumped version to 3.0.3. - Added CHANGELOG.md file. - Minor updates to package files for consistency.","fileCount":null,"zipByteSize":null},{"version":"3.0.2","createdAt":"2026-02-03T17:18:00.175Z","changelog":"Add ClawHub runtime requirements metadata (SKILL.md frontmatter)","fileCount":null,"zipByteSize":null},{"version":"3.0.1","createdAt":"2026-02-03T16:58:30.767Z","changelog":"Add runtime requirements metadata for ClawHub discovery","fileCount":null,"zipByteSize":null},{"version":"3.0.0","createdAt":"2026-02-02T14:40:56.989Z","changelog":"Major update with new schedule and automation tools: - Added scripts/schedule.py: View upcoming fixtures and schedules for tracked teams. - Added scripts/auto_setup_crons.py: Auto-generate match-day cron jobs for alerts. - Expanded commands in docs for schedule viewing and cron automation. - Updated documentation for new features and usage instructions. - Improved package and script handling for enhanced team tracking and automation.","fileCount":null,"zipByteSize":null},{"version":"2.2.0","createdAt":"2026-01-31T23:02:53.544Z","changelog":"Major update: Adds interactive onboarding and improved setup. - New interactive setup wizard guides users through initial configuration (sports, teams, alert style, reminders, quiet hours). - Running the setup script without a config launches the onboarding wizard for first-time users. - Users can re-run the onboarding with a new `--force` option to overwrite existing config. - README and documentation updated to highlight easier first-time use and onboarding process.","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn73gpe8xz2630jrknkb3ya96h7zb84h:sports-ticker","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":[]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T03:09:56.739Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-robbyczgw-cla-sports-ticker/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Sports Ticker\n\nOwner: robbyczgw-cla\n\nSummary: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide.\n\nTags: latest:3.0.6\n\nVersion history:\n\nv3.0.6 | 2026-02-15T19:29:26.374Z | user\n\nSecurity: validate ESPN API endpoint to prevent SSRF\n\nv3.0.5 | 2026-02-11T09:05:16.936Z | user\n\nFix: SKILL.md metadata updated to openclaw format.\n\nv3.0.4 | 2026-02-11T08:49:10.319Z | user\n\nSecurity: removed subprocess.run, output JSON for platform cron tool instead\n\nv3.0.3 | 2026-02-04T23:04:02.436Z | auto\n\n- Bumped version to 3.0.3.\n- Added CHANGELOG.md file.\n- Minor updates to package files for consistency.\n\nv3.0.2 | 2026-02-03T17:18:00.175Z | user\n\nAdd ClawHub runtime requirements metadata (SKILL.md frontmatter)\n\nv3.0.1 | 2026-02-03T16:58:30.767Z | user\n\nAdd runtime requirements metadata for ClawHub discovery\n\nv3.0.0 | 2026-02-02T14:40:56.989Z | auto\n\nMajor update with new schedule and automation tools:\n\n- Added scripts/schedule.py: View upcoming fixtures and schedules for tracked teams.\n- Added scripts/auto_setup_crons.py: Auto-generate match-day cron jobs for alerts.\n- Expanded commands in docs for schedule viewing and cron automation.\n- Updated documentation for new features and usage instructions.\n- Improved package and script handling for enhanced team tracking and automation.\n\nv2.2.0 | 2026-01-31T23:02:53.544Z | auto\n\nMajor update: Adds interactive onboarding and improved setup.\n\n- New interactive setup wizard guides users through initial configuration (sports, teams, alert style, reminders, quiet hours).\n- Running the setup script without a config launches the onboarding wizard for first-time users.\n- Users can re-run the onboarding with a new `--force` option to overwrite existing config.\n- README and documentation updated to highlight easier first-time use and onboarding process.\n\nv2.1.5 | 2026-01-31T22:55:14.811Z | auto\n\n- Added example config for crontab in README for easier scheduled updates.\n- Updated usage instructions for espn.py to clarify supported commands.\n- Improved documentation for initial setup flow and config file creation.\n- Adjusted config.example.json to reflect latest options and structure.\n- Updated dependency versions in package.json for compatibility.\n\nv2.1.2 | 2026-01-25T08:56:41.753Z | user\n\nv2.1.2: Bug fixes - JSON error handling in config.py, safe score parsing in live_monitor.py\n\nv2.1.1 | 2026-01-25T08:35:51.444Z | user\n\nfix: bug fixes from Codex audit - error handling, safe parsing\n\nv2.1.0 | 2026-01-24T17:51:47.490Z | auto\n\n- Added scripts/setup_crons.py to assist with setting up cron jobs for live monitoring.\n- Updated README.md with documentation improvements.\n- Updated package.json for new script support and versioning.\n\nv2.0.4 | 2026-01-20T22:35:44.409Z | user\n\nUpdate author email to robbyczgw@gmail.com\n\nv2.0.3 | 2026-01-20T22:35:02.240Z | user\n\nUpdate author email\n\nv2.0.2 | 2026-01-20T22:12:48.261Z | user\n\nAdd package.json for proper ClawdHub metadata display\n\nv2.0.1 | 2026-01-20T20:07:47.635Z | user\n\nFix kickoff detection - ESPN returns 'First Half' not 'In Progress' for soccer matches\n\nv2.0.0 | 2026-01-20T13:00:50.282Z | user\n\nAdded multi-sport support (NFL, NBA, NHL, MLB, F1, and more)\n\nv1.1.3 | 2026-01-20T12:37:47.739Z | user\n\nMade README neutral for all fans\n\nv1.1.2 | 2026-01-20T12:37:11.118Z | user\n\nFixed outdated error messages, all tests passing\n\nv1.1.1 | 2026-01-20T12:32:33.832Z | user\n\nAdded documentation links and API resources section\n\nv1.1.0 | 2026-01-20T12:31:50.447Z | user\n\nMajor improvement: Search now finds ALL teams in any league. Added Austrian Bundesliga support.\n\nv1.0.2 | 2026-01-20T12:30:24.424Z | user\n\nFixed formatting, improved examples and documentation\n\nv1.0.1 | 2026-01-20T12:28:23.085Z | user\n\nAdded MIT license\n\nv1.0.0 | 2026-01-20T12:27:39.920Z | user\n\nInitial release: Live football alerts with FREE ESPN API. Goal scorers, cards, 30+ leagues supported.\n\nArchive index:\n\nArchive v3.0.6: 14 files, 32953 bytes\n\nFiles: CHANGELOG.md (807b), config.example.json (1213b), package.json (1180b), README.md (11848b), scripts/auto_setup_crons.py (9741b), scripts/config.py (3758b), scripts/espn.py (18643b), scripts/live_monitor.py (9305b), scripts/schedule.py (4838b), scripts/setup_crons.py (4044b), scripts/setup.py (26296b), scripts/ticker.py (3078b), SKILL.md (3541b), _meta.json (132b)\n\nFile v3.0.6:SKILL.md\n\n---\nname: sports-ticker\nversion: 3.0.6\ndescription: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"python3\"],\"note\":\"No API keys needed. Uses free ESPN API.\"}}}\n---\n\n# Sports Ticker\n\nTrack your favorite teams across **multiple sports** with **FREE live alerts**!\n\nSupports: ⚽ Soccer • 🏈 NFL • 🏀 NBA • 🏒 NHL • ⚾ MLB • 🏎 F1\n\n## First Run (Onboarding)\n\nWhen no `config.json` exists, running the setup script launches an interactive wizard:\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard asks:**\n1. 📺 **Which sports?** — Pick from Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Which teams?** — Choose from popular teams or search for any team\n3. 🔔 **Alert style?** — Live scores, final only, or daily digest\n4. ⏰ **Game-day reminders?** — Get a heads-up 30 mins before kick-off\n5. 🌙 **Quiet hours?** — Pause alerts while you sleep\n\nAfter setup, your `config.json` is ready and you can start tracking!\n\n**Re-run setup anytime:**\n```bash\npython3 scripts/setup.py --force  # Overwrites existing config\n```\n\n## Quick Start\n\n```bash\n# First time? Just run setup!\npython3 scripts/setup.py  # Interactive wizard\n\n# Find team IDs (any sport)\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n\n# Test\npython3 scripts/ticker.py\n```\n\n## Config Example\n\n```json\n{\n  \"teams\": [\n    {\n      \"name\": \"Barcelona\",\n      \"emoji\": \"🔵🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"83\",\n      \"espn_leagues\": [\"esp.1\", \"uefa.champions\"]\n    },\n    {\n      \"name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"]\n    }\n  ]\n}\n```\n\n## Commands\n\n```bash\n# Ticker for all teams\npython3 scripts/ticker.py\n\n# Live monitor (for cron)\npython3 scripts/live_monitor.py\n\n# League scoreboard\npython3 scripts/ticker.py league nba basketball\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league eng.1 soccer\n\n# 📅 Schedule - View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                    # All teams, next 14 days\npython3 scripts/schedule.py --days 30          # Look further ahead\npython3 scripts/schedule.py --team spurs       # Specific team\npython3 scripts/schedule.py --compact          # One-liner format\npython3 scripts/schedule.py --json             # JSON output\n\n# 🤖 Auto Setup Crons - Generate match-day crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py            # All teams, next 7 days\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json     # Machine-readable\npython3 scripts/auto_setup_crons.py --commands # OpenClaw CLI commands\n\n# ESPN direct\npython3 scripts/espn.py leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Chiefs\" football\n```\n\n## Alert Types\n\n- 🏟 Game start (kick-off / tip-off)\n- ⚽🏈🏀⚾ Scoring plays (goals, touchdowns, 3-pointers, home runs)\n- 🟥 Red cards / Ejections\n- ⏸ Halftime / Period breaks\n- 🏁 Final results (WIN/LOSS/DRAW)\n\n## ESPN API (Free!)\n\nNo key needed. Covers all major sports and 50+ leagues worldwide.\n\n**Supported Sports:**\n- Soccer: Premier League, La Liga, Champions League, MLS, and 30+ more\n- Football: NFL\n- Basketball: NBA, WNBA, NCAA\n- Hockey: NHL\n- Baseball: MLB\n- Racing: Formula 1\n\nFile v3.0.6:README.md\n\n# 🏆 Sports Ticker\n\n**Live sports alerts with scoring updates and real-time stats — completely FREE!**\n\nTrack soccer, football, basketball, hockey, baseball, F1, and more!\n\nBuilt for [OpenClaw](https://openclaw.com) but works standalone too.\n\n## ✨ Features\n\n- 🎯 **Multi-sport support** — Soccer, NFL, NBA, NHL, MLB, F1, and more!\n- ⚽ **Live scoring alerts** with player names and times\n- 🟥 **Key events** — cards, touchdowns, home runs, goals\n- ⏸ **Period updates** — Halftime, quarters, intermissions\n- 🏁 **Final results** with WIN/LOSS/DRAW\n- 📊 **Multi-team support** — track as many teams as you want\n- 📅 **Schedule/Fixtures** — view upcoming matches for next 30 days (NEW in v3!)\n- 🤖 **Auto-cron generation** — never miss a match, set up alerts automatically (NEW in v3!)\n- 🔄 **Auto-scheduling** — cron jobs for match days (OpenClaw)\n- 💰 **100% FREE** — no API keys, no subscriptions!\n\n## 🎯 The Secret Sauce: ESPN API\n\nThis skill uses ESPN's public API which provides:\n- Real-time scores across multiple sports\n- Scoring plays with player names and timestamps\n- Game events (touchdowns, goals, home runs, etc.)\n- Match/game statistics\n\n**No API key required!** ESPN's API is open and free to use.\n\n### Supported Sports & Leagues\n\n**⚽ Soccer/Football**\n- Premier League (`eng.1`), La Liga (`esp.1`), Bundesliga (`ger.1`), Serie A (`ita.1`)\n- Champions League (`uefa.champions`), Europa League (`uefa.europa`)\n- MLS (`usa.1`), Liga MX (`mex.1`), and 20+ more\n\n**🏈 American Football**\n- NFL (`nfl`)\n\n**🏀 Basketball**\n- NBA (`nba`), WNBA (`wnba`), NCAA (`mens-college-basketball`)\n\n**🏒 Hockey**\n- NHL (`nhl`)\n\n**⚾ Baseball**\n- MLB (`mlb`)\n\n**🏎 Racing**\n- Formula 1 (`f1`)\n\n## 🚀 Quick Start\n\n### 1. Install\n\n```bash\n# Clone or copy to your skills directory\nclawhub install sports-ticker\n\n# Or manually\ngit clone https://github.com/your-repo/sports-ticker\ncd sports-ticker\n```\n\n### 2. Run the Setup Wizard 🧙♂\n\nFirst time? The interactive wizard makes setup a breeze!\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard walks you through:**\n1. 📺 **Pick your sports** — Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Choose your teams** — Popular picks or search any team\n3. 🔔 **Set alert style** — Live scores / Final only / Daily digest\n4. ⏰ **Game-day reminders** — Get notified 30 mins before kick-off\n5. 🌙 **Quiet hours** — No alerts while you sleep\n\n**Example:**\n```\n╔═══════════════════════════════════════════════════════╗\n║   🏆  SPORTS TICKER  🏆                               ║\n║   ⚽ 🏈 🏀 🏒 ⚾ 🏎                                    ║\n║   Never miss a goal, touchdown, or checkered flag!   ║\n╚═══════════════════════════════════════════════════════╝\n```\n\n### 3. Or Configure Manually\n\n```bash\n# Find team IDs directly\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n```\n\nCommon team IDs for reference:\n\n**Soccer:**\n- Tottenham: 367, Arsenal: 359, Liverpool: 364, Man City: 382, Man United: 360\n- Barcelona: 83, Real Madrid: 86, Bayern: 132, PSG: 160, Juventus: 111\n\n**American Sports:**\n- Lakers: 13, Warriors: 9, Celtics: 2 (NBA)\n- Chiefs: 12, 49ers: 25, Cowboys: 6 (NFL)\n- Maple Leafs: 10, Oilers: 22, Rangers: 4 (NHL)\n- Yankees: 10, Dodgers: 19, Red Sox: 2 (MLB)\n\n### 3. Create config.json\n\n```bash\ncp config.example.json config.json\n```\n\nEdit `config.json`:\n```json\n{\n  \"teams\": [\n    {\n      \"name\": \"Liverpool\",\n      \"short_name\": \"Liverpool\",\n      \"emoji\": \"🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"364\",\n      \"espn_leagues\": [\"eng.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Los Angeles Lakers\",\n      \"short_name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Kansas City Chiefs\",\n      \"short_name\": \"Chiefs\",\n      \"emoji\": \"🏈\",\n      \"sport\": \"football\",\n      \"espn_id\": \"12\",\n      \"espn_leagues\": [\"nfl\"],\n      \"enabled\": true\n    }\n  ],\n  \"alerts\": {\n    \"goals\": true,\n    \"red_cards\": true,\n    \"halftime\": true,\n    \"fulltime\": true,\n    \"kickoff\": true\n  }\n}\n```\n\n### 4. Test It\n\n```bash\n# Show ticker for your teams\npython3 scripts/ticker.py\n\n# Check live matches\npython3 scripts/live_monitor.py --verbose\n\n# View a specific league\npython3 scripts/ticker.py league eng.1 soccer\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league nba basketball\n\n# 📅 View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                      # All teams, 14 days\npython3 scripts/schedule.py --team spurs --days 30\npython3 scripts/schedule.py --json               # JSON output\n\n# 🤖 Auto-generate match crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json       # JSON output for agent to process\n\n# ESPN API commands\npython3 scripts/espn.py leagues           # List all sports/leagues\npython3 scripts/espn.py leagues soccer    # List soccer leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Lakers\" basketball\n```\n\n## 📱 Example Alerts\n\n**⚽ Soccer Goal:**\n```\n🎉 GOAL! 23'\n⚽ Marcus Rashford (Manchester United)\nManchester United 1-0 Liverpool\n```\n\n**🏈 NFL Touchdown:**\n```\n🎉 TOUCHDOWN! Q2 3:42\n🏈 Patrick Mahomes (Kansas City Chiefs)\nChiefs 14-7 Bills\n```\n\n**🏀 NBA 3-Pointer:**\n```\n🎉 3-POINTER! Q3 8:15\n🎯 LeBron James (Los Angeles Lakers)\nLakers 78-72 Warriors\n```\n\n**🏒 NHL Goal:**\n```\n🎉 GOAL! P2 12:34\n🏒 Connor McDavid (Edmonton Oilers)\nOilers 3-2 Maple Leafs\n```\n\n**Final Score:**\n```\n🏁 FINAL - WIN! 🎉✅ 🏈\nKansas City Chiefs 31-24 Buffalo Bills\n```\n\n## 🤖 OpenClaw Integration\n\n### Automatic Cron Setup\n\nThe easiest way to set up match-day alerts is with the setup script:\n\n```bash\n# Generate cron job configurations (outputs JSON for agent to use)\npython3 scripts/setup_crons.py <telegram_id> <timezone>\n\n# Example\npython3 scripts/setup_crons.py 123456789 \"Europe/London\"\npython3 scripts/setup_crons.py 123456789 \"America/New_York\"\n\n# Just view the example cron configs\npython3 scripts/setup_crons.py --list\n```\n\n> **Note (v3.0.5):** The script outputs JSON configurations that the agent uses with the OpenClaw cron tool. It does NOT create crons directly — the agent handles that via platform tools.\n\nThis generates 3 cron job configs:\n\n| Cron Job | Schedule | Purpose |\n|----------|----------|---------|\n| `football-match-check` | Daily 9 AM | Checks if your teams play today |\n| `spurs-live-ticker` | Every 2 mins (disabled) | Live updates during matches |\n| `spurs-reminder` | Dynamic (disabled) | 30-min pre-match reminder |\n\n### How Auto-Scheduling Works\n\n1. **Morning check** — `football-match-check` runs at 9 AM daily\n2. **Match found?** — If any team plays today, it:\n   - Updates `spurs-live-ticker` to start 5 mins before kickoff\n   - Sets `spurs-reminder` for 30 mins before kickoff\n   - Enables both crons\n3. **During match** — `spurs-live-ticker` runs every 2 mins, sending goals/cards/events\n4. **No match?** — Both crons stay disabled (no spam!)\n\n### Manual Cron Setup\n\nIf you prefer manual setup, here are the cron expressions:\n\n```bash\n# Daily match check at 9 AM\n0 9 * * *    # football-match-check\n\n# Live ticker every 2 minutes (enable only during matches)\n*/2 * * * *  # spurs-live-ticker\n\n# Pre-match reminder (set to 30 mins before kickoff)\n30 14 * * *  # spurs-reminder (example: 2:30 PM for 3 PM kickoff)\n```\n\n### Cron Payload Examples\n\n**Match Check (daily):**\n```json\n{\n  \"message\": \"Check if any configured teams play today. If a match is found, update spurs-live-ticker to start 5 mins before kickoff and run for 3 hours. Enable spurs-reminder for 30 mins before kickoff.\"\n}\n```\n\n**Live Ticker (during matches):**\n```json\n{\n  \"message\": \"Run python3 scripts/live_monitor.py and send any new events (goals, cards, halftime, fulltime). Only message if there are updates.\"\n}\n```\n\n### Live Monitor Script\n\nDuring matches, run every 2 minutes:\n```bash\npython3 scripts/live_monitor.py\n```\n\nThe script only outputs when there are new events (goals, cards, etc.), making it perfect for cron-based alerting.\n\n## 🔧 Scripts Reference\n\n| Script | Purpose |\n|--------|---------|\n| `ticker.py` | Show current status of your teams |\n| `live_monitor.py` | Check for live updates (for cron) |\n| `schedule.py` | 📅 View upcoming fixtures (v3) |\n| `auto_setup_crons.py` | 🤖 Generate match crons (v3) |\n| `espn.py` | Direct ESPN API access |\n| `setup.py` | Interactive setup wizard |\n| `config.py` | Configuration management |\n\n## 📅 Schedule & Auto-Crons (v3 Feature)\n\n### The Problem (v2)\nThe old scoreboard-only approach meant:\n- Only TODAY's matches were visible\n- If your daily cron didn't run, you'd miss matches\n- No advance notice of upcoming fixtures\n\n### The Solution (v3)\n**Schedule API** scans future dates to find your team's fixtures:\n\n```bash\n# See what's coming up\npython3 scripts/schedule.py --team spurs --days 30\n\n# Output:\n# 🐓 Tottenham Hotspur - Upcoming Fixtures\n# 📅 Sat 07 Feb 12:30 UTC | @ Man United (Premier League)\n#    📍 Old Trafford\n# 📅 Tue 10 Feb 19:30 UTC | vs Newcastle (Premier League)\n#    📍 Tottenham Hotspur Stadium\n```\n\n**Auto-Cron Generator** creates match-day cron job configs:\n\n```bash\npython3 scripts/auto_setup_crons.py --team spurs --days 14\n\n# Outputs JSON configs for:\n# ✅ spurs-reminder-2026-02-07 (30 mins before kickoff)\n# ✅ spurs-ticker-start-2026-02-07 (starts monitoring)\n# ⏸ spurs-ticker-2026-02-07 (every 2 mins during match)\n```\n\n> **Note (v3.0.5):** The script outputs JSON configurations instead of CLI commands. The agent processes these JSON configs and creates crons via the OpenClaw cron tool.\n\n### Workflow\n1. Run `schedule.py` weekly to see upcoming fixtures\n2. Run `auto_setup_crons.py` to generate cron configs (JSON output)\n3. Agent processes the JSON and creates crons via OpenClaw\n4. Never miss a match again! 🎉\n\n## 🌐 ESPN API Reference\n\nBase URL: `https://site.api.espn.com/apis/site/v2/sports`\n\n### Endpoints\n\n```bash\n# Scoreboard (all today's games)\n/{sport}/{league}/scoreboard\n\n# Game details with events\n/{sport}/{league}/summary?event={event_id}\n\n# Team info\n/{sport}/{league}/teams/{team_id}\n```\n\n### Sport & League Codes\n\n**Soccer:** `soccer/eng.1`, `soccer/esp.1`, `soccer/uefa.champions`\n**Football:** `football/nfl`\n**Basketball:** `basketball/nba`, `basketball/wnba`\n**Hockey:** `hockey/nhl`\n**Baseball:** `baseball/mlb`\n**Racing:** `racing/f1`\n\n## 📄 License\n\nMIT — use it however you want!\n\n## 📚 ESPN API Resources\n\n- [Public ESPN API Documentation](https://github.com/pseudo-r/Public-ESPN-API) — comprehensive endpoint list\n- [ESPN OpenAPI Spec](https://github.com/zuplo/espn-openapi) — formal OpenAPI/Swagger schema\n- [Interactive API Explorer](https://zudoku.dev/demo?api-url=https://raw.githubusercontent.com/zuplo/espn-openapi/refs/heads/main/espn_openapi_soccer_league_path.yaml) — try endpoints in browser\n- [Zuplo Guide](https://zuplo.com/learning-center/espn-hidden-api-guide) — overview & alternatives\n\n> ⚠ **Note:** ESPN's API is unofficial/undocumented. It's stable and widely used, but could change without notice. The skill handles errors gracefully.\n\n## 🙏 Credits\n\n- ESPN for their awesome (and free!) API\n- pseudo-r, zuplo, and the community for API documentation\n- Built with ❤ for football fans everywhere\n\n---\n\nHappy tracking! ⚽🏆\n\nFile v3.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn73gpe8xz2630jrknkb3ya96h7zb84h\",\n  \"slug\": \"sports-ticker\",\n  \"version\": \"3.0.6\",\n  \"publishedAt\": 1771183766374\n}\n\nFile v3.0.6:CHANGELOG.md\n\n# Changelog\n\n## [3.0.5] - 2026-02-11\n\n### Changed\n- **setup_crons.py:** No longer uses `subprocess.run` — outputs JSON configurations instead of executing commands directly\n- **auto_setup_crons.py:** Outputs JSON configs instead of CLI command strings\n- **Agent-Native Pattern:** Scripts now output structured JSON that the agent processes via the OpenClaw cron tool. This is safer and more aligned with OpenClaw's architecture.\n\n### Removed\n- `--commands` flag from auto_setup_crons.py (was outputting raw CLI commands)\n\n### Migration\nIf you were parsing CLI command output from these scripts, update to parse JSON instead. The JSON format includes full cron specifications ready for the OpenClaw cron API.\n\n## [3.0.3] - 2026-02-04\n\n- Privacy cleanup: removed hardcoded paths and personal info from docs\n\nFile v3.0.6:config.example.json\n\n{\n  \"teams\": [\n    {\n      \"name\": \"Tottenham Hotspur\",\n      \"short_name\": \"Spurs\",\n      \"emoji\": \"🐓\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"367\",\n      \"espn_leagues\": [\"eng.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Bayern Munich\",\n      \"short_name\": \"Bayern\",\n      \"emoji\": \"🔴⚪\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"132\",\n      \"espn_leagues\": [\"ger.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Los Angeles Lakers\",\n      \"short_name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"Kansas City Chiefs\",\n      \"short_name\": \"Chiefs\",\n      \"emoji\": \"🏈\",\n      \"sport\": \"football\",\n      \"espn_id\": \"12\",\n      \"espn_leagues\": [\"nfl\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"New York Rangers\",\n      \"short_name\": \"Rangers\",\n      \"emoji\": \"🏒\",\n      \"sport\": \"hockey\",\n      \"espn_id\": \"4\",\n      \"espn_leagues\": [\"nhl\"],\n      \"enabled\": false\n    }\n  ],\n  \"alerts\": {\n    \"goals\": true,\n    \"red_cards\": true,\n    \"halftime\": true,\n    \"fulltime\": true,\n    \"kickoff\": true\n  }\n}\n\nFile v3.0.6:package.json\n\n{\n  \"name\": \"@openclaw/sports-ticker\",\n  \"version\": \"3.0.5\",\n  \"description\": \"Live sports alerts with FREE ESPN API. Track soccer, football, basketball, hockey, baseball, F1 and more with real-time scoring, key events, and multi-team support. No API keys required!\",\n  \"keywords\": [\n    \"openclaw\",\n    \"skill\",\n    \"sports\",\n    \"football\",\n    \"soccer\",\n    \"basketball\",\n    \"hockey\",\n    \"baseball\",\n    \"f1\",\n    \"espn\",\n    \"live-scores\",\n    \"alerts\",\n    \"real-time\"\n  ],\n  \"author\": \"robbyczgw-cla\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/robbyczgw-cla/sports-ticker.git\"\n  },\n  \"homepage\": \"https://clawhub.ai/robbyczgw-cla/sports-ticker\",\n  \"bugs\": {\n    \"url\": \"https://github.com/robbyczgw-cla/sports-ticker/issues\"\n  },\n  \"openclaw\": {\n    \"skill\": true,\n    \"triggers\": [\"sports\", \"score\", \"match\", \"game\"],\n    \"capabilities\": [\n      \"live-alerts\",\n      \"multi-sport\",\n      \"real-time\"\n    ],\n    \"sports\": [\"soccer\", \"nfl\", \"nba\", \"nhl\", \"mlb\", \"f1\"],\n    \"requirements\": {\n      \"bins\": [\"python3\"],\n      \"env\": {}\n    }\n  },\n  \"files\": [\n    \"SKILL.md\",\n    \"README.md\",\n    \"scripts/\",\n    \"config/\"\n  ]\n}\n\nArchive v3.0.5: 14 files, 32361 bytes\n\nFiles: CHANGELOG.md (109b), config.example.json (1213b), package.json (1180b), README.md (11504b), scripts/auto_setup_crons.py (9741b), scripts/config.py (3758b), scripts/espn.py (18406b), scripts/live_monitor.py (9305b), scripts/schedule.py (4838b), scripts/setup_crons.py (4044b), scripts/setup.py (26296b), scripts/ticker.py (3078b), SKILL.md (3550b), _meta.json (132b)\n\nFile v3.0.5:SKILL.md\n\n---\nname: sports-ticker\nversion: 3.0.5\ndescription: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"python3\"],\"note\":\"No API keys needed. Uses free ESPN API.\"}}}\n---\n\n# Sports Ticker\n\nTrack your favorite teams across **multiple sports** with **FREE live alerts**!\n\nSupports: ⚽ Soccer • 🏈 NFL • 🏀 NBA • 🏒 NHL • ⚾ MLB • 🏎️ F1\n\n## First Run (Onboarding)\n\nWhen no `config.json` exists, running the setup script launches an interactive wizard:\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard asks:**\n1. 📺 **Which sports?** — Pick from Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Which teams?** — Choose from popular teams or search for any team\n3. 🔔 **Alert style?** — Live scores, final only, or daily digest\n4. ⏰ **Game-day reminders?** — Get a heads-up 30 mins before kick-off\n5. 🌙 **Quiet hours?** — Pause alerts while you sleep\n\nAfter setup, your `config.json` is ready and you can start tracking!\n\n**Re-run setup anytime:**\n```bash\npython3 scripts/setup.py --force  # Overwrites existing config\n```\n\n## Quick Start\n\n```bash\n# First time? Just run setup!\npython3 scripts/setup.py  # Interactive wizard\n\n# Find team IDs (any sport)\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n\n# Test\npython3 scripts/ticker.py\n```\n\n## Config Example\n\n```json\n{\n  \"teams\": [\n    {\n      \"name\": \"Barcelona\",\n      \"emoji\": \"🔵🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"83\",\n      \"espn_leagues\": [\"esp.1\", \"uefa.champions\"]\n    },\n    {\n      \"name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"]\n    }\n  ]\n}\n```\n\n## Commands\n\n```bash\n# Ticker for all teams\npython3 scripts/ticker.py\n\n# Live monitor (for cron)\npython3 scripts/live_monitor.py\n\n# League scoreboard\npython3 scripts/ticker.py league nba basketball\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league eng.1 soccer\n\n# 📅 Schedule - View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                    # All teams, next 14 days\npython3 scripts/schedule.py --days 30          # Look further ahead\npython3 scripts/schedule.py --team spurs       # Specific team\npython3 scripts/schedule.py --compact          # One-liner format\npython3 scripts/schedule.py --json             # JSON output\n\n# 🤖 Auto Setup Crons - Generate match-day crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py            # All teams, next 7 days\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json     # Machine-readable\npython3 scripts/auto_setup_crons.py --commands # OpenClaw CLI commands\n\n# ESPN direct\npython3 scripts/espn.py leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Chiefs\" football\n```\n\n## Alert Types\n\n- 🏟️ Game start (kick-off / tip-off)\n- ⚽🏈🏀⚾ Scoring plays (goals, touchdowns, 3-pointers, home runs)\n- 🟥 Red cards / Ejections\n- ⏸️ Halftime / Period breaks\n- 🏁 Final results (WIN/LOSS/DRAW)\n\n## ESPN API (Free!)\n\nNo key needed. Covers all major sports and 50+ leagues worldwide.\n\n**Supported Sports:**\n- Soccer: Premier League, La Liga, Champions League, MLS, and 30+ more\n- Football: NFL\n- Basketball: NBA, WNBA, NCAA\n- Hockey: NHL\n- Baseball: MLB\n- Racing: Formula 1\n\nFile v3.0.5:README.md\n\n# 🏆 Sports Ticker\n\n**Live sports alerts with scoring updates and real-time stats — completely FREE!**\n\nTrack soccer, football, basketball, hockey, baseball, F1, and more!\n\nBuilt for [OpenClaw](https://openclaw.com) but works standalone too.\n\n## ✨ Features\n\n- 🎯 **Multi-sport support** — Soccer, NFL, NBA, NHL, MLB, F1, and more!\n- ⚽ **Live scoring alerts** with player names and times\n- 🟥 **Key events** — cards, touchdowns, home runs, goals\n- ⏸️ **Period updates** — Halftime, quarters, intermissions\n- 🏁 **Final results** with WIN/LOSS/DRAW\n- 📊 **Multi-team support** — track as many teams as you want\n- 📅 **Schedule/Fixtures** — view upcoming matches for next 30 days (NEW in v3!)\n- 🤖 **Auto-cron generation** — never miss a match, set up alerts automatically (NEW in v3!)\n- 🔄 **Auto-scheduling** — cron jobs for match days (OpenClaw)\n- 💰 **100% FREE** — no API keys, no subscriptions!\n\n## 🎯 The Secret Sauce: ESPN API\n\nThis skill uses ESPN's public API which provides:\n- Real-time scores across multiple sports\n- Scoring plays with player names and timestamps\n- Game events (touchdowns, goals, home runs, etc.)\n- Match/game statistics\n\n**No API key required!** ESPN's API is open and free to use.\n\n### Supported Sports & Leagues\n\n**⚽ Soccer/Football**\n- Premier League (`eng.1`), La Liga (`esp.1`), Bundesliga (`ger.1`), Serie A (`ita.1`)\n- Champions League (`uefa.champions`), Europa League (`uefa.europa`)\n- MLS (`usa.1`), Liga MX (`mex.1`), and 20+ more\n\n**🏈 American Football**\n- NFL (`nfl`)\n\n**🏀 Basketball**\n- NBA (`nba`), WNBA (`wnba`), NCAA (`mens-college-basketball`)\n\n**🏒 Hockey**\n- NHL (`nhl`)\n\n**⚾ Baseball**\n- MLB (`mlb`)\n\n**🏎️ Racing**\n- Formula 1 (`f1`)\n\n## 🚀 Quick Start\n\n### 1. Install\n\n```bash\n# Clone or copy to your skills directory\nclawhub install sports-ticker\n\n# Or manually\ngit clone https://github.com/your-repo/sports-ticker\ncd sports-ticker\n```\n\n### 2. Run the Setup Wizard 🧙‍♂️\n\nFirst time? The interactive wizard makes setup a breeze!\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard walks you through:**\n1. 📺 **Pick your sports** — Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Choose your teams** — Popular picks or search any team\n3. 🔔 **Set alert style** — Live scores / Final only / Daily digest\n4. ⏰ **Game-day reminders** — Get notified 30 mins before kick-off\n5. 🌙 **Quiet hours** — No alerts while you sleep\n\n**Example:**\n```\n╔═══════════════════════════════════════════════════════╗\n║   🏆  SPORTS TICKER  🏆                               ║\n║   ⚽ 🏈 🏀 🏒 ⚾ 🏎️                                    ║\n║   Never miss a goal, touchdown, or checkered flag!   ║\n╚═══════════════════════════════════════════════════════╝\n```\n\n### 3. Or Configure Manually\n\n```bash\n# Find team IDs directly\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n```\n\nCommon team IDs for reference:\n\n**Soccer:**\n- Tottenham: 367, Arsenal: 359, Liverpool: 364, Man City: 382, Man United: 360\n- Barcelona: 83, Real Madrid: 86, Bayern: 132, PSG: 160, Juventus: 111\n\n**American Sports:**\n- Lakers: 13, Warriors: 9, Celtics: 2 (NBA)\n- Chiefs: 12, 49ers: 25, Cowboys: 6 (NFL)\n- Maple Leafs: 10, Oilers: 22, Rangers: 4 (NHL)\n- Yankees: 10, Dodgers: 19, Red Sox: 2 (MLB)\n\n### 3. Create config.json\n\n```bash\ncp config.example.json config.json\n```\n\nEdit `config.json`:\n```json\n{\n  \"teams\": [\n    {\n      \"name\": \"Liverpool\",\n      \"short_name\": \"Liverpool\",\n      \"emoji\": \"🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"364\",\n      \"espn_leagues\": [\"eng.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Los Angeles Lakers\",\n      \"short_name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Kansas City Chiefs\",\n      \"short_name\": \"Chiefs\",\n      \"emoji\": \"🏈\",\n      \"sport\": \"football\",\n      \"espn_id\": \"12\",\n      \"espn_leagues\": [\"nfl\"],\n      \"enabled\": true\n    }\n  ],\n  \"alerts\": {\n    \"goals\": true,\n    \"red_cards\": true,\n    \"halftime\": true,\n    \"fulltime\": true,\n    \"kickoff\": true\n  }\n}\n```\n\n### 4. Test It\n\n```bash\n# Show ticker for your teams\npython3 scripts/ticker.py\n\n# Check live matches\npython3 scripts/live_monitor.py --verbose\n\n# View a specific league\npython3 scripts/ticker.py league eng.1 soccer\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league nba basketball\n\n# 📅 View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                      # All teams, 14 days\npython3 scripts/schedule.py --team spurs --days 30\npython3 scripts/schedule.py --json               # JSON output\n\n# 🤖 Auto-generate match crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json       # For OpenClaw cron API\npython3 scripts/auto_setup_crons.py --commands   # CLI commands\n\n# ESPN API commands\npython3 scripts/espn.py leagues           # List all sports/leagues\npython3 scripts/espn.py leagues soccer    # List soccer leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Lakers\" basketball\n```\n\n## 📱 Example Alerts\n\n**⚽ Soccer Goal:**\n```\n🎉 GOAL! 23'\n⚽ Marcus Rashford (Manchester United)\nManchester United 1-0 Liverpool\n```\n\n**🏈 NFL Touchdown:**\n```\n🎉 TOUCHDOWN! Q2 3:42\n🏈 Patrick Mahomes (Kansas City Chiefs)\nChiefs 14-7 Bills\n```\n\n**🏀 NBA 3-Pointer:**\n```\n🎉 3-POINTER! Q3 8:15\n🎯 LeBron James (Los Angeles Lakers)\nLakers 78-72 Warriors\n```\n\n**🏒 NHL Goal:**\n```\n🎉 GOAL! P2 12:34\n🏒 Connor McDavid (Edmonton Oilers)\nOilers 3-2 Maple Leafs\n```\n\n**Final Score:**\n```\n🏁 FINAL - WIN! 🎉✅ 🏈\nKansas City Chiefs 31-24 Buffalo Bills\n```\n\n## 🤖 OpenClaw Integration\n\n### Automatic Cron Setup\n\nThe easiest way to set up match-day alerts is with the setup script:\n\n```bash\n# Run the setup script with your Telegram ID and timezone\npython3 scripts/setup_crons.py <telegram_id> <timezone>\n\n# Example\npython3 scripts/setup_crons.py 123456789 \"Europe/London\"\npython3 scripts/setup_crons.py 123456789 \"America/New_York\"\n\n# Just view the cron configs without creating\npython3 scripts/setup_crons.py --list\n```\n\nThis creates 3 cron jobs:\n\n| Cron Job | Schedule | Purpose |\n|----------|----------|---------|\n| `football-match-check` | Daily 9 AM | Checks if your teams play today |\n| `spurs-live-ticker` | Every 2 mins (disabled) | Live updates during matches |\n| `spurs-reminder` | Dynamic (disabled) | 30-min pre-match reminder |\n\n### How Auto-Scheduling Works\n\n1. **Morning check** — `football-match-check` runs at 9 AM daily\n2. **Match found?** — If any team plays today, it:\n   - Updates `spurs-live-ticker` to start 5 mins before kickoff\n   - Sets `spurs-reminder` for 30 mins before kickoff\n   - Enables both crons\n3. **During match** — `spurs-live-ticker` runs every 2 mins, sending goals/cards/events\n4. **No match?** — Both crons stay disabled (no spam!)\n\n### Manual Cron Setup\n\nIf you prefer manual setup, here are the cron expressions:\n\n```bash\n# Daily match check at 9 AM\n0 9 * * *    # football-match-check\n\n# Live ticker every 2 minutes (enable only during matches)\n*/2 * * * *  # spurs-live-ticker\n\n# Pre-match reminder (set to 30 mins before kickoff)\n30 14 * * *  # spurs-reminder (example: 2:30 PM for 3 PM kickoff)\n```\n\n### Cron Payload Examples\n\n**Match Check (daily):**\n```json\n{\n  \"message\": \"Check if any configured teams play today. If a match is found, update spurs-live-ticker to start 5 mins before kickoff and run for 3 hours. Enable spurs-reminder for 30 mins before kickoff.\"\n}\n```\n\n**Live Ticker (during matches):**\n```json\n{\n  \"message\": \"Run python3 scripts/live_monitor.py and send any new events (goals, cards, halftime, fulltime). Only message if there are updates.\"\n}\n```\n\n### Live Monitor Script\n\nDuring matches, run every 2 minutes:\n```bash\npython3 scripts/live_monitor.py\n```\n\nThe script only outputs when there are new events (goals, cards, etc.), making it perfect for cron-based alerting.\n\n## 🔧 Scripts Reference\n\n| Script | Purpose |\n|--------|---------|\n| `ticker.py` | Show current status of your teams |\n| `live_monitor.py` | Check for live updates (for cron) |\n| `schedule.py` | 📅 View upcoming fixtures (v3) |\n| `auto_setup_crons.py` | 🤖 Generate match crons (v3) |\n| `espn.py` | Direct ESPN API access |\n| `setup.py` | Interactive setup wizard |\n| `config.py` | Configuration management |\n\n## 📅 Schedule & Auto-Crons (v3 Feature)\n\n### The Problem (v2)\nThe old scoreboard-only approach meant:\n- Only TODAY's matches were visible\n- If your daily cron didn't run, you'd miss matches\n- No advance notice of upcoming fixtures\n\n### The Solution (v3)\n**Schedule API** scans future dates to find your team's fixtures:\n\n```bash\n# See what's coming up\npython3 scripts/schedule.py --team spurs --days 30\n\n# Output:\n# 🐓 Tottenham Hotspur - Upcoming Fixtures\n# 📅 Sat 07 Feb 12:30 UTC | @ Man United (Premier League)\n#    📍 Old Trafford\n# 📅 Tue 10 Feb 19:30 UTC | vs Newcastle (Premier League)\n#    📍 Tottenham Hotspur Stadium\n```\n\n**Auto-Cron Generator** creates match-day cron jobs:\n\n```bash\npython3 scripts/auto_setup_crons.py --team spurs --days 14\n\n# Generates:\n# ✅ spurs-reminder-2026-02-07 (30 mins before kickoff)\n# ✅ spurs-ticker-start-2026-02-07 (starts monitoring)\n# ⏸️ spurs-ticker-2026-02-07 (every 2 mins during match)\n```\n\n### Workflow\n1. Run `schedule.py` weekly to see upcoming fixtures\n2. Run `auto_setup_crons.py --json` to generate cron configs\n3. Feed the JSON to OpenClaw cron API\n4. Never miss a match again! 🎉\n\n## 🌐 ESPN API Reference\n\nBase URL: `https://site.api.espn.com/apis/site/v2/sports`\n\n### Endpoints\n\n```bash\n# Scoreboard (all today's games)\n/{sport}/{league}/scoreboard\n\n# Game details with events\n/{sport}/{league}/summary?event={event_id}\n\n# Team info\n/{sport}/{league}/teams/{team_id}\n```\n\n### Sport & League Codes\n\n**Soccer:** `soccer/eng.1`, `soccer/esp.1`, `soccer/uefa.champions`\n**Football:** `football/nfl`\n**Basketball:** `basketball/nba`, `basketball/wnba`\n**Hockey:** `hockey/nhl`\n**Baseball:** `baseball/mlb`\n**Racing:** `racing/f1`\n\n## 📄 License\n\nMIT — use it however you want!\n\n## 📚 ESPN API Resources\n\n- [Public ESPN API Documentation](https://github.com/pseudo-r/Public-ESPN-API) — comprehensive endpoint list\n- [ESPN OpenAPI Spec](https://github.com/zuplo/espn-openapi) — formal OpenAPI/Swagger schema\n- [Interactive API Explorer](https://zudoku.dev/demo?api-url=https://raw.githubusercontent.com/zuplo/espn-openapi/refs/heads/main/espn_openapi_soccer_league_path.yaml) — try endpoints in browser\n- [Zuplo Guide](https://zuplo.com/learning-center/espn-hidden-api-guide) — overview & alternatives\n\n> ⚠️ **Note:** ESPN's API is unofficial/undocumented. It's stable and widely used, but could change without notice. The skill handles errors gracefully.\n\n## 🙏 Credits\n\n- ESPN for their awesome (and free!) API\n- pseudo-r, zuplo, and the community for API documentation\n- Built with ❤️ for football fans everywhere\n\n---\n\nHappy tracking! ⚽🏆\n\nFile v3.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn73gpe8xz2630jrknkb3ya96h7zb84h\",\n  \"slug\": \"sports-ticker\",\n  \"version\": \"3.0.5\",\n  \"publishedAt\": 1770800716936\n}\n\nFile v3.0.5:CHANGELOG.md\n\n# Changelog\n\n## [3.0.3] - 2026-02-04\n\n- Privacy cleanup: removed hardcoded paths and personal info from docs\n\nFile v3.0.5:config.example.json\n\n{\n  \"teams\": [\n    {\n      \"name\": \"Tottenham Hotspur\",\n      \"short_name\": \"Spurs\",\n      \"emoji\": \"🐓\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"367\",\n      \"espn_leagues\": [\"eng.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Bayern Munich\",\n      \"short_name\": \"Bayern\",\n      \"emoji\": \"🔴⚪\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"132\",\n      \"espn_leagues\": [\"ger.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Los Angeles Lakers\",\n      \"short_name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"Kansas City Chiefs\",\n      \"short_name\": \"Chiefs\",\n      \"emoji\": \"🏈\",\n      \"sport\": \"football\",\n      \"espn_id\": \"12\",\n      \"espn_leagues\": [\"nfl\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"New York Rangers\",\n      \"short_name\": \"Rangers\",\n      \"emoji\": \"🏒\",\n      \"sport\": \"hockey\",\n      \"espn_id\": \"4\",\n      \"espn_leagues\": [\"nhl\"],\n      \"enabled\": false\n    }\n  ],\n  \"alerts\": {\n    \"goals\": true,\n    \"red_cards\": true,\n    \"halftime\": true,\n    \"fulltime\": true,\n    \"kickoff\": true\n  }\n}\n\nFile v3.0.5:package.json\n\n{\n  \"name\": \"@openclaw/sports-ticker\",\n  \"version\": \"3.0.5\",\n  \"description\": \"Live sports alerts with FREE ESPN API. Track soccer, football, basketball, hockey, baseball, F1 and more with real-time scoring, key events, and multi-team support. No API keys required!\",\n  \"keywords\": [\n    \"openclaw\",\n    \"skill\",\n    \"sports\",\n    \"football\",\n    \"soccer\",\n    \"basketball\",\n    \"hockey\",\n    \"baseball\",\n    \"f1\",\n    \"espn\",\n    \"live-scores\",\n    \"alerts\",\n    \"real-time\"\n  ],\n  \"author\": \"robbyczgw-cla\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/robbyczgw-cla/sports-ticker.git\"\n  },\n  \"homepage\": \"https://clawhub.ai/robbyczgw-cla/sports-ticker\",\n  \"bugs\": {\n    \"url\": \"https://github.com/robbyczgw-cla/sports-ticker/issues\"\n  },\n  \"openclaw\": {\n    \"skill\": true,\n    \"triggers\": [\"sports\", \"score\", \"match\", \"game\"],\n    \"capabilities\": [\n      \"live-alerts\",\n      \"multi-sport\",\n      \"real-time\"\n    ],\n    \"sports\": [\"soccer\", \"nfl\", \"nba\", \"nhl\", \"mlb\", \"f1\"],\n    \"requirements\": {\n      \"bins\": [\"python3\"],\n      \"env\": {}\n    }\n  },\n  \"files\": [\n    \"SKILL.md\",\n    \"README.md\",\n    \"scripts/\",\n    \"config/\"\n  ]\n}","readmeExcerpt":"Skill: Sports Ticker Owner: robbyczgw-cla Summary: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Tags: latest:3.0.6 Version history: v3.0.6 | 2026-02-15T19:29:26.374Z | user Security: validate ESPN API endpoint to prevent SSRF v3.0.5 | 2026-02-11T09:05:16.936Z | user Fix: SKILL.md metadata updated to openclaw forma","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/setup.py"},{"language":"bash","snippet":"python3 scripts/setup.py --force  # Overwrites existing config"},{"language":"bash","snippet":"# First time? Just run setup!\npython3 scripts/setup.py  # Interactive wizard\n\n# Find team IDs (any sport)\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n\n# Test\npython3 scripts/ticker.py"},{"language":"json","snippet":"{\n  \"teams\": [\n    {\n      \"name\": \"Barcelona\",\n      \"emoji\": \"🔵🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"83\",\n      \"espn_leagues\": [\"esp.1\", \"uefa.champions\"]\n    },\n    {\n      \"name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"]\n    }\n  ]\n}"},{"language":"bash","snippet":"# Ticker for all teams\npython3 scripts/ticker.py\n\n# Live monitor (for cron)\npython3 scripts/live_monitor.py\n\n# League scoreboard\npython3 scripts/ticker.py league nba basketball\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league eng.1 soccer\n\n# 📅 Schedule - View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                    # All teams, next 14 days\npython3 scripts/schedule.py --days 30          # Look further ahead\npython3 scripts/schedule.py --team spurs       # Specific team\npython3 scripts/schedule.py --compact          # One-liner format\npython3 scripts/schedule.py --json             # JSON output\n\n# 🤖 Auto Setup Crons - Generate match-day crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py            # All teams, next 7 days\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json     # Machine-readable\npython3 scripts/auto_setup_crons.py --commands # OpenClaw CLI commands\n\n# ESPN direct\npython3 scripts/espn.py leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Chiefs\" football"},{"language":"bash","snippet":"# Clone or copy to your skills directory\nclawhub install sports-ticker\n\n# Or manually\ngit clone https://github.com/your-repo/sports-ticker\ncd sports-ticker"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: sports-ticker\nversion: 3.0.6\ndescription: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"python3\"],\"note\":\"No API keys needed. Uses free ESPN API.\"}}}\n---\n\n# Sports Ticker\n\nTrack your favorite teams across **multiple sports** with **FREE live alerts**!\n\nSupports: ⚽ Soccer • 🏈 NFL • 🏀 NBA • 🏒 NHL • ⚾ MLB • 🏎 F1\n\n## First Run (Onboarding)\n\nWhen no `config.json` exists, running the setup script launches an interactive wizard:\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard asks:**\n1. 📺 **Which sports?** — Pick from Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Which teams?** — Choose from popular teams or search for any team\n3. 🔔 **Alert style?** — Live scores, final only, or daily digest\n4. ⏰ **Game-day reminders?** — Get a heads-up 30 mins before kick-off\n5. 🌙 **Quiet hours?** — Pause alerts while you sleep\n\nAfter setup, your `config.json` is ready and you can start tracking!\n\n**Re-run setup anytime:**\n```bash\npython3 scripts/setup.py --force  # Overwrites existing config\n```\n\n## Quick Start\n\n```bash\n# First time? Just run setup!\npython3 scripts/setup.py  # Interactive wizard\n\n# Find team IDs (any sport)\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n\n# Test\npython3 scripts/ticker.py\n```\n\n## Config Example\n\n```json\n{\n  \"teams\": [\n    {\n      \"name\": \"Barcelona\",\n      \"emoji\": \"🔵🔴\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"83\",\n      \"espn_leagues\": [\"esp.1\", \"uefa.champions\"]\n    },\n    {\n      \"name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"]\n    }\n  ]\n}\n```\n\n## Commands\n\n```bash\n# Ticker for all teams\npython3 scripts/ticker.py\n\n# Live monitor (for cron)\npython3 scripts/live_monitor.py\n\n# League scoreboard\npython3 scripts/ticker.py league nba basketball\npython3 scripts/ticker.py league nfl football\npython3 scripts/ticker.py league eng.1 soccer\n\n# 📅 Schedule - View upcoming fixtures (NEW in v3!)\npython3 scripts/schedule.py                    # All teams, next 14 days\npython3 scripts/schedule.py --days 30          # Look further ahead\npython3 scripts/schedule.py --team spurs       # Specific team\npython3 scripts/schedule.py --compact          # One-liner format\npython3 scripts/schedule.py --json             # JSON output\n\n# 🤖 Auto Setup Crons - Generate match-day crons (NEW in v3!)\npython3 scripts/auto_setup_crons.py            # All teams, next 7 days\npython3 scripts/auto_setup_crons.py --team spurs --days 14\npython3 scripts/auto_setup_crons.py --json     # Machine-readable\npython3 scripts/auto_setup_crons.py --commands # OpenClaw CLI commands\n\n# ESPN direct\npython3 scripts/espn.py leagues\npython3 scripts/espn.py scoreboard nba basketball\npython3 scripts/espn.py search \"Chiefs\" football\n```\n\n## Alert Types\n\n- \ud83c"},{"path":"README.md","content":"# 🏆 Sports Ticker\n\n**Live sports alerts with scoring updates and real-time stats — completely FREE!**\n\nTrack soccer, football, basketball, hockey, baseball, F1, and more!\n\nBuilt for [OpenClaw](https://openclaw.com) but works standalone too.\n\n## ✨ Features\n\n- 🎯 **Multi-sport support** — Soccer, NFL, NBA, NHL, MLB, F1, and more!\n- ⚽ **Live scoring alerts** with player names and times\n- 🟥 **Key events** — cards, touchdowns, home runs, goals\n- ⏸ **Period updates** — Halftime, quarters, intermissions\n- 🏁 **Final results** with WIN/LOSS/DRAW\n- 📊 **Multi-team support** — track as many teams as you want\n- 📅 **Schedule/Fixtures** — view upcoming matches for next 30 days (NEW in v3!)\n- 🤖 **Auto-cron generation** — never miss a match, set up alerts automatically (NEW in v3!)\n- 🔄 **Auto-scheduling** — cron jobs for match days (OpenClaw)\n- 💰 **100% FREE** — no API keys, no subscriptions!\n\n## 🎯 The Secret Sauce: ESPN API\n\nThis skill uses ESPN's public API which provides:\n- Real-time scores across multiple sports\n- Scoring plays with player names and timestamps\n- Game events (touchdowns, goals, home runs, etc.)\n- Match/game statistics\n\n**No API key required!** ESPN's API is open and free to use.\n\n### Supported Sports & Leagues\n\n**⚽ Soccer/Football**\n- Premier League (`eng.1`), La Liga (`esp.1`), Bundesliga (`ger.1`), Serie A (`ita.1`)\n- Champions League (`uefa.champions`), Europa League (`uefa.europa`)\n- MLS (`usa.1`), Liga MX (`mex.1`), and 20+ more\n\n**🏈 American Football**\n- NFL (`nfl`)\n\n**🏀 Basketball**\n- NBA (`nba`), WNBA (`wnba`), NCAA (`mens-college-basketball`)\n\n**🏒 Hockey**\n- NHL (`nhl`)\n\n**⚾ Baseball**\n- MLB (`mlb`)\n\n**🏎 Racing**\n- Formula 1 (`f1`)\n\n## 🚀 Quick Start\n\n### 1. Install\n\n```bash\n# Clone or copy to your skills directory\nclawhub install sports-ticker\n\n# Or manually\ngit clone https://github.com/your-repo/sports-ticker\ncd sports-ticker\n```\n\n### 2. Run the Setup Wizard 🧙♂\n\nFirst time? The interactive wizard makes setup a breeze!\n\n```bash\npython3 scripts/setup.py\n```\n\n**The wizard walks you through:**\n1. 📺 **Pick your sports** — Soccer, NFL, NBA, NHL, MLB, F1\n2. 🏆 **Choose your teams** — Popular picks or search any team\n3. 🔔 **Set alert style** — Live scores / Final only / Daily digest\n4. ⏰ **Game-day reminders** — Get notified 30 mins before kick-off\n5. 🌙 **Quiet hours** — No alerts while you sleep\n\n**Example:**\n```\n╔═══════════════════════════════════════════════════════╗\n║   🏆  SPORTS TICKER  🏆                               ║\n║   ⚽ 🏈 🏀 🏒 ⚾ 🏎                                    ║\n║   Never miss a goal, touchdown, or checkered flag!   ║\n╚═══════════════════════════════════════════════════════╝\n```\n\n### 3. Or Configure Manually\n\n```bash\n# Find team IDs directly\npython3 scripts/setup.py find \"Lakers\" basketball\npython3 scripts/setup.py find \"Chiefs\" football\npython3 scripts/setup.py find \"Barcelona\" soccer\n```\n\nCommon team IDs for reference:\n\n**Soccer:**\n- Tottenham: 367, Arsenal: 359, Liverpool: 364, Man City: 382, Man Un"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn73gpe8xz2630jrknkb3ya96h7zb84h\",\n  \"slug\": \"sports-ticker\",\n  \"version\": \"3.0.6\",\n  \"publishedAt\": 1771183766374\n}"},{"path":"CHANGELOG.md","content":"# Changelog\n\n## [3.0.5] - 2026-02-11\n\n### Changed\n- **setup_crons.py:** No longer uses `subprocess.run` — outputs JSON configurations instead of executing commands directly\n- **auto_setup_crons.py:** Outputs JSON configs instead of CLI command strings\n- **Agent-Native Pattern:** Scripts now output structured JSON that the agent processes via the OpenClaw cron tool. This is safer and more aligned with OpenClaw's architecture.\n\n### Removed\n- `--commands` flag from auto_setup_crons.py (was outputting raw CLI commands)\n\n### Migration\nIf you were parsing CLI command output from these scripts, update to parse JSON instead. The JSON format includes full cron specifications ready for the OpenClaw cron API.\n\n## [3.0.3] - 2026-02-04\n\n- Privacy cleanup: removed hardcoded paths and personal info from docs"},{"path":"config.example.json","content":"{\n  \"teams\": [\n    {\n      \"name\": \"Tottenham Hotspur\",\n      \"short_name\": \"Spurs\",\n      \"emoji\": \"🐓\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"367\",\n      \"espn_leagues\": [\"eng.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Bayern Munich\",\n      \"short_name\": \"Bayern\",\n      \"emoji\": \"🔴⚪\",\n      \"sport\": \"soccer\",\n      \"espn_id\": \"132\",\n      \"espn_leagues\": [\"ger.1\", \"uefa.champions\"],\n      \"enabled\": true\n    },\n    {\n      \"name\": \"Los Angeles Lakers\",\n      \"short_name\": \"Lakers\",\n      \"emoji\": \"🏀💜💛\",\n      \"sport\": \"basketball\",\n      \"espn_id\": \"13\",\n      \"espn_leagues\": [\"nba\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"Kansas City Chiefs\",\n      \"short_name\": \"Chiefs\",\n      \"emoji\": \"🏈\",\n      \"sport\": \"football\",\n      \"espn_id\": \"12\",\n      \"espn_leagues\": [\"nfl\"],\n      \"enabled\": false\n    },\n    {\n      \"name\": \"New York Rangers\",\n      \"short_name\": \"Rangers\",\n      \"emoji\": \"🏒\",\n      \"sport\": \"hockey\",\n      \"espn_id\": \"4\",\n      \"espn_leagues\": [\"nhl\"],\n      \"enabled\": false\n    }\n  ],\n  \"alerts\": {\n    \"goals\": true,\n    \"red_cards\": true,\n    \"halftime\": true,\n    \"fulltime\": true,\n    \"kickoff\": true\n  }\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Skill: Sports Ticker Owner: robbyczgw-cla Summary: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. Tags: latest:3.0.6 Version history: v3.0.6 | 2026-02-15T19:29:26.374Z | user Security: validate ESPN API endpoint to prevent SSRF v3.0.5 | 2026-02-11T09:05:16.936Z | user Fix: SKILL.md metadata updated to openclaw forma","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1285,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"agent-directory","verified":false,"confidence":"low","updatedAt":"2026-10-10T03:09:56.740Z","emptyReason":"No close protocol neighbors were found."},"items":[],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[]}}}