magicJar devlog · 2026-05-08 앞으로의 계획 정리

작성: 오케스트라 · PR-26(헌법 통합) 머지 직후 · v3.0.1 베이스라인

§1. 오늘 한 줄 요약

W1 거의 끝, W2~W5 미진행. PR-1 베이스라인부터 PR-26 운영 헌법까지 약 26 사이클 진행 완료. 헌법(_workspace/arch/agent-charter.md) 통합으로 7 sub-agent 운영 룰이 단일 출처로 정리되었고, 9 SKILL은 1줄 참조만 남기는 12.6% LOC 감축 달성. 다음 갈림길은 T-MS1(장 세션·fallback) 진입으로 W1 마감인지, T-IM1 dogfooding 결함 흡수 우선인지, 또는 W2 직진인지의 3 안 선택입니다.

§2. 현재 위치 — Wave 진척 매트릭스

Wave트랙상태비고
W1
데이터 기반
T-ONBOARD (셋업 마법사) ✅ DONE PR-6 — 7-step 마법사 + AES-256-GCM + system_config·user_account·user_kis_credential
T-W1 (Watchlist CRUD)✅ DONEPR-7~10 — Position Bootstrap 포함
T-W2 (Ingestion Worker)✅ DONEPR-9 — KIS WS + REST polling fallback + Yahoo cold-start
T-S1 (Symbol Detail)⚠️ 부분화면 진입은 OK, 차트·호가·STOMP 내부 동작 backlog §6.4
T-IM1 (Instrument Master)⚠️ 마무리PR-11(14컬럼 → KIS-first 위반) → PR-21(70+컬럼 재설계) 머지. ROE sentinel(-36100000) 옆 세션 진행 중
T-MS1 (Market Session + Fallback)미진행장 상태 FSM·KRX 캘린더·last-day-close fallback. W3 모든 트랙 선행
T-CA1 (Corporate Action)미진행액면분할·증자·배당락 보정 + retroactive 재계산. T-BT 선행
W2
분석 도구
T-IND · T-PAT · T-DSL · T-SB 미진행 80지표 → 57패턴 → DSL → GUI 빌더
W3
자동매매 본체
T-BT · T-SC · T-SIG · T-RISK · T-O · T-RECON · T-NOTIFY · T-J · T-PERF 미진행 9 트랙 — 룰 only 매매 본체 풀가동 후 W4 진입 게이트
W4
AI + MCP
T-AI · T-MCP 미진행 사용자 트리거 LLM 코멘트(매매 결정권 0) + MCP 서버 노출
W5
마무리
T-LWC · T-LEARN 미진행 LWC 자체 overlay layer + 사용자 학습 시나리오

§3. 직전 사이클(PR-21 ~ PR-26) 무엇을 매듭지었나

PR내용결과
PR-21instrument 14 컬럼 → KIS-first 70+ 컬럼 재설계 (KOSPI 73 / KOSDAQ 67 헤더 raw 검증, byte-level EUC-KR 파싱)
PR-22task.mjs nowIso() KST 정정
PR-23Repository upsert wrapper Spring Data 함정 hotfix + batch test 2건 @Disabled
PR-24ktlint format 잔재 정리
PR-25upsert wrapper → InstrumentSeedRunner.upsertSeed private helper 이동
PR-26운영 헌법 통합agent-charter.md 7 § 신설 + 9 SKILL 슬림화 + ADR 0051(Spring Data default fun 함정) + task.mjs --force flag 보강
PR-28ROE NUMERIC overflow → V6 NUMERIC 확장 시도 (KIS-first 위반)폐기

PR-28 폐기 사유: KIS-first 검증 없이 NUMERIC precision 확장 시도. 옆 세션에서 -36100000이 KIS magic number(ROE 산정 불가)임을 확인하여 sentinel detection으로 정정 진행 중.

§4. 앞으로의 계획 — 5 Wave · 17.5 트랙 · ~18.5주

roadmap §5-1 기준 총 21주, W1 진척분(T-ONBOARD·T-W1·T-W2 + T-S1·T-IM1 부분) 차감하면 ~18.5주 ≈ 4.5개월 남았습니다.

