LogoSkills

interview:deep-discovery

Socratic Deep Interview โ€” Expose hidden assumptions through 5-level recursive questioning

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/interview:deep-discovery
Categoryspec-clarity
Complexityhigh

/interview:deep-discovery โ€” "์™œ?"๋ฅผ 5๋ฒˆ ํŒŒ๊ณ ๋“œ๋Š” ์‹ฌ์ธต ์ธํ„ฐ๋ทฐ#

ํ•œ๋งˆ๋””๋กœ#

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— "์šฐ๋ฆฌ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ์—ฌ๊ธฐ๋Š” ๊ฒƒ๋“ค์ด ์ •๋ง ๋งž๋Š”์ง€" ๊ผฌ๋ฆฌ์— ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋Š” ์งˆ๋ฌธ์œผ๋กœ ์บ๋ฌป๋Š” ์ธํ„ฐ๋ทฐ์ž…๋‹ˆ๋‹ค. ์•„์ด๋ฅผ ํ‚ค์šฐ๋“ฏ "์™œ?"๋ฅผ ๋‹ค์„ฏ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ, ๋ฏธ์ฒ˜ ๋งํ•˜์ง€ ์•Š์€ ์ˆจ์€ ์ „์ œ๋ฅผ ๋„์ง‘์–ด๋ƒ…๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • ์ƒˆ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ธฐ๋Šฅ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ์šฐ๋ฆฌ๊ฐ€ ๋ฌด์˜์‹์ ์œผ๋กœ ๊น”๊ณ  ์žˆ๋Š” ๊ฐ€์ •์„ ๋“œ๋Ÿฌ๋‚ด๊ณ  ์‹ถ์„ ๋•Œ
  • "์‚ฌ์šฉ์ž๋Š” ๋‹น์—ฐํžˆ ์ด๊ฑธ ์›ํ•  ๊ฑฐ์•ผ" ๊ฐ™์€ ๊ฒ€์ฆ ์•ˆ ๋œ ๋ฏฟ์Œ์ด ์œ„ํ—˜ํ•ด ๋ณด์ผ ๋•Œ
  • ๋ณธ๊ฒฉ์ ์ธ ๊ธฐํš์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋˜๋ ทํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

์ธํ„ฐ๋ทฐ๊ฐ€ ๋๋‚˜๋ฉด docs/socratic-discovery-(ํ”„๋กœ์ ํŠธ์ด๋ฆ„).md ํŒŒ์ผ ํ•œ ๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ ์•ˆ์—๋Š”:

  • ๊ฐ€์ • ๋ชฉ๋ก โ€” ์šฐ๋ฆฌ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ์—ฌ๊ฒผ๋˜ ์ „์ œ๋“ค์„ ๋ชจ์•„ ์ •๋ฆฌ
  • ๋ชจ์ˆœ ์ง€๋„(contradiction map) โ€” ์„œ๋กœ ๋™์‹œ์— ์ฐธ์ผ ์ˆ˜ ์—†๋Š” ๊ฐ€์ •๋“ค์„ ์งš์–ด๋ƒ„
  • ์ •์ œ๋œ ๋ฌธ์ œ ์ •์˜ โ€” ๊ตฐ๋”๋”๊ธฐ ๊ฐ€์ • ์—†์ด, ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์••์ถ•

์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ Seed ์ŠคํŽ™ ๋งŒ๋“ค๊ธฐ(/spec:seed) ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

/spec:interview                      # ์ƒˆ ์ธํ„ฐ๋ทฐ ์‹œ์ž‘
/spec:interview --resume {slug}      # ์ค‘๋‹จํ–ˆ๋˜ ์ธํ„ฐ๋ทฐ ์ด์–ด์„œ ์ง„ํ–‰
/spec:interview --depth 3            # ์ง€์ •ํ•œ ๊นŠ์ด๊นŒ์ง€๋งŒ ์ง„ํ–‰ (1~5)
  • --resume: ์˜ˆ์ „์— ํ•˜๋˜ ์ธํ„ฐ๋ทฐ๋ฅผ ์ด์–ด์„œ ํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ์ ํŠธ ์‹๋ณ„์ž slug ์ง€์ •).
  • --depth: ์งˆ๋ฌธ์„ ์–ด๋””๊นŒ์ง€ ๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“ค์ง€ ์ •ํ•ฉ๋‹ˆ๋‹ค(1~5, ๊ธฐ๋ณธ๊ฐ’ 5).
  • --slug: ํ”„๋กœ์ ํŠธ ์‹๋ณ„์ž๋ฅผ ์ง์ ‘ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(๋ฏธ์ง€์ • ์‹œ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์—์„œ ์ž๋™ ์ƒ์„ฑ).

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

