default/skills/interviewing-user/SKILL.md
Proactive requirements gathering - systematically interviews the user to uncover ambiguities, preferences, and constraints BEFORE implementation begins.
npx skillsauth add lerianstudio/ring ring:interviewing-userInstall 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.
Proactively surface and resolve ambiguities by systematically interviewing the user BEFORE implementation begins. This prevents wasted effort from incorrect assumptions.
Core principle: It's better to ask 5 questions upfront than to rewrite code 3 times.
Announce at start: "I'm using the ring:interviewing-user skill to gather requirements before we begin."
| Phase | Key Activities | Tool | Output | |-------|---------------|------|--------| | 1. Context Analysis | Analyze task, identify ambiguities | Internal | Ambiguity inventory | | 2. Question Clustering | Group questions by category | Internal | Prioritized question list | | 3. Structured Interview | Ask questions using AskUserQuestion | AskUserQuestion | User responses | | 4. Understanding Summary | Synthesize and confirm | Text output | Validated Understanding | | 5. Proceed or Iterate | User confirms or clarifies | User input | Green light to proceed |
Copy this checklist to track progress:
Interview Progress:
- [ ] Phase 1: Context Analysis (ambiguities identified)
- [ ] Phase 2: Question Clustering (questions prioritized)
- [ ] Phase 3: Structured Interview (questions asked and answered)
- [ ] Phase 4: Understanding Summary (presented to user)
- [ ] Phase 5: Proceed or Iterate (user confirmed)
BEFORE asking any questions, analyze:
Create an Ambiguity Inventory:
Ambiguity Inventory:
- Architecture: [list unclear architectural decisions]
- Behavior: [list unclear behavioral requirements]
- Constraints: [list unclear constraints or limitations]
- Preferences: [list unclear user preferences]
- Integration: [list unclear integration points]
Group questions by category and prioritize:
| Priority | Category | Criteria | |----------|----------|----------| | P0 | Blocking | Cannot proceed without answer | | P1 | Architecture | Affects overall structure | | P2 | Behavior | Affects user-facing functionality | | P3 | Preferences | Affects style, not correctness |
Question Budget:
Use AskUserQuestion tool with well-structured options:
Question Quality Checklist:
Example - Good Question:
header: "Auth Method"
question: "The codebase has both session-based auth (UserService) and JWT (APIService). Which should this new endpoint use?"
options:
- label: "Session-based (Recommended)"
description: "Matches existing user-facing endpoints, simpler cookie handling"
- label: "JWT tokens"
description: "Matches API patterns, better for external integrations"
- label: "Support both"
description: "Maximum flexibility, more implementation complexity"
Example - Bad Question:
question: "What authentication should I use?"
options:
- label: "Option 1"
- label: "Option 2"
After gathering responses, synthesize into a Validated Understanding:
## Validated Understanding
### What We're Building
[1-2 sentence summary of the goal]
### Key Decisions Made
| Decision | Choice | Rationale |
|----------|--------|-----------|
| [Topic] | [Selected option] | [Why this was chosen] |
### Constraints Confirmed
- [Constraint 1]
- [Constraint 2]
### Out of Scope (Explicit)
- [Thing we're NOT doing]
### Assumptions (If Any)
- [Assumption]: [What would invalidate this]
Present this to the user for confirmation.
Confirmation Gate:
Understanding is NOT confirmed until user explicitly says:
These do NOT mean confirmation:
If not confirmed: Return to Phase 3 with targeted follow-up questions.
Claude SHOULD invoke this skill automatically when:
Claude should NOT auto-trigger when:
| Anti-Pattern | Why It's Wrong | Correct Approach | |--------------|----------------|------------------| | Asking without exploring first | Wastes user's time | Explore codebase THEN ask | | Open-ended questions only | Hard to answer, vague responses | Provide concrete options | | Too many questions at once | Overwhelming | Max 4 per round, max 3 rounds | | Asking about things user already said | Shows you weren't listening | Re-read conversation first | | Asking preferences when conventions exist | CLAUDE.md/codebase already answers | Follow existing patterns | | Skipping summary phase | User can't correct misunderstandings | Always present Validated Understanding |
| Skill | Relationship |
|-------|--------------|
| ring:doubt-triggered-questions | Use for single questions during work; use ring:interviewing-user for systematic upfront gathering |
| ring:brainstorming | Interview first to gather requirements, THEN brainstorm solutions |
| ring:writing-plans | Interview first to clarify scope, THEN create plan |
This skill uses these universal patterns:
skills/shared-patterns/state-tracking.mdskills/shared-patterns/failure-recovery.mdskills/shared-patterns/exit-criteria.mdInterview is complete when ALL of these are true:
STOP and report if:
| Decision Type | Blocker Condition | Required Action | |---|---|---| | Question Budget | Exceeded 3 rounds of questions without resolution | STOP and report - user may not have required information | | Confirmation | User neither confirms nor denies understanding after 2 attempts | STOP and ask for explicit confirmation | | Scope Creep | Interview reveals task is fundamentally different than expected | STOP and restart with new scope definition | | Contradiction | User responses contradict each other | STOP and surface the contradiction for resolution |
The following requirements CANNOT be waived:
| Severity | Condition | Required Action | |---|---|---| | CRITICAL | P0 blocking question unanswered | MUST resolve before any implementation | | HIGH | P1 architecture question unanswered | MUST resolve - affects overall structure | | MEDIUM | P2 behavior question unanswered | Should resolve - affects user-facing functionality | | LOW | P3 preference question unanswered | Can proceed with sensible default |
| User Says | Your Response | |---|---| | "Just start building, we'll figure it out" | "CANNOT proceed without resolving P0 and P1 questions. It's better to ask 5 questions upfront than rewrite code 3 times." | | "I don't have time for all these questions" | "I MUST ask at least P0 blocking questions. Maximum 3 rounds, maximum 4 questions per round - this saves time versus incorrect implementation." | | "You're the expert, just decide" | "CANNOT make architecture decisions without user input. I'll present 2-4 concrete options with trade-offs for you to choose." |
| Rationalization | Why It's WRONG | Required Action | |---|---|---| | "User seems busy, I'll skip the interview" | Skipping requirements gathering causes rework. 5 upfront questions < 3 implementation rewrites. | MUST complete interview for ambiguous requirements | | "I can infer what they want from context" | Inference creates assumptions. Explicit confirmation prevents misunderstanding. | MUST get explicit answers, not infer intent | | "Open-ended question will give richer response" | Open-ended questions are hard to answer and produce vague responses. | MUST provide 2-4 concrete options | | "User said 'sounds good' - that's confirmation" | 'Sounds good' is acknowledgment, not explicit confirmation. | MUST get explicit 'confirmed' or 'proceed' |
| Principle | Application | |-----------|-------------| | Explore before asking | 30 seconds of exploration can save a question | | Structured choices | Use AskUserQuestion with 2-4 concrete options | | Show your work | Include what you found and why you're uncertain | | Respect time | Max 3 rounds, max 4 questions per round | | Confirm understanding | Always present summary for validation | | Iterate if needed | Unclear confirmation = ask follow-up |
development
Analyzes a Go service using lib-commons v2/v3 and generates a visual migration report showing every change needed to upgrade to lib-commons v4. Produces an interactive HTML page (via ring:visualize) and optionally generates refactoring tasks for ring:dev-cycle.
documentation
Patterns and structure for writing functional documentation including guides, conceptual explanations, tutorials, and best practices documentation.
development
Patterns and structure for writing API reference documentation including endpoint descriptions, request/response schemas, and error documentation.
documentation
Voice and tone guidelines for technical documentation. Ensures consistent, clear, and human writing across all documentation.