From ravn-ai-toolkit
Interviews users relentlessly on plans or designs using structured Socratic questioning to uncover assumptions, edge cases, dependencies, and validate feasibility.
npx claudepluginhub ravnhq/ai-toolkitThis skill is limited to using the following tools:
Interview the user relentlessly about a plan or design using structured Socratic questioning until reaching high confidence. Walk the decision tree systematically, uncover hidden assumptions, expose edge cases, and validate feasibility before implementation.
Pressure-tests existing plans, specs, or designs through relentless user interviews, resolving decision tree branches with recommendations and codebase exploration.
Grills users relentlessly on plans or designs by probing decision tree branches one-by-one with recommendations until shared understanding. Useful for stress-testing ideas or 'grill me' requests.
Grills users relentlessly on plans or designs by interviewing branch-by-branch through decision trees to reach shared understanding. Use to stress-test ideas or on 'grill me'.
Share bugs, ideas, or general feedback.
Interview the user relentlessly about a plan or design using structured Socratic questioning until reaching high confidence. Walk the decision tree systematically, uncover hidden assumptions, expose edge cases, and validate feasibility before implementation.
Before asking anything, gather the full context:
If the user hasn't provided context, ask them to share the plan first:
What's the design or plan you want me to grill you on? Please share:
- A brief description or goals
- Any relevant code or documentation
- Constraints or requirements
Do not proceed until you have context to work with.
Structure your questioning around these categories:
| Category | Focus | Example Questions |
|---|---|---|
| Requirements | What is the user trying to solve? | "What problem does this solve?" "Who are the users?" "What success looks like?" |
| Assumptions | What is the user taking for granted? | "Why are you using technology X?" "What if that assumption is wrong?" "Have you validated this with users?" |
| Constraints | What are the boundaries? | "What are the hard constraints (time, budget, scale)?" "What are you not allowed to change?" "What's the deployment path?" |
| Dependencies | What else must be true? | "What other systems must exist?" "What's the critical path?" "What could block you?" |
| Edge Cases | What could break it? | "What happens at scale?" "What about error cases?" "What if X fails?" |
| Validation | How will you know it works? | "How will you measure success?" "What are your test criteria?" "How will you catch regressions?" |
Map out the logical dependencies between decisions:
Primary decision
├── Sub-decision A
│ ├── Implementation choice A.1
│ └── Implementation choice A.2
├── Sub-decision B
│ ├── Validation approach B.1
│ └── Rollback plan B.2
└── Sub-decision C
Identify which decisions must be resolved first (blockers) and which can be explored in parallel.
Important: Ask about high-impact, high-uncertainty decisions first. Skip decisions that are already locked down (unless you spot contradictions).
For each unresolved branch, ask exactly one focused question:
Structure of each question:
Example:
You're planning async message processing. The question is:
should messages be processed in order (FIFO) or can they be out of order?
My recommendation: enforce FIFO unless you have a specific reason not to.
Out-of-order processing complicates debugging and introduces race conditions.
Risk if you go out-of-order: state consistency bugs that are hard to reproduce.
What's your thinking here?
If a question can be answered by reading code, do that instead of asking:
# Examples:
grep -r "MessageQueue" src/ # How are messages currently queued?
grep -r "error handling" src/ # What error patterns already exist?
find . -name "*.test.ts" | head -5 # What's the testing pattern?
Surface findings to the user:
I found that your existing API already has retry logic in [file:line].
Given that, my question becomes: should we reuse this pattern or replace it?
If the user's answer contradicts earlier statements or introduces new risks, surface this explicitly:
You said earlier that latency is critical, but now you're proposing a
synchronous validation step that could block for seconds.
How do you reconcile these constraints?
Do not accept contradictions silently. Push back gently but clearly.
Stop questioning when:
When you've finished questioning, provide a brief summary:
## Summary
### Decisions Locked
- Message processing: FIFO with retry logic (max 3 retries)
- Deployment: Blue-green with health checks
- Monitoring: Custom metrics on latency percentiles
### Remaining Risks
- Database scaling: you identified this but haven't validated with ops yet
- Failover time: depends on network convergence (currently untested)
### Next Steps
1. Validate with ops team on database capacity
2. Run failover simulation to measure real time
3. Build monitoring dashboard before launch
Confidence level: High on architecture, Medium on operational readiness.
Ready to design in detail?
User: "Grill me on this auth system design."
Expected behavior: Read the design, identify key decisions, ask probing questions about assumptions and edge cases, validate feasibility, and push back on contradictions.
User: "Stress-test my plan for migrating to a new database."
Expected behavior: Map out the migration steps, probe assumptions about downtime and rollback, identify risks around data consistency, ask validation questions.
User: "Interview me on this feature proposal before I write code."
Expected behavior: Understand the requirements, validate the approach against constraints, uncover hidden dependencies, ensure the user is thinking through edge cases.
User: "Review this code and fix the bugs."
Expected behavior: Do not use grill-me. The user wants code review and fixes, not an interview. Use a code review skill instead.
User: "What do you think of this design?"
Expected behavior: Do not use grill-me unless the user explicitly asks to be grilled. Provide direct feedback or a review instead.