Local LLM ๊ธฐ๋ฐ Intent Branch ์ค๊ณ๋ฅผ ํตํ Git Context Amnesia ํด๊ฒฐ
Say Goodbye to Context Amnesia: Meet Git-Chacha ๐ง
AI ์์ฝ
Context
AI ๊ธฐ๋ฐ ๊ฐ๋ฐ ์๋ ๊ฐ์ํ๋ก ์ธํ Commit ๋น๋ ์ฆ๊ฐ์ ์ด๋ก ์ธํ ๋ณ๊ฒฝ ๋งฅ๋ฝ(Context) ์์ค ๋ฌธ์ ๋ฐ์. ๋จ์ Commit Message๋ง์ผ๋ก๋ Reviewer์ ์ธ์ง ๋ถํ๋ฅผ ์ค์ด๊ฑฐ๋ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ๊ณผ ์์ง๋์ด๋ง ๊ตฌํ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ฐ๊ธฐ์ ํ๊ณ๊ฐ ์์.
Technical Solution
- Git pre-push hook ๋จ๊ณ์์ Golang binary๋ฅผ ํตํ Diff ๋ฐ์ดํฐ ์ถ์ถ ๋ฐ ๋ก์ปฌ LLM ์ ์ก ๊ตฌ์กฐ ์ค๊ณ
- ๋ฐ์ดํฐ ์ ์ถ ๋ฐฉ์ง๋ฅผ ์ํด Ollama๋ฅผ ํ์ฉํ Local LLM ๊ธฐ๋ฐ์ ๋ถ์ ๋ฐ ์์ฝ ํ๋ก์ธ์ค ๊ตฌ์ถ
- ์ค์ ์ฝ๋ ๋ธ๋์น์ ๋ถ๋ฆฌ๋ ๋ณ๋์ 'Developer-Intent Branch'๋ฅผ ์์ฑํ์ฌ ๋ฉํ๋ฐ์ดํฐ์Rationale์ JSON ํํ๋ก ๊ฒฉ๋ฆฌ ์ ์ฅ
- ๊ฐ๋ฐ์๊ฐ AI ์์ฑ ์์ฝ๋ณธ์ ์ง์ ๊ฒํ ๋ฐ ์์ ํ๋ Human-in-the-loop ์ธํฐํ์ด์ค ๊ตฌํ
- Python ๊ธฐ๋ฐ CI ํ์ดํ๋ผ์ธ์ ํตํด ๊ฐ๋ณ Intent Branch์ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ Master Intent Narrative๋ฅผ ์๋ ์์ฑํ๋ ์ง๊ณ ๊ตฌ์กฐ ์ค๊ณ
- Repository Bloat ๋ฐฉ์ง๋ฅผ ์ํ 90์ผ ๊ธฐ์ค์ Intent ํ์ผ Retention Policy ์ ์ฉ
์ค์ฒ ํฌ์ธํธ
1. ๋ฏผ๊ฐํ ์์ค์ฝ๋ ๋ถ์ ์ ์ธ๋ถ API ๋์ Ollama ๋ฑ Local LLM ๋์ ๊ฒํ
2. ์ฝ๋ ๋ณ๊ฒฝ์ ๊ณผ ๋ณ๊ฒฝ ์ฌ์ (Intent)๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ฅํ๋ ๋ฉํ๋ฐ์ดํฐ ๋ธ๋์น ์ ๋ต ์ ์ฉ
3. ๋จ์ ์์ฝ์ ๋์ด CI ๋จ๊ณ์์ ์ ์ฒด ๋ณ๊ฒฝ ํ๋ฆ์ ํตํฉํ๋ Master Narrative ํ์ดํ๋ผ์ธ ์ค๊ณ
4. LLM ์์ฑ๋ฌผ์ ๋ํ ๊ฐ๋ฐ์์ ์ต์ข ์น์ธ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ์ฌ ํ ๋ฃจ์๋ค์ด์ ๋ฐฉ์ง