ask-questions-if-underspecified
Clarify requirements before implementing. Use when serious doubts arise.
Best use case
ask-questions-if-underspecified is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Clarify requirements before implementing. Use when serious doubts arise.
Teams using ask-questions-if-underspecified should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ask-questions-if-underspecified/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ask-questions-if-underspecified Compares
| Feature / Agent | ask-questions-if-underspecified | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Clarify requirements before implementing. Use when serious doubts arise.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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 ```text 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.
Related Skills
zustand-store-ts
Create Zustand stores following established patterns with proper TypeScript types and middleware.
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
zod-validation-expert
Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.
zipai-optimizer
Ultra-dense token optimizer skill for prompt caching, log pruning, AST-based inspection, and minified JSON payloads.
zeroize-audit
Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data.
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
zapier-make-patterns
No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.
youtube-summarizer
Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks
youtube-full
Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.
youtube-automation
Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.
yield-intelligence
Passive income portfolio analysis — activate when user asks about dividend yields, Treasury rates, REIT income, monthly passive income goals, or portfolio yield optimization. Scans 4 asset classes, ranks by risk-adjusted return, and builds allocations targeting a specific monthly income.