์งˆ๋ฌธ์ด ์ ์  ๊นŠ์–ด์ง€๋Š” 5๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋˜๊ณ , ๋งˆ์ง€๋ง‰์— ํ•œ ๋ฌธ์„œ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  1. ํ‘œ๋ฉด(Level 1) โ€” "์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ํ’€๋ ค๋Š” ๋ฌธ์ œ๋Š”?", "ํ•ต์‹ฌ ์‚ฌ์šฉ์ž๋Š” ๋ˆ„๊ตฌ?", "์„ฑ๊ณตํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์‚ถ์ด ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ๋‚˜?" ๊ฐ™์€ ๊ธฐ๋ณธ ์งˆ๋ฌธ์„ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ€์ •(Level 2) โ€” ์•ž ๋‹ต๋ณ€ ์†์— ์ˆจ์€ ์ „์ œ๋ฅผ ๋„์ง‘์–ด๋‚ด "์ด๋ ‡๊ฒŒ ๋งํ•œ ๊ฑด โ—‹โ—‹์„ ์ „์ œ๋กœ ํ•œ ๊ฑด๋ฐ, ๋งž๋‚˜์š”?"๋ผ๊ณ  ๋˜๋ฌป์Šต๋‹ˆ๋‹ค(์ตœ์†Œ 3๊ฐœ๊นŒ์ง€).
  3. ๋ชจ์ˆœ(Level 3) โ€” ๊ฐ€์ •๋“ค์„ ์„œ๋กœ ๋งž๋ถ™์—ฌ "A ๊ฐ€์ •๊ณผ C ๊ฐ€์ •์ด ๋™์‹œ์— ์ฐธ์ผ ์ˆ˜ ์žˆ๋‚˜์š”?"๋ฅผ ํ™•์ธํ•˜๊ณ , ์ถฉ๋Œ์ด ์žˆ์œผ๋ฉด ํ•ด๊ฒฐ์ฑ…์„ ๋ฌป์Šต๋‹ˆ๋‹ค.
  4. ๊ฒฝ๊ณ„(Level 4) โ€” ๊ฐ ๊ฐ€์ •์ด ํ‹€๋ ธ์„ ๊ฒฝ์šฐ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋”ฐ์ ธ๋ด…๋‹ˆ๋‹ค. "์ด ๊ฐ€์ •์ด ํ‹€๋ฆฌ๋ฉด ํ”„๋กœ์ ํŠธ์— ์–ด๋–ค ์˜ํ–ฅ์ด? ๋Œ€์•ˆ์€?"
  5. ์ˆ˜๋ ด(Level 5) โ€” ์ง€๊ธˆ๊นŒ์ง€ ๋…ผ์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ "๊ฐ€์ • ์—†์ด ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ํ•œ ๋ฌธ์žฅ์œผ๋กœ" ์ •์˜ํ•˜๊ฒŒ ํ•˜๊ณ , ๋‹ต์ด ์ถฉ๋ถ„ํžˆ ๋ชจ์˜€๋Š”์ง€(์ˆ˜๋ ด๋„)๋ฅผ ์ ๊ฒ€ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ€์ • ๋ชฉ๋กยท๋ชจ์ˆœ ์ง€๋„ยท์ •์ œ๋œ ๋ฌธ์ œ ์ •์˜๋ฅผ docs/socratic-discovery-(ํ”„๋กœ์ ํŠธ์ด๋ฆ„).md ํ•œ ํŒŒ์ผ๋กœ ํ•ฉ์นฉ๋‹ˆ๋‹ค. ์ˆ˜๋ ด๋„๊ฐ€ 0.95 ์ด์ƒ์ด๋ฉด ์ธํ„ฐ๋ทฐ๋ฅผ ๋งˆ์น˜๊ณ  Seed ์ŠคํŽ™ ์ž‘์„ฑ์„ ์ œ์•ˆํ•˜๋ฉฐ, ๊ทธ๋ณด๋‹ค ๋‚ฎ์œผ๋ฉด ๋‹ตํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ํ›„์† ์งˆ๋ฌธ์„ ๋˜์ง‘๋‹ˆ๋‹ค.


โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Usage#

/spec:interview                      # Start a new interview
/spec:interview --resume {slug}      # Resume an existing interview
/spec:interview --depth 3            # Run up to a specific depth only

Parameters#

ParameterDescriptionDefault
--resumeResume existing interview (slug)None (new interview)
--depthMaximum question depth (1-5)5
--slugProject slugAuto-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#

FilePath
Interview Reportdocs/socratic-discovery-{slug}.md

Next Steps#

After interview completion โ†’ Create Seed spec with /spec:seed

  • /spec:seed โ€” Create Seed spec
  • /spec:ambiguity โ€” Calculate ambiguity score

References#

  • agents/socratic-interviewer.md โ€” Detailed agent definition
  • config/thresholds.yaml โ€” Convergence thresholds