# Phase: Provider Change Request Integration ## 상태 [진행중] ## 목표 GitHub PR, GitLab MR, Gitea PR 같은 provider 기능을 provider-neutral ChangeRequest 인터페이스로 묶는다. 외부 연동은 GitHub webhook과 유사한 HTTP webhook/callback 모델로 맞추고, Webhook은 빠른 wakeup signal로 사용하되 최종 상태 판정은 Git revision/diff와 provider read API로 재검증한다. 현재 최우선 slice는 NomadCode가 generic `branch.updated` HTTP webhook delivery를 wakeup으로 받을 수 있게 하는 것이다. ## Milestone 흐름 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. 완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. 스케치 Milestone은 아직 구현 가능한 계획이 아니므로 계획 Milestone보다 아래에 둔다. - [진행중] Webhook Revision Reconcile - 경로: `agent-roadmap/phase/provider-change-request-integration/milestones/webhook-revision-reconcile.md` - 요약: NomadCode branch event wakeup 대응을 최우선으로 두고 provider webhook, outbound consumer webhook, polling, Git revision scan을 같은 변경 event로 정규화하고 재검증한다. - [계획] Provider Adapter Foundation - 경로: `agent-roadmap/phase/provider-change-request-integration/milestones/provider-adapter-foundation.md` - 요약: provider registry, credential ref, webhook intake, provider capability boundary를 만든다. - [계획] Change Request Abstraction - 경로: `agent-roadmap/phase/provider-change-request-integration/milestones/change-request-abstraction.md` - 요약: GitHub PR, GitLab MR, Gitea PR을 공통 ChangeRequest action과 event로 표현한다. ## Phase 경계 - Git 자체 조작은 provider adapter가 아니라 platformless Git engine이 맡는다. - provider adapter는 PR/MR/review/checks/comment/webhook 같은 플랫폼 API만 맡는다. - provider별 credential 원문은 tracked 파일에 저장하지 않고 credential ref로만 연결한다. - provider webhook만으로 상태를 확정하지 않고 Git revision 또는 provider read API로 확인한다. - 외부 consumer event delivery는 HTTP webhook/callback으로 제공하며 proto-socket을 외부 연결 규약이나 보조 transport로 제공하지 않는다. - NomadCode branch event webhook delivery는 ChangeRequest/PR/MR abstraction을 기다리지 않는 우선 slice로 처리한다.