/cc-spec:interview — "왜?"를 5번 파고드는 심층 인터뷰#
| 항목 | 내용 |
|---|---|
| 실행 명령 | /cc-spec:interview |
| 분류 | 스펙 명확화 |
| 난이도 | ●●● 높음 |
한마디로#
프로젝트를 시작하기 전에 "우리가 당연하게 여기는 것들이 정말 맞는지" 꼬리에 꼬리를 무는 질문으로 캐묻는 인터뷰입니다. 아이를 키우듯 "왜?"를 다섯 번 반복해서, 미처 말하지 않은 숨은 전제를 끄집어냅니다.
누가·언제 쓰나요#
- 새 프로젝트나 기능을 시작하기 전, 우리가 무의식적으로 깔고 있는 가정을 드러내고 싶을 때
- "사용자는 당연히 이걸 원할 거야" 같은 검증 안 된 믿음이 위험해 보일 때
- 본격적인 기획에 들어가기 전, 핵심 문제를 한 문장으로 또렷하게 정리하고 싶을 때
무엇을 해주나요#
인터뷰가 끝나면 docs/socratic-discovery-(프로젝트이름).md 파일 한 개가 만들어집니다. 그 안에는:
- 가정 목록 — 우리가 당연하게 여겼던 전제들을 모아 정리
- 모순 지도(contradiction map) — 서로 동시에 참일 수 없는 가정들을 짚어냄
- 정제된 문제 정의 — 군더더기 가정 없이, 핵심 문제를 한 문장으로 압축
작업이 끝나면 다음 단계로 Seed 스펙 만들기(/cc-spec:seed) 를 추천합니다.
어떻게 쓰나요#
/cc-spec:interview # 새 인터뷰 시작
/cc-spec:interview --resume {slug} # 중단했던 인터뷰 이어서 진행
/cc-spec:interview --depth 3 # 지정한 깊이까지만 진행 (1~5)
--resume: 예전에 하던 인터뷰를 이어서 합니다(프로젝트 식별자 slug 지정).--depth: 질문을 어디까지 깊게 파고들지 정합니다(1~5, 기본값 5).--slug: 프로젝트 식별자를 직접 지정합니다(미지정 시 프로젝트 이름에서 자동 생성).
안에서 무슨 일이 벌어지나요#
질문이 점점 깊어지는 5단계로 진행되고, 마지막에 한 문서로 정리합니다.
- 표면(Level 1) — "이 프로젝트가 풀려는 문제는?", "핵심 사용자는 누구?", "성공하면 사용자의 삶이 어떻게 바뀌나?" 같은 기본 질문을 합니다.
- 가정(Level 2) — 앞 답변 속에 숨은 전제를 끄집어내 "이렇게 말한 건 ○○을 전제로 한 건데, 맞나요?"라고 되묻습니다(최소 3개까지).
- 모순(Level 3) — 가정들을 서로 맞붙여 "A 가정과 C 가정이 동시에 참일 수 있나요?"를 확인하고, 충돌이 있으면 해결책을 묻습니다.
- 경계(Level 4) — 각 가정이 틀렸을 경우의 시나리오를 따져봅니다. "이 가정이 틀리면 프로젝트에 어떤 영향이? 대안은?"
- 수렴(Level 5) — 지금까지 논의를 바탕으로 "가정 없이 핵심 문제를 한 문장으로" 정의하게 하고, 답이 충분히 모였는지(수렴도)를 점검합니다.
마지막으로 가정 목록·모순 지도·정제된 문제 정의를 docs/socratic-discovery-(프로젝트이름).md 한 파일로 합칩니다. 수렴도가 0.95 이상이면 인터뷰를 마치고 Seed 스펙 작성을 제안하며, 그보다 낮으면 답하지 않은 항목에 대해 후속 질문을 던집니다.
⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)
Usage#
/cc-spec:interview # Start a new interview
/cc-spec:interview --resume {slug} # Resume an existing interview
/cc-spec:interview --depth 3 # Run up to a specific depth onlyParameters#
| Parameter | Description | Default |
|---|---|---|
--resume | Resume existing interview (slug) | None (new interview) |
--depth | Maximum question depth (1-5) | 5 |
--slug | Project slug | Auto-generated from project name |
Execution Flow#
1. Initialization#
- Check for existing interview file (
docs/socratic-discovery-{slug}.md) - If none exists, start new interview; if exists, confirm whether to resume
2. Level 1: Surface#
Ask the user sequentially:
- "What problem is this project trying to solve?"
- "Who is the core user?"
- "If this project succeeds, how does the user's life change?"
Provide interim summary upon Level 1 completion.
3. Level 2: Assumptions#
Extract implicit assumptions from Level 1 responses and confirm with the user:
- "You said '{user statement}', which presupposes {extracted assumption}. Is that correct?"
- Repeat until at least 3 assumptions are exposed
4. Level 3: Contradictions#
Cross-validate between assumptions:
- "Can assumption A-01 ('{assumption}') and A-03 ('{assumption}') both be true simultaneously?"
- Ask for resolution methods for discovered contradictions
5. Level 4: Boundaries#
Failure scenarios for each assumption:
- "If '{assumption}' turns out to be wrong, what impact does it have on the project?"
- "Are there alternatives or mitigation approaches?"
6. Level 5: Convergence#
Final refinement:
- "Based on our discussion so far, please define the core problem in one sentence without any assumptions."
- Check convergence (unanswered questions / total questions)
7. Report Generation#
- Generate
docs/socratic-discovery-{slug}.md - Include assumption list, contradiction map, refined problem definition
Convergence Assessment#
convergence = answered questions / generated questions= 0.95: Interview complete → Suggest Seed spec creation
- < 0.95: Follow-up questions on unanswered items
Output#
| File | Path |
|---|---|
| Interview Report | docs/socratic-discovery-{slug}.md |
Next Steps#
After interview completion → Create Seed spec with /cc-spec:seed
Related Commands#
/cc-spec:seed— Create Seed spec/cc-spec:score— Calculate ambiguity score
References#
agents/socratic-interviewer.md— Detailed agent definitionconfig/thresholds.yaml— Convergence thresholds