# 로드맵

## 전체 목표

ALT는 개인용 quant system workspace로, 한국장 일봉 MVP에서 시작해 시장 데이터 수집, 정규화, 백테스트, 결과 분석, command-first 운영 흐름, 페이퍼 트레이딩, 미국장 확장, 실거래 경계, Flutter 운영 UI까지 단계적으로 확장한다. Go 서비스와 CLI/YAML workflow는 뒤집지 않는 운영 코어를 담당하고, Flutter client는 충분히 표면화된 운영 항목을 web/mobile/desktop 단일 UI 표면으로 정리하는 후순위 단계로 둔다. 에이전트는 ALT의 주식 분석/백테스트 코어가 아니라 별도 도구/분석 보조 표면으로 정의하며, `../iop` backend와 `../agent-shell` frontend 연동은 용도 정의 이후 별도 Phase에서 다룬다. proto-socket과 ALT protobuf contracts가 ALT 런타임 사이의 통신 기준이 된다.

## Phase 흐름

위에서 아래로 진행된 순서와 예정 흐름을 나타낸다.
완료된 Phase도 로드맵에서 제거하지 않고, archive의 Phase 문서로 연결한다.
검토중 또는 진행중 Phase는 계획 Phase보다 위에 두어, 아래로 갈수록 미래 계획에 가까워지게 정렬한다.

- [완료] 기반 정렬
  - 경로: `agent-roadmap/archive/phase/foundation-alignment/PHASE.md`
  - 요약: agent-first monorepo, Go workspace, contracts, proto-socket session loop, PostgreSQL/Redis worker backbone을 안정화한다.
- [완료] 데이터 기반
  - 경로: `agent-roadmap/archive/phase/data-foundation/PHASE.md`
  - 요약: 한국장 일봉을 대상으로 provider-neutral market data import, normalization, persistence를 만든다.
- [완료] 운영 표면
  - 경로: `agent-roadmap/archive/phase/operator-surface/PHASE.md`
  - 요약: Flutter 실화면 전에 CLI/YAML/log 중심 command-first operator workflow로 KIS data, storage status, backtest 실행/결과 확인을 반복 가능하게 만든다.
- [완료] 거래 확장
  - 경로: `agent-roadmap/archive/phase/trading-expansion/PHASE.md`
  - 요약: paper trading, 미국장 확장, 주문/리스크/포트폴리오, 실거래 adapter 경계를 MVP 이후 단계로 연다.
- [진행중] 백테스트 루프
  - 경로: `agent-roadmap/phase/backtest-loop/PHASE.md`
  - 요약: 선택 종목의 자동/일별 수집, 정제 데이터 저장, 재현 가능한 backtest dataset과 lifecycle verification을 만든다.
- [스케치] 에이전트 도구화
  - 경로: `agent-roadmap/phase/agent-tooling/PHASE.md`
  - 요약: 에이전트를 ALT 코어가 아니라 도구/분석 보조층으로 쓰기 위한 용도, 책임 경계, `../iop` backend와 `../agent-shell` frontend 연결 후보를 정리한다.
- [보류] 운영 UI
  - 경로: `agent-roadmap/phase/operator-ui/PHASE.md`
  - 요약: command/headless workflow와 거래 확장 기능이 충분히 표면화된 뒤 Flutter operator console과 push notification UI boundary를 연다.

## 로딩 정책

- 일반 작업에서는 `agent-roadmap/ROADMAP.md`를 매번 읽지 않는다.
- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-roadmap/current.md`를 먼저 읽는다.
- `current.md`는 현재 작업 위치가 아니라 활성 Phase와 활성 Milestone 후보 목록이다.
- `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다.
- `current.md`의 활성 Phase는 `agent-roadmap/phase/<phase-slug>/PHASE.md`를 가리킨다.
- `current.md`의 활성 Milestone은 `agent-roadmap/phase/<phase-slug>/milestones/<milestone-slug>.md`를 가리킨다.
- `current.md`는 `agent-roadmap/archive/**` 경로를 활성 항목으로 포함하지 않는다.
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Phase와 Milestone 문서를 같은 세션에서 1회 읽는다.
- 활성 Phase 또는 Milestone 밖의 작업이면 이 문서의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
- 이 문서는 로드맵 생성/갱신, Phase 전환, Phase 추가/수정, 전체 구조 변경 요청이 있을 때만 읽는다.
- 상세 작업과 검증 기준은 각 Milestone 문서의 `기능` Task와 Task 안의 선택적 `검증:` 문구로 관리한다.
- 모든 기능 Task와 Task 안에 명시된 검증이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다.
- 완료된 Phase는 `agent-roadmap/archive/phase/<phase-slug>/PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다.
- 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-roadmap/archive/phase/<phase-slug>/milestones/`로 이동한다.
- archive `PHASE.md`는 Phase 자체가 완료 또는 폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다.
- `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `ROADMAP.md` 또는 `PHASE.md`의 archive 링크를 따라가서 읽는다.
- 아카이브된 Phase/Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다.
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다.
- 현재 요청과 직접 관련 없는 미정 항목은 잠금 상태로 남겨도 되며, 기존 구조/도메인 rule/플랫폼 관례로 정할 수 있는 작업은 표준선으로 기록하고 진행할 수 있다.
- Milestone 전체에서 사용자만 결정할 항목이 더 이상 없고 에이전트가 표준선에 따라 실행하면 되는 상태라면 `구현 잠금` 상태를 `해제`로 둔다.
