# Milestone: Contract and Codegen Baseline ## 위치 - Roadmap: `agent-roadmap/ROADMAP.md` - Phase: `agent-roadmap/phase/foundation-alignment/PHASE.md` ## 목표 proto-socket을 transport로 유지하면서 ALT application protobuf 계약을 Go API/worker와 Flutter client가 반복 가능하게 소비할 수 있는 기준을 만든다. 계약은 `alt.v1`을 유지하고, generated output은 source schema에서만 생성한다. ## 상태 [완료] ## 구현 잠금 - 상태: 해제 - 결정 필요: 없음 ## 범위 - `packages/contracts/proto/alt/v1` schema 정리 - Go/Dart protobuf generation 명령과 산출 위치 결정 - proto-socket parser map과 typeName 등록 기준 - contract compatibility note - generated output 검증 명령 ## 기능 ### Epic: [contracts] Contract schema and codegen ALT application protobuf 계약과 generated output 검증 흐름을 묶는다. - [x] [schema-baseline] `common.proto`, `market.proto`, `backtest.proto`가 MVP payload 기준을 담는다. - [x] [go-codegen] Go generated contract를 반복 생성할 수 있는 명령이 있다. 검증: 문서화된 Go contract generation 명령이 로컬에서 실행된다. - [x] [dart-codegen] Flutter client가 사용할 Dart generated contract를 반복 생성할 수 있는 명령이 있다. 검증: 문서화된 Dart contract generation 명령이 로컬에서 실행된다. - [x] [parser-map] API/client에서 contract message parser map을 구성할 표준 위치와 패턴이 정해져 있다. - [x] [compat-note] additive change, field number, versioning 기준과 proto-socket transport proto / ALT application proto 책임 분리가 contracts 문서에 정리되어 있다. - [x] [contract-check] root 검증 또는 contracts 검증 명령이 schema/codegen drift를 감지한다. 검증: generated output을 source schema와 대조할 수 있고 `bin/test`, `bin/lint`가 contract 변경 후 통과한다. ## 완료 리뷰 - 상태: 승인됨 - 요청일: 2026-05-28 - 승인일: 2026-05-28 - 완료 근거: `packages/contracts/proto/alt/v1` schema와 Go/Dart generated output, API/client parser map, compatibility note가 현재 코드에 있다. - 완료 근거: `bin/contracts-check`, `bin/test`, `bin/lint`가 로컬에서 통과했다. - 리뷰 필요: - [x] 사용자가 완료 결과를 확인했다 - [x] archive 이동을 승인했다 - 리뷰 코멘트: 사용자 승인에 따라 완료 처리하고 archive로 이동했다. ## 범위 제외 - 실제 KIS 데이터 수집 구현 - DB persistence schema 확정 - Flutter 전체 화면 구현 - 실거래 주문 계약 ## 작업 컨텍스트 - 관련 경로: `packages/contracts/`, `services/api/`, `apps/client/` - 표준선(선택): proto-socket은 transport layer이고 ALT payload는 `packages/contracts/proto`가 source-of-truth다. - 선행 작업: Workspace Baseline - 후속 작업: Socket Session Loop - 확인 필요: 없음