{"id":"2a4f4f2a-f671-499b-b117-684907d35077","shortId":"fxHqqZ","kind":"skill","title":"challenge","tagline":"Pressure-test an assumption, decision, or inherited constraint — Socratic cross-examination that forces you to defend or abandon your position","description":"## Behavior\n\nThis is a conversation, not an audit. Do not produce structured output. Do not list findings upfront. Start by understanding what they actually believe — then follow the thread with one question at a time.\n\nIf you already have context — from a prior skill, from the conversation, or from something specific the user said — name the assumption you want to pressure-test and why. Then go straight to questioning. Do not ask them to restate what you already know.\n\nIf you do not have context, ask one plain question to surface the assumption before proceeding.\n\nAsk one question at a time, following the gaps in their reasoning. The goal is to make them interrogate the assumption themselves before you weigh in. Good questions to reach for:\n\n**On origin:**\n\n- \"Where did this belief come from — your own experience, a previous project, something you read, or something someone told you?\"\n- \"Is this a Rails convention, or did you choose it consciously?\"\n- \"Have you actually tested this, or is it untested instinct?\"\n\n**On necessity:**\n\n- \"What's the underlying need — if you strip away the solution, what problem must be solved?\"\n- \"Is this the simplest thing that could work, or are you solving for complexity that doesn't exist yet?\" (Beck / XP)\n- \"Are you building for now, or for a future that might not arrive?\" (YAGNI)\n\n**On validity:**\n\n- \"Under what conditions would this assumption be wrong?\"\n- \"What evidence would change your mind?\"\n- \"Is this cargo-culting — doing it because it's familiar — or is there a real reason?\"\n\n**On alternatives:**\n\n- \"What's the simplest alternative you haven't seriously considered?\"\n- \"If you couldn't do it this way, what would you do?\"\n- \"What does Rails already give you that makes this unnecessary?\" (convention over configuration)\n\nHave opinions. When an assumption is weak, say so and say why.\n\nWhen the assumption has been turned over enough — either they've found the weakness themselves, or it's clear they won't without a push — give your verdict directly. Is the assumption valid, partially valid, or worth rejecting? Name the underlying need, name the better path if there is one, and say why.\n\nClose with:\n\n**\"Did you already suspect this assumption was wrong — or did you genuinely believe it until now?\"**\n\nWait for their answer. Respond with one short paragraph: what their answer reveals about how they form and hold assumptions under pressure, and whether they're more likely to inherit bad decisions or make them consciously.\n\n## Tone\n\nRigorous and direct. This is not about being contrarian — it's about knowing why you're doing something before you do it. Push hard on weak assumptions. Confirm strong ones clearly. Never mistake familiarity for validity.","tags":["challenge","rails","consultant","thoughtbot","agent-skills","claude-code-consulting","claude-code-plugin","claude-code-rails","claude-code-skill","claude-code-skills","claude-skills"],"capabilities":["skill","source-thoughtbot","skill-challenge","topic-agent-skills","topic-claude-code-consulting","topic-claude-code-plugin","topic-claude-code-rails","topic-claude-code-skill","topic-claude-code-skills","topic-claude-skills"],"categories":["rails-consultant"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/thoughtbot/rails-consultant/challenge","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add thoughtbot/rails-consultant","source_repo":"https://github.com/thoughtbot/rails-consultant","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 9 github stars · SKILL.md body (2,730 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:08:42.342Z","embedding":null,"createdAt":"2026-05-18T13:14:14.703Z","updatedAt":"2026-05-18T19:08:42.342Z","lastSeenAt":"2026-05-18T19:08:42.342Z","tsv":"'abandon':21 'actual':47,186 'alreadi':61,102,307,386 'altern':281,286 'answer':403,411 'arriv':245 'ask':96,110,120 'assumpt':6,80,117,140,254,321,331,360,389,419,463 'audit':31 'away':204 'bad':430 'beck':231 'behavior':24 'belief':156 'believ':48,396 'better':373 'build':235 'cargo':266 'cargo-cult':265 'challeng':1 'chang':260 'choos':181 'clear':347,467 'close':382 'come':157 'complex':225 'condit':251 'configur':316 'confirm':464 'conscious':183,435 'consid':291 'constraint':10 'context':63,109 'contrarian':445 'convent':177,314 'convers':28,70 'could':218 'couldn':294 'cross':13 'cross-examin':12 'cult':267 'decis':7,431 'defend':19 'direct':357,439 'doesn':227 'either':337 'enough':336 'evid':258 'examin':14 'exist':229 'experi':161 'familiar':273,470 'find':40 'follow':50,126 'forc':16 'form':416 'found':340 'futur':241 'gap':128 'genuin':395 'give':308,354 'go':90 'goal':133 'good':146 'hard':460 'haven':288 'hold':418 'inherit':9,429 'instinct':193 'interrog':138 'know':103,449 'like':427 'list':39 'make':136,311,433 'might':243 'mind':262 'mistak':469 'must':209 'name':78,367,371 'necess':195 'need':200,370 'never':468 'one':54,111,121,378,406,466 'opinion':318 'origin':152 'output':36 'paragraph':408 'partial':362 'path':374 'plain':112 'posit':23 'pressur':3,85,421 'pressure-test':2,84 'previous':163 'prior':66 'problem':208 'proceed':119 'produc':34 'project':164 'push':353,459 'question':55,93,113,122,147 'rail':176,306 're':425,452 'reach':149 'read':167 'real':278 'reason':131,279 'reject':366 'respond':404 'restat':99 'reveal':412 'rigor':437 'said':77 'say':324,327,380 'serious':290 'short':407 'simplest':215,285 'skill':67 'skill-challenge' 'socrat':11 'solut':206 'solv':211,223 'someon':170 'someth':73,165,169,454 'source-thoughtbot' 'specif':74 'start':42 'straight':91 'strip':203 'strong':465 'structur':35 'surfac':115 'suspect':387 'test':4,86,187 'thing':216 'thread':52 'time':58,125 'told':171 'tone':436 'topic-agent-skills' 'topic-claude-code-consulting' 'topic-claude-code-plugin' 'topic-claude-code-rails' 'topic-claude-code-skill' 'topic-claude-code-skills' 'topic-claude-skills' 'turn':334 'under':199,369 'understand':44 'unnecessari':313 'untest':192 'upfront':41 'user':76 'valid':248,361,363,472 've':339 'verdict':356 'wait':400 'want':82 'way':299 'weak':323,342,462 'weigh':144 'whether':423 'without':351 'won':349 'work':219 'worth':365 'would':252,259,301 'wrong':256,391 'xp':232 'yagni':246 'yet':230","prices":[{"id":"f293a7f3-c606-4204-b2f3-f41c949fe552","listingId":"2a4f4f2a-f671-499b-b117-684907d35077","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"thoughtbot","category":"rails-consultant","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:14.703Z"}],"sources":[{"listingId":"2a4f4f2a-f671-499b-b117-684907d35077","source":"github","sourceId":"thoughtbot/rails-consultant/challenge","sourceUrl":"https://github.com/thoughtbot/rails-consultant/tree/main/skills/challenge","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:14.703Z","lastSeenAt":"2026-05-18T19:08:42.342Z"}],"details":{"listingId":"2a4f4f2a-f671-499b-b117-684907d35077","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"thoughtbot","slug":"challenge","github":{"repo":"thoughtbot/rails-consultant","stars":9,"topics":["agent-skills","claude-code-consulting","claude-code-plugin","claude-code-rails","claude-code-skill","claude-code-skills","claude-skills"],"license":"mit","html_url":"https://github.com/thoughtbot/rails-consultant","pushed_at":"2026-03-27T16:24:47Z","description":"A collection of skills for Rails development and consulting with an emphasis on learning, communication, and client success. ","skill_md_sha":"80ea0b7933f209420487479df32d090b790e6f5c","skill_md_path":"skills/challenge/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/thoughtbot/rails-consultant/tree/main/skills/challenge"},"layout":"multi","source":"github","category":"rails-consultant","frontmatter":{"name":"challenge","description":"Pressure-test an assumption, decision, or inherited constraint — Socratic cross-examination that forces you to defend or abandon your position"},"skills_sh_url":"https://skills.sh/thoughtbot/rails-consultant/challenge"},"updatedAt":"2026-05-18T19:08:42.342Z"}}