plugins/clarify/skills/vague/SKILL.md
This skill should be used when the user's request or requirement is ambiguous and needs iterative questioning to become actionable. Trigger on "clarify requirements", "refine requirements", "요구사항 명확히", "요구사항 정리", "뭘 원하는 건지", "make this clearer", "spec this out", "scope this", "/clarify". Turns vague inputs into concrete specs. For strategy blind spots use unknown; for content-vs-form reframing use metamedium.
npx skillsauth add treejh/claude-agent-skills vagueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform vague or ambiguous requirements into precise, actionable specifications through hypothesis-driven questioning. ALWAYS use the AskUserQuestion tool — never ask clarifying questions in plain text.
For strategy/planning blind spot analysis, use the unknown skill. For content-vs-form reframing, use the metamedium skill.
Present plausible interpretations as options instead of asking open questions. Each option is a testable hypothesis about what the user actually means.
BAD: "What kind of login do you want?" ← open question, high cognitive load
GOOD: "OAuth / Email+Password / SSO / Magic link" ← pick one, lower load
Record the original requirement verbatim. Identify ambiguities:
Use AskUserQuestion to resolve ambiguities. Batch up to 4 related questions per call. Each option is a hypothesis about what the user means.
Cap: 5-8 total questions. Stop when all critical ambiguities are resolved, OR user indicates "good enough", OR cap reached.
Example AskUserQuestion call:
questions:
- question: "Which authentication method should the login use?"
header: "Auth method"
options:
- label: "Email + Password"
description: "Traditional signup with email verification"
- label: "OAuth (Google/GitHub)"
description: "Delegated auth, no password management needed"
- label: "Magic link"
description: "Passwordless email-based login"
multiSelect: false
- question: "What should happen after registration?"
header: "Post-signup"
options:
- label: "Immediate access"
description: "User can use the app right away"
- label: "Email verification first"
description: "Must confirm email before access"
multiSelect: false
Present the transformation:
## Requirement Clarification Summary
### Before (Original)
"{original request verbatim}"
### After (Clarified)
**Goal**: [precise description]
**Scope**: [included and excluded]
**Constraints**: [limitations, preferences]
**Success Criteria**: [how to know when done]
**Decisions Made**:
| Question | Decision |
|----------|----------|
| [ambiguity 1] | [chosen option] |
Ask whether to save the clarified requirement to a file. Default location: requirements/ or project-appropriate directory.
| Category | Example Hypotheses | |----------|-------------------| | Scope | All users / Admins only / Specific roles | | Behavior | Fail silently / Show error / Auto-retry | | Interface | REST API / GraphQL / CLI | | Data | JSON / CSV / Both | | Constraints | <100ms / <1s / No requirement | | Priority | Must-have / Nice-to-have / Future |
development
Use when you have a spec or requirements for a multi-step task, before touching code
development
Invoke only when explicitly asked to write, edit, or polish prose in Chinese or English. Strips AI writing patterns and rewrites to sound natural. Not for code comments, commit messages, or inline docs.
development
Invoke before writing any code for a new feature, design, or architecture decision. Turns rough ideas into approved plans with validated structure. Not for bug fixes or small edits.
development
Use when implementing any feature or bugfix, before writing implementation code