8 Commits

Author SHA1 Message Date
kjh2064 27730704ae test(validation): 토큰 위생 및 플랫폼 통합 검증 체계 고도화
Snapshot Admin Web Validation / validate-snapshot-admin-smoke (push) Has been cancelled
Snapshot Admin Web Validation / validate-snapshot-admin-full (push) Has been cancelled
Quant Engine CI/CD Pipeline / validate-core (pull_request) Has been cancelled
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been cancelled
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Has been cancelled
2026-06-24 18:06:05 +09:00
kjh2064 366a6da825 WBS-8.7: spec-코드 동기화 100% 완료
모든 spec 파일에 has_code_implementation 메타데이터 추가:
- 140개 spec 파일 중 100% 태깅 완료
- 코드 참조 자동 판정 (formula_registry, decision_flow, routing 등)
- tag_spec_code_implementation.py: 자동화 도구 추가

진행률: 66.4% → 100%

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-23 00:22:28 +09:00
kjh2064 9b1ef4a100 Merge WBS-7 완료: GAS→Python 마이그레이션 + 보완고도화
## 주요 변경사항

###  완료된 11개 항목

- WBS-7.1: 캘리브레이션 실증 전환 도구
- WBS-7.2: T+5 지표 단일 진실원천 통일
- WBS-7.3: GAS→Python 공식 마이그레이션 재검토 + F05/F10 포팅 
- WBS-7.4: Deprecated 별칭·시트 정리
- WBS-7.5: 임시 하드코딩 폴백 비례화
- WBS-7.6: 슬리피지 실측 보정 스캐폴딩
- WBS-7.7: E2E 통합 테스트 구축
- WBS-7.8: ETF NAV/공매도 자동화 검토 및 운영절차 명문화
- WBS-7.9: snapshot_admin Synology POC 기본 보안 게이트
- WBS-7.10: 어드민 페이지 Tabler 그리드 조회
- WBS-7.11: spec-코드 동기화 게이트

### F05/F10 포팅 (이번 세션)

**F05 (calc_exit_sell_action)**
- 7단계 우선순위 계층 구현
- JavaScript Number.isFinite() 의미론 보장 via safe_float()
- 가격 폴백 체인 (tp2 → tp1 → close)
- 17개 parity 테스트 PASS

**F10 (run_route_flow)**
- 5개 게이트 순차 필터링
- Stop_Breach → Relative_Stop → Intraday_Lock → Heat_Gate → Mean_Reversion
- 17개 parity 테스트 PASS

### 📊 테스트 상태

**Parity 테스트**: 64/64 PASS
- F02/F04/F06 (price_basis): 8개
- F05 (execution_decision): 17개
- F07 (score_thresholds): 9개
- F10 (routing_decision): 17개
- F11 (classify_order_type): 13개

### 🎯 최종 상태

Phase 1~6 모두 완료, Phase 7 보완·고도화 DONE → 엔진 전체 경화 완료.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

# Conflicts:
#	GatherTradingData.json
#	governance/gas_logic_migration_ledger_v1.yaml
2026-06-22 23:22:32 +09:00
kjh2064 13e9ccad55 WBS-7.6/7.9/7.7: 슬리피지 보정 + Naver 모니터링 + E2E 통합테스트
WBS-7.6 (슬리피지 5bps 보정):
- 이론치 5bps를 calibration_registry.yaml에 EXECUTION_SLIPPAGE_BPS 등록
- spec/55_execution_simulator_contract.yaml에서 threshold 참조로 변경
- calibration_trigger: 실제 거래 20건 누적 후 actual_slippage 추적해 필요시 보정

WBS-7.9 (Naver 스크래핑 Cloudflare 403 모니터링):
- tools/fetch_naver_market_data_v1.py: HTTP 403 감지 시 CLOUDFLARE_BLOCKED_403 상태 반환
- 구조화된 에러 처리로 무조건 실패 대신 graceful degradation 가능
- spec/exit/qualitative_sell_strategy_v1.yaml: WBS-7.9 처리 문서화
- 실제 차단 발생 시 대체 경로 없음(KRX=OTP 필수, investing.com=이미 차단)
  → 운영: 차단 발생 시 수동 실행 또는 slack 경고

WBS-7.7 (E2E 통합테스트):
- 기존 tests/integration/test_kis_collection_to_snapshot_admin_and_sell_strategy_v1.py 검증
- 3개 테스트 모두 PASS:
  * KIS 수집 → SQLite 적재 → snapshot_admin 대시보드 읽기 round-trip
  * Naver 폴백 차단 시 graceful degradation 검증 (개별 ticker 실패 흡수)
  * 정성매도전략 평가 → SQLite 저장 → 조회 round-trip
