Ask Questions If Underspecified
Goal
Ask the minimum set of clarifying questions needed to avoid wrong work.
Do not start implementing until must-have questions are answered, unless the user explicitly asks to proceed with assumptions.
Non-negotiables
- Do not run commands or edit files while must-have unknowns remain.
- Prefer repo-local truth over guesses.
- If
REPO_PROFILE.json exists, do not ask questions it already answers (stack, paths, commands, quality bar).
- Do not contradict repo governance (AGENTS/CALIBRATION) if present.
- Use only when explicitly invoked.
Workflow
1) Decide whether the request is underspecified
Treat a request as underspecified if, after exploring how to perform the work, any of the following are unclear:
- Objective (what should change vs stay the same)
- Done (acceptance criteria, examples, edge cases)
- Scope (which files/components/users are in/out)
- Constraints (compatibility, performance, style, deps, time)
- Safety/reversibility (migration, rollout/rollback, risk)
Environment/tooling questions are underspecified only if REPO_PROFILE.json is missing.
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:
- Short, numbered questions
- Multiple-choice where possible
- Suggest defaults (clearly marked)
- Provide a fast-path response (
defaults)
- Allow compact answers like
1b 2a 3c and restate chosen options
3) Pause before acting
Until must-have answers arrive:
- Do not run commands, edit files, or produce a detailed plan that depends on unknowns.
- You may do low-risk discovery only if it does not commit to a direction (inspect repo structure, read configs/docs).
If the user explicitly asks to proceed without answers:
- State assumptions as a short numbered list
- Proceed under those assumptions without further questioning
4) Confirm interpretation, then hand off
Once you have answers:
- Restate requirements in 1–3 sentences including constraints and success criteria
- Recommend the next skill to invoke (usually
$create-plan or an implementation skill)
Question templates
- "Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ...."
- "Which should it be? A) ... B) ... C) ... (pick one)"
- "What would you consider 'done'? For example: ..."
- "Any constraints (versions, performance, style, deps)? If none, I will target project defaults."
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)
1---2name: ask-questions-if-underspecified3description: Clarify requirements before implementing. Do not use automatically, only when invoked explicitly.4---56# Ask Questions If Underspecified78## Goal9Ask the minimum set of clarifying questions needed to avoid wrong work.10Do not start implementing until must-have questions are answered, unless the user explicitly asks to proceed with assumptions.1112---1314## Non-negotiables15- Do not run commands or edit files while must-have unknowns remain.16- Prefer repo-local truth over guesses.17- If `REPO_PROFILE.json` exists, do not ask questions it already answers (stack, paths, commands, quality bar).18- Do not contradict repo governance (AGENTS/CALIBRATION) if present.19- Use only when explicitly invoked.2021---2223## Workflow2425### 1) Decide whether the request is underspecified26Treat a request as underspecified if, after exploring how to perform the work, any of the following are unclear:27- Objective (what should change vs stay the same)28- Done (acceptance criteria, examples, edge cases)29- Scope (which files/components/users are in/out)30- Constraints (compatibility, performance, style, deps, time)31- Safety/reversibility (migration, rollout/rollback, risk)3233Environment/tooling questions are underspecified only if `REPO_PROFILE.json` is missing.3435If multiple plausible interpretations exist, assume it is underspecified.3637### 2) Ask must-have questions first (keep it small)38Ask 1–5 questions in the first pass. Prefer questions that eliminate whole branches of work.3940Make questions easy to answer:41- Short, numbered questions42- Multiple-choice where possible43- Suggest defaults (clearly marked)44- Provide a fast-path response (`defaults`)45- Allow compact answers like `1b 2a 3c` and restate chosen options4647### 3) Pause before acting48Until must-have answers arrive:49- Do not run commands, edit files, or produce a detailed plan that depends on unknowns.50- You may do low-risk discovery only if it does not commit to a direction (inspect repo structure, read configs/docs).5152If the user explicitly asks to proceed without answers:53- State assumptions as a short numbered list54- Proceed under those assumptions without further questioning5556### 4) Confirm interpretation, then hand off57Once you have answers:58- Restate requirements in 1–3 sentences including constraints and success criteria59- Recommend the next skill to invoke (usually `$create-plan` or an implementation skill)6061---6263## Question templates64- "Before I start, I need: (1) ..., (2) ..., (3) .... If you don't care about (2), I will assume ...."65- "Which should it be? A) ... B) ... C) ... (pick one)"66- "What would you consider 'done'? For example: ..."67- "Any constraints (versions, performance, style, deps)? If none, I will target project defaults."6869```text701) Scope?71a) Minimal change (default)72b) Refactor while touching the area73c) Not sure - use default74752) Compatibility target?76a) Current project defaults (default)77b) Also support older versions: <specify>78c) Not sure - use default7980Reply with: defaults (or 1a 2a)