[๐ ] AI Orchestration #5: ํฌ๊ธฐํ๋ ์ฝ๋๋ค์ดํฐยท์์ปค ๋ถ๋ฆฌ๋ฅผ ๋ค์ ์ค๊ณํ๋ค
โจ GPT-5.6 Sol์ ์์ฝ ใ
์ ๋ฌ๋ฌธ ๋๋ฌธ์ ์ฝ๋๋ค์ดํฐ๊ฐ ๋งฅ๋ฝ์ ์์ ๋ถ์ ์์ฒด๋ฅผ ํฌ๊ธฐํ์ง๋ง, ๋จ์ผ ์ธ์ ์ ๋ณ๋ชฉ์ ๊ฒช๊ณ ๋์ ํ์ผ ๋ณด๊ณ ์์ ์ฝ๋๋ค์ดํฐ ๋จ๋ commit ๊ตฌ์กฐ๋ก ๋ค์ ์ค๊ณํ ๊ธฐ๋ก.
์ฝ๋๋ค์ดํฐ์ ์์ปค๋ฅผ ๋๋๋ ์ผ์ ํ ๋ฒ ํฌ๊ธฐํ๋ค
์ง๋๋ฌ์๋ ์ฝ๋๋ค์ดํฐ์ ์์ปค๋ฅผ ์ค์ ๋ก ์ฐ๊ฒฐํด๋ดค๋ค. ํ๋์ ๋ชฉํ๋ฅผ ์ฌ๋ฌ ์์ ์ผ๋ก ๋๋๊ณ , ์์ปค๊ฐ ๊ตฌํํ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋๋ค์ดํฐ๊ฐ ๊ฒํ ํด์ ํฉ์น๋ ํ๋ฆ์ด์๋ค.
๋ถ์ ์์ฒด๋ ๋นจ๋๋ค. ์๋ก ๊ฒน์น์ง ์๋ ๊ธฐ๋ฅ์ ๋์์ ๊ตฌํํ๊ณ , ์ฝ๋๋ค์ดํฐ๋ ์ ์ฒด ์ ํ์ ๋ฐฉํฅ๊ณผ ํตํฉ๋ง ๋งก์ ์ ์์๋ค. ๋ฌธ์ ๋ ์์ปค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์์ด์๋ค.
์์ปค๋ค์ ์์ ์ ๋ง์น๊ฑฐ๋ ๋งํ ๋๋ง๋ค ์ฝ๋๋ค์ดํฐ ์ธ์ ์ ์ ๋ฌ๋ฌธ์ ๋ณด๋๋ค. ์ฒ์์๋ ์์ฐ์ค๋ฌ์ด ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ์์ปค ์๊ฐ ๋์ ์ฝ๋๋ค์ดํฐ ๋ํ์๋ ๋ณด๊ณ ๊ฐ ๊ณ์ ์์๊ณ , ๋ฉ์์ง๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค ํ๋ ์ผ์ ๋ฉ์ถ๊ณ ๋ค๋ฅธ ์์ ์ผ๋ก ๋์ด๊ฐ๋ค.
ํ ์์ปค์ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ค๊ฐ ๋ค๋ฅธ ์์ปค์ Git index ์ถฉ๋์ ํ์ธํ๊ณ , ๋ค์ ์๋ ๊ตฌํ์ผ๋ก ๋์์ค๋ ค๋ ์๊ฐ ๋ ๋ค๋ฅธ ์๋ฃ ๋ณด๊ณ ๊ฐ ๋์ฐฉํ๋ค. ๋ํ๋ ๋น ๋ฅด๊ฒ ๊ธธ์ด์ก๊ณ , ์์ถ์ด ๋ฐ๋ณต๋ ์๋ก ๋ชฉํ์ ๋ฐฐํฌ ๊ธ์ง ์กฐ๊ฑด, ํ์ฌ stage ์ํ๋ฅผ ๋ค์ ๋ณต์ํ๋ ์๊ฐ์ด ๋์ด๋ฌ๋ค. ์ด๋ ์๊ฐ์๋ ์ฝ๋๋ค์ดํฐ๊ฐ ํตํฉ์๋ณด๋ค ์์ปค ์ ๋ฌ๋ฌธ์ ์ฒ๋ฆฌํ๋ ์ฐฝ๊ตฌ์ ๊ฐ๊น์์ก๋ค.
๊ฒฐ๊ตญ ๋๋ ์ฝ๋๋ค์ดํฐ์ ์์ปค ์ธ์ ์ ๋๋๋ ๋ฐฉ์ ์์ฒด๋ฅผ ํฌ๊ธฐํ๋ค. ๋ง๋ค์ด๋๋ coordination Skill๋ ์ถฉ๋์ ์ผ๋ก ์ญ์ ํ๋ค. ์ฌ๋ฌ ์ธ์ ์ ๊ด๋ฆฌํ์ง ์๊ณ ํ๋์ ๋ฉ์ธ ์ธ์ ์์ ์ ๋ถ ์ฒ๋ฆฌํ๋ฉด ์ ์ด๋ ๋งฅ๋ฝ์ด ์ฌ๊ธฐ์ ๊ธฐ ๋๋ ค๋ค๋์ง๋ ์์ ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค.
๋จ์ผ ์ธ์ ์ผ๋ก ๋์๊ฐ๋ ๋ถ์ ์ด ์ ํ์ํ๋์ง ๋ณด์๋ค
๊ทธ๋ฐ๋ฐ ํ๋์ ์ธ์ ์์ ํฐ ์ ํ ์์ ์ ๊ณ์ํ์ ๋ฐ๋์ชฝ ๋ณ๋ชฉ์ด ๋ฐ๋ก ๋๋ฌ๋ฌ๋ค.
๊ตฌํ, ํ ์คํธ, ๋ฌธ์ ์ ํฉํ, ์ค๊ธฐ๊ธฐ ํ์ธ, Runtime ์ค๋น๋ฅผ ๋ชจ๋ ํ ์ธ์ ์ด ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค. ์ค๊ฐ์ ์ฐ์ ์์ ์ง๋ฌธ์ด๋ ๋ค๋ฅธ ์ธ์ ์ ์ธ๊ณ๊ฐ ๋ค์ด์ค๋ฉด ์งํ ์ค์ธ ์์ ์ ์ํ๋ถํฐ ๋ค์ ํ์ธํด์ผ ํ๋ค. ํ๋๋ฅผ ํ์คํ ๋๋ด๋ ค๋ค ๋ณด๋ ์ ์ฒด ์งํ์ ๊ธธ์ด์ก๊ณ , ๊ธํ ์ผ์ ๋จผ์ ๋ณด๋ ค ํ๋ฉด ๊ธฐ์กด ์์ ์ ์ด๋๊น์ง ๋ง๋ฌด๋ฆฌํด์ผ ํ๋์ง๋ถํฐ ๋ค์ ํ๋จํด์ผ ํ๋ค.
๋ฌธ์ ๋ ๋ถ์ ์ด ์๋์๋ค. ์คํ๋ ค ์๋ก ๋ ๋ฆฝ์ ์ธ ์์ ๊น์ง ํ ์ธ์ ์ด ๋ถ๋ค๊ณ ์๋ ์ชฝ์ด ๋นํจ์จ์ ์ด์๋ค. ์ฝ๋๋ค์ดํฐ์ ์์ปค๋ฅผ ๋๋๋ ๊ฒ์ด ์ฌ์ ํ ๊ฐ์ฅ ํจ์จ์ ์ด์๋ค. ๋ค๋ง ์์ปค๊ฐ ์ฝ๋๋ค์ดํฐ์ ํ์ฌ ๋ํ์ ์ง์ ๋ค์ด์ค๋ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ๋์ด๋ฆฌ๋ฉด ๊ฐ์ ์คํจ๋ฅผ ๋ฐ๋ณตํ ๋ฟ์ด์๋ค.
๊ทธ๋์ ์ด๋ฒ์๋ ๋ถ์ ์ ํฌ๊ธฐํ๋ ๋์ , ์ฝ๋๋ค์ดํฐ์ ๋งฅ๋ฝ์ ๋๋ ์ ๋ฌ ๊ฒฝ๋ก๋ฅผ ์์ ๊ธฐ๋ก ํ๋ค.
ํ ์ค ์๋ฆผ๋ ๊ฒฐ๊ตญ ๊ฐ์ ๋ฌธ์ ์ด์๋ค
๋จผ์ ์์ปค๊ฐ ๊ธด ์ ๋ฌ๋ฌธ ๋์ ์ด๋ฐ ๋ฉ์์ง๋ง ๋ณด๋ด๋ฉด ๋์ง ์์๊น ์๊ฐํ๋ค.
READY task-042: ๋ณด๊ณ ์ ๊ฒฝ๋ก
ํ์ง๋ง ๋ค์ ์๊ฐํด๋ณด๋ ๊ธธ์ด๊ฐ ๋ฌธ์ ๊ฐ ์๋์๋ค. ๋ฉ์์ง๊ฐ ์ฝ๋๋ค์ดํฐ ๋ํ์ ๋ค์ด์ค๋ ์๊ฐ, Codex๋ ๊ทธ๊ฒ์ ํ์ฌ ์์ ๋ณด๋ค ์๋กญ๊ฒ ๋ค์ด์จ ๋งฅ๋ฝ์ผ๋ก ๋ฐ์๋ค์ด๊ธฐ ์ฌ์ ๋ค. ํ ์ค์ด์ด๋ ์์ ์ ๋ฐ๊พธ๋ ์ ๊ตฌ๋ ๊ทธ๋๋ก์๋ค.
๊ทธ๋์ ์์ปค๊ฐ ์ฝ๋๋ค์ดํฐ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์๊ฒ ํ๊ธฐ๋ก ํ๋ค. ์๋ฃ, ์ฐจ๋จ, ์คํจ ์ํ๋ ๋ชจ๋ ๋ณด๊ณ ์ ํ์ผ๋ก๋ง ๋จ๊ธด๋ค. ์ฝ๋๋ค์ดํฐ๋ ์๊ธฐ ์์ ์ ์์ ํ checkpoint๋ commit๊น์ง ๋๋ธ ๋ค์๋ง inbox๋ฅผ ํ์ธํ๋ค.
๋ณด๊ณ ์๊ฐ ๋์ฐฉํ๋ค๋ ์ฌ์ค์ ํ์ฌ ์์ ์ ๋์ ์ฌ๊ฑด์ด ์๋๋ค. ๋ค์ ๊ฒํ ๋๊ธฐ์ด์ ํ์ผ ํ๋๊ฐ ์ถ๊ฐ๋์ ๋ฟ์ด๋ค.
Worktree๋ ๊นจ๋ํ์ง๋ง ์ต์ ์ํ์์ ๋ฉ์ด์ก๋ค
๊ทธ๋ค์์๋ ์์ปค๋ง๋ค Worktree์ Branch๋ฅผ ๋ฐ๋ก ์ฃผ๋ ๋ฐฉ๋ฒ์ ๊ฒํ ํ๋ค. Git index์ ๋ฏธ์ปค๋ฐ ๋ณ๊ฒฝ์ด ์๋ก ์์ด์ง ์์ผ๋ ๊ฒ์ผ๋ก๋ ๊ฐ์ฅ ๊นจ๋ํ๋ค.
๊ทธ๋ฐ๋ฐ ์ค์ ํ๋ก์ ํธ์์๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์ปธ๋ค. ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ๊ฐ์ API, schema, ํ๋ฉด์ ๊ณ์ ๊ฑด๋๋ ธ๋ค. ๋จผ์ ๋๋ ์ธ์ ์ ๊ฐ์ ์ด ๋ค๋ฅธ Worktree์๋ ๋ฐ๋ก ๋ณด์ด์ง ์์๋ค. ๊ฐ์ ๊น๋ํ๊ฒ ์์ ํ๋๋ฐ ๋ง์ ํฉ์น๋ ค๊ณ ๋ณด๋ ์ค๋๋ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง๋ ์์ ์ด ์์ฌ ์์๋ค. ๊ทธ๋๋ถํฐ ์์ ํ ์์๋ง ๋๋ฝ๊ฒ ๋ง์์ก๋ค.
๊ทธ๋์ ์ด๋ฒ์๋ ๋ฐ๋๋ก ์ ํ๋ค.
ํ๋์ main Working Tree
โโ ์ฌ๋ฌ ์์ปค๊ฐ ์ต์ ๋ณ๊ฒฝ์ ํจ๊ป ๋ด
โโ ์์ปค๋ ๋ฐฐ์ ๋ ํ์ผ๊ณผ hunk๋ง ์์
โโ ์์ปค๋ stage์ commit์ ํ์ง ์์
โโ ์ฝ๋๋ค์ดํฐ๋ง ๊ฒํ ยทstageยทcommit
๋ฌผ๋ก ๊ณต์ Working Tree๋ ์๋ฌด ์ ํ ์์ด ์ฐ๋ฉด ๋ฐ๋ก ์ํจ๋ค. ๊ทธ๋์ ํ ํ์ผ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ช ์ writer๋ง ๋๊ณ , ๊ฐ์ ํ์ผ์ ๋ณ๋ ฌ๋ก ๋ง์ง ๋๋ hunk๊ฐ ํ์คํ ๋จ์ด์ง ๊ฒฝ์ฐ๋ง ํ์ฉํ๋ค. ๊ณตํต schema, import ์ ๋ฆฌ, formatter์ฒ๋ผ ์ฃผ๋ณ๊น์ง ์์ง์ด๋ ์์ ์ ์ง๋ ฌํํ๋ค.
์์ปค๊ฐ ์คํํ ํ ์คํธ๋ ๊ทธ๋๋ก ์ต์ข ์ฆ๊ฑฐ๋ก ๋ฏฟ์ง ์๋๋ค. ๊ทธ ํ ์คํธ๋ ๋ค๋ฅธ ์์ปค์ ๋ฏธ์ปค๋ฐ ๋ณ๊ฒฝ์ด ํจ๊ป ์๋ ์ํ์์ ๋์์ ์ ์๋ค. ์์ปค๋ ์๊ธฐ ๋ฒ์์ ๊ฒ์ฌ๋ฅผ ํ๊ณ , ์ ์ฒด ํ๊ท์ build๋ ์ฝ๋๋ค์ดํฐ๊ฐ ๋ณ๊ฒฝ ์งํฉ์ ์ผ๋ฆฐ ๋ค ํ ๋ฒ ์ํํ๋ค.
๋ณด๊ณ ์๋ ๋ํ๋ฅผ ๋์ ํ๋ ๊ฒํ ๊ณ์ฝ์ด ๋๋ค
์ญ์ ํ๋ coordination Skill๋ ์ด ์์น์ผ๋ก ๋ค์ ๋ง๋ค์๋ค. ์ custom-coordinate-parallel-workers Skill์๋ ์ด ํ๋ฆ์ ๋ฃ์๋ค.
์ฝ๋๋ค์ดํฐ๊ฐ task id, ์ฌ์ฉ์ ๊ฒฐ๊ณผ, ์ฐ๊ธฐ ๊ฐ๋ฅํ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ ํ๋ค. ์์ปค๋ ๊ตฌํ๊ณผ ๋ฒ์ ๊ฒ์ฆ, ์์ ํ๋ก์ธ์ค ์ ๋ฆฌ๊น์ง ๋ง์น ๋ค ๋ณด๊ณ ์๋ฅผ ์์์ ์ผ๋ก ์์ฑํ๊ณ ๋ฉ์ถ๋ค. ๋ณด๊ณ ์์๋ ์ค์ ๋ณ๊ฒฝ ํ์ผ, ๊ฒ์ฌ ๊ฒฐ๊ณผ, ๋ค๋ฅธ ์์ ๊ณผ์ ๊ฒน์นจ, ๋ฏธ์๋ฃ ๋ฒ์์ ์ ์ commit์ ์ ๋๋ค.
์ฝ๋๋ค์ดํฐ๋ ์ ์ฒด ๋ํ๋ฅผ ๋ค์ ์ฝ์ง ์๋๋ค. inbox์์ task id, ์ํ, ์ ๋ชฉ, ๊ฒ์ฌ ์์ฝ๋ง ๋จผ์ ๋ณด๊ณ ๋ค์์ ํฉ์น ์์ ํ๋๋ฅผ ๊ณ ๋ฅธ๋ค. ๊ทธ ๋ณด๊ณ ์์ ์ค์ diff๊ฐ ๋ง๋์ง ํ์ธํ ๋ค ์ ํํ hunk๋ง stageํ๊ณ commitํ๋ค.
์ ์ฒด ๋ฐฐํฌ ํ๋ณด๊ฐ ์ ํด์ง๋ฉด ์์ปค mutation์ ๋ง๋ freeze๋ ๋๋ค. ๋ณ๊ฒฝ์ด ๊ณ์ ๋ค์ด์ค๋ ๋์ ์ ์ฒด ํ ์คํธ๋ฅผ ๋ฐ๋ณตํ์ง ์๊ณ , release์ ๋ค์ด๊ฐ ์์ ์ด ๋ฉ์ถ ๋ค current-state ๋ฌธ์, ์ ์ฒด ํ๊ท, build, ๋ฐฐํฌ ๊ฒ์ฆ์ ์ด์ด๊ฐ๋ค.
๋ณด๊ณ ์๊ฐ ๋จ์ํ ์์ ์ผ์ง๊ฐ ์๋๋ผ, ์ฝ๋๋ค์ดํฐ๊ฐ ๊ทธ ๋ณ๊ฒฝ์ ๋ฏฟ๊ณ ๋ค์ ์ํ๋ก ๋๊ธธ ์ ์๋ ๊ฒํ ๊ณ์ฝ์ด ๋ ์ ์ด๋ค.
์ด์ ์ค์ ์์ ์์ ๊ตด๋ ค๋ด์ผ ํ๋ค
Skill์ ์ํ ๊ด๋ฆฌ ๋๊ตฌ๋ ๊ฒฉ๋ฆฌ๋ ์์ ํ๊ฒฝ์์ ๋๋ ค๋ดค๋ค. ์ ์ ์๋ฃ๋ฟ ์๋๋ผ ์ฐ๊ธฐ ๊ฒฝ๋ก ์ถฉ๋, ๋ณ๊ฒฝ ์์ฒญ ๋ค ์ฌ์์ , ์คํ ์ค freeze ๊ฑฐ๋ถ, ๋ค์ ๋ฐฐ์น๋ก ๋ณด๋ฅํ๋ ํ๋ฆ๊น์ง๋ ํต๊ณผํ๋ค.
ํ์ง๋ง ์์ง ์ค์ ์ฌ๋ฌ Codex session์ ์ด ๋ฐฉ์์ผ๋ก ์ด์ํ ๊ฒ์ ์๋๋ค. ํ์ผ๋ก๋ง ๋ณด๊ณ ํ๊ฒ ํ์ ๋ ์ ๋ง ์ฝ๋๋ค์ดํฐ์ ์ปจํ ์คํธ๊ฐ ๋ ํ๋ค๋ฆฌ๋์ง, ๊ณต์ Working Tree์ ๊ฒฝ๋ก ์์ ๊ถ์ด ์๊ฐ๋งํผ ์ ์ง์ผ์ง๋์ง๋ ๋ค์ ๋ณ๋ ฌ ์์ ์์ ์ง์ ๋ด์ผ ํ๋ค.
์ด๋ฒ์ ๋๋์์จ ๊ฒฐ๋ก ์ ์ฒ์๊ณผ ๋น์ทํ์ง๋ง ์ด์ ๋ ๋ ๋ถ๋ช ํด์ก๋ค. ์ฝ๋๋ค์ดํฐ์ ์์ปค์ ๋ถ๋ฆฌ๋ ํ์ํ๋ค. ์คํจํ๋ ๊ฒ์ ๋ถ์ ์ด ์๋๋ผ, ๋ชจ๋ ์์ปค ๋ณด๊ณ ๋ฅผ ์ฝ๋๋ค์ดํฐ์ ํ์ฌ ๋ํ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ด ๋ฃ์ ๋ฐฉ์์ด์๋ค.
์ง๊ธ ๊ธฐ๋ํ๋ ๋ณํ๋ ์์ปค๋ฅผ ๋ ๋ง์ด ๋์ฐ๋ ๊ฒ์ด ์๋๋ค. ์ฝ๋๋ค์ดํฐ๊ฐ ์๊ธฐ ์ผ์ ๋๋ผ ๋๊น์ง ์๊ธฐ ๋งฅ๋ฝ์ ์งํค๋ ๊ฒ์ด๋ค. ๋ณ๋ ฌ ์์ ์ ์๋๋ ์์ปค ์๋ณด๋ค, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ์ฌ๋์ด ์ผ๋ง๋ ๋ ๋๋ ค๋ค๋๋๋์ ๋ฌ๋ ค ์์๋ค.
๋๊ธ ๋จ๊ธฐ๊ธฐ