magicJar 개발일지 — 2026-05-11 (v3.2.2 cut)

주제: KIS-only 데이터 정책 + NXT/통합거래 cover + 분봉 합산 가공 트랙 가동
PR 머지: #294~#307 (14건) · release tag: v3.2.2
모드: auto mode + 사용자 위임 자율 처리 (취침 시간 진행)
orchestrator: bot+orchestrator@magicjar.local

1. 사이클 개요

사용자 dogfooding 발견 1건(/api/symbols/000660/candles?interval=1d&limit=200 응답이 월봉 오염)에서 시작해 다음 결정·구현·검증이 연쇄 진행됐습니다.

단계PR핵심
① KIS-only 정책#294·#295Yahoo Finance 전수 제거 + ADR 0057 신규 + DB source='YAHOO' 79,120건 정리
② 1m 결함 정정#296·#297페이지네이션 보강 + FID_FAKE_TICK_INCU_YN 누락 정정 (당일 분봉 0건 → 영업일 단위 ~390건)
③ NXT cover#298·#299·#301ADR 0063 + fid_cond_mrkt_div_code UN + 시각 08:00~20:00 KST + threshold 700
④ 합산 가공 트랙#300·#302·#303ADR 0062 + CandleAggregator domain + AggregateBackfillRunner + frontend 5종
⑤ FAILED 종목 정정#304KOSDAQ market 분기(J) + halt/liquidation skip audit
⑥ PINGPONG hotfix#305KIS WS JSON PINGPONG 분기 + raw echo (kis_auth.py 정합)
⑦ release cut#306·#307v3.2.2 CHANGELOG + tag + backlog §33·§34·§35 등록

2. 채택 ADR

ADR제목Status사용자 결정
0057KIS-only data sourceAccepted"야후꺼 쓰지 말라니깐" + "kis에 있는 데이터만 사용하라고"
00625m~1h 1m 합산 가공 (precomputed)AcceptedA-1 백엔드 precomputed + 옵션 2 과거 30일 + 5종 활성화
0063NXT/통합거래 매트릭스 coverAcceptedA=UN 통합 + 시간 1=08:00~20:00 + threshold 700
0019(supersede revoke)Accepted (Yahoo 부분 보류)"ADR 폐기는 하지말어 백로그로 남겨"

3. 검증 evidence (DB 최종 상태)

intervalrowscodes비고
1m147,57811KIS FHKST03010230 UN 통합, 08:00~19:59 KST cover, 30 거래일
5m33,69111CandleAggregator 합산, 08:00~19:55
15m11,96211합산, 08:00~19:45
30m6,04111합산, 08:00~19:30
90m2,14311합산, 8 anchor 정렬
1h3,02311합산, 08:00~19:00
1d1,48613KIS FHKST03010100 D, 100/종목
1wk1,35913FHKST03010100 W
1mo1,23313FHKST03010100 M
1y33213FHKST03010100 Y
총 candle 테이블 ~209k rows (Yahoo 폐기 전 ~83k 대비 +152%). 모든 row source='KIS'. 중복 row 0건 (UQ uq_candle_code_interval_ts + ON CONFLICT DO NOTHING 멱등성 견고).

3-1. OHLCV 합산 정합 sample (000660 2026-03-31 08:00 5m)

baropenhighlowclose
1m 08:00852000852000822000826000
1m 08:01827000830000826000829000
1m 08:02830000830000826000827000
1m 08:03827000827000825000826000
1m 08:04826000827000824000827000
5m 08:00852000852000822000827000

OHLCV = (first.open, max(high), min(low), last.close, sum(volume)) 완벽 정합.

3-2. audit_trail 최종 (재배포 후)

action종목수비고
KIS_COLD_START_DONE9 종목1m·1d·1wk·1mo·1y 5/5 + 합산 5종 모두 적재
KIS_COLD_START_PARTIAL_FAIL2 종목 (064260·004090)일부 일자 KIS API 500 누적 — 외부 결함, §33으로 분리
KIS_COLD_START_SKIPPED1 종목 (001470 삼부토건)trading_halt=t 관리종목, 자동 skip

4. 정책 메모리 (사용자 결정 인용)

메모리핵심
feedback_kis_first_policy.mdYahoo 등 외부 fallback 폐기. 시세·캔들 모두 KIS OpenAPI 단일 출처
feedback_kis_key_realonly_for_data.md정보 수집 = 실전 키 단일. 모의/실전 분기는 주문 액션에만

5. release 결과

산출물위치
main commite440eaa + 후속 12 commit
tagv3.2.2 push GREEN
release brunchrelease/v3.2.2 생성 GREEN (ADR 0031 immutable 베이스라인)
release PR#306 (CHANGELOG v3.2.2 row) · #307 (backlog §33·§34·§35)
⚠ GitHub Actions release CI failure — release tag push 후 CI 실행 실패. 원인 = GitHub 결제 결함 ("recent account payments have failed or your spending limit needs to be increased"). v3.1.1·v3.2.1·v3.2.2 모두 동일 패턴 누적.

사용자 액션 필요: GitHub Settings → Billing & plans → 결제 정보 갱신. 본 시스템 코드 결함 0. orchestrator·sub-agent가 해결할 수 없는 외부 결함이라 보고만 진행.

※ tag·release brunch는 정상 push됨. ghcr.io 이미지 + Release draft만 자동 생성 안 됨. 로컬 docker compose 운영은 정상.

6. baseline 사이클 (사용자 결정 후 진행)

magicJar baseline 정책(ADR 0052)은 v3.X.0 release 또는 사용자 트리거 시점. v3.2.2 minor 컷이라 baseline 사이클은 선택. 일어나신 후 다음 명령 호출 시 architect sub-agent가 7 파일 풀세트 + Mermaid + HTML 자동 발행:

/baseline init v3.2.2

또는 v3.3.0 미러스톤(§33·§34 완료)까지 보류 가능.

7. 다음 사이클 의제 (backlog)

§제목미러스톤영역
§33KIS API 500 retry 강화 (3회 exponential backoff)v3.3.0market-data
§34Redis boundary fanout + STOMP 실시간 합산 갱신 (ADR 0029)v3.3.0market-data + frontend
§35ADR 0019·0028·0029 §2 매트릭스 NXT/합산 행 보강v3.2.3 minor docarchitect 단독
§36 (제안)GitHub Actions 결제 결함 정정 (사용자 액션 후)operational사용자

8. 함정·교훈 (사용자 메모리 보강 후보)

9. 통계

지표
PR 머지14건 (#294~#307)
sub-agent 호출~10건 (architect 3·market-data 5·strategy-engine 1·frontend 1)
코드 LOC 변경약 +1,500 / -200
신규 ADR3건 (0057·0062·0063)
DB row 증가candle ~83k → ~209k (+152%)
backlog 신규 §3건 (§33·§34·§35)
사용자 메모리 신규2건 (feedback_kis_first_policy 강화·feedback_kis_key_realonly_for_data 신규)