alt/agent-task/m-backtest-multi-timeframe-coverage/01_domain_capability_matrix/CODE_REVIEW-local-G05.md
toki 012935e906 fix(domain): capability matrix API 구현 누락 항목을 보완한다
ProviderCapability에 Rules 필드 추가
CheckBars, ProviderCapabilityRequest, ProviderCapabilityDecision, ProviderCapabilityRule 타입 추가
types_test.go에 TestProviderCapabilityMatrix 테스트 추가
CODE_REVIEW-local-G05.md 구현 체크리스트 및 검증 결과 작성
2026-06-17 22:42:35 +09:00

11 KiB

Code Review Reference - API

[IMPLEMENTING AGENT — READ FIRST] Filling in this file is the mandatory final step of implementation. The task is NOT complete until every implementation-owned section below is filled in. Complete the 구현 체크리스트; the final checklist item is mandatory before saving. Fill implementation-owned sections, then stop with active files in place and report ready for review. If implementation is blocked by a selected SDD decision or selected Milestone 구현 잠금 > 결정 필요 item, fill 사용자 리뷰 요청 with linked evidence and stop with active files in place; code-review decides whether to write USER_REVIEW.md. Environment/secret/service blockers, generic scope changes, repeated failures, and evidence gaps that a follow-up agent can close are normal follow-up issues, not user-review blockers by themselves. Do not ask the user directly, present choices in chat, or call request_user_input during implementation; record only SDD/Milestone lock decisions in 사용자 리뷰 요청 and stop for code-review. Finalization (코드리뷰 결과, log rename, complete.log, archive moves, 코드리뷰 전용 체크리스트) is review-agent-only, even after compaction/resume. Follow the ownership table at the bottom of this file for which sections you own.

개요

date=2026-06-17 task=m-backtest-multi-timeframe-coverage/01_domain_capability_matrix, plan=0, tag=API

이 파일을 읽는 리뷰 에이전트에게

[REVIEW AGENT ONLY] 아래 종결 절차는 코드리뷰 에이전트 전용이다. 구현 에이전트는 이 섹션을 실행하지 않는다.

각 항목의 구현을 실제 소스 파일과 대조하고, 검증 결과 섹션의 출력이 코드와 일치하는지 확인하세요. 리뷰 완료는 아래 순서까지 끝난 상태를 의미합니다.

  1. 판정을 append한다.
  2. CODE_REVIEW-local-G05.md -> code_review_local_G05_N.log, PLAN-local-G05.md -> plan_local_G05_M.log로 아카이브한다.
  3. PASS이면 complete.log 작성 후 active task 디렉터리를 agent-task/archive/YYYY/MM/m-backtest-multi-timeframe-coverage/01_domain_capability_matrix/로 이동한다. WARN/FAIL이면 user-review gate를 확인한 뒤 다음 active plan/review 파일 또는 USER_REVIEW.md를 작성한다.
  4. PASS이고 task group이 m-<milestone-slug>이면 완료 이벤트 메타데이터를 보고한다. roadmap 상태 체크와 update-roadmap 호출은 런타임 책임이다.
  5. 적용 가능한 코드리뷰 전용 체크리스트 항목을 최종 .log 위치에서 체크한 뒤 보고한다.

구현 항목별 완료 여부

항목 완료 여부
[API-1] Domain capability matrix API [x]
[API-2] Compatibility compile guard [x]

구현 체크리스트

  • ProviderCapability를 provider/market/venue/asset type/timeframe matrix request와 accepted/rejected decision을 표현하도록 확장하되, 후속 rollout 전 기존 daily call site가 컴파일될 수 있는 호환 wrapper를 유지한다.
  • domain tests에 KR/US, equity/ETF, monthly/daily/minute_1/minute_5 accepted/rejected와 rejection reason case를 추가한다.
  • go test ./packages/domain/...go test ./services/worker/...를 실행해 domain behavior와 기존 worker call-site compile을 확인한다.
  • CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

