{"id":"c869e814-58b9-4b6f-a32e-6c4b8a993df7","shortId":"ndr2YM","kind":"skill","title":"ask-questions-if-underspecified","tagline":"Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.","description":"# Ask Questions If Underspecified\n\n## Goal\n\nAsk the minimum set of clarifying questions needed to avoid wrong work; do not start implementing until the must-have questions are answered (or the user explicitly approves proceeding with stated assumptions).\n\n## Workflow\n\n### 1) Decide whether the request is underspecified\n\nTreat a request as underspecified if after exploring how to perform the work, some or all of the following are not clear:\n- Define the objective (what should change vs stay the same)\n- Define \"done\" (acceptance criteria, examples, edge cases)\n- Define scope (which files/components/users are in/out)\n- Define constraints (compatibility, performance, style, deps, time)\n- Identify environment (language/runtime versions, OS, build/test runner)\n- Clarify safety/reversibility (data migration, rollout/rollback, risk)\n\nIf multiple plausible interpretations exist, assume it is underspecified.\n\n### 2) Ask must-have questions first (keep it small)\n\nAsk 1-5 questions in the first pass. Prefer questions that eliminate whole branches of work.\n\nMake questions easy to answer:\n- Optimize for scannability (short, numbered questions; avoid paragraphs)\n- Offer multiple-choice options when possible\n- Suggest reasonable defaults when appropriate (mark them clearly as the default/recommended choice; bold the recommended choice in the list, or if you present options in a code block, put a bold \"Recommended\" line immediately above the block and also tag defaults inside the block)\n- Include a fast-path response (e.g., reply `defaults` to accept all recommended/default choices)\n- Include a low-friction \"not sure\" option when helpful (e.g., \"Not sure - use default\")\n- Separate \"Need to know\" from \"Nice to know\" if that reduces friction\n- Structure options so the user can respond with compact decisions (e.g., `1b 2a 3c`); restate the chosen options in plain language to confirm\n\n### 3) Pause before acting\n\nUntil must-have answers arrive:\n- Do not run commands, edit files, or produce a detailed plan that depends on unknowns\n- Do perform a clearly labeled, low-risk discovery step only if it does not commit you to a direction (e.g., inspect repo structure, read relevant config files)\n\nIf the user explicitly asks you to proceed without answers:\n- State your assumptions as a short numbered list\n- Ask for confirmation; proceed only after they confirm or correct them\n\n### 4) Confirm interpretation, then proceed\n\nOnce you have answers, restate the requirements in 1-3 sentences (including key constraints and what success looks like), then start work.\n\n## Question templates\n\n- \"Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ....\"\n- \"Which of these should it be? A) ... B) ... C) ... (pick one)\"\n- \"What would you consider 'done'? For example: ...\"\n- \"Any constraints I must follow (versions, performance, style, deps)? If none, I will target the existing project defaults.\"\n- Use numbered questions with lettered options and a clear reply format\n\n```text\n1) Scope?\na) Minimal change (default)\nb) Refactor while touching the area\nc) Not sure - use default\n2) Compatibility target?\na) Current project defaults (default)\nb) Also support older versions: <specify>\nc) Not sure - use default\n\nReply with: defaults (or 1a 2a)\n```\n\n## Anti-patterns\n\n- Don't ask questions you can answer with a quick, low-risk discovery read (e.g., configs, existing patterns, docs).\n- Don't ask open-ended questions if a tight multiple-choice or yes/no would eliminate ambiguity faster.\n\n---\n\n*Originally created by [@thsottiaux](https://x.com/thsottiaux)*","tags":["ask","questions","underspecified","agent","skills","moizibnyousaf","agent-skills","claude-code","cli","codex","cursor","developer-tools"],"capabilities":["skill","source-moizibnyousaf","skill-ask-questions-if-underspecified","topic-agent-skills","topic-claude-code","topic-cli","topic-codex","topic-cursor","topic-developer-tools","topic-productivity"],"categories":["Ai-Agent-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/MoizIbnYousaf/Ai-Agent-Skills/ask-questions-if-underspecified","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add MoizIbnYousaf/Ai-Agent-Skills","source_repo":"https://github.com/MoizIbnYousaf/Ai-Agent-Skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1044 github stars · SKILL.md body (3,602 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-02T18:52:54.034Z","embedding":null,"createdAt":"2026-04-18T21:56:07.010Z","updatedAt":"2026-05-02T18:52:54.034Z","lastSeenAt":"2026-05-02T18:52:54.034Z","tsv":"'-3':388 '-5':150 '/thsottiaux)*':558 '1':57,149,387,408,469 '1a':508 '1b':280 '2':138,409,417,486 '2a':281,509 '3':292,410 '3c':282 '4':374 'accept':98,238 'act':295 'also':222,495 'ambigu':550 'answer':46,168,300,354,382,519 'anti':511 'anti-pattern':510 'appropri':188 'approv':51 'area':480 'arriv':301 'ask':2,18,23,139,148,349,363,515,535 'ask-questions-if-underspecifi':1 'assum':134,420 'assumpt':55,357 'automat':13 'avoid':32,175 'b':428,475,494 'block':211,220,227 'bold':196,214 'branch':161 'build/test':121 'c':429,481,499 'care':415 'case':102 'chang':91,473 'choic':180,195,199,241,545 'chosen':285 'clarifi':6,28,123 'clear':85,191,320,465 'code':210 'command':305 'commit':332 'compact':277 'compat':111,487 'config':343,529 'confirm':291,365,370,375 'consid':435 'constraint':110,392,440 'correct':372 'creat':553 'criteria':99 'current':490 'data':125 'decid':58 'decis':278 'default':186,224,236,256,456,474,485,492,493,503,506 'default/recommended':194 'defin':86,96,103,109 'dep':114,447 'depend':314 'detail':311 'direct':336 'discoveri':325,526 'doc':532 'done':97,436 'e.g':234,252,279,337,528 'easi':166 'edg':101 'edit':306 'elimin':159,549 'end':538 'environ':117 'exampl':100,438 'exist':133,454,530 'explicit':17,50,348 'explor':71 'fast':231 'fast-path':230 'faster':551 'file':307,344 'files/components/users':106 'first':144,154 'follow':82,443 'format':467 'friction':246,268 'goal':22 'help':251 'identifi':116 'immedi':217 'implement':9,38 'in/out':108 'includ':228,242,390 'insid':225 'inspect':338 'interpret':132,376 'invok':16 'keep':145 'key':391 'know':260,264 'label':321 'languag':289 'language/runtime':118 'letter':461 'like':397 'line':216 'list':202,362 'look':396 'low':245,323,524 'low-frict':244 'low-risk':322,523 'make':164 'mark':189 'migrat':126 'minim':472 'minimum':25 'multipl':130,179,544 'multiple-choic':178,543 'must':42,141,298,442 'must-hav':41,140,297 'need':30,258,407 'nice':262 'none':449 'number':173,361,458 'object':88 'offer':177 'older':497 'one':431 'open':537 'open-end':536 'optim':169 'option':181,207,249,270,286,462 'origin':552 'os':120 'paragraph':176 'pass':155 'path':232 'pattern':512,531 'paus':293 'perform':74,112,318,445 'pick':430 'plain':288 'plan':312 'plausibl':131 'possibl':183 'prefer':156 'present':206 'proceed':52,352,366,378 'produc':309 'project':455,491 'put':212 'question':3,19,29,44,143,151,157,165,174,401,459,516,539 'quick':522 'read':341,527 'reason':185 'recommend':198,215 'recommended/default':240 'reduc':267 'refactor':476 'relev':342 'repli':235,466,504 'repo':339 'request':61,66 'requir':7,385 'respond':275 'respons':233 'restat':283,383 'risk':128,324,525 'rollout/rollback':127 'run':304 'runner':122 'safety/reversibility':124 'scannabl':171 'scope':104,470 'sentenc':389 'separ':257 'set':26 'short':172,360 'skill' 'skill-ask-questions-if-underspecified' 'small':147 'source-moizibnyousaf' 'start':37,399,405 'state':54,355 'stay':93 'step':326 'structur':269,340 'style':113,446 'success':395 'suggest':184 'support':496 'sure':248,254,483,501 'tag':223 'target':452,488 'templat':402 'text':468 'thsottiaux':555 'tight':542 'time':115 'topic-agent-skills' 'topic-claude-code' 'topic-cli' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-productivity' 'touch':478 'treat':64 'underspecifi':5,21,63,68,137 'unknown':316 'use':12,255,457,484,502 'user':49,273,347 'version':119,444,498 'vs':92 'whether':59 'whole':160 'without':353 'work':34,76,163,400 'workflow':56 'would':433,548 'wrong':33 'x.com':557 'x.com/thsottiaux)*':556 'yes/no':547","prices":[{"id":"6bc5ba9c-1a97-4e03-beec-cf1e89ae623e","listingId":"c869e814-58b9-4b6f-a32e-6c4b8a993df7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"MoizIbnYousaf","category":"Ai-Agent-Skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:07.010Z"}],"sources":[{"listingId":"c869e814-58b9-4b6f-a32e-6c4b8a993df7","source":"github","sourceId":"MoizIbnYousaf/Ai-Agent-Skills/ask-questions-if-underspecified","sourceUrl":"https://github.com/MoizIbnYousaf/Ai-Agent-Skills/tree/main/skills/ask-questions-if-underspecified","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:07.010Z","lastSeenAt":"2026-05-02T18:52:54.034Z"}],"details":{"listingId":"c869e814-58b9-4b6f-a32e-6c4b8a993df7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"MoizIbnYousaf","slug":"ask-questions-if-underspecified","github":{"repo":"MoizIbnYousaf/Ai-Agent-Skills","stars":1044,"topics":["agent-skills","claude-code","cli","codex","cursor","developer-tools","productivity"],"license":"mit","html_url":"https://github.com/MoizIbnYousaf/Ai-Agent-Skills","pushed_at":"2026-04-13T19:04:12Z","description":"my curated agent skills library ","skill_md_sha":"ae56620d53860d41401e179b324b39e7798b2223","skill_md_path":"skills/ask-questions-if-underspecified/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/MoizIbnYousaf/Ai-Agent-Skills/tree/main/skills/ask-questions-if-underspecified"},"layout":"multi","source":"github","category":"Ai-Agent-Skills","frontmatter":{"name":"ask-questions-if-underspecified","description":"Clarify requirements before implementing. Do not use automatically, only when invoked explicitly."},"skills_sh_url":"https://skills.sh/MoizIbnYousaf/Ai-Agent-Skills/ask-questions-if-underspecified"},"updatedAt":"2026-05-02T18:52:54.034Z"}}