Wave 잔여 트랙 + 사이즈 추정 사용자 검증 게이트
W1 마감 T-MS1(M) + T-CA1(M) + T-S1 잔재(차트·호가·STOMP, S) ~1.5주 휴장일 정합 + 종목 차트 adjusted 정확 + dogfooding 통과
W2
분석 도구
T-IND(80지표 XL) → T-PAT(57패턴 M) → T-DSL(L) → T-SB(GUI 빌더 XL) ~5주 80지표 차트 overlay + GUI 블록 빌더 yaml export/import 동작
W3
자동매매 본체
(룰 only)
T-BT(L) · T-SC(M) · T-SIG(M) · T-RISK(L) · T-O(XL) · T-RECON(M) · T-NOTIFY(M) · T-J(M) · T-PERF(M) ~6주 시그널 → 주문 e2e 1사이클 + reconcile drift 1건 검출 + KillSwitch 5대 행동 + Slack 7 trigger + AI 호출 0 검증
W4
AI 옵션 + MCP
T-AI(L) → T-MCP(M) ~3주 사용자 클릭 시 AI 응답 + MCP tool 5종 외부 호출 가능
W5
학습 + LWC
T-LWC(M) + T-LEARN(M, 병렬 가능) ~3주 시스템 투어 완료 + 데이터 정합성 체크리스트 통과
합계 ~18.5주 ≈ 4.5개월

현실 보정 변수

§5. 운영성 backlog 잔재 (영양가 있는 것만)

§항목처리 시점
§2KisRestPort 분리 (Candle / Price / PriceMetrics 3 port)T-O · T-RECON 진입 시 자연 처리
§3CLAUDE.md ADR 인덱스 갱신 (1~40 → 1~51)5분 hotfix · 다음 메타 정리 사이클
§4worktree-agent-* 누적 fallback 브랜치15건 초과 또는 사용자 명시 시 일괄
§6.5관심종목 한글 종목명 검색 안 됨 / 일부 종목(004090 한국석유) 노출 안 됨다음 dogfooding 사이클 흡수 (T-IM1 마무리)
§11 · §18SymbolControllerTest + batch test @Disabled 3건 mock 보강W1 R3 일괄 테스트 사이클
§16instrument fitness gap 91.7% → 13% 축소 (PR-21 + 옆 세션 ROE sentinel)옆 세션 마무리되면 ✅

§6. 권장 다음 행보 (3 안)

내용사유
A T-MS1 진입 (W1 마감) 장 세션·last-day-close fallback은 W3 모든 트랙 선행. roadmap §5-1 권장 흐름. SimpleMarketSessionResolver stub 정합 보강
B T-IM1 dogfooding 검증 + 종목명 한글 검색 hotfix 사용자가 직접 화면에서 fitness 검증, 결함 흡수 후 마감. backlog §6.5 처리
C W2 직접 진입 (T-IND 시작) 자동매매 두뇌 본체 빨리 — 단 T-MS1·T-CA1 미정합으로 후속에서 보강 risk
architect 권장: A → B 묶음. T-MS1 끝나면 본격 dogfooding로 T-IM1·T-S1 결함 흡수 → T-CA1 마무리 → W2 진입. C(W2 직진)는 T-MS1·T-CA1 데이터 정합 부재 위에 80지표 쌓는 risk가 있어 비권장.

§7. 사용자 결정 필요 사항

  1. 다음 트랙 진입 — A · B · C 중 택1
  2. 옆 세션 ROE sentinel 처리 결과 검증 후 PR-21 fitness gap close 마킹
  3. T-IND 진입 시 KIS Strategy Builder 흡수 깊이 — 80지표 일괄 vs 30개 우선 (roadmap §7 #2 — 사용자 명시 = 80개 일괄)
  4. T-RISK PositionLimit·DrawdownStop default (예: 종목당 10%·일일 -3%) — W3 진입 전 결정 필요
  5. 실계좌 진입 시점 — W3 끝나고 dogfooding 통과 후 MAGICJAR_MODE=REAL + MAGICJAR_ALLOW_REAL=true 이중 게이트 해제