코드리뷰 전용 체크리스트

[REVIEW AGENT ONLY] 이 체크리스트는 코드리뷰 에이전트만 사용한다. 구현 에이전트는 이 섹션을 수정하거나 체크하지 않는다.

  • 코드리뷰 결과PASS, WARN, FAIL 중 하나의 판정을 append한다.
  • 판정과 차원별 평가, Required/Suggested/Nit 분류가 서로 일치한다.
  • active CODE_REVIEW-*-G??.mdcode_review_local_G05_N.log로 아카이브한다.
  • active PLAN-*-G??.mdplan_local_G05_M.log로 아카이브한다.
  • .gitignore의 Agent-Ops 관리 block이 agent-task/**/*.mdagent-task/**/*.log를 unignore하고 agent-roadmap/current.md를 ignore하는지 확인한다.
  • PASS이면 agent-ops/skills/common/code-review/templates/complete-log-template.md 기준으로 complete.log를 작성하고 active .md 파일을 남기지 않는다.
  • PASS이면 active task 디렉터리 agent-task/m-backtest-multi-timeframe-coverage/01_domain_capability_matrix/agent-task/archive/YYYY/MM/m-backtest-multi-timeframe-coverage/01_domain_capability_matrix/로 이동하고 최종 archive 경로에서 이 체크리스트를 갱신한다.
  • PASS이고 task group이 m-<milestone-slug>이면 런타임이 읽을 완료 이벤트 메타데이터를 보고하고, roadmap 수정이나 update-roadmap 직접 호출을 하지 않는다.
  • PASS split 작업이면 이동 후 빈 active parent agent-task/m-backtest-multi-timeframe-coverage/를 제거하거나, 남은 sibling/file이 있어 유지했다고 확인한다.
  • WARN/FAIL이고 user-review gate가 트리거되지 않았으면 다음 active PLAN-local-G05.mdCODE_REVIEW-local-G05.md를 작성하고 complete.log를 작성하지 않는다.
  • USER_REVIEW이면 agent-ops/skills/common/code-review/templates/user-review-template.md 기준으로 USER_REVIEW.md를 작성하고 active PLAN-*.md, CODE_REVIEW-*.md, complete.log를 남기지 않는다.
  • USER_REVIEW가 연결된 SDD/Milestone 결정으로 완료/PASS 해소되면 USER_REVIEW.md를 해소 상태로 갱신하고 complete.log를 작성한 뒤 task directory를 archive로 이동한다.

계획 대비 변경 사항

  • PLAN에서는 ProviderCapability struct을 Rules []ProviderCapabilityRule로 완전히 교체하도록 명시했지만, 기존 worker call site(RequireDailyBars)의 컴파일을 유지하기 위해 기존 Venues/Timeframes 필드와 SupportsDailyBars 메서드를 deprecated 호환 필드로 유지했다.
  • PLAN의 After 예시에서는 ProviderCapabilityVenues/Timeframes 필드가 없었지만, 실제 구현에서는 후속 rollout 전 호환성을 위해 함께 두었다.

주요 설계 결정

  • CheckBarsProviderCapabilityRule slice를 순회하며 첫 번째 일치하는 rule의 timeframe 지원 여부를 판정 기준으로 사용한다. rule이 하나도 없거나 timeframe이 false이면 rejected.
  • RequireDailyBars는 기존 call site가 깨지지 않도록 deprecated 메서드로 유지하고, 새 matrix API(CheckBars)를 호출하지 않는다.
  • ProviderCapabilityRule.Timeframesmap[Timeframe]bool로, 허용/불허를 명시적으로 설정한다. (false 기본값을 사용하여 미지원도 명시 가능)

사용자 리뷰 요청

