# πŸ€– The Antigravity Agent Lifecycle SOP (Final Master) 이 λ¬Έμ„œλŠ” `new_gene` ν…œν”Œλ¦Ώ ν™˜κ²½μ—μ„œ 코딩을 μˆ˜ν–‰ν•˜λŠ” λͺ¨λ“  AI μ—μ΄μ „νŠΈ(Antigravity, Claude Code, Gemini CLI λ“±)κ°€ **무쑰건 μ€€μˆ˜ν•΄μ•Ό ν•˜λŠ” μ΅œμš°μ„  행동 κ°•λ Ή(Single Source of Truth)** μž…λ‹ˆλ‹€. κ³Όκ±° `antig_web`의 μœ„λŒ€ν•œ μœ μ‚°(Devlog, μ˜€λ‹΅λ…ΈνŠΈ)κ³Ό 8λŒ€ μ΅œμ²¨λ‹¨ κΈ°λ―Όμ„± μ˜€ν”ˆμ†ŒμŠ€κ°€ μ™„μ „νžˆ κ²°ν•©λœ μ΅œμ’… λ³΄λ£¨μž…λ‹ˆλ‹€. --- ## 1. 지식 동기화 λ£° (SSOT Knowledge Sync) μž‘μ—… 착수 μ „, 무지성 코딩을 κΈˆμ§€ν•˜λ©° **인간이 μˆ˜μ •ν•œ μœ„ν‚€λ₯Ό 1μˆœμœ„λ‘œ 흑수**ν•©λ‹ˆλ‹€. * **[Read] 전사 κ·œμ • 탐색:** `.knowledge/global_wiki/` (Wiki.js Clone) λ₯Ό 탐색해 ν”„λ‘œμ νŠΈ μ–Έμ–΄(TS, Python λ“±) μ»¨λ²€μ…˜κ³Ό UI 토큰을 μŠ΅λ“ν•˜μ‹­μ‹œμ˜€. * **[Read] 기획/μ–Έμ–΄ 바인딩:** `.knowledge/project_wiki/tech_stack.md` κ°€ μ‘΄μž¬ν•  경우 이λ₯Ό μ΅œμš°μ„ μœΌλ‘œ 읽고, λ§Œμ•½ 아직 μœ„ν‚€ 연동 전이라 파일이 μ—†λ‹€λ©΄ μ ˆλŒ€ λ©ˆμΆ”μ§€ 말고 `package.json`μ΄λ‚˜ `PROJECT.md` λ“± 둜컬 ν™˜κ²½μ„ λΆ„μ„ν•˜μ—¬ 언어와 νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €λ₯Ό μœ μΆ”ν•˜μ‹­μ‹œμ˜€. * **[Sync] Git 좩돌 방어망:** 둜컬의 μœ„ν‚€ νŒŒμΌμ„ μ—΄μ–΄λ³΄κ±°λ‚˜ μˆ˜μ •ν•˜κΈ° μ „, **무쑰건 `.knowledge/project_wiki` 폴더 μ•ˆμ—μ„œ `git pull --rebase origin main`을 μ‹€ν–‰ν•˜μ—¬ 원격(μ›Ή) μˆ˜μ •λ³Έμ„ λ¨Όμ € 흑수**ν•˜μ‹­μ‹œμ˜€. (좩돌 μ‹œ μΈκ°„μ˜ μ½”λ“œ μš°μ„ ). * **[Setup] 무결점 μΊ‘μŠν™” μ€€μˆ˜:** μ—μ΄μ „νŠΈ κ΅¬λ™μš© `mcp.json`은 `.agent/config/mcp.json`에 숨겨져 있으며, μ—μ΄μ „νŠΈ μ „μš© νŒ¨ν‚€μ§€λŠ” `.agent/env/package.json`에 숨겨져 μžˆμŠ΅λ‹ˆλ‹€. 루트(Root)λ₯Ό μ˜€μ—Όμ‹œν‚€μ§€ 말고 λ°˜λ“œμ‹œ μˆ¨κ²¨μ§„ 경둜λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€. ## 2. κΈ°λ―Όμ„± κ·ΉλŒ€ν™” 개발 루프 (Agile Micro-Loop) 과거의 무차별적 `grep`μ΄λ‚˜ λΆˆμ•ˆμ •ν•œ 슀크립트λ₯Ό 버리고, 제곡된 μ΅œμ „λ°© μ˜€ν”ˆμ†ŒμŠ€ 도ꡬλ₯Ό 100% ν™œμš©ν•΄ λ””λ²„κ·Έν•©λ‹ˆλ‹€. * **[Context] λ„€λΉ„κ²Œμ΄μ…˜:** μˆ˜μ‹­ 개의 νŒŒμΌμ„ 읽지 λ§ˆμ‹­μ‹œμ˜€. `.agent/skills/mcp-core/`의 곡식 `mcp-server-filesystem`을 ν˜ΈμΆœν•˜μ—¬ ν•„μš”ν•œ 파일만 μ •ν™•νžˆ μΆ”μΆœν•˜μ‹­μ‹œμ˜€. * **[Execution] 마이크둜 병렬 처리:** λ°©λŒ€ν•˜κ³  μœ„ν—˜ν•œ μ½”μ–΄ 둜직 μˆ˜μ • μ‹œ, `.agent/skills/superpowers/` 의 `git worktree`둜 격리 ν™˜κ²½μ„ κ΅¬μΆ•ν•œ ν›„ `.agent/skills/mini-swe` 의 μ΄ˆκ²½λŸ‰ μš”μ›μ—κ²Œ 단일 파일 μˆ˜μ •μ„ μœ„μž„ν•΄ 메인 λΈŒλžœμΉ˜κ°€ κΉ¨μ§€λŠ” 것을 λ§‰μœΌμ‹­μ‹œμ˜€. * **[Vision QA] λ Œλ”λ§ κ²€μ—΄ (κ°€μ§œ μ™„λ£Œ κΈˆμ§€):** 과거의 룰을 κ³„μŠΉν•©λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œ μž‘μ—… ν›„ λΈŒλΌμš°μ € 눈으둜 κ²€μ¦ν•˜μ§€ μ•Šμ•˜μœΌλ©΄ "κ΅¬ν˜„ μ™„λ£Œ"라고 ν™•μ–Έν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. `.agent/skills/browser_use/` 봇을 λ°±κ·ΈλΌμš΄λ“œλ‘œ 돌렀 섀도 돔(Shadow DOM)κΉŒμ§€ νŒŒκ³ λ“€μ–΄ μ‹œκ°μ  깨짐이 μ—†λŠ”μ§€ 직접 μž…μ¦ν•˜μ‹­μ‹œμ˜€. --- ## 3. κ³Όκ±° μœ μ‚° κ³„μŠΉ: 무결성 λ°©μ–΄ λ£° (Legacy Guardrails) * **[Rule A] 3μ§„ 아웃 μ˜€λ‹΅λ…ΈνŠΈ (Failure Protocol):** ν•œ 번 μ—λŸ¬ λ‚œ μ½”λ“œλ₯Ό λ˜‘κ°™μ΄ μ³μ„œ 2번 μ‹€νŒ¨ν•˜λ©΄ μ¦‰μ‹œ 손을 λ–Όμ‹­μ‹œμ˜€. ν•΄λ‹Ή μ—λŸ¬μ˜ 원인과 우회둜λ₯Ό `.knowledge/project_wiki/devlog/known-issues.md` 에 λ“±μž¬ν•˜κ³  λ‹€λ₯Έ 접근법을 μ‹œλ„ν•΄μ•Ό ν•©λ‹ˆλ‹€. * **[Rule B] P-C 디버깅 (Producer-Consumer):** 버그가 λ‚œ 파일 1개만 μ—΄μ–΄μ„œ κ³ μΉ˜λŠ” 것은 λΆˆλ²•μž…λ‹ˆλ‹€. ν•΄λ‹Ή 데이터λ₯Ό μƒμ„±ν•œ λ†ˆ(Producer)κ³Ό μ§€μš°λŠ” λ†ˆ(Consumer) μ–‘μͺ½ νŒŒμΌμ„ λ™μ‹œμ— μ—΄μ–΄μ„œ ꡐ차 κ²€μ¦ν•œ ν›„ 원인을 μž‘μœΌμ‹­μ‹œμ˜€. * **[Rule C] λ©”λͺ¨λ¦¬ 병λͺ© 차단 (DB Lock):** `.agent/services/claude-mem/` 의 SQLite 둜컬 λ©”λͺ¨λ¦¬ DB λ™μ‹œ μ ‘κ·Ό μ§€μ‹œλ₯Ό λ°›μœΌλ©΄, Read-Lock을 μš°νšŒν•˜λŠ” 3회 μž¬μ‹œλ„(Retry) μ§€μ—° μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•΄ μ„œλ‘œ μ£½λŠ” ν˜„μƒμ„ λ°©μ–΄ν•˜μ‹­μ‹œμ˜€. --- ## 4. μž‘μ—… μ’…λ£Œ 및 배포: Devlog + Vikunja + Wiki 일체화 μž‘μ—…(Task/Phase)이 λλ‚˜κ³  "마무리/끝" μ§€μ‹œλ₯Ό λ°›μœΌλ©΄ μ•„λž˜ 절차둜 μ—μ΄μ „νŠΈ ν™œλ™μ„ μ’…λ£Œν•©λ‹ˆλ‹€. 1. **Devlog (일일 개발 일지) μž‘μ„±:** λ‹¨μˆœ μ½”λ“œ 외에 '섀계 κ²°μ •(μ™œ A λŒ€μ‹  Bλ₯Ό νƒν–ˆλ‚˜)', 'λ―Έμ™„λ£Œ 사항', 'νŠΈλŸ¬λΈ”μŠˆνŒ…'이 μžˆμ—ˆλ‹€λ©΄, λ°˜λ“œμ‹œ **`.knowledge/project_wiki/devlog/YYYY-MM-DD.md`** 에 μ–‘λ°©ν–₯ 링크(`[[λ¬Έμ„œλͺ…]]`)λ₯Ό μ¨μ„œ κΈ°λ‘ν•©λ‹ˆλ‹€ (κΈ°μ‘΄ κ³Όκ±° Devlog μ‹œμŠ€ν…œ μ™„λ²½ κ³„μŠΉ). 2. **Wiki μžλ™ 동기화:** μ•„ν‚€ν…μ²˜λ‚˜ APIκ°€ λ³€κ²½λœ 경우 `.knowledge/project_wiki/` λ‚΄λΆ€ λ¬Έμ„œλ₯Ό μ΅œμ‹ ν™”ν•œ λ’€, λ°˜λ“œμ‹œ ν„°λ―Έλ„μ—μ„œ `node .agent/scripts/sync_wiki.js` 슀크립트λ₯Ό μ‹€ν–‰ν•˜μ—¬ Gitea Wiki 원격 μ €μž₯μ†Œμ— Push ν•˜μ‹­μ‹œμ˜€ (토큰 λ…ΈμΆœ λ°©μ§€λ₯Ό μœ„ν•΄ λ‚ κ²ƒμ˜ curlμ΄λ‚˜ git push κΈˆμ§€). 3. **Vikunja ν•˜μ΄λΌν‚€ 동기화 (PROJECT λͺ¨λ“œ ν•œμ •):** `.env.agent` 의 `AGENT_OPERATING_MODE`κ°€ `PROJECT`일 κ²½μš°μ— ν•œν•˜μ—¬, 둜컬의 Get-Shit-Done(GSD) `.planning/` λ‹¨κ³„μ—μ„œ ν•œ 에픽(Phase)이 μ™„μ „νžˆ 끝났을 λ•Œ ν„°λ―Έλ„μ—μ„œ `node .agent/scripts/sync_vikunja.js "μž‘μ—…λͺ…/ID" "μ™„λ£Œ μ‚¬μœ /μ»€λ°‹ν•΄μ‹œ"` 슀크립트λ₯Ό μ‹€ν–‰ν•΄ Vikunja μ›Ή λŒ€μ‹œλ³΄λ“œμ— 1회 λ§€ν•‘ 및 `Done` 처리λ₯Ό μˆ˜ν–‰ν•˜μ‹­μ‹œμ˜€. (TEST λͺ¨λ“œμΌ 경우 이 동기화λ₯Ό κ°•μ œλ‘œ μŠ€ν‚΅ν•©λ‹ˆλ‹€).