{"id":"3263bd52-861b-4f41-bd4a-4cb99625dba7","shortId":"JJU9J6","kind":"skill","title":"challenge","tagline":"Auto-activate when critically questioning claims, pushing back on assumptions, disagreeing with an approach, sanity-checking contentious decisions, or when a response feels like reflexive agreement. Produces an honest assessment — confirms what holds up with evidence, identifies ","description":"# Challenge\n\nPrevents reflexive agreement by forcing structured critical reassessment. References the `perspectives` skill for its critical thinking framework.\n\n<workflow>\n\n## Workflow\n\n### 1. Identify the Claim\n\nExtract the core assertion being made. Strip away qualifiers and framing to find the actual claim. If there are multiple claims, address each separately.\n\n### 2. Apply CRITICAL REASSESSMENT\n\nUsing the framework from `perspectives/references/critical-thinking.md`:\n\n- **Is it accurate?** Check facts, verify assumptions against actual code/docs/data\n- **Is it complete?** Are there missing considerations, edge cases, or perspectives?\n- **Is it well-reasoned?** Does the logic hold, or are there gaps between evidence and conclusion?\n\n### 3. Investigate\n\nDo not reason from memory when you can verify — if a claim is about code, read the code; if about an API, check the docs.\n\n- If the claim is about code: read the code\n- If the claim is about an API: check the documentation\n- If the claim is about performance: look for benchmarks, APM data, or profiling evidence\n- If the claim is about best practices: check if the practice applies to this specific context and constraints\n\n### 4. Deliver Honest Assessment\n\n- If you find flaws: explain them clearly with specifics. Say what's wrong and why.\n- If the reasoning holds: explain why it holds up. \"I checked and this is correct because...\" is more valuable than \"I agree.\"\n- If it's partially right: say which parts hold and which don't.\n- Stay focused and to the point. No hedging, no padding.\n\n### 5. No Meta-Commentary\n\nJust present the analysis directly. Do NOT say things like:\n\n- \"Let me challenge this for you\"\n- \"Playing devil's advocate here...\"\n- \"I'll now critically evaluate this statement\"\n- \"That's an interesting point, but...\"\n- \"Great question! Let me push back on that\"\n\nThe user knows they asked for a challenge — they don't need narration.\n\n</workflow>\n\n<guardrails>\n\n### Guardrails\n\n- **No hedging.** Do not say \"on one hand / on the other.\" Present the analysis directly with a clear verdict.\n- **No meta-commentary.** Do not narrate what you are doing. Just do it.\n- **No sycophantic framing.** Do not soften the verdict to avoid disagreement.\n- **Verify before asserting.** If you can check it, check it. Do not reason from memory when evidence is available.\n\n</guardrails>\n\n<validation>\n\n### Validation Checkpoint\n\nBefore delivering the assessment, verify:\n\n- [ ] Claims were verified against code/docs, not reasoned from memory alone\n- [ ] Assessment is direct — no hedging, no \"on one hand / on the other\"\n- [ ] If the claim holds up, explanation includes specific evidence why\n- [ ] No meta-commentary slipped in (\"Let me challenge...\", \"Playing devil's advocate...\")\n\n</validation>\n\n<example>\n\n## Example\n\n**Challenge:** \"We should rewrite the auth system in Rust for performance.\"\n\n- **Claim identified:** Auth system is a performance bottleneck that Rust would solve.\n- **Investigation:** Checked APM data — auth endpoint averages 12ms, well within SLA. Bottleneck is actually the user lookup query (340ms).\n- **Verdict:** Claim doesn't hold. The auth system isn't the bottleneck. Rewriting in Rust would add complexity without addressing the actual performance issue. Recommend: optimize the user lookup query instead.\n\n</example>\n\n## References Index\n\n- **[Challenge Strategy](references/challenge-strategy.md)** — Five-step challenge workflow\n- **[Critical Thinking Framework](../perspectives/references/critical-thinking.md)** — CRITICAL REASSESSMENT pattern (from perspectives skill)","tags":["challenge","flow","cofin","agent-skills","ai-agents","beads","claude-code","codex","cursor","developer-tools","gemini-cli","opencode"],"capabilities":["skill","source-cofin","skill-challenge","topic-agent-skills","topic-ai-agents","topic-beads","topic-claude-code","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-opencode","topic-plugin","topic-slash-commands","topic-spec-driven-development"],"categories":["flow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cofin/flow/challenge","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cofin/flow","source_repo":"https://github.com/cofin/flow","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (3,583 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-04-24T01:03:25.411Z","embedding":null,"createdAt":"2026-04-23T13:03:58.083Z","updatedAt":"2026-04-24T01:03:25.411Z","lastSeenAt":"2026-04-24T01:03:25.411Z","tsv":"'/perspectives/references/critical-thinking.md':540 '1':60 '12ms':484 '2':88 '3':135 '340ms':495 '4':213 '5':277 'accur':99 'activ':4 'actual':78,105,490,517 'add':512 'address':85,515 'advoc':301,452 'agre':253 'agreement':29,44 'alon':417 'analysi':285,351 'api':158,177 'apm':190,479 'appli':89,206 'approach':16 'ask':328 'assert':67,384 'assess':33,216,406,418 'assumpt':12,103 'auth':459,467,481,502 'auto':3 'auto-activ':2 'avail':400 'averag':483 'avoid':380 'away':71 'back':10,321 'benchmark':189 'best':200 'bottleneck':472,488,507 'case':115 'challeng':1,41,294,331,448,454,529,535 'check':19,100,159,178,202,242,388,390,478 'checkpoint':402 'claim':8,63,79,84,148,164,173,183,197,408,432,465,497 'clear':223,355 'code':151,154,167,170 'code/docs':412 'code/docs/data':106 'commentari':281,360,443 'complet':109 'complex':513 'conclus':134 'confirm':34 'consider':113 'constraint':212 'contenti':20 'context':210 'core':66 'correct':246 'critic':6,48,56,90,306,537,541 'data':191,480 'decis':21 'deliv':214,404 'devil':299,450 'direct':286,352,420 'disagr':381 'disagre':13 'doc':161 'document':180 'doesn':498 'edg':114 'endpoint':482 'evalu':307 'evid':39,132,194,398,438 'exampl':453 'explain':221,236 'explan':435 'extract':64 'fact':101 'feel':26 'find':76,219 'five':533 'five-step':532 'flaw':220 'focus':268 'forc':46 'frame':74,373 'framework':58,94,539 'gap':130 'great':316 'guardrail':337 'hand':345,426 'hedg':274,339,422 'hold':36,126,235,239,262,433,500 'honest':32,215 'identifi':40,61,466 'includ':436 'index':528 'instead':526 'interest':313 'investig':136,477 'isn':504 'issu':519 'know':326 'let':292,318,446 'like':27,291 'll':304 'logic':125 'look':187 'lookup':493,524 'made':69 'memori':141,396,416 'meta':280,359,442 'meta-commentari':279,358,441 'miss':112 'multipl':83 'narrat':336,363 'need':335 'one':344,425 'optim':521 'pad':276 'part':261 'partial':257 'pattern':543 'perform':186,464,471,518 'perspect':52,117,545 'perspectives/references/critical-thinking.md':96 'play':298,449 'point':272,314 'practic':201,205 'present':283,349 'prevent':42 'produc':30 'profil':193 'push':9,320 'qualifi':72 'queri':494,525 'question':7,317 'read':152,168 'reason':122,139,234,394,414 'reassess':49,91,542 'recommend':520 'refer':50,527 'references/challenge-strategy.md':531 'reflex':28,43 'respons':25 'rewrit':457,508 'right':258 'rust':462,474,510 'saniti':18 'sanity-check':17 'say':226,259,289,342 'separ':87 'skill':53,546 'skill-challenge' 'sla':487 'slip':444 'soften':376 'solv':476 'source-cofin' 'specif':209,225,437 'statement':309 'stay':267 'step':534 'strategi':530 'strip':70 'structur':47 'sycophant':372 'system':460,468,503 'thing':290 'think':57,538 'topic-agent-skills' 'topic-ai-agents' 'topic-beads' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-opencode' 'topic-plugin' 'topic-slash-commands' 'topic-spec-driven-development' 'use':92 'user':325,492,523 'valid':401 'valuabl':250 'verdict':356,378,496 'verifi':102,145,382,407,410 'well':121,485 'well-reason':120 'within':486 'without':514 'workflow':59,536 'would':475,511 'wrong':229","prices":[{"id":"2da36d64-e333-4894-acfa-7c1b54435cb3","listingId":"3263bd52-861b-4f41-bd4a-4cb99625dba7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cofin","category":"flow","install_from":"skills.sh"},"createdAt":"2026-04-23T13:03:58.083Z"}],"sources":[{"listingId":"3263bd52-861b-4f41-bd4a-4cb99625dba7","source":"github","sourceId":"cofin/flow/challenge","sourceUrl":"https://github.com/cofin/flow/tree/main/skills/challenge","isPrimary":false,"firstSeenAt":"2026-04-23T13:03:58.083Z","lastSeenAt":"2026-04-24T01:03:25.411Z"}],"details":{"listingId":"3263bd52-861b-4f41-bd4a-4cb99625dba7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cofin","slug":"challenge","github":{"repo":"cofin/flow","stars":11,"topics":["agent-skills","ai-agents","beads","claude-code","codex","context-driven-development","cursor","developer-tools","gemini-cli","opencode","plugin","slash-commands","spec-driven-development","subagents","tdd","workflow"],"license":"apache-2.0","html_url":"https://github.com/cofin/flow","pushed_at":"2026-04-19T23:22:27Z","description":"Context-Driven Development toolkit for AI agents — spec-first planning, TDD workflow, and Beads integration.","skill_md_sha":"5fa580fe378174ce30a20cf3027ae78570afb344","skill_md_path":"skills/challenge/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cofin/flow/tree/main/skills/challenge"},"layout":"multi","source":"github","category":"flow","frontmatter":{"name":"challenge","description":"Auto-activate when critically questioning claims, pushing back on assumptions, disagreeing with an approach, sanity-checking contentious decisions, or when a response feels like reflexive agreement. Produces an honest assessment — confirms what holds up with evidence, identifies specific flaws, and delivers a direct verdict without hedging. Use when: validating claims, stress-testing ideas, preventing sycophantic agreement, questioning confident assertions, or saying 'are you sure about that?' Not for generating agreement, validating feelings, or confirming what the user wants to hear."},"skills_sh_url":"https://skills.sh/cofin/flow/challenge"},"updatedAt":"2026-04-24T01:03:25.411Z"}}