[๐ ] Operations Automation #4: ๋ฌธ์๋ฅผ ๋ ๊ณ ์น๋ฉด์ stale ์ํ๋ฅผ ๋ง๋ ๊ตฌ์กฐ
โจ GPT-5.6 Sol์ ์์ฝ ใ
์ํ ๋ณ๊ฒฝ์ ์ฌ๋ฌ ๋ฌธ์์ ๋ณต์ฌํ๋ ๋ฐฉ์์ ๋ฒ๋ฆฌ๊ณ , ๋ณ๋ ์ํ์ ๋จ์ผ owner์ ์กฐ๊ฑด๋ถ downstream, phase checkpoint๋ก ๋ฌธ์ ์ต์ ํ ํ๋ฆ์ ๋ค์ ์ ๋ฆฌํ ๊ธฐ๋ก.
์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ต์ ํํ ์๋ก ํ์ฌ ์ํ๊ฐ ๊ฐ๋ผ์ก๋ค
๊ธด ์์ ์ด ์์ถ๋๊ฑฐ๋ ๋ค๋ฅธ ์ธ์ ์ผ๋ก ๋์ด๊ฐ ๋ค, ์์ ๋ฌธ์์ ์ ํ ๋ค์ ์์ ์ ํ์ฌ ์ํ๋ก ์ฐฉ๊ฐํ๋ ์ผ์ด ์์๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ง์ผ๋ ค๊ณ ํ๋์ ์ํ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๊ด๋ จ ์์ด ๋ณด์ด๋ ๋ฌธ์๋ฅผ ์ ๋ถ ๊ณ ์ณค๋ค.
README, ๋ฌธ์ router, ์๊ตฌ์ฌํญ, ํ์ฌ ๋ฐฉํฅ, Runbook, TODO์ ๊ฐ์ ์๋ฃ ์ฌ์ค๊ณผ ๋ค์ ์์
์ ๋ฐ๋ณตํด์ ์ ์๋ค. ๋น ๋จ๋ฆฐ ๋ฌธ์๊ฐ ์์ผ๋ฉด ์์ ํ ๊ฒ ๊ฐ์๋ค.
ํ์ง๋ง ์ํ ๋ณ๊ฒฝ ํ๋๋ฅผ ์ฌ์ฏ ๊ตฐ๋ฐ์ ์ฐ๋ ์๊ฐ๋ถํฐ ์ฌ์ฏ ๊ตฐ๋ฐ๋ฅผ ๊ณ์ ๋๊ฐ์ด ์ ์งํด์ผ ํ๋ค. ์ด๋ค ๋ฌธ์๋ ๋ฐฐํฌ ์ ์ํ์ ๋จธ๋ฌผ๊ณ , ๋ค๋ฅธ ๋ฌธ์๋ ์ค๊ธฐ๊ธฐ ๊ฒ์ฆ๊น์ง ๋๋ฌ๋ค๊ณ ์ ์๋ค. ๋ฌธ์๋ฅผ ๋ง์ด ๊ฐฑ์ ํ ๊ฒ์ด stale ์ํ๋ฅผ ๋ง๊ธฐ๋์ปค๋ ์๋ก์ด stale ์ํ๋ฅผ ๋ง๋ค์๋ค.
์์ ๊ฒ์ฆ ํ๋๊ฐ ๋๋ ๋๋ง๋ค ๋ฌธ์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๊ณ ์น๊ณ commit๊น์ง ๋จ๊ธฐ๋ Git history๋ ์๊ฒ ์ชผ๊ฐ์ก๋ค. ๊ตฌํ์ด ์ด๋์ ๋๋ฌ๋์ง๋ณด๋ค ๋ฌธ๊ตฌ๋ฅผ ๋ช ๋ฒ ๋๊ธฐํํ๋์ง๊ฐ ๋ ์ ๋ณด์๋ค.
๋ณ๋ ์ํ๋ ํ ๋ฌธ์๋ง ์์ ํ๊ฒ ํ๋ค
๋ฌธ์ ์๊ฐ ๋ฌธ์ ๊ฐ ์๋๋ผ ๊ฐ์ ์ฌ์ค์ ์ฌ๋ฌ ๋ฌธ์๊ฐ ์์ ํ๋ ๊ฒ์ด ๋ฌธ์ ์๋ค. ๊ทธ๋์ ๋จผ์ ์ฌ์ค์ ์ข ๋ฅ๋ง๋ค owner๋ฅผ ํ๋๋ง ์ ํ๋ค.
| ๋ฐ๋ ์ฌ์ค | owner | ๋ค๋ฅธ ๋ฌธ์๋ฅผ ๊ณ ์น๋ ์กฐ๊ฑด |
|---|---|---|
| ํ์ฌ Runtime, blocker, phase, ๋ค์ ์์ | canonical current-state snapshot | ๋ค๋ฅธ ๋ฌธ์์ ๋ณต์ฌํ์ง ์๋๋ค |
| ์์ ๋ ์ ํ ๊ฒฐ์ , ๊ธ์งํ ์ฐํ, ํ์ฑ Goal | current-direction ๋ฌธ์ | ์ ํ ๊ฒฐ์ ์ด๋ Goal ์์ฒด๊ฐ ๋ฐ๋ ๋๋ง |
| ๋์, ๋ฐ์ดํฐ, ๊ถํ, acceptance | requirements ๋๋ contract | ์ฌ์ฉ์ยท์์คํ ๋์ ๊ณ์ฝ์ด ๋ฐ๋ ๋๋ง |
| ์ด์ ์ ์ฐจ, gate, rollback, recovery | Runbook | ์ด์์๊ฐ ๋ฐ๋ผ์ผ ํ ์ ์ฐจ๊ฐ ๋ฐ๋ ๋๋ง |
| ๋ฌธ์ ๊ด๊ณ, ์ ํ ๋จ๊ณ, ์คํ ์ง์ ์ | README ๋๋ router | ํ์ ๊ฒฝ๋ก๋ ์ ํ ๊ด๊ณ๊ฐ ๋ฐ๋ ๋๋ง |
| ์์ธ ๋ช ๋ น, ๋ก๊ทธ, ์์ปค ๊ฒ์ฆ | report, artifact, Git evidence | aggregate ๋ฌธ์์๋ ๊ฒฐ๋ก ๊ณผ ๊ทผ๊ฑฐ ๋งํฌ๋ง ๋จ๊ธด๋ค |
ํต์ฌ์ ๊ด๋ จ ์๋ค์ ์์ ํ๋ค๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. ๋ฐฐํฌ๊ฐ ๋๋ฌ๋ค๊ณ ์๊ตฌ์ฌํญ์ ๊ณ ์น ํ์๋ ์๋ค. ๋ฐฐํฌ ๊ณผ์ ์์ ์ด์ rollback ์ ์ฐจ๊ฐ ๋ฐ๋์๋ค๋ฉด Runbook์ ๊ณ ์น๊ณ , ๋์ ๊ณ์ฝ๊น์ง ๋ฌ๋ผ์ก๋ค๋ฉด ๊ทธ๋ requirements๋ฅผ ๊ณ ์น๋ค.
README์ router๋ ํ์ฌ revision, ๊ธฐ๊ธฐ ์ํ, ๋ค์ ์์ ์ ๋ฐ๋ผ๋ค๋์ง ์๋๋ค. ์ด ๋ฌธ์๋ค์ ์ด๋์์ ๋ฌด์์ ์ฝ๊ณ ์คํํด์ผ ํ๋์ง๋ง ์์ ์ ์ผ๋ก ๊ฐ๋ฆฌํจ๋ค.
์ฆ์ ๊ฐฑ์ ๊ณผ durable checkpoint๋ฅผ ๋ถ๋ฆฌํ๋ค
๋จ์ผ owner๋ผ๊ณ ํด์ ๋ฌธ์ ๊ฐฑ์ ์ phase ๋๊น์ง ๋ฏธ๋ฃจ์ง๋ ์๋๋ค. ์ ์ฆ๊ฑฐ๊ฐ ์๊ธฐ๊ฑฐ๋ Runtime ์ํ, blocker, ์ฐ์ ์์, ๋ค์ ์์ ์ด ๋ฌ๋ผ์ง๋ฉด canonical current-state snapshot์ ๋ค์ ๊ตฌํ ์ ์ ๋ฐ๋ก ๊ณ ์น๋ค. ๊ทธ๋์ผ ์ค๊ฐ์ ์์ถ๋๊ฑฐ๋ ์ธ๊ณ๋ผ๋ ๋ค์ ์ธ์ ์ด ํ๊ณณ์์ ์ค์ ์ํ๋ฅผ ๋ณต๊ตฌํ ์ ์๋ค.
๋ฐ๋๋ก commit์ ์ํ๊ฐ ํ ์ค ๋ฐ๋ ๋๋ง๋ค ๋ง๋ค์ง ์๋๋ค. ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒํ ํ๊ณ ๋ค์ ์์ํ ์ ์๋ ๊ฒฝ๊ณ์์๋ง current-state๋ฅผ ํ ๋ฒ ํ์ธํ๊ณ checkpoint๋ฅผ ๋ง๋ ๋ค.
- ๊ตฌํ์ด ๋๋ฌ์ ๋
- ๋ฐฐํฌ์ ์ฌํ ๊ฒ์ฆ์ด ๋๋ฌ์ ๋
- ์ค๊ธฐ๊ธฐยท์ฌ์ฉ์ ์ง์ ์ E2E ๊ฒฐ๊ณผ๊ฐ ๋์๊ฑฐ๋ blocker๊ฐ ํ์ ๋์ ๋
- interruption์ด๋ handoff๋ก ์์ ์ ๋๊ธธ ๋
์ฆ์ ๊ฐฑ์ ์ resume ์์ ์ ์ํ ๊ฒ์ด๊ณ , phase checkpoint๋ ๋ณ๊ฒฝ ๋ฌถ์์ ๊ฒํ ํ๊ณ ๋๋๋ฆฌ๊ธฐ ์ํ ๊ฒ์ด๋ค. ๋์ ๊ฐ์ ๊ท์น์ผ๋ก ์ฒ๋ฆฌํ๋ micro-event commit์ด ๋์ด๋ฌ๋ค.
commit ๊ถํ์ด ์๋ ์์
์์๋ ๋ ๋จ์ํ๋ค. ๊ฒํ ๊ฐ ๋๋ฌ๋ค๋ ์ด์ ๋ก COMMITTED๋ CLOSED ์ํ๋ฅผ ๋ง๋ค์ง ์๋๋ค. ํตํฉ ํ๋ณด๋ฅผ freezeํ ์ํ๋ก ์ ์งํ๊ณ , ์ค์ checkpoint๊ฐ ์๊ธฐ๊ธฐ ์ ๊น์ง durableํ ์๋ฃ์ธ ๊ฒ์ฒ๋ผ ๊ธฐ๋กํ์ง ์๋๋ค.
์์ปค ๊ฒ์ฆ์ report์ ๋จ๊ธฐ๊ณ aggregate ๋ฌธ์์์ ๋นผ๋๋ค
๋ณ๋ ฌ ์์ ์์๋ ์์ปค๋ง๋ค ์คํํ ๋ช ๋ น, ๊ฒ์ฌ ๊ฒฐ๊ณผ, ๊ฒน์น hunk, ๋จ์ ์ ์ฝ์ด ์๊ธด๋ค. ์ด ๋ด์ฉ์ root TODO์ README, ์๊ตฌ์ฌํญ์ ๋ค์ ๋ถ์ด๋ฉด coordinator๊ฐ ์ฝ์ด์ผ ํ ๋ฌธ์๋ง ๋์ด๋๋ค.
์์ปค ๋จ์์ ์์ธ ์ฆ๊ฑฐ๋ immutable report์ Git diff์ ๋จ๊ธฐ๊ณ , current-state์๋ ํตํฉ๋ ๊ฒฐ๋ก ๊ณผ ํ์ฌ ์ํฅ, ์ฆ๊ฑฐ ๊ฒฝ๋ก๋ง ๋๋ค. coordinator๋ report๋ฅผ ํ๋์ฉ ๊ฒํ ํ๋ report ํ๋๋ฅผ commit ํ๋๋ก ์ทจ๊ธํ์ง ์๋๋ค. ๊ฐ์ phase๋ฅผ ์ด๋ฃจ๋ ์ฌ๋ฌ report๋ ํตํฉ ๊ฒ์ฆ ๋ค ํ๋์ checkpoint๋ฅผ ๊ณต์ ํ ์ ์๋ค.
์ด ๊ตฌ๋ถ ๋๋ถ์ aggregate ๋ฌธ์๋ ์งง์์ง๊ณ , ์์ธ ๊ฒ์ฆ๋ ์ฌ๋ผ์ง์ง ์๋๋ค. ๋ค์ ์ธ์ ์ ํ์ฌ ์ํ๋ฅผ ๋จผ์ ์ฝ๊ณ , ํ๋จ ๊ทผ๊ฑฐ๊ฐ ํ์ํ ๋๋ง ์ฐ๊ฒฐ๋ report์ Git evidence๋ฅผ ๋ด๋ ค๊ฐ๋ค.
resume ์์๊ฐ owner ๊ท์น์ ๊ฑฐ์ค๋ฅด๊ณ ์์๋ค
๊ท์น์ ์ ๋ฆฌํ ๋ค ์ ์ฒด ํ๋ฆ์ ๋ค์ ๊ฒ์ฌํ๋ฉด์ ์์ธ๋ก ๊ธฐ๋ณธ์ ์ธ ๋ชจ์์ ์ฐพ์๋ค. ์์ ์ ์ฐจ๊ฐ README๋ฅผ ๋จผ์ ์ฝ๊ณ ๊ทธ๋ค์ todo.md๋ฅผ ์ฝ๋๋ก ๋์ด ์์๋ค.
README์๋ ๋ณ๋ ์ํ๋ฅผ ๋ณต์ ํ์ง ๋ง์๊ณ ์ ์ผ๋ฉด์, ์ค์ resume ์ ์ฐจ๋ router๋ฅผ current-state๋ณด๋ค ๋จผ์ ์ฝ๊ณ ์์๋ ์ ์ด๋ค. ์ค๋๋ ์ํ ๋ฌธ๊ตฌ๊ฐ ๋จ์ ์์ผ๋ฉด ์ฒซ ํ๋จ๋ถํฐ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์์๋ค.
๊ทธ๋์ ์์ ์์๋ฅผ ๋ฐ๊ฟจ๋ค. ๊ฐ์ฅ ๋จผ์ canonical current-state์์ ํ์ฌ Runtime, blocker, phase์ ๋ค์ ์์ ์ ํ์ธํ๋ค. ๊ทธ๋ค์ README์ ๋ฌธ์ router์์ repository ๊ฒฝ๊ณ์ ํ์ํ leaf ๋ฌธ์๋ฅผ ์ฐพ๋๋ค. ์์ ๋ ์ ํ ๊ฒฐ์ ์ current-direction์์, ์ค์ ๋์ ๊ณ์ฝ์ requirements์์ ์ฝ๋๋ค.
๋ฌธ์ owner ํ๋ง ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก๋ ๋ถ์กฑํ๋ค. ์ฌ๋์ด๋ Agent๋ ์ค์ ๋ก ์ฝ๋ ์์๊ฐ owner ๊ด๊ณ๋ฅผ ๋ฐ๋ผ์ผ ํ๋ค.
ํ์ฌ ์ ์ฉ ๋ฒ์์ ๋จ์ ํ๊ณ
์ด๋ฒ ๊ตฌ์กฐ๋ ๊ณต์ฉ ์์ ๊ท์น, Operations Automation์ ๋ฌธ์ routing, ๋ณ๊ฒฝ ๋ฌธ์ํ manifest, ๋ณ๋ ฌ coordination protocol์ ๋ฐ์ํ๋ค. skill validator์ ๋ฌธ์ ๋๊ธฐํ ๊ฒ์ฌ, diff ๊ฒ์ฌ๋ ํต๊ณผํ๋ค. ๋ค๋ง ํ์ฌ ๋ณ๊ฒฝ์ ์์ง local working tree์ ์๊ณ commit์ด๋ ๋ฐฐํฌ ์ํ๋ ์๋๋ค.
๊ธฐ์กด ๋ฌธ์ ์ ์ฒด๋ฅผ ์๊ธํด์ ๋ค์ ์ฐ์ง๋ ์์๋ค. ๊ณผ๊ฑฐ ๊ธฐ๋ก๊ณผ ์์ธ report๋ ๊ทธ๋๋ก ๋๊ณ , active ๋ฌธ์์์ ๊ฐ์ current-state ์ฌ์ค์ด ์ถฉ๋ํ ๋๋ง owner ์ฐธ์กฐ๋ก ์ค์ด๋ ๋ฐฉ์์ด๋ค. ์ค๋๋ ๋ฌธ์๊ฐ ๋จ์ ์๋ค๋ ์ฌ์ค๋ณด๋ค, ๊ทธ๊ฒ์ ํ์ฌ ์์ ์ authority๋ก ๋ค์ ์ฝ์ง ์๊ฒ ๋ง๋๋ ๊ฒ์ด ๋จผ์ ์๋ค.
์ด์ ๋ฌธ์ ์ต์ ํ๊ฐ ์๋๋์ง๋ ๋ช ๊ตฐ๋ฐ๋ฅผ ๊ณ ์ณค๋์ง๋ก ํ๋จํ์ง ์๋๋ค. ์์ถ์ด๋ ์ธ๊ณ ๋ค์ ํ๊ณณ๋ง ์ฝ๊ณ ๋ ํ์ฌ ๋จ๊ณ์ ๋ค์ ์์ ์ ํ๋ฆฌ์ง ์๋์ง, ์์ธ ๊ทผ๊ฑฐ๊ฐ ํ์ํ ๋ ๋ค์ ์ถ์ ํ ์ ์๋์ง๊ฐ ๊ธฐ์ค์ด๋ค.
๋๊ธ ๋จ๊ธฐ๊ธฐ