| name | deep-dive |
| description | A Codex skill for Socratic interviews that deepen a spec or refine an existing agent blueprint. Conducts forcing-question interviews, challenges premises, generates alternatives, and validates the final document with a document-grounded reviewer pass. Use when the user asks for "$deep-dive", "deep dive", "interview me", "create a spec", "์๊ตฌ์ฌํญ ์ ๋ฆฌ", "๊ธฐํ์ ๋ง๋ค์ด", "์คํ ์์ฑ", "blueprint ์ฌํ", or "์ค๊ณ ๋ณด๊ฐ", or when they have a rough idea or an existing blueprint that needs structured stress-testing in Codex. |
| metadata | {"short-description":"Socratic deep-dive interview with forcing questions and reviewer loop"} |
Deep Dive
Overview
Clarify ambiguous work or stress-test an existing design through a forcing-question interview, surface hidden premises, generate alternatives, and validate the final spec with a document-grounded reviewer pass.
Primary use case: blueprint ์ฌํ โ deepen an agent blueprint produced by /blueprint by attacking gaps, implicit assumptions, and weak justifications. Fallback use case: scratch-build a spec when no blueprint exists.
- Default output file:
spec-<topic-slug>.md (scratch mode) or the existing blueprint/spec file (deepening mode)
- CRITICAL: If a related document already exists, update that document unless the user explicitly asks for
new
- Interview uses one question per
request_user_input โ never batch
- No round cap: push until answers are specific and evidence-based; back off if the user refuses the same axis twice (escape hatch)
- Prefer targeted edits with
apply_patch; do not overwrite unrelated content
References (๋ก๋ ๊ท์น)
์๋ 4๊ฐ ํ์ผ์ ํด๋น Phase ์ง์
์์๋ง ์ฝ๋๋ค. ์ฒ์๋ถํฐ ์ ๋ถ ์ฝ์ง ๋ง ๊ฒ (์ปจํ
์คํธ ๋ญ๋น).
references/question-library.md โ ์ผ๋ฐ ์คํ์ฉ forcing ์ง๋ฌธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Phase 3 ์ง์
์)
references/agent-design-questions.md โ ์์ด์ ํธ blueprint ์ฌํ ์ ์ฉ ์ง๋ฌธ ์ถ (Phase 3 ์ง์
์, ์ฌํ ๋ชจ๋์ผ ๋๋ง)
references/anti-patterns.md โ ์ด์กฐ ๊ฐ์ด๋ & ํผํ ํํ (Phase 3 ์ง์
์ 1ํ)
references/reviewer-checklist.md โ Spec Reviewer Loop 5์ฐจ์ ๊ธฐ์ค (Phase 7 ์ง์
์)
Execution Flow (7 Phases)
- Phase 1 โ Context & Doc Scan
- Phase 2 โ Topic Framing + Blueprint ๋ก๋ฉ (์ฌํ ๋ชจ๋ / ์คํฌ๋์น ๋ชจ๋ ๋ถ๊ธฐ)
- Phase 3 โ Forcing Interview (ํ ์ง๋ฌธ์ฉ ๋ฐ์ด๋ถ์ด๊ธฐ)
- Phase 4 โ Premise Naming (์ ์ ๋ช
์ & ํ์ธ)
- Phase 5 โ Alternative Framings (MANDATORY)
- Phase 6 โ Write / Update Spec
- Phase 7 โ Spec Review Loop (document-grounded reviewer pass, ์ต๋ 3ํ)
Phase 1: Context & Doc Scan
- ์ฌ์ฉ์ invocation ํ
์คํธ๋ฅผ ์ฝ์ด ์ฃผ์ ๋ฅผ ํ์
ํ๋ค. ๋น์ด ์์ผ๋ฉด Phase 2์์ ์ฒซ ์ง๋ฌธ์ผ๋ก ๋ฌป๋๋ค.
rg --files๋ก ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์์ ๊ธฐ์กด ์ค๊ณ ๋ฌธ์๋ฅผ ์ค์บํ๋ค:
- Blueprint ์ฐ์ ํจํด:
blueprint-*.md, *-blueprint.md, agent-design*.md, design-*.md
- Spec ํจํด:
spec-*.md, *-spec.md
- ํ๊ตญ์ด ํจํด:
*๊ธฐํ*.md, *์ค๊ณ*.md, *planning*.md
- ๊ธฐํ:
*PRD*.md, *requirements*.md, architecture.md, roadmap.md, overview.md, notes.md
- ํญ์ ํ์ธ:
README.md, AGENTS.md (์ด๋ฆ๊ณผ ๋ฌด๊ดํ๊ฒ ์คํ ๋ด์ฉ์ ๋ด์ ์ ์์)
- โ ๏ธ AGENTS.md๋ context-only: ์ฝ์ด์ ํ๋ก์ ํธ ๊ท์นยท์ ์ฝ์ ์ดํดํ๋, ์
๋ฐ์ดํธ ํ๋ณด๋ก ์ ์ํ์ง ๋ง ๊ฒ โ ์์ด์ ํธ ์ง์ ํ์ผ์ด์ง ์คํ ๋ฌธ์๊ฐ ์๋๋ค. (Claude ํ๊ฒฝ์ CLAUDE.md๋ ๋์ผ ์ทจ๊ธ)
- ๊ฐ์ง๋ ํ์ผ์ ์ฝ์ด ๋ด์ฉ์ ํ์
ํ๋ค. blueprint ํจํด์ด ๋งค์นญ๋ ํ์ผ์ ์ ์ฒด๋ฅผ ์ฝ๋๋ค โ Phase 3์์ ์ด๋ฏธ ๋ตํ ๋ด์ฉ์ ๋ค์ ๋ฌป์ง ์๊ธฐ ์ํจ.
- User confirmation (๋ฌธ์๊ฐ ๋ฐ๊ฒฌ๋์์ ๋):
- AGENTS.md / CLAUDE.md๋ ํ๋ณด ๋ฆฌ์คํธ์์ ์ ์ธ.
- 1๊ฐ ๋ฐ๊ฒฌ: "๊ธฐ์กด ๋ฌธ์
[filename]์ ์
๋ฐ์ดํธํ๊ฒ ์ต๋๋ค. ๊ด์ฐฎ์ผ๋ฉด ๊ณ์, ์ ํ์ผ๋ก ๋ง๋ค ๊ฑฐ๋ฉด 'new'๋ผ๊ณ ๋ตํด์ฃผ์ธ์." โ ๋ช
ํํ ์ ํ์ด ํ์ํ๋ฉด request_user_input ์ฌ์ฉ.
- ์ฌ๋ฌ ๊ฐ ๋ฐ๊ฒฌ:
request_user_input์ผ๋ก ์ด๋ ๊ฒ์ ์
๋ฐ์ดํธํ ์ง ๋๋ 'new'๋ฅผ ์ ํํ๊ฒ ํ๋ค. ์ต์
์ ์ต๋ 3๊ฐ๊น์ง๋ง ์ ์ํ๊ณ , ๋๋จธ์ง๋ assistant ๋ฉ์์ง์ ์์ฝํ ๋ค free-text ์
๋ ฅ์ผ๋ก ๋ฐ๋๋ค.
- ์ฌ์ฉ์๊ฐ 'new'๋ฅผ ๋ช
์ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ์
๋ฐ์ดํธ.
- ์๋ฌด ๋ฌธ์๋ ์์ผ๋ฉด Phase 2๋ก. ์ด ๊ฒฝ์ฐ ์ต์ข
๋จ๊ณ๋ ์๋ฌต์ ์ผ๋ก "create new".
โ ๏ธ Phase 1์์ ๋ด๋ฆฐ "์
๋ฐ์ดํธ ๋์" ๊ฒฐ์ ์ FINAL. Phase 6์์ ์ฌํ๊ฐํ์ง ์๋๋ค.
Phase 2: Topic Framing + Blueprint ๋ก๋ฉ
์ด Phase์ ๋ชฉ์ : Forcing Interview์์ ์ด๋ค ์ง๋ฌธ ์ธํธยท์ด๋ค ํค์ผ๋ก ๊ฐ์ง ๊ฒฐ์ ํ๋ค.
์ฌํ ๋ชจ๋ (Blueprint Deepening)
์ง์
์กฐ๊ฑด: Phase 1์์ blueprint ํจํด ๋งค์นญ ๋ฌธ์ 1๊ฐ ์ด์ + ์ฌ์ฉ์๊ฐ ์
๋ฐ์ดํธ ํ์ .
ํ๋:
- blueprint ๋ด์ฉ์ 3โ5์ค๋ก ์์ฝํด ์ฌ์ฉ์์๊ฒ ๋๋๋ ค ์ฝ์ด์ค๋ค: "ํ์ฌ ์ด blueprint๊ฐ ์ด๋ ๊ฒ ์ค๊ณ๋ผ ์๋ค์: ... ์ค๋์ ์ด ์ค๊ณ์ ์ด๋ ๋ถ๋ถ์ ์ ์ผ ๊น์ด ํ๊ณ ๋ค๊ณ ์ถ์ผ์ธ์? (์ ์ฒด๋ฅผ ํ๋ ๊ฒ๋ ๊ฐ๋ฅ)"
- ์ฌ์ฉ์ ๋ต์ ๊ธฐ์ค์ผ๋ก ์ฌํ ์ด์ ์ ์ ํ๋ค. ์ข์ผ๋ฉด ๊ทธ ์ถ์ผ๋ก๋ง, ๋์ผ๋ฉด
agent-design-questions.md์ AโG ์ถ์ ์ํ.
- Phase 3์์
agent-design-questions.md์ question-library.md๋ฅผ ๋ ๋ค ๋ก๋ํ๋ค.
์คํฌ๋์น ๋ชจ๋ (From Scratch)
์ง์
์กฐ๊ฑด: Phase 1์์ ๊ด๋ จ ๋ฌธ์ ์์ ๋๋ ์ฌ์ฉ์๊ฐ 'new' ์ ํ.
ํ๋:
- ์ฌ์ฉ์์๊ฒ ์งง๊ฒ ๋ฌป๋๋ค: "๊ธฐ์กด blueprint ์์ด ์๋ก ์คํ์ ์ง๋ ๊ฑฐ๋ค์. ์ด ์ฃผ์ ๋ฅผ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํด์ฃผ์ธ์:
[์ด๊ฒ]์ด [๋๊ตฌ]๋ฅผ ์ํด [๋ฌด์]์ ํ๋ค."
- ๋ต์ ๋ฐ์ ์ฃผ์ ๋ฌธ์ฅ์ ์ ์ ๊ณ ์ . ์ธํฐ๋ทฐ์์ ํ๋ค๋ฆฌ๋ฉด ๋์์ ์์ .
- Phase 3์์
question-library.md๋ง ๋ก๋ (agent-design-questions.md๋ ํ์ ์ ๋ณด์กฐ).
Phase 3: Forcing Interview
Phase 2์์ ๊ฒฐ์ ํ ๋ชจ๋๋๋ก references๋ฅผ ์ฝ๊ณ , ๋ค์ ๊ท์น์ผ๋ก ์ธํฐ๋ทฐํ๋ค.
๋ํ ๊ท์น
- ํ ๋ฒ์
request_user_input = ์ง๋ฌธ ํ ๊ฐ. ์ฌ๋ฌ ์ง๋ฌธ ๋ฌถ์ง ๋ง ๊ฒ.
- ๊ตฌ์กฐ์ ์ ํ์ง๊ฐ ํ์ํ ๊ฒฝ์ฐ(์ ํ์ง A/B/C)์
request_user_input, ์์ ์๋ต์ด ํ์ํ ๊ฒฝ์ฐ์ assistant ๋ฉ์์ง๋ก ์ง์ ๋ฌป๊ธฐ.
- references์ ์ง๋ฌธ์ ๊ทธ๋๋ก ๋ณต๋ถํ์ง ๋ง๊ณ ํ์ฌ ์ฃผ์ ์ ์ฉ์ด๋ก ๋ฐ๊ฟ ์ธ ๊ฒ.
- ์ฌ์ฉ์ ๋ต์ด Red flag(์ฐธ๊ณ : references)๋ฉด ๊ฐ์ ์ถ์ผ๋ก ํ ๋ฒ ๋ ์ฐ๋ฅธ๋ค (Follow-up). ๊ตฌ์ฒด์ ยท์ฆ๊ฑฐ ๊ธฐ๋ฐ ๋ต์ด ๋์ฌ ๋๊น์ง.
- Escape hatch: ๊ฐ์ ์ถ์์ ์ฌ์ฉ์๊ฐ 2ํ ์ฐ์ Follow-up์ ๊ฑฐ๋ถยทํํผํ๋ฉด โ ๊ทธ ์ถ์ ์ ๊ณ "Open Questions"๋ก ๋ฉ๋ชจํ ๋ค ๋ค์ ์ถ์ผ๋ก. ๊ฐ์ํ์ง ๋ง ๊ฒ.
- ์ด์กฐ:
references/anti-patterns.md์ ์ค๊ฐ ๋ฐธ๋ฐ์ค. ์นญ์ฐฌยทํํผยท์ผ๋ฐ๋ก ๊ธ์ง. ์ฌ์ฉ์ ๋ต์ ๊ทธ๋๋ก ์ธ์ฉํด ๋ชจ์ยท๋ชจํธํจ์ ์ง๊ธฐ.
- ์ด๋ฏธ ๋ต๋ ์ง๋ฌธ ์คํต: ์ฌํ ๋ชจ๋๋ผ๋ฉด blueprint์ ๋ช
์๋ ๋ด์ฉ์ ๋ค์ ๋ฌป์ง ๋ง ๊ฒ. blueprint์ ๋นํยท์๋ฌต ์ ์ ยท๊ทผ๊ฑฐ ๋ฏธ๋ช
์๋ง ํ๊ณ ๋ ๋ค.
- ๋ผ์ด๋ ์ํ ์์. ํ๊ท 6โ12๊ฐ ์ง๋ฌธ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ทธ ์ด์.
์นดํ
๊ณ ๋ฆฌ ์ปค๋ฒ๋ฆฌ์ง
- ํญ์ ๋ค๋ค์ผ ํ ์ถ (
question-library.md ๊ธฐ์ค): Core Behavior (1), Tradeoffs (4), Failure Modes (5).
- ์ฃผ์ ์ ๋ง์ผ๋ฉด ๋ค๋ค์ผ ํ ์ถ: Technical Implementation (2), UI/UX (3 โ ๋น๋ํํ ๋๊ตฌ๋ ์คํต), Scale & Future (6), Concerns (7).
- ์ฌํ ๋ชจ๋:
agent-design-questions.md์ ์ถ AโG๋ฅผ ๊ธฐ์ค์ผ๋ก blueprint ๋ด์ฉ๊ณผ ๋์กฐ. ์ด๋ฏธ ์ถฉ๋ถํ ๊ฒฐ์ ๋ ์ถ์ ๊ฑด๋๋ด๋ค.
๊ฐ ์ง๋ฌธ ํ ์ฌ์ฉ์ ๋ต์ ๋ด๋ถ ๋ฉ๋ชจ์ ์ ๋ฆฌ (Phase 6์์ ์คํ ์ธ ๋ ์ฌ์ฉ).
Phase 3 ์ข
๋ฃ ์กฐ๊ฑด
๋ค์ ์ค ํ๋:
- ํ์ ์ถ(Core/Tradeoffs/Failure) ์ ๋ถ์์ ๊ตฌ์ฒด์ ๋ต์ ๋ฐ์ + ์ฃผ์ ์ ํด๋นํ๋ ์ ํ ์ถ๋ ๋ค๋ฃธ.
- ์ฌ์ฉ์๊ฐ "์ด ์ ๋๋ฉด ๋๋ค" / "์ถฉ๋ถํด์" / "๋ค์์ผ๋ก ๋์ด๊ฐ์"๋ผ๊ณ ๋ช
์.
Phase 4: Premise Naming
Phase 3์ด ์ด๋ ์ ๋ ์งํ๋ ๋ค(์ผ๋ฐ์ ์ผ๋ก 4โ6๊ฐ ์ง๋ฌธ ์ดํ), ์ธํฐ๋ทฐ๋ฅผ ์ ๊น ๋ฉ์ถ๊ณ ๋ค์์ ์ํํ๋ค.
- ์ง๊ธ๊น์ง์ ๋ต๋ณ + (์ฌํ ๋ชจ๋๋ฉด) blueprint ๋ด์ฉ์์ ์๋ฌต์ ์ผ๋ก ๊น๋ ค ์๋ ์ ์ 3โ5๊ฐ๋ฅผ ์ถ์ถํ๋ค. ์:
- "์ฌ์ฉ์๊ฐ ํ๊ตญ์ด๋ก๋ง ์
๋ ฅํ๋ค"
- "์ด ์์ด์ ํธ๋ ํ ๋ฒ์ ํ ์ฌ์ฉ์๋ง ์ด๋ค"
- "์ธ๋ถ API๊ฐ ํญ์ ์๋ตํ๋ค"
- "blueprint๊ฐ LLM ํธ์ถ๋ก ์ก์ X ๋จ๊ณ๋ ์ฝ๋๋ก๋ ๋ถ๊ฐ๋ฅํ๋ค"
- ์ ์ 3โ5๊ฐ๋ฅผ ๋จผ์ assistant ๋ฉ์์ง๋ก ๋์ดํด ๋ณด์ฌ์ค๋ค.
- ์ด์ด์
request_user_input์ผ๋ก ํ๋์ ํ์ธ ์ง๋ฌธ๋ง ํ๋ค. ์ต์
์ ์ต๋ 3๊ฐ:
๋ชจ๋ ๋ง๋ค
์์ ํ์
์ ๋ชจ๋ฅด๊ฒ ๋ค
์ฌ์ฉ์๊ฐ ์์ ์์ ์ด ํ์ํ๋ฉด free-text๋ก ์ด๋ ์ ์ ๊ฐ ํ๋ ธ๋์ง ์ ๊ฒ ํ๋ค.
- ์ฌ์ฉ์๊ฐ ํน์ ์ ์ ๋ฅผ ๋ถ์ธยทํ๋ค๊ฑฐ๋
์์ ํ์/free-text ์์ ์ ์ฃผ๋ฉด โ Phase 3๋ก ๋๋์๊ฐ ํด๋น ์ถ์ผ๋ก ์ง๋ฌธ ์ถ๊ฐ. ์ ์ ๊ฐ ๋ชจ๋ ํ์ธ๋๋ฉด Phase 5๋ก.
์ด Phase๋ ๋ฐ๋์ ํ ๋ฒ ์ํํ๋ค. ์คํ ํ์ง์ ์ ๋ฐ์ ์ ์ ๋ฅผ ๋ช
์์ ์ผ๋ก ๊บผ๋๋๋์ ๋ฌ๋ ค ์๋ค.
Phase 5: Alternative Framings (MANDATORY)
์คํ์ ์ฐ๊ธฐ ์ ์ ๋ฐ๋์ ์ด Phase๋ฅผ ๊ฑฐ์น๋ค. ์ฌ๊ธฐ์ request_user_input์ผ๋ก ์ฌ์ฉ์ ์น์ธ์ ๋ฐ์ง ๋ชปํ๋ฉด Phase 6 ์งํ ๊ธ์ง.
์ฌํ ๋ชจ๋
- blueprint์ ํต์ฌ ์ค๊ณ ๊ฒฐ์ 1โ2๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค (์: "๋ณ๋ ฌ ์๋ธ์์ด์ ํธ ๊ตฌ์กฐ", "๋จ๊ณ X๋ฅผ LLM์ผ๋ก ์ฒ๋ฆฌ", "์ฒดํฌํฌ์ธํธ๋ฅผ 3๊ตฐ๋ฐ ๋ ").
- ๊ฐ๊ฐ์ ๋ํด "๋ฐ๋๋ก ํ๋ค๋ฉด?" ๋์์ 1โ2๊ฐ ์ ์ํ๋ค. ํฌ๋งท:
ํ์ฌ ๊ฒฐ์ : [blueprint์ ๊ฒฐ์ ์ ํ ์ค ์ธ์ฉ]
๋์ A: [๋ฐ๋/๋ค๋ฅธ ๋ฐฉ์] โ ํจ๊ณผ: [Pros 1โ2๊ฐ] / ๋น์ฉ: [Cons 1โ2๊ฐ]
๋์ B: [๋ ๋ค๋ฅธ ๊ฐ๋] โ ํจ๊ณผ: ... / ๋น์ฉ: ...
๊ถ์ฅ: [A / B / ํ์ฌ ์ ์ง] โ ๊ทผ๊ฑฐ: [Phase 3ยท4์์ ๋ค์ ์ฌ์ฉ์ ๋ต์ ์ธ์ฉ]
request_user_input์ผ๋ก ์ ํ๋ฐ์ ๋๋ ์ต๋ 3๊ฐ ์ต์
๋ง ์ค๋ค:
ํ์ฌ ์ ์ง
๋์ A
๋์ B
์ถ๊ฐ ๋
ผ์๊ฐ ํ์ํ๋ฉด ์ฌ์ฉ์๊ฐ free-text(์๋ Other)๋ก ์ ๊ฒ ํ๊ณ , ๊ทธ ๊ฒฝ์ฐ Phase 5์ ๋จธ๋ฌผ๋ฉฐ ๋ ๋
ผ์ํ๋ค.
์คํฌ๋์น ๋ชจ๋
- ์ฃผ์ ์ ๋ํด 2โ3๊ฐ ์ ๊ทผ์ ์ ์. ๊ฐ๊ฐ:
- ์ด๋ฆ
- ํ ์ค ์์ฝ
- Effort: S/M/L
- Risk: Low/Med/High
- Pros: 2โ3๊ฐ
- Cons: 2โ3๊ฐ
- Reuses: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ์กด ์์ฐ
- ์ต์ 2๊ฐ, ๊ฐ๋ฅํ๋ฉด 3๊ฐ. ํ๋๋ ์ต์ ์คํ ๊ฐ๋ฅ์, ํ๋๋ ์ด์์ ์ํคํ
์ฒ, ํ๋๋ ์๋ค๋ฅธ ๊ฐ๋.
request_user_input์ผ๋ก ์ ๊ทผ์ 2โ3๊ฐ ์ค ํ๋๋ฅผ ์น์ธ๋ฐ์์ผ Phase 6์ผ๋ก ๊ฐ๋ค. ์ถ๊ฐ ๋
ผ์๊ฐ ํ์ํ๋ฉด ์ฌ์ฉ์๊ฐ free-text(์๋ Other)๋ก ์ ๊ฒ ํ๊ณ , ๊ทธ ๊ฒฝ์ฐ Phase 5์ ๋จธ๋ฌธ๋ค.
Phase 5๋ฅผ ๊ฑด๋๋ธ ์ ์๋ ์ด์
๋์์ ์์ฑํด ๋ณด์ง ์์ ์ค๊ณ๋ "์ฒ์ ๋ ์ค๋ฅธ ์๊ฐ"์ ๊ณ ์ฐฉ๋๋ค. ์ด Phase๊ฐ forcing function. ์ฌ์ฉ์๊ฐ "๋์ ํ์ ์์ด์"๋ผ๊ณ ํด๋ ํ ๋ฒ์ ์ ์ํ๊ณ "ํ์ฌ ์ ์ง" ์ ํ์ง๋ฅผ ์ฃผ๋ ๊ฒ์ผ๋ก ํ์์ ์งํจ๋ค.
Phase 6: Write / Update Spec
Phase 1์์ ๋ด๋ฆฐ ๊ฒฐ์ ์ ๋ฐ๋ผ:
- ์
๋ฐ์ดํธ ๋์์ด ์ ํด์ง ๊ฒฝ์ฐ โ Phase 6a (Update)
- ์ ํ์ผ์ ๋ง๋๋ ๊ฒฝ์ฐ โ Phase 6b (Create)
โ ๏ธ HARD RULE: Phase 1์์ ๊ธฐ์กด ๋ฌธ์๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ๋ก ํ๊ณ ์ฌ์ฉ์๊ฐ ์ค๊ฐ์ 'new'๋ฅผ ์์ฒญํ์ง ์์๋ค๋ฉด, ๋ฐ๋์ 6a๋ก.
Phase 6a: ๊ธฐ์กด ๋ฌธ์ ์
๋ฐ์ดํธ
- Phase 1์์ ์ด๋ฏธ ์ฝ์ ํ์ผ ๋ด์ฉ์ ๊ธฐ์ค์ผ๋ก.
- Pre-merge ๋ถ์ (ํ์):
- ๊ธฐ์กด ๋ฌธ์์ ๋ชจ๋ ์น์
heading ๋์ด
- Phase 3โ5์์ ์ป์ ๊ฐ ๊ฒฐ์ ์ ๊ธฐ์กด ์น์
์ ๋งคํ
- ๊ฐ ํญ๋ชฉ์ ๋ถ๋ฅ: APPEND / REVISE / NEW_SECTION
- Merge ๊ท์น:
- APPEND: ํด๋น ์น์
๋์ ์ถ๊ฐ
- REVISE: ๋ก์ ๋ด์ฉ์ ์ง์ ๊ต์ฒด. ๊ณผ๊ฑฐ ๋ด์ฉ์ ๋ณ๊ธฐํ์ง ๋ง ๊ฒ (
<!-- ์ด์ --> ๊ฐ์ ๋ง์ปค ๊ธ์ง). Git blame์ด ํ์คํ ๋ฆฌ ์ญํ .
- NEW_SECTION: ๋ฌธ์์ ๋ง์ง๋ง ์น์
์ง์ ์ ์ฝ์
. "Open Questions"๊ฐ ์์ผ๋ฉด ๊ทธ ์์, ์์ผ๋ฉด ๋งจ ๋์ ์ถ๊ฐ.
- ์๋์ง ์์ ๋ด์ฉ: ์ธํฐ๋ทฐ์์ ๋ค๋ฃจ์ง ์์ ๊ธฐ์กด ๋ด์ฉ์ ๊ทธ๋๋ก ์ ์ง. ๋ฆฌํฌ๋งทยท์ฌ์ ๋ฆฌ ๊ธ์ง.
- ๋๊ตฌ: ์น์
๋จ์
apply_patch ์ฌ์ฉ. ๋ช
๋ฐฑํ throwaway ์ด์์ด ์๋๋ฉด ์ ์ฒด ๋ฎ์ด์ฐ์ง ๋ง ๊ฒ.
- ํ์ผ ๋ง๋ฏธ์ "What I noticed" ์น์
์ถ๊ฐ/๊ฐฑ์ : ์ด ์ธ์
์์ ๊ด์ฐฐํ ์ฌ์ฉ์์ ์ฌ๊ณ ํจํด 2โ3์ค (์: "ํธ๋ ์ด๋์คํ์์ ์๋๋ณด๋ค ์ ํ๋๋ฅผ ์ผ๊ด๋๊ฒ ์ฐ์ ์ํจ"). ๋ค์ ์ธ์
์ฐธ๊ณ ์ฉ.
- ์ฌ์ฉ์์๊ฒ ํ์ผ ๊ฒฝ๋ก์ ๋ณ๊ฒฝ ์์ฝ ๋ณด๊ณ .
Phase 6b: ์ ํ์ผ ์์ฑ
โ ๏ธ ์ด ๋จ๊ณ ์ง์
์กฐ๊ฑด: (a) Phase 1์์ ๊ธฐ์กด ๋ฌธ์ ์์, ๋๋ (b) ์ฌ์ฉ์๊ฐ 'new' ์์ฒญ.
๋ ์กฐ๊ฑด ๋ชจ๋ ์๋๋ฉด Phase 6a๋ก.
- ํ์ผ๋ช
:
spec-<topic-slug>.md (ํ์ฌ ์์
๋๋ ํ ๋ฆฌ)
- ํฌ๋งท:
# Spec: [Topic]
## Overview
[1โ2๋ฌธ์ฅ ์์ฝ]
## Goals
- ...
## Scope
- In:
- Out:
## Inputs and Outputs
- ...
## Requirements
### Functional
- ...
### Non-functional
- ...
## Technical Notes
- ...
## UX / Operator Flow
(๋นํด๋น ์ ์๋ต)
## Tradeoffs & Decisions
- ...
## Failure Modes
- ...
## Premises (Phase 4์์ ํ์ธ๋ ์ ์ )
- ...
## Alternatives Considered (Phase 5 ๊ฒฐ๊ณผ)
- ์ฑํ: ...
- ๊ฑฐ๋ถ๋ ๋์: ... (๊ฑฐ๋ถ ์ด์ )
## Open Questions
- ...
## What I noticed
[์ฌ์ฉ์ ์ฌ๊ณ ํจํด 2โ3์ค]
apply_patch๋ก ์ ์ฅ ํ ํ์ผ ๊ฒฝ๋ก ๋ณด๊ณ .
Phase 7: Spec Review Loop
์คํ์ด ์ ์ฅ๋ ํ, references/reviewer-checklist.md์ 5์ฐจ์์ ๋ฐ๋ผ document-grounded reviewer pass๋ฅผ ์ํํ๋ค. ์ต๋ 3ํ.
๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ Codex ์ธ์
์์์ ํ๋, ํ๋จ ๊ทผ๊ฑฐ๋ฅผ ๋ฌธ์ ๋ด์ฉ์ผ๋ก๋ง ์ ํํ๋ blind review discipline์ด๋ค. ๋ณ๋ Codex ์ธ์
/ํ๋ก์ธ์ค๋ฅผ ์์ ํ๊ฒ ์์ํ ์ ์๋ ํ๊ฒฝ์ด๋ฉด ๊ทธ๊ฒ์ ์ฐ์ ํ์ง๋ง, ๊ทธ ๊ฐ๋ฅ์ฑ์ ์ ์ ๋ก ์คํฌ์ ๋ฉ์ถ์ง ๋ง ๊ฒ.
Round 1
references/reviewer-checklist.md๋ฅผ ์ฝ๋๋ค.
- Reviewer pass ์์. ์ด Round์์๋ ์คํ ํ์ผ๊ณผ ์๋ณธ blueprint๋ง ๊ทผ๊ฑฐ๋ก ์ผ๋๋ค. ์
๋ ฅ์ผ๋ก ์ ๊ณต:
- ์คํ ํ์ผ ์ ๋๊ฒฝ๋ก
- (์ฌํ ๋ชจ๋) ์๋ณธ blueprint ํ์ผ ์ ๋๊ฒฝ๋ก
- ์ฒดํฌ๋ฆฌ์คํธ 5์ฐจ์ ์์ฝ (Completeness / Consistency / Clarity / Scope / Feasibility)
- ์๊ตฌ ์ถ๋ ฅ ํฌ๋งท
- "์ด Round์์๋ ์ธํฐ๋ทฐ ๊ธฐ์ต์ด๋ ์ด์ ํ๋จ์ ๊ทผ๊ฑฐ๋ก ์ฐ์ง ๋ง๊ณ , ๋ฌธ์์ ์ ํ ๋ด์ฉ๋ง์ผ๋ก ํ์ ํ๋ผ"๋ ๋ช
์์ ์ง์
- ๋ฆฌ๋ทฐ ๊ฒฐ๊ณผ ์์ .
Round 1 ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
- Overall์ด
Converged โ Phase 7 ์ข
๋ฃ, ์ต์ข
๋ณด๊ณ .
Needs revision โ Priority fixes๋ฅผ apply_patch๋ก ์คํ์ ๋ฐ์. Round 2๋ก.
Round 2
Round 1๊ณผ ๋์ผํ์ง๋ง, ๋จผ์ ์์ ๋ ์คํ ํ์ผ์ ๋ค์ ์ฝ๊ณ ๊ฐ์ ๊ท์น์ผ๋ก ์ฌํ์ ํ๋ค. ๊ฐ๋ฅํ๋ฉด ๋ณ๋ ์ธ์
/ํ๋ก์ธ์ค๋ฅผ ์ฐ๊ณ , ์๋๋ฉด ๊ฐ์ ์ธ์
๋ด์์ ์ด์ ๋ฆฌ๋ทฐ ๋ฉ๋ชจ๋ฅผ ๊ทผ๊ฑฐ๋ก ์ผ์ง ์๋ blind pass๋ก ์ํํ๋ค.
Round 3
๋ง์ง๋ง ๋ฐ๋ณต. Round 2์ ๋์ผ ๋ฐฉ์.
์ข
๋ฃ ์ ๋จ์ ์ด์ ์ฒ๋ฆฌ
Round 3 ํ์๋ Converged๊ฐ ์๋๋ฉด, ๋จ์ Fail/Partial ํญ๋ชฉ์ ์คํ ๋ง๋ฏธ์ ์ถ๊ฐ:
## Reviewer Concerns
Round 3๊น์ง ์๋ ดํ์ง ์์ ํญ๋ชฉ:
- [Completeness] [ํญ๋ชฉ]
- [Clarity] [ํญ๋ชฉ]
- ...
์ด ์น์
์ ๋ค์ ์ธ์
์ฐธ๊ณ ์ฉ์ผ๋ก ๋ณด์กด. ์ญ์ ๊ธ์ง.
Phase 7 ์ค๋จ ์กฐ๊ฑด
- ์ฌ์ฉ์๊ฐ "๊ทธ๋ง ํ์" / "์ด ์ ๋๋ฉด ๋๋ค" โ ํ์ฌ Round์์ ์ค๋จ, ๋จ์ ์ด์๋ฅผ Reviewer Concerns๋ก.
- Converged ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉด Round ์์ ๋ฌด๊ดํ๊ฒ ์ข
๋ฃ.
์ต์ข
๋ณด๊ณ
Phase 7 ์ข
๋ฃ ํ ์ฌ์ฉ์์๊ฒ:
- ์คํ ํ์ผ ๊ฒฝ๋ก
- ์ต์ข
์๋ ด ์ํ (Converged / Reviewer Concerns ์กด์ฌ)
- ์ฃผ์ ๋ณ๊ฒฝ์ 3โ5์ค ์์ฝ
Notes
- ๊ธฐ์กด ๋ฌธ์ ์
๋ฐ์ดํธ๊ฐ ๊ธฐ๋ณธ๊ฐ โ ์ ํฉํ ๋์์ด ์๋๋ฐ ์ ํ์ผ์ ๋ง๋๋ ๊ฒ์ ์๋ชป๋ ํ๋.
- ๊น์ด๊ฐ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๊ธฐ๊ณ์ ์ผ๋ก ํ๋ ๊ฒ๋ณด๋ค ์ค์.
- ์์ฑ๋ ๋ฌธ์๋ "ํ์ฌ ์๋๋ ๋์"์ ๊น๋ํ ์์ ํด์ผ ํ๋ค. ๋ณํ ๋ด์ญ์ ๋ฌธ์๊ฐ ์๋ git history์์ ํ์ธ๋๋๋ก.