{"id":"8e565611-800e-43f5-80be-8ab5c566b138","shortId":"Z2Ur3U","kind":"skill","title":"nutmeg-review","tagline":"Review football data code and visualisations for correctness. Use after building a chart, data pipeline, or analysis. Dispatches specialised reviewers for data correctness, chart conventions, visual inspection, and interactive edge cases.","description":"# Review\n\nDispatch specialised reviewers to check football data code and visualisations for correctness, convention compliance, and edge cases.\n\n## Accuracy\n\nRead and follow `docs/accuracy-guardrail.md` before answering any question about provider-specific facts.\n\n## First: check profile\n\nRead `.nutmeg.user.md`. If it doesn't exist, tell the user to run `/nutmeg` first.\n\n## Determine scope\n\nLook at what the user wants reviewed. Read the relevant files. Then decide which reviewers to dispatch:\n\n| Signal | Dispatch |\n|---|---|\n| Code processes football data (fetching, filtering, transforming, computing metrics) | **data-reviewer** agent |\n| Code renders a chart or visualisation | **chart-reviewer** agent (Mode 1: Code Review) |\n| User provides a URL or says \"check how it looks\" | **chart-reviewer** agent (Mode 2: Visual Inspection) |\n| Chart has filters, tooltips, state, or dynamic data | **chart-reviewer** agent (Mode 3: Interactive Edge Cases) |\n| Code imports `@withqwerty/campos-*` (React + campos) | **chart-reviewer** agent (Mode 4: React + Campos) — pass `skills/_shared/campos-bridge.md` in context |\n| Code does both data processing AND chart rendering | **Both agents** in parallel |\n\n**Always dispatch at least one.** If unclear, dispatch both — redundant findings are better than missed issues.\n\nDetection for Mode 4: grep the reviewed files for `@withqwerty/campos-` or `from \"@withqwerty/campos`. Any match activates Mode 4 alongside Mode 1.\n\n## Dispatch\n\nSpawn agents in parallel when dispatching multiple. Each agent receives:\n\n1. The file paths to review\n2. The user's profile (language, provider, experience level)\n3. Which mode(s) to run (for chart-reviewer)\n4. Context: what the user said they built and what they're worried about\n\n### Data reviewer prompt template\n\n```\nReview the football data code in [FILE_PATHS].\n\nThe user is working with [PROVIDER] data in [LANGUAGE].\nThey built: [DESCRIPTION]\nTheir concern: [WHAT_THEY_SAID]\n\nFollow the full review checklist in your agent prompt. Use search_docs to verify\nprovider-specific facts (coordinate systems, qualifier IDs, event types).\n```\n\n### Chart reviewer prompt template\n\n```\nReview the chart code in [FILE_PATHS].\n\nMode(s): [Code Review / Visual Inspection / Interactive Edge Cases]\nThe user is building: [DESCRIPTION]\nTheir concern: [WHAT_THEY_SAID]\nStack: [LANGUAGE + LIBRARIES from profile]\n[If visual inspection: URL or instructions to render]\n\nLoad skills/brainstorm/references/chart-canon.md for convention checking.\n```\n\n## Synthesise findings\n\nAfter both agents report back:\n\n1. **Deduplicate** — if both flag the same issue (e.g., wrong coordinate system), merge into one finding\n2. **Sort by severity** — Critical first, then Warning, then Info\n3. **Group logically** — Data issues, then Rendering issues, then Convention issues, then Edge cases\n4. **Present concisely** — table format with severity, location, issue, fix\n\n## When to suggest visual inspection\n\nIf the chart-reviewer's code review finds potential rendering issues but can't confirm without seeing the output, suggest:\n\n> \"The code review found [N] potential rendering issues. Want me to visually inspect the chart? I'll need a URL or you can run it locally.\"\n\nDon't require visual inspection — many users can't easily serve their chart locally. Code review alone catches most issues.\n\n## After review\n\nIf findings are found:\n- Ask the user which ones to fix\n- For Critical issues, offer to fix them directly\n- For Warning/Info, explain the trade-off and let them decide\n\nIf no findings:\n- Say so clearly. Don't invent issues to justify the review.\n- Optionally mention what was checked so the user knows the review was thorough.","tags":["review","nutmeg","withqwerty","agent-skills","claude-code","claude-code-plugin","football-analytics","football-data","mcp","opta","sports-analytics","statsbomb"],"capabilities":["skill","source-withqwerty","skill-review","topic-agent-skills","topic-claude-code","topic-claude-code-plugin","topic-football-analytics","topic-football-data","topic-mcp","topic-opta","topic-sports-analytics","topic-statsbomb"],"categories":["nutmeg"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/withqwerty/nutmeg/review","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add withqwerty/nutmeg","source_repo":"https://github.com/withqwerty/nutmeg","install_from":"skills.sh"}},"qualityScore":"0.460","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 21 github stars · SKILL.md body (3,695 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:35.321Z","embedding":null,"createdAt":"2026-04-18T23:06:53.097Z","updatedAt":"2026-05-18T19:05:35.321Z","lastSeenAt":"2026-05-18T19:05:35.321Z","tsv":"'/nutmeg':82 '1':129,232,244,391 '2':147,250,407 '3':163,259,417 '4':177,215,229,269,431 'accuraci':53 'activ':227 'agent':117,127,145,161,175,193,235,242,319,388 'alon':509 'alongsid':230 'alway':196 'analysi':20 'answer':59 'ask':519 'back':390 'better':208 'build':14,359 'built':276,305 'campo':171,179 'case':34,52,166,355,430 'catch':510 'chart':16,27,121,125,143,150,159,173,190,267,336,342,449,481,505 'chart-review':124,142,158,172,266,448 'check':40,68,138,383,563 'checklist':316 'clear':550 'code':7,43,105,118,130,167,184,291,343,349,452,468,507 'complianc':49 'comput':112 'concern':308,362 'concis':433 'confirm':461 'context':183,270 'convent':28,48,382,426 'coordin':330,401 'correct':11,26,47 'critic':411,527 'data':6,17,25,42,108,115,157,187,283,290,301,420 'data-review':114 'decid':98,544 'dedupl':392 'descript':306,360 'detect':212 'determin':84 'direct':533 'dispatch':21,36,102,104,197,203,233,239 'doc':323 'docs/accuracy-guardrail.md':57 'doesn':74 'dynam':156 'e.g':399 'easili':502 'edg':33,51,165,354,429 'event':334 'exist':76 'experi':257 'explain':536 'fact':66,329 'fetch':109 'file':96,219,246,293,345 'filter':110,152 'find':206,385,406,454,516,547 'first':67,83,412 'fix':440,525,531 'flag':395 'follow':56,312 'footbal':5,41,107,289 'format':435 'found':470,518 'full':314 'grep':216 'group':418 'id':333 'import':168 'info':416 'inspect':30,149,352,373,445,479,497 'instruct':376 'interact':32,164,353 'invent':553 'issu':211,398,421,424,427,439,457,474,512,528,554 'justifi':556 'know':567 'languag':255,303,367 'least':199 'let':542 'level':258 'librari':368 'll':483 'load':379 'local':492,506 'locat':438 'logic':419 'look':86,141 'mani':498 'match':226 'mention':560 'merg':403 'metric':113 'miss':210 'mode':128,146,162,176,214,228,231,261,347 'multipl':240 'n':471 'need':484 'nutmeg':2 'nutmeg-review':1 'nutmeg.user.md':71 'offer':529 'one':200,405,523 'option':559 'output':465 'parallel':195,237 'pass':180 'path':247,294,346 'pipelin':18 'potenti':455,472 'present':432 'process':106,188 'profil':69,254,370 'prompt':285,320,338 'provid':64,133,256,300,327 'provider-specif':63,326 'qualifi':332 'question':61 're':280 'react':170,178 'read':54,70,93 'receiv':243 'redund':205 'relev':95 'render':119,191,378,423,456,473 'report':389 'requir':495 'review':3,4,23,35,38,92,100,116,126,131,144,160,174,218,249,268,284,287,315,337,340,350,450,453,469,508,514,558,569 'run':81,264,490 'said':274,311,365 'say':137,548 'scope':85 'search':322 'see':463 'serv':503 'sever':410,437 'signal':103 'skill' 'skill-review' 'skills/_shared/campos-bridge.md':181 'skills/brainstorm/references/chart-canon.md':380 'sort':408 'source-withqwerty' 'spawn':234 'specialis':22,37 'specif':65,328 'stack':366 'state':154 'suggest':443,466 'synthesis':384 'system':331,402 'tabl':434 'tell':77 'templat':286,339 'thorough':571 'tooltip':153 'topic-agent-skills' 'topic-claude-code' 'topic-claude-code-plugin' 'topic-football-analytics' 'topic-football-data' 'topic-mcp' 'topic-opta' 'topic-sports-analytics' 'topic-statsbomb' 'trade':539 'trade-off':538 'transform':111 'type':335 'unclear':202 'url':135,374,486 'use':12,321 'user':79,90,132,252,273,296,357,499,521,566 'verifi':325 'visual':29,148,351,372,444,478,496 'visualis':9,45,123 'want':91,475 'warn':414 'warning/info':535 'without':462 'withqwerty/campos':224 'withqwerty/campos-':169,221 'work':298 'worri':281 'wrong':400","prices":[{"id":"ac059933-47cd-41fa-bb0d-356cad52a0b7","listingId":"8e565611-800e-43f5-80be-8ab5c566b138","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"withqwerty","category":"nutmeg","install_from":"skills.sh"},"createdAt":"2026-04-18T23:06:53.097Z"}],"sources":[{"listingId":"8e565611-800e-43f5-80be-8ab5c566b138","source":"github","sourceId":"withqwerty/nutmeg/review","sourceUrl":"https://github.com/withqwerty/nutmeg/tree/main/skills/review","isPrimary":false,"firstSeenAt":"2026-04-18T23:06:53.097Z","lastSeenAt":"2026-05-18T19:05:35.321Z"}],"details":{"listingId":"8e565611-800e-43f5-80be-8ab5c566b138","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"withqwerty","slug":"review","github":{"repo":"withqwerty/nutmeg","stars":21,"topics":["agent-skills","claude-code","claude-code-plugin","football-analytics","football-data","mcp","opta","sports-analytics","statsbomb","xg"],"license":null,"html_url":"https://github.com/withqwerty/nutmeg","pushed_at":"2026-05-11T14:47:54Z","description":"Football data analytics toolkit for Claude Code. Covers Opta, StatsBomb, Wyscout, SportMonks, and free sources.","skill_md_sha":"fc40d22b0a4b1c1de651ad67f9acd75921bd19f7","skill_md_path":"skills/review/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/withqwerty/nutmeg/tree/main/skills/review"},"layout":"multi","source":"github","category":"nutmeg","frontmatter":{"name":"nutmeg-review","description":"Review football data code and visualisations for correctness. Use after building a chart, data pipeline, or analysis. Dispatches specialised reviewers for data correctness, chart conventions, visual inspection, and interactive edge cases."},"skills_sh_url":"https://skills.sh/withqwerty/nutmeg/review"},"updatedAt":"2026-05-18T19:05:35.321Z"}}