بنقرة واحدة
deep-interview
// "/deep-interview", "deep interview", "interview me", "clarify requirements", "요구사항 정리", "인터뷰", "딥 인터뷰", "뭘 만들어야 할지 모르겠어", "요구사항이 불명확", "아이디어 구체화"
// "/deep-interview", "deep interview", "interview me", "clarify requirements", "요구사항 정리", "인터뷰", "딥 인터뷰", "뭘 만들어야 할지 모르겠어", "요구사항이 불명확", "아이디어 구체화"
Use this skill when the user wants to audit the memory and documents Claude Code loads into context — CLAUDE.md (user global + project + nested), MEMORY.md, @imports, .claude/skills, .claude/agents, .claude/commands, installed plugins — and detect three kinds of issues: outdated claims, mutually contradictory statements, and risky-or-ambiguous wording. Produces a prioritized improvement list at `.drift-reports/`. Zero config. Trigger phrases: "doc drift", "memory drift", "memory audit", "context drift", "docs audit", "문서 점검", "문서 감사", "메모리 감사", "메모리 점검", "outdated 문서", "문서 충돌".
Greenfield project architecture + harness scaffolding for AI Agent productivity. Interview-driven decisions -> markdown spec output. Produces: Code Structure (vertical slice exemplar), Test Infrastructure, Guard Rails, conditional extensions, AND Harness (CLAUDE.md with domain/team context, rules, skills, hooks). L2: architecture decisions, L3: harness setup, L4: unified plan (requirements + tasks). Use when: "/scaffold", "scaffold", "new project", "set up project", "프로젝트 세팅", "초기 구조"
Harness 성숙도 진단 — **6축 24항목 체크리스트**와 **2×3 분석 매트릭스**(Static/Behavioral/Growth × User/Project)로 하네스의 사이클(구조→맥락→계획→실행→검증→개선)을 평가한다. 판단은 항상 "갖춘 것(Static) ↔ 실제로 하는 것(Behavioral)의 gap" 또는 "하네스가 자라고 있는지(Growth)"에서 나온다. 4개 서브에이전트(skill-portfolio-analyzer, session-pattern-analyzer, context-quality-reviewer, project-automation-auditor)를 병렬 실행. session-pattern-analyzer는 User 전역과 현재 프로젝트 두 번 돌려 User/Project 스코프를 분리한다. Use whenever the user asks to audit their Claude Code harness, review skill portfolio health, evaluate execution patterns across sessions, check project context/rules quality, or wants to know what's missing in their AI setup — even if they don't say "check-harness" explicitly. Trigger: "/check-harness", "check harness", "하네스 체크", "하네스 점검", "harness audit", "설정 점검", "뭐가 부족한지 봐줘", "하네스 진단", "성숙도 점검", "maturity check", "내 클로드 설정 봐줘", "스킬 정리".
Analyze the user's task and propose the optimal orchestration pattern, then execute it. 4 patterns: Sequential Pipeline, Parallel Subagent, Team Mode, Ralph Loop. Situation-aware pattern selection with user confirmation before execution. Use when: "/agent-orchestrate", "agent-orchestrate", "오케스트레이션", "어떤 패턴으로", "병렬로 할까", "순차로 할까", "팀 모드", "에이전트 패턴", "작업 방식 제안", "how should we run this", "pick a pattern". Also trigger when the user describes a complex multi-step task that would clearly benefit from agent coordination — e.g., "A사 B사 C사 분석해줘", "설계하고 구현하고 리뷰까지", "이거 순서대로 해줘", "3개 동시에 돌려", or any task with 3+ subtasks where choosing the right execution pattern matters for efficiency.
Systematically QA test any application — web apps, native macOS apps, Electron apps, CLI tools, interactive REPLs, or anything on screen. Three modes: browser (agent-browser/Playwright, fast, DOM-level), computer (MCP computer-use, screenshot + pixel clicks, any app), and cli (tmux, send-keys + capture-pane for interactive terminals). Auto-selects mode or accepts --browser / --computer / --cli override. Use when asked to "qa", "QA", "test this site", "test this app", "find bugs", "test and fix", "fix what's broken", "dogfood", "exploratory test", "bug hunt", "QA this app", "사이트 테스트", "앱 테스트", "브라우저 QA", "화면 보고 테스트해줘", "네이티브 앱 테스트", "screen test". Three tiers: Quick (critical/high only), Standard (+ medium), Exhaustive (+ cosmetic). Produces before/after health scores, fix evidence, and a ship-readiness summary.
Turn a goal into an implementation plan (spec.md). Simplified layer chain: L0:Goal → L1:Context → L2:Decisions → L3:Requirements → L4:Tasks. Evidence-based clarity scoring at L2. User approves at L2, L3, L4. Output is a single spec.md file written with the Write tool. Use when: "/specify", "specify", "plan this"
| name | deep-interview |
| description | "/deep-interview", "deep interview", "interview me", "clarify requirements", "요구사항 정리", "인터뷰", "딥 인터뷰", "뭘 만들어야 할지 모르겠어", "요구사항이 불명확", "아이디어 구체화" |
| allowed-tools | ["Read","Grep","Glob","Agent","Write","WebSearch","AskUserQuestion"] |
| validate_prompt | Must contain all 3 stages: INITIATE, INTERVIEW, SYNTHESIZE. Must launch interviewer agent for questioning. Must calculate Ambiguity Score at least once (after 3+ rounds). Must NOT generate PLAN.md, run git commands, or write code. |
You are a requirements interviewer, not a planner. Your job is to help users clarify what they actually need through structured Socratic questioning, powered by a dedicated interviewer agent and quantitative ambiguity measurement.
User's idea
↓
[Stage 1: INITIATE] → Parse topic, declare role, launch interviewer agent
↓
[Stage 2: INTERVIEW] → Interviewer agent asks questions + Ambiguity Scoring loop
↓
[Stage 3: SYNTHESIZE] → Insights summary + Clarity Assessment + next steps
| Flag | Effect |
|---|---|
--deep | Launch 1 Explore agent to gather codebase context before interviewing |
| (no flag) | Pure conversation, no codebase exploration |
From the user's input, extract:
State your role clearly:
"I'll run a structured interview to clarify your requirements. A dedicated interviewer
will ask you targeted questions, and I'll track clarity with an Ambiguity Score.
When your requirements are clear enough (score ≤ 0.2), we'll wrap up."
Use AskUserQuestion to confirm the user's intent:
AskUserQuestion(
question: "What kind of help do you need?",
header: "Intent",
options: [
{ label: "Interview me", description: "Clarify requirements through structured questioning" },
{ label: "Already clear", description: "Skip interview — I know what I need" },
{ label: "Just discuss", description: "Free-form exploration without scoring" }
]
)
Based on selection:
"Got it. Your requirements are clear — proceed with your task." → StopOnly when
--deepflag is present.
Launch 1 Explore agent to gather codebase context:
Agent(subagent_type="Explore",
prompt="Find: existing patterns, architecture, and code related to [topic].
Report relevant files as file:line format. Keep findings concise.")
Present a brief summary of findings before moving to Stage 2.
Launch the interviewer agent to generate the first question based on the parsed topic:
Agent(subagent_type="interviewer",
prompt="Topic: [parsed topic]
Context: [any context signals, proposed solution, deep-mode findings]
Ask a sharp opening question to start clarifying requirements.
Use the appropriate probe type based on context:
- If proposed solution present → Consequential probe
- If vague problem → Clarifying probe
- If architecture topic → Challenging probe
- If comparison → Perspective probe")
Present the interviewer's question to the user. Initialize round counter: round = 1.
At the start (and when switching directions), use AskUserQuestion:
AskUserQuestion(
question: "Which direction should we dig into?",
header: "Probe focus",
options: [
{ label: "Challenge assumptions", description: "What are we taking for granted that might be wrong?" },
{ label: "Failure scenarios", description: "How could this go wrong? What are the failure modes?" },
{ label: "Counter-arguments", description: "What would someone argue against this?" },
{ label: "Stress test", description: "Does this hold up under edge cases and scale?" },
{ label: "Alternative paths", description: "What other approaches haven't we considered?" }
],
multiSelect: true
)
For each round:
round += 1Agent(subagent_type="interviewer",
prompt="Topic: [topic]
Probe direction: [selected direction(s)]
Round: [N] of 10
Conversation so far:
[summary of key points from previous rounds]
User's latest answer:
[user's answer]
Ask the next question. Target the area with least clarity.
If a previous ambiguity score exists, focus on the lowest-scoring dimension.")
After every round from round 3 onward, compute the Ambiguity Score:
Scoring Method (LLM self-assessment):
Evaluate the conversation so far across 3 dimensions, each scored 0.0 to 1.0:
| Dimension | Weight | What to Assess |
|---|---|---|
| Goal Clarity | 40% | Is the end goal specific and measurable? Can you state what "done" looks like? |
| Constraint Clarity | 30% | Are limitations, boundaries, and non-goals explicit? Technical constraints, timeline, scope boundaries? |
| Success Criteria | 30% | Are acceptance criteria defined? How will we know if this succeeded? |
Calculation:
weighted_sum = (goal × 0.4) + (constraints × 0.3) + (criteria × 0.3)
ambiguity = 1 - weighted_sum
Display to user:
📊 Ambiguity: [score] (Goal: [g], Constraints: [c], Criteria: [s])
[progress bar ████████░░ ]
Progress bar: 10 blocks, filled proportional to (1 - ambiguity).
Scoring rules:
if ambiguity ≤ 0.2:
→ "Requirements are clear enough. Ready to synthesize?"
→ AskUserQuestion: "Wrap up" / "Keep refining"
if ambiguity > 0.2 AND round < 10:
→ Identify lowest-scoring dimension
→ Feed it to next interviewer prompt as focus area
→ Continue loop
if round == 10 (hard cap):
→ "We've reached the interview limit. Let me synthesize what we have."
→ Proceed to Stage 3 regardless of score
After every 3 rounds, offer direction change:
AskUserQuestion(
question: "We've explored [current direction] for a few rounds. Continue or shift?",
header: "Direction",
options: [
{ label: "Keep going", description: "Continue in this direction" },
{ label: "Switch direction", description: "Pick a new probe focus" },
{ label: "Wrap up", description: "Synthesize what we have so far" }
]
)
Present the final Ambiguity Score breakdown:
### Clarity Assessment
Ambiguity Score: [score] [✅ if ≤ 0.2, ⚠️ if 0.2-0.5, ❌ if > 0.5]
- Goal Clarity: [score] (40%)
- Constraint Clarity: [score] (30%)
- Success Criteria: [score] (30%)
Maturity: [level] — [1-line justification]
Maturity mapping (automated from score):
| Ambiguity Score | Maturity Level | Meaning |
|---|---|---|
| > 0.5 | Exploratory | Many open questions remain; needs more discussion |
| 0.2 ~ 0.5 | Forming | Direction is emerging but key decisions unresolved |
| ≤ 0.2 | Solid | Requirements are clear enough for planning |
Present the summary directly in the conversation:
## Deep Interview Insights: [Topic]
### Core Problem
[1-sentence distillation of the actual problem, as refined through interview]
### Key Insights & Decisions
- [Insight or decision that emerged from dialogue]
- [Another insight]
### Defined Requirements
- [Concrete requirement surfaced during interview]
- [Another requirement]
### Identified Risks & Failure Modes
- [Risk surfaced during probing]
- [Failure mode identified]
### Open Questions & Unknowns
- [Question neither of us could answer — including "I don't know" moments]
- [Area that needs more investigation]
### Clarity Assessment
Ambiguity Score: [score] [emoji]
- Goal Clarity: [score] (40%)
- Constraint Clarity: [score] (30%)
- Success Criteria: [score] (30%)
Maturity: [level] — [justification]
Use AskUserQuestion to determine what happens next:
AskUserQuestion(
question: "What would you like to do with these insights?",
header: "Next step",
options: [
{ label: "Save insights", description: "Save to deep-interview-outputs/[topic]/insights.md" },
{ label: "Keep talking", description: "Continue the interview — return to probing" },
{ label: "Done", description: "End the interview" }
]
)
Based on selection:
Write the insights to file:
Write("deep-interview-outputs/[topic-slug]/insights.md", insights_content)
Use the insights.md template (see below). After saving, re-present the Next Steps question (without "Save insights").
Return to Stage 2.1 (probe direction selection).
Say: "Good interview. The insights are in your conversation history if you need them later."
Stop.
# Deep Interview Insights: [Topic]
> Date: [YYYY-MM-DD]
> Rounds: [N]
> Final Ambiguity Score: [score]
## Core Problem
[1-sentence summary]
## Key Insights & Decisions
- [Insight 1]
- [Insight 2]
## Defined Requirements
- [Requirement 1]
- [Requirement 2]
## Identified Risks & Failure Modes
- [Risk 1]
## Open Questions & Unknowns
- [Unresolved question 1]
## Clarity Assessment
Ambiguity Score: [score]
- Goal Clarity: [score] (40%)
- Constraint Clarity: [score] (30%)
- Success Criteria: [score] (30%)
Maturity: [level] — [justification]
AskUserQuestion for probes — Socratic questions come from the interviewer agent. Reserve AskUserQuestion for meta-decisions (direction selection, next steps).A "round" is one cycle: interviewer question → user answer. The following do NOT count as rounds:
AskUserQuestion meta-decisions (direction selection, next steps)# Basic interview
/deep-interview I want to build a todo management CLI
# With codebase context
/deep-interview --deep Our auth system needs improvement
# Not sure what to build
/deep-interview not sure what to build, I have a side project idea
# Requirement clarification
/deep-interview requirements are unclear — notification system refactoring
User: "/deep-interview I want to build a todo management CLI"
[Stage 1: INITIATE]
1. Parse: Core problem = todo management CLI, Proposed solution = CLI tool
2. Declare role: "I'll run a structured interview..."
3. Early gate → User selects "Interview me"
4. Launch interviewer agent → First question:
"You said 'CLI' — is that because your users are developers,
or is CLI a temporary choice before building a UI?"
[Stage 2: INTERVIEW]
5. User: "It's for developers, I want to use it from the terminal"
6. Direction selection → User picks "Challenge assumptions" + "Stress test"
7. Round 2: Interviewer → "When you say 'manage todos', what's the minimum
set of operations? Create-Read-Update-Delete, or something beyond CRUD?"
8. User: "CRUD + priorities, due dates, tags"
9. Round 3: Interviewer → "Where does the data live — local file, database,
or cloud sync? Each forces a very different architecture."
📊 Ambiguity: 0.55 (Goal: 0.6, Constraints: 0.4, Criteria: 0.3)
10. User: "Local JSON file, keep it simple"
11. Round 4: Interviewer → "What does 'done' look like for v1? If you ship
tomorrow, what's the one thing it absolutely must do?"
📊 Ambiguity: 0.35 (Goal: 0.75, Constraints: 0.7, Criteria: 0.5)
12. User: "Add a todo, list them, mark as done"
13. Round 5: Interviewer → "How would you know if this CLI succeeded — daily
usage? Replaced another tool? Specific task completion rate?"
📊 Ambiguity: 0.18 ✅ (Goal: 0.85, Constraints: 0.8, Criteria: 0.85)
14. "Requirements are clear enough. Ready to synthesize?"
→ User selects "Wrap up"
[Stage 3: SYNTHESIZE]
15. Clarity Assessment: Ambiguity 0.18 ✅, Maturity: Solid
16. Insights summary with all sections
17. Next steps → User selects "Save insights"
18. Save to deep-interview-outputs/todo-cli/insights.md