| name | implement-task |
| description | This skill should be used when executing tasks from an approved plan.md. Triggers โ ONLY when an approved plan.md already exists (or the user is approving a plan just presented) โ on phrases like "๊ตฌํ", "implement", "์ด๋๋ก ์งํ", "์งํํด", "๊ณ์", "T<N> ์งํ", "go" (meaning "proceed with the plan"). If NO plan exists yet and the user asks to design or implement a non-trivial change, that is plan-feature first โ it writes the plan, this skill runs it. Runs a FULLY AUTONOMOUS loop โ processes ALL tasks (T1...Tn) without asking between tasks, stopping only when every task completes or a Halt Condition fires. Resuming mid-plan ("T6๋ถํฐ ๊ณ์") means T6 through the LAST task plus Phase F/G, not just T6. For trivial single-line edits without a plan, do NOT use this skill โ Claude applies the change directly and lets hooks validate. |
| argument-hint | <์์ task ID (๊ฑฐ๊ธฐ๋ถํฐ ๋๊น์ง ์์จ ์งํ) | ์๋ต ์ ์ฒซ ๋ฏธ์๋ฃ๋ถํฐ> |
Implement Task
์น์ธ๋ plan.md์ ์์
์ PIV ๋ฃจํ(Plan-Implement-Validate)๋ก ์์จ ์คํํ๋ค.
๊ฐ task๋ Type์ ๋ฐ๋ผ ์ ์ ํ ๋จ๊ณ ํต๊ณผ ํ์๋ง ์๋ฃ๋๋ค.
์์จ์ฑ ๋ชจ๋: FULLY AUTONOMOUS
์ด skill ์์์๋ ์ฌ์ฉ์์๊ฒ ๋ฌป์ง ์๋๋ค.
plan-feature์์ ๋ชจ๋ ๊ฒฐ์ ์ด ์ฌ์ ํด๊ฒฐ๋์์์ ์ ์ ๋ก ์งํ.
๋ฉ์ถค์ Halt Condition์์๋ง ๋ฐ์. ์ฌ์ํ ๊ฒฐ์ ์ plan.md follow-up์ผ๋ก ๊ธฐ๋ก ํ ๊ณ์.
plan-feature | implement-task (์ด skill)
USER-INTERACTIVE | FULLY AUTONOMOUS
|
์ง๋ฌธ OK (Open Questions์ ๋ชจ์) | ์ง๋ฌธ ๊ธ์ง (Halt๋ง ๊ฐ๋ฅ)
์ฌ์ฉ์ ์น์ธ 1ํ (๊ฒ์ดํธ) | plan = ์ ์ฒด ์์์ฅ
|
โ ๋ชจ๋ ์ง๋ฌธ ํด๊ฒฐ ํ โโโ ์ด ์์ ๋ถํฐ ์์จ โโโ
์ ๋ ๊ท์น (Hard Rules)
์๋ฃ ์ ์
-
Done = Proof. ๋น๋ ํต๊ณผ, ํ
์คํธ ํต๊ณผ, ๋๋ ์ฌํ ๊ฐ๋ฅํ ์ถ๋ ฅ ์์ด๋ ์๋ฃ ์ ์ธ ๊ธ์ง.
-
๊ฒ์ฆ๋ ์ฝ๋๋ง ์ฌ์ฉ (ํ๊ฐยท์์ธก ๊ธ์ง).
- ๋ชจ๋ฅด๋ API/๋ผ์ด๋ธ๋ฌ๋ฆฌ/์๊ทธ๋์ฒ๋ Read ๋๋ ๋ฌธ์ ํ์ธ ํ ์ฌ์ฉ.
- ์ ์๋ฅผ ๋ชป ์ฐพ์ผ๋ฉด ํธ์ถ ์ฝ๋ ์์ฑ ๊ธ์ง.
- "์ด ํจ์๊ฐ ์์ ๊ฒ", "์ด ์ธ์๋ฅผ ๋ฐ์ ๊ฒ" ๊ฐ์ ์ถ์ ์ ํ๊ฐ โ ๋ฆฌ๋ทฐ์์ BLOCKER.
-
์ฐ๊ด ํ์ผ ํจ๊ป ์์ (Cross-File Consistency).
- ์๊ทธ๋์ฒ/ํ์
/๊ณ์ฝ์ ๋ฐ๊พธ๋ฉด ๋ชจ๋ ํธ์ถ์/๊ตฌํ์ฒด/์ง๋ ฌํ/ํ
์คํธ๋ฅผ ๊ฐ์ task์์ ํจ๊ป ์์ .
- a๋ง ๊ณ ์น๊ณ bยทc๋ฅผ ๋๋ฉด ๋น๋ ์คํจ ๋๋ ๋ฐํ์ ์ค๋ฅ โ ์๋ฃ ์ ์ธ ๊ธ์ง.
- Phase P-3์์ ์ฌ์ ์๋ณ, Phase V-5/V-7๊ณผ impact-warn hook์์ ์ฌํ ๊ฒ์ฆ.
๋ณ๊ฒฝ ๋ฒ์
- ์์ฒญํ ๊ฒ๋ง, ํ์ธ๋ ๋ฒ์ ์์์, ์ต์ํ์ผ๋ก ์์ .
- ๋ฌด๊ดํ ๋ฆฌํฉํ ๋งยท์์ ๋ณ๊ฒฝยทimport ์ ๋ฆฌ ๊ธ์ง.
- ์์
์ค ๋ฐ๊ฒฌํ ๋ค๋ฅธ ๋ฌธ์ ๋ plan.md follow-up์ ์ถ๊ฐ๋ง. ๋ฐ๊ฒฌํ ๊ฒ์ด pjc ์คํฌ ์์ฒด์ ๊ฒฐํจยท๋ง์ฐฐ์ด๋ฉด
pjc:llm-wiki ์ ์ฐจ K 5-1์ [SKILL-IMPROVE] ํ์๋ 1์ค ๊ธฐ๋กํ๋ค(vault ์์ผ๋ฉด ๊ทธ ๊ท์ฝ์ ํด๋ฐฑ์ ๋ฐ๋ฆ).
- ํ ๋ฒ์ ํ task๋ง ์ํ.
์ํคํ
์ฒยท์ฝ๋ ๊ท์จ
- DDD ์ค์ + YAGNI.
- ๋น์ฆ๋์ค ๋ก์ง์ Domain ๋ ์ด์ด (AGENTS.md๊ฐ ๋ค๋ฅธ ์ํคํ
์ฒ๋ฅผ ๋ช
์ํ๋ฉด ์ฐ์ ์ ์ฉ).
- ์ฌ์ฉ์ฒ 1๊ณณ์ธ ํฌํผ๋ ์ธ๋ผ์ธ. 3ํ ๋ฐ๋ณต ํ์ธ๋ ์ฝ๋๋ง ๊ณตํตํ (๊ธ๋ก๋ฒ CLAUDE.md์ "2ํ ์ด์" ๋ฌธํฑ์ ์ด ์คํฌ์ด ๊ฐํํ ๊ฐ โ ์ฑ๊ธํ DRY๋ก ์ธํ ๊ณผ์ถ์ํ๋ฅผ ๋ ๋ฆ๊ฒ ํธ๋ฆฌ๊ฑฐํด ์ถ์ ์ฑ์ ์ฐ์ ํ๋ค. ์ง์นจ ์ฐ์ ์์์ ๋ฐ๋ ์คํฌ ๊ท์น์ด ๊ธ๋ก๋ฒ๋ณด๋ค ์ฐ์ ํ๋ฏ๋ก ์์จ ๋ฃจํ์์๋ 3ํ๋ฅผ ์ ์ฉํ๋ค. code-quality-reviewer ํญ๋ชฉ D๋ ๋์ผ ๊ธฐ์ค).
5-1. ๋ช
์์ ยท์ง์ ์ ์ฝ๋ ์ฐ์ (์ถ์ ์ฑ). ์๋ฆฌํ ์ถ์ํ๋ณด๋ค ํ๋์ ๋์์ด ๋ณด์ด๋ ์ฝ๋("์ฝ๊ฐ ์ฅํฉํด๋ ์ถ์ธก ์์ด ํ์
๋๋")๋ฅผ ์ด๋ค โ ๊ณผํ ๊ฐ์ ํ(๋ถํ์ํ ํจํดยท๋ฉํํ๋ก๊ทธ๋๋ฐยท๊น์ ์ ๋ค๋ฆญยท์ฑ๊ธํ DRY)๋ ์ดํ ์์ ์ ์ค์ ๋์ ์ถ์ ์ ์ํด ์ฌ๋ฌ ํ์ผ์ ์ค๊ฐ๊ฒ ๋ง๋ค์ด ๋๋ฝยทํ๊ฐยท์ฌ์์
์ ๋๋ฆฐ๋ค. ๋จ ์ข์ ์ด๋ฆยท๋ช
์์ ํ์
ยท๋ช
ํํ ๊ตฌ์กฐยท๊ด๋ จ ๋ก์ง์ ์ง์ญ์ฑ์ ์ ์งํ๋ค(๋ช
๋ฃ์ฑ ํผ์์ด ์๋). ๊ฐ์ ํ๊ฐ ์ ๋นํ ๊ฒฝ์ฐ(3ํ+ ๋ฐ๋ณตยท๋๋ฉ์ธ ํ์)๋ ์์ธ โ ํ๋จ ๊ธฐ์ค์ "์ด ์ถ์ํ๋ฅผ ๋นผ๋ฉด ์ฝ๋๊ฐ ๋ ๋จ์ํด์ง๋๊ฐ".
- ์์. ๋ถํ์ํ ์ฃผ์ยท์ฃฝ์ ์ฝ๋ยท๋ฏธ์ฌ์ฉ importยทplaceholder ๋ฌธ์ ๊ธ์ง.
6-1. ๋ฏผ๊ฐ ์ ๋ณด ๊ธ์ง (์ฝ๋ยท๋ฌธ์ ๊ณตํต). ์ค์ ๋น๋ฐ๋ฒํธยทAPI ํคยทํ ํฐยท์ํฌ๋ฆฟยทDB ์ฐ๊ฒฐ ๋ฌธ์์ดยท๋ด๋ถ IP/ํธ์คํธยท๊ฐ์ธ์ ๋ณด๋ฅผ ์ฝ๋๋ ๋ฌผ๋ก ์ด๋ค ์์ฑ ๋ฌธ์(plan.mdยทnotes.mdยทrepro.mdยทPRDยท์ํค ๋ฑ)์๋ ์ ์ง ์๋๋ค. ์ด ๋ฌธ์๋ค์ git commitยท์ค๋
์ท์ผ๋ก ์๊ตฌ ๋ณด์กด๋๋ฏ๋ก ํ ๋ฒ ๋จ์ผ๋ฉด ํ์๊ฐ ์ด๋ ต๋ค. ํ์ํ๋ฉด ํ๊ฒฝ๋ณ์ ์ด๋ฆ๋ง ์ ๊ณ ์ค์ ๊ฐ์ .env(gitignore)์์ ๊ด๋ฆฌํ๋ค. (check-utf8-and-lines hook์ด ์ค์ ๊ฐ ํจํด์ ์ฌํ ๊ฒฝ๊ณ ํ์ง๋ง, 1์ฐจ ์ฑ
์์ ์์ฑ ์ ํํผ๋ค.)
- ์ฃผ์์ ํ๊ธ. "๋ฌด์"์ด ์๋ "์". ์ฝ๋๋ก ์๋๊ฐ ๋๋ฌ๋๋ฉด ์๋ต.
7-1. ์ฃผ์ยท์ฝ๋ ๋๊ธฐํ (stale ์ฃผ์ ๊ธ์ง). ์ฝ๋๋ฅผ ์์ ํ๋ฉด ๊ทธ ์ฝ๋์ ๋ธ๋ฆฐ ์ฃผ์ยทdocstringยทXML ๋ฌธ์์ฃผ์(///)์ด ์ ๋์๊ณผ ์ผ์นํ๋์ง ๋ฐ๋์ ํ์ธํ๊ณ , ์ด๊ธ๋๋ฉด ํจ๊ป ์์ ํ๋ค. ์ฝ๋๋ง ๋ฐ๊พธ๊ณ ์ฃผ์์ ์ ๋ด์ฉ ๊ทธ๋๋ก ๋๋ฉด, ํ๋ฆฐ ์ฃผ์์ด ์คํ๋ ค ํ์ ์์
(์ฌ๋ยทLLM ๋ชจ๋)์ ์ค๋ํ๋ค โ ํ๋ฆฐ ์ฃผ์์ ์ฃผ์์ด ์๋ ๊ฒ๋ณด๋ค ๋์๋ค.
- ๋์: ๋ณ๊ฒฝํ ํจ์/๋ฉ์๋ ์ ์ฃผ์, ํ๋ผ๋ฏธํฐยท๋ฐํ ์ค๋ช
, ์ธ๋ผ์ธ ์ฃผ์, docstring/
/// ๋ฌธ์, ์๊ทธ๋์ฒ๊ฐ ๋ฐ๋๋ฉด ํธ์ถ์ฒ ์ฃผ์๊น์ง.
- ๋ ์ด์ ๋ง์ง ์๋ ์ฃผ์์ ๊ฐฑ์ ํ๊ฑฐ๋(๋ด์ฉ์ด ๋ฐ๋ ๊ฒฝ์ฐ) ์ญ์ ํ๋ค(์ฝ๋๋ก ์๋ช
ํด์ง ๊ฒฝ์ฐ). "์"๊ฐ ๋ฐ๋์์ผ๋ฉด ๊ทธ ์ด์ ๋ฅผ ๊ฐฑ์ ํ๋ค.
- Phase V-8 ์๊ธฐ์ ๊ฒ๊ณผ code-quality ๊ฒํ ์์ stale ์ฃผ์์ ํ์ธํ๋ค.
7-2. UI ๋ฌธ๊ตฌ๋ ์ผ๋ฐ ์ฌ์ฉ์ ์นํ์ ์ผ๋ก. ํ๋ฉด์ ํ์๋๋ ๋ฌธ๊ตฌ(๋ ์ด๋ธยท๋ฒํผยท๋ฉ์์งยท์ค๋ฅยทํดํยทํ๋ ์ด์คํ๋)๋ ๊ฐ๋ฐ ์ฉ์ด๊ฐ ์๋๋ผ ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์ดํดํ๋ ์ผ์ ์ธ์ด๋ก ์ด๋ค(๊ฐ๋ฐ/๊ธฐ์ ์ฉ์ดยท๋ณ์๋ช
ยท์ด๊ฑฐํ ๊ฐ ๋
ธ์ถ ๊ธ์ง, ์ค๋ฅ๋ ์์ธ+๋ค์ ํ๋ ์ค์ฌ). ํ๋จ์ด ์ ๋งคํ ๋ฌธ๊ตฌ๋ plan์ โณ HUMAN-VERIFY๋ก ํ์ํด ์ฌ์ฉ์ ํ์ธ์ ๋ฐ๋๋ค. ๋ฌธ๊ตฌ๋ ๋ฆฌ์์ค๋ก ๋ถ๋ฆฌํ๋(๋ค๊ตญ์ด) ๋ด์ฉ ์์ฒด๊ฐ ์ฌ์ฉ์ ์นํ์ ์ด์ด์ผ ํ๋ค. ๊ธ์ง ์ฉ์ดยท์ค๋ฅ ์์ยท๋ฆฌ์์ค ๋ถ๋ฆฌ ์์ธ: references/authoring-detail.md.
-
ํ์ผยท์ธ์ฝ๋ฉ. UTF-8 (BOM ์์). ํ์ผ์ ํ๋์ ๋ช
ํํ ์ฑ
์์ ๊ฐ๋๋ค โ ์ฌ๋ฌ ๋
๋ฆฝ ์ฑ
์์ด ํ ํ์ผ์ ์์ฌ ๋น๋ํด์ง๋ฉด ์ฑ
์ ๋จ์๋ก ๋ถ๋ฆฌํ๋ค. 1500๋ผ์ธ์ ๊ฐ์ ๋ถ๋ฆฌ์ ์ด ์๋๋ผ "๋ถ๋ฆฌ๋ฅผ ๊ฒํ ํ๋ผ"๋ ์ ํธ๋ค. ๋จ์ผ ์ฑ
์์ธ๋ฐ ๊ธธ ๋ฟ์ด๋ฉด ์ต์ง๋ก ์ชผ๊ฐ์ง ์๋๋ค (๊ด๋ จ ๋ก์ง์ ์ฌ๋ฌ ํ์ผ๋ก ํฉ์ผ๋ฉด ์ง์ญ์ฑ์ด ๊นจ์ ธ ํ์ ์ถ์ ยท์์ ์ด ์คํ๋ ค ์ด๋ ค์์ง๋ค โ ๊ท์น 5-1). ๋ถ๋ฆฌํ ๋๋ ์์ง๋๋ฅผ ์ ์งํด ๊ด๋ จ ๋ก์ง์ด ํฉ์ด์ง์ง ์๊ฒ ํ๋ค. ๋ถ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์์
์ plan์ ๋ฑ๋ก.
-
์ธ์ด ์คํ์ผ. ์ต์ LTS ๊ถ์ฅ + ๊ณต์ ๋ฌธ์ ๊ธฐ์ค. AGENTS.md๊ฐ ๋ค๋ฅธ ๋ฒ์ ๊ณ ์ ์ด๋ฉด ์ฐ์ .
์์
-
ํ๊ดด์ ์์
ยท ์ ์์กด์ฑ โ ์๋ ์คํ ๊ธ์ง, Halt.
- force push, history rewrite, rm -rf, DB drop, ๊ถํยท๋ณด์ ๋ณ๊ฒฝ โ history rewrite๋ ๊ณต์ ยทpush๋ ์ด๋ ฅ ๋์์ด๋ค: ๋ก์ปฌ ๋ฏธpush ์์
๋ธ๋์น์์ Phase D โข์ด ๊ท์ ํ pre-review ์ปค๋ฐ amend๋ ํด๋นํ์ง ์๋๋ค(์คํฌ ์์ ์ ์ ์ ์ ์ฐจ โ ์ด ์์ธ๋ ๊ทธ amend์๋ง ํ์ ๋๋ฉฐ force push ๋ฑ ๋ค๋ฅธ ํญ๋ชฉ์ผ๋ก ํ๋ ํด์ํ์ง ์๋๋ค)
- DB ๋ฐ์ดํฐ ์ญ์ ยท๋ณ์กฐ: DROP/TRUNCATE, WHERE ์๋(๋๋ ์ ์ฒด ๋์) DELETEยทUPDATE, ์คํค๋ง ์ญ์ , migration reset/down, ORM ๋๋ ์ญ์ (RemoveRangeยทdeleteMany({})ยทdelete_all ๋ฑ). ์ฝ๋๋ก ์์ฑํ๋ ๋ช
๋ น์ผ๋ก ์คํํ๋ , ๋ฐ์ดํฐ ์์คยท์ ์ฒด ๋ณ์กฐ ๊ฐ๋ฅ ์์
์ ์ฌ์ฉ์ ์น์ธ ์ ๊ธ์ง (DB ๋ฐ์ดํฐ๋ git์ผ๋ก ๋ณต๊ตฌ ๋ถ๊ฐ). ๋จ
DELETE/UPDATE ... WHERE <ํน์ ์กฐ๊ฑด> ๊ฐ์ ์ผ์์ ยท๊ตญ์์ ์์
์ plan์ ๋ช
์๋ผ ์์ผ๋ฉด ์งํ ๊ฐ๋ฅ.
- ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌยท์ธ๋ถ ์๋น์ค ๋์
โ ๋จ plan์
## ์ฌ์ ์น์ธ ํญ๋ชฉ (์ผ๊ด ์น์ธ ๋์)์ ๋ฑ๋กยท์ผ๊ด ์น์ธ๋ ๋นํ๊ดด ํจํค์ง/๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ ์ถ๊ฐยท๋ฒ์ ๋ณ๊ฒฝ์ ๊ทธ ์ง์ ์์ ์งํํ๋ค(Halt ์ ํจ). ์ธ์ฆ์ ๋ณด๊ฐ ํ์ํ ์ ๊ท ์ธ๋ถ ์๋น์ค ๋์
์ carve-out ์ ์ธ โ Halt ์ ์ง(์๊ฒฉ์ฆ๋ช
๋์
์ ๋ณด์์ ๋ณ๊ฐ).
- ๊ธฐ์กด ์ธ๋ถ ์๋น์ค๋ก์ ๋น๊ฐ์ญ ๋ถ์์ฉ ํธ์ถ: ์ด์ API ์ฐ๊ธฐยท์ด๋ฉ์ผ/์๋ฆผ/SMS ๋ฐ์กยท๊ฒฐ์ ยท์ธ๋ถ ์ํ ๋ณ๊ฒฝ ๋ฑ. ์ ๊ท ๋์
์ด ์๋์ด๋ ๊ฒ์ฆยท์คํ ์ค ์ด๋ฐ ๋น๊ฐ์ญ ๋ถ์์ฉ ํธ์ถ์ ์ฌ์ฉ์ ์น์ธ ์ ๊ธ์ง(ํ
์คํธ๋ mockยท์คํ
์ด์ง). plan์ ๋ช
์ยท์น์ธ๋์ผ๋ฉด ์งํ ๊ฐ๋ฅ.
- ์ฌ์ ์น์ธ๊ณผ์ ๊ด๊ณ (์์ ๊ฒฝ๊ณ): ์์ O(์ฌ์ ์น์ธ)ยทํญ์ Haltยท์กฐ๊ฑด๋ถ์ ๋จ์ผ ํ๋
references/halt-conditions.md "์์ ๊ฒฝ๊ณ" โ ์์ง: ํ๊ดด์ ์์
(force pushยทDB drop/TRUNCATEยทWHERE ์๋ DELETE/UPDATEยท์คํค๋ง ์ญ์ ยทmigration resetยท๊ถํ/๋ณด์)์ plan์ ์ ํ ์์ด๋ ํญ์ Halt(์์ ๋ถ๊ฐ), ์์๋๋ ๊ฒ์ ๋นํ๊ดด ํจํค์ง ์์กด์ฑยท๊ณํ๋ ๊ตฌ์กฐ ๋ณ๊ฒฝยท๋นํ๊ดด ์คํค๋ง(CREATE/ADD)๋ฟ์ด๋ค.
-
plan์ ๋ต์ด ์๋ ์ค๋ ๊ฒฐ์ โ ์ถ์ธก ๊ธ์ง, Halt (์์ธ ์์ ๋ง โ ์ ์์ ์ผ๋ก๋ ๊ณํ ๋จ๊ณ๊ฐ ๋ฏธ๋ฆฌ ํด๊ฒฐํ๋ฏ๋ก ๋๋ฌผ์ด์ผ ํ๋ฉฐ, ๋ฐ์ ์ ๊ณํ ๋ถ์ค ์ ํธ). planยทAGENTS.mdยท์ฝ๋ ์ด๋์๋ ๊ทผ๊ฑฐ ์๋ ์ค๋ํ ๊ฒฐ์ (์ํคํ
์ฒยท๋น๊ฐ์ญ ๋ฐ์ดํฐ ํ์ยทAPI ๊ณ์ฝยท๋์ ์๋ฏธ๊ฐ ๊ฐ๋ฆฌ๋ ๋ถ๊ธฐ)์ ์ถ์ธก ์์ด Haltํด ๋ฌป๋๋ค. ์ฌ์ํ ๊ฒฐ์ (๋ณ์๋ช
ยท๊ตญ์ ๊ตฌํ ๋ฑ ๊ฐ์ญ)์ follow-up ๊ธฐ๋ก ํ ์งํ. ์ ๋งคํ๋ฉด ๋ณด์์ ์ผ๋ก Halt โ ์์ ยท์์ ๋ฒ์ยท๊ณต๊ฐ API ๊ณ์ฝยท๋น๊ฐ์ญ์ฑ์ ๋ฟ์ผ๋ฉด ์น์ธ๋ฐ๊ณ (๊ธ๋ก๋ฒ "์ ๋งคํ๋ฉด ์น์ธ"๊ณผ ์ ํฉ), ์์ ๊ตญ์ยท๊ฐ์ญ ๊ฒฐ์ ๋ง follow-up ํ ์งํ. Halt ์ ๋ณด๊ณ ์ "์ด ๊ฒฐ์ ์ด ๊ณํ์์ ๋๋ฝ๋ ์ด์ " ํ ์ค์ ์ ์ด ์ฐจํ ๊ณํ์ ๊ฐํํ๋ค.
-
์ธ๋ถ/๋น๊ฐ์ญ ์์
โ ์์จ ๋ฃจํ ๊ถํ ๋ฐ, ๋ณ๋ ๋ช
์ ์น์ธ. pushยทmain ๋ณํฉยทํ๊ทธยทGitHub ๋ฆด๋ฆฌ์ฆยทPR ์์ฑ์ ์์จ ๋ฃจํ๊ฐ ์๋ ์ํํ์ง ์๋๋ค. ๋ฃจํ ๊ถํ์ ๋ก์ปฌ ์์
๋ธ๋์น(task/<id>-<slug>) commit๊น์ง๋ค. ์ด ์์
๋ค์ 'plan ์น์ธ'ยท'๊ตฌํ ์งํ' ์น์ธ์ ํฌํจ๋์ง ์์ผ๋ฉฐ, ๊ฐ๊ฐ ๊ทธ ํ์๋ฅผ ์ด๋ฆ์ผ๋ก ์ ์ด ๋ณ๋ ์น์ธ๋ฐ๋๋ค. ์ ๋งคํ๋ฉด ์น์ธ ํ์๋ก ๋ณธ๋ค. ์ด ํญ๋ชฉ๋ค์ plan์ ## ๋ถ๊ฐํผํ Halt (์์ ๋ถ๊ฐ)๋ก ๋ช
์๋๋ฉฐ ์ผ๊ด ์ฌ์ ์น์ธ(Phase 0)์ ํฌํจ๋์ง ์๋๋ค.
์์ธ ์ํฐํจํด ํ๋ references/antipatterns.md ์ฐธ์กฐ.
์ค๋จ ์กฐ๊ฑด ์ ์ฒด ํ + ์ค๋จ ๋ณด๊ณ ์์์ references/halt-conditions.md ์ฐธ์กฐ โ Halt ์ฌ๋ถ๊ฐ ์ ๋งคํ๋ฉด ๋จผ์ ํ์ธ.
์์จ ๋ฃจํ (Autonomous Loop)
๐งญ ์์ ์ ์ปจํ
์คํธ ํ์ธ (๊ตฌํ ์์ ์ง์ , 1ํ)
์์จ ๋ฃจํ ์์ ์ , ์ด๋ฒ ์ธ์
์ ์ด๋ฏธ auto-compact๊ฐ ์์๊ฑฐ๋ ๋ํ๊ฐ ๋งค์ฐ ๊ธธ๊ฒ ๋์ ๋์ผ๋ฉด(=์์ ํ ์์ถ ๋ฐ๋ณต์ผ๋ก ํ๋ฐ task ํ์ง ์ ํ ์ํ) ์ฒซ task ์ ์ ์ ์ธ์
์์์ ๊ถํ๋ค. ์์ ์ ์ ๋ฉ์ถฐ๋ ์์ ํ ๋ถ๊ธฐ์ ์ด๋ค(์์
์ค๊ฐ์ ๋ฉ์ถ์ง ์๊ณ ์์ถ์ ํต๊ณผํ๋ ์ปจํ
์คํธ ๊ด๋ฆฌ ๊ท์น 4์ ๊ตฌ๋ถ โ ์์ ์ ๊ถ์ vs ์ค๊ฐ ํต๊ณผ):
"ํ์ฌ ๋ํ๊ฐ ๊ธธ์ด ์ปจํ
์คํธ๊ฐ ๋ง์ด ์ฐผ์ต๋๋ค. ์ ์ธ์
์์ pjc:implement-task๋ก ์์(plan.md๊ฐ ์์ด 'T1๋ถํฐ ์งํ'์ผ๋ก ์ด์ด์ง)์ ๊ถํฉ๋๋ค. ์ด๋๋ก ์งํํ ๊น์, ์ ์ธ์
์ผ๋ก ์ฎ๊ธธ๊น์?"
- ์ปจํ
์คํธ๊ฐ ์ฌ์ ๋กญ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ "์ด๋๋ก ์งํ"์ ํํ๋ฉด ๋ฌป์ง ์๊ณ (๋๋ ์ ํ ์กด์คํด) ์กฐ์ฉํ ์์จ ๋ฃจํ๋ฅผ ์์ํ๋ค(๊ณผ์ ๋ฐฉ์ง).
- ๋์ผ ์ธ์
์์ plan-feature๋ฅผ ๋ง ๊ฑฐ์ณ์จ ๊ฒฝ์ฐ๋ ์๋ตํ๋ค(plan-feature Step 0์์ ์ด๋ฏธ ํ์ธ โ ์ค๋ณต). ์ ์ธ์
์ฌ๊ฐ(implement-task ์ง์ ํธ์ถ)์์๋ง ์ํํ๋ค.
๐ฆ Phase 0 โ ์ฌ์ ์น์ธ ์ผ๊ด ํ์ธ (ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ดํธ)
์์จ ๋ฃจํ ์์ ์ง์ (์ฒซ task ์ , 1ํ). ๋ฐฐ์น ์์: ์ ๐งญ ์์ ์ ์ปจํ
์คํธ ํ์ธ โ Phase 0 โ ๋ฃจํ. ์ฌ๊ฐ ์ง์
(์๋ "์ฌ๊ฐ ์ง์
")์ธ ๊ฒฝ์ฐ task ์๋ณ์ ๋ง์น ๋คยท์ฒซ Phase P ์ง์
์ ์ 1ํ ์ํํ๋ค.
- plan.md์
## ์ฌ์ ์น์ธ ํญ๋ชฉ (์ผ๊ด ์น์ธ ๋์)์ ์ฝ๋๋ค. ๋น์ด ์๊ฑฐ๋(- (์์)) ์น์
์ด ์์ผ๋ฉด โ Phase 0๋ฅผ ์ฆ์ ํต๊ณผํ๊ณ ๋ฃจํ๋ฅผ ์์ํ๋ค(์ด ๊ธฐ๋ฅ ๋์
์ plan๊ณผ ๋ฌดํ๊ท).
- ํญ๋ชฉ์ด ์์ผ๋ฉด:
- ์ด๋ฒ ๋ํ์์ plan ์น์ธ์ ์ด๋ฏธ ๋ฐ์์ผ๋ฉด(plan-feature Step 10 ์งํ ๊ฐ์ ์ธ์
) โ ์ฌ์ง๋ฌธํ์ง ์๋๋ค. "๋ค์ ์ฌ์ ์น์ธ ํญ๋ชฉ์ด plan ์น์ธ์ ํฌํจ๋จ: [๋ชฉ๋ก]. ์ด ์ง์ ๋ค์์ ๋ฉ์ถ์ง ์๊ณ ์งํํฉ๋๋ค" 1์ค ๊ณต์ ํ ๋ฃจํ ์์.
- ์ ์ธ์
/์ฌ๊ฐ๋ผ ์ด๋ฒ ๋ํ์ plan ์น์ธ์ด ์์ผ๋ฉด โ
## ์ฌ์ ์น์ธ ํญ๋ชฉ ๋ชฉ๋ก์ ํ ๋ฒ์ ์ ์ํ๊ณ ์ผ๊ด ์น์ธ์ ๋ฐ๋๋ค(์ด๊ฒ์ด ๊ทธ ๊ฒฝ๋ก์ "์์ ์ 1ํ" ์น์ธ). ์น์ธ ์ ๋ฃจํ ์์. ํน์ ํญ๋ชฉ์ ๊ฑฐ๋ถํ๋ฉด ๊ทธ ํญ๋ชฉ์ ์ ์ง์ ์์ Halt๋ก ๋๋๋ฆฐ๋ค.
- Phase 0 ์ดํ ๋ฃจํ๋ ๋๊น์ง ์งํํ๋ฉฐ,
## ๋ถ๊ฐํผํ Halt (์์ ๋ถ๊ฐ)ยท๊ท์น 10(ํ๊ดด์ ยท์ธ์ฆ์ ๋ณด ํ์ ์ ๊ท ์ธ๋ถ ์๋น์ค)ยท๊ท์น 11(๋๋ฐ)ยท๊ท์น 12(์ธ๋ถ) ์์๋ง ๋ฉ์ถ๋ค. ์ฌ์ ์น์ธ๋ ํญ๋ชฉ(๋นํ๊ดด ์์กด์ฑ/๊ตฌ์กฐ/์คํค๋ง)์ ๊ทธ ์ง์ ์์ ๋ฉ์ถ์ง ์๋๋ค.
์ด์ค ์น์ธ ๋ฐฉ์ง: ๋์ผ ์ธ์
์์ Step 10 ์น์ธ ์งํ๋ฉด 2์ "์ด๋ฏธ ๋ฐ์์ผ๋ฉด" ๋ถ๊ธฐ๋ก ๊ณต์๋ง ํ๊ณ , ์ ์ธ์
์ฌ๊ฐ์์๋ง ์ค์ ์ฌํ์ธํ๋ค โ ์ด๋ ๊ฒฝ๋ก๋ "์์ ์ 1ํ"๊ฐ ๋ณด์ฅ๋๋ค.
๐จ ์์จ ๋ฃจํ์ ์ ๋ ๊ท์น
๋ชจ๋ task๊ฐ ์๋ฃ๋๊ฑฐ๋ Halt Condition์ด ๋ฐ๋ํ ๋๊น์ง ๋ฉ์ถ์ง ์๋๋ค.
- โ task ์ฌ์ด์ ์ฌ์ฉ์์๊ฒ ๋ฌป์ง ์๋๋ค.
- โ "๋ค์ task๋ก ์งํํ ๊น์?", "T2๋ฅผ ์์ํ ๊น์?" ๊ฐ์ ํ์ธ ์์ฒญ ๊ธ์ง.
- โ MINOR follow-up์ด๋ ์ฌ์ํ ๊ฒฐ์ ์ ์ฌ์ฉ์ ์๊ฒฌ ๋ฌป์ง ์๋๋ค (plan.md์ ๊ธฐ๋ก ํ ๊ณ์ ์งํ).
- โ
์ฌ์ฉ์ ๊ฐ์
์ ๋ค์ ๊ฒฝ์ฐ์๋ง:
0. Phase 0 ์ฌ์ ์น์ธ ์ผ๊ด ํ์ธ โ plan์
## ์ฌ์ ์น์ธ ํญ๋ชฉ์ด ์๊ณ ์ด๋ฒ ๋ํ์ plan ์น์ธ์ด ์์ ๋(์ ์ธ์
/์ฌ๊ฐ), ๋ฃจํ ์์ ์ 1ํ (์ Phase 0).
- Halt Condition ๋ฐ๋
- ๋ชจ๋ task ์๋ฃ (Phase F ํต๊ณผ ํ ์ต์ข
๋ณด๊ณ )
- ๋ฆฌ๋ทฐ ์ธํ๋ผ ์ฅ์ โ Sonnet reviewer(V-5/V-6)๊ฐ ๊ณผ๋ถํ(529) ์ฌ์๋ ์์ง ์์ ์ ํ ์์ฒญ(์ฌ์๋/์์ฒด ๊ฒ์ฆ/๋๊ธฐ โ ์ ๋ณธ
references/recovery.md "Reviewer ๊ณผ๋ถํ(529) ๋์". Halt๊ฐ ์๋๋ผ ์ ํ ํ ๋ฃจํ ๊ณ์)
์ฌ์ฉ์ ์น์ธ์ plan-feature ๋จ๊ณ์์ plan.md์ ๋ํด ๋จ 1ํ๋ง ๋ฐ์๋ค. plan.md = ์ ์ฒด ์์
์ ์์์ฅ โ ์ด ์์์๋ plan์ ## ์ฌ์ ์น์ธ ํญ๋ชฉ (์ผ๊ด ์น์ธ ๋์)์ด ๋ช
์์ ์ผ๋ก ํฌํจ๋๋ค(Phase 0์ด ์ธ์ ). ๋จ ## ๋ถ๊ฐํผํ Halt (์์ ๋ถ๊ฐ)(ํ๊ดด์ ยท์ธ๋ถ/๋น๊ฐ์ญยท๋๋ฐ)๋ ์ ์ธ๋ผ ๊ทธ ์ง์ ์์ ๋ณ๋ ์น์ธ๋ฐ๋๋ค.
๐ง ์ปจํ
์คํธ ๊ด๋ฆฌ (์ฅ์๊ฐ ์์
๋๋น)
์์จ ๋ฃจํ๊ฐ ๊ธธ์ด์ง๋ฉด ์ปจํ
์คํธ๊ฐ ๋์ ๋์ด ํ๋ฐ task์ ํ์ง์ด ์ ํ๋ ์ ์๋ค. ๋ค์์ ์งํจ๋ค:
-
๊ฐ task๋ ๋
๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ.
- ์ด์ task์์ ์ฝ์ ํ์ผ ๋ด์ฉยท๋น๋ ๋ก๊ทธ์ ์์กดํ์ง ์๋๋ค.
- ํ์ํ ์ ๋ณด๋ plan.md์ git์์ ๋ค์ ํ์ธ (๋ ๋ค ์๊ตฌ ์ ์ฅ๋จ).
- ์ด์ task ์์ธ๋ฅผ ๊ธฐ์ตํ๋ ค ์ ์ฐ์ง ๋ง ๊ฒ โ ์ด๋ฏธ commit๊ณผ plan.md์ ์์.
- plan์ด ์์
์ "Phase 1
N", "๋จ๊ณ 1N", "Step 1~N" ๋ฑ์ผ๋ก ๋๋ด๋๋ผ๋(T์ด ์๋ ๋ช
์นญ) ๋์ผํ๊ฒ ์์จ ์ฒ๋ฆฌํ๋ค. ๊ทธ ๋ฌถ์ ์ฌ์ด์์ ๋ฉ์ถฐ "Phase 2 ์งํํ ๊น์?"๋ผ๊ณ ๋ฌป์ง ์๋๋ค. plan์ "Phase N"์ pjc ๋ด๋ถ์ Phase(P/I/V/DยทFยทG)์ ๋ฌด๊ดํ, ์ฌ์ฉ์ ์์
๋ฌถ์์ผ ๋ฟ์ด๋ค. ๋ชจ๋ ์์
๋จ์๋ฅผ ๋ง์ง๋ง๊น์ง ์์จ๋ก ์งํํ๋ค.
-
๋น๋/ํ
์คํธ ๋ก๊ทธ๋ ํต์ฌ๋ง ์ ์ง.
- ์ ์ฒด ๋ก๊ทธ ์๋ฌธ์ ์ปจํ
์คํธ์ ๊ธธ๊ฒ ๋จ๊ธฐ์ง ์๋๋ค.
- "Build OK / Tests 12/12 passed" ๊ฐ์ ๊ฒฐ๊ณผ + ์คํจ ์ ํต์ฌ ์๋ฌ๋ง.
-
2๊ฐ task๋ง๋ค Progress Log ๊ฐฑ์ .
- plan.md์
## Progress Log์ ์๋ฃ task ์์ฝ 1-2์ค ๊ธฐ๋ก.
- ์ดํ task๋ ์ ์ฒด ๋ํ history ๋์ ์ด ์์ฝ + git log ์ฐธ์กฐ.
-
์ปจํ
์คํธ ํ๊ณ ๊ทผ์ ์ ๋ฉ์ถ์ง ์๋๋ค โ ์์ถ์ ํต๊ณผํด ๊ณ์ ์งํํ๋ค. ํ์ฌ task๋ฅผ Phase V/D๊น์ง ์๋ฃ(์ค๊ฐ ์ ๋จ ๊ธ์ง โ ์ ๋ฐ ์์ ์ํ๋ ๋ณต๊ตฌ ๋ถ์์ )ํ๊ณ plan.md์ ์ํ๋ฅผ ์์ ๊ธฐ๋ก(Progress Log + Next Steps + ๋ค์ task ์์์ )ํ ๋ค, ์ฌ์ฉ์ ๋ณด๊ณ ์์ด ๊ณ์ ์งํํ๋ค(auto-compact๊ฐ ๋ํ ํ์คํ ๋ฆฌ๋ง ์์ฝ, plan.md๋ ๋ณด์กด). ์์ถ ๊ฐ์ง ์ ์ฒซ ํ๋์ ์ด SKILL.md(implement-task) + plan.md + AGENTS.md ์ฌ์ฝ๊ธฐ๋ค โ ๊ธด ๋ฃจํ์์ ์์ถ๋๋ฉด ์ด ์ง์นจ ๋ณธ๋ฌธ(V-5~V-8 ์ ์ฐจยทHalt ์กฐ๊ฑดยท์ฌ์๋ ์นด์ดํฐ ๊ท์น)์ด ์์ฝ์ผ๋ก ๋ญ๊ฐ์ ธ ํ๋ฐ task์์ ๊ท์น์ด ์ ์ค๋๋ฏ๋ก, plan/AGENTS๋ฟ ์๋๋ผ ์ง์นจ ์์ฒด๋ฅผ ๋ค์ ์ฝ์ด ์์ฝ ๊ธฐ์ต๋ง์ผ๋ก ์ด์ด๊ฐ์ง ์๋๋ค(์งํ ์ค Phase๊ฐ reference๋ฅผ ์ฐธ์กฐํ๋ฉด ๊ทธ reference ํ์ผ๋ ํจ๊ป ์ฌ์ฝ๊ธฐ โ ์: Phase F ์ค์ด๋ฉด references/phase-f-detail.md). ์ปจํ
์คํธ ํ๊ณ ์์ฒด๋ Halt ์ฌ์ ๊ฐ ์๋๋ค(ํ๊ดด์ ์์
ยท๋์ผ ์คํจ ๋ฐ๋ณต ๋ฑ ๋ค๋ฅธ Halt ์กฐ๊ฑด๋ง ํด๋น โ references/halt-conditions.md).
์งํ ํ๋ฆ
Phase 0 โ ์ฌ์ ์น์ธ ์ผ๊ด ํ์ธ (ํ์ด๋ธ๋ฆฌ๋ โ ๋ฃจํ ์์ ์ 1ํ; ์ฌ์ ์น์ธ ํญ๋ชฉ ์์ผ๋ฉด ์ฆ์ ํต๊ณผ)
loop over plan.md tasks (์์ task๋ถํฐ Tn๊น์ง โ ์ฒซ ์คํ์ T1, ์ฌ๊ฐ๋ฉด ์ง์ /์ฒซ ๋ฏธ์๋ฃ task):
Phase P โ ๋ณ๊ฒฝ ์ ๋ต ํ์ , caller ์ฌ์ ์ถ์
Phase I โ ์ต์ ๋ณ๊ฒฝ์ผ๋ก ๊ตฌํ
Phase V โ Type๋ณ fast-path (V-1~V-7, + V-9 ๋์์ธ ์ ํฉ ์์
์ โ V-8์ด ์ต์ข
๊ด๋ฌธ)
Phase D โ ์๋ฃ ์ปค๋ฐ(T<N>:) โ (2 task๋ง๋ค Progress Log) โ ์ฆ์ ๋ค์ task๋ก
# ๋ชจ๋ task ์๋ฃ ํ
Phase F โ ์ ์ฒด plan ํตํฉ ๊ฒ์ฆ (์กฐ๊ฑด๋ถ ์ง์
)
Phase G โ PRD ์๊ตฌ ์ฌ๊ฒ์ฆ (plan.md ์๋จ์ `**PRD**:` ์ค ์์ ๋๋ง โ ๊ฐญ ๋ฐ๊ฒฌ ์ task ์ถ๊ฐ ํ ์์จ ์ฌ์ง์
, ์ต๋ 2ํ)
โ ์ต์ข
๋ณด๊ณ (์ฒซ ์ฌ์ฉ์ ๊ฐ์
์ง์ )
Phase P โ Plan (์์
๋จ์)
๊ฐ task์ ๋ํด Phase I ์ง์
์ ๋ค์ ํ์ธ.
์ฌ๊ฐ ์ง์
(์ค๊ฐ ์ฒดํฌํฌ์ธํธ์์ ์ด์ดํ๊ธฐ)
"T๋ถํฐ ๊ณ์" ๊ฐ์ ์์ฒญ์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ:
- plan.md์
## Progress Log๋ฅผ ์ฝ์ด ์๋ฃ task ํ์
git log๋ก ๋ง์ง๋ง commit ์ํ ํ์ธ
- plan.md์ task ์ฒดํฌ๋ฐ์ค๋ก ๋ฏธ์๋ฃ task ์๋ณ
- ์ฒซ Phase P ์ง์
์ Phase 0(์ฌ์ ์น์ธ ์ผ๊ด ํ์ธ)์ 1ํ ์ํ โ ์ ์ธ์
์ฌ๊ฐ๋ ์ด๋ฒ ๋ํ์ plan ์น์ธ์ด ์์ผ๋ฏ๋ก ์ฌํ์ธ ๋ถ๊ธฐ(์ Phase 0). ๊ทธ ๋ค ์ง์ ๋ task(๋๋ ์ฒซ ๋ฏธ์๋ฃ task)๋ถํฐ Phase P ์์
- ๊ฒฝ๋ ์ํค ์ฐธ์กฐ (์ ์ฐจ K, ์ธ์
๋น 1ํ): ์ฒซ Phase P ์ง์
์ ,
pjc:llm-wiki ์ ์ฐจ K(read-only)๋ก ์ด๋ฒ plan๊ณผ ๊ด๋ จ๋ feature/recipe/patterns๋ฅผ ์ฐธ์กฐํ๋ค โ ์ฌ๊ฐ ์ธ์
์ plan-feature Step 1(์ํค ์ฐธ์กฐ)์ ๊ฑฐ์น์ง ์์ ์ํค์ ์ฌ์ฌ์ฉ ๋ ์ํผยทํจ์ ์ง์์ด ๋น ์ง๊ธฐ ์ฝ๋ค. vault๊ฐ ์์ผ๋ฉด index ๊ธฐ๋ฅ๋ณ ์ธ๋ฑ์คยท30_knowledge/patterns/์์ ๊ด๋ จ ํญ๋ชฉ๋ง ์๋ณํด Readํ๊ณ (์ ์ฒด ์ ๋
๊ธ์ง), vault๊ฐ ์๊ฑฐ๋ ๊ด๋ จ ์๋ฃ๊ฐ ์์ผ๋ฉด ์กฐ์ฉํ ํต๊ณผํ๋ค(K ์ค์ฉ โ vaultยท์๋ฃ ์์ผ๋ฉด ์กฐ์ฉํ ํต๊ณผ, ๋ฌด๋งค์นญ ์ ํฉ์ฑ ๊ธ์ง). plan.md Investigation Log์ ์ํค ์ฐธ์กฐ: ๊ธฐ๋ก์ด ์์ผ๋ฉด ๊ทธ ํ์ด์ง๋ค์ ์ฐ์ ์๋ณ ๋์์ผ๋ก ์ผ๋๋ค(๊ณํ ์ธ์
์ด ์ด๋ฏธ ์ฐพ์๋ ๊ทผ๊ฑฐ โ ์ธ๋ฑ์ค ์ฌ๊ฒ์ ์๋ต). ๋์ผ ์ธ์
์์ plan-feature๋ฅผ ๋ง ๊ฑฐ์ณ์จ ๊ฒฝ์ฐ(Step 1์์ ์ด๋ฏธ ์ฐธ์กฐ)๋ ์ค๋ณต์ด๋ฏ๋ก ์๋ตํ๋ค.
- ์ด์ task ์์ธ๋ Progress Log + git์ผ๋ก๋ง ์ฐธ์กฐ (์ ์ฒด history ๋ถํ์)
์ธ ์ ํธ(Progress Logยทgit logยท์ฒดํฌ๋ฐ์ค)๊ฐ ์ด๊ธ๋๋ฉด git log๋ฅผ ์ ๋ขฐํ๋ค. git log๋ ๋งค task commit(T<N>: ...)์ผ๋ก ํญ์ ์ต์ ์ด๊ณ , Progress Log๋ 2 task๋ง๋ค, ์ฒดํฌ๋ฐ์ค๋ ๊ฐฑ์ ๋๋ฝ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๋ ์ง์ task์ ์ ํ(Depends on) task๊ฐ git log์ ์ ๋ณด์ด๋ฉด ๊ทธ ์ ํ๋ถํฐ ๋ค์ ํ์ธํ ๋ค ์งํํ๋ค.
task ๋ด๋ถ ์ฌ๊ฐ ํ์ (checkpoint ์ปค๋ฐ์ผ๋ก). git log ๋ง์ง๋ง ์ปค๋ฐ์ด ๊ทธ task์ ์๋ฃ ์ปค๋ฐ(T<N>: ...)์ด ์๋๋ผ checkpoint๋ฉด task๊ฐ ๋ฏธ์๋ฃ ์ค๋จ๋ ๊ฒ์ด๋ค โ checkpoint: T<N> start(๋น ์ปค๋ฐ)๋ฉด ๊ตฌํ๋ถํฐ, checkpoint: T<N> pre-review๋ฉด ๊ตฌํ์ ๋๋ฌ๊ณ V-5/V-6 ๋ฆฌ๋ทฐ๊ฐ ๋ฏธ์๋ฃ์ธ ๊ฒ์ผ๋ก ๋ณด๊ณ ๊ทธ task์ Phase V๋ถํฐ ์ฌ๊ฐํ๋ค(๊ตฌํ์ ๋ค์ ํ์ง ์๋๋ค). checkpoint: T<N> review-fix๋ฉด ์์ ๋ถ๊น์ง ์ปค๋ฐ๋๊ณ ์ฌ๋ฆฌ๋ทฐ๊ฐ ๋ฏธํ์ธ โ ๊ทธ HEAD๋ก V-5/V-6 ์ฌ๋ฆฌ๋ทฐ๋ถํฐ ์ฌ๊ฐํ๋ค(์ง์ ์ ์ฌ๋ฆฌ๋ทฐ๊ฐ ์ด๋ฏธ ํต๊ณผํ์ ๊ฐ๋ฅ์ฑ์ ์์ผ๋ ์ค๋ณต ๋ฆฌ๋ทฐ๋ฅผ ๊ฐ์ํ๋ค โ ๋ฌดํ๊ท ์ฐ์ , pre-review ์ฌ๊ฐ์ ๋์ผ ์ฒ ํ). checkpoint: T<N> partial์ด๋ฉด ๊ตฌํ ์ค ์ค๋จ โ Phase I๋ฅผ ์ด์ด ์งํํ๋ค. ์ ๋ชฉ์ด checkpoint ๊ณ์ด๋ ์๋ฃ ์ปค๋ฐ๋ ์๋๋ฉด(์๋ ๊ฐ์
๋ฑ) checkpoint: T<N> pre-review์ ์กด์ฌ ์ฌ๋ถ๋ก ํด๋ฐฑํ๋ค(์์ผ๋ฉด Phase V๋ถํฐ, ์์ผ๋ฉด ๊ตฌํ๋ถํฐ). Phase Ledger ๋ง์ปค๋ Phase F/G ์์น๋ง ๋ค๋ฃจ๋ฏ๋ก, task ๋ด๋ถ์ ์ด ํ์ ์ ๋ง์ง๋ง checkpoint ์ปค๋ฐ ์ข
๋ฅ๋ก ํ๋ค.
Phase Ledger๋ก ์งํ ์์น ํ์ (Phase F/G ์ค๋ณต ์คํ ๋ฐฉ์ง). plan.md์ ## Phase Ledger ์ค์ด ์์ผ๋ฉด ๊ทธ๊ฒ์ผ๋ก ์ด๋ Phase๊น์ง ์๋์ง(์: ์ task ์๋ฃ / Phase F ํต๊ณผ (HEAD <sha>) / Phase G ์ฌ๋ฃจํ Nํ์ฐจ)๋ฅผ ํ์ ํ๋ค. ์ด๋ฏธ Phase F๋ฅผ ํต๊ณผํ ์ํ๋ก ์ฌ๊ฐํ๋ฉด(์: Phase G๊ฐ ์ถ๊ฐํ task๋ฅผ ์ฒ๋ฆฌํ๋ค ์์ถ๋ ๊ฒฝ์ฐ) ๋จ์ task๋ง PโIโVโD๋ก ์ฒ๋ฆฌํ๊ณ Phase F(F-7 Opus ํฌํจ)๋ฅผ ์ฌ์คํํ์ง ์๋๋ค โ Phase G ์ฌ๋ฃจํ๋ ์๋ฃ task ํ G-1 ์ฌ๋์กฐ๋ง ํ์ง Phase F ์ ์ฒด๋ฅผ ๋ค์ ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค(phase-g-detail G-2). ๋ง์ปค๊ฐ ์๋ ๊ธฐ์กด plan์ ์์ ํ๊ฒ "์ฒ์๋ถํฐ(์ ๋ฏธ์๋ฃ task + Phase F/G)"๋ก ํด๋ฐฑํ๋ค(๋ฌดํ๊ท). ๋ง์ปค๊ฐ git logยท์ฒดํฌ๋ฐ์ค์ ์ด๊ธ๋๋ฉด task ์๋ฃ ํ์ ์ git log๋ฅผ ์ ๋ขฐํ๋, Phase ์งํ ์์น๋ ๋ง์ปค + Progress Log๋ก ํ์ ํ๋ค.
์ฌ๊ฐ๋ ์์ ์์จ ๋ฃจํ๋ค. "T6๋ถํฐ ๊ณ์"์ "T6 ํ๋๋ง"์ด ์๋๋ผ "T6๋ถํฐ ๋ง์ง๋ง task๊น์ง + Phase F/G๊น์ง"๋ฅผ ์๋ฏธํ๋ค. ์ฒซ ์ธ์
์ T1 ์์๊ณผ ์ฌ๊ฐ ์ธ์
์ T6 ์์์ ์์์ ๋ง ๋ค๋ฅผ ๋ฟ ๋์ผํ ๋ฃจํ์ด๋ฉฐ, ๊ธ์ง ํํ ๊ท์น("T7 ์งํํ ๊น์?" ๊ธ์ง)๋ ๋์ผํ๊ฒ ์ ์ฉ๋๋ค. task ์ฌ์ด์ ๋ฉ์ถฐ ์ฌ์ฉ์์๊ฒ ๋ฌป๋ ๊ฒ์ ์ฌ๊ฐ ์ธ์
์์๋ ์๋ฐ์ด๋ค. ๋จ์ผ task๋ง ์คํํ๋ ๊ฒฝ์ฐ๋ ์ฌ์ฉ์๊ฐ "T6๋ง" ์ฒ๋ผ ๋ช
์์ ์ผ๋ก ํ์ ํ์ ๋๋ฟ์ด๋ค.
๋ถํ plan ํธ์ถ: plan์ด 2๊ฐ๋ก ๋ถํ ๋ ๊ฒฝ์ฐ(plan-feature "๊ธด plan ๋ถํ " โ docs/plans/...-part1.md/-part2.md), ๊ฐ part๋ plan ๊ฒฝ๋ก๋ฅผ ๋ช
์ํด ํธ์ถํ๋ค(์: "docs/plans/<๋ ์ง>-<slug>-part2.md ๊ตฌํ"). docs/plans ๋ณต์ ํ์ผ์ ์๋ plan ํด์๊ฐ ๋ชจํธํ๋ฏ๋ก ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ค. ๊ฐ ๋ถํ plan์ ์๊ธฐ ์์์ T1๋ถํฐ ์์ํ๋ฉฐ(๋ถํ ์ ๊ฐ plan์ ๋
๋ฆฝ ์คํ), part1 ์๋ฃ ์ต์ข
๋ณด๊ณ ๊ฐ part2 ๊ฒฝ๋ก๋ฅผ ์๋ดํ๋ค. plan ์๋จ์ ## ์ด์ part ํธ๋์คํ ์น์
์ด ์์ผ๋ฉด ์ฒซ task ์ ์ ๋จผ์ ์ฝ๋๋ค โ ์ด์ part ์ธ์
์ด ๋จ๊ธด ํจ์ ยท๊ธฐ๊ฐ๋ ์ ๊ทผยท๊ฒ์ฆ ์ง๋ฆ๊ธธ(final-report-template.md์ ๋ถํ ์๋ด๊ฐ ์์ฑ)๋ก, /clear๋ก ์ ์ค๋ ์๋ฌต์ง๋ฅผ ํ์ํ๋ค.
P-1. plan.md ํด๋น task ์ ๋
- task์ Acceptance, Design(์์ผ๋ฉด โ ๊ตฌํ์ด ๋ฐ๋ฅผ ๊ตฌ์กฐ ๋ช
์ธ), Files, Edge Cases, Halt Forecast, Type ๋ชจ๋ ํ์ธ.
P-2. Files ๋ชฉ๋ก ์ง์ Read
- task์ Files์ ์๋ ๋ชจ๋ ํ์ผ์ Read ๋๊ตฌ๋ก ์ง์ ์ด์ด ํ์ฌ ์ํ ํ์ธ. ํ์ผ๋ค์ ์๋ก ๋
๋ฆฝ์ด๋ฏ๋ก ํ ํด์ ๋ณ๋ ฌ Readํ๋ค(์ฝ๋ ๋ด์ฉ์ ๋์ผ, ํด ์๋ง ์ ์ฝ โ ์์ฐจ Read๋ ๋ญ๋น).
- ๊ฐ์ ๊ธ์ง. ํ์ผ ๋ด์ฉ์ ํญ์ ์ง์ ์ฝ์ด ๊ฒ์ฆ.
P-3. ์ฌ๋ณผ ์ฌ์ฉ์ฒ ์ ์ ์ถ์
- ๋ณ๊ฒฝ ๋์ ์ฌ๋ณผ์ ๋ํด
grep -rn "\b<symbol>\b" ์คํ. ์ฌ๋ณผ์ด ์ฌ๋ฟ์ด๋ฉด grep -rnE "\b(sym1|sym2|...)\b" 1ํ ๋ฐฐ์น ์คํ ํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๋ณผ๋ณ๋ก ์ฌ๊ท์ํ๋ค(๊ฒฐ๊ณผ ๋์ผ, ํธ์ถ ์๋ง ์ ์ฝ โ post-write-checks hook์ ๋ฐฐ์น grep๊ณผ ๋์ผ ๊ธฐ๋ฒ).
- ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ Read๋ก ํ์ธ.
- ์ฝ๊ธฐ ๋น๋ก ์์น (hit ๊ณผ๋ค ์). hit๊ฐ 30๊ฑด์ ์ด๊ณผํ๋ฉด(๋ฐฐ์น ์คํ ์ ์ฌ๊ท์ ํ ์ฌ๋ณผ๋ณ hit ๊ธฐ์ค) ์ ๊ฑด ์ ์ฒด Read ๋์ , ๋จผ์
grep -rn -C <n>(๋ฌธ๋งฅ ํฌํจ)์ผ๋ก ๊ฐ hit์ ์ํฅ ์ฌ๋ถ๋ฅผ 1์ฐจ ํ์ ํ๋ค โ ์ํฅ์ด ์์ฌ๋๋ ํ์ผ๋ง ์ ์ฒด Read๋ก ์ ๋ฐ ํ์ธํ๋ค. ํ์ ๊ทผ๊ฑฐ๋ฅผ ๋จ๊ธด๋ค(์: "hit 47๊ฑด ์ค 12๊ฑด์ด ์๊ทธ๋์ฒ ํธ์ถ๋ถ โ ์ ์ฒด Read, ๋๋จธ์ง 35๊ฑด์ ๋ฌธ์์ด ๋งค์นญ/์ฃผ์ โ ๋ฌธ๋งฅ์ผ๋ก ์ํฅ ์์ ํ์ธ"). ๋จ์ grep ์นด์ดํธ๋ง์ผ๋ก ๋๋ด๋ ๊ฒ์ ๊ธ์ง(์ํฅ ํ์ ์ด ๋ฐ๋์ ์์ด์ผ ํจ). ์์ ๊ธ์ง ๊ฐ๋๋ ์ ์ง โ ์ด ์ถ์ฝ์ ๋ฉ์ธ์ด ์ง์ ์ํํ๋ฉฐ explorer ๋ฑ์ ๋๊ธฐ์ง ์๋๋ค(์๋ ๊ฐ๋). hit๊ฐ 30๊ฑด ์ดํ๋ฉด ์ข
์ ๋๋ก ์ ๊ฑด Read.
- task์ Files ๋ชฉ๋ก๊ณผ ๋์กฐ โ ๋๋ฝ๋ caller ๋ฐ๊ฒฌ ์ ์์จ ์ฒ๋ฆฌ๊ฐ ๊ธฐ๋ณธ: plan.md์ ํด๋น task Files์ ๋๋ฝ caller๋ฅผ ์ถ๊ฐํ๊ณ ํจ๊ป ์์ ํ๋ค (๋ฉ์ถ์ง ์์). caller ๊ฐฑ์ ์ ์ ๋ ๊ท์น 3(Cross-File Consistency)์ ์ ์ ์์
์ด๋ค.
- ์์ธ (Halt โ ์ฌ์น์ธ): โ ๋๋ฝ caller๊ฐ ์ฌ๋ฌ ๋ชจ๋๋ก ์ฐ์(๋๋ต 5๊ฐ ํ์ผ ์ด์)ํด plan ๋ฒ์๋ฅผ ํฌ๊ฒ ๋ฒ์ด๋๊ฑฐ๋, โก plan์ ์๋ ๊ณต๊ฐ(public) ๋ฉค๋ฒ ์๊ทธ๋์ฒ ๋ณ๊ฒฝ์ด ์๋ก ํ์ํด์ง๊ฑฐ๋(๊ณต๊ฐ API ๊ณ์ฝ ๋ณ๊ฒฝ์ plan ์น์ธ ๋ฒ์ ๋ฐ โ ๊ธ๋ก๋ฒ "๊ณต๊ฐ ๋ฉค๋ฒ ์๊ทธ๋์ฒ ๋ณ๊ฒฝ ์น์ธ ํ์"์ ์ ํฉ), โข ํ๊ดด์ ๋ณ๊ฒฝยท์ ์์กด์ฑ์ ์ ๋ฐํ๋ ๊ฒฝ์ฐ์๋ Haltํด ์ฌ์น์ธ๋ฐ๋๋ค. plan์ด ์ด๋ฏธ ์๋ํ ๋ณ๊ฒฝ์ **๋จ์ caller ๊ฐฑ์ (์๊ทธ๋์ฒ ๋์ผยท๋ด๋ถ ํธ์ถ๋ถ ์์ )**์ Cross-File Consistency์ ์ ์ ์์
์ด๋ผ Halt ์๋.
P-4. ์ธ๋ถ ์๋ณ์ ํ์ธ (ํ๊ฐ ๋ฐฉ์ง)
- ํธ์ถํ ์ธ๋ถ API/๋ฉ์๋/ํ์
์ ์ ์ ์์น๋ฅผ ์ง์ ํ์ธ.
- ๋ชป ์ฐพ์ผ๋ฉด ํธ์ถ ์ฝ๋ ์์ฑ ๊ธ์ง. plan์ "ํ์ธ ํ์" ๋ฑ๋ก.
P-5. ๋ณ๊ฒฝ ์ ๋ต ๋ช
์
- ์ด๋ค ์์๋ก ๋ณ๊ฒฝํ ์ง ํ ์ค๋ก ์์ฑ (์๊ธฐ ์ ๊ฒ์ฉ).
์์ ๊ธ์ง ๊ฐ๋ (ํ์ง-์๊ณ ์ฝ๊ธฐ). P-2(Files ์ ๋
)ยทP-3(caller ์ ์ ์ถ์ )ยทV-7(caller ์ฌ๊ฒ์ฆ)์ explorer ๋ฑ ๋ฐ์ท-์ฝ๊ธฐ subagent์ ์์ํ์ง ์๋๋ค. explorer๋ haiku๋ก "ํ์ํ ํ์ผ๋ง Read(์ ์ฒด ์ฝ๊ธฐ ์ง์)"ํ๋ฏ๋ก ์ ์ฒด ํ๋จยทcross-file ๊ฒ์ฆ์ ๋ถ์ ํฉ โ ์ด ๋จ๊ณ๋ ๋ฉ์ธ์ด ์ง์ Readํ๋ค(hit๊ฐ ๊ณผ๋คํ๋ฉด P-3์ "์ฝ๊ธฐ ๋น๋ก ์์น"์ผ๋ก ์ถ์ฝํ๋, ๊ทธ ์ถ์ฝ๋ ๋ฉ์ธ์ด ์ง์ ์ํํ๊ณ explorer์ ๋๊ธฐ์ง ์๋๋ค โ ์์ ๊ธ์ง์ ํต์ฌ์ "๋๊ฐ ํ๋จํ๋"์ด์ง "์ ๊ฑด์ ๋ค ์ฝ๋"๊ฐ ์๋๋ค). (๋ณ๋ ฌ ์์์ plan ๋จ๊ณ์ ์์นยทํจํด ์ฐพ๊ธฐ์์๋ง; ๊ตฌํ ๋จ๊ณ์ caller ๊ฒ์ฆ์ ๋ฉ์ธ ์ง์ .)
Phase I โ Implement
Sub-skill ํธ์ถ (ํด๋น ์)
| Task ์ฐ์ถ๋ฌผ | ํธ์ถ sub-skill | ์กฐ๊ฑด |
|---|
| WinUI 3/WPF/MAUI ViewModel + View | pjc:add-viewmodel | AGENTS.md์ WinUI/CommunityToolkit.Mvvm ๋ช
์ ์ |
| Domain Service / Application Service | pjc:add-domain-service | AGENTS.md์ DDD/Clean ์ํคํ
์ฒ ๋ช
์ ์ |
| ๊ทธ ์ธ | (sub-skill ์์, ์ง์ ๊ตฌํ) | |
Android์ Jetpack ViewModel์ add-viewmodel ๋น๋์ โ ์ง์ ๊ตฌํ ๋๋ ๋ณ๋ skill ํ์.
Phase V โ Validate
V ์ง์
์ง์ โ pre-review ์ปค๋ฐ (๋ฆฌ๋ทฐ ๋์ diff ๊ณ ์ ). Type B/C/D(๋ฆฌ๋ทฐ๊ฐ ์๋ Type)๋ Phase V ๋ฆฌ๋ทฐ(V-5/V-6) ์ ์ ๊ตฌํ ๋ณ๊ฒฝ์ ์ปค๋ฐํ๋ค:
git add -A
git commit -m "checkpoint: T<N> pre-review"
์ด ์ปค๋ฐ์ SHA๋ฅผ V-5/V-6 ๋ฆฌ๋ทฐ์ด์๊ฒ HEAD_SHA๋ก ์ ๋ฌํ๋ค. ์ด์ : ๋ฆฌ๋ทฐ์ด๋ git diff <BASE_SHA> <HEAD_SHA>๋ก ๋ณ๊ฒฝ์ ๋ณด๋๋ฐ, ๊ตฌํ ๋ณ๊ฒฝ์ด ์ํนํธ๋ฆฌ์๋ง ์๊ณ ๋ฏธ์ปค๋ฐ์ด๋ฉด(๊ณผ๊ฑฐ ๊ฒฐํจ) HEAD๊ฐ ์ง์ checkpoint: T<N> start(๋น ์ปค๋ฐ)๋ฅผ ๊ฐ๋ฆฌ์ผ ๋ฆฌ๋ทฐ์ด๊ฐ ๋น diff๋ฅผ ๋ณด๊ณ ๊ฑฐ์ง BLOCKER๋ฅผ ๋ด๊ฑฐ๋ ์์๋ก ์ํนํธ๋ฆฌ diff๋ฅผ ์ฐ๊ฒ ๋๋ค. pre-review ์ปค๋ฐ์ผ๋ก ๋ฆฌ๋ทฐ ๋์ ์ค๋
์์ ๊ณ ์ ํ๋ฉด ๊ฒฐ์ ์ ยท์ฌํ ๊ฐ๋ฅํ๋ค. BASE_SHA๋ checkpoint: T<N> start(๋๋ ์ง์ task ์ต์ข
์ปค๋ฐ). pre-review ์ปค๋ฐ ์ดํ์ ๋ชจ๋ ์์ ๋ถ(๋ฆฌ๋ทฐ ์ง์ ์์ ยทV-1~V-3 ์คํจ ์์ )์ Phase I๋ก ๋์๊ฐ ๊ณ ์น ๋ค git commit -m "checkpoint: T<N> review-fix"๋ก ์ด์ด ์ปค๋ฐ(amend ์๋ โ ์ถ๊ฐ ์ปค๋ฐ, ๋ฆฌ๋ทฐ ์ค๋
์ ์ด๋ ฅ ๋ณด์กด)ํ๊ณ , ๊ทธ ์ HEAD๋ก ์ฌ๋ฆฌ๋ทฐํ๋ค. Phase D์ ์ต์ข
์ปค๋ฐ์ pre-review ์ปค๋ฐ(+review-fix)์ task ์๋ฃ ์ปค๋ฐ์ผ๋ก ์ ๋ฆฌํ๋ ๋จ๊ณ๋ค(HEAD๊ฐ ๊ทธ๋๋ก pre-review๋ฉด amend๋ก ๋ฉ์์ง๋ง ์น๊ฒฉ, review-fix๊ฐ ์์์ผ๋ฉด ๊ทธ ์ ์ ์๋ฃ ์ปค๋ฐ โ ํ์ ยท๋ช
๋ น์ Phase D โข). Type A๋ ์ด ์ปค๋ฐ์ ๊ฑด๋๋ฐ๊ณ Phase D์์ ๋ฐ๋ก ์ต์ข
์ปค๋ฐํ๋ค.
์์๋๋ก ์คํ. ์คํจ ์ Phase I๋ก ๋ณต๊ทํด ์์ ํ ์ฌ์๋ํ๋ค โ ๋ฐ๋ณต ํ๋๋ references/recovery.md์ ์นด์ดํฐ(๋น๋/ํ
์คํธ 5ํ ์ฐ์ ์คํจยท๋ฆฌ๋ทฐ ์์ ์ฌ์ดํด 5ํยท๋ณต๊ตฌ 2ํ)๋ฅผ ๋ฐ๋ฅธ๋ค(์นด์ดํฐ ์์ด ๋ฌดํ ๋ฐ๋ณตํ์ง ์์ผ๋ฉฐ, "1ํ๋ง"์ด๋ผ๋ ๋ป๋ ์๋๋ค). V-1~V-3์ ๊ฐ๋ฅํ๋ฉด ํ ๋๊ตฌ ํธ์ถ๋ก ์ฒด์ด๋ํ๋ค(<build> && <test> && <lint> โ ์ ๋จ๊ณ ์คํจ ์ ๋ค๊ฐ ์คํ๋์ง ์๋ ๊ฒ์ด "์คํจ ์ Phase I ๋ณต๊ท"์ ์ผ์น. ํด๋น Type์ ์๋ ๋จ๊ณ๋ ์๋ตํ๊ณ , V-2๋ฅผ ์กฐ๊ฑด๋ถ ์ถ์ํ๋ฉด ๊ทธ ํํฐ ๋ช
๋ น์ ์ฒด์ธ์ ๋ฃ๋๋ค).
๊ฒ์ฆ ์คํฌ๋ฆฝํธ Windows ๋ณด์ (PowerShell). ์์ ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๋ ์๊ฒฉ์ฆ๋ช
ํ๋์ฝ๋ฉ(โํ๊ฒฝ๋ณ์ $env:TEST_PW)ยท-WindowStyle Hiddenยท๊ณผ๋ํ -ExecutionPolicy Bypass๋ฅผ ํผํ๋ค โ ์ด ์ํ ์ ํธ๊ฐ ํ ์คํฌ๋ฆฝํธ์ ๋ชจ์ด๋ฉด Windows Defender๊ฐ ๊ณต๊ฒฉ ๋๊ตฌ๋ก ์ค์ธํด ๊ฒฉ๋ฆฌ(์ญ์ )ํ ์ ์๋ค(๋น๋ ๊ฒ์ฆ๊ณผ ๋ก๊ทธ์ธ/๋ฐํ์ ํ
์คํธ๋ ๋ถ๋ฆฌ). ๊ฒฉ๋ฆฌ ์ ์ฌ์ฉ์์๊ฒ Defender ์์ธ ์ถ๊ฐ๋ฅผ ์๋ด๋ง ํ๋ค(์ค์ ๋ณ๊ฒฝ์ ์ฌ์ฉ์ ์ง์ ). ์์ธ: references/authoring-detail.md.
๐ Fast-Path โ Task Type์ ๋ฐ๋ฅธ ๋จ๊ณ ์ ํ
| Type | ์คํ ๋จ๊ณ | ์๋ต ๋จ๊ณ |
|---|
| A (Doc/Config) | V-8๋ง (์ฝ๋ ๋น๋์ ์ํฅ ์ฃผ๋ ์ค์ ์ด๋ฉด V-1 ์ถ๊ฐ) | V-1(๋๊ฐ)~V-7 |
| B (Trivial Code) | V-1 + V-2 + V-5(prefilter Haiku) + V-7 + V-8 (prefilter PASS ์ V-7์ ์ ๋ฐฉํฅยท์ญ๋ฐฉํฅ ๊ฐ grep 1ํ๋ก ์ถ์) | V-3, V-6 |
| C (Normal Code) | V-1 ~ V-8 ์ ์ฒด (V-5๋ compliance Sonnet) | ์๋ต ์์ |
| D (Complex/Cross-cutting) | V-1 ~ V-8 ์ ์ฒด (V-5๋ compliance Sonnet) | ์๋ต ์์ |
Type C/D์ ์คํ ๋จ๊ณ๋ ๋์ผํ๋ค(V-6 ํฌํจ โ ์ข
์ ์๋ C๊ฐ (quality-review) ํ๋๊ทธ ์์ด๋ V-6์ ์๋ตํ์ผ๋, ๊ทธ ๊ธฐ๋ณธ๊ฐ์ด ๋๋ถ๋ถ์ ์ฝ๋๋ฅผ ํ์ง ๊ฒํ 0ํ๋ก ํต๊ณผ์์ผ ๋ฐ์ ํ๋ค). C/D์ ์ฐจ์ด๋ ์คํ์ด ์๋๋ผ ๊ณํ ๋จ๊ณ(Decision ์นดํ
๊ณ ๋ฆฌ 12๊ฐ vs 5-6๊ฐยทEdge ์นดํ
๊ณ ๋ฆฌยทDesign ํ๋ ์๋ฌด)์ ์๋ค.
Task Type ํ์ : plan์ด Type์ ๋ช
์ํ๋ฉด ๊ทธ๊ฒ์ ๋ฐ๋ฅธ๋ค. plan์ Type์ด ์์ผ๋ฉด ๋ฉ์ธ์ด diff ์์ ๊ท๋ชจ๋ก B/C/D๋ฅผ 1์ค๋ก ํ์ ํด plan.md ํด๋น task์ ๊ธฐ์
ํ๋ค(์: "๋จ์ผ ํ์ผยทcaller ์์ โ B", "๋ค์ค ํ์ผยท์๊ทธ๋์ฒ ๋ณ๊ฒฝ โ D"). ๊ท๋ชจ๋ฅผ ๊ฐ๋ ํ๊ธฐ ์ด๋ ต๊ฑฐ๋ ํ์ ์ด ์ ๋งคํ๋ฉด D๋ก ๊ฐ์ฃผ(์์ ์ฐ์ โ ๋ฌด๊ฑฐ์ด ์ชฝ).
V-4(PostToolUse hook)๋ ์๋ ์คํ โ ๋ชจ๋ Type์์ ์๋ (UTF-8 + impact-warn).
V-9(์๊ฐ ์ถฉ์ค๋)๋ Type๊ณผ ๋ฌด๊ดํ๊ฒ ์กฐ๊ฑด๋ถ โ plan์ ## ์๊ฐ ์์ ๋ถํด ์น์
(Step 2.5 ์ฐ์ถ๋ฌผ)์ด ์๋ ๋์์ธ ์ ํฉ ์์
์ผ ๋๋ง ์ํ (์์ผ๋ฉด ๋ชจ๋ Type์์ ์๋ต).
V-5ยทV-6 ๋ณ๋ ฌ โ Type C/D์์ V-5(compliance)ยทV-6(quality)๋ ๋์ผ BASE/HEAD์ ๋ณ๋ ฌ ํธ์ถํ๊ณ , ๋ ๋ค OK์ผ ๋๋ง ์งํํ๋ค (์์ธ๋ V-5).
Type A ๋น๋ ํ๋จ
- ์์ ๋ฌธ์ยท์ฃผ์ยทREADMEยท
.gitignore ๋ฑ ๋น๋์ ์ํฅ ์๋ ํ์ผ โ V-1๋ skip, V-8๋ง.
.csproj/build.gradle/package.json ๋ฑ ๋น๋ ๊ตฌ์ฑ์ ์ํฅ ์ฃผ๋ ์ค์ โ V-1 ๋น๋ ์คํ.
- ๋์ ๋ณ๊ฒฝ Config ๊ฐ๋: DI ๋ฐฐ์ ยท๊ธฐ๋ฅ ํ๋๊ทธ ๊ธฐ๋ณธ๊ฐยท๋ผ์ฐํ
๋ฑ ๋ฐํ์ ๋์์ ๋ฐ๊พธ๋ ์ค์ ์ด Type A๋ก ๋ถ๋ฅ๋ผ ์์ผ๋ฉด ์ค๋ถ๋ฅ๋ค(plan-feature Step 5 Type A ๊ฐ๋). ์์ ๋ฌธ์ยท๋น๋์ ์ค์ ๋ง Type A๋ก ์ฒ๋ฆฌํ๊ณ , diff๊ฐ ๋ฐํ์ ๋์์ ๋ฐ๊พธ๋ฉด ์ต์ Type B๋ก ๊ฒฉ์ํด V-5(prefilter)๋ฅผ ํ์ด๋ค โ Type A๋ V-5/V-6์ด ์์ด ๋์ ๋ณ๊ฒฝ์ด ๋ฌด๊ฒ์ฆ ํต๊ณผ๋๊ธฐ ๋๋ฌธ์ด๋ค.
Type B prefilter PASS ์ V-7 ์ถ์
- spec-prefilter(Haiku)๊ฐ PASS โ ๋ณ๊ฒฝ ์ฌ๋ณผ์ด trivial์ด๋ฏ๋ก V-7์ ์ ๋ฐฉํฅ(๋ณ๊ฒฝ ์ฌ๋ณผ)ยท์ญ๋ฐฉํฅ(์ญ์ ๋ ํธ์ถ๋ถ ์ฌ๋ณผ) ๊ฐ grep 1ํ๋ก ์ถ์ (์ ์ฒด ์ฌ์ถ์ ๋ถํ์).
- prefilter๊ฐ ESCALATE โ ํด๋น task๋ฅผ Type C๋ก ๊ฒฉ์ (๊ฒฉ์ ์ ์ฐจยท์ด์ ๋ V-5 Type B ์ ์ ๋ณธ โ V-3 + V-5ยทV-6 ๋ณ๋ ฌ + V-7 ์ ์ฒด).
- Type ์ค๋ถ๋ฅ ํผ๋๋ฐฑ (๊ฒฝ๋ฏธ): spec-prefilter๊ฐ Type B task์์ ESCALATE๋ฅผ ๋ฐ๋ณต(์ฌ๋ฌ task์ ๊ฑธ์ณ ์ฆ๊ฒ)ํ๋ฉด plan์ Type ๋ถ๋ฅ๊ฐ ์ค์ ๋ณด๋ค ๊ฐ๋ณ๋ค๋ ์ ํธ๋ค โ ํด๋น task๋ C ๊ฒฉ์์ผ๋ก ์งํํ๋(์ ๊ฒฉ์ ๊ท์ ) plan.md
## Deferred / Follow-up์ "Type ๋ถ๋ฅ ์ฌ๊ฒํ (prefilter ESCALATE ์ฆ์)"๋ฅผ 1์ค ๋จ๊ธด๋ค(๋ค์ ๊ณํ ๋จ๊ณ ๊ฐํ์ฉ, ๋ฃจํ๋ ๋ฉ์ถ์ง ์์).
V-1. ๋น๋
- AGENTS.md์ build ๋ช
๋ น ์คํ. exit 0 ํ์ธ. ์ค๋ฅ ์ Phase I๋ก ๋ณต๊ทํด ์์ ํ ์ฌ์๋(ํ๋: recovery.md ๋น๋ 5ํ ์ฐ์ ์คํจ ์นด์ดํฐ).
- AGENTS.md ์๊ฑฐ๋ build ๋ช
๋ น ๋ฏธ์ ์ โ ํ์ ํ์ผ๋ก ์๋ ์ถ๋ก โ fallback ํ(csprojโ
dotnet build ๋ฑ 6์ข
+ ๊ทธ ์ธ Halt ๊ท์น)๋ references/authoring-detail.md "๋น๋/ํ
์คํธ fallback ํ" ์ ๋ณธ (์ ๋น๋ ๊ฒฝ๋ก โ AGENTS.md์ ๋ช
๋ น์ด ์์ผ๋ฉด ์ด ํ๋ฅผ ๋ณผ ์ผ์ด ์๋ค).
V-2. ํ
์คํธ
- AGENTS.md์ test ๋ช
๋ น ์คํ. ํต๊ณผ ์ผ์ด์ค ์ ๊ธฐ๋ก.
- ์กฐ๊ฑด๋ถ ์ถ์ (AGENTS.md ๊ทผ๊ฑฐ๊ฐ ์์ ๋๋ง): AGENTS.md์ ์ํฅ ๋ฒ์ ํํฐ ๋ช
๋ น(๋ณ๊ฒฝ ๋ชจ๋๋ง ๋๋ test ๋ช
๋ น) ๋๋ ๊ฒ์ฆ ๋งคํ ํ(๋ณ๊ฒฝ ํ์ผ ํจํด โ ํ์ ๊ฒ์ฆ)๊ฐ ์์ผ๋ฉด, ์ด task์์๋ ๋ณ๊ฒฝ ์ํฅ ๋ชจ๋๋ง ํ
์คํธํ๋ค(๋งคํ ํ๊ฐ ์์ผ๋ฉด ๊ทธ ํ๋ก ์ ํ โ ์ฌ๋ฌ ํจํด์ ๊ฑธ์น๋ฉด ํด๋น ํ ์ ๋ถ, ํฉ์งํฉ). ์ ์ฒด ์ค์ํธ๋ Phase F-2์์ 1ํ ๋ณด์ฅ๋๋ฏ๋ก ๋งค task ์ ๋ ์คํ์ ์ค๋ณต์ด๋ค. ์ถ์ํ ๊ฒฝ์ฐ ์ปค๋ฐ ๋ฉ์์ง
Tests: ์ค์ ๋ฒ์๋ฅผ ๋ช
์ํ๋ค(์: Tests: 12/12 passed (module X๋ง โ ์ ์ฒด๋ F-2)). ํํฐ ๋ช
๋ น๋ ๊ฒ์ฆ ๋งคํ ํ๋ ์์ผ๋ฉด ์ค์ํธ ํฌ๊ธฐ์ ๋ฌด๊ดํ๊ฒ ์ ์ฒด๋ฅผ ๋๋ค(๊ธฐ์กด ๋์ โ ์ถ์๋ AGENTS.md์ ๊ทผ๊ฑฐ๊ฐ ์์ ๋๋ง ํ๋ฉฐ, ์ค์ํธ๊ฐ ํฌ๋ค๋ ์ด์ ๋ก ์์ ์ถ์ํ์ง ์๋๋ค. ์์ ์๊ฐ์ ์คํํด๋ด์ผ ์ ์ ์์ด ํ์ ๊ธฐ์ค์ด ๋ ์ ์๋ค).
- AGENTS.md ์๊ฑฐ๋ test ๋ช
๋ น ๋ฏธ์ ์ โ ํ์ ํ์ผ fallback โ ํ(
dotnet test ๋ฑ 6์ข
ยทpackage.json test script ์์์ skipยท๊ทธ ์ธ Halt)๋ references/authoring-detail.md "๋น๋/ํ
์คํธ fallback ํ" ์ ๋ณธ.
V-3. ๋ฆฐํธ/์ ์ ๋ถ์
- ํ๋ก์ ํธ ํ์ค ๋๊ตฌ ์คํ. ์ ๊ท ๊ฒฝ๊ณ 0 ํ์ธ.
V-4. ์๋ ๊ฒ์ฆ hook
- PostToolUse hook ์๋ ์คํ (
check-utf8-and-lines, impact-warn).
- impact-warn ๊ฒฝ๊ณ ๋ฐ์ ์: caller ํ์ผ์ Read๋ก ์ฆ์ ์ด์ด ์ํฅ ๊ฒ์ฆ.
- ์ํฅ ๋ฐ์ผ๋ฉด ๊ฐ์ task์์ ํจ๊ป ์์ .
- ์ํฅ ์์ผ๋ฉด commit ๋ฉ์์ง์ "์ํฅ ์์ ํ์ธ" ๋ช
์.
Reviewer ๊ณผ๋ถํ(529) ๋์ โ ๋ชจ๋ subagent ํธ์ถ ๊ณตํต
reviewer subagent ํธ์ถ์ด ๊ณผ๋ถํ(HTTP 529)๋ก ์คํจํ๋ฉด(V-5/V-6ยทF-7ยทplan-feature plan-reviewer ๋ฑ ๋ชจ๋ reviewer ๊ณตํต): ์งง๊ฒ ์ฌ์๋(์ต๋ 2ํ) โ ๊ณ์ 529๋ฉด ๋ฑ๊ธ๋ณ ๋ถ๊ธฐ โ Opus(plan-reviewerยทplan-completion-reviewer)๋ Sonnet ๋์ฒด ๊ฐ๋ฅ(๋จ "๊ฒ์ฆ ๊น์ด ๋ฎ์ ์ ์์" ๋ช
์ + โ ๏ธ ํ์ + Next Steps ๊ธฐ๋ก), Sonnet(spec-compliance-reviewerยทcode-quality-reviewer)์ Haiku ๋์ฒด ๊ธ์ง(์ฌ์ฉ์ ์ ํ: ์ฌ์๋/์์ฒด๊ฒ์ฆ/๋๊ธฐ), Haiku(spec-prefilterยทexplorer)๋ ์ฌ์๋๋ง ํ ์์ ํ๋ฆ. ๋์ฒดยท๊ฒ์ฆ ์๋ต์ ํญ์ ๋ช
์(ํฌ๋ช
์ฑ) โ ์กฐ์ฉํ ๋์ฒด ๊ธ์ง. ์์ธ ๋งคํธ๋ฆญ์ค: references/recovery.md.
V-5. Spec Compliance Review (subagent ํ์)
Task Type์ ๋ฐ๋ผ ๋ค๋ฅธ ํ๋ฆ:
Type B: spec-prefilter (Haiku) ๋จผ์ ํธ์ถ (BASE_SHAยทHEAD_SHA๋ Type C/D์ ๋์ผ โ HEAD_SHA = Phase V ์๋์ pre-review ์ปค๋ฐ SHA. prefilter๋ ๊ทธ diff๋ฅผ ๋ณธ๋ค. ๋๋จธ์ง ์ ๋ฌ๋ฌผ์ spec-prefilter ์
๋ ฅ ๊ณ์ฝ๋๋ก โ acceptance 1์คยทtask Files ๋ชฉ๋กยทAGENTS.md ์์น).
- PASS โ V-5 ์๋ฃ, V-7(์ถ์)ยทV-8 ์งํ (Type B๋ V-6 ์๋ต โ Sonnet ํธ์ถ ์ ํจ. Fast-Path ํ์ ์ผ์น).
- ESCALATE โ ํด๋น task๋ฅผ Type C๋ก ๊ฒฉ์ํ๋ค: plan.md์ ๊ทธ task Type ๋ผ์ธ์
C (Bโ๊ฒฉ์: prefilter ESCALATE)๋ก ๊ฐฑ์ ํ๊ณ (๊ธฐ์กด plan ๋ถ๋ถ ๊ฐฑ์ โ ๊ฒฉ์ ํ์ ์ด ์ฌ๊ฐ ์ธ์
์ C ์ฒ๋ฆฌ ์ ํธ๊ฐ ๋๋ค), ์ดํ๋ฅผ Type C ๊ธฐ์ค์ผ๋ก ์ํ โ V-5(compliance)ยทV-6(quality)๋ฅผ ๋ณ๋ ฌ ํธ์ถํ๊ณ V-3ยทV-7๋ ์ ์ฒด ์ํํ๋ค(์ด๋ฏธ ํต๊ณผํ V-1ยทV-2๋ ์ฌ์คํ ๋ถํ์). ESCALATE๋ "trivial ์๋" ํ์ ("ํ์ ์์ผ๋ฉด ESCALATE")์ด๋ฏ๋ก ์ค๋ถ๋ฅ๊ฐ ๊ฐ์ฅ ์์ฌ๋๋ ์๊ฐ์ ๊ฐ์ฅ ์ฝํ ๊ฒ์ฆ(spec ๋จ๋
)์ด ์ ์ฉ๋๋ ์ญ์ค์ ์์ค๋ค. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๋ ์๋ Type C/D์ ๋์ผ.
Type C/D: spec-compliance-reviewer (Sonnet) ํธ์ถ.
- ์ ๋ฌ: task ID, plan.md ํด๋น ์น์
, BASE_SHA, HEAD_SHA(= pre-review ์ปค๋ฐ SHA โ Phase V ์๋์์ ๋ง๋ ๊ฒ, ๋น checkpoint๊ฐ ์๋), AGENTS.md ๊ฒฝ๋ก(V-6 ๋ณ๋ ฌ์ quality reviewer ์ปจ๋ฒค์
๋์กฐ ์
๋ ฅ โ code-quality-reviewer ์
๋ ฅ ๊ณ์ฝ).
- V-5(compliance)์ V-6(quality)๋ฅผ ๋์ผ BASE_SHAยทHEAD_SHA์ ๋ณ๋ ฌ(ํ turn ๋์) ํธ์ถํ๋ค โ Type C/D ๊ณตํต(V-6 ํญ์ ์ํ). ๋ ๋ฆฌ๋ทฐ๋ ๋
๋ฆฝ read-only๋ผ ๋์ ์คํํด๋ ์ถฉ๋์ด ์๋ค.
- ๋ ์ค ํ๋๋ผ๋ BLOCKER/MAJOR โ Phase I๋ก ๋ณต๊ท, ์์ ํ (์ํ๋) ๋ฆฌ๋ทฐ๋ฅผ ๋ค์ ๋ณ๋ ฌ ์ฌ์คํ. ๋ ๋ค OK/MINOR์ผ ๋๋ง ๋ค์ ๋จ๊ณ (MINOR โ follow-up ๋ฑ๋ก). follow-up ๋ฑ๋ก์ ์ต์ข
ํต๊ณผ run ๊ธฐ์ค โ ์ค๊ฐ run์์ ๋ณธ MINOR๋ ์ต์ข
run์์ ์ฌํ๊ฐํ๋ฉฐ(์์ ์ผ๋ก ์์น๊ฐ ๋ฐ๋ ์ ์์), ์ค๊ฐ ๊ฒฐ๊ณผ๋ก ์ค๋ณต ๋ฑ๋กํ์ง ์๋๋ค. quality ๋ฆฌ๋ทฐ์ SUGGEST(์ค๊ณ ์๊ฒฌ โ code-quality-reviewer ํญ๋ชฉ J)๋ ๋์ผํ๊ฒ ์ต์ข
run ๊ธฐ์ค์ผ๋ก plan.md
## Deferred / Follow-up์ [SUGGEST] ์ ๋ 1์ค์ฉ ๋ฑ๋กํ๋ค(๋์ผ ํ์ผยท๋์ผ ์์ง๋ 1๊ฑด์ผ๋ก ๋๋) โ verdict ๋ฌด์ํฅ์ด๋ฏ๋ก ์์ ยท์ฌ๋ฆฌ๋ทฐ ์์ด ๋ฃจํ๋ฅผ ๊ณ์ํ๋ค.
- ๋ ๋ฆฌ๋ทฐ๋ ํญ์ ์ต์ข
diff์ ์ ์ฒด ์ํ โ ์ด๋ ๊ฒ๋ ์๋ตยท์ฝํํ์ง ์๋๋ค (๋จ ์๋ 529 ์ธํ๋ผ ์ฅ์ fallback์ ์์ธ์ด๋ฉฐ, ๊ทธ ๊ฒฝ์ฐ ์ฝํ ์ฌ์ค์ ๋ฐ๋์ ๋ช
์ํ๋ค). ์คํจ ๊ฒฝ๋ก์์ V-6์ด ์ฌ์คํ๋๋ ํ ํฐ ๋น์ฉ์ ํ์ง ์ฐ์ ์ผ๋ก ๊ฐ์ํ๋ค.
- 529 ๊ณผ๋ถํ๋ ๊ฐ reviewer์ ๋
๋ฆฝ ์ ์ฉ โ ๋ณ๋ ฌ ์ค ํ์ชฝ๋ง 529๋ฉด ๊ทธ reviewer๋ง "Reviewer ๊ณผ๋ถํ(529) ๋์" fallback์ ๋ฐ๋ฅธ๋ค (๋ค๋ฅธ ์ชฝ ๊ฒฐ๊ณผ ์ ์ง).
- reviewer๊ฐ "incomplete"(turn ์์ฐ ์์ง ๋ฑ์ผ๋ก acceptance ์ผ๋ถ๋ง ๊ฒํ )๋ก ์๋ตํ๋ฉด ํต๊ณผ(OK)๋ก ๋ณด์ง ์๋๋ค โ ํด์ ๊ฒฝ๋ก๋ ๋ฆฌ๋ทฐ ์ข
๋ฅ๋ก ๊ฐ๋ฆฐ๋ค: V-5(spec) incomplete๋ ๋ฏธ๊ฒํ ํญ๋ชฉ์ ๋ฉ์ธ์ด diff์์ ์ง์ ๋์กฐ(ํด๋น acceptance๊ฐ ์ถฉ์กฑ๋๋ ์์น ์ง๋ชฉ โ ๊ธฐ๊ณ์ ๋์กฐ๋ผ ํ์ฉ)ํ๊ฑฐ๋ reviewer๋ฅผ ์ฌํธ์ถํ๋ค. V-6(quality) incomplete๋ reviewer ์ฌํธ์ถ๋ก๋ง ํด์ํ๋ค(๋ถ์กฑ๋ถ์ ๋ช
์ํด ์ฌ์๋ขฐ, ์ฐ์ incomplete๋ฉด ํ์ผ ๋จ์๋ก ๋ฒ์๋ฅผ ์ขํ ์ฌ์๋ขฐ โ ์๊ธฐ ์ฝ๋์ ํ์ง์ ๋ฉ์ธ์ด ์ค์ค๋ก ํ์ ํ๋ ๊ฒ์ V-6 "์์ฒด ๊ฒํ ๊ธ์ง"์ ๋ชจ์์ด๋ผ ๋ถํ). incomplete๋ฅผ ์กฐ์ฉํ OK ์ฒ๋ฆฌํ๊ณ ๋ค์ task๋ก ๋์ด๊ฐ๋ ๊ฒ์ ๊ธ์ง. (Phase G์ incomplete ์ฒ๋ฆฌ ์์น์ per-task V-5/V-6์๋ ๋์ผ ์ ์ฉ โ Type B ESCALATE(โC ๊ฒฉ์)์ ๋ณ๋ ฌ ๋ฆฌ๋ทฐ ํธ์ถ ํฌํจ ๋ชจ๋ reviewer ์๋ต์ ์ ์ฉ.)
- ์ง์ ์ด์ ์ ์ฐจ (์ฌ์ค ์ค๋ฅ ๋ฐ์ฆ โ ๋ฌด์กฐ๊ฑด ์์ฉ ๋ฐฉ์ง). ๋ฆฌ๋ทฐ ์ง์ ์ ์ฝ๋ ์์ ์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด์ง๋ง, ๋ฉ์ธ์ด ๊ทธ ์ง์ ์ ์ฌ์ค ์ค๋ฅ๋ก ํ๋จํ๊ณ ํ์ผ:๋ผ์ธ ์ธ์ฉ์ผ๋ก ๋ฐ์ฆํ ์ ์์ผ๋ฉด(์: ๋ฆฌ๋ทฐ์ด๊ฐ "caller ๋๋ฝ"์ด๋ผ ํ์ผ๋ ๊ทธ caller๊ฐ ๋ฆฌํ๋ ์
ยท๋ค๋ฅธ ํ์ผ์์ ์ค์ ๋ก ๊ฐฑ์ ๋จ์ grep์ผ๋ก ์ ์), ์ฝ๋๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋ฐ์ฆ ๊ทผ๊ฑฐ๋ฅผ ์ฒจ๋ถํด ๊ฐ์ ๋ฆฌ๋ทฐ์ด๋ฅผ ์ฌํธ์ถํ๋ค. ์ฌํธ์ถ์๋ ๋ฆฌ๋ทฐ์ด๊ฐ ๊ฐ์ ์ง์ ์ ์ ์งํ๋ฉด ๊ทธ ์ง์ ์ ์์ฉํด ์์ ํ๊ฑฐ๋(๋ฐ์ฆ์ด ํ๋ ธ์ ์ ์์), ๋ฐ์ฆ์ด ํ์คํ๋ฉด Haltํด ์ฌ์ฉ์ ํ๋จ์ ๋ฐ๋๋ค โ ์ด ์ข
๊ฒฐ ๊ท์น์ด ๋ฐ๋ฐ์ ๋์ ๋ณด์ฅํ๋ค. ์ด ๋ฐ์ฆ ์ฌํธ์ถ์ ์ฌ์๋ ํ๊ณ์ "์์ ์ฌ์ดํด"์ ํฌํจ๋๋ฏ๋ก ์ํ์ ๊ทธ ์นด์ดํฐ(์์ ์ฌ์ดํด ๋์ 5ํยท๋์ผ ์ง์ 3ํ ์ฐ์)๊ฐ ๊ฐ์ ํ๋ค(๋ณ๋ ํ์ ์บก์ ๋์ง ์๋ ์ด์ โ ์ํ์ด ์ด๋ฏธ ๋ ๊ฒน์ด๋ค). ์ด ์ ์ฐจ๋ antipatterns.md "Review ๋ฌต์ด ๊ธ์ง"์ ์์ธ๋ค โ ๋ฌต์ด(๊ทผ๊ฑฐ ์์ด ๋ฌด์)์ด ์๋๋ผ ๊ทผ๊ฑฐ ์๋ ๋ฐ์ฆ์ด๋ฉฐ, ๋ฐ์ฆ์ด ๊ธฐ๊ฐ๋๋ฉด ์์ฉํ๋ค. ๋ฐ์ฆ ์์ด "๋ด ํ๋จ์ ํ๋ ธ๋ค"๋ก ๋์ด๊ฐ๋ ๊ฒ์ ์ฌ์ ํ ๊ธ์ง.
V-6. Code Quality Review (subagent, Type C/D ํญ์) โ V-5์ ๋ณ๋ ฌ ์ํ
code-quality-reviewer subagent ํธ์ถ (์ V-5์์ ๋ณ๋ ฌ๋ก ํจ๊ป ํธ์ถ). ์์ฒด ๊ฒํ ๊ธ์ง. ๊ธฐ์กด plan์ Type ๋ผ์ธ์ ๋จ์ (quality-review) ํ๋๊ทธ๋ no-op(์ข
์ opt-in ํ๊ธฐ โ ์ด๋ฏธ ๊ธฐ๋ณธ์ด๋ผ ์ค๋ณต ๋ช
์์ผ ๋ฟ, ์ค๋ฅ ์๋).
- ๊ฒํ ๊ธฐ์ค: DDD, ํ๊ฐ, ํ๊ธ ์ฃผ์, ํ์ผ ์์ง๋(1500์ ๋ถ๋ฆฌ ๊ฒํ ์ ํธ), UTF-8, ๋ณด์, ๋์์ฑ, ์ฌ์ฉ์ ๋
ธ์ถ UI ๋ฌธ๊ตฌ ์นํ์ฑ(ํญ๋ชฉ I โ diff์ ํ๋ฉด ํ์ ๋ฌธ๊ตฌ๊ฐ ์์ ๋).
- ๊ฒฐ๊ณผ ์ฒ๋ฆฌ: V-5์ ํตํฉ โ ๋ ์ค ํ๋๋ผ๋ BLOCKER/MAJOR๋ฉด ์์ ํ ๋ ๋ค ์ฌ์คํ, ๋ ๋ค OK์ผ ๋๋ง ์งํ.
V-7. Caller Re-verification
์ ๋ฐฉํฅ ๊ฒ์ฌ (caller ๊ฐฑ์ ํ์ธ) โ ๋ณ๊ฒฝ๋ ๋ชจ๋ public/internal ์ฌ๋ณผ์ ๋ํด:
grep -rn "\b<symbol>\b" ์คํ. ์ฌ๋ณผ์ด ์ฌ๋ฟ์ด๋ฉด P-3์ ๋์ผํ๊ฒ grep -rnE "\b(sym1|sym2|...)\b" 1ํ ๋ฐฐ์น ํ ์ฌ๋ณผ๋ณ ์ฌ๊ท์.
- hit ์์น๊ฐ ๋ชจ๋ diff์ ํฌํจ๋์ด ์๊ฑฐ๋, ๋ณ๊ฒฝ ์ํฅ ์์์ด ๋ช
๋ฐฑํ๊ฐ.
- hit ๊ณผ๋ค(30๊ฑด ์ด๊ณผ) ์ P-3์ "์ฝ๊ธฐ ๋น๋ก ์์น"์ ๋์ผ ์ ์ฉ โ ๋ฌธ๋งฅ grep์ผ๋ก 1์ฐจ ํ์ ํ ์ํฅ ์์ฌ๋ถ๋ง ์ ์ฒด Read(ํ์ ๊ทผ๊ฑฐ ๋ก๊ทธ). ์์ ๊ธ์ง ๊ฐ๋๋ ์ ์ง.
- ๋๋ฝ ๋ฐ๊ฒฌ โ Phase I ๋ณต๊ท.
๋น๋๊ฐ ํต๊ณผํด๋ ์ก๋ cross-file ๋ง์ง๋ง ๊ด๋ฌธ.
์ญ๋ฐฉํฅ ๊ฒ์ฌ (๊ณ ์ ์ฝ๋ ํ์ง) โ ์ ๋ฐฉํฅ์ด "๋ฐ๊พผ ์ฌ๋ณผ์ caller๊ฐ ํจ๊ป ๊ฐฑ์ ๋๋"๋ผ๋ฉด, ์ด ๊ฒ์ฌ๋ ๊ทธ ๊ฑฐ์ธ์ โ "์ด๋ฒ ์์ ์ผ๋ก ๋ง์ง๋ง ํธ์ถ๋ถ๊ฐ ์ฌ๋ผ์ ธ ๊ณ ์(orphan)๊ฐ ๋ ์ฝ๋๊ฐ ์๋"๋ฅผ ๋ณธ๋ค (๋น๋๋ ๋ฏธ์ฌ์ฉ ์ ์๋ฅผ ์ก์ง ๋ชปํ๋ค):
- diff์์ ์ญ์ ยท๋ณ๊ฒฝ๋ ์ค์ด ํธ์ถํ๋ ์ฌ๋ณผ(์ง์ด ํธ์ถ๋ถ์ ๋์ ํจ์/๋ฉ์๋/import) ๋ชฉ๋ก์ ๋์ถํ๋ค.
- ๊ฐ ์ฌ๋ณผ์
grep -rn "\b<symbol>\b" ์คํ(์ฌ๋ฟ์ด๋ฉด ์ ๋ฐฉํฅ๊ณผ ๋์ผ ๋ฐฐ์น) โ ์์ฌ ์ฐธ์กฐ๊ฐ 0์ธ๋ฐ ์ ์๊ฐ ๋จ์ ์์ผ๋ฉด ๊ณ ์ ํ๋ณด.
- ์ฒ๋ฆฌ ๊ฐ๋: ๊ฐ์ diff์์ ํธ์ถ๋ถ๊ฐ ์ฌ๋ผ์ง ๋ฏธ์ฌ์ฉ importยท๊ฐ์ ํ์ผ์ private ํฌํผ๋ ์์ ๊ท์น 6์ ์ ์ ์ ๋ฆฌ๋ก ์ด task์์ ํจ๊ป ์ ๊ฑฐํ๋ค. **public/internal ์ฌ๋ณผยท๋ค๋ฅธ ํ์ผ์ ์ ์ยท๋๋(๋๋ต 5๊ฐ ํ์ผ ์ด์)**์ ์๋ ์ญ์ ํ์ง ์๋๋ค โ ์๋ฃ ๋ณด๊ณ ์ "๊ณ ์ ์ฝ๋ ํ๋ณด"๋ก ๋ณด๊ณ ํด ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ๋ค("plan์ ์๋ ๋๋ ์ญ์ " Halt ๊ท์น๊ณผ ์ ํฉ).
- ์ฃผ์: ์์ฌ ์ฐธ์กฐ 0์ ํ๋ณด์ด์ง ํ์ ์ด ์๋๋ค โ ๋ฆฌํ๋ ์
ยทDI ์ปจํ
์ด๋ยท๋ฌธ์์ด ๊ธฐ๋ฐ ์ฐธ์กฐ๋ grep์ ์กํ์ง ์๋๋ค. ์ ๊ฑฐ ์ ๊ทธ ๊ฐ๋ฅ์ฑ์ ํ์ธํ๊ณ , ๋ถํ์คํ๋ฉด ์ ๊ฑฐ ๋์ ๋ณด๊ณ ๋ก ๋๋ฆฐ๋ค.
Type B + prefilter PASS ์ ์ถ์: ๋ณ๊ฒฝ ์ฌ๋ณผ์ด trivialํ๋ฏ๋ก ์ ๋ฐฉํฅ์ ๋ณ๊ฒฝํ ์ฌ๋ณผ grep 1ํ, ์ญ๋ฐฉํฅ์ ์ญ์ ๋ ํธ์ถ๋ถ ์ฌ๋ณผ grep 1ํ๋ง ์ํ (์ ์ฒด ์ฌ์ถ์ ์๋ต). impact-warn hook(V-4)์ด ์ด๋ฏธ ์๋ ๊ฒ์ถํ์ผ๋ฏ๋ก ์ค๋ณต์ ์ค์ธ๋ค.
V-8. Self-Honesty Check
Phase D ์ง์
์ง์ ์๊ธฐ ์ ์ง์ฑ ๊ฒ์ฆ. ๋ชจ๋ "์"์ฌ์ผ ์งํ ๊ฐ๋ฅ:
ํ๋๋ผ๋ "์๋์ค" โ Phase I ๋ณต๊ท. ๋จ ํด๋น ๋จ๊ณ๋ฅผ ์คํํ์ง ์์ task์ "N/A"๋ "์๋์ค"๊ฐ ์๋๋ค โ Fast-Path๊ฐ ๊ทธ ๋จ๊ณ๋ฅผ ์๋ตํ ๊ฒฝ์ฐ(์: Type A ์์ ๋ฌธ์๋ V-1/V-2 ๋ฏธ์คํ์ด๋ฏ๋ก ๋น๋ยทํ
์คํธ ๋ฐ์ค๊ฐ N/A๋ก ํต๊ณผ; V-3 ๋ฏธ์ํ์ด๋ฉด ๋ฆฐํธ ๋ฐ์ค๋ N/A). N/A์ "์คํํ์ด์ผ ํ๋๋ฐ ์ ํจ(=์๋์ค)"์ ํผ๋ํ์ง ์๋๋ค: V-1/V-2/V-3์ ์ํํ task๋ ๋ฐ๋์ "์"์ฌ์ผ ํ๋ค.
์๊ธฐ๊ธฐ๋ง ํจํด: "์๋ง ๋์ํ ๊ฒ์ด๋ค", "ํ
์คํธ๋ ์ ๋๋ ธ์ง๋ง ๋น๋ ํต๊ณผํ์ผ๋ OK", "๋น์ทํ ์ฝ๋๋ฅผ ๋ณธ ์ ์์ด์ ๋ง์ ๊ฒ" โ Phase I ์ฆ์ ๋ณต๊ท.
V-9. ์๊ฐ ์ถฉ์ค๋ ๊ฒ์ฆ (๋์์ธ ์ ํฉ ์์
๋ง)
plan์ ## ์๊ฐ ์์ ๋ถํด ์น์
(Step 2.5 ์ฐ์ถ๋ฌผ)์ด ์์ ๋๋ง ์ํํ๋ค (๋์์ธ ์ ํฉ ์์
์ด ์๋๋ฉด ๊ฑด๋๋ โ ์ด ํ์ค ์ ๋ชฉ์ผ๋ก ํธ๋ฆฌ๊ฑฐ๋ฅผ ํ์ ํ๋ค). ์ํ ์์ ์ V-7 ์ดํยทV-8 ์ด์ โ V-8("Phase D ์ง์
์ง์ ")์ด V-9 ๊ฒฐ๊ณผ๊น์ง ํฌ๊ดํ๋ ์ต์ข
๊ด๋ฌธ์ด ๋๋๋ก ํ๋ค. ์ํ ์ references/phase-v9-detail.md๋ฅผ ์ฝ๊ณ ๊ทธ ์ ์ฐจ(์์ ์ ์ ๋์กฐยท๋น๋โ ์๊ฐ ์ผ์นยท๋ ๋/HUMAN-VERIFY ์ฒ๋ฆฌยท๋ถ์ผ์น ์ Phase I ๋ณต๊ท)๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ฅธ๋ค.
์ฌ์๋ ํ๊ณ (Halt ํธ๋ฆฌ๊ฑฐ โ ๋ฌดํ ๋ฃจํ ์ฐจ๋จ)
- ๊ฐ์ task์์ ๋์ผ BLOCKER/MAJOR 3ํ ์ฐ์ โ Halt (reviewer์ RECURRING ํ๊ทธ ํฌํจ).
- ๊ฐ์ task์์ ๋ฆฌ๋ทฐ ์ง์ (BLOCKER/MAJOR) ์์ ์ฌ์ดํด ๋์ 5ํ โ Halt (๋งค๋ฒ ๋ค๋ฅธ ์ง์ ์ผ๋ก ๋๋ ๋ฌดํ ์์ ๋ฃจํ ๋ฐฉ์ง).
- ํ task์์ ๋น๋ยท์์ ์ฌ์ดํด 10ํ ์ด์ ๋ฐ๋ณตํ๊ณ ๋ ๋ฏธ์ โ Halt (๋ฌดํ ๊ทธ๋ผ์ธ๋ฉ). ์ ๋ ์บก(๋ฆฌ๋ทฐ ์ง์ ํ์ )๊ณผ ์๋ "๋น๋ 5ํ ์ฐ์ ์คํจ"(์์ธ ๋ฏธ์ ํ์ ) ์บก์ด ๋ชจ๋ ๋ชป ์ก๋ ์๋๋ฆฌ์ค โ ์์ธ์ ๋งค๋ฒ ์์ง๋ง ๋๋์ง ์๋ ๊ทธ๋ผ์ธ๋ฉ โ ๋ฅผ ์ด ์ํ์ด ์ ์ผํ๊ฒ ์ก๋๋ค.
- ์ด ์
+ ๋๋จธ์ง ์นด์ดํฐ(checkpoint ๋ณต๊ตฌ 2ํยท๋น๋ 5ํ ์ฐ์ ์คํจ), ์นด์ดํฐ ์์ํ(plan.md
## Retry Ledger์ ๊ธฐ๋กํด auto-compactยท์ฌ๊ฐ์์ ๊ทธ ๊ฐ๋ถํฐ ์ด์ด ์
โ G5), ์์ธ ๋ณต๊ตฌ ์ ์ฐจ๋ ๋ชจ๋ references/recovery.md์ ์ผ์ํ(๋จ์ผ ์ถ์ฒ).
Phase D โ Done
โ ๋ฆฌ๋ทฐ ์์ ๋ถ ์ ๋ฌด ํ์ (HEAD ์ปค๋ฐ ์ ๋ชฉ ๊ธฐ์ค): Phase D ์ง์
์ git log -1 --format=%s๋ก HEAD ์ปค๋ฐ ์ ๋ชฉ์ ํ์ธํ๋ค.
- HEAD =
checkpoint: T<N> pre-review = ๋ฆฌ๋ทฐ๊ฐ ์ฒซ ํ์ OK๋ผ pre-review ์ปค๋ฐ์ด ๊ณง ์ต์ข
์ฝ๋(์ถ๊ฐ ์์ ์์) โ โข์ amend ๋ถ๊ธฐ.
- ๊ทธ ์ธ = โข์ ์ ์๋ฃ ์ปค๋ฐ ๋ถ๊ธฐ โ
checkpoint: T<N> review-fix๊ฐ ์์ธ ๊ฒฝ์ฐ(์์ ๋ถ์ด ์ปค๋ฐ์ผ๋ก ์ค์ฌ), Type A์ฒ๋ผ pre-review ์์ด HEAD๊ฐ checkpoint: T<N> start์ธ ๊ฒฝ์ฐ ๋ชจ๋ ์ฌ๊ธฐ.
- ํ์ ์ ํธ๊ฐ ์ปค๋ฐ ์ ๋ชฉ์ด๋ฏ๋ก โก(์ฒดํฌ๋ฐ์ค ๊ฐฑ์ )์ ์์ ๋ฌด๊ดํ๋ค โ ์ฒดํฌ๋ฐ์ค ๋ณ๊ฒฝ์ ์ํนํธ๋ฆฌ์๋ง ์์ด HEAD ์ ๋ชฉ์ ๋ฐ๊พธ์ง ์๋๋ค(์์ ๋ถ์ด review-fix๋ก ์ปค๋ฐ๋๋ ํ๋กํ ์ฝ๊ณผ ์ ํธ๊ฐ ์ผ์น โ ์ํนํธ๋ฆฌ ์ํ๋ก ํ์ ํ์ง ์๋๋ค). HEAD ์ ๋ชฉ์ด checkpoint ๊ณ์ด๋
T<N>:๋ ์๋๋ฉด(์๋ ๊ฐ์
๋ฑ) checkpoint: T<N> pre-review ์ปค๋ฐ์ ์กด์ฌ ์ฌ๋ถ๋ก ํด๋ฐฑ ํ์ ํ๋ค(์์ผ๋ฉด ํ์ ์ปค๋ฐ ์ ๋ฌด๋ก, ์์ผ๋ฉด ์ ์๋ฃ ์ปค๋ฐ ๋ถ๊ธฐ).
โก plan.md ์ฒดํฌ๋ฐ์ค ๊ฐฑ์ (๋งค task, ํ์ โ commit๋ณด๋ค ๋จผ์ ): ์ด task์ ๋ณธ์ฒด ์ฒดํฌ๋ฐ์ค๋ฅผ [ ]/[/] โ [x]๋ก ๋ฐ๊พผ ๋ค์ commitํ๋ค. ์ฌ๊ฐ ์ ๋ฏธ์๋ฃ task ์๋ณ์ 1์ฐจ ์ ํธ์ด๋ฏ๋ก task ์๋ฃ๋ง๋ค ์ฆ์ ๊ฐฑ์ ํ๋ค(Progress Log๋ 2 task๋ง๋ค์ง๋ง ์ฒดํฌ๋ฐ์ค๋ ๋งค task). ์ด ๋จ๊ณ๋ฅผ ๋น ๋จ๋ฆฌ๋ฉด ์ฌ๊ฐ('์ฌ๊ฐ ์ง์
')์์ ์ฒดํฌ๋ฐ์ค๊ฐ ์ ๋ถ [ ]๋ก ๋จ์ git logยทProgress Log์ ์ด๊ธ๋๋ค. ๊ธ๋ก๋ฒ CLAUDE.md์๋ ๋์ผ ๊ท์น์ด ์์ผ๋, ์ด ์คํฌ์ ๊ทธ์ ์์กดํ์ง ์๊ณ ์์ฒด์ ์ผ๋ก ๊ฐ์ ํ๋ค.
require-task-checkbox hook์ด ์ด ์์๋ฅผ ๊ธฐ๊ณ ๊ฐ์ ํ๋ค โ T<N>: ์๋ฃ ์ปค๋ฐ ์ plan์ ํด๋น ์ฒดํฌ๋ฐ์ค๊ฐ [x]๊ฐ ์๋๋ฉด commit์ด ์ฐจ๋จ(exit 2)๋๋ค. ์ง์นจ ์ค์ ๋ถํ์ด ์๋๋ผ ๊ตฌ์กฐ์ ๊ฒ์ดํธ๋ค.
- ์ฃผ์(stale [x]): ์ฒดํฌ๋ฐ์ค๋ฅผ [x]๋ก ๋ฐ๊พผ ๋ค commit์ด ์คํจํ๋ฉด ์ฒดํฌ๋ฐ์ค๋ง [x]๋ก ๋จ์ ์ ์๊ณ , plan.md๊ฐ gitignore์ธ repo์์
git reset --hard <checkpoint> ๋ณต๊ตฌ๋ ์ด๋ฅผ ๋๋๋ฆฌ์ง ๋ชปํ๋ค โ ์ด ์ ํธ ์ถฉ๋์ '์ฌ๊ฐ ์ง์
'์ "git log ์ ๋ขฐ" ์์น์ด ๊ทธ๋๋ก ํด์ํ๋ค(์ฒดํฌ๋ฐ์ค๋ ์ด๊ธ๋ ์ ์๋ ์ ํธ, git log๊ฐ ์ง์ค).
โข commit โ Phase V ์๋์์ ๋ง๋ checkpoint: T<N> pre-review ์ปค๋ฐ์ ์ด task ์๋ฃ ์ปค๋ฐ์ผ๋ก ๋ง๋ฌด๋ฆฌํ๋ค. โ ์ ํ์ ์ผ๋ก ๋ถ๊ธฐํ๋ค:
- โ ์์ HEAD๊ฐ pre-review๋ฉด(์์ ๋ถ ์์) โ ์ ์ปค๋ฐ ๋์ pre-review ์ปค๋ฐ์ amendํ๋ค(์ฒดํฌ๋ฐ์ค ๋ณ๊ฒฝ๋ง ํก์๋๊ณ ๋ฉ์์ง๊ฐ ์๋ฃ ๋ฉ์์ง๋ก ์น๊ฒฉ):
git add -A
git commit --amend -m "T<N>: <ํ ์ค ์์ฝ>
... (์๋ ์๋ฃ ๋ฉ์์ง ๋ณธ๋ฌธ) ..."
- โ ์ด ๊ทธ ์ธ๋ฉด(review-fix ํ์ ์ปค๋ฐ ์์ ๋๋ Type A) โ ์ ์๋ฃ ์ปค๋ฐ์ ๋ง๋ ๋ค. pre-reviewยทreview-fix ์ปค๋ฐ์ ๊ทธ ์ ๋จ๊ณ๋ก ๋จ๋๋ค(squashํ์ง ์์ โ ๋ฆฌ๋ทฐ ๋์ diff ๊ณ ์ ์ด๋ ฅ ๋ณด์กด):
git add -A
git commit --allow-empty -m "T<N>: <ํ ์ค ์์ฝ>
... (์๋ ์๋ฃ ๋ฉ์์ง ๋ณธ๋ฌธ) ..."
--allow-empty์ธ ์ด์ : plan.md๊ฐ gitignore์ธ repo์์๋ ์์ ๋ถ์ด ์ ๋ถ review-fix๋ก ๊ธฐ์ปค๋ฐ๋๊ณ ์ฒดํฌ๋ฐ์ค ๋ณ๊ฒฝ๋ git์ ์ ๋ณด์ฌ staged๊ฐ 0์ผ ์ ์๋ค โ ๊ทธ ๊ฒฝ์ฐ์๋ ์๋ฃ ์ปค๋ฐ(๋ณธ๋ฌธ์ ๋น๋/ํ
์คํธ/๋ฆฌ๋ทฐ ๊ธฐ๋ก)์ด nothing to commit์ผ๋ก ์คํจํ์ง ์๊ฒ ํ๋ค(checkpoint: T<N> start ๋น ์ปค๋ฐ๊ณผ ๋์ผ ์ ๋ก). tracked plan repo์์๋ ์ฒดํฌ๋ฐ์ค ๋ณ๊ฒฝ์ด staged๋๋ฏ๋ก no-op(๋ฌดํด).
์๋ฃ ๋ฉ์์ง ๋ณธ๋ฌธ(๋ ๊ฒฝ๋ก ๊ณตํต):
T<N>: <ํ ์ค ์์ฝ>
<๋ณ๊ฒฝ ์์ฝ>
Type: <A/B/C/D>
Build: <๋ช
๋ น> โ OK
Tests: <X/Y passed>
Review: spec OK (prefilter: <PASS/ESCALATEโC๊ฒฉ์> โ Type B๋ง, ๊ทธ ์ธ ํ๋ ์๋ต), quality <OK/SKIPPED>
Caller-recheck: <ํ์ธํ ์ฌ๋ณผ ์>๊ฐ ์ฌ๋ณผ, ๋๋ฝ 0
Self-honesty: PASS
์งํ ๋ณด๊ณ (๊ฐ task 1์ค, ์ฌ์ฉ์ ํ์ธ ์์ฒญ ๊ธ์ง):
โ
T<N> ์๋ฃ (<N>/<TOTAL>) โ T<N+1> ์์
Type: <A/B/C/D> | Tests: <X/Y> | Phase V: <์ ์ฉ ๋จ๊ณ ์์ฝ>
์ด ๋ณด๊ณ ๋ ์๋ฆผ์ด์ง ํ์ธ ์์ฒญ์ด ์๋๋ค. ์ฌ์ฉ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ๋ง๊ณ ์ฆ์ T<N+1>์ Phase P๋ฅผ ์์ํ๋ค.
Progress Log ๊ฐฑ์ (2 task๋ง๋ค ๋๋ ํฐ task ํ)
์ฅ์๊ฐ ์์
์ ์ปจํ
์คํธ ๋์ ๋๋น. plan.md์ ## Progress Log์ ๊ธฐ๋ก:
## Progress Log
- T1-T2 ์๋ฃ (์ปค๋ฐ abc123, def456): SettingsViewModel + Page ๋ฐ์ธ๋ฉ ์ถ๊ฐ. ๋น๋/ํ
์คํธ OK.
- ๊ฒฐ์ : ํ
๋ง๋ ์์คํ
์ค์ ์ฐ์ , ์๋ ํ ๊ธ์ override (์ฌ์ฉ์ ํฉ์).
- T3-T4 ์๋ฃ (์ปค๋ฐ ghi789, jkl012): ThemeService ์ถ๊ฐ + App.xaml ์ ์ฉ. ํ๊ท ์์.
- ์๋ฃ ๋ด์ญ(๋ฌด์)๋ง์ด ์๋๋ผ, ์์
์ค ๋ด๋ฆฐ ๊ฒฐ์ ยทํฉ์(์/์ด๋ป๊ฒ)๋ ํจ๊ป ๊ธฐ๋กํ๋ค. ๋ํ ์ค ์ ํ ๊ฒ(์: "์ด ์ผ์ด์ค๋ ๋ฌด์ํค๋ก ํจ", "A ๋ฐฉ์ ์ฑํ")์ ์์ถ๋๋ฉด ์์ฝ์์ ํ๋ ค์ง๊ฑฐ๋ ์ฌ๋ผ์ ธ, ์์ถ ํ Claude๊ฐ ๊ทธ ๊ฒฐ์ ์ ์๊ณ ๋ค๋ฅด๊ฒ ์งํํ๋ ํผ๋์ ์ฃผ์์ธ์ด ๋๋ค. plan.md์ ๋จ๊ธฐ๋ฉด ์์ถ๋ผ๋ ๋ณต๊ตฌ๋๋ค.
- ํฐ ๊ฒฐ์ ์ plan.md์
## Decisions์๋ ๋ฐ์ํ๋ค(Progress Log๋ ์๊ฐ์ ์์ฝ, Decisions๋ ๊ฒฐ์ ๋ชจ์ โ ์์ถ ํ ๋ ๋ค ์ฐธ์กฐ).
์ดํ task๋ ์ ์ฒด ๋ํ history ๋์ ์ด Progress Log + git log๋ฅผ ์ฐธ์กฐํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ปจํ
์คํธ๊ฐ ์์ถ(auto-compact)๋์ด๋ plan.md์ ์งํ ์ํฉยท๊ฒฐ์ ์ด ๋จ์ ๋ณต๊ตฌ๊ฐ ์ฝ๋ค.
- Progress Log ๋์ ์์ถ (plan.md ๋น๋ํ ๋ฐฉ์ง): ํญ๋ชฉ์ด ๋ง์ด ์์ด๋ฉด(๋๋ต 10๊ฐ ์ด๊ณผ) ์ค๋๋ ํญ๋ชฉ๋ค์ ํ ์ค๋ก ๋ฌถ์ด ์์ถํ๋ค โ ์:
T1-T8 ์๋ฃ (์ปค๋ฐ abc..xyz): ๋ฐ์ดํฐ ๊ณ์ธต + ViewModel ๊ตฌ์ถ, ํ๊ท ์์. ์์ธ๋ git logยท์ปค๋ฐ์ ๋จ์ ์์ผ๋ฏ๋ก plan.md์ ํต์ฌ๋ง ๋๋ค. ์ต๊ทผ 2-3๊ฐ ํญ๋ชฉ์ ์์ธํ ์ ์ง(์ฌ๊ฐ์ ํ์), ๊ทธ๋ณด๋ค ์ค๋๋ ๊ฒ๋ง ์์ถ. ์ค์ํ ๊ฒฐ์ ์ ์์ถํด๋ ## Decisions์ ๋ณ๋ ๋ณด์กด๋๋ฏ๋ก ์์ง ์๋๋ค. plan.md๋ฅผ ์๊ฒ ์ ์งํด์ผ auto-compact ํ plan.md ์ฌ์ฝ๊ธฐ ๋น์ฉ์ด ๋ฎ๋ค(์ฝ์ด์ ๋ค์ ์ฑ์ฐ๋ ์์ด ์์์ง).
Next Steps ๊ฐฑ์ (์์ถ ๋๋น ์ฒดํฌํฌ์ธํธ + ์ต์ข
๋ณด๊ณ ์)
์ปจํ
์คํธ ๊ณผ๋ฐ ์ ์์ถ ๋๋น ์ฒดํฌํฌ์ธํธ(์ปจํ
์คํธ ๊ด๋ฆฌ ๊ท์น 4), Halt ๋ณด๊ณ , ๊ทธ๋ฆฌ๊ณ Phase F ํต๊ณผ ์ต์ข
๋ณด๊ณ ์ plan.md์ ## Next Steps์ ๋ค์์ ๊ธฐ๋ก:
## Next Steps
- ๊ถ์ฅ ๋ค์ ์ก์
: <๋ช
ํํ ํ ์ค> (์: T7๋ถํฐ implement-task ์ฌ๊ฐ / PR ์์ฑ ํ /code-review ํธ์ถ)
- Suggested skills: <์ผํ ๊ตฌ๋ถ> (์: pjc:implement-task, ๊ณต์ /code-review, ๊ณต์ /security-review)
- ์ํค ๊ฐฑ์ (llm-wiki ์ฌ์ฉ ์ค์ด๊ณ ์ด ํ๋ก์ ํธ๊ฐ ๋ฑ๋ก๋ผ ์์ ๋๋ง): ์ํค ๋ฐ์ ์ฌ๋ถ๋ F-6.5์์ **๋ฅ๋์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฌป๋๋ค**(์ฌ๊ธฐ Next Steps์ ๋ฌป์ด๋๋ ๊ฒ์ผ๋ก ๋์ฒดํ์ง ์์). ๋์ ์ `pjc:llm-wiki` ์ ์ฐจ B๋ฅผ ๋ณ๋ ์ธ์
์์ ์งํ (๊ตฌํ ์ธ์
์ ์ํค ์ง์ ์์ ์ ํจ). **์ฌ์ฉ์๊ฐ ๋ฏธ๋ฃจ๋ฉด ๊ทธ ์ฌ์ค์ `[K-DRIFT]` ํ์ 1์ค ๋จ๊ธด๋ค**(F-6.5 โ ๋ฌป๊ณ ๋๋ด๋ฉด ๋ฏธ๋ฐ์์ด ๋ํ์ ํจ๊ป ์ฌ๋ผ์ ธ ์ํค๊ฐ ์กฐ์ฉํ ๋ค์ฒ์ง๋ค).
๋ชฉ์ : โ ์์ถ ์งํ์ Claude ์์ ์ด plan.md๋ง ์ฝ๊ณ ์ ํํ ์ฌ๊ฐํ ์ ์๊ฒ ํจ (์์ถ ์์กด์ ํต์ฌ), โก Haltยท์๋ฃ ์ ์ข
์ฒ ๋์ด plan.md๋ง ๋ณด๊ณ ๋ ๋ฌด์์ ํธ์ถํ ์ง ์ฆ์ ์ ์ ์๊ฒ ํจ. handoff ํจํด ์ฐจ์ฉ.
๐ซ ๊ธ์ง ํํ
- "T2 ์งํํ ๊น์?"
- "๋ค์ ์์
์ผ๋ก ๋์ด๊ฐ๋ ๋ ๊น์?"
- "์ด๋๋ก ์งํํด๋ ๊ด์ฐฎ์๊น์?"
- "T1 ์๋ฃ. ๊ณ์ํ ๊น์?"
- "ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค."
- "Phase 2 ์งํํ ๊น์?" / "๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊น์?" / "2๋จ๊ณ ์์ํ ๊น์?" / "Step 2 ์งํํ ๊น์?"
โ ๋์ "โ
T1 ์๋ฃ (1/10) โ T2 ์์" ํ ์ฆ์ T2 ์งํ.
Phase F โ Finalize (๋ชจ๋ task ์๋ฃ ํ)
์ ์ฒด plan ํตํฉ ๊ฒ์ฆ. ์ง์
์กฐ๊ฑดํ(1 task+Type A=์๋ต / 1 task+Type B=F-1ยทF-2ยทF-6๋ง / 2+ tasks ๋๋ Type C/D ํฌํจ=์ ์ฒด F-1F-7)์ F-1F-7 ์์ธ๋ ๋ชจ๋ references/phase-f-detail.md์ ์ผ์ํ.
- ๋จ, F-6.5(notes ๊ธฐ๋ก + ์ค๋๋ ํญ๋ชฉ ์์นด์ด๋ธ ์ด๋)๋ Phase F๊ฐ ์๋ตยท์ถ์๋ผ๋ ์ฝ๋ ๋ณ๊ฒฝ์ด ์์์ผ๋ฉด ํญ์ ์ํํ๋ค(๋น๋ ์ํฅ ์๋ trivial ๋จ์ผ ์์ ์ ๊ณตํต ์ง์นจ์ ๋ฌธ์ ๊ฐฑ์ ์๋ต ์กฐ๊ฑด์ ๋ฐ๋ฆ) โ ๋๋ฝ ๋น๋ฐ ์ง์ ์ด๋ผ ๋ณธ๋ฌธ์ ๋จ๊ธด๋ค.
- ๊ตฌํ ์ค ์๋ก ์๊ธด plan
## Deferred / Follow-up(๋ณด๋ฅ)ยท## Out of Scope(๊ธฐ๊ฐ) ํญ๋ชฉ์ pjc:llm-wiki ์ ์ฐจ K 5-2์ [DECISION] ํ์ 1์ค์ฉ ๊ธฐ๋กํ๋ค(vault ์์ผ๋ฉด ๊ทธ ๊ท์ฝ์ ํด๋ฐฑ) โ ๊ณํ ์์ ์ ํ์๋ ๊ฒฐ์ ๊ณผ ์ค๋ณต์ด๋ฉด ์๋ต. ๊ฐ์ ์์ ์ ๊ตฌํ ์ค ํ์ธ๋ ์์
๊ท์ฝยทํจ์ ์ฌ์ค(๋ ํฌ์ ์ ๋ด๋ ํฌ๋ก์ค ์ธ์
์ง์)์ [PROJECT-FACT] ํ์ ๊ธฐ๋กํ๋ค(ํ์ยท์
๋๋ ์ ์ฐจ K 5-3 ์ ๋ณธ โ ๋ฐฐ์น ํธ๋ฆฌ๊ฑฐ โก implement-task ์ข
๋ฃ).
- F-7์
plan-completion-reviewer subagent (Opus) ํธ์ถ โ plan ์ ์ฒด ์ ๋์ ๊ฒํ .
- Phase Ledger ๊ฐฑ์ : Phase F๋ฅผ ํต๊ณผํ๋ฉด plan.md
## Phase Ledger์ Phase F ํต๊ณผ (HEAD <sha>)๋ฅผ ๊ธฐ๋กํ๋ค โ ์ดํ Phase G ์ฌ๋ฃจํ ์ค ์์ถยท์ฌ๊ฐ๊ฐ ๋ฐ์ํด๋ Phase F(F-7 Opus)๋ฅผ ์ค๋ณต ์ฌ์คํํ์ง ์๊ธฐ ์ํ ๋ง์ปค๋ค('์ฌ๊ฐ ์ง์
'์ Phase Ledger ํ์ ๊ท์น ์ฐธ์กฐ). PRD ์ฐ๊ฒฐ plan์ Phase G๊น์ง ํต๊ณผํ๋ฉด ์ถ๊ฐ๋ก Phase G ํต๊ณผ (Must 100%)๋ฅผ ๊ธฐ๋กํ๋ค(phase-g-detail G-4 โ ์ ์ธ์
plan-feature Step 0.2๊ฐ ์๋ฃ๋ฅผ ํ์ ํ๋ ์ ํธ).
Phase G โ ์๊ตฌ ์ฌ๊ฒ์ฆ (PRD ์์ ๋๋ง)
์ง์
์กฐ๊ฑด: plan.md ์๋จ์ **PRD**: <๊ฒฝ๋ก> ์ค์ด ์์ ๋๋ง ์ง์
ํ๋ค โ ์ด ์ค์ด ๋จ์ผ ์ ํธ๋ค. ์ค์ด ์์ผ๋ฉด ๋ ํฌ์ PRD ํ์ผ(docs/prd.md ๋ฑ)์ด ์์ด๋ ์ง์
ํ์ง ์๋๋ค(๋ฌด๊ดํ ๊ณผ๊ฑฐ PRD๋ฅผ ์๊ธฐ ์์
PRD๋ก ์ค์ธํด ๊ฑฐ์ง ๋ฏธ์ถฉ์กฑ์ ๋ณด๊ณ ํ๋ ๊ฒ ๋ฐฉ์ง โ ๊ทธ ๊ฒฝ์ฐ Phase F๊ฐ ์ต์ข
).
Phase F๋ "plan.md์ ์ ํ ๊ฒ"์ ๊ฒ์ฆํ๋ค. Phase G๋ ํ ๋จ๊ณ ์ โ "plan.md๊ฐ PRD ์๊ตฌ๋ฅผ ๋น ๋จ๋ฆฌ์ง ์์๋๊ฐ" ๋ฅผ ๊ฒ์ฆํ๋ค. ์ง์
์ references/phase-g-detail.md๋ฅผ ์ฝ๊ณ ๊ทธ ์ ์ฐจ(G-1~G-4)๋ฅผ ๊ทธ๋๋ก ์ํํ๋ค. ๋ฃจํ ์ ์ด ํต์ฌ ์์ฝ:
- G-1. PRD ์ ์ ๋์กฐ โ F-7 reviewer์ ๋์กฐ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฌ์ฉํ๋ค(๋์ผ ๋์กฐ๋ฅผ ๋ฐ๋ณตํ์ง ์์, ๋ณด์ ๋์กฐ ์์ธ 3๊ฐ์ง๋ ์์ธ ์ฐธ์กฐ). REMOVED FR์ ๋์ ์ ์ธ. ๊ธฐ๊ณ ๊ฒ์ฆ ๋ถ๊ฐ ํญ๋ชฉ์ โ
๊ฐ ์๋๋ผ โณ HUMAN-VERIFY๋ก ํ๊ธฐํ๋ค(โ
๋๊ฐ์ V-8 ์๊ธฐ๊ธฐ๋ง ํจํด๊ณผ ๋์ผ ์๋ฐ).
- G-2. ๊ฐญ ์ฒ๋ฆฌ (์์จ ์ฌ๋ฃจํ) โ Must ๋ฏธ์ถฉ์กฑ์ ์ task ์ถ๊ฐ ํ Phase P๋ถํฐ ์์จ ์ฌ์ง์
(์ฌ์ฉ์ ํ์ธ ๋ถํ์), Should๋ ์ฌ์ฉ์ ์ ํ, Could๋ follow-up๋ง. ์๊ตฌ ์์ฒด๋ฅผ ๋ฐ๊ฟ์ผ ํ๋ฉด ์์ ๋ณ๊ฒฝ ๊ธ์ง โ ์ฌ์ฉ์ ์น์ธ โ PRD ๊ฐฑ์ โ plan ์กฐ์ ์์.
- G-3. ์ข
๋ฃ ์กฐ๊ฑด โ ์ฌ๋ฃจํ ์ต๋ 2ํ. ๊ฐ์ FR 2ํ ์ฐ์ ๋ฏธ์ถฉ์กฑ์ด๋ฉด ์ฆ์ Halt. ํ๋ ๋๋ฌ ์ ์์ธ์ ์๋ฌด ๋ณด๊ณ ํ์์ผ๋ก Haltํ๊ณ ์ง์๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค(๊ทธ๋ฅ ์๋ฃ ์ ์ธ ๊ธ์ง).
- G-4. ์ต์ข
๋ณด๊ณ ์ G-1 ์ถฉ์กฑํ ์ ์ฒด + Must ์ถฉ์กฑ๋ฅ 100%๋ฅผ ๋ช
์ํ๋ค.
์ต์ข
๋ณด๊ณ (Phase F ํต๊ณผ ํ โ PRD ์์ผ๋ฉด Phase G๊น์ง ํต๊ณผ ํ)
๊ถํ ๊ฒฝ๊ณ (ํ๋
). ์ต์ข
๋ณด๊ณ = ๋ฃจํ์ ์ข
์ฐฉ์ ์ด์ ์ฒซ ์ฌ์ฉ์ ๊ฐ์
์ง์ . ์ฌ๊ธฐ์ ๋ฉ์ถ๋ค. pushยทmain ๋ณํฉยทํ๊ทธยท๋ฆด๋ฆฌ์ฆยทPR์ ๋ฃจํ ๊ถํ ๋ฐ์ด๋ผ, ์ฌ์ฉ์๊ฐ ๊ทธ ํ์๋ฅผ ๋ช
์ ์น์ธํ๊ธฐ ์ ์๋ ํ์ง ์๋๋ค. '์งํ'ยท'์น์ธ' ๊ฐ์ ๋ต์ด๋ผ๋ ์ง์ ์ง๋ฌธ์ด '๊ตฌํ'์ ๊ดํ ๊ฒ์ด์๋ค๋ฉด ๊ทธ ๋ฒ์๋ ๊ตฌํ์ด๋ฉฐ push/๋ฆด๋ฆฌ์ฆ ์น์ธ์ด ์๋๋ค โ ์ธ๋ถ ์์
์ ๋ณ๋๋ก, ํ์๋ฅผ ์ด๋ฆ์ผ๋ก ์ ์ด ๋ค์ ๋ฌป๋๋ค(์: "์ด์ origin/main์ pushํ๊ณ v1.x.x ๋ฆด๋ฆฌ์ฆ๋ฅผ ๋ฐํํ ๊น์?"). ๊ตฌํ ์น์ธ ์ง๋ฌธ์ ์ด ์์
๋ค์ ๋ฌถ์ง ์๋๋ค. (์ ๋ ๊ท์น 12)
์ต์ข
๋ณด๊ณ ๋ references/final-report-template.md์ ์์์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค โ Tasks ์๋ฃ ์ยท๋ณ๊ฒฝ ์์ฝยทPhase F/G ๊ฒฐ๊ณผ(G-1 ์ถฉ์กฑํ ํฌํจ)ยทPlan ๋ณ๊ฒฝ ๋ด์ญ(๊ตฌํ ์ค plan.md์ ๊ฐํด์ง ์์ โ ์ถ๊ฐ taskยทFiles ์ถ๊ฐยท์ ๊ท Deferred/Decisionsยท์ฒดํฌ๋ฐ์ค ํ์ธ; ์์ผ๋ฉด "๊ณํ ์์๋๋ก ์๋ฃ" 1์ค)ยท์คํ ํต๊ณยทfollow-upยท๋ถํ plan ์๋ด, ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ "์ฌ๊ธฐ์ ๋ฉ์ถฅ๋๋ค"(์ธ๋ถ ์์
์ ๊ฐ๊ฐ ๋ณ๋ ์น์ธ) ๊ณ ์ง๊น์ง ํฌํจํด ๋ณด๊ณ ํ๋ค.
์ฐธ์กฐ ๋ฌธ์
- ์ค๋จ ์กฐ๊ฑด + ๋ณด๊ณ ์์:
references/halt-conditions.md
- ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ + Reviewer ๊ณผ๋ถํ(529) ๋งคํธ๋ฆญ์ค:
references/recovery.md
- ์ํฐํจํด ํ:
references/antipatterns.md
- ์ ๋น๋ ์์ธ(๋น๋/ํ
์คํธ fallback ํ ยท UI ๋ฌธ๊ตฌ ยท ๊ฒ์ฆ ์คํฌ๋ฆฝํธ Windows ๋ณด์):
references/authoring-detail.md
- Phase F ์์ธ:
references/phase-f-detail.md
- Phase G ์์ธ:
references/phase-g-detail.md
- Phase V-9 ์์ธ:
references/phase-v9-detail.md
- ์ต์ข
๋ณด๊ณ ์์:
references/final-report-template.md