AnyCap World Cup Predict Read this entire file before starting. It defines a reliable workflow for turning a player name (or a whole squad) into structured, verifiable World Cup pre-match intel using AnyCap, then optionally calling a winner and scoreline for fun. World Cup match prediction and pre-match intel for serious football fans. Turn player names and lineups into structured, verifiable profiles, stats, and matchup briefings so you can read a World Cup matchup before kickoff -- then, if you want, finish with a for-fun prediction (likely winner + scoreline + confidence). Built for World…

\\t'\n```\n\n## Performance\n\n- If your runtime supports concurrency, run several grounding calls in parallel (background jobs) and collect outputs, rather than strictly sequential. Respect rate limits -- back off on `RATE_LIMITED`.\n- For large lists, consider `--query --no-crawl` first to confirm each name resolves to a real player before spending grounding credits.\n\n## Robustness\n\n- Skip and log any player whose profile fails to parse as JSON; do not abort the whole batch.\n- Record `_retrieved_at` once per run; club/number are point-in-time.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":2495,"content_sha256":"a4e981eb320111a26b582abe2c2cf9ecd529f3c1151936402426f92fd7c5fa9b"},{"filename":"references/history.md","content":"# Historical World Cup Context\n\nUse past-tournament history to add context to a matchup: format, group-stage and knockout results, and the key players who decided each edition. Curated high-confidence facts are baked in; full brackets and standings are pulled live to stay accurate.\n\n> History informs context, not outcomes. Past performance does not determine future results. Surface the data; let the user judge.\n\n## Tournament format\n\n- **Group stage**: teams are drawn into groups and play a round-robin; the top finishers advance. Points: win 3, draw 1, loss 0. Tiebreakers: goal difference, goals scored, then head-to-head / fair-play / draw depending on the edition's rules.\n- **Knockout stage**: single-elimination from the round of 16 (or round of 32 in the 48-team era) through quarter-finals, semi-finals, third-place play-off, and final. Draws go to extra time, then penalties.\n- **Format changes by edition** -- the 1998-2022 editions used 32 teams in 8 groups of 4 (top 2 advance to a round of 16). The **2026 edition expands to 48 teams** with a new group/knockout structure (round of 32). Confirm the exact format for the edition in question via live retrieval below rather than assuming.\n\n## Baked-in: finals & podium (high confidence)\n\n| Year | Host | Champion | Runner-up | Third | Final |\n|------|------|----------|-----------|-------|-------|\n| 2022 | Qatar | Argentina | France | Croatia | 3-3 (4-2 pens) |\n| 2018 | Russia | France | Croatia | Belgium | 4-2 |\n| 2014 | Brazil | Germany | Argentina | Netherlands | 1-0 (a.e.t.) |\n| 2010 | South Africa | Spain | Netherlands | Germany | 1-0 (a.e.t.) |\n| 2006 | Germany | Italy | France | Germany | 1-1 (5-3 pens) |\n\nAll-time titles: Brazil 5; Germany 4; Italy 4; Argentina 3; France 2; Uruguay 2; England, Spain 1 each.\n\n## Baked-in: key players per edition (high confidence)\n\n| Year | Golden Ball (best player) | Golden Boot (top scorer) | Best Young Player |\n|------|---------------------------|--------------------------|-------------------|\n| 2022 | Lionel Messi (Argentina) | Kylian Mbappé (France, 8) | Enzo Fernández (Argentina) |\n| 2018 | Luka Modrić (Croatia) | Harry Kane (England, 6) | Kylian Mbappé (France) |\n| 2014 | Lionel Messi (Argentina) | James Rodríguez (Colombia, 6) | Paul Pogba (France) |\n| 2010 | Diego Forlán (Uruguay) | Thomas Müller (Germany, 5) | Thomas Müller (Germany) |\n| 2006 | Zinedine Zidane (France) | Miroslav Klose (Germany, 5) | Lukas Podolski (Germany) |\n\nFor editions before 2006, or any detail not in these tables, verify via live retrieval rather than relying on memory.\n\n## Live: full group-stage standings\n\nBaking every group's table for every edition is large and error-prone -- pull it on demand and verify:\n\n```bash\nanycap search --prompt 'Final group-stage standings for the \u003cYEAR> World Cup, group \u003cX>, as JSON array of {team, played, won, drawn, lost, goals_for, goals_against, points, advanced(boolean)}. JSON only.' \\\n | jq -r '.data.content'\n```\n\nVerify the advancing teams against Wikipedia's tournament page (see [verify.md](verify.md)).\n\n## Live: knockout bracket & results\n\n```bash\nanycap search --prompt 'Knockout-stage results for the \u003cYEAR> World Cup as JSON: round_of_16, quarter_finals, semi_finals, third_place, final -- each an array of {team_a, team_b, score, winner, decided_by(regulation|extra_time|penalties)}. JSON only.' \\\n | jq -r '.data.content'\n```\n\nCaveats:\n\n- Scores for matches decided on penalties should record the regulation score plus the shootout result.\n- For a single team's run, ask for \"the \u003cCOUNTRY> knockout path in the \u003cYEAR> World Cup\" instead of the full bracket.\n\n## Live: key players for a tournament or team\n\nGo beyond the baked-in awards (full top-scorer lists, standout performers, a team's decisive players):\n\n```bash\nanycap search --prompt 'Key players of the \u003cYEAR> World Cup as JSON: golden_ball, golden_boot{player,goals}, top_scorers[{player,team,goals}], standout_performers[{player,team,note}]. JSON only.' \\\n | jq -r '.data.content'\n```\n\n```bash\nanycap search --prompt 'The \u003cCOUNTRY> key players at the \u003cYEAR> World Cup as JSON array of {player, position, goals, assists, note}. JSON only.' \\\n | jq -r '.data.content'\n```\n\nVerify any player figure you will present as fact against Wikipedia (see [verify.md](verify.md)).\n\n## Live: team tournament history\n\n```bash\nanycap search --prompt 'World Cup history for the \u003cCOUNTRY> national football team as JSON: titles, last_title_year, best_finish, total_appearances, current_world_ranking. Numbers only, JSON only.' \\\n | jq -r '.data.content'\n```\n\n## Live: head-to-head between two teams\n\n```bash\nanycap search --prompt 'Head-to-head record between \u003cTEAM A> and \u003cTEAM B> national football teams as JSON: total_meetings, team_a_wins, team_b_wins, draws, last_meeting_date, last_meeting_result, world_cup_meetings. JSON only.' \\\n | jq -r '.data.content'\n```\n\nCaveats:\n\n- H2H aggregates vary by source (friendlies vs competitive matches counted differently). Note the ambiguity rather than presenting one number as definitive.\n- For a World Cup-only record, say so explicitly in the prompt.\n\n## Folding history into matchup intel\n\nWhen sizing up Team A vs Team B (see [batch.md](references/batch.md)):\n\n1. Build both squads (profiles + form/stats).\n2. Add each team's tournament history and recent World Cup runs (group + knockout above).\n3. Add the head-to-head record and any shared knockout history.\n4. Note key players on each side (baked-in awards + live per-team key players).\n5. Present the layers side by side -- **squad quality**, **current form**, **historical context (group + knockout + key players)**. Then optionally finish with a for-fun winner + scoreline call per [predict.md](predict.md), kept separate from the factual layers and always followed by its disclaimer.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":5815,"content_sha256":"9aeb7267d890616c16165c82db6e985cd0d13a74ed0562621f1119d979c21c1a"},{"filename":"references/lookup.md","content":"# Single Player Lookup & Disambiguation\n\nThe default path for one player's basic info. Optimize for a clean structured answer in as few calls as possible.\n\n## Step 1 -- Grounding structured profile\n\nAsk for JSON explicitly and parse with `jq`:\n\n```bash\nanycap search --prompt 'Give the basic profile of footballer \u003cPLAYER NAME> as JSON with fields: full_name, date_of_birth, nationality, height, position, current_club, shirt_number, national_team. Only the JSON.' \\\n | jq -r '.data.content'\n```\n\nNotes:\n\n- Put **\"Only the JSON.\"** at the end so the model does not wrap the answer in prose.\n- The answer may arrive inside a ```json fenced block. Strip the fences before re-parsing if you need to `jq` the inner object.\n- Costs 5 credits.\n\n## Step 2 -- Disambiguation\n\nMany footballers share names (e.g. multiple \"Luis García\", \"Danilo\", \"Rodrigo\"). Lock onto the right person:\n\n**Option A -- add context to the prompt** (cheapest):\n\n```bash\nanycap search --prompt 'Basic profile as JSON for the footballer named Danilo who is a Brazilian defender currently at Juventus. Fields: full_name, date_of_birth, nationality, height, position, current_club, shirt_number, national_team. Only the JSON.' \\\n | jq -r '.data.content'\n```\n\nUse any distinguishing context you have: nationality, position, birth year, current club, national team, World Cup squad.\n\n**Option B -- pre-scan candidates with general search** (1 credit, no crawl):\n\n```bash\nanycap search --query \"\u003cPLAYER NAME> footballer profile club nationality\" --no-crawl --max-results 6 \\\n | jq -r '.data.results[]? | \"\\(.title) -- \\(.url)\"'\n```\n\nInspect titles/URLs (Wikipedia disambiguation pages, club pages) to pick the correct player, then run Step 1 with the confirmed identity, or jump to [verify.md](verify.md) to read the exact Wikipedia page.\n\n## Step 3 -- Normalize\n\nMap the result onto the SKILL.md output schema:\n\n- Convert dates to `YYYY-MM-DD`.\n- Use `null` (not empty string) for unknown fields.\n- Record the retrieval date for volatile fields (`current_club`, `shirt_number`).\n\n## When to escalate to verification\n\nEscalate to [verify.md](verify.md) when:\n\n- The user needs guaranteed accuracy (publishing, official documents).\n- Grounding returns a suspicious or internally inconsistent value.\n- The player recently transferred and `current_club` may be stale.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":2333,"content_sha256":"8bd7c839e13990629677d786e19a00ad18cff0ff1ac5cb6b741e8073c8c4644a"},{"filename":"references/predict.md","content":"# Prediction (for fun)\n\nTurn the factual matchup layers into an optional, lighthearted call: a likely\nwinner, a playful scoreline, and a confidence label. This is the entertainment\nlayer of the skill -- it sits **after** the data, never replaces it.\n\n> Predictions inform fun, not outcomes. They are data-informed guesses, not\n> statements of fact, odds, or betting advice. Surface the reasoning; let the\n> reader enjoy and judge.\n\n## When to use\n\n- The user explicitly wants a \"prediction\", \"who will win\", \"scoreline\", \"your\n call\", or similar.\n- You have already gathered the factual layers (squad quality, current form,\n historical context, head-to-head) for the matchup. Do not predict from\n nothing -- run the matchup workflow first.\n\n## Method: weigh the signals, then call it\n\nBase every prediction on the data you already retrieved. Weigh, in rough order:\n\n1. **Quality gap** -- FIFA ranking and squad strength (key players, club level).\n2. **Current form** -- recent results; a hot/cold streak shifts the call.\n3. **Head-to-head** -- prior meetings, especially recent or competitive ones.\n4. **Context** -- World Cup pedigree, availability/injuries, venue if relevant.\n\nTranslate the balance into a scoreline that matches the lean:\n\n- **Lopsided** (big ranking + form gap): a comfortable margin, e.g. `2-0`, `3-1`.\n- **Edge** (one side slightly ahead): a tight scoreline, e.g. `2-1`, `1-0`.\n- **Even** (signals cancel out): a draw is a legitimate, honest call, e.g.\n `1-1`. Do not force a winner when the data does not support one.\n\nAttach a **confidence** label -- `Low` / `Medium` / `High` -- reflecting how\nstrongly the signals agree. Conflicting signals = lower confidence.\n\n## Custom dimensions (user-defined)\n\nThe four signals above are the **default** model. Let the user shape the call by\nadding, removing, or re-weighting dimensions. Treat any dimension the user names\nas a first-class input.\n\nHow to handle a user-supplied dimension:\n\n1. **Capture it.** Restate the dimension(s) and any weight the user gave (e.g.\n \"home advantage = high\", \"ignore head-to-head\", \"weight form 50%\").\n2. **Get the data if you don't have it.** If the dimension needs a fact you have\n not retrieved, pull it with one grounding call before predicting -- do not\n guess. Example:\n\n ```bash\n anycap search --prompt 'For the \u003cTEAM A> vs \u003cTEAM B> match, summarize as JSON: {\"home_advantage\":{\"host\":string,\"note\":string},\"injuries\":[{\"team\":string,\"player\":string,\"status\":string}],\"rest_days\":{\"team_a\":int,\"team_b\":int},\"weather\":{\"venue\":string,\"forecast\":string}}. JSON only.' \\\n | jq -r '.data.content'\n ```\n\n3. **Fold it into the weighing.** Apply the user's weights when you balance the\n signals. If the user gives explicit weights (percentages or High/Med/Low),\n honor them; otherwise weight reasonably and say how you weighted.\n4. **Show the dimensions used.** List the final dimension set (defaults + custom)\n so the reader sees what drove the call.\n\nCommon custom dimensions users ask for:\n\n| Dimension | Typical signal |\n|-----------|----------------|\n| Home / host advantage | Host nation, venue familiarity, crowd, altitude |\n| Injuries / availability | Key players out or doubtful |\n| Rest & fatigue | Days since last match, travel, fixture congestion |\n| Weather / climate | Heat, humidity, rain at the venue |\n| Head coach / tactics | Managerial quality, style matchup |\n| Stakes / motivation | Must-win, already qualified, dead rubber |\n| Set-piece threat | Aerial strength, dangerous takers |\n| \"Vibes\" / gut feel | Explicitly non-scientific; label it as such |\n\nRules for custom dimensions:\n\n- A dimension must map to something observable. If it cannot be sourced or\n reasoned about, say so and exclude it rather than inventing data.\n- The user can override or drop defaults (e.g. \"don't use FIFA ranking\"). Respect\n that, and note which defaults were dropped.\n- More custom dimensions do not mean higher confidence. If user-weighted signals\n conflict, lower the confidence accordingly.\n- The disclaimer below is still mandatory, no matter which dimensions are used.\n\n## Output shape\n\nRender the prediction as its own block, separate from the factual tables:\n\n```text\nPrediction (for fun): \u003cWinner> to win, \u003cscoreline> · Confidence: \u003cLow|Medium|High>\nDimensions: \u003cdefaults used> [+ \u003ccustom dimensions / weights, if any>]\nWhy: \u003cone or two sentences tying the call to the dimensions above>\n```\n\nFor a draw call, write `Draw, \u003cscoreline>` instead of a winner.\n\n## Required disclaimer\n\nEvery response that contains a prediction MUST end with this disclaimer (or a\nclose paraphrase in the user's language):\n\n> **Disclaimer:** This prediction is for entertainment only. It is a\n> data-informed guess, not a statement of fact, odds, or betting advice. Real\n> matches are unpredictable -- please don't wager based on it.\n\nA prediction without this disclaimer is incomplete output. Do not omit it, even\nif the user asks you to.\n\n## Guardrails\n\n- Keep the factual layers intact and clearly labeled; the prediction is additive.\n- Do not invent stats to justify a call -- use what was retrieved.\n- Do not output probabilities or odds as if they were measured facts.\n- Do not give betting/wagering instructions or encourage gambling.\n- If asked for confidence as a percentage, you may give a casual, clearly\n non-scientific number (e.g. \"~60%, just vibes\") and still attach the\n disclaimer.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":5426,"content_sha256":"f8d52d3f634ff36364b8228923390c42debaeca4e1cbad950c463d405b4d3b23"},{"filename":"references/stats.md","content":"# Career & World Cup Stats\n\nExtend a basic profile with performance numbers. Stats are less stable than biographical fields -- treat them as best-effort and verify what matters.\n\n## Grounding stats query\n\n```bash\nanycap search --prompt 'Career stats summary for footballer \u003cPLAYER NAME>, return JSON with fields: senior_career_appearances, senior_career_goals, national_caps, national_goals, worldcup_2026_appearances, worldcup_2026_goals. Numbers only, JSON only.' \\\n | jq -r '.data.content'\n```\n\nReturns (example, verified shape):\n\n```json\n{\n \"senior_career_appearances\": 300,\n \"senior_career_goals\": 72,\n \"national_caps\": 49,\n \"national_goals\": 7,\n \"worldcup_2026_appearances\": 1,\n \"worldcup_2026_goals\": 1\n}\n```\n\n## Accuracy caveats\n\n- Numeric totals can be **approximate or slightly stale** -- they depend on what the web surfaces at call time and how the model aggregates across competitions.\n- Career totals shift after every match. Always attach `_retrieved_at`.\n- For figures that must be correct (reports, official use), verify against Wikipedia (career-statistics table) per [verify.md](verify.md). Do not rely on Transfermarkt crawling -- it is bot-blocked.\n\n## Position-aware fields\n\nTailor stat fields to the position so the output is meaningful:\n\n- **Goalkeepers**: prefer `clean_sheets`, `appearances`, `goals_conceded` over `goals`.\n- **Defenders / midfielders**: include `assists` alongside `goals`.\n- **Forwards**: `goals`, `assists`, optionally `goals_per_90`.\n\nAdjust the requested JSON fields in the prompt accordingly.\n\n## Combining with the basic profile\n\nMerge stats into the basic profile object so each player is a single record:\n\n```bash\njq -s '.[0] * .[1]' profile.json stats.json > player_full.json\n```\n\nKeep biographical fields and stats clearly grouped, and preserve `_sources` / `_retrieved_at` from both calls.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":1852,"content_sha256":"7a0b358b647e120b2e115be36167b4018155eacc6d5de6ceb958dee1b5092eec"},{"filename":"references/verify.md","content":"# Authoritative Source Verification\n\nUse this when accuracy matters more than speed. Cross-check the grounding profile against a crawlable, authoritative source.\n\n## Source reliability (verified)\n\n| Source | Crawlable via `anycap crawl`? | Use for |\n|--------|-------------------------------|---------|\n| Wikipedia (`en.wikipedia.org/wiki/\u003cPlayer>`) | Yes -- returns full Markdown | Primary verification |\n| Transfermarkt | No -- returns a `Human Verification` page (~600 chars) | Avoid crawling; use grounding instead |\n| Official FA / club sites | Sometimes; check `title` and length | Secondary confirmation |\n\nAlways inspect the crawl result before trusting it:\n\n```bash\nanycap crawl \"\u003curl>\" | jq -r '{title:.data.title, len:(.data.markdown|length)}'\n```\n\nIf `len` is small (a few hundred chars) or `title` looks like a challenge page (`Human Verification`, `Just a moment`, `Access denied`), the page is bot-blocked -- discard it and fall back to grounding or Wikipedia.\n\n## Workflow\n\n### Step 1 -- Find the exact Wikipedia URL\n\n```bash\nanycap search --query \"\u003cPLAYER NAME> footballer wikipedia\" --no-crawl --max-results 3 \\\n | jq -r '.data.results[]? | \"\\(.title) -- \\(.url)\"'\n```\n\nPick the `en.wikipedia.org/wiki/\u003cPlayer>` result (avoid disambiguation pages).\n\n### Step 2 -- Crawl Wikipedia\n\n```bash\nanycap crawl \"https://en.wikipedia.org/wiki/\u003cPlayer>\" | jq -r '.data.markdown' > /tmp/\u003cplayer>.md\n```\n\nThe infobox near the top contains date of birth, height, position, current team, and shirt number.\n\n### Step 3 -- Reconcile\n\nCompare the grounding profile (from [lookup.md](lookup.md)) against the Wikipedia infobox:\n\n- **Match** -> mark field as `verified`.\n- **Conflict** -> prefer the source that is more current for volatile fields (club/number); for stable fields (DOB, full name) Wikipedia is usually authoritative. Note the discrepancy.\n- **Missing in grounding** -> fill from Wikipedia.\n\n### Step 4 -- Annotate sources\n\nFor a verified profile, record where each value came from, e.g.:\n\n```json\n{\n \"full_name\": \"Jude Victor William Bellingham\",\n \"date_of_birth\": \"2003-06-29\",\n \"current_club\": \"Real Madrid\",\n \"_sources\": [\"grounding\", \"https://en.wikipedia.org/wiki/Jude_Bellingham\"],\n \"_retrieved_at\": \"2026-06-18\"\n}\n```\n\n## Cost note\n\nVerification adds ~2 credits per player (1 query + 1 crawl) on top of the grounding call. Only verify the fields/players that need it.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":2395,"content_sha256":"71255c00327a446ff69f1fc4ce6623889f4e774bb6cb449aab54312354369daa"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"AnyCap World Cup Predict","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"Read this entire file before starting.","type":"text","marks":[{"type":"strong"}]},{"text":" It defines a reliable workflow for turning a player name (or a whole squad) into structured, verifiable World Cup pre-match intel using AnyCap, then optionally calling a winner and scoreline for fun.","type":"text"}]}]},{"type":"paragraph","content":[{"text":"World Cup match prediction and pre-match intel for serious football fans. Turn player names and lineups into structured, verifiable profiles, stats, and matchup briefings so you can read a World Cup matchup before kickoff -- then, if you want, finish with a for-fun prediction (likely winner + scoreline + confidence). Built for World Cup squads and national-team lineups, and works for any footballer.","type":"text"}]},{"type":"paragraph","content":[{"text":"This skill is about ","type":"text"},{"text":"how to retrieve and verify player data","type":"text","marks":[{"type":"strong"}]},{"text":". For CLI command reference (flags, output, jq), read the ","type":"text"},{"text":"anycap-cli","type":"text","marks":[{"type":"code_inline"}]},{"text":" skill and its ","type":"text"},{"text":"references/search.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" / ","type":"text"},{"text":"references/crawl.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"This skill surfaces ","type":"text"},{"text":"public information","type":"text","marks":[{"type":"strong"}]},{"text":" (profiles, form, historical stats) and can finish with an optional ","type":"text"},{"text":"for-fun prediction","type":"text","marks":[{"type":"strong"}]},{"text":" (likely winner + a playful scoreline) derived from that data. It does ","type":"text"},{"text":"not","type":"text","marks":[{"type":"strong"}]},{"text":" set betting odds, output win probabilities as if they were facts, or place wagers. Every prediction must ship with the disclaimer in ","type":"text"},{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]},{"text":". Treat everything as informational and form your own judgment.","type":"text"}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Prerequisites","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"anycap","type":"text","marks":[{"type":"code_inline"}]},{"text":" CLI installed and authenticated (","type":"text"},{"text":"anycap status","type":"text","marks":[{"type":"code_inline"}]},{"text":" to verify). Read the ","type":"text"},{"text":"anycap-cli","type":"text","marks":[{"type":"code_inline"}]},{"text":" skill if setup is needed.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"jq","type":"text","marks":[{"type":"code_inline"}]},{"text":" for parsing JSON output.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Core Principle: Search Less, Not Faster","type":"text"}]},{"type":"paragraph","content":[{"text":"Do not crawl the whole web for every player. Narrow the search space first, then retrieve only what matters:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Grounding first","type":"text","marks":[{"type":"strong"}]},{"text":" -- ask for a structured profile in one shot (","type":"text"},{"text":"anycap search --prompt","type":"text","marks":[{"type":"code_inline"}]},{"text":"). This is the fastest path to clean data.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Disambiguate","type":"text","marks":[{"type":"strong"}]},{"text":" -- when a name is shared by several players, add context (nationality, position, birth year, club) to lock onto the right one.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify only when accuracy matters","type":"text","marks":[{"type":"strong"}]},{"text":" -- cross-check against an authoritative, crawlable source (Wikipedia) instead of trusting a single answer.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prune, don't dump","type":"text","marks":[{"type":"strong"}]},{"text":" -- in batch mode, fetch one structured profile per player; never crawl every search result.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Goal","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Route","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Reference","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"One player's basic info","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Grounding structured JSON","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"lookup.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/lookup.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Right player when name is shared","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Add context / pre-scan with ","type":"text"},{"text":"--query","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"lookup.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/lookup.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"High-accuracy, sourced profile","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Cross-check vs Wikipedia","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"verify.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/verify.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"A whole squad / roster","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Loop grounding, aggregate to table","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"batch.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/batch.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Career + current World Cup stats","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Grounding stats JSON (with caveats)","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"stats.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/stats.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Size up a matchup (Team A vs Team B)","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Build both squads via batch, compare side by side","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"batch.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/batch.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Add past World Cup context","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Format, group + knockout results, key players, team history, head-to-head","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"history.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/history.md","title":null}}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Call a winner + scoreline (for fun)","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Weigh the gathered layers (plus any user-defined dimensions), then predict with a mandatory disclaimer","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]}]}]}]}]},{"type":"paragraph","content":[{"text":"For a matchup, run the squad workflow for both teams, then layer in historical context (tournament track record + head-to-head from ","type":"text"},{"text":"history.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/history.md","title":null}}]},{"text":"). Present three layers side by side -- ","type":"text"},{"text":"squad quality","type":"text","marks":[{"type":"strong"}]},{"text":", ","type":"text"},{"text":"current form","type":"text","marks":[{"type":"strong"}]},{"text":", ","type":"text"},{"text":"historical context","type":"text","marks":[{"type":"strong"}]},{"text":" -- and highlight differences in key positions and availability. Then, if a prediction is wanted, finish with an optional ","type":"text"},{"text":"for-fun call","type":"text","marks":[{"type":"strong"}]},{"text":" (likely winner + playful scoreline + confidence) per ","type":"text"},{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]},{"text":". Always keep the factual layers clearly separated from the prediction, and always attach the disclaimer.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Fast path (single player)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"anycap search --prompt 'Give the basic profile of footballer Jude Bellingham as JSON with fields: full_name, date_of_birth, nationality, height, position, current_club, shirt_number, national_team. Only the JSON.' \\\n | jq -r '.data.content'","type":"text"}]},{"type":"paragraph","content":[{"text":"Returns (verified):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"json"},"content":[{"text":"{\n \"full_name\": \"Jude Victor William Bellingham\",\n \"date_of_birth\": \"2003-06-29\",\n \"nationality\": \"English\",\n \"height\": \"1.86 m\",\n \"position\": \"Midfielder\",\n \"current_club\": \"Real Madrid\",\n \"shirt_number\": 5,\n \"national_team\": \"England\"\n}","type":"text"}]},{"type":"paragraph","content":[{"text":"Grounding search costs 5 credits per call. General search (","type":"text"},{"text":"--query","type":"text","marks":[{"type":"code_inline"}]},{"text":") and crawl cost 1 credit each.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Output Schema","type":"text"}]},{"type":"paragraph","content":[{"text":"Normalize every profile to this schema so single-player and batch results are consistent:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Field","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Type","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Notes","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"full_name","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Legal/full name","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"date_of_birth","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"YYYY-MM-DD","type":"text","marks":[{"type":"code_inline"}]},{"text":"; use ","type":"text"},{"text":"null","type":"text","marks":[{"type":"code_inline"}]},{"text":" if unknown","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"nationality","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Primary nationality","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"height","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"e.g. ","type":"text"},{"text":"1.86 m","type":"text","marks":[{"type":"code_inline"}]},{"text":"; ","type":"text"},{"text":"null","type":"text","marks":[{"type":"code_inline"}]},{"text":" if unknown","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"position","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"e.g. ","type":"text"},{"text":"Midfielder","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Goalkeeper","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"current_club","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Club as of retrieval date","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"shirt_number","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"int/null","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Club or national-team number","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"national_team","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"string","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"National team","type":"text"}]}]}]}]},{"type":"paragraph","content":[{"text":"Rules:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"null","type":"text","marks":[{"type":"code_inline"}]},{"text":" for missing fields. Never invent values.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"current_club","type":"text","marks":[{"type":"code_inline"}]},{"text":" and ","type":"text"},{"text":"shirt_number","type":"text","marks":[{"type":"code_inline"}]},{"text":" change frequently -- treat them as point-in-time and note the retrieval date.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"When a field cannot be confirmed, mark it and (if accuracy matters) verify via ","type":"text"},{"text":"verify.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/verify.md","title":null}}]},{"text":".","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Important: Source Reliability (verified)","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Wikipedia is reliably crawlable","type":"text","marks":[{"type":"strong"}]},{"text":" (","type":"text"},{"text":"anycap crawl https://en.wikipedia.org/wiki/\u003cPlayer>","type":"text","marks":[{"type":"code_inline"}]},{"text":" returns full Markdown). Use it as the primary verification source.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transfermarkt blocks crawling","type":"text","marks":[{"type":"strong"}]},{"text":" -- ","type":"text"},{"text":"anycap crawl","type":"text","marks":[{"type":"code_inline"}]},{"text":" returns a short ","type":"text"},{"text":"Human Verification","type":"text","marks":[{"type":"code_inline"}]},{"text":" page, not data. Do not rely on crawling it; use grounding search or Wikipedia instead.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Other stats sites may also bot-block. Always check the crawled ","type":"text"},{"text":"title","type":"text","marks":[{"type":"code_inline"}]},{"text":"/length before trusting content.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Prediction (for fun)","type":"text"}]},{"type":"paragraph","content":[{"text":"After the factual layers, you may add an optional, clearly-labeled prediction so the briefing is fun to read. See ","type":"text"},{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]},{"text":" for the method and the required disclaimer. Non-negotiable rules:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Facts first, prediction last.","type":"text","marks":[{"type":"strong"}]},{"text":" Never blend the guess into the data tables; put it in its own clearly-marked block.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Always attach the disclaimer","type":"text","marks":[{"type":"strong"}]},{"text":" from ","type":"text"},{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]},{"text":". A prediction without the disclaimer is incomplete output.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Entertainment, not betting.","type":"text","marks":[{"type":"strong"}]},{"text":" Do not present win probabilities or odds as facts, do not give wagering advice, and do not tell anyone to bet.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Show the reasoning.","type":"text","marks":[{"type":"strong"}]},{"text":" Base the call on the gathered signals (ranking, form, head-to-head, key players), not a coin flip.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Let the user steer.","type":"text","marks":[{"type":"strong"}]},{"text":" Users can add, drop, or re-weight prediction dimensions (e.g. home advantage, injuries, rest, weather, \"vibes\"). Honor their weights, retrieve any missing data first, and list the final dimension set used. See ","type":"text"},{"text":"predict.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/predict.md","title":null}}]},{"text":".","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Limitations","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Live data (current club, shirt number, latest stats) reflects whatever the web returns at call time and can lag real events.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Grounding stats numbers are best-effort and can be approximate; verify critical figures against Wikipedia.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generic player names need disambiguation context or the wrong person may be returned.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"This skill retrieves data on demand; it is not a stored database of all players.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Quick Reference","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Tool","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Purpose","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"anycap search --prompt \"...JSON...\"","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Structured profile / stats in one shot (5 cr)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"anycap search --query \"...\" --no-crawl","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Find/disambiguate the right player page (1 cr)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"anycap crawl https://en.wikipedia.org/wiki/\u003cPlayer>","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Authoritative verification source (1 cr)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"anycap status","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Check auth before a batch run","type":"text"}]}]}]}]}]},"metadata":{"date":"2026-11-02","name":"anycap-worldcup-predict","author":"@skillopedia","source":{"stars":49,"repo_name":"anycap","origin_url":"https://github.com/anycap-ai/anycap/blob/HEAD/skills/anycap-worldcup-predict/SKILL.md","repo_owner":"anycap-ai","body_sha256":"992b819b2101c4d2348fe4cc9da45640ae00cdabf45c32defd196c2c5f79904d","cluster_key":"2eba839aa7faca99db3e6b11d5f8ad396712fd173d9c837d2448972a4597e730","clean_bundle":{"format":"clean-skill-bundle-v1","source":"anycap-ai/anycap/skills/anycap-worldcup-predict/SKILL.md","text_bytes":23649,"source_commit":"a7ff827a4fef902c1874163c4ebb36edad6b9932","skills_sh_rank":17684,"attachment_count":8,"text_attachments":8,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":"skills/anycap-worldcup-predict/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"data-analytics","category_label":"Data"},"exact_dupes_collapsed_into_this":0},"license":"MIT","version":"v1","category":"data-analytics","metadata":{"version":"0.6.5","website":"https://anycap.ai"},"import_tag":"skills-sh-top20k-2026-11","description":"World Cup match prediction and pre-match intel for football (soccer) fans: predict who will win and a likely scoreline, backed by structured, verifiable evidence -- player profiles, squad dossiers, current form, head-to-head records, and past-tournament history -- using AnyCap web search and crawl. Weighs FIFA ranking, recent form, head-to-head, and key players, plus any user-defined dimensions (home advantage, injuries, rest, weather, vibes), then makes a clearly-labeled for-fun call with a confidence level and a mandatory disclaimer. Built on the 'search less, not faster' strategy: narrow the search space first, retrieve only what matters, then verify against authoritative sources. Use when a fan wants a World Cup match prediction, predicted score, or who-will-win call; wants a player's profile, bio, form, or stats; wants a full World Cup squad or national-team lineup table; wants to size up two teams before a match; or wants head-to-head and past World Cup context. Trigger on: World Cup prediction, predict the score, who will win, match prediction, predicted scoreline, World Cup, World Cup squad, national team lineup, pre-match analysis, matchup, player form, footballer stats, player profile, head-to-head, or scout a team.","compatibility":"Requires anycap CLI (authenticated). Works with any agent that supports shell commands."}},"renderedAt":1793661641919}

AnyCap World Cup Predict Read this entire file before starting. It defines a reliable workflow for turning a player name (or a whole squad) into structured, verifiable World Cup pre-match intel using AnyCap, then optionally calling a winner and scoreline for fun. World Cup match prediction and pre-match intel for serious football fans. Turn player names and lineups into structured, verifiable profiles, stats, and matchup briefings so you can read a World Cup matchup before kickoff -- then, if you want, finish with a for-fun prediction (likely winner + scoreline + confidence). Built for World…