skills/deep-interview/SKILL.md
Use when the user's request is vague, underspecified, or ambitious. Use when the user says "I want to build...", "I need...", "Can you create...", "Let's make..." without specifying scope, constraints, success criteria, or edge cases. Use when brainstorming would start but requirements feel thin. Use when the user describes a WHAT without a WHY or WHEN or HOW MUCH. Use when you detect 2+ undefined dimensions in a request. Use when the user explicitly says "/deep-interview", "interview me", "help me think through this", "clarify requirements", "what am I missing", "poke holes in this idea". Use BEFORE brainstorming or writing-plans when the idea has gaps. Do NOT use when requirements are already specific and complete. Do NOT use for simple tasks (rename a variable, fix a typo, add a comment). Do NOT use when the user says "just do it" or provides a detailed spec. Do NOT use for debugging, code review, or operational tasks. Use superpowers:brainstorming instead when requirements are clear but design needs exploration. Use writing-plans when both requirements and design are clear.
npx skillsauth add sharkitect-solutions/sharkitect-claude-toolkit deep-interviewInstall 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.
Expose what the user hasn't thought about BEFORE any code gets written. This skill uses structured Socratic questioning to transform vague ideas into buildable requirements briefs.
| File | Load When | Do NOT Load |
|---|---|---|
| references/dimension-rubric.md | Scoring clarity, assessing thresholds, weighting dimensions | Questioning phase (focus on asking, not scoring) |
| references/question-bank.md | Need specific probing questions for a dimension | Already past the questioning phase |
| references/assumption-patterns.md | Identifying hidden assumptions by domain | Simple, well-scoped requests |
| references/ontology-tracking.md | Entities shifting across rounds, need convergence method | Entities already stable for 2+ rounds |
| Request | This Skill | Use Instead | |---|---|---| | "I want to build X" (vague) | YES | - | | "Help me think through this idea" | YES | - | | "/deep-interview" | YES | - | | "What am I missing?" | YES | - | | "Build X with these exact specs [detailed]" | NO | superpowers:brainstorming or writing-plans | | "Fix this bug" | NO | superpowers:systematic-debugging | | "Review this code" | NO | code-reviewer | | "Plan the implementation of [clear spec]" | NO | superpowers:writing-plans | | "Explore approaches for [clear requirement]" | NO | superpowers:brainstorming |
<HARD-GATE> Do NOT start implementation, write code, create files, scaffold projects, or invoke any build skill until the interview produces a requirements brief with ALL dimensions scoring 7+ out of 10. If the user says "just build it" mid-interview, present the current clarity scores and explain which gaps will cause rework. Let them decide, but make the cost visible. </HARD-GATE>Detect these signals and suggest a deep interview before proceeding:
Auto-suggest phrasing: "This sounds like it has some undefined dimensions. Want me to run a quick deep interview to surface what we might be missing? It takes 3-5 questions."
Every requirement has six dimensions. Score each 1-10 during the interview.
| Dimension | Weight | What It Measures | Score 1 (Vague) | Score 10 (Crystal) | |---|---|---|---|---| | Scope | 25% | What's in, what's out | "Build me an app" | "CRUD API for tasks with 3 endpoints, no auth" | | Success Criteria | 20% | How we know it's done | "It should work well" | "Returns 200 on valid input, 422 on bad input, <100ms p95" | | Constraints | 20% | What limits the solution | None mentioned | "Python stdlib only, must run on Windows, no external APIs" | | Edge Cases | 15% | What happens when things go wrong | Not considered | "Empty input returns [], malformed JSON returns 400, rate-limited after 100 req/min" | | Dependencies | 10% | What this connects to | Unknown | "Reads from Supabase tasks table, called by n8n webhook node" | | User Context | 10% | Who uses this and why | "Users" | "Internal team of 3, accessed via CLI, used daily for task triage" |
Clarity threshold: Weighted average >= 7.0. Below 7.0, keep asking. Above 7.0, present the brief and transition to brainstorming.
Brownfield detection: Before scoring, check if the request involves modifying an existing system. Look for signals: the CWD has source code, the user references existing files/features, or says "add to", "change", "extend", "fix". If brownfield:
src/auth/. Should this
feature extend that, or use a different approach?" Never ask the user what the code
already reveals.Read the user's request. Internally score all six dimensions. Identify the 2-3 lowest-scoring dimensions. Do NOT dump all six scores on the user -- pick the biggest gaps.
Ask ONE question at a time. Each question targets the lowest-scoring dimension.
Question targeting rule: Always probe the dimension where (weight * gap_to_10) is
largest. A scope dimension at 4 (weight 25%, gap 6) contributes 1.5 to the deficit. A
user context dimension at 4 (weight 10%, gap 6) contributes 0.6. Probe scope first --
it moves the needle 2.5x more per question.
Rules for questions:
references/ontology-tracking.md for the full convergence method.After scoring hits 6.0+, present the assumptions you've detected:
## Detected Assumptions
1. **[Assumption]** -- You haven't explicitly stated [X]. I'm assuming [Y].
Is that correct, or should we define this differently?
2. **[Assumption]** -- The request implies [X], but [alternative Z] is also
possible. Which do you intend?
3. **[Assumption]** -- No mention of [X]. Common pitfall: teams skip this
and discover it during integration. Want to address it now?
Each assumption the user confirms or corrects improves the clarity score.
When clarity threshold (7.0) is reached, produce this deliverable:
## Requirements Brief: [Title]
**Clarity Score:** [weighted average] / 10
### Scope
- **In scope:** [bullet list]
- **Out of scope:** [bullet list]
- **Deferred:** [bullet list with reasoning]
### Success Criteria
- [ ] [Measurable criterion 1]
- [ ] [Measurable criterion 2]
- [ ] [Measurable criterion 3]
### Constraints
- [Constraint 1]
- [Constraint 2]
### Edge Cases
- [Edge case 1] -> [Expected behavior]
- [Edge case 2] -> [Expected behavior]
### Dependencies
- [Dependency 1] -- [status: exists/needs-building/unknown]
- [Dependency 2] -- [status]
### User Context
- **Who:** [description]
- **How:** [access method]
- **When:** [frequency/triggers]
- **Why:** [motivation]
### Assumptions (Confirmed)
- [Assumption 1] -- confirmed by user
- [Assumption 2] -- confirmed by user
### Risks
- [Risk 1] -- [mitigation or accepted]
After the user approves the brief:
docs/superpowers/specs/YYYY-MM-DD-<topic>-requirements.mdsuperpowers:brainstorming with the brief as input contextSave after every round. Write interview state to .tmp/deep-interview-state.json:
{
"topic": "brief title",
"started": "2026-04-12T14:30:00Z",
"round": 3,
"scores": {"scope": 8, "success": 5, "constraints": 7, "edge_cases": 3, "dependencies": 6, "user_context": 9},
"weighted_avg": 6.2,
"entities": ["Task", "User", "Workflow"],
"entity_stable_rounds": 1,
"brownfield": false,
"qa_pairs": [{"q": "...", "a": "..."}, ...]
}
Resume on re-invocation. If .tmp/deep-interview-state.json exists when the skill
loads, offer: "Found an in-progress interview about [topic] (round [N], clarity [X]/10).
Resume or start fresh?" If resume, load the state and continue from the next question.
Clean up on completion. Delete the state file after the requirements brief is saved and approved. Don't leave stale state for the next interview.
The #1 failure mode: skipping requirements clarification because the task SEEMS clear.
Detection signals:
Why it's wrong: Familiar words mask different intentions. "Build me a dashboard" means wildly different things depending on who's looking at it, what decisions it informs, how often it updates, and what actions it enables. The 5 minutes spent interviewing saves the 2 hours spent rebuilding when assumptions are wrong.
The #2 failure mode: asking so many questions the user disengages.
Detection signals:
Why it's wrong: The interview exists to prevent rework, not to produce a perfect spec. A brief with two noted risks ships faster than a brief that never gets written because the user said "forget it, just build something." Know when 80% clarity is enough to start.
The rule: 7 questions maximum for a moderately scoped request. If you hit question 5 with a weighted average of 6.5+, present the brief with explicit risk notes on the weak dimensions. Let the user decide whether to clarify further or accept the risks.
| Rationalization | When It Appears | Why It Is Wrong | |---|---|---| | "The user seems to know what they want" | User speaks confidently about a vague idea | Confidence about WHAT doesn't mean clarity about HOW, WHEN, WHO, or edge cases. Interview the gaps. | | "This is straightforward, no interview needed" | Familiar problem domain | Familiar domains have the MOST hidden assumptions because you fill gaps with your own defaults instead of asking. | | "I don't want to slow the user down with questions" | User seems eager to start | 5 minutes of questions saves 2 hours of rework. The user will thank you for surfacing the blind spot they missed. | | "I'll figure out the details as I build" | Ambiguous scope but clear starting point | Discovering requirements during implementation means rework. Every assumption you don't validate is a potential rebuild. | | "The brainstorming skill will handle requirements" | Requirements overlap with design | Brainstorming explores HOW given clear requirements. This skill defines WHAT. Skipping WHAT makes HOW meaningless. | | "One quick question is enough" | Time pressure | One question covers one dimension. Six dimensions need targeted probing. Under-interviewing leaves 5 blind spots. |
Before transitioning to brainstorming, verify NONE of these are true:
User Request (vague)
|
[deep-interview] <-- YOU ARE HERE
|
Requirements Brief (approved)
|
[superpowers:brainstorming]
|
Design Spec (approved)
|
[superpowers:writing-plans]
|
Implementation Plan
|
[execution skills]
The deep interview is the FIRST gate. It feeds brainstorming, which feeds planning, which feeds execution. Skipping this gate means every downstream stage inherits unvalidated assumptions.
User request: "I want to build a notification system"
Without deep interview: Claude starts building an email notification system with SMTP, HTML templates, and a queue. User wanted Telegram alerts for their 3-person team. 2 hours wasted.
With deep interview (3 questions):
Q1: "Would this be (a) email notifications, (b) push notifications, (c) chat alerts (Slack/Telegram/Discord), or (d) in-app notifications?" A: "Telegram alerts for our team"
Q2: "What triggers an alert? Is it (a) a scheduled check, (b) an event from another system, or (c) manual? And how urgent -- real-time or batched?" A: "When a gap report lands in the inbox. Real-time."
Q3: "I'm assuming the Telegram bot already exists and we just need to send to it. Is that right, or do we need to set up the bot too?" A: "Bot exists, just need the send function"
Clarity scores after 3 questions: Scope: 9, Success: 7, Constraints: 8, Edge Cases: 5, Dependencies: 8, User Context: 9. Weighted average: 7.8. Threshold met.
Result: Requirements brief produced in 2 minutes. Correct system built on first attempt.
development
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ad copy,' 'ad creative,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, ad creation, audience targeting, and optimization.
testing
--- name: using-sharkitect-methodology description: Use when starting any conversation in a Sharkitect workspace OR before any task involving NEW pricing, positioning, proposal, strategy, plan-execution, or schema-design work — mandates invocation of Sharkitect-specific methodology skills (pricing-strategy, marketing-strategy-pmm, smb-cfo, hq-revenue-ops, executing-plans, brainstorming) under the same anti-rationalization discipline as using-superpowers. Documentation has failed 4 times across H
testing
Use when user says 'end session', 'wrap up', 'stop for the day', 'done for today', 'close out', 'save session', 'wrapping up', or invokes /end-session. Runs the full 9-step end-of-session protocol: resource audit, MEMORY.md update, lessons capture, plan status, pending items, workspace checklist, .tmp/ audit, git commit+push, Supabase brain sync, session brief, summary. Final step schedules a detached self-kill of the current session ONLY (3s delay) so the window closes cleanly. Other claude.exe processes (active workspaces) are NOT touched -- orphan cleanup is handled separately by Claude-Orphan-Cleanup-Hourly with proper age safeguards. Do NOT use for: mid-session quick saves (use session-checkpoint), skill syncing (use sync-skills.py), brain memory queries (use supabase-sync.py pull), document freshness reviews (use document-lifecycle), resource gap detection (use resource-auditor).
testing
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, passive voice, negative parallelisms, and filler phrases.