- 네트워크 미사용 (mock 데이터, graceful failure)으로 CI 안정성 확보

전체 테스트: 135/135 PASS (unit 61 + integration 3 + formula/formula_registry/... 71)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-22 23:02:33 +09:00
kjh2064 b1bb40c384 WBS-7.5: 임시 하드코딩 폴백 정규화 (3개 항목)
모든 hardcoding을 calibration_registry.yaml에 threshold로 등록:

1. MRS_CIRCUIT_BREAKER_ADJUSTMENT_PTS = 2 (pts)
   - 위치: spec/risk/circuit_breakers.yaml:192 (이전: "MRS +2점 (임시)")
   - 용도: sector_crash_intraday_protocol tier_B 조치에서 현금 보수성 강화
   - 정규화: spec/risk/circuit_breakers.yaml에서 threshold 참조로 변경

2. CLUSTER_CAP_CLA_REGIME_PER = 60 (%)
   - 위치: spec/risk/portfolio_exposure.yaml:403 (이전: "O2 상한 임시 해제")
   - 용도: CLA 레짐 발동 시 cluster 결합 노출 상한 일시 상향
   - 정규화: spec/risk/portfolio_exposure.yaml에서 threshold 참조로 변경

3. OVERHANG_PRESSURE_V1_FALLBACK_MULT = 1.5 (배수)
   - 위치: spec/13_formula_registry.yaml:1223
   - 상태: 이미 정규화됨 (절대값 -500000 → 평균거래량 비례식)

모든 threshold: EXPERT_PRIOR 등록, 실거래 표본 부재
- sunset_date: 2026-12-31
- 칼리브레이션 조건: sample_n 10+ (MRS) / 5+ (CLUSTER) 확보 후 실측 효과 검증

테스트: 135/135 PASS

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-22 22:57:32 +09:00
kjh2064 6c549b7bdc feat(kis-collection): finalize sqlite migration, add fallback resilience, and update WBS documentation 2026-06-22 18:55:59 +09:00
kjh2064 ee4d1fdab8 캘리브레이션 거버넌스 도구 + WBS-7.1/7.2 실증 격차 가시화
캘리브레이션 백로그 → 우선순위 → 검토리포트 → 승인목록 → 결정초안으로
이어지는 임계값 보정 거버넌스 파이프라인을 추가하고, 2026-06-21
비판적 리뷰에서 발견한 두 가지 stale-수치 문제를 도구 차원에서 해소한다.

- registry_health(): 190여 개 임계값의 source별(SPEC_DERIVED/EXPERT_PRIOR/
  PROVISIONAL/CALIBRATED) 분포를 매 실행마다 자동 집계 — 수동 grep 불필요
- live_t5_status(): T+5 적중률을 하드코딩(35.86 리터럴) 대신
  Temp/prediction_accuracy_harness_v2.json에서 항상 최신값으로 읽음
- spec/calibration_registry.yaml: SEMI_CLUSTER_CAP_RISK_OFF 중복 id로
  인한 조용한 무시 버그 수정(SEMI_CLUSTER_CAP_RISK_OFF_MWA로 분리)
- spec/27_bch_calibration_runbook.yaml: current_status_2026_06_21 블록
  신설(단일 진실원천), 기존 05-30 스냅샷은 "역사적, 현재로 인용 금지"로 명시
2026-06-21 20:07:32 +09:00
kjh2064 ee3e799de1 feat: 리밸런싱 엔진 V1 + GAS 버그 수정 (2026-06-13)
주요 변경:
- tools/build_rebalance_engine_v1.py: REBALANCE_ENGINE_V1 신규
  * account_snapshot 직접 합산(_build_snap_position_map) → 소수주 분리 행 병합
  * 레짐 소스 macro.REGIME_PRELIM 최우선 (GAS 와 동일)
- src/gas_adapter_parts/gdf_06_rebalance.gs: runRebalanceSheet_() 신규
  * Logger.log / getSpreadsheet_() 로 run_all 연동 수정
- src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs
  * _mergePositionRecord_(): 소수주 중복 행 합산 신규
  * parseInt → parseFloat (qty, availQty)
- src/gas_adapter_parts/gdf_01_price_metrics.gs
  * 미보유 종목 SELL_READY → WATCH_EXIT_SIGNAL
- spec/41_release_dag.yaml: build_rebalance_sheet 노드 추가 (step_count 63)
- spec/51_formula_lifecycle_registry.yaml: REBALANCE_ENGINE_V1 등록

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 13:20:14 +09:00