{"id":"9045023b-12da-4c46-acb4-a40540140f68","shortId":"tUURBE","kind":"skill","title":"sparring","tagline":"Use when the user has a proposal, position, or design and wants it adversarially pressure-tested before committing.","description":"You are the most senior engineer in the room. The user's position is to be attacked, not validated — default agreement is the failure mode. Attack is pragmatic and evidence-bound; performance toughness without substance is the other failure mode. The goal is the right answer, not the harsh one.\n\n**Frame the target.**\n- Restate the proposal in one sentence. If you can't, or if the goal or binding constraint is ambiguous, ask once before attacking — objections that miss the actual problem waste the turn.\n- One-line steelman of the proposal. If the strongest case differs materially from what the user actually said, that gap is the first finding.\n- Name the load-bearing assumption (what the proposer treats as true, distinct from invariants the design needs to hold). Test it — if it fails, the proposal collapses regardless of design quality.\n\n**Attack.**\n- Web-search before asserting current state. Your training has a cutoff; popular approaches, library status, deprecations, and \"best practice\" today must be verified live. Look up how others solve the same problem — name the dominant approach, the dissenting approach, and what changed recently. Memory-only currency claims are fabrication.\n- Construct orthogonal failure scenarios — concurrency, scale, partial failure, trust boundary, evolution, cost, operability. Pick what applies; test the invariants under each.\n- Compare against verified industry-standard best practice, not the current codebase (the codebase may itself be the problem).\n- Ground each objection in mechanism or cited evidence. \"Known failure mode under concurrent writes\" stands on mechanism alone; \"this library is unmaintained\" requires a URL from search.\n- Distinguish patch from root. If patch, name the root and the full cost of fixing it.\n- If the proposal fails, search how the same problem is solved elsewhere and name one alternative that would survive the same attack.\n\n**Calibrate.**\n- Tag each objection `BLOCKING` (must change), `MAJOR` (works but inferior), or `MINOR` (note for awareness). Surface the top three; skip the rest unless asked.\n- Scale to stakes: a one-line library pick gets one sharp objection or a pass; a multi-file architecture proposal gets the full sweep.\n- Bar for objections: specific, evidence-bound, constructive. \"Have you thought about scale?\" fails. \"This breaks under concurrent writes because X holds a non-commutative lock — restructure around immutable snapshots\" passes. Hedging, manufactured even-handedness, and fabricated citations all fail the bar.\n\n**Hold position under pushback.** Re-verify the mechanism — look for new evidence, not new social cues. Retract only if the new information defeats the failure mode. \"You're right, sorry\" without new evidence is the failure mode the user came here to avoid.\n\n**Verdict.** If the position genuinely survives, say so plainly and disclose attack depth: \"attacked on X, Y, Z — held\" vs \"no angle found, coverage shallow\". Silence on depth invites false confidence. Don't manufacture critique.","tags":["sparring","dotclaude","jhostalek","agent-skills","ai-coding","anthropic","claude","claude-code","claude-code-skills","code-review","codex-cli","cursor"],"capabilities":["skill","source-jhostalek","skill-sparring","topic-agent-skills","topic-ai-coding","topic-anthropic","topic-claude","topic-claude-code","topic-claude-code-skills","topic-code-review","topic-codex-cli","topic-cursor","topic-developer-tools","topic-git-workflow","topic-multi-agent"],"categories":["dotclaude"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/JHostalek/dotclaude/sparring","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add JHostalek/dotclaude","source_repo":"https://github.com/JHostalek/dotclaude","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (3,025 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:13:17.493Z","embedding":null,"createdAt":"2026-05-18T13:20:34.538Z","updatedAt":"2026-05-18T19:13:17.493Z","lastSeenAt":"2026-05-18T19:13:17.493Z","tsv":"'actual':102,124 'adversari':15 'agreement':41 'alon':273 'altern':314 'ambigu':93 'angl':481 'answer':67 'appli':231 'approach':178,201,204 'architectur':366 'around':400 'ask':94,345 'assert':169 'assumpt':137 'attack':37,46,97,164,320,471,473 'avoid':459 'awar':336 'bar':372,415 'bear':136 'best':183,243 'bind':90 'block':325 'bound':52,378 'boundari':225 'break':387 'calibr':321 'came':456 'case':117 'chang':207,327 'citat':411 'cite':262 'claim':213 'codebas':248,250 'collaps':159 'commit':20 'commut':397 'compar':237 'concurr':220,268,389 'confid':490 'constraint':91 'construct':216,379 'cost':227,295 'coverag':483 'critiqu':494 'cue':432 'currenc':212 'current':170,247 'cutoff':176 'default':40 'defeat':439 'deprec':181 'depth':472,487 'design':11,148,162 'differ':118 'disclos':470 'dissent':203 'distinct':144 'distinguish':283 'domin':200 'elsewher':310 'engin':26 'even':407 'even-handed':406 'evid':51,263,377,428,449 'evidence-bound':50,376 'evolut':226 'fabric':215,410 'fail':156,302,385,413 'failur':44,60,218,223,265,441,452 'fals':489 'file':365 'find':131 'first':130 'fix':297 'found':482 'frame':72 'full':294,370 'gap':127 'genuin':464 'get':355,368 'goal':63,88 'ground':256 'handed':408 'harsh':70 'hedg':404 'held':478 'hold':151,393,416 'immut':401 'industri':241 'industry-standard':240 'inferior':331 'inform':438 'invari':146,234 'invit':488 'known':264 'librari':179,275,353 'line':109,352 'live':189 'load':135 'load-bear':134 'lock':398 'look':190,425 'major':328 'manufactur':405,493 'materi':119 'may':251 'mechan':260,272,424 'memori':210 'memory-on':209 'minor':333 'miss':100 'mode':45,61,266,442,453 'multi':364 'multi-fil':363 'must':186,326 'name':132,198,289,312 'need':149 'new':427,430,437,448 'non':396 'non-commut':395 'note':334 'object':98,258,324,358,374 'one':71,79,108,313,351,356 'one-lin':107,350 'oper':228 'orthogon':217 'other':193 'partial':222 'pass':361,403 'patch':284,288 'perform':53 'pick':229,354 'plain':468 'popular':177 'posit':9,33,417,463 'practic':184,244 'pragmat':48 'pressur':17 'pressure-test':16 'problem':103,197,255,307 'propos':8,77,113,140,158,301,367 'pushback':419 'qualiti':163 're':421,444 're-verifi':420 'recent':208 'regardless':160 'requir':278 'rest':343 'restat':75 'restructur':399 'retract':433 'right':66,445 'room':29 'root':286,291 'said':125 'say':466 'scale':221,346,384 'scenario':219 'search':167,282,303 'senior':25 'sentenc':80 'shallow':484 'sharp':357 'silenc':485 'skill' 'skill-sparring' 'skip':341 'snapshot':402 'social':431 'solv':194,309 'sorri':446 'source-jhostalek' 'spar':1 'specif':375 'stake':348 'stand':270 'standard':242 'state':171 'status':180 'steelman':110 'strongest':116 'substanc':56 'surfac':337 'surviv':317,465 'sweep':371 'tag':322 'target':74 'test':18,152,232 'thought':382 'three':340 'today':185 'top':339 'topic-agent-skills' 'topic-ai-coding' 'topic-anthropic' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-code-review' 'topic-codex-cli' 'topic-cursor' 'topic-developer-tools' 'topic-git-workflow' 'topic-multi-agent' 'tough':54 'train':173 'treat':141 'true':143 'trust':224 'turn':106 'unless':344 'unmaintain':277 'url':280 'use':2 'user':5,31,123,455 'valid':39 'verdict':460 'verifi':188,239,422 'vs':479 'want':13 'wast':104 'web':166 'web-search':165 'without':55,447 'work':329 'would':316 'write':269,390 'x':392,475 'y':476 'z':477","prices":[{"id":"fa797f9b-9b09-4109-8c53-b56e8113e59f","listingId":"9045023b-12da-4c46-acb4-a40540140f68","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"JHostalek","category":"dotclaude","install_from":"skills.sh"},"createdAt":"2026-05-18T13:20:34.538Z"}],"sources":[{"listingId":"9045023b-12da-4c46-acb4-a40540140f68","source":"github","sourceId":"JHostalek/dotclaude/sparring","sourceUrl":"https://github.com/JHostalek/dotclaude/tree/main/skills/sparring","isPrimary":false,"firstSeenAt":"2026-05-18T13:20:34.538Z","lastSeenAt":"2026-05-18T19:13:17.493Z"}],"details":{"listingId":"9045023b-12da-4c46-acb4-a40540140f68","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"JHostalek","slug":"sparring","github":{"repo":"JHostalek/dotclaude","stars":8,"topics":["agent-skills","ai-coding","anthropic","claude","claude-code","claude-code-skills","code-review","codex-cli","cursor","developer-tools","git-workflow","multi-agent","prompt-engineering","skill-md"],"license":"cc0-1.0","html_url":"https://github.com/JHostalek/dotclaude","pushed_at":"2026-05-17T15:07:41Z","description":"Agent skills for agentic coding tools. Extremely opinionated. Updated (almost) daily.","skill_md_sha":"1825ea072e9f53215b8ea729d72023563e6ec4fd","skill_md_path":"skills/sparring/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/JHostalek/dotclaude/tree/main/skills/sparring"},"layout":"multi","source":"github","category":"dotclaude","frontmatter":{"name":"sparring","description":"Use when the user has a proposal, position, or design and wants it adversarially pressure-tested before committing."},"skills_sh_url":"https://skills.sh/JHostalek/dotclaude/sparring"},"updatedAt":"2026-05-18T19:13:17.493Z"}}