{"id":"403ecd68-7a50-43ab-9b13-b9293a62dd34","entityType":"agent","slug":"clawhub-geison-paitra-football-tracker","name":"Football Tracker Match & News AI","canonicalUrl":"https://www.xpersona.co/agent/clawhub-geison-paitra-football-tracker","canonicalPath":"/agent/clawhub-geison-paitra-football-tracker","generatedAt":"2026-10-11T03:56:42.855Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:06:23.894Z","emptyReason":null},"description":"Football teams, World Cup 2026, and recent news","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1786ny5crksdr4jgc79beyzf1870ghp:football-tracker","sourceUrl":"https://clawhub.ai/geison-paitra/football-tracker","homepage":"https://clawhub.ai/geison-paitra/skills/football-tracker","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/geison-paitra/football-tracker","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/geison-paitra/skills/football-tracker","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Football Tracker Match & News AI technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:06:23.894Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:06:23.894Z","emptyReason":null},"stars":null,"forks":null,"downloads":1224,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:06:23.825Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T00:06:23.894Z","lastCrawledAt":"2026-10-11T00:06:23.825Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T00:06:23.825Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-05-28T19:14:51.915Z","changelog":"FIFA World Cup 2026 support and data improvements. - Added full internal coverage for all FIFA World Cup 2026 matches, venues, and group tables (no API key required for national teams). - National teams from World Cup 2026 can be tracked by name only, with localized output for pt-BR. - Next match blocks now include venue (with 🏟️) when available. - World Cup schedules, standings, and knockout rounds are handled internally using new data files. - Lookup and output logic updated to prioritize World Cup teams and enhanced summary structure. - Removed obsolete documentation file (skill-card.md).","fileCount":19,"zipByteSize":28623},{"version":"1.1.3","createdAt":"2026-05-20T10:12:30.778Z","changelog":"football-tracker 1.1.3 - Improved first-use flow: now clearly asks for an API key and handles setup internally. - Kickoff timestamps now always include the weekday. - News filtering improved: excludes non-football topics like base teams, futsal, rowing, basketball, and women's sections. - Messaging and setup instructions made clearer; fallback compatibility for old API key format is still supported silently. - Teams from Premier League and Brazilian League are alredy in the database by default - General bug fixes and discovery enhancements.","fileCount":16,"zipByteSize":16339},{"version":"1.1.2","createdAt":"2026-05-19T21:23:17.432Z","changelog":"football-tracker 1.1.2 - News results now filter out previews, lineups, kickoff-time posts, and where-to-watch articles. - A localized beta notice and current version are appended to every result. - Additional notes document bug fixes and discovery improvements in this release.","fileCount":15,"zipByteSize":11854},{"version":"1.1.1","createdAt":"2026-05-19T20:37:21.995Z","changelog":"- Major refactor with a new bilingual system and expanded output details. - English and Portuguese localizations are now supported via language packs. - Added kickoff time (with timezone), next match broadcasters, and improved output formatting. - Removed most old code, configs, and service files in favor of a new structure. - Usage and output instructions have been updated and clarified in the documentation.","fileCount":15,"zipByteSize":10498},{"version":"1.1.0","createdAt":"2026-05-19T20:17:26.940Z","changelog":"Initial release with core football tracking features: - Track multiple football teams and receive emoji-formatted summaries. - Returns last match, next match, league standing, and latest news for each team. - Integrates with football-data.org via API key. - Includes internal caching, team resolution, and news aggregation functionality. - No extra Python packages required.","fileCount":null,"zipByteSize":null},{"version":"1.0.0","createdAt":"2026-05-19T17:37:39.285Z","changelog":"Initial release of Football Tracker AI. - Permite acompanhar informações sobre qualquer time de futebol do mundo. - Exibe último jogo, próxima partida, campeonato, posição na tabela, fase da competição e últimas notícias. - Fácil de usar: basta informar o time para obter as novidades.","fileCount":13,"zipByteSize":7211}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1786ny5crksdr4jgc79beyzf1870ghp:football-tracker","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1786ny5crksdr4jgc79beyzf1870ghp:football-tracker` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/geison-paitra/football-tracker before using production credentials."],"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-geison-paitra-football-tracker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T03:56:42.854Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-geison-paitra-football-tracker/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":"medium","updatedAt":"2026-10-11T00:06:23.894Z","emptyReason":null},"readme":"Skill: Football Tracker Match & News AI\n\nOwner: geison-paitra\n\nSummary: Football teams, World Cup 2026, and recent news\n\nTags: latest:1.2.0\n\nVersion history:\n\nv1.2.0 | 2026-05-28T19:14:51.915Z | user\n\nFIFA World Cup 2026 support and data improvements.\n\n- Added full internal coverage for all FIFA World Cup 2026 matches, venues, and group tables (no API key required for national teams).\n- National teams from World Cup 2026 can be tracked by name only, with localized output for pt-BR.\n- Next match blocks now include venue (with 🏟️) when available.\n- World Cup schedules, standings, and knockout rounds are handled internally using new data files.\n- Lookup and output logic updated to prioritize World Cup teams and enhanced summary structure.\n- Removed obsolete documentation file (skill-card.md).\n\nv1.1.3 | 2026-05-20T10:12:30.778Z | user\n\nfootball-tracker 1.1.3\n\n- Improved first-use flow: now clearly asks for an API key and handles setup internally.\n- Kickoff timestamps now always include the weekday.\n- News filtering improved: excludes non-football topics like base teams, futsal, rowing, basketball, and women's sections.\n- Messaging and setup instructions made clearer; fallback compatibility for old API key format is still supported silently.\n- Teams from Premier League and Brazilian League are alredy in the database by default\n- General bug fixes and discovery enhancements.\n\nv1.1.2 | 2026-05-19T21:23:17.432Z | user\n\nfootball-tracker 1.1.2\n\n- News results now filter out previews, lineups, kickoff-time posts, and where-to-watch articles.\n- A localized beta notice and current version are appended to every result.\n- Additional notes document bug fixes and discovery improvements in this release.\n\nv1.1.1 | 2026-05-19T20:37:21.995Z | user\n\n- Major refactor with a new bilingual system and expanded output details.\n- English and Portuguese localizations are now supported via language packs.\n- Added kickoff time (with timezone), next match broadcasters, and improved output formatting.\n- Removed most old code, configs, and service files in favor of a new structure.\n- Usage and output instructions have been updated and clarified in the documentation.\n\nv1.1.0 | 2026-05-19T20:17:26.940Z | user\n\nInitial release with core football tracking features:\n\n- Track multiple football teams and receive emoji-formatted summaries.\n- Returns last match, next match, league standing, and latest news for each team.\n- Integrates with football-data.org via API key.\n- Includes internal caching, team resolution, and news aggregation functionality.\n- No extra Python packages required.\n\nv1.0.0 | 2026-05-19T17:37:39.285Z | user\n\nInitial release of Football Tracker AI.\n\n- Permite acompanhar informações sobre qualquer time de futebol do mundo.\n- Exibe último jogo, próxima partida, campeonato, posição na tabela, fase da competição e últimas notícias.\n- Fácil de usar: basta informar o time para obter as novidades.\n\nArchive index:\n\nArchive v1.2.0: 19 files, 28623 bytes\n\nFiles: agents/openai.yaml (608b), config.json (231b), main.py (5900b), references/locales/en.md (958b), references/locales/pt-br.md (1096b), services/football_api.py (7424b), services/news_service.py (10139b), services/team_resolver.py (4749b), services/worldcup_2026.py (19647b), skill-card.md (2504b), SKILL.md (4072b), storage/teams.json (2431b), storage/user_config.json (75b), storage/user_config.py (736b), storage/worldcup_2026_match_meta.json (10267b), storage/worldcup_2026_schedule.txt (5320b), utils/cache.py (704b), utils/formatter.py (4562b), _meta.json (135b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: football-tracker\ndescription: Track football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nTrack football teams and the FIFA World Cup 2026 in a compact, emoji-friendly format.\n\nThis skill is bilingual:\n\n- English is supported for instructions and output.\n- Portuguese (pt-BR) remains supported for the existing Telegram style.\n- The agent can force a locale with `locale=en`, `lang=en`, `locale=pt`, or `lang=pt`.\n\n## Usage\n\n- One team: `vasco`\n- Multiple teams: `vasco, chelsea, bournemouth`\n- Force English output: `locale=en Chelsea`\n- Force Portuguese output: `locale=pt Chelsea`\n- World Cup team by name only: `Brazil`\n- World Cup team plus locale: `locale=pt Brazil`\n- National teams from FIFA World Cup 2026 can be requested by name only, without API key, for example: `Brasil`, `Japão`, `Noruega`\n\n## Expected output\n\nFor each team, return:\n\n- team name\n- last match\n- next match\n- when available, the next match venue prefixed with `🏟️`\n- broadcasters / where-to-watch info for the next match when available\n- competition\n- standings\n- recent news\n\nFor FIFA World Cup 2026 teams:\n\n- team-name-only lookup should work for national teams the same way it works for clubs\n- the internal 2026 schedule base is fully populated for all 104 matches, all 12 groups, all venue/date entries, and the knockout placeholders\n- during the group stage, also show the group table for the selected team\n- always keep the table/standings block before the news block\n- keep the knockout path internal: round of 32, round of 16, quarter-finals, semi-finals, bronze final, and final\n- use the internal 2026 schedule data first instead of re-searching the web for the fixed tournament structure\n- when the output is pt-BR, localize World Cup team names to Portuguese\n- show the next-match venue as state/city when the internal FIFA schedule has it; otherwise keep the venue line as unavailable instead of guessing\n\n## Dependencies\n\n- No extra Python packages are required.\n- Uses only the Python standard library.\n- Requires a valid `API_KEY` from `football-data.org` in `storage/user_config.json`.\n\n## First Use\n\n- If no API key is stored for the user, ask for `set_api_key SUA_KEY` only for club lookups.\n- National teams from the FIFA World Cup 2026 must work without any API key prompt.\n- Keep support for `API_KEY:` as a silent compatibility fallback if needed, but do not suggest it to the user.\n- Make it explicit that the user can send the key and you will complete the setup for them.\n- Keep the setup flow internal to the skill; do not require the user to search for external instructions.\n- After the key is stored, continue with the normal team lookup flow.\n\n## Notes\n\n- If the data source cannot confidently resolve a team, return `N/A` for missing match data and still provide news.\n- Keep the user-facing output in the requested locale and preserve the emoji-based layout.\n- Always show kickoff time in the local timezone plus UTC.\n- Always include the weekday in the kickoff timestamp.\n- If a World Cup venue is available, show it on the next-match block with a `🏟️` prefix.\n- If broadcaster data is unavailable, say so rather than guessing.\n- News results should prefer recent, high-signal football reporting. Exclude previews, lineups, kickoff-time posts, where-to-watch articles, and generic hub pages.\n- News results are also filtered to avoid non-football categories like base teams, futsal, rowing, basketball, and women's sections.\n- Append a localized beta notice and the current version at the end of every result.\n- For the World Cup 2026 build, show the kickoff embedded in the next-match line and do not print a separate kickoff field.\n- This build focuses on bug fixes and discovery improvements.\n- If timezone detection is unavailable, fall back to the machine/system timezone.\n\n## Language packs\n\n- `references/locales/en.md` for the English output pack\n- `references/locales/pt-br.md` for the Portuguese output pack\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779995691915\n}\n\nFile v1.2.0:references/locales/en.md\n\n# Football Tracker - English Output Pack\n\nUse this pack when the user requests English output or the agent is operating in English.\n\n## Output layout\n\n- ⚽ Team name\n- 🏟️ Last match\n- 📅 Next match\n- 📺 Broadcast\n- 🏆 Competition\n- 📊 Standing\n- 📰 Recent news\n\n## Rules\n\n- Keep the format compact and emoji-based.\n- If broadcast data is unavailable, show `Unavailable`.\n- For FIFA World Cup 2026 teams, localize team names only when the output locale asks for it.\n- If the next-match venue is known internally, show the state/city with `🏟️`; otherwise keep it as `Unavailable` instead of guessing.\n- The standings/table must always appear before the news block.\n- For the FIFA World Cup 2026 build, keep kickoff embedded in the next-match line and do not print a separate kickoff field.\n- If team data is uncertain, keep `N/A` for missing match fields and still show news.\n- Prefer recent, football-specific news with a visible source.\n\nFile v1.2.0:references/locales/pt-br.md\n\n# Football Tracker - Pacote de Saída em Português\n\nUse este pacote quando o usuário pedir saída em português ou o agente estiver operando em pt-BR.\n\n## Estrutura da saída\n\n- ⚽ Time\n- 🏟️ Último jogo\n- 📅 Próxima partida\n- 📺 Transmissão\n- 🏆 Campeonato\n- 📊 Posição\n- 📰 Últimas notícias\n\n## Regras\n\n- Manter o formato curto e com emojis.\n- Se a transmissão não for encontrada, mostrar `Indisponível`.\n- Para seleções da Copa do Mundo 2026, traduzir o nome do time para pt-BR quando a saída estiver em português.\n- Se a localização da próxima partida estiver na base interna, exibir estado/cidade com `🏟️`; se não houver confiança, mostrar `Indisponível` e não adivinhar.\n- A tabela/posição deve aparecer sempre antes do bloco de notícias.\n- Para a Copa do Mundo 2026, o horário deve ficar embutido na linha da próxima partida, sem um campo separado de horário.\n- Se os dados do time forem incertos, manter `N/A` nos campos faltantes e ainda trazer notícias.\n- Priorizar notícias recentes, específicas de futebol e com fonte identificada.\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nTrack football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[geison-paitra](https://clawhub.ai/user/geison-paitra)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and sports fans use this skill to track football clubs and FIFA World Cup 2026 national teams. It returns match status, kickoff details, venue, broadcasters, standings, group tables when available, and recent football news in English or Portuguese.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill stores football-data.org API keys locally in plaintext and the artifact includes a populated user_config.json.\n\nMitigation: Revoke or rotate the bundled key before release, remove user_config.json from the shipped artifact, and store user secrets outside the skill package.\n\nRisk: The skill depends on external sports and news services for club lookups, broadcasters, standings, and recent news.\n\nMitigation: Review returned sports and news data before relying on it, and prefer the internal World Cup 2026 schedule only for the tournament structure it explicitly covers.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/geison-paitra/skills/football-tracker)\n- [FIFA World Cup 2026 schedule source](http://digitalhub.fifa.com/asset/4b5d4417-3343-4732-9cdf-14b6662af407/FWC26-Match-Schedule_English.pdf)\n- [football-data.org API v4](https://api.football-data.org/v4)\n- [Google News RSS search](https://news.google.com/rss/search?q=)\n- [English output pack](references/locales/en.md)\n- [Portuguese output pack](references/locales/pt-br.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, configuration, guidance]\n\n**Output Format:** [Compact Markdown-style football summaries with emoji labels and localized English or Portuguese text.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include setup guidance for a football-data.org API key, N/A placeholders for unavailable match data, and beta/version notices.]\n\n## Skill Version(s):\n\n1.2.0 (source: server release metadata and config.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.2.0:config.json\n\n{\n  \"name\": \"football-tracker\",\n  \"version\": \"1.2.0\",\n  \"cache\": {\n    \"matches\": 900,\n    \"standings\": 3600,\n    \"news\": 1800\n  },\n  \"features\": {\n    \"multi_team\": true,\n    \"auto_discovery\": true,\n    \"news_summary\": true\n  }\n}\n\nFile v1.2.0:storage/teams.json\n\n{\n  \"chelsea\": 61,\n  \"bournemouth\": 1044,\n  \"manchester united\": 66,\n  \"manchester city\": 65,\n  \"tottenham\": 73,\n  \"arsenal\": 57,\n  \"vasco da gama\": 1780,\n  \"coritiba\": 4241,\n  \"chapecoense\": 1772,\n  \"sao paulo\": 1776,\n  \"santos\": 6685,\n  \"arsenal fc\": 57,\n  \"ars\": 57,\n  \"aston villa fc\": 58,\n  \"aston villa\": 58,\n  \"avl\": 58,\n  \"chelsea fc\": 61,\n  \"che\": 61,\n  \"everton fc\": 62,\n  \"everton\": 62,\n  \"eve\": 62,\n  \"fulham fc\": 63,\n  \"fulham\": 63,\n  \"ful\": 63,\n  \"liverpool fc\": 64,\n  \"liverpool\": 64,\n  \"liv\": 64,\n  \"manchester city fc\": 65,\n  \"man city\": 65,\n  \"mci\": 65,\n  \"manchester united fc\": 66,\n  \"man united\": 66,\n  \"mun\": 66,\n  \"newcastle united fc\": 67,\n  \"newcastle\": 67,\n  \"new\": 67,\n  \"sunderland afc\": 71,\n  \"sunderland\": 71,\n  \"sun\": 71,\n  \"tottenham hotspur fc\": 73,\n  \"tot\": 73,\n  \"wolverhampton wanderers fc\": 76,\n  \"wolverhampton\": 76,\n  \"wol\": 76,\n  \"burnley fc\": 328,\n  \"burnley\": 328,\n  \"bur\": 328,\n  \"leeds united fc\": 341,\n  \"leeds united\": 341,\n  \"lee\": 341,\n  \"nottingham forest fc\": 351,\n  \"nottingham\": 351,\n  \"not\": 351,\n  \"crystal palace fc\": 354,\n  \"crystal palace\": 354,\n  \"cry\": 354,\n  \"brighton & hove albion fc\": 397,\n  \"brighton hove\": 397,\n  \"bha\": 397,\n  \"brentford fc\": 402,\n  \"brentford\": 402,\n  \"bre\": 402,\n  \"west ham united fc\": 563,\n  \"west ham\": 563,\n  \"whu\": 563,\n  \"afc bournemouth\": 1044,\n  \"bou\": 1044,\n  \"fluminense fc\": 1765,\n  \"fluminense\": 1765,\n  \"flu\": 1765,\n  \"ca mineiro\": 1766,\n  \"mineiro\": 1766,\n  \"cam\": 1766,\n  \"gremio fbpa\": 1767,\n  \"gremio\": 1767,\n  \"fbp\": 1767,\n  \"ca paranaense\": 1768,\n  \"paranaense\": 1768,\n  \"cap\": 1768,\n  \"se palmeiras\": 1769,\n  \"palmeiras\": 1769,\n  \"pal\": 1769,\n  \"botafogo fr\": 1770,\n  \"botafogo\": 1770,\n  \"bot\": 1770,\n  \"cruzeiro ec\": 1771,\n  \"cruzeiro\": 1771,\n  \"cru\": 1771,\n  \"chapecoense af\": 1772,\n  \"cha\": 1772,\n  \"sao paulo fc\": 1776,\n  \"pau\": 1776,\n  \"ec bahia\": 1777,\n  \"bahia\": 1777,\n  \"bah\": 1777,\n  \"sc corinthians paulista\": 1779,\n  \"corinthians\": 1779,\n  \"cor\": 4241,\n  \"cr vasco da gama\": 1780,\n  \"vas\": 1780,\n  \"ec vitoria\": 1782,\n  \"vitoria\": 1782,\n  \"vit\": 1782,\n  \"cr flamengo\": 1783,\n  \"flamengo\": 1783,\n  \"fla\": 1783,\n  \"coritiba fbc\": 4241,\n  \"rb bragantino\": 4286,\n  \"bragantino\": 4286,\n  \"rbb\": 4286,\n  \"clube do remo\": 4287,\n  \"cre\": 4287,\n  \"mirassol fc\": 4364,\n  \"mirassol\": 4364,\n  \"mir\": 4364,\n  \"sc internacional\": 6684,\n  \"internacional\": 6684,\n  \"sci\": 6684,\n  \"santos fc\": 6685,\n  \"san\": 6685,\n  \"vasco\": 1780\n}\n\nFile v1.2.0:storage/user_config.json\n\n{\n  \"918573385\": {\n    \"api_key\": \"989fd86e524a4ec7a5c42ee5e43673d3\"\n  }\n}\n\nFile v1.2.0:storage/worldcup_2026_match_meta.json\n\n{\n  \"1\": {\n    \"date\": \"2026-06-11\",\n    \"venue\": \"Mexico City, Mexico City - Mexico City Stadium\"\n  },\n  \"2\": {\n    \"date\": \"2026-06-11\",\n    \"venue\": \"Guadalajara, Jalisco - Guadalajara Stadium\"\n  },\n  \"3\": {\n    \"date\": \"2026-06-12\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"4\": {\n    \"date\": \"2026-06-12\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"5\": {\n    \"date\": \"2026-06-13\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"6\": {\n    \"date\": \"2026-06-13\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"7\": {\n    \"date\": \"2026-06-13\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"8\": {\n    \"date\": \"2026-06-13\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"9\": {\n    \"date\": \"2026-06-14\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"10\": {\n    \"date\": \"2026-06-14\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"11\": {\n    \"date\": \"2026-06-14\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"12\": {\n    \"date\": \"2026-06-14\",\n    \"venue\": \"Monterrey, Nuevo León - Monterrey Stadium\"\n  },\n  \"13\": {\n    \"date\": \"2026-06-15\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"14\": {\n    \"date\": \"2026-06-15\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"15\": {\n    \"date\": \"2026-06-15\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"16\": {\n    \"date\": \"2026-06-15\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"17\": {\n    \"date\": \"2026-06-16\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"18\": {\n    \"date\": \"2026-06-16\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"19\": {\n    \"date\": \"2026-06-16\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"20\": {\n    \"date\": \"2026-06-16\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"21\": {\n    \"date\": \"2026-06-17\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"22\": {\n    \"date\": \"2026-06-17\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"23\": {\n    \"date\": \"2026-06-17\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"24\": {\n    \"date\": \"2026-06-17\",\n    \"venue\": \"Mexico City, Mexico City - Mexico City Stadium\"\n  },\n  \"25\": {\n    \"date\": \"2026-06-18\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"26\": {\n    \"date\": \"2026-06-18\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"27\": {\n    \"date\": \"2026-06-18\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"28\": {\n    \"date\": \"2026-06-18\",\n    \"venue\": \"Guadalajara, Jalisco - Guadalajara Stadium\"\n  },\n  \"29\": {\n    \"date\": \"2026-06-19\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"30\": {\n    \"date\": \"2026-06-19\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"31\": {\n    \"date\": \"2026-06-19\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"32\": {\n    \"date\": \"2026-06-19\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"33\": {\n    \"date\": \"2026-06-20\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"34\": {\n    \"date\": \"2026-06-20\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"35\": {\n    \"date\": \"2026-06-20\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"36\": {\n    \"date\": \"2026-06-20\",\n    \"venue\": \"Monterrey, Nuevo León - Monterrey Stadium\"\n  },\n  \"37\": {\n    \"date\": \"2026-06-21\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"38\": {\n    \"date\": \"2026-06-21\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"39\": {\n    \"date\": \"2026-06-21\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"40\": {\n    \"date\": \"2026-06-21\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"41\": {\n    \"date\": \"2026-06-22\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"42\": {\n    \"date\": \"2026-06-22\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"43\": {\n    \"date\": \"2026-06-22\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"44\": {\n    \"date\": \"2026-06-22\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"45\": {\n    \"date\": \"2026-06-23\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"46\": {\n    \"date\": \"2026-06-23\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"47\": {\n    \"date\": \"2026-06-23\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"48\": {\n    \"date\": \"2026-06-23\",\n    \"venue\": \"Guadalajara, Jalisco - Guadalajara Stadium\"\n  },\n  \"49\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"50\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"51\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"52\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"53\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Mexico City, Mexico City - Mexico City Stadium\"\n  },\n  \"54\": {\n    \"date\": \"2026-06-24\",\n    \"venue\": \"Monterrey, Nuevo León - Monterrey Stadium\"\n  },\n  \"55\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"56\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"57\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"58\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"59\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"60\": {\n    \"date\": \"2026-06-25\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"61\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"62\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"63\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"64\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"65\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"66\": {\n    \"date\": \"2026-06-26\",\n    \"venue\": \"Guadalajara, Jalisco - Guadalajara Stadium\"\n  },\n  \"67\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"68\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"69\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"70\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"71\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"72\": {\n    \"date\": \"2026-06-27\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"73\": {\n    \"date\": \"2026-06-28\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"74\": {\n    \"date\": \"2026-06-29\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"75\": {\n    \"date\": \"2026-06-29\",\n    \"venue\": \"Monterrey, Nuevo León - Monterrey Stadium\"\n  },\n  \"76\": {\n    \"date\": \"2026-06-29\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"77\": {\n    \"date\": \"2026-06-30\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"78\": {\n    \"date\": \"2026-06-30\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"79\": {\n    \"date\": \"2026-06-30\",\n    \"venue\": \"Mexico City, Mexico City - Mexico City Stadium\"\n  },\n  \"80\": {\n    \"date\": \"2026-07-01\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"81\": {\n    \"date\": \"2026-07-01\",\n    \"venue\": \"San Francisco Bay Area, California - San Francisco Bay Area Stadium\"\n  },\n  \"82\": {\n    \"date\": \"2026-07-01\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"83\": {\n    \"date\": \"2026-07-02\",\n    \"venue\": \"Toronto, Ontario - Toronto Stadium\"\n  },\n  \"84\": {\n    \"date\": \"2026-07-02\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"85\": {\n    \"date\": \"2026-07-02\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"86\": {\n    \"date\": \"2026-07-03\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"87\": {\n    \"date\": \"2026-07-03\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"88\": {\n    \"date\": \"2026-07-03\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"89\": {\n    \"date\": \"2026-07-04\",\n    \"venue\": \"Philadelphia, Pennsylvania - Philadelphia Stadium\"\n  },\n  \"90\": {\n    \"date\": \"2026-07-04\",\n    \"venue\": \"Houston, Texas - Houston Stadium\"\n  },\n  \"91\": {\n    \"date\": \"2026-07-05\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  },\n  \"92\": {\n    \"date\": \"2026-07-05\",\n    \"venue\": \"Mexico City, Mexico City - Mexico City Stadium\"\n  },\n  \"93\": {\n    \"date\": \"2026-07-06\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"94\": {\n    \"date\": \"2026-07-06\",\n    \"venue\": \"Seattle, Washington - Seattle Stadium\"\n  },\n  \"95\": {\n    \"date\": \"2026-07-07\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"96\": {\n    \"date\": \"2026-07-07\",\n    \"venue\": \"Vancouver, British Columbia - Vancouver Stadium\"\n  },\n  \"97\": {\n    \"date\": \"2026-07-09\",\n    \"venue\": \"Boston, Massachusetts - Boston Stadium\"\n  },\n  \"98\": {\n    \"date\": \"2026-07-10\",\n    \"venue\": \"Los Angeles, California - Los Angeles Stadium\"\n  },\n  \"99\": {\n    \"date\": \"2026-07-11\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"100\": {\n    \"date\": \"2026-07-11\",\n    \"venue\": \"Kansas City, Missouri - Kansas City Stadium\"\n  },\n  \"101\": {\n    \"date\": \"2026-07-14\",\n    \"venue\": \"Dallas, Texas - Dallas Stadium\"\n  },\n  \"102\": {\n    \"date\": \"2026-07-15\",\n    \"venue\": \"Atlanta, Georgia - Atlanta Stadium\"\n  },\n  \"103\": {\n    \"date\": \"2026-07-18\",\n    \"venue\": \"Miami Gardens, Florida - Miami Stadium\"\n  },\n  \"104\": {\n    \"date\": \"2026-07-19\",\n    \"venue\": \"New York / New Jersey - New York New Jersey Stadium\"\n  }\n}\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Football Tracker\"\n  short_description: \"Football teams, World Cup 2026, and recent news\"\n  default_prompt: \"Use $football-tracker to track football teams and the FIFA World Cup 2026. Follow the skill's standard layout: team, last match, next match with kickoff embedded, venue when available, broadcasters, standings, World Cup group tables in the first phase, and recent high-signal news. Always keep the standings/table before news. Prefer verified football-specific headlines and support English and Portuguese output when requested.\"\npolicy:\n  allow_implicit_invocation: true\n\nFile v1.2.0:storage/worldcup_2026_schedule.txt\n\nTitle: FWC26 Match Schedule_v17_10042026.ai\n\nURL Source: http://digitalhub.fifa.com/asset/4b5d4417-3343-4732-9cdf-14b6662af407/FWC26-Match-Schedule_English.pdf\n\nNumber of Pages: 1\n\nMarkdown Content:\nCZE \n\nv\n\nRSA \n\nA\n\n25 12:00 \n\nTUR \n\nv\n\nPAR KOR \n\nv\n\nCZE \n\nA\n\n2 22:00 \n\nAUS \n\nv\n\nTUR \n\nD\n\n6 00:00 \n\nNED \n\nv\n\nSWE \n\nF\n\n35 13:00 \n\nPOR \n\nv\n\nCOD \n\nK\n\n23 13:00 \n\nCOL \n\nv\n\nCOD \n\nK\n\n48 22:00 \n\nFRA \n\nv\n\nIRQ \n\nI\n\n42 17:00 \n\nSEN \n\nv\n\nIRQ \n\nI\n\n62 15:00 \n\nJPN \n\nv\n\nSWE \n\nF\n\n57 19:00 \n\nCAN \n\nv\n\nBIH \n\nB\n\n3 15:00 \n\nSUI \n\nv\n\nBIH \n\nB\n\n26 15:00 \n\nUSA \n\nv\n\nPAR \n\nD\n\n4 21:00 \n\nBRA \n\nv\n\nMAR \n\nC\n\n7 18:00 \n\nHAI \n\nv\n\nSCO \n\nC\n\n5 21:00 \n\nQAT \n\nv\n\nSUI \n\nB\n\n8 15:00 \n\nGER \n\nv\n\nCUW \n\nE\n\n10 13:00 \n\nNED \n\nv\n\nJPN \n\nF\n\n11 16:00 \n\nCIV \n\nv\n\nECU \n\nE\n\n9 19:00 \n\nKSA \n\nv\n\nURU \n\nH\n\n13 18:00 \n\nESP \n\nv\n\nCPV \n\nH\n\n14 12:00 \n\nAUT \n\nv\n\nJOR \n\nJ\n\n20 00:00 \n\nARG \n\nv\n\nALG \n\nJ\n\n19 21:00 \n\nFRA \n\nv\n\nSEN \n\nI\n\n17 15:00 \n\nGHA \n\nv\n\nPAN \n\nL\n\n21 19:00 \n\nENG \n\nv\n\nCRO \n\nL\n\n22 16:00 \n\nUZB \n\nv\n\nCOL \n\nK\n\n24 22:00 \n\nCAN \n\nv\n\nQAT \n\nB\n\n27 18:00 \n\nMEX \n\nv\n\nKOR \n\nA\n\n28 21:00 \n\nBRA \n\nv\n\nHAI \n\nC\n\n29 20:30 \n\nSCO \n\nv\n\nMAR \n\nC\n\n30 18:00 \n\nUSA \n\nv\n\nAUS \n\nD\n\n32 15:00 \n\nTUN \n\nv\n\nJPN \n\nF\n\n36 00:00 \n\nECU \n\nv\n\nCUW \n\nE\n\n34 20:00 \n\nGER \n\nv\n\nCIV \n\nE\n\n33 16:00 \n\nNOR \n\nv\n\nSEN \n\nI\n\n41 20:00 \n\nENG \n\nv\n\nGHA \n\nL\n\n45 16:00 \n\nPAN \n\nv\n\nCRO \n\nL\n\n46 19:00 \n\nURU \n\nv\n\nCPV \n\nH\n\n37 18:00 \n\nESP \n\nv\n\nKSA \n\nH\n\n38 12:00 \n\nARG \n\nv\n\nAUT \n\nJ\n\n43 13:00 \n\nBEL \n\nv\n\nIRN \n\nG\n\n39 15:00 \n\nNZL \n\nv\n\nEGY \n\nG\n\n40 21:00 \n\nJOR \n\nv\n\nALG \n\nJ\n\n44 23:00 \n\nSUI \n\nv\n\nCAN \n\nB\n\n51 15:00 \n\nRSA \n\nv\n\nKOR \n\nA\n\n54 21:00 \n\nPOR \n\nv\n\nUZB \n\nK\n\n47 13:00 \n\nMAR \n\nv\n\nHAI \n\nC\n\n50 18:00 \n\nSCO \n\nv\n\nBRA \n\nC\n\n49 18:00 \n\nECU \n\nv\n\nGER \n\nE\n\n56 16:00 \n\nCUW \n\nv\n\nCIV \n\nE\n\n55 16:00 \n\nTUN \n\nv\n\nNED \n\nF\n\n58 19:00 \n\nPAR \n\nv\n\nAUS \n\nD\n\n60 22:00 \n\nNZL \n\nv\n\nBEL \n\nG\n\n64 23:00 \n\nCPV \n\nv\n\nKSA \n\nH\n\n65 20:00 \n\nURU \n\nv\n\nESP \n\nH\n\n66 20:00 \n\nNOR \n\nv\n\nFRA \n\nI\n\n61 15:00 \n\nPAN \n\nv\n\nENG \n\nL\n\n67 17:00 \n\nCRO \n\nv\n\nGHA \n\nL\n\n68 17:00 \n\nCOL \n\nv\n\nPOR \n\nK\n\n71 19:30 \n\nALG \n\nv\n\nAUT \n\nJ\n\n69 22:00 \n\nJOR \n\nv\n\nARG \n\nJ\n\n70 22:00 \n\nEGY \n\nv\n\nIRN \n\nG\n\n63 23:00 \n\n2A \n\nv\n\n2B \n\n73 15:00 \n\n1F \n\nv\n\n2C \n\n75 21:00 \n\n1C \n\nv\n\n2F \n\n76 13:00 \n\n2E \n\nv\n\n2I \n\n78 13:00 \n\n1J \n\nv\n\n2H \n\n86 18:00 \n\n2K \n\nv\n\n2L \n\n83 19:00 \n\nW74 \n\nv\n\nW77 \n\n89 17:00 \n\nW86 \n\nv\n\nW88 \n\n95 12:00 \n\nW83 \n\nv\n\nW84 \n\n93 15:00 \n\nW73 \n\nv\n\nW75 \n\n90 13:00 \n\nW79 \n\nv\n\nW80 \n\n92 20:00 \n\nW93 \n\nv\n\nW94 \n\n98 15:00 \n\nW95 \n\nv\n\nW96 \n\n100 21:00 \n\nW89 \n\nv\n\nW90 \n\n97 16:00 \n\nW81 \n\nv\n\nW82 \n\n94 20:00 \n\nW85 \n\nv\n\nW87 \n\n96 16:00 \n\nW76 \n\nv\n\nW78 \n\n91 16:00 \n\n2D \n\nv\n\n2G \n\n88 14:00 \n\n1K \n\nv\n\n3\n\nDEIJL \n\n87 21:30 \n\n1A \n\nv\n\n3\n\nCEFHI \n\n79 21:00 \n\n1D \n\nv\n\n3\n\nBEFIJ \n\n81 20:00 \n\n1G \n\nv\n\n3\n\nAEHIJ \n\n82 16:00 \n\n1B \n\nv\n\n3\n\nEFGIJ \n\n85 23:00 \n\n1L \n\nv\n\n3\n\nEHIJK \n\n80 12:00 \n\n1E \n\nv\n\n3\n\nABCDF \n\n74 16:30 \n\n1I \n\nv\n\n3\n\nCDFGH \n\n77 17:00 \n\n1H \n\nv\n\n2J \n\n84 15:00 \n\nET-2 ET-2 ET-2 ET-1 ET-1 ET-1 ET-3 ET-3 ET-3 ET-3 \n\nMEX \n\nv\n\nRSA \n\nA\n\n1 15:00 \n\nCZE \n\nv\n\nMEX \n\nA\n\n53 21:00 \n\nD\n\n31 23:00 \n\nSWE \n\nv\n\nTUN \n\nF\n\n12 22:00 \n\nI\n\n18 18:00 \n\nTUR \n\nv\n\nUSA \n\nD\n\n59 22:00 \n\nBIH \n\nv\n\nQAT \n\nB\n\n52 15:00 \n\nW97 \n\nv\n\nW98 \n\n101 15:00 \n\nW99 \n\nv\n\nW100 \n\n102 15:00 \n\nW91 \n\nv\n\nW92 \n\n99 17:00 \n\nK\n\n72 19:30 \n\nBEL \n\nv\n\nEGY \n\nG\n\n16 15:00 \n\nIRN \n\nv\n\nNZL \n\nG\n\n15 21:00 103 17:00 104 15:00 \n\nCOD \n\nv\n\nUZB IRQ \n\nv\n\nNOR \n\n> 10 April 2026  © FIFA\n> R E S T  D A Y S R E S T  D A Y S R E S T  D A Y\n> WESTERN REGION CENTRAL REGION EASTERN REGION\n\nVANCOUVER SEATTLE LOS ANGELES GUADALAJARA MEXICO CITY MONTERREY HOUSTON DALLAS ATLANTA TORONTO BOSTON SAN FRANCISCO BAY AREA KANSAS CITY MIAMI NEW YORK NEW JERSEY \n\nGROUP STAGE ROUND OF 32 QUARTER-FINALS SEMI-FINALS \n\n> Sunday\n> 28 June\n> Monday\n> 29 June\n> Tuesday\n> 30 June\n> Wednesday\n> 1 July\n> Thursday\n> 2 July\n> Friday\n> 3 July\n\nROUND OF 16 \n\n> Saturday\n> 4 July\n> Sunday\n> 5 July\n> Monday\n> 6 July\n> Tuesday\n> 7 July\n> Thursday\n> 9 July\n> Friday\n> 10 July\n> Saturday\n> 11 July\n> Tuesday\n> 14 July\n> Wednesday\n> 15 July\n> Saturday\n> 18 July\n> Sunday\n> 19 July\n> Thursday\n> 11 June\n> Friday\n> 12 June\n> Saturday\n> 13 June\n> Sunday\n> 14 June\n> Monday\n> 15 June\n> Tuesday\n> 16 June\n> Wednesday\n> 17 June\n> Thursday\n> 18 June\n> Friday\n> 19 June\n> Saturday\n> 20 June\n> Sunday\n> 21 June\n> Monday\n> 22 June\n> Tuesday\n> 23 June\n> Wednesday\n> 24 June\n> Thursday\n> 25 June\n> Friday\n> 26 June\n> Saturday\n> 27 June\n> Wednesday\n> 8 July\n> Sunday\n> 12 July\n> Monday\n> 13 July\n> Thursday\n> 16 July\n> Friday\n> 17 July\n> Subject to change  W = Winner\n\nPHILADELPHIA \n\nFINAL BRONZE FINAL \n\nGROUP A \n\nMEXICO (MEX) SOUTH AFRICA (RSA) KOREA REPUBLIC (KOR) \n\nCZECHIA (CZE) \n\nGROUP G \n\nBELGIUM (BEL) EGYPT (EGY) \n\nIR IRAN (IRN) \n\nNEW ZEALAND (NZL) \n\nGROUP B \n\nCANADA (CAN) \n\nBOSNIA & HERZEGOVINA (BIH) \n\nQATAR (QAT) \n\nSWITZERLAND (SUI) \n\nGROUP H \n\nSPAIN (ESP) \n\nCABO VERDE (CPV) SAUDI ARABIA (KSA) URUGUAY (URU) \n\nGROUP C \n\nBRAZIL (BRA) \n\nMOROCCO (MAR) HAITI (HAI) \n\nSCOTLAND (SCO) \n\nGROUP I \n\nFRANCE (FRA) \n\nSENEGAL (SEN) \n\nIRAQ (IRQ) \n\nNORWAY (NOR) \n\nGROUP D \n\nUSA (USA) PARAGUAY (PAR) AUSTRALIA (AUS) \n\nTÜRKIYE (TUR) \n\nGROUP J \n\nARGENTINA (ARG) \n\nALGERIA (ALG) AUSTRIA (AUT) \n\nJORDAN (JOR) \n\nGROUP E \n\nGERMANY (GER) CURAÇAO (CUW) CÔTE D’IVOIRE (CIV) ECUADOR (ECU) \n\nGROUP K \n\nPORTUGAL (POR) \n\nCONGO DR (COD) \n\nUZBEKISTAN (UZB) COLOMBIA (COL) \n\nGROUP F \n\nNETHERLANDS (NED) \n\nJAPAN (JPN) \n\nSWEDEN (SWE) \n\nTUNISIA (TUN) \n\nGROUP L \n\nENGLAND (ENG) \n\nCROATIA (CRO) GHANA (GHA) PANAMA (PAN) \n\nAll times are Eastern Time (ET). \n\n# MATCH SCHEDULE \n\nBRONZE FINAL FINAL\n\nArchive v1.1.3: 16 files, 16339 bytes\n\nFiles: agents/openai.yaml (367b), config.json (231b), main.py (4808b), references/locales/en.md (550b), references/locales/pt-br.md (615b), services/football_api.py (6602b), services/news_service.py (10635b), services/team_resolver.py (4402b), skill-card.md (2254b), SKILL.md (2639b), storage/teams.json (2414b), storage/user_config.json (75b), storage/user_config.py (736b), utils/cache.py (704b), utils/formatter.py (2828b), _meta.json (135b)\n\nFile v1.1.3:SKILL.md\n\n---\nname: football-tracker\ndescription: Track football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nTrack football teams and summarize their current status in a compact, emoji-friendly format.\n\nThis skill is bilingual:\n\n- English is supported for instructions and output.\n- Portuguese (pt-BR) remains supported for the existing Telegram style.\n- The agent can force a locale with `locale=en`, `lang=en`, `locale=pt`, or `lang=pt`.\n\n## Usage\n\n- One team: `vasco`\n- Multiple teams: `vasco, chelsea, bournemouth`\n- Force English output: `locale=en Chelsea`\n- Force Portuguese output: `locale=pt Chelsea`\n\n## Expected output\n\nFor each team, return:\n\n- team name\n- last match\n- next match\n- kickoff time in the user's local timezone when available, plus UTC\n- broadcasters / where-to-watch info for the next match when available\n- competition\n- standings\n- recent news\n\n## Dependencies\n\n- No extra Python packages are required.\n- Uses only the Python standard library.\n- Requires a valid `API_KEY` from `football-data.org` in `storage/user_config.json`.\n\n## First Use\n\n- If no API key is stored for the user, ask for `set_api_key SUA_KEY`.\n- Keep support for `API_KEY:` as a silent compatibility fallback if needed, but do not suggest it to the user.\n- Make it explicit that the user can send the key and you will complete the setup for them.\n- Keep the setup flow internal to the skill; do not require the user to search for external instructions.\n- After the key is stored, continue with the normal team lookup flow.\n\n## Notes\n\n- If the data source cannot confidently resolve a team, return `N/A` for missing match data and still provide news.\n- Keep the user-facing output in the requested locale and preserve the emoji-based layout.\n- Always show kickoff time in the local timezone plus UTC.\n- Always include the weekday in the kickoff timestamp.\n- If broadcaster data is unavailable, say so rather than guessing.\n- News results are filtered to exclude previews, lineups, kickoff-time posts, and where-to-watch articles.\n- News results are also filtered to avoid non-football categories like base teams, futsal, rowing, basketball, and women's sections.\n- Append a localized beta notice and the current version at the end of every result.\n- This build focuses on bug fixes and discovery improvements.\n- If timezone detection is unavailable, fall back to the machine/system timezone.\n\n## Language packs\n\n- `references/locales/en.md` for the English output pack\n- `references/locales/pt-br.md` for the Portuguese output pack\n\nFile v1.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.1.3\",\n  \"publishedAt\": 1779271950778\n}\n\nFile v1.1.3:references/locales/en.md\n\n# Football Tracker - English Output Pack\n\nUse this pack when the user requests English output or the agent is operating in English.\n\n## Output layout\n\n- ⚽ Team name\n- 🏟️ Last match\n- 📅 Next match\n- ⏰ Kickoff\n- 📺 Broadcast\n- 🏆 Competition\n- 📊 Standing\n- 📰 Recent news\n\n## Rules\n\n- Keep the format compact and emoji-based.\n- Show kickoff time in local timezone plus UTC when available.\n- If broadcast data is unavailable, show `Unavailable`.\n- If team data is uncertain, keep `N/A` for missing match fields and still show news.\n\nFile v1.1.3:references/locales/pt-br.md\n\n# Football Tracker - Pacote de Saída em Português\n\nUse este pacote quando o usuário pedir saída em português ou o agente estiver operando em pt-BR.\n\n## Estrutura da saída\n\n- ⚽ Time\n- 🏟️ Último jogo\n- 📅 Próxima partida\n- ⏰ Horário do jogo\n- 📺 Transmissão\n- 🏆 Campeonato\n- 📊 Posição\n- 📰 Últimas notícias\n\n## Regras\n\n- Manter o formato curto e com emojis.\n- Exibir o horário no fuso local + UTC quando disponível.\n- Se a transmissão não for encontrada, mostrar `Indisponível`.\n- Se os dados do time forem incertos, manter `N/A` nos campos faltantes e ainda trazer notícias.\n\nFile v1.1.3:skill-card.md\n\n## Description: <br>\nTrack football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[geison-paitra](https://clawhub.ai/user/geison-paitra) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to monitor one or more football teams, returning recent and upcoming matches, kickoff times, broadcaster availability, standings, and recent news in English or Portuguese. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires a football-data.org API key and stores it in a local plaintext JSON file. <br>\nMitigation: Use a dedicated low-privilege API key, avoid sharing sensitive keys, and rotate any key that was bundled with or exposed through the package. <br>\nRisk: The skill fetches third-party match data and recent news, so availability, accuracy, and article relevance depend on external services. <br>\nMitigation: Review returned match and news details before relying on them, and avoid treating unavailable or filtered results as complete coverage. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/geison-paitra/football-tracker) <br>\n- [English output pack](references/locales/en.md) <br>\n- [Portuguese output pack](references/locales/pt-br.md) <br>\n- [football-data.org API](https://api.football-data.org/v4) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance, configuration] <br>\n**Output Format:** [Compact emoji-formatted Markdown text] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Supports English and Portuguese output; requires a football-data.org API key before match and standings lookup.] <br>\n\n## Skill Version(s): <br>\n1.1.3 (source: server release evidence and artifact config.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.3:config.json\n\n{\n  \"name\": \"football-tracker\",\n  \"version\": \"1.1.3\",\n  \"cache\": {\n    \"matches\": 900,\n    \"standings\": 3600,\n    \"news\": 1800\n  },\n  \"features\": {\n    \"multi_team\": true,\n    \"auto_discovery\": true,\n    \"news_summary\": true\n  }\n}\n\nFile v1.1.3:storage/teams.json\n\n{\n  \"chelsea\": 61,\n  \"bournemouth\": 1044,\n  \"manchester united\": 66,\n  \"manchester city\": 65,\n  \"tottenham\": 73,\n  \"arsenal\": 57,\n  \"vasco da gama\": 1780,\n  \"coritiba\": 4241,\n  \"chapecoense\": 1772,\n  \"sao paulo\": 1776,\n  \"santos\": 6685,\n  \"arsenal fc\": 57,\n  \"ars\": 57,\n  \"aston villa fc\": 58,\n  \"aston villa\": 58,\n  \"avl\": 58,\n  \"chelsea fc\": 61,\n  \"che\": 61,\n  \"everton fc\": 62,\n  \"everton\": 62,\n  \"eve\": 62,\n  \"fulham fc\": 63,\n  \"fulham\": 63,\n  \"ful\": 63,\n  \"liverpool fc\": 64,\n  \"liverpool\": 64,\n  \"liv\": 64,\n  \"manchester city fc\": 65,\n  \"man city\": 65,\n  \"mci\": 65,\n  \"manchester united fc\": 66,\n  \"man united\": 66,\n  \"mun\": 66,\n  \"newcastle united fc\": 67,\n  \"newcastle\": 67,\n  \"new\": 67,\n  \"sunderland afc\": 71,\n  \"sunderland\": 71,\n  \"sun\": 71,\n  \"tottenham hotspur fc\": 73,\n  \"tot\": 73,\n  \"wolverhampton wanderers fc\": 76,\n  \"wolverhampton\": 76,\n  \"wol\": 76,\n  \"burnley fc\": 328,\n  \"burnley\": 328,\n  \"bur\": 328,\n  \"leeds united fc\": 341,\n  \"leeds united\": 341,\n  \"lee\": 341,\n  \"nottingham forest fc\": 351,\n  \"nottingham\": 351,\n  \"not\": 351,\n  \"crystal palace fc\": 354,\n  \"crystal palace\": 354,\n  \"cry\": 354,\n  \"brighton & hove albion fc\": 397,\n  \"brighton hove\": 397,\n  \"bha\": 397,\n  \"brentford fc\": 402,\n  \"brentford\": 402,\n  \"bre\": 402,\n  \"west ham united fc\": 563,\n  \"west ham\": 563,\n  \"whu\": 563,\n  \"afc bournemouth\": 1044,\n  \"bou\": 1044,\n  \"fluminense fc\": 1765,\n  \"fluminense\": 1765,\n  \"flu\": 1765,\n  \"ca mineiro\": 1766,\n  \"mineiro\": 1766,\n  \"cam\": 1766,\n  \"gremio fbpa\": 1767,\n  \"gremio\": 1767,\n  \"fbp\": 1767,\n  \"ca paranaense\": 1768,\n  \"paranaense\": 1768,\n  \"cap\": 1768,\n  \"se palmeiras\": 1769,\n  \"palmeiras\": 1769,\n  \"pal\": 1769,\n  \"botafogo fr\": 1770,\n  \"botafogo\": 1770,\n  \"bot\": 1770,\n  \"cruzeiro ec\": 1771,\n  \"cruzeiro\": 1771,\n  \"cru\": 1771,\n  \"chapecoense af\": 1772,\n  \"cha\": 1772,\n  \"sao paulo fc\": 1776,\n  \"pau\": 1776,\n  \"ec bahia\": 1777,\n  \"bahia\": 1777,\n  \"bah\": 1777,\n  \"sc corinthians paulista\": 1779,\n  \"corinthians\": 1779,\n  \"cor\": 4241,\n  \"cr vasco da gama\": 1780,\n  \"vas\": 1780,\n  \"ec vitoria\": 1782,\n  \"vitoria\": 1782,\n  \"vit\": 1782,\n  \"cr flamengo\": 1783,\n  \"flamengo\": 1783,\n  \"fla\": 1783,\n  \"coritiba fbc\": 4241,\n  \"rb bragantino\": 4286,\n  \"bragantino\": 4286,\n  \"rbb\": 4286,\n  \"clube do remo\": 4287,\n  \"cre\": 4287,\n  \"mirassol fc\": 4364,\n  \"mirassol\": 4364,\n  \"mir\": 4364,\n  \"sc internacional\": 6684,\n  \"internacional\": 6684,\n  \"sci\": 6684,\n  \"santos fc\": 6685,\n  \"san\": 6685\n}\n\nFile v1.1.3:storage/user_config.json\n\n{\n  \"918573385\": {\n    \"api_key\": \"989fd86e524a4ec7a5c42ee5e43673d3\"\n  }\n}\n\nFile v1.1.3:agents/openai.yaml\n\ninterface:\n  display_name: \"Football Tracker\"\n  short_description: \"News and match updates for football teams\"\n  default_prompt: \"Use $football-tracker to track football teams and summarize last match, next match, kickoff time, broadcasters, standings, and recent news. Support English and Portuguese output when requested.\"\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.2: 15 files, 11854 bytes\n\nFiles: agents/openai.yaml (367b), config.json (231b), main.py (4486b), references/locales/en.md (550b), references/locales/pt-br.md (615b), services/football_api.py (5800b), services/news_service.py (4427b), services/team_resolver.py (3232b), SKILL.md (1986b), storage/teams.json (130b), storage/user_config.json (75b), storage/user_config.py (736b), utils/cache.py (704b), utils/formatter.py (2196b), _meta.json (135b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: football-tracker\ndescription: Track football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nTrack football teams and summarize their current status in a compact, emoji-friendly format.\n\nThis skill is bilingual:\n\n- English is supported for instructions and output.\n- Portuguese (pt-BR) remains supported for the existing Telegram style.\n- The agent can force a locale with `locale=en`, `lang=en`, `locale=pt`, or `lang=pt`.\n\n## Usage\n\n- One team: `vasco`\n- Multiple teams: `vasco, chelsea, bournemouth`\n- Force English output: `locale=en Chelsea`\n- Force Portuguese output: `locale=pt Chelsea`\n\n## Expected output\n\nFor each team, return:\n\n- team name\n- last match\n- next match\n- kickoff time in the user's local timezone when available, plus UTC\n- broadcasters / where-to-watch info for the next match when available\n- competition\n- standings\n- recent news\n\n## Dependencies\n\n- No extra Python packages are required.\n- Uses only the Python standard library.\n- Requires a valid `API_KEY` from `football-data.org` in `storage/user_config.json`.\n\n## Notes\n\n- If the data source cannot confidently resolve a team, return `N/A` for missing match data and still provide news.\n- Keep the user-facing output in the requested locale and preserve the emoji-based layout.\n- Always show kickoff time in the local timezone plus UTC.\n- If broadcaster data is unavailable, say so rather than guessing.\n- News results are filtered to exclude previews, lineups, kickoff-time posts, and where-to-watch articles.\n- Append a localized beta notice and the current version at the end of every result.\n- This build focuses on bug fixes and discovery improvements.\n- If timezone detection is unavailable, fall back to the machine/system timezone.\n\n## Language packs\n\n- `references/locales/en.md` for the English output pack\n- `references/locales/pt-br.md` for the Portuguese output pack\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1779225797432\n}\n\nFile v1.1.2:references/locales/en.md\n\n# Football Tracker - English Output Pack\n\nUse this pack when the user requests English output or the agent is operating in English.\n\n## Output layout\n\n- ⚽ Team name\n- 🏟️ Last match\n- 📅 Next match\n- ⏰ Kickoff\n- 📺 Broadcast\n- 🏆 Competition\n- 📊 Standing\n- 📰 Recent news\n\n## Rules\n\n- Keep the format compact and emoji-based.\n- Show kickoff time in local timezone plus UTC when available.\n- If broadcast data is unavailable, show `Unavailable`.\n- If team data is uncertain, keep `N/A` for missing match fields and still show news.\n\nFile v1.1.2:references/locales/pt-br.md\n\n# Football Tracker - Pacote de Saída em Português\n\nUse este pacote quando o usuário pedir saída em português ou o agente estiver operando em pt-BR.\n\n## Estrutura da saída\n\n- ⚽ Time\n- 🏟️ Último jogo\n- 📅 Próxima partida\n- ⏰ Horário do jogo\n- 📺 Transmissão\n- 🏆 Campeonato\n- 📊 Posição\n- 📰 Últimas notícias\n\n## Regras\n\n- Manter o formato curto e com emojis.\n- Exibir o horário no fuso local + UTC quando disponível.\n- Se a transmissão não for encontrada, mostrar `Indisponível`.\n- Se os dados do time forem incertos, manter `N/A` nos campos faltantes e ainda trazer notícias.\n\nFile v1.1.2:config.json\n\n{\n  \"name\": \"football-tracker\",\n  \"version\": \"1.1.2\",\n  \"cache\": {\n    \"matches\": 900,\n    \"standings\": 3600,\n    \"news\": 1800\n  },\n  \"features\": {\n    \"multi_team\": true,\n    \"auto_discovery\": true,\n    \"news_summary\": true\n  }\n}\n\nFile v1.1.2:storage/teams.json\n\n{\n  \"chelsea\": 61,\n  \"bournemouth\": 1044,\n  \"manchester united\": 66,\n  \"manchester city\": 65,\n  \"tottenham\": 73,\n  \"arsenal\": 57\n}\n\nFile v1.1.2:storage/user_config.json\n\n{\n  \"918573385\": {\n    \"api_key\": \"989fd86e524a4ec7a5c42ee5e43673d3\"\n  }\n}\n\nFile v1.1.2:agents/openai.yaml\n\ninterface:\n  display_name: \"Football Tracker\"\n  short_description: \"News and match updates for football teams\"\n  default_prompt: \"Use $football-tracker to track football teams and summarize last match, next match, kickoff time, broadcasters, standings, and recent news. Support English and Portuguese output when requested.\"\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.1: 15 files, 10498 bytes\n\nFiles: agents/openai.yaml (367b), config.json (231b), main.py (4158b), references/locales/en.md (550b), references/locales/pt-br.md (615b), services/football_api.py (5800b), services/news_service.py (2735b), services/team_resolver.py (2014b), SKILL.md (1732b), storage/teams.json (43b), storage/user_config.json (75b), storage/user_config.py (736b), utils/cache.py (704b), utils/formatter.py (1800b), _meta.json (135b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: football-tracker\ndescription: Track football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nTrack football teams and summarize their current status in a compact, emoji-friendly format.\n\nThis skill is bilingual:\n\n- English is supported for instructions and output.\n- Portuguese (pt-BR) remains supported for the existing Telegram style.\n- The agent can force a locale with `locale=en`, `lang=en`, `locale=pt`, or `lang=pt`.\n\n## Usage\n\n- One team: `vasco`\n- Multiple teams: `vasco, chelsea, bournemouth`\n- Force English output: `locale=en Chelsea`\n- Force Portuguese output: `locale=pt Chelsea`\n\n## Expected output\n\nFor each team, return:\n\n- team name\n- last match\n- next match\n- kickoff time in the user's local timezone when available, plus UTC\n- broadcasters / where-to-watch info for the next match when available\n- competition\n- standings\n- recent news\n\n## Dependencies\n\n- No extra Python packages are required.\n- Uses only the Python standard library.\n- Requires a valid `API_KEY` from `football-data.org` in `storage/user_config.json`.\n\n## Notes\n\n- If the data source cannot confidently resolve a team, return `N/A` for missing match data and still provide news.\n- Keep the user-facing output in the requested locale and preserve the emoji-based layout.\n- Always show kickoff time in the local timezone plus UTC.\n- If broadcaster data is unavailable, say so rather than guessing.\n- If timezone detection is unavailable, fall back to the machine/system timezone.\n\n## Language packs\n\n- `references/locales/en.md` for the English output pack\n- `references/locales/pt-br.md` for the Portuguese output pack\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1779223041995\n}\n\nFile v1.1.1:references/locales/en.md\n\n# Football Tracker - English Output Pack\n\nUse this pack when the user requests English output or the agent is operating in English.\n\n## Output layout\n\n- ⚽ Team name\n- 🏟️ Last match\n- 📅 Next match\n- ⏰ Kickoff\n- 📺 Broadcast\n- 🏆 Competition\n- 📊 Standing\n- 📰 Recent news\n\n## Rules\n\n- Keep the format compact and emoji-based.\n- Show kickoff time in local timezone plus UTC when available.\n- If broadcast data is unavailable, show `Unavailable`.\n- If team data is uncertain, keep `N/A` for missing match fields and still show news.\n\nFile v1.1.1:references/locales/pt-br.md\n\n# Football Tracker - Pacote de Saída em Português\n\nUse este pacote quando o usuário pedir saída em português ou o agente estiver operando em pt-BR.\n\n## Estrutura da saída\n\n- ⚽ Time\n- 🏟️ Último jogo\n- 📅 Próxima partida\n- ⏰ Horário do jogo\n- 📺 Transmissão\n- 🏆 Campeonato\n- 📊 Posição\n- 📰 Últimas notícias\n\n## Regras\n\n- Manter o formato curto e com emojis.\n- Exibir o horário no fuso local + UTC quando disponível.\n- Se a transmissão não for encontrada, mostrar `Indisponível`.\n- Se os dados do time forem incertos, manter `N/A` nos campos faltantes e ainda trazer notícias.\n\nFile v1.1.1:config.json\n\n{\n  \"name\": \"football-tracker\",\n  \"version\": \"1.1.1\",\n  \"cache\": {\n    \"matches\": 900,\n    \"standings\": 3600,\n    \"news\": 1800\n  },\n  \"features\": {\n    \"multi_team\": true,\n    \"auto_discovery\": true,\n    \"news_summary\": true\n  }\n}\n\nFile v1.1.1:storage/teams.json\n\n{\n  \"chelsea\": 61,\n  \"bournemouth\": 1044\n}\n\nFile v1.1.1:storage/user_config.json\n\n{\n  \"918573385\": {\n    \"api_key\": \"989fd86e524a4ec7a5c42ee5e43673d3\"\n  }\n}\n\nFile v1.1.1:agents/openai.yaml\n\ninterface:\n  display_name: \"Football Tracker\"\n  short_description: \"News and match updates for football teams\"\n  default_prompt: \"Use $football-tracker to track football teams and summarize last match, next match, kickoff time, broadcasters, standings, and recent news. Support English and Portuguese output when requested.\"\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 13 files, 7211 bytes\n\nFiles: agents/openai.yaml (285b), config.json (243b), main.py (2602b), services/football_api.py (2496b), services/news_service.py (2595b), services/team_resolver.py (2014b), SKILL.md (847b), storage/teams.json (43b), storage/user_config.json (75b), storage/user_config.py (736b), utils/cache.py (704b), utils/formatter.py (482b), _meta.json (135b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: football-tracker\ndescription: Track football teams and return last match, next match, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nSkill para acompanhar novidades e atualizacoes de times de futebol em tempo real.\n\n## Uso\n\n- Um time: `vasco`\n- Varios times: `vasco, chelsea, bournemouth`\n\n## Saida esperada\n\nPara cada time, responder com:\n\n- nome do time\n- ultimo jogo\n- proxima partida\n- campeonato\n- posicao na tabela\n- ultimas noticias\n\n## Dependencias\n\n- Nao precisa instalar pacotes Python extras.\n- Usa apenas a biblioteca padrao do Python.\n- Precisa de uma `API_KEY` valida do `football-data.org` em `storage/user_config.json`.\n\n## Notas\n\n- Se a base nao cobrir bem um time, mostrar noticias e usar `N/A` nos campos sem cobertura confiavel.\n- Manter a formatacao curta e com emojis.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779212259285\n}\n\nFile v1.0.0:config.json\n\n{\r\n  \"name\": \"football-tracker\",\r\n  \"version\": \"1.0.0\",\r\n  \"cache\": {\r\n    \"matches\": 900,\r\n    \"standings\": 3600,\r\n    \"news\": 1800\r\n  },\r\n  \"features\": {\r\n    \"multi_team\": true,\r\n    \"auto_discovery\": true,\r\n    \"news_summary\": true\r\n  }\r\n}\n\nFile v1.0.0:storage/teams.json\n\n{\n  \"chelsea\": 61,\n  \"bournemouth\": 1044\n}\n\nFile v1.0.0:storage/user_config.json\n\n{\n  \"918573385\": {\n    \"api_key\": \"989fd86e524a4ec7a5c42ee5e43673d3\"\n  }\n}\n\nFile v1.0.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Football Tracker\"\n  short_description: \"News and match updates for football teams\"\n  default_prompt: \"Use $football-tracker to track football teams and summarize last match, next match, standings, and recent news.\"\npolicy:\n  allow_implicit_invocation: true","readmeExcerpt":"Skill: Football Tracker Match & News AI Owner: geison-paitra Summary: Football teams, World Cup 2026, and recent news Tags: latest:1.2.0 Version history: v1.2.0 | 2026-05-28T19:14:51.915Z | user FIFA World Cup 2026 support and data improvements. - Added full internal coverage for all FIFA World Cup 2026 matches, venues, and group tables (no API key required for national teams). - National teams from World Cup 2026 ca","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: football-tracker\ndescription: Track football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n---\n\n# Football Tracker AI\n\nTrack football teams and the FIFA World Cup 2026 in a compact, emoji-friendly format.\n\nThis skill is bilingual:\n\n- English is supported for instructions and output.\n- Portuguese (pt-BR) remains supported for the existing Telegram style.\n- The agent can force a locale with `locale=en`, `lang=en`, `locale=pt`, or `lang=pt`.\n\n## Usage\n\n- One team: `vasco`\n- Multiple teams: `vasco, chelsea, bournemouth`\n- Force English output: `locale=en Chelsea`\n- Force Portuguese output: `locale=pt Chelsea`\n- World Cup team by name only: `Brazil`\n- World Cup team plus locale: `locale=pt Brazil`\n- National teams from FIFA World Cup 2026 can be requested by name only, without API key, for example: `Brasil`, `Japão`, `Noruega`\n\n## Expected output\n\nFor each team, return:\n\n- team name\n- last match\n- next match\n- when available, the next match venue prefixed with `🏟️`\n- broadcasters / where-to-watch info for the next match when available\n- competition\n- standings\n- recent news\n\nFor FIFA World Cup 2026 teams:\n\n- team-name-only lookup should work for national teams the same way it works for clubs\n- the internal 2026 schedule base is fully populated for all 104 matches, all 12 groups, all venue/date entries, and the knockout placeholders\n- during the group stage, also show the group table for the selected team\n- always keep the table/standings block before the news block\n- keep the knockout path internal: round of 32, round of 16, quarter-finals, semi-finals, bronze final, and final\n- use the internal 2026 schedule data first instead of re-searching the web for the fixed tournament structure\n- when the output is pt-BR, localize World Cup team names to Portuguese\n- show the next-match venue as state/city when the internal FIFA schedule has it; otherwise keep the venue line as unavailable instead of guessing\n\n## Dependencies\n\n- No extra Python packages are required.\n- Uses only the Python standard library.\n- Requires a valid `API_KEY` from `football-data.org` in `storage/user_config.json`.\n\n## First Use\n\n- If no API key is stored for the user, ask for `set_api_key SUA_KEY` only for club lookups.\n- National teams from the FIFA World Cup 2026 must work without any API key prompt.\n- Keep support for `API_KEY:` as a silent compatibility fallback if needed, but do not suggest it to the user.\n- Make it explicit that the user can send the key and you will complete the setup for them.\n- Keep the setup flow internal to the skill; do not require the user to search for external instructions.\n- After the key is stored, continue with the normal team lookup flow.\n\n## Notes\n\n- If the data source cannot confidently resolve a team, return `N/A` for missing match data and still provide news.\n- Keep the user-facing output in the requested locale and preserve the emoji-based layout"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e92gpr6vam5066hh3jjxbsh871ywy\",\n  \"slug\": \"football-tracker\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779995691915\n}"},{"path":"references/locales/en.md","content":"# Football Tracker - English Output Pack\n\nUse this pack when the user requests English output or the agent is operating in English.\n\n## Output layout\n\n- ⚽ Team name\n- 🏟️ Last match\n- 📅 Next match\n- 📺 Broadcast\n- 🏆 Competition\n- 📊 Standing\n- 📰 Recent news\n\n## Rules\n\n- Keep the format compact and emoji-based.\n- If broadcast data is unavailable, show `Unavailable`.\n- For FIFA World Cup 2026 teams, localize team names only when the output locale asks for it.\n- If the next-match venue is known internally, show the state/city with `🏟️`; otherwise keep it as `Unavailable` instead of guessing.\n- The standings/table must always appear before the news block.\n- For the FIFA World Cup 2026 build, keep kickoff embedded in the next-match line and do not print a separate kickoff field.\n- If team data is uncertain, keep `N/A` for missing match fields and still show news.\n- Prefer recent, football-specific news with a visible source."},{"path":"references/locales/pt-br.md","content":"# Football Tracker - Pacote de Saída em Português\n\nUse este pacote quando o usuário pedir saída em português ou o agente estiver operando em pt-BR.\n\n## Estrutura da saída\n\n- ⚽ Time\n- 🏟️ Último jogo\n- 📅 Próxima partida\n- 📺 Transmissão\n- 🏆 Campeonato\n- 📊 Posição\n- 📰 Últimas notícias\n\n## Regras\n\n- Manter o formato curto e com emojis.\n- Se a transmissão não for encontrada, mostrar `Indisponível`.\n- Para seleções da Copa do Mundo 2026, traduzir o nome do time para pt-BR quando a saída estiver em português.\n- Se a localização da próxima partida estiver na base interna, exibir estado/cidade com `🏟️`; se não houver confiança, mostrar `Indisponível` e não adivinhar.\n- A tabela/posição deve aparecer sempre antes do bloco de notícias.\n- Para a Copa do Mundo 2026, o horário deve ficar embutido na linha da próxima partida, sem um campo separado de horário.\n- Se os dados do time forem incertos, manter `N/A` nos campos faltantes e ainda trazer notícias.\n- Priorizar notícias recentes, específicas de futebol e com fonte identificada."},{"path":"skill-card.md","content":"## Description:\n\nTrack football teams and return last match, next match, kickoff time, broadcasters, standings, and recent news in a compact emoji-formatted summary.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[geison-paitra](https://clawhub.ai/user/geison-paitra)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and sports fans use this skill to track football clubs and FIFA World Cup 2026 national teams. It returns match status, kickoff details, venue, broadcasters, standings, group tables when available, and recent football news in English or Portuguese.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill stores football-data.org API keys locally in plaintext and the artifact includes a populated user_config.json.\n\nMitigation: Revoke or rotate the bundled key before release, remove user_config.json from the shipped artifact, and store user secrets outside the skill package.\n\nRisk: The skill depends on external sports and news services for club lookups, broadcasters, standings, and recent news.\n\nMitigation: Review returned sports and news data before relying on it, and prefer the internal World Cup 2026 schedule only for the tournament structure it explicitly covers.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/geison-paitra/skills/football-tracker)\n- [FIFA World Cup 2026 schedule source](http://digitalhub.fifa.com/asset/4b5d4417-3343-4732-9cdf-14b6662af407/FWC26-Match-Schedule_English.pdf)\n- [football-data.org API v4](https://api.football-data.org/v4)\n- [Google News RSS search](https://news.google.com/rss/search?q=)\n- [English output pack](references/locales/en.md)\n- [Portuguese output pack](references/locales/pt-br.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, configuration, guidance]\n\n**Output Format:** [Compact Markdown-style football summaries with emoji labels and localized English or Portuguese text.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include setup guidance for a football-data.org API key, N/A placeholders for unavailable match data, and beta/version notices.]\n\n## Skill Version(s):\n\n1.2.0 (source: server release metadata and config.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1860,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T00:06:23.894Z","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-10-11T00:06:23.894Z","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":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:56:42.855Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}