협업

Merge Generation

Need User Feedback

분기된 브랜치를 병합해야 할 때, REAP는 일반 Generation 라이프사이클과 별도인 6단계 특수 라이프사이클인 Merge Generation을 실행합니다. 핵심 원칙: genome을 먼저 정렬한 후 소스 코드를 병합합니다.

Merge Generation이 일반 git merge와 다른 이유는?

일반 git merge는 소스 코드 충돌만 해결합니다. 하지만 두 브랜치가 독립적으로 진화하면서 — 각자의 Generation, genome 변경, 설계 결정이 있다면 — 소스 코드만 병합하는 것으로는 충분하지 않습니다. genome(아키텍처 원칙, 컨벤션, 제약, 비즈니스 규칙)도 분기되었을 수 있습니다. Merge Generation은 소스 merge 전에 세 가지 중요한 단계를 추가합니다: genome 분기 감지, mating(genome 충돌 해결), merge 후 genome-소스 일관성 검증. 이를 통해 병합된 코드베이스가 단순히 컴파일만 되는 것이 아니라 설계적으로도 일관됨을 보장합니다.

일반 git merge

소스 충돌 → 해결 → 커밋. 설계 일관성을 확인하지 않습니다. 의미적 충돌이 감지되지 않습니다.

Merge Generation

먼저 genome 정렬 → genome에 기반한 소스 merge → genome-소스 일관성 검증 → validation → 커밋. 보이지 않는 의미적 충돌을 포착합니다.

왜 genome 정렬이 먼저인가

소스 코드 충돌을 해결한다고 해서 의미적 충돌이 없다는 보장은 되지 않습니다. 두 코드가 깔끔하게 병합될 수 있습니다 — git 충돌이 전혀 없이 — 그러면서도 의도, 아키텍처, 비즈니스 로직에서 서로 모순될 수 있습니다. genome 기반 추론만이 이러한 보이지 않는 충돌을 감지할 수 있습니다: 병합된 코드가 아키텍처 원칙을 여전히 따르는가? 컨벤션이 일관적인가? 비즈니스 규칙이 정렬되는가? 이것이 REAP가 소스 코드에 손대기 전에 genome을 정렬하는 이유입니다. genome이 확정되면 소스 충돌을 해결하기 위한 권위 있는 가이드가 됩니다 — 구문적으로만이 아니라 의미적으로도.

단계 순서

단계수행 내용산출물
Detectgit ref를 통해 대상 브랜치를 스캔합니다. DAG BFS로 공통 조상을 찾습니다. genome diff를 추출합니다. 충돌을 WRITE-WRITE 또는 CROSS-FILE로 분류합니다.01-detect.md
Mate모든 genome 충돌을 인간에게 제시합니다. WRITE-WRITE: A, B 선택 또는 수동 병합. CROSS-FILE: 논리적 호환성 확인. 진행 전에 genome이 완전히 해결되어야 합니다.02-mate.md
Merge대상 브랜치와 git merge --no-commit을 실행합니다. 확정된 genome에 기반하여 소스 충돌을 해결합니다. 의미적 충돌을 확인합니다 — 컴파일은 되지만 genome에 모순되는 코드.03-merge.md
Reconcilemerge 후 genome-소스 일관성을 검증합니다. AI가 genome과 소스 코드를 비교합니다. 사용자가 발견된 불일치를 확인합니다. 이슈가 있으면 Merge 또는 Mate로 회귀합니다.04-reconcile.md
Validation모든 기계적 테스트 명령어(test, lint, build, type check)를 실행합니다. 실패 시 Merge 또는 Mate로 회귀합니다.05-validation.md
Completion병합 결과를 커밋합니다. meta.yml에 type: merge와 양쪽 부모를 기록합니다. lineage에 아카이브합니다.06-completion.md

충돌 유형

유형설명해결 방법
WRITE-WRITE양쪽 브랜치에서 동일한 genome 파일이 수정됨인간이 결정: A 유지, B 유지, 또는 병합
CROSS-FILE다른 genome 파일이 수정되었지만 양쪽 브랜치 모두 genome을 변경인간이 논리적 호환성을 검토
소스 충돌소스 코드의 git merge 충돌확정된 genome에 기반하여 해결
의미적 충돌코드가 깔끔하게 병합되지만 genome(아키텍처, 컨벤션, 비즈니스 규칙)에 모순Reconcile 단계에서 감지 — AI가 genome과 소스를 비교하고, 사용자가 해결을 확인
충돌 없음genome이나 소스 충돌 없음자동으로 진행

Merge 회귀

Validation이나 Reconcile 실패 시 Merge 또는 Mate로 회귀할 수 있습니다. Merge는 genome 이슈가 발견되면 Mate로 회귀할 수 있습니다. 회귀 규칙은 일반 Generation과 동일한 패턴을 따릅니다 — 이유가 타임라인과 산출물에 기록됩니다.

current.yml 구조 (Merge)