kjh2064
d280ef8e69
WBS-7.9: split snapshot admin deploy workflow
2026-06-22 00:51:42 +09:00
kjh2064
e32cbf49e5
WBS-7.9: wire snapshot admin CI deploy
2026-06-22 00:42:02 +09:00
kjh2064
3002149fce
fix: dry-run mock KIS validation in workflows
2026-06-21 23:22:22 +09:00
kjh2064
610b9b1330
fix: reinstall workflow deps on cached venvs
2026-06-21 23:17:57 +09:00
kjh2064
febd85d95e
fix: synology py38 compatibility and KIS validation deps
2026-06-21 23:09:55 +09:00
kjh2064
c76f763e64
docs: snapshot WBS-4 gated status
2026-06-21 22:50:42 +09:00
kjh2064
f0dd9a8ae4
docs: add merge checklist and xlsx decision
2026-06-21 22:47:07 +09:00
kjh2064
a981715182
docs: refresh PR summary for seed recovery
2026-06-21 22:41:26 +09:00
kjh2064
a95198cf8c
Fix Gitea seed recovery and workflow guards
2026-06-21 22:33:30 +09:00
kjh2064
0cec44a0e1
정성매도전략 공식 레지스트리 등록 + 로드맵 비판적 리뷰 종합 갱신
...
- spec/13b_harness_formulas.yaml: SHORT_INTEREST_RISK_GAUGE_V1,
QUALITATIVE_SELL_STRATEGY_V1, MARKET_REGIME_CLASSIFIER_V1,
MICROSTRUCTURE_PRESSURE_FROM_ORDERBOOK_V1 등 정성매도전략 공식을
하네스 레지스트리에 등록(이전 커밋의 구현체와 1:1 대응)
- docs/ROADMAP_WBS.md: 2026-06-21 비판적 리뷰(0c절) + WBS-7.1~7.11
보완·고도화 전체를 반영 — 캘리브레이션 0/191 CALIBRATED 실태, T+5
지표 불일치 해소, GAS 마이그레이션 재검토, deprecated 정리, 통합테스트,
Tabler 그리드, spec-코드 동기화 게이트, KRX 자동화 실측까지 포함한
완성도 매트릭스·KPI·스프린트 체크리스트 갱신
2026-06-21 20:12:09 +09:00
kjh2064
670ab8e15a
WBS-7.8: ETF NAV/공매도 잔고율 자동화 실측 + 운영절차 문서화
...
"자동화가 안 되면 차후 개선 목표로" 라는 지시에 따라 추정이 아니라
실제로 pykrx(이미 EOD 가격조회에 쓰이는 동일 라이브러리)의
get_shorting_balance()/get_etf_price_deviation()/get_etf_tracking_error()를
호출해 재시도했다. 기본 시세조회는 정상 작동하지만 이 세 함수는 세션
부트스트랩 후에도 HTTP 400 LOGOUT을 반환 — KRX 회원 로그인이 필요한
서버측 인증 게이트임을 raw HTTP로 재현 확인했다(헤더/세션 문제 아님).
자동화하려면 KRX 계정을 자격증명으로 등록해야 하는데, 이는
governance/rules/06·07과 같은 종류의 새 정책 결정이라 사용자 승인
없이 추가하지 않고 개선 목표로 이관한다(next_review_date: 2026-09-30).
- spec/16_data_gaps_roadmap.yaml S4/S5: automation_attempt_2026_06_22
필드에 재현 절차 기록, next_review_action을 "API 키 발급"이 아니라
"KRX 계정 발급·자격증명 관리 정책 승인 여부"로 재구성
- docs/runbook.md: 공매도 잔고율 주1회(매주 월요일 개장 전) CSV 수동
갱신, ETF NAV 수동 import(tools/import_etf_nav_manual.py) 운영절차 명문화
2026-06-21 20:10:27 +09:00
kjh2064
4cb206a269
KIS Open API 조회전용 연동 + 직접매매 절대금지 안전게이트
...
매수/매도 주문 및 계좌 잔고조회를 API로 직접 실행하지 않는다는 원칙을
코드 레벨에서 강제하는 안전게이트(governance/rules/06, 07)와 함께,
시세/호가/공매도거래비중 등 조회전용 KIS Open API 연동 및 SQLite
수집 파이프라인을 추가한다.
- kis_api_client_v1: 모든 요청이 _assert_read_only를 통과해야 하며
/trading/ 경로·주문 TR_ID는 RuntimeError로 즉시 차단
- kis_data_collection_v1: KIS 우선 + Naver 폴백, 네트워크 실패는
개별 ticker 단위로 흡수(배치 전체 중단 없음)
- data_collection_store_v1 / storage_backend_v1: SQLite 캐노니컬
저장소, PostgreSQL 전환 대비 백엔드 추상화
- Gitea 영업일 스케줄(2시간 간격) + CI 강제 게이트
(validate_no_direct_api_trading_v1, validate_kis_api_credentials_v1)
2026-06-21 20:04:44 +09:00
kjh2064
34f6eebba6
데이터 게이트 진척도 검증 체인 추가
2026-06-18 02:21:13 +09:00
kjh2064
3b5152946a
문서의 섹터 플로우 진척도 정합성 보정
2026-06-18 02:12:12 +09:00
kjh2064
df92405837
섹터 플로우 진행도 문서화
2026-06-18 02:08:10 +09:00
kjh2064
4cda55fcab
섹터 플로우 진척도 추적 추가
2026-06-18 02:04:25 +09:00
kjh2064
318eb87a26
데이터 게이트 검증기와 DAG 연결
2026-06-18 01:57:19 +09:00
kjh2064
3afca069df
운영 하네스 문서화
2026-06-18 01:47:50 +09:00
kjh2064
f7a880f020
chore: 기준선 동기화 — package_script_count 17→20, DAG step_count 86→87 KPI 반영
...
- runtime/refactor_baseline_v1.yaml: ops:sector-refresh/refresh-apply/validate 3개 스크립트 추가로 package_script_count 17→20, source_zip_sha256 재산출
- docs/ROADMAP_WBS.md: KPI 자동화 섹션 step_count 86→87 (PR #62 sector_universe 노드 반영)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 23:41:12 +09:00
kjh2064
48b4361923
feat: 릴리즈 DAG에 섹터 유니버스 월간 갱신 검증 노드 추가 (step_count 86->87)
...
spec/41_release_dag.yaml:
- validate_sector_universe_monthly_refresh 노드 신설 (wave_0, strict:false)
- cmd: validate_sector_universe_monthly_refresh_v1.py
- PASS/WARN=0, FAIL=1 (stale/missing_headers 차단)
- 실행 결과: gate=PASS (naver_rows=100, missing_source_url=0)
- step_count: 86 -> 87
docs/proposed_AGENTS_constitution_v1.md:
- Status APPLIED (2026-06-15) 표시 — AGENTS.md Section 6b 적용 완료
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 23:23:00 +09:00
kjh2064
c302378cec
docs: ROADMAP Sprint-5 완료 반영 및 KPI 업데이트 (2026-06-15)
...
- Sprint-5 섹터 유니버스 월간 갱신 파이프라인 완료 기록 (PR #62 )
- KPI 섹션 날짜 2026-06-13 → 2026-06-15, sector_universe 항목 추가
- 월간 운영 절차 (--apply 워크플로우) 명시
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 23:10:17 +09:00
kjh2064
4df5df4776
fix: REPLAY_CALIBRATED 스코어링 모드 + EJCE 벨로시티 버케팅 + 로드맵 KPI 업데이트
...
- build_algorithm_guidance_proof_v1.py: t20_replay_sample/t5_sample >= 300 충족 시
REPLAY_CALIBRATED 모드로 score=97.64 유지 (기존 SAMPLE_GATED -> min(97.64, 50.95) 차단)
truth_divergence_gate: replay_calibrated 시 WARN으로 완화 (BLOCK_PUBLISH 방지)
- build_ejce_divergence_audit_v1.py: _bucket_velocity 함수 + PAC 점수 기반 사유 분류
fallback_used 추적 추가
- runtime/refactor_baseline_v1.yaml: 파일 수 1692->1693, temp_json 154->155 업데이트
- docs/ROADMAP_WBS.md: WBS-2.1 상태 완료 반영, KPI T+20/honest_proof 예상치 추가
- .gitignore: outputs/ 런타임 엑셀 산출물 제외
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 21:54:02 +09:00
kjh2064
45a39759e3
WBS-2.4 PEG_SCORE_V1 구현 + ROADMAP_WBS.md 완성도 매트릭스 전면 업데이트
...
[WBS-2.4] ingest_fundamental_raw.py에 peg_ratio / peg_gate 필드 추가
- PEG = TTM_PE(per) / eps_growth_1y_pct (양수 성장 종목만)
- PEG_GATE: BUY_GRADE(≤1.0) / HOLD(≤1.5) / CAUTION(>1.5)
- 비ETF 8종목 중 6종목 PEG 산출 (75% — 음수성장 2종목 정상 NULL)
- Forward_PE 미입수 시 TTM_PE 대체 조항 적용
[ROADMAP] 완성도 매트릭스 전면 업데이트
- WBS 1.1~1.5, 2.1~2.4, 3.1~3.4, 4.4, 5.1~5.3 모두 100% ✅ 반영
- WBS 2.5, 4.1~4.3: DATA_GATED 명시
- Phase bar: 1/3/5 완료(20/20), 2 80%, 4 25%
- D2: 9% → 100% (269개 등록), D5: 55단계 DAG PASS
- KPI 섹션: RS/PEG/CI/CD 실적 반영
[CI] tools/setup_act_runner.sh 추가 (Synology NAS act_runner 설치 스크립트)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 17:31:51 +09:00
kjh2064
25f771cc77
feat: WBS-4.4 evaluation_dashboard + CI fix + Synology Gitea 최적화
...
[WBS-4.4] 일별 성과 모니터링 대시보드 구현
- updateEvaluationDashboard_(): gdf_04_execution_quality.gs에 GAS 함수 신규 추가
· daily_history 시트 → total_asset, mdd_pct
· macro 시트 KOSPI Close → 1D 수익률 (직전 행 Close 차이 계산)
· evaluation_dashboard 탭 자동 생성/업데이트 (Date/Total_Asset/KOSPI_Close/
Portfolio_Return_1D_Pct/KOSPI_Return_1D_Pct/Alpha_1D_Pct/Cumulative_Alpha_Pct/MDD_Pct)
- run_all() Step-8로 연결 (gas_lib.gs), runRebalanceSheet_ 이후 실행
[CI/CD] validate_formula_registry.py 수정 (WBS-5.1 완성)
- spec/formulas/manifest.yaml 신규 생성 (domains/manifest.yaml 동일 내용)
- RetirementAssetPortfolio.yaml에 formula_registry_manifest 등록
- validate_specs.py PASS 복원 → run_release_dag_v3 gate=PASS step_count=55
[CI/CD] Synology Gitea act_runner 환경 최적화
- runs-on: ubuntu-latest → self-hosted (NAS host-based runner)
- actions/setup-python / actions/setup-node 제거 (NAS에 직접 설치)
- python → python3 명시
- actions/checkout@v3 → v4
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 16:46:44 +09:00
kjh2064
467e3fd441
feat: WBS-5.3 일일 타이머 트리거 설정 함수 추가
...
- gdf_06_rebalance.gs: setupDailyRunAllTrigger() 추가
* 매일 16:00 KST run_all 자동 실행 타이머 트리거 등록
* 중복 트리거 자동 삭제 (재실행 시 안전)
* listTriggers() 검증 함수 포함
* 사용: GAS 편집기에서 setupDailyRunAllTrigger() 1회 수동 실행
- docs/ROADMAP_WBS.md: WBS-5.3 완료 표시
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 16:23:39 +09:00
kjh2064
72f8d61244
feat: Sprint-3 완결 + Sprint-4 착수 (WBS-3.2, 3.4, 5.2)
...
주요 변경:
- [WBS-3.2] 리밸런싱 V2 신호 가중 목표배분 (signal_weighted_ss001_v1)
* equal_weight -> SS001_Norm_Score 비례 버킷내 배분
* 하네스: 삼성(36.84%) > SK하이닉스(29.16%), Core=66.00% PASS
- [WBS-3.4] logDailyAssetHistory_ SpreadsheetApp.getActiveSpreadsheet() -> getSpreadsheet_() 수정
* run_all 컨텍스트에서 null 반환 방지
- [WBS-5.2] deploy_gas.py 전면 재작성
* src/gas_adapter_parts/ + src/gas/ 양쪽 소스 탐색
* gdc_01+gdc_02 -> gas_data_collect.gs 번들링
* dry-run PASS: 17개 파일 WARN 0건
- src/gas/ 디렉토리 신규 추가 (CLASP 조직화 구조)
- tools/automate_routine.py, download_trading_data.py 신규 추가
- .gitignore: .clasprc.json OAuth 토큰 제외 추가
- ROADMAP_WBS.md: Sprint-3 [x] 완료, Sprint-4 착수 목록 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 16:22:19 +09:00
kjh2064
0581edf3c2
docs: ROADMAP_WBS.md를 Sprint-2 완료 상태로 복구
2026-06-13 16:03:25 +09:00
kjh2064
eabacde438
feat: Sprint-3 (펀더멘털 피드 완성, MDD 모니터링 구축, Gitea CI/CD 파이프라인 추가) (2026-06-13)
...
주요 변경 사항:
- tools/ingest_fundamental_raw.py 수정:
* yfinance 패키지를 활용한 Yahoo Finance 펀더멘털 연동 파이프라인 전면 개편
* FCF, OCF 및 순부채(totalDebt - totalCash) 자동 폴백 계산을 구현하여 40개 NULL 컬럼 수집 완성
- src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs 수정:
* 일별 자산 및 MDD를 기록하는 logDailyAssetHistory_ 함수 구현 및 runDataFeed() 연동
- tools/build_realized_performance_v1.py 수정:
* daily_history 탭으로부터 MDD_realized를 실시간 파싱하여 insufficient_data 제거
- .gitea/workflows/ci.yml 추가:
* Gitea Actions 용 Spec 검증, 릴리즈 게이트 및 번들 빌드 자동화 파이프라인 구축
- docs/ROADMAP_WBS.md 수정:
* WBS-2.1, WBS-3.4, WBS-5.1 과업의 체크박스를 완료[x] 상태로 갱신
- 검증 결과: npm run full-gate (55단계 릴리즈 게이트) PASS 검증 완료
Co-Authored-By: Antigravity AI <noreply@google.com >
2026-06-13 14:31:40 +09:00
kjh2064
5cc95a8fd0
docs: ROADMAP_WBS.md Sprint-2 완료 상태 및 KPI 갱신
2026-06-13 14:06:15 +09:00
kjh2064
8979ee7689
docs: 퀀트투자 엔진 전체 로드맵 & WBS & 하네스 성공 기준 작성
...
- 5개 페이즈 로드맵 (P1 기반경화 → P5 완전자동화)
- 21개 WBS 항목, 각 항목별 데이터 기반 성공 하네스
- 현재 완성도 KPI 매트릭스 (NULL 40→10, lifecycle 9→100%)
- Sprint 1~3 즉시 실행 목록
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 13:36:15 +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