New to Claude Skills? Learn how to install them →

sickn33 on GitHub

Ask Questions If Underspecified

Free

Clarify project requirements before implementation.

Get this skill

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 source

1. Install with the skills CLI

npx skills add sickn33/agentic-awesome-skills/ask-questions-if-underspecified --agent claude-code

2. 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 sickn33

Ask 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 defaults to 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