skills/interview/SKILL.md
Mom Test 원칙 기반 고객 인터뷰 가이드. 고객 인터뷰, 가설 검증 시 사용.
npx skillsauth add october-academy/agnt 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.
고객 인터뷰 워크플로우. Mom Test 원칙으로 실제 고객과 대화하여 가설을 검증합니다.
.claude/agnt/state.json을 Read 시도 → 성공하면 AGNT_DIR = .claude/agnt~/.claude/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.claude/agnt.codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = .codex/agnt~/.codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.codex/agnt/agnt:start로 시작하세요." 출력 후 종료{AGNT_DIR}/references/shared/navigator-engine.md 존재 여부로 탐색.
내부 로직 무음 처리.
{AGNT_DIR}/state.json Read.
meta.schema_version != 3 → /agnt:start로 안내 후 종료project.problem == null → "먼저 /agnt:discover로 문제를 정의하세요." 종료artifacts.icp_defined != true → "먼저 /agnt:icp로 ICP 문서를 완성해. 누구를 인터뷰할지 기준부터 고정해야 해." 종료현재 artifacts.interviews 값으로 N번째 인터뷰 결정.
artifacts.interviews + 1{REFS_DIR}/shared/interview-guide.md를 Read (없으면 내장 원칙 사용).
출력:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
고객 인터뷰 {N}회차
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
문제: {project.problem}
ICP: {project.icp}
ICP 문서: docs/ICP.md 또는 {AGNT_DIR}/docs/ICP.md
인터뷰 핵심 원칙 (Mom Test):
• 과거 경험만 묻는다 — "마지막으로 그 문제를 겪었을 때..."
• 미래 의향 질문 금지 — "사용하시겠어요?"는 거짓 긍정
• 칭찬이 아닌 행동을 끌어낸다
준비할 것:
1. ICP에 해당하는 사람 1명을 찾아라
2. 15-20분 대화할 시간을 잡아라
3. 아래 질문 가이드를 참고해라
📋 핵심 질문 (7개)
1. "{problem} 관련해서 마지막으로 뭘 했어요?"
→ 실제 행동 확인
2. "그때 가장 힘들었던 부분은 뭐였어요?"
→ 진짜 고통점 발견
3. "왜 그게 힘들어요?"
→ 문제 깊이 확인
4. "이 문제가 왜 중요해요?"
→ 해결 동기 확인
5. "지금은 어떻게 해결하고 있어요?"
→ 현재 대안 파악
6. "그 방법에서 가장 불만족스러운 점은?"
→ 대안의 약점 확인
7. "이 문제 해결에 돈을 쓴 적 있어요? 얼마나?"
→ 지불 의향 검증
AskUserQuestion: "인터뷰 준비가 됐어?"
B 선택 시 — 찾기 가이드:
ICP를 찾는 곳:
• 주변 지인 중 해당하는 사람
• 관련 온라인 커뮤니티 (OKKY, GeekNews, Reddit)
• Threads / LinkedIn DM
• 오프라인 모임 / 밋업
팁: "인터뷰해주세요"보다 "조언 좀 구하고 싶어요"가 응답률 높아.
15분이면 충분해.
대기하는 동안 `/agnt:compete`로 경쟁 분석을 먼저 해도 돼.
다시 AskUserQuestion: "준비되면 알려줘."
"선택지로 먼저 정리하고, 꼭 필요한 메모만 한 번 받는다."
AskUserQuestion: "이번 인터뷰 대상은 어디에 가까웠어?"
AskUserQuestion: "실제 과거 행동은 얼마나 구체적으로 들었어?"
AskUserQuestion: "현재 대안은 어디에 가까웠어?"
기타 / 복합적AskUserQuestion: "돈/시간 신호는 어느 쪽이었어?"
AskUserQuestion: "인터뷰 메모를 한 번에 붙여줘. 아래 5개만 짧게 포함하면 돼: 대상 / 마지막 행동 / 현재 대안 / 돈·시간 / 놀라운 발견"
AskUserQuestion: "추가 보완이 꼭 필요해?"
B를 선택한 경우에만: AskUserQuestion: "부족한 숫자나 행동을 한 줄로만 보완해줘."
선택지 + 메모를 바탕으로 Q2("고통점/행동"), Q3("현재 대안"), Q4("돈/시간 투자") 신호를 아래 조건으로 평가한다.
부족 판정 조건 (rule-based):
Q3 특수 트리거 (독립 조건 — generic 조건과 병렬 적용):
부족한 항목이 1개 이상이면, 이미 받은 보완 입력이 없을 때만 단일 AskUserQuestion으로 통합 보완 1회:
AskUserQuestion: "다음 항목에서 구체적인 숫자나 행동이 부족해: {부족 항목 나열}. 한 줄로만 보완해줄 수 있어?"
Q3 특수 트리거 우선: Q3가 "없어요" 특수 트리거에 해당하면서 동시에 generic 조건에도 해당할 때, 해당 항목의 메시지는 Q3 특수 메시지를 사용하고 generic 메시지는 생략.
응답 매핑: 보완 답변에서 각 항목(Q2/Q3/Q4)에 해당하는 내용을 식별하여 원래 답변을 대체한 뒤 Step 7 신호 강도를 재평가한다. 매핑 불가한 항목은 원래 답변 기준으로 채점 (fallback).
통합 보완은 1회만. 재답변 내용과 관계없이 Step 7로 진행한다.
유저 입력을 분석하여:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
인터뷰 {N} 결과 분석
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 핵심 발견:
{유저 입력에서 추출한 인사이트 요약}
💡 가설 검증 상태:
• 확인된 것: {가설과 일치하는 발견}
• 도전받는 것: {가설과 다른 발견}
• 새로 발견한 것: {예상 밖 인사이트}
신호 강도 (4차원):
□ 고통점: Q2 답변에 구체적 과거 행동/숫자 포함? {✅/⬜}
□ 현재 대안: Q3 답변이 "없어요"가 아님? {✅/⬜}
□ WTP: Q4 답변에 금액/시간 수치 포함? {✅/⬜}
□ ICP 구체성: Q1 답변에 직업+상황 포함? {✅/⬜}
{3-4개 ✅} → 🟢 강함
{2개 ✅} → 🟡 약함. 미확인: {⬜ 항목 나열}
{0-1개 ✅} → 🔴 없음. 미확인: {⬜ 항목 나열}
{🔴이면}
이 인터뷰에서 강한 신호가 나오지 않았어.
다음 인터뷰에서는 미확인 항목에 더 파고들어봐.
{N < 3이면}
다음 단계: /agnt:interview (인터뷰 {N+1}/3)
{N == 3이고 🔴이면}
3회 인터뷰를 했지만 신호가 약해.
가설 전체를 버리지 않아도 돼. ICP를 좁히거나 문제 표현을 바꾸는 것부터 시도해봐.
`/agnt:discover`를 다시 실행하면 부분 수정할 수 있어.
{N == 3이고 🟢/🟡이면}
3회 인터뷰 완료. 이제 패턴이 보일 거야.
다음 단계: /agnt:spec
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{AGNT_DIR}/journey-brief.md Read 시도.
파일이 없는 경우: navigator-engine.md의 journey-brief 템플릿으로 신규 생성.
파일이 있는 경우: Interview Insights 섹션에 ### 인터뷰 {N} 서브섹션을 Append.
인터뷰 서브섹션:
### 인터뷰 {N}
- 대상: {Q1 답변}
- 고통점: {Q2 답변}
- 현재 대안: {Q3 답변}
- 지불 의향: {Q4 답변}
- 인사이트: {Q5 답변}
3건 완료 시 사전 참조: artifacts.interviews + 1 >= 3이면, 교차 패턴 생성 전 {AGNT_DIR}/journey-brief.md를 Read하여 이전 인터뷰 데이터(### 인터뷰 1, ### 인터뷰 2, ### 인터뷰 3 서브섹션)를 참조한다.
3건 완료 시 (artifacts.interviews + 1 >= 3): 추가로 ### 교차 패턴 서브섹션을 Write (Replace).
### 교차 패턴 (수렴율 분석)
3건의 인터뷰를 Q2(고통점), Q3(현재 대안), Q4(WTP) 3개 항목에 한해 교차 분석:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
인터뷰 수렴 분석
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
수렴율 (Q2/Q3/Q4만 — Q1, Q5는 질적 필드이므로 제외):
• 고통점: {N}/3 ({%}) — {공통 발견 또는 "일치하지 않음"}
• 현재 대안: {N}/3 ({%}) — {공통 대안 또는 "일치하지 않음"}
• WTP: {N}/3 ({%}) — {공통 WTP 또는 "일치하지 않음"}
가설 상태:
• 확인됨: {수렴율 67%+ 항목}
• 미확인: {수렴율 33% 이하 항목}
• 도전받음: {가설과 다른 발견}
강점: {수렴율 가장 높은 항목 — SPEC에 반영할 근거}
약점: {수렴율 가장 낮은 항목 — 가설의 가장 불확실한 부분}
다음 액션: {약점을 보강하는 구체적 행동 1개}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
state.json 업데이트:
artifacts.interviews++signals.interview_insights++meta.last_action = "interview"meta.total_actions++ToolSearch로 +agentic30 검색.
도구 발견 시:
submit_practice 호출: quest_id = "wf-interview-{N}" (N ≤ 3일 때만)도구 없으면 (identity.mode != "synced" 또는 ToolSearch 실패) (N ≤ 3일 때만):
sync.pending_events에 추가 (50건 초과 시 가장 오래된 이벤트 제거):
{ "type": "submit_practice", "args": { "quest_id": "wf-interview-{N}" }, "created_at": "<now()>" }
identity.mode != "synced" AND sync.last_inline_nudge_at == null인 경우:
💾 완료한 퀘스트의 XP를 받으려면 /agnt:connect
→ 나중에 연결해도 지금까지의 XP가 한 번에 적립돼.
sync.last_inline_nudge_at = now() 기록
tools
도구 비교 가이드 — 결제, 마케팅, 분석, 광고 도구. 도구 비교, 결제 솔루션 선택 시 사용.
testing
구독 전략 설계 — niche, paywall, pricing, trial, 플랫폼, 웹 병행 전략을 정한다. 앱/구독형 제품 monetization 설계 시 사용.
tools
현재 상태 대시보드 — 진행 현황, 시그널, 도구, 리더보드. 진행 상태 확인 시 사용.
data-ai
Agentic30 온보딩 + 상태 초기화. 시작하기, 프로젝트 시작 시 사용.