Claude-skill-registry ask-any-follow-up-questions
Ask follow-up questions to clarify requirements, constraints, and success criteria. Do not use automatically, only when invoked explicitly.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ask-any-follow-up-questions" ~/.claude/skills/majiayu000-claude-skill-registry-ask-any-follow-up-questions && rm -rf "$T"
skills/data/ask-any-follow-up-questions/SKILL.mdAsk Any Follow-Up Questions
Goal
Ask follow-up questions (must-have first, then nice-to-have) to avoid wrong work and reduce rework. Do not implement until must-have questions are answered, or the user explicitly approves proceeding with stated assumptions.
When to use
Use this skill only when explicitly invoked. Once invoked:
- You may ask clarifying questions even if the request seems mostly specified.
- Still optimize for speed: ask the smallest set that meaningfully reduces ambiguity.
Workflow
1) Identify what’s unclear or risky
After a quick mental check of how you would do the work, consider gaps in:
- Objective (what should change vs stay the same)
- Definition of done (acceptance criteria, examples, edge cases)
- Scope (files/components/users in/out)
- Constraints (compatibility, performance, style, dependencies, time)
- Environment (language/runtime versions, OS, build/test runner)
- Safety/reversibility (migrations, rollout/rollback, risk level)
If multiple plausible interpretations exist, treat as underspecified.
2) Ask must-have questions first (keep it small)
Ask 1–5 must-have questions first. Prefer questions that eliminate whole branches of work.
Make questions easy to answer:
- Numbered questions; short; scannable
- Multiple-choice options when possible
- Include recommended defaults (clearly marked)
- Include a fast-path response (e.g., reply
)defaults - Include “Not sure — use default” when helpful
- Provide a compact reply format (e.g.,
)1b 2a 3c
3) Ask nice-to-have questions (only if useful)
After must-haves are answered (or defaults accepted), optionally ask up to 1–3 nice-to-have questions that:
- Improve UX/maintainability/perf
- Reduce future rework
- Clarify preferences (naming, style, logging, docs)
If user wants speed, skip nice-to-haves.
4) Pause before acting
Until must-have answers arrive:
- Do not run commands, edit files, or produce a plan that depends on unknowns.
- Allowed: low-risk discovery only (read docs/configs, inspect repo structure) if it doesn’t commit to a direction.
If user asks you to proceed without answers:
- State assumptions as a short numbered list
- Ask for confirmation
- Proceed only after they confirm or correct assumptions
5) Confirm interpretation, then proceed
Once answers are received:
- Restate requirements in 1–3 sentences (objective + scope + constraints + done)
- Then implement
Question templates
- “Before I start, I need: (1) … (2) … (3) …. If you don’t care about (2), I’ll assume ….”
- “Which should it be? A) … B) … C) … (pick one)”
- “What does ‘done’ look like? Example: …”
- “Any constraints (versions, perf, style, deps)? If none, I’ll target existing project defaults.”
Reply format example
1) Scope? a) Minimal change (recommended/default) b) Refactor while touching the area c) Not sure — use default 2) Compatibility target? a) Current project defaults (recommended/default) b) Also support older versions: <specify> c) Not sure — use default 3) Verification? a) Existing tests only (recommended/default) b) Add/adjust tests for new behavior c) Not sure — use default Reply with: defaults (or 1a 2a 3b)
Anti-patterns
- Don’t ask questions you can answer with quick, low-risk discovery reads (configs, existing patterns, docs).
- Don’t ask open-ended questions when tight options would eliminate ambiguity faster.
- Don’t “question-spam”: if answers won’t change implementation, skip.