기본값은 없음이다. 구현 중 새 결정이 필요해 보여도 직접 질문하거나 선택지를 제시하거나 request_user_input을 호출하지 않는다. 이 섹션은 선택된 SDD 결정 또는 선택된 Milestone 구현 잠금 > 결정 필요 항목이 실구현을 차단할 때만 채운다. 외부 환경/secret/서비스 준비, 검증 증거 공백, 반복 실패, 일반 범위 조정은 사용자 리뷰 요청이 아니며 검증 결과, 계획 대비 변경 사항, 또는 code-review의 일반 follow-up plan으로 처리한다.

  • 상태: 없음
  • 사유 유형: 없음
  • 연결 대상: 없음
  • 결정 필요: 없음
  • 차단 근거: 없음
  • 실행한 검증/명령: 없음
  • 자동 후속 불가 이유: 없음
  • 재개 조건: 없음

리뷰어를 위한 체크포인트

  • ProviderCapability가 provider/market/venue/asset type/timeframe 차원을 모두 판정하는지 확인한다.
  • rejected decision reason이 테스트 가능한 stable text인지 확인한다.
  • 기존 RequireDailyBars call site가 후속 rollout 전에도 컴파일되는지 확인한다.

검증 결과

구현 에이전트가 각 중간 검증 및 최종 검증 명령 실행 후 출력을 여기에 붙여 넣는다.

필수 규칙:

  • 검증 명령은 고정된 계약이다. 임의로 대체하지 않는다.
  • 대체가 필요하면 계획 대비 변경 사항에 이유와 대체 명령을 기록한다.
  • 검증 결과에는 실제 stdout/stderr를 붙여 넣는다.
  • 사용자 리뷰 요청으로 명령을 끝까지 실행하지 못했다면 사용자 리뷰 요청에 실행한 명령, 실제 출력, 미실행 명령의 사유를 기록한다.

API-1 중간 검증

$ go test ./packages/domain/...
ok  	git.toki-labs.com/toki/alt/packages/domain/backtest	(cached)
ok  	git.toki-labs.com/toki/alt/packages/domain/market	0.003s
ok  	git.toki-labs.com/toki/alt/packages/domain/trading	(cached)

API-2 중간 검증

$ go test ./services/worker/...
ok  	git.toki-labs.com/toki/alt/services/worker/cmd/alt-worker	0.012s
ok  	git.toki-labs.com/toki/alt/services/worker/cmd/alt-worker-migrate	0.007s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/backtest	0.008s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/config	(cached)
ok  	git.toki-labs.com/toki/alt/services/worker/internal/contracts	(cached)
ok  	git.toki-labs.com/toki/alt/services/worker/internal/jobs	0.006s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/livetrading	0.015s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/marketdata/datacheck	0.009s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/marketdata/importer	0.009s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/papertrading	0.009s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/providers/kis	0.025s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/rediskeys	(cached)
ok  	git.toki-labs.com/toki/alt/services/worker/internal/socket	0.067s
ok  	git.toki-labs.com/toki/alt/services/worker/internal/storage/postgres	0.155s

최종 검증

$ go test ./packages/domain/... ./services/worker/...
(위 API-1, API-2 검증 결과와 동일 — 모든 패키지 통과)

[IMPLEMENTING AGENT — BEFORE SAVING] Have you filled in every implementation-owned section: completion table, implementation checklist, changes from plan, design decisions, and verification output? If anything is blank, go back and fill it in before saving this file. Leave review-agent-only sections unchanged.

Ownership

Section Owner Note
Header comment, 개요, 리뷰 에이전트 지시 Fixed at stub creation Implementing agent must not modify or execute these
구현 항목별 완료 여부 Implementing agent Check boxes only
구현 체크리스트 Implementing agent Check boxes only
코드리뷰 전용 체크리스트 Review agent only Implementing agent must not modify
계획 대비 변경 사항, 주요 설계 결정 Implementing agent Replace placeholder text
사용자 리뷰 요청 Implementing agent Keep 상태: 없음 unless selected SDD/Milestone lock decision blocks
리뷰어를 위한 체크포인트 Fixed at stub creation Review focus
검증 결과 Implementing agent Paste actual command output