From b553fcce9cbbb411d51a36da1a94a7c6f268843e Mon Sep 17 00:00:00 2001 From: toki Date: Fri, 29 May 2026 21:06:43 +0900 Subject: [PATCH] update: roadmap changes - backtest and data-foundation phases --- agent-roadmap/ROADMAP.md | 8 ++--- .../milestones/korea-daily-data-foundation.md | 33 ++++++++++--------- agent-roadmap/current.md | 10 +++--- agent-roadmap/phase/backtest-loop/PHASE.md | 4 +-- .../milestones/backtest-engine-baseline.md | 19 ++++------- agent-roadmap/phase/data-foundation/PHASE.md | 6 ++-- 6 files changed, 39 insertions(+), 41 deletions(-) rename agent-roadmap/{ => archive}/phase/data-foundation/milestones/korea-daily-data-foundation.md (76%) diff --git a/agent-roadmap/ROADMAP.md b/agent-roadmap/ROADMAP.md index a64509d..eb08d04 100644 --- a/agent-roadmap/ROADMAP.md +++ b/agent-roadmap/ROADMAP.md @@ -13,10 +13,10 @@ ALT는 개인용 quant system workspace로, 한국장 일봉 MVP에서 시작해 - [완료] 기반 정렬 - 경로: `agent-roadmap/archive/phase/foundation-alignment/PHASE.md` - 요약: agent-first monorepo, Go workspace, contracts, proto-socket session loop, PostgreSQL/Redis worker backbone을 안정화한다. -- [진행중] 데이터 기반 +- [검토중] 데이터 기반 - 경로: `agent-roadmap/phase/data-foundation/PHASE.md` - 요약: 한국장 일봉을 대상으로 provider-neutral market data import, normalization, persistence를 만든다. -- [계획] 백테스트 루프 +- [진행중] 백테스트 루프 - 경로: `agent-roadmap/phase/backtest-loop/PHASE.md` - 요약: 일봉 기반 strategy execution, backtest lifecycle, result persistence, repeatable verification을 만든다. - [계획] 운영 표면 @@ -38,8 +38,8 @@ ALT는 개인용 quant system workspace로, 한국장 일봉 MVP에서 시작해 - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Phase와 Milestone 문서를 같은 세션에서 1회 읽는다. - 활성 Phase 또는 Milestone 밖의 작업이면 이 문서의 Phase 흐름을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. - 이 문서는 로드맵 생성/갱신, Phase 전환, Phase 추가/수정, 전체 구조 변경 요청이 있을 때만 읽는다. -- 상세 작업과 완료 기준은 각 Milestone 문서의 `필수 기능`, `완료 기준`으로 관리한다. -- 모든 필수 작업과 완료 기준이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다. +- 상세 작업과 검증 기준은 각 Milestone 문서의 `기능` Task와 Task 안의 선택적 `검증:` 문구로 관리한다. +- 모든 기능 Task와 Task 안에 명시된 검증이 충족된 Milestone은 먼저 `[검토중]`으로 두고, 사용자 완료 확인과 archive 승인을 받은 뒤 `[완료]`로 전환한다. - 완료된 Phase는 `agent-roadmap/archive/phase//PHASE.md`로 이동하고, 하위 Milestone도 같은 archive Phase scaffold 아래에 둔다. - 진행중 Phase 안에서 완료된 Milestone은 활성 Phase 문서에 짧은 링크를 남기고, 상세 문서는 `agent-roadmap/archive/phase//milestones/`로 이동한다. - archive `PHASE.md`는 Phase 자체가 완료 또는 폐기될 때만 만들며, 진행중 Phase의 완료 Milestone만 archive된 경우 archive Phase 디렉터리에 `milestones/`만 있을 수 있다. diff --git a/agent-roadmap/phase/data-foundation/milestones/korea-daily-data-foundation.md b/agent-roadmap/archive/phase/data-foundation/milestones/korea-daily-data-foundation.md similarity index 76% rename from agent-roadmap/phase/data-foundation/milestones/korea-daily-data-foundation.md rename to agent-roadmap/archive/phase/data-foundation/milestones/korea-daily-data-foundation.md index 1cbdd77..9fb5f2b 100644 --- a/agent-roadmap/phase/data-foundation/milestones/korea-daily-data-foundation.md +++ b/agent-roadmap/archive/phase/data-foundation/milestones/korea-daily-data-foundation.md @@ -11,7 +11,7 @@ ## 상태 -[진행중] +[완료] ## 구현 잠금 @@ -45,23 +45,26 @@ 한국장 일봉 데이터의 provider-neutral 수집, 정규화, 저장, 검증 흐름을 묶는다. -- [ ] [instrument-map] provider symbol과 ALT의 venue-agnostic equity instrument identity를 매핑한다. -- [ ] [universe-selector] watchlist, exchange-wide, sector-like 입력을 provider-neutral universe selector로 다룬다. -- [ ] [daily-bars] 한국장 일봉 OHLCV를 normalized bar 모델로 저장한다. 검증: 선택된 equity universe의 일봉 입력이 저장소에 들어가고, 같은 입력을 다시 import해도 중복/갱신 정책이 일관된다. -- [ ] [calendar-rules] `Asia/Seoul`, KRX, KRW 기준의 최소 calendar/currency 처리를 갖는다. -- [ ] [kis-adapter] KIS provider adapter 경계가 worker 내부에 격리된다. 검증: 로컬 cache의 KIS API 샘플 repo와 sanitized mock/sample response를 기준으로 request/auth/response mapping을 확정할 수 있고 secret 값은 저장하지 않는다. -- [ ] [mock-provider] KIS credential 없이도 pipeline을 검증할 fixture/mock provider가 있다. -- [ ] [data-check] import 결과를 재현 가능하게 검증하는 테스트 또는 CLI/smoke 명령이 있다. 검증: normalized data가 backtest milestone에서 소비 가능한 형태로 조회되고 `bin/test`와 관련 worker 검증이 통과한다. +- [x] [instrument-map] provider symbol과 ALT의 venue-agnostic equity instrument identity를 매핑한다. +- [x] [universe-selector] watchlist, exchange-wide, sector-like 입력을 provider-neutral universe selector로 다룬다. +- [x] [daily-bars] 한국장 일봉 OHLCV를 normalized bar 모델로 저장한다. 검증: 선택된 equity universe의 일봉 입력이 저장소에 들어가고, 같은 입력을 다시 import해도 중복/갱신 정책이 일관된다. +- [x] [calendar-rules] `Asia/Seoul`, KRX, KRW 기준의 최소 calendar/currency 처리를 갖는다. +- [x] [kis-adapter] KIS provider adapter 경계가 worker 내부에 격리된다. 검증: 로컬 cache의 KIS API 샘플 repo와 sanitized mock/sample response를 기준으로 request/auth/response mapping을 확정할 수 있고 secret 값은 저장하지 않는다. +- [x] [mock-provider] KIS credential 없이도 pipeline을 검증할 fixture/mock provider가 있다. +- [x] [data-check] import 결과를 재현 가능하게 검증하는 테스트 또는 CLI/smoke 명령이 있다. 검증: normalized data가 backtest milestone에서 소비 가능한 형태로 조회되고 `bin/test`와 관련 worker 검증이 통과한다. ## 완료 리뷰 -- 상태: 없음 -- 요청일: 없음 -- 완료 근거: 아직 기능 Task와 각 Task의 검증 조건이 충족되지 않았다. +- 상태: 승인됨 +- 요청일: 2026-05-29 +- 완료 근거: + - provider-neutral `market` model, universe selector, storage/importer, KIS fixture normalization, mock data-check smoke가 구현되어 모든 기능 Task가 `[x]`로 정리되었다. + - `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke` PASS 완료 이벤트가 반영되었고, 최종 archive는 `agent-task/archive/2026/05/m-korea-daily-data-foundation/03+01,02_data_check_smoke`에 있다. + - `bin/test`가 통과했고 generated contract diff가 비어 있어 data-check 검증 조건을 충족했다. - 리뷰 필요: - - [ ] 사용자가 완료 결과를 확인했다 - - [ ] archive 이동을 승인했다 -- 리뷰 코멘트: 없음 + - [x] 사용자가 완료 결과를 확인했다 + - [x] archive 이동을 승인했다 +- 리뷰 코멘트: 2026-05-29 사용자 승인에 따라 `[완료]`로 전환하고 Milestone archive 이동을 수행한다. ## 범위 제외 @@ -81,4 +84,4 @@ - 표준선(선택): mock/fixture 테스트에는 KIS credential이 필요 없다. 실제 KIS smoke 단계에서만 1Password CLI 또는 service account로 실행 시점에 주입하며 `.env`에 저장하지 않는다. - 선행 작업: Persistence and Worker Backbone - 후속 작업: Backtest Engine Baseline -- 확인 필요: mock 테스트에 사용할 최소 KIS daily bar fixture와 expected normalized bar 사례 +- 확인 완료: mock 테스트에는 sanitized KIS daily bar fixture와 expected normalized bar 사례를 사용한다. diff --git a/agent-roadmap/current.md b/agent-roadmap/current.md index 3d810db..62c8a1e 100644 --- a/agent-roadmap/current.md +++ b/agent-roadmap/current.md @@ -2,16 +2,18 @@ ## 활성 Phase -- [진행중] 데이터 기반 +- [검토중] 데이터 기반 - 경로: `agent-roadmap/phase/data-foundation/PHASE.md` +- [진행중] 백테스트 루프 + - 경로: `agent-roadmap/phase/backtest-loop/PHASE.md` - [계획] 운영 표면 - 경로: `agent-roadmap/phase/operator-surface/PHASE.md` ## 활성 Milestone -- [진행중] Korea Daily Data Foundation - - Phase: `agent-roadmap/phase/data-foundation/PHASE.md` - - 경로: `agent-roadmap/phase/data-foundation/milestones/korea-daily-data-foundation.md` +- [진행중] Backtest Engine Baseline + - Phase: `agent-roadmap/phase/backtest-loop/PHASE.md` + - 경로: `agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md` - [계획] Client Integration Clone Adoption - Phase: `agent-roadmap/phase/operator-surface/PHASE.md` - 경로: `agent-roadmap/phase/operator-surface/milestones/client-integration-clone-adoption.md` diff --git a/agent-roadmap/phase/backtest-loop/PHASE.md b/agent-roadmap/phase/backtest-loop/PHASE.md index fff96fc..3056ff7 100644 --- a/agent-roadmap/phase/backtest-loop/PHASE.md +++ b/agent-roadmap/phase/backtest-loop/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[계획] +[진행중] ## 목표 @@ -13,7 +13,7 @@ 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. 완료, 검토중, 진행중, 계획, 스케치 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. -- [계획] Backtest Engine Baseline +- [진행중] Backtest Engine Baseline - 경로: `agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md` - 요약: 일봉 데이터를 기준으로 재현 가능한 backtest execution loop와 결과 저장을 만든다. - [계획] Backtest Analysis Surface diff --git a/agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md b/agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md index aeadd79..aeb5a90 100644 --- a/agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md +++ b/agent-roadmap/phase/backtest-loop/milestones/backtest-engine-baseline.md @@ -11,7 +11,7 @@ ## 상태 -[계획] +[진행중] ## 구현 잠금 @@ -26,30 +26,23 @@ - result persistence and query - fixture data 기반 검증 -## 필수 기능 +## 기능 ### Epic: [backtest-engine] Deterministic backtest engine 일봉 기반 전략 실행, portfolio state, result 저장과 fixture 검증 흐름을 묶는다. -- [ ] [run-lifecycle] backtest run의 pending/running/succeeded/failed/canceled lifecycle이 있다. +- [ ] [run-lifecycle] backtest run의 pending/running/succeeded/failed/canceled lifecycle이 있다. 검증: worker가 backtest 실행을 소유하고 API는 실행 요청/조회 경계만 담당한다. - [ ] [strategy-port] strategy를 engine에 주입할 port 또는 interface가 있다. - [ ] [portfolio-state] cash, position, equity를 계산하는 최소 portfolio state가 있다. -- [ ] [result-store] backtest result가 저장되고 조회된다. -- [ ] [fixture-test] fixture daily bars로 deterministic test가 통과한다. - -## 완료 기준 - -- [ ] 동일한 fixture와 strategy 입력으로 동일한 result가 나온다. -- [ ] worker가 backtest 실행을 소유하고 API는 실행 요청/조회 경계만 담당한다. -- [ ] 결과가 contracts/client에서 조회 가능한 형태로 연결될 수 있다. -- [ ] `bin/test`와 `bin/lint`가 통과한다. +- [ ] [result-store] backtest result가 저장되고 조회된다. 검증: 결과가 contracts/client에서 조회 가능한 형태로 연결될 수 있다. +- [ ] [fixture-test] fixture daily bars로 deterministic test가 통과한다. 검증: 동일한 fixture와 strategy 입력으로 동일한 result가 나오고 `bin/test`와 `bin/lint`가 통과한다. ## 완료 리뷰 - 상태: 없음 - 요청일: 없음 -- 완료 근거: 아직 필수 기능과 완료 기준이 충족되지 않았다. +- 완료 근거: 아직 기능 Task와 각 Task의 검증 조건이 충족되지 않았다. - 리뷰 필요: - [ ] 사용자가 완료 결과를 확인했다 - [ ] archive 이동을 승인했다 diff --git a/agent-roadmap/phase/data-foundation/PHASE.md b/agent-roadmap/phase/data-foundation/PHASE.md index 5b5e568..22fea2a 100644 --- a/agent-roadmap/phase/data-foundation/PHASE.md +++ b/agent-roadmap/phase/data-foundation/PHASE.md @@ -2,7 +2,7 @@ ## 상태 -[진행중] +[검토중] ## 목표 @@ -13,8 +13,8 @@ 완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획 또는 보류 Milestone은 이 Phase 하위 `milestones/` 경로를 가리킨다. 완료, 검토중, 진행중, 계획 순서로 두어 아래로 갈수록 미래 작업에 가까워지게 정렬한다. -- [진행중] Korea Daily Data Foundation - - 경로: `agent-roadmap/phase/data-foundation/milestones/korea-daily-data-foundation.md` +- [완료] Korea Daily Data Foundation + - 경로: `agent-roadmap/archive/phase/data-foundation/milestones/korea-daily-data-foundation.md` - 요약: 한국장 일봉 데이터를 provider-neutral 모델로 수집, 정규화, 저장하는 첫 파이프라인을 만든다. ## Phase 경계