MyAI(마이아이)개발 · 제품 · 운영 학습 노트

Claude Code와 Codex가 같은 제품을 함께 개발하기

두 AI가 같은 GitHub 저장소를 사용한다고 해서 자동으로 같은 문맥을 공유하는 것은 아니다.

핵심은 코드는 Git으로 공유하고, 장기 문맥과 정책은 Repository 파일로 공유하는 것이다.

권장 구조

MyProduct/
├─ CLAUDE.md
├─ AGENTS.md
├─ .ai/
│  ├─ PRODUCT.md
│  ├─ ARCHITECTURE.md
│  ├─ DEVELOPMENT_POLICY.md
│  ├─ GIT_POLICY.md
│  ├─ UX_POLICY.md
│  ├─ TEST_POLICY.md
│  ├─ DECISIONS.md
│  └─ CURRENT_STATE.md
└─ Source/
flowchart TD
    C[Claude Code] --> CM[CLAUDE.md]
    X[Codex] --> AM[AGENTS.md]
    CM --> A[.ai/ Shared Context]
    AM --> A
    A --> R[Repository Source]

왜 이런 구조가 필요한가

Claude와 Codex의 대화 기록은 서로 자동 공유되지 않는다.

예를 들어 Claude 세션에서 다음 결정을 내렸다고 하자.

Blend Shape 생성 UI는 Avatar > Blend Shape 탭에 둔다.

이 결정이 채팅에만 남으면 Codex는 알지 못한다. 따라서 오래 유지할 결정은 .ai/DECISIONS.md 같은 파일로 외부화한다.

병렬 개발은 같은 Working Tree에서 하지 않는다

나쁜 구조:

같은 폴더
├─ Claude가 Camera.cpp 수정
└─ Codex도 Camera.cpp 수정

권장:

flowchart TD
    G[Git Repository] --> S[stable]
    S --> A[Worktree A<br/>feature/camera]
    S --> B[Worktree B<br/>feature/avatar]
    A --> C[Claude Session]
    B --> X[Codex Session]

각 AI는 독립 Branch와 Worktree에서 작업하고 PR 단계에서 교차 검증한다.

Cross-model Review

Claude 구현
→ PR
→ Codex Review
→ Claude 수정
→ Human / CI 확인
→ Merge

Codex 구현
→ PR
→ Claude Review
→ Codex 수정
→ Human / CI 확인
→ Merge

모델을 동일하게 만드는 것이 목표가 아니다. 오히려:

같은 Source of Truth + 다른 추론 경로 + 상호 검증

이 더 가치가 있다.

CURRENT_STATE.md의 역할

현재 작업을 빠르게 복원하기 위한 인덱스다.

Owner Branch Task State
Claude feature/camera Camera animation In Progress
Codex feature/library Library browser Review

세션이 끊겨도 새 Agent가 저장소를 읽고 현재 상태를 복구할 수 있다.

장기적으로 추가할 수 있는 도구

새로운 Coding Agent가 들어와도 공통 정책을 .ai/에 두면 해당 Agent용 진입 파일만 추가하면 된다.

Claude → CLAUDE.md ─┐
Codex  → AGENTS.md ─┼→ .ai/*
Other  → ENTRY.md  ─┘

이렇게 하면 특정 AI 제품에 종속되지 않는 개발 운영 구조가 된다.