Ask Me Questions
Help users regain understanding of codebases where AI autonomy outpaced human oversight.
Core Workflow
Step 1: Understand the Confusion
When user invokes this skill, first identify:
- What specific area/feature/file they're confused about
- How deep their confusion goes (surface-level vs fundamental)
- Whether they built it themselves, had AI build it, or inherited it
Ask immediately:
- "What part of the codebase are you confused about?"
- "Is this code you wrote, AI-generated, or inherited?"
Step 2: Explore the Relevant Code
Before asking detailed questions:
- Read the files/modules the user is confused about
- Trace the data flow and dependencies
- Identify key abstractions and patterns used
- Note anything that looks suspicious, inconsistent, or overly complex
Step 3: Ask Clarifying Questions
Use the environment's question-asking tool (AskUserQuestion in Claude Code, or equivalent).
Question categories to cover:
Intent Questions
- "What did you want this feature to accomplish?"
- "What problem was this supposed to solve?"
- "Who is the intended user of this functionality?"
Behavior Questions
- "What should happen when [specific action]?"
- "What's the expected output when [input scenario]?"
- "How should errors be handled here?"
Architecture Questions
- "Why is [component A] separate from [component B]?"
- "Should this data be stored in [location] or elsewhere?"
- "Is [dependency X] actually needed here?"
Verification Questions
- "Is it correct that [observed behavior]?"
- "Did you intend for [specific implementation detail]?"
- "Should [edge case] be handled differently?"
Step 4: Surface Gaps and Issues
Based on code exploration and user answers, identify:
- Understanding gaps - Things the user doesn't know about their own code
- Implementation gaps - Missing error handling, edge cases, validation
- Consistency issues - Patterns that don't match, naming inconsistencies
- Dead code - Unused functions, unreachable branches
- Security concerns - Exposed secrets, missing auth, injection risks
- Over-engineering - Unnecessary abstractions, premature optimization
Report findings clearly:
Based on our conversation, I found:
Understanding gaps:
- You weren't aware that X calls Y, which means Z
Implementation issues:
- No error handling in /src/api/users.ts:45
- Edge case: empty array not handled in processItems()
Potential concerns:
- API key appears hardcoded in config.ts
Step 5: Resolve and Educate
For each gap/issue:
- Explain what the code actually does (vs what user thought)
- Ask if the current behavior is intentional
- Offer to fix issues or explain the fix
- Help user understand the pattern for future reference
Question-Asking Guidelines
Use the Right Tool
- Claude Code: Use
AskUserQuestion tool with clear options
- Cursor: Use the built-in question mechanism
- Other environments: Ask inline and wait for response
Question Quality
- One topic at a time - Don't overwhelm with multiple complex questions
- Concrete, not abstract - "What should /api/users return?" not "How should the API work?"
- Include context - Reference specific files, lines, or behaviors
- Offer options when possible - Multiple choice is faster than open-ended
Example Question Flow
Q1: "What part of the codebase confuses you most?"
→ User: "The authentication flow"
Q2: "I see auth is handled in /src/lib/auth.ts and /src/middleware/session.ts.
Which aspect is unclear?"
- How users log in
- How sessions are managed
- How protected routes work
- All of it
→ User: "How sessions are managed"
Q3: "Sessions are stored in Redis with a 24h TTL. Is that intentional,
or did you expect something different?"
→ User: "I didn't know it used Redis, I thought it was cookies"
[Found understanding gap - explain and verify]
Common Vibecoding Issues to Check
When auditing AI-generated code, watch for:
- Hallucinated APIs - Calls to functions/endpoints that don't exist
- Incomplete implementations - TODO comments, placeholder code
- Inconsistent patterns - Multiple ways of doing the same thing
- Missing validation - User input not sanitized
- Hardcoded values - Magic numbers, embedded credentials
- Overly clever code - Complex solutions to simple problems
- Copy-paste artifacts - Duplicated code with slight variations
- Broken error handling - Catches that swallow errors silently
- Type mismatches - Incorrect TypeScript/type annotations
- Stale dependencies - Outdated or unused packages
1---2name: ask-me-questions3description: Interactive questioning skill to help users understand vibecoded or AI-generated codebases they've lost track of. Use when: (1) User is confused about how something works in their codebase (2) User doesn't understand code that was generated with too much AI autonomy (3) User wants to find gaps, errors, or misunderstandings in implementation (4) User says things like "I don't understand this", "how does X work", "what does this do" (5) User wants to audit their understanding of AI-generated code (6) User mentions "vibecoding", "lost track", "don't know what the agent built" Triggers: "confused", "don't understand", "how does this work", "explain", "audit my understanding", "vibecoded", "what did the agent do"4---56# Ask Me Questions78Help users regain understanding of codebases where AI autonomy outpaced human oversight.910## Core Workflow1112### Step 1: Understand the Confusion1314When user invokes this skill, first identify:15- What specific area/feature/file they're confused about16- How deep their confusion goes (surface-level vs fundamental)17- Whether they built it themselves, had AI build it, or inherited it1819**Ask immediately:**20- "What part of the codebase are you confused about?"21- "Is this code you wrote, AI-generated, or inherited?"2223### Step 2: Explore the Relevant Code2425Before asking detailed questions:261. Read the files/modules the user is confused about272. Trace the data flow and dependencies283. Identify key abstractions and patterns used294. Note anything that looks suspicious, inconsistent, or overly complex3031### Step 3: Ask Clarifying Questions3233Use the environment's question-asking tool (AskUserQuestion in Claude Code, or equivalent).3435**Question categories to cover:**3637#### Intent Questions38- "What did you want this feature to accomplish?"39- "What problem was this supposed to solve?"40- "Who is the intended user of this functionality?"4142#### Behavior Questions43- "What should happen when [specific action]?"44- "What's the expected output when [input scenario]?"45- "How should errors be handled here?"4647#### Architecture Questions48- "Why is [component A] separate from [component B]?"49- "Should this data be stored in [location] or elsewhere?"50- "Is [dependency X] actually needed here?"5152#### Verification Questions53- "Is it correct that [observed behavior]?"54- "Did you intend for [specific implementation detail]?"55- "Should [edge case] be handled differently?"5657### Step 4: Surface Gaps and Issues5859Based on code exploration and user answers, identify:60611. **Understanding gaps** - Things the user doesn't know about their own code622. **Implementation gaps** - Missing error handling, edge cases, validation633. **Consistency issues** - Patterns that don't match, naming inconsistencies644. **Dead code** - Unused functions, unreachable branches655. **Security concerns** - Exposed secrets, missing auth, injection risks666. **Over-engineering** - Unnecessary abstractions, premature optimization6768**Report findings clearly:**69```70Based on our conversation, I found:7172Understanding gaps:73- You weren't aware that X calls Y, which means Z7475Implementation issues:76- No error handling in /src/api/users.ts:4577- Edge case: empty array not handled in processItems()7879Potential concerns:80- API key appears hardcoded in config.ts81```8283### Step 5: Resolve and Educate8485For each gap/issue:861. Explain what the code actually does (vs what user thought)872. Ask if the current behavior is intentional883. Offer to fix issues or explain the fix894. Help user understand the pattern for future reference9091## Question-Asking Guidelines9293### Use the Right Tool94- **Claude Code**: Use `AskUserQuestion` tool with clear options95- **Cursor**: Use the built-in question mechanism96- **Other environments**: Ask inline and wait for response9798### Question Quality99- **One topic at a time** - Don't overwhelm with multiple complex questions100- **Concrete, not abstract** - "What should /api/users return?" not "How should the API work?"101- **Include context** - Reference specific files, lines, or behaviors102- **Offer options when possible** - Multiple choice is faster than open-ended103104### Example Question Flow105106```107Q1: "What part of the codebase confuses you most?"108→ User: "The authentication flow"109110Q2: "I see auth is handled in /src/lib/auth.ts and /src/middleware/session.ts.111 Which aspect is unclear?"112 - How users log in113 - How sessions are managed114 - How protected routes work115 - All of it116→ User: "How sessions are managed"117118Q3: "Sessions are stored in Redis with a 24h TTL. Is that intentional,119 or did you expect something different?"120→ User: "I didn't know it used Redis, I thought it was cookies"121122[Found understanding gap - explain and verify]123```124125## Common Vibecoding Issues to Check126127When auditing AI-generated code, watch for:128129- **Hallucinated APIs** - Calls to functions/endpoints that don't exist130- **Incomplete implementations** - TODO comments, placeholder code131- **Inconsistent patterns** - Multiple ways of doing the same thing132- **Missing validation** - User input not sanitized133- **Hardcoded values** - Magic numbers, embedded credentials134- **Overly clever code** - Complex solutions to simple problems135- **Copy-paste artifacts** - Duplicated code with slight variations136- **Broken error handling** - Catches that swallow errors silently137- **Type mismatches** - Incorrect TypeScript/type annotations138- **Stale dependencies** - Outdated or unused packages