$npx -y skills add byungjunjang/jangpm-meta-skills --skill deep-diveSocratic interview skill to deepen a spec or refine an existing agent blueprint. Use when the user wants to clarify a task, stress-test design decisions, or fill gaps in a blueprint produced by /blueprint. Trigger on "/deep-dive", "deep dive", "interview me", "create a spec", "요구
| 1 | # deep-dive |
| 2 | |
| 3 | ## 사용하지 말아야 할 때 |
| 4 | |
| 5 | 요구사항이 이미 명확해서 문서만 작성하면 되는 경우에는 이 스킬을 쓰지 않는다 — 인터뷰(forcing question) 루프가 불필요하므로 바로 문서를 작성한다. |
| 6 | |
| 7 | An in-depth interview skill that asks **forcing questions** (not obvious ones), challenges premises, generates alternatives, and validates the final spec with a fresh-context reviewer. Produces or updates a spec/blueprint document. |
| 8 | |
| 9 | Primary use case: **blueprint 심화** — `/blueprint`로 만든 에이전트 설계 초안을 받아 빈틈·암묵 전제·결정 근거를 인터뷰로 파고들어 문서를 단단하게 만든다. Fallback use case: blueprint 없이 새 주제를 처음부터 스펙화. |
| 10 | |
| 11 | **CRITICAL DEFAULT BEHAVIOR**: When an existing spec/blueprint document is found, you MUST update that document unless the user explicitly requests a new file. Creating a new file when a relevant document already exists is INCORRECT behavior — unless the user overrides this in Phase 1. New file creation is the default ONLY when no related document exists at all. |
| 12 | |
| 13 | --- |
| 14 | |
| 15 | ## References (로드 규칙) |
| 16 | |
| 17 | 아래 4개 파일을 **해당 Phase 진입 시에만** Read로 로드한다. 처음부터 전부 읽지 말 것 (컨텍스트 낭비). |
| 18 | |
| 19 | - [references/question-library.md](references/question-library.md) — 일반 스펙용 forcing 질문 라이브러리 (Phase 3 진입 시) |
| 20 | - [references/agent-design-questions.md](references/agent-design-questions.md) — 에이전트 blueprint 심화 전용 질문 축 (Phase 3 진입 시, 심화 모드일 때만) |
| 21 | - [references/anti-patterns.md](references/anti-patterns.md) — 어조 가이드 & 피할 표현 (Phase 3 진입 시 1회) |
| 22 | - [references/reviewer-checklist.md](references/reviewer-checklist.md) — Spec Reviewer Loop 5차원 기준 (Phase 7 진입 시) |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ## Execution Flow (7 Phases) |
| 27 | |
| 28 | 1. **Phase 1** — Context & Doc Scan: 기존 설계 문서 스캔 |
| 29 | 2. **Phase 2** — Topic Framing + Blueprint 로딩: 심화 모드 / 스크래치 모드 분기 |
| 30 | 3. **Phase 3** — Forcing Interview: 한 질문씩 밀어붙이기 |
| 31 | 4. **Phase 4** — Premise Naming: 전제 명시 & 확인 |
| 32 | 5. **Phase 5** — Alternative Framings (MANDATORY): 대안 제시 & 승인 |
| 33 | 6. **Phase 6** — Write / Update Spec |
| 34 | 7. **Phase 7** — Spec Review Loop: 서브에이전트 5차원 리뷰 (최대 3회) |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## Phase 1: Context & Doc Scan |
| 39 | |
| 40 | 1. `$ARGUMENTS`를 읽어 주제를 파악한다. 비어 있으면 Phase 2에서 첫 질문으로 묻는다. |
| 41 | 2. `Glob`으로 현재 작업 디렉토리에서 기존 설계 문서를 스캔한다: |
| 42 | - **Blueprint 우선 패턴**: `blueprint-*.md`, `*-blueprint.md`, `agent-design*.md`, `design-*.md` |
| 43 | - **Spec 패턴**: `spec-*.md`, `*-spec.md` |
| 44 | - **한국어 패턴**: `*기획*.md`, `*설계*.md`, `*planning*.md` |
| 45 | - **기타**: `*PRD*.md`, `*requirements*.md`, `architecture.md`, `roadmap.md`, `overview.md`, `notes.md` |
| 46 | - **항상 확인**: `README.md` (이름과 무관하게 스펙 내용을 담을 수 있음) |
| 47 | - ⚠️ **CLAUDE.md는 context-only**: 읽어서 프로젝트 규칙·제약은 이해하되, **업데이트 후보로 제시하지 말 것** — 에이전트 지시 파일이지 스펙 문서가 아니다. |
| 48 | 3. 감지된 파일을 Read로 읽어 내용을 파악한다. blueprint 패턴이 매칭된 파일은 **전체**를 읽는다 — 이후 Phase 3에서 이미 답한 내용을 다시 묻지 않기 위함. |
| 49 | 4. **User confirmation (문서가 발견되었을 때)**: |
| 50 | - CLAUDE.md는 후보 리스트에서 제외. |
| 51 | - 1개 발견: "기존 문서 `[filename]`을 업데이트하겠습니다. 괜찮으면 계속, 새 파일로 만들 거면 'new'라고 답해주세요." |
| 52 | - 여러 개 발견: `AskUserQuestion`으로 어느 것을 업데이트할지 또는 'new'를 선택하게 함. |
| 53 | - **사용자가 'new'를 명시하지 않으면 기본값은 업데이트**. |
| 54 | 5. **아무 문서도 없으면** Phase 2로. 이 경우 최종 단계는 암묵적으로 "create new". |
| 55 | |
| 56 | ⚠️ Phase 1에서 내린 "업데이트 대상" 결정은 **FINAL**. Phase 6에서 재평가하지 않는다. |
| 57 | |
| 58 | --- |
| 59 | |
| 60 | ## Phase 2: Topic Framing + Blueprint 로딩 |
| 61 | |
| 62 | 이 Phase의 목적: 이후 Forcing Interview에서 어떤 질문 세트·어떤 톤으로 갈지 결정한다. 두 가지 모드가 있다. |
| 63 | |
| 64 | ### 심화 모드 (Blueprint Deepening) |
| 65 | **진입 조건**: Phase 1에서 blueprint 패턴이 매칭된 문서 1개 이상 감지됨 + 사용자가 그걸 업데이트하기로 확정. |
| 66 | |
| 67 | **행동**: |
| 68 | 1. blueprint 문서 내용을 요약해서 사용자에게 되돌려 읽어준다 — "현재 이 blueprint가 이렇게 설계돼 있네요: [3–5줄 요약]. 오늘은 이 설계의 어느 부분을 제일 깊이 파고들고 싶으세요? (전체를 훑는 것도 가능)" |
| 69 | 2. 사용자 답을 기준으로 **심화 초점**을 정한다. 초점이 좁으면 그 축으로만 질문, 넓으면 `agent-design-questions.md`의 A–G 축을 순회. |
| 70 | 3. Phase 3에서 `agent-design-questions.md`와 `question-library.md`를 **둘 다** 로드한다. |
| 71 | |
| 72 | ### 스크래치 모드 (From Scratch) |
| 73 | **진입 조건**: Phase 1에서 관련 문서 없음, 또는 사용자가 'new'를 선택. |
| 74 | |
| 75 | **행동**: |
| 76 | 1. 사용자에게 짧게 묻는다 — "기존 blueprint 없이 새로 스펙을 짜는 거네요. 이 주제를 한 문장으로 정의해주세요: `[이것]이 [누구]를 위해 [무엇]을 한다`." |
| 77 | 2. 답을 받아 주제 문장을 잠정 고정. 이후 인터뷰에서 이 문장이 흔들리면 되돌아와 수정. |
| 78 | 3. Phase 3에서 `question-library.md`만 로드 (`agent-design-questions.md`는 필요 시 보조). |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## Phase 3: Forcing Interview |
| 83 | |
| 84 | Phase 2에서 결정한 모드대로 references를 Read하고, 다음 규칙으로 인터뷰한다. |
| 85 | |
| 86 | ### 대화 규칙 |
| 87 | |
| 88 | - **한 번의 `AskUserQuestion` = 질문 한 개**. 여러 질문 묶지 말 것. office-hours 방식. |
| 89 | - **references의 질문을 그대로 복붙하지 말고** 현재 주제의 용어로 바꿔 쓸 것. |
| 90 | - **사용자 답이 Red flag(참고: references)면 같은 축으로 한 번 더 찌른다 (Follow-up).** 구체적·증거 기반 답이 나올 때까지. |
| 91 | - **Escape hatch**: 같은 축에서 사용자가 **2회 연속** Follow-up을 거부하거나 회피하면 → 그 축은 접고 "Open Questions"로 메모해둔 뒤 다음 축으로. 강요하지 말 것. |
| 92 | - **어조**: `references/anti-patterns.md`의 중간 밸런스. 칭찬·회피·일반론 금지. 사용자 답을 그대로 인용해 모순·모호함을 짚기. |
| 93 | - **이미 답된 질문 스킵**: 심화 모드라면 blueprint에 명시돼 있는 내용은 다시 묻지 말 것. blueprint의 **빈틈·암묵 전제·근거 미명시**만 파고든다. |
| 94 | - **라운드 상한 없음**. "사용자가 모든 축에서 구체적 답을 냈거나 Escape hatch로 모두 접힐 때까지". 평균 6–12개 질문, 경우에 따라 그 이상. |
| 95 | |
| 96 | ### 카테고리 커버리지 |
| 97 | |
| 98 | - **항상 다뤄야 할 축** (`question-library.md` 기준): Core Behavior (1), Tradeoffs (4), Failure Modes (5). |
| 99 | - **주제에 맞으면 다뤄야 할 축**: Technical |