
Ask Questions If Underspecified
FreeClarify project requirements before implementation.
Free · Opens the source repo
What Ask Questions If Underspecified does
The 'Ask Questions If Underspecified' skill is designed to help developers and designers clarify requirements before proceeding with a project. It is particularly useful in situations where a request lacks clear objectives, scope, or constraints, which can lead to misinterpretation and wasted effort. By systematically identifying ambiguities and asking targeted questions, this skill ensures that all necessary details are gathered before any implementation begins.
When using this skill, the first step is to evaluate whether the request is underspecified. This involves checking for clarity around objectives, acceptance criteria, scope, and other critical factors. If any of these elements are ambiguous, the skill guides the user to formulate a concise set of clarifying questions. These questions are designed to be easy to answer, often presented in a multiple-choice format to streamline the decision-making process.
Once the questions are posed, the skill emphasizes the importance of pausing for confirmation before taking action. This prevents any assumptions from being made that could lead to incorrect implementations. The user will restate the requirements once the necessary information is gathered, ensuring that all parties have a shared understanding of the project goals and constraints.
This skill is particularly beneficial for teams working in agile environments or on complex projects where requirements may evolve. It helps to minimize the risk of miscommunication and ensures that developers and designers can work efficiently without the fear of rework due to misunderstood requirements.
When to use it
Use this skill when project requests are vague or have multiple interpretations, requiring clarification before proceeding.
When not to use it
Avoid this skill when the request is already clear or when minimal discovery can address the missing details.
What you can build with it
Ambiguous Feature Request
A product manager provides a feature request that lacks clear acceptance criteria. Use this skill to ask targeted questions to define what 'done' looks like.
Multiple Interpretations of a Task
A client describes a project that could be interpreted in several ways. Apply this skill to clarify the specific requirements before starting development.
Unclear Technical Constraints
A request mentions performance improvements but does not specify the environment. Use this skill to identify the necessary constraints and clarify the technical requirements.
How to install Ask Questions If Underspecified
View source1. Install with the skills CLI
npx skills add sickn33/agentic-awesome-skills/ask-questions-if-underspecified --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by sickn33Ask Questions If Underspecified
When to Use
Use this skill when a request has multiple plausible interpretations or key details (objective, scope, constraints, environment, or safety) are unclear.
When NOT to Use
Do not use this skill when the request is already clear, or when a quick, low-risk discovery read can answer the missing details.
Goal
Ask 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).
Workflow
1) Decide whether the request is underspecified
Treat a request as underspecified if after exploring how to perform the work, some or all of the following are not clear:
- Define the objective (what should change vs stay the same)
- Define "done" (acceptance criteria, examples, edge cases)
- Define scope (which files/components/users are in/out)
- Define constraints (compatibility, performance, style, deps, time)
- Identify environment (language/runtime versions, OS, build/test runner)
- Clarify safety/reversibility (data migration, rollout/rollback, risk)
If multiple plausible interpretations exist, assume it is underspecified.
2) Ask must-have questions first (keep it small)
Ask 1-5 questions in the first pass. Prefer questions that eliminate whole branches of work.
Make questions easy to answer:
- Optimize for scannability (short, numbered questions; avoid paragraphs)
- Offer multiple-choice options when possible
- 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)
- Include a fast-path response (e.g., reply
defaultsto accept all recommended/default choices) - Include a low-friction "not sure" option when helpful (e.g., "Not sure - use default")
- Separate "Need to know" from "Nice to know" if that reduces friction
- Structure options so the user can respond with compact decisions (e.g.,
1b 2a 3c); restate the chosen options in plain language to confirm
3) Pause before acting
Until must-have answers arrive:
- Do not run commands, edit files, or produce a detailed plan that depends on unknowns
- 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)
If the user explicitly asks you to proceed without answers:
- State your assumptions as a short numbered list
- Ask for confirmation; proceed only after they confirm or correct them
4) Confirm interpretation, then proceed
Once you have answers, restate the requirements in 1-3 sentences (including key constraints and what success looks like), then start work.
Question templates
- "Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ...."
- "Which of these should it be? A) ... B) ... C) ... (pick one)"
- "What would you consider 'done'? For example: ..."
- "Any constraints I must follow (versions, performance, style, deps)? If none, I will target the existing project defaults."
- Use numbered questions with lettered options and a clear reply format
1) Scope?
a) Minimal change (default)
b) Refactor while touching the area
c) Not sure - use default
2) Compatibility target?
a) Current project defaults (default)
b) Also support older versions: <specify>
c) Not sure - use default
Reply with: defaults (or 1a 2a)
Anti-patterns
- Don't ask questions you can answer with a quick, low-risk discovery read (e.g., configs, existing patterns, docs).
- Don't ask open-ended questions if a tight multiple-choice or yes/no would eliminate ambiguity faster.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Frequently asked questions about Ask Questions If Underspecified
Similar skills
Spring Boot Testing
Master testing techniques for Spring Boot 4 applications.
GitHub Issues
Manage GitHub issues efficiently with MCP tools.
Geofeed Tuner
Optimize your IP geolocation feeds in CSV format.
Batch Files
Master Windows batch scripting for automation and task management.
Adobe Illustrator Scripting
Automate your Illustrator workflows with ExtendScript.
Plugin Structure
Create and organize Claude Code plugins effectively.
