kjh2064
82ca4ddbfd
섹터 유니버스 분리와 월간 갱신 정합화
2026-06-15 02:29:29 +09:00
kjh2064
f56dd37286
feat: sector trend analysis + ETF representative monitor (DAG step_count 81->83)
...
- src/quant_engine/sector_trend_analysis.py: ETF proxy 기반 11개 섹터 동향 + smart money lens
- src/quant_engine/etf_representative_monitor.py: ETF 대표 종목 8개 추적 + 벤치마크 연동
- tools/build_sector_trend_analysis_v1.py: SECTOR_TREND_ANALYSIS_V1 Temp JSON 생성
- tools/build_etf_representative_monitor_v1.py: ETF_REPRESENTATIVE_MONITOR_V1 Temp JSON 생성
- tools/update_workbook_sector_insights.py: Google Sheets 섹터 인사이트 동기화
- spec/41_release_dag.yaml: step_count 81->83, wave_1에 2개 신규 노드 등록
- validate_engine_harness_gate.py: CHECK_87B (SECTOR_TREND_ANALYSIS_V1) + ETF monitor DAG 스텝 추가
- render_operational_report.py: sector_trend_analysis_v1 / etf_representative_monitor_v1 / portfolio_performance_summary 섹션 추가
- gas_lib.gs: doPost + syncSectorInsightSheets_ (섹터 인사이트 GAS 동기화 엔드포인트)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 20:52:17 +09:00
kjh2064
f9b87ce4f2
fix: gs-gate 조건 수정 + Python-only 포뮬러 14개 분류 + CHECK_48 데이터 제한 처리
...
- measure_yaml_gs_ps_coverage.py: gs_pct>=100.0 -> len(block_gs_miss)==0 (THIN_ADAPTER 아키텍처 반영)
- _PYTHON_TOOL_FORMULAS에 14개 추가 (FORMULA_ANCHORS 10개 + PEG/GOAL_RETIREMENT/T1_FORCED_SELL/SELL_CONFLICT)
- GAS 4개 미구현 포뮬러 stub 주석: EXPECTED_EDGE_V1, MARKET_RISK_SCORE_V1, PORTFOLIO_BETA_V1, CASH_RATIOS_V1
- build_algorithm_guidance_proof_v1.py: CHECK_48_REQUEST_RESULT_ADOPTION_BRIDGE_V1 -> _DATA_LIMITATION_CHECKS
- harness_gate_pct 99.03%->100% (106/106), structure_score 99.68->100.0, honest_proof_score 50.89->50.95 (+0.06)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 20:46:28 +09:00
kjh2064
94d8bb20fc
fix: cell_coverage 88.75%→100%, DAG step_count 77→81, 세션15/16 pending fixes
...
## Cell Coverage 개선 (88.75% → 100%)
- tools/build_anti_whipsaw_gate_v1.py: anti_whipsaw_status 스칼라 추출 → anti_whipsaw_gate_v1.json
- tools/build_velocity_v1.py: velocity_1d/5d 포트폴리오 중앙값 집계 → velocity_v1.json
- tools/build_regime_trim_guidance_v1.py: regime_trim_guidance dict 추출 → regime_trim_guidance_v1.json
- tools/build_routing_execution_log_v1.py: request_route + stage_coverage_pct 주입, routing_execution_log_table_v1.json 추가 출력
- tools/build_smart_cash_recovery_v3.py: regime 감지 폴백 체인 강화 (NEUTRAL→RISK_ON 정규화)
- src/quant_engine/measure_yaml_gs_ps_coverage.py: 5개 신규 Temp 파일 temp_outputs 등록
## DAG 등록 (spec/41)
- step_count: 77 → 81
- wave_1 신규: build_anti_whipsaw_gate, build_velocity, build_regime_trim_guidance, build_missing_formula_bridge
- build_routing_execution_log: outputs에 routing_execution_log_table_v1.json 추가
## 세션15/16 Pending Fixes
- tools/build_late_chase_attribution_v1.py: stdout UTF-8 reconfigure
- tools/build_trade_quality_from_t5_v1.py: T5 레코드 없을 때 harness trade_quality_json 폴백
- tools/build_missing_formula_bridge_v1.py: 10개 공식 앵커 브리지 (harness auditor 등록)
- tools/harness_coverage_auditor.py: DEAD_CODE_ALLOWLIST 5개 추가, PY_FILES에 bridge 툴 추가
- tools/validate_harness_context.py: 빈 blueprint 체크섬 0 처리
- runtime/refactor_baseline_v1.yaml: 카운트 업데이트
honest_proof_score: 49.49 → 50.89 (structure 92.69→99.68)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 18:15:21 +09:00
kjh2064
5ff358aa43
Merge pull request 'chore: delete stale GAS files shadowed by gas_adapter_parts (gdf_02~06, gdc_01~02, gdf_01)' ( #51 ) from feature/gas-stale-cleanup into main
...
chore: delete stale GAS files shadowed by gas_adapter_parts
2026-06-14 17:38:36 +09:00
kjh2064
eabc602ef4
chore: delete stale GAS files shadowed by src/gas_adapter_parts/
...
src/gas/engines/gdf_02~06 and src/gas/collection/gdc_01,gdc_02,gdf_01
are all stale shadows of src/gas_adapter_parts/ versions which include
THIN_ADAPTER comments added in Phase 3 (PR#40).
deploy_gas.py _find() searches gas_adapter_parts/ first, so engines/
and collection/ duplicates were never deployed — removing dead code.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 17:38:03 +09:00
kjh2064
2a1a573e96
fix: 세션14 미커밋 개선사항 일괄 처리
...
- inject_computed_harness.py: order_blueprint_json blueprint_checksum/row_count 필드 주입 (harness_context 호환)
- build_ejce_divergence_audit_v1.py: no_data 시 gate FAIL → WARN (DAG 진행 차단 방지)
- harness_coverage_auditor.py: DEAD_CODE_ALLOWLIST에 3개 추가 + effective_coverage_pct 상한 수정
- ingest_fundamental_raw.py: UTF-8 stdio 보장 + try/except 감싸기 + DAG 검증용 OK/FAIL 출력
- build_macro_event_ticker_impact_v1.py: MACRO_EVENT_TICKER_IMPACT_V1 신규 구현
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 17:27:51 +09:00
kjh2064
6697863ad0
chore(gas): auto-update gas_lib.gs Last Updated timestamp (deploy 2026-06-14 17:23:33 KST)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 17:24:17 +09:00
kjh2064
e911f500fa
refactor(gas): GAS 중복 함수 제거 및 루트 레벨 stale .gs 파일 정리
...
- gas_apex_alpha_watch.gs: gas_apex_runtime_core.gs의 5개 실 구현을 shadowing하던
stub/구버전 제거 (applyApexMacroAlphaSuiteImpl_, applyApexMacroEventSuiteImpl_,
calcConsistencyValidatorV2Impl_, calcMacroEventSynchronizerV1Impl_,
calcMacroRegimeAdaptiveGateV2Impl_)
- gas_lib.gs: gdf_05_alpha_engines.gs로 이전된 runAlphaFeedbackLoop_,
getAlphaFeedbackJson_ 스테일 사본 제거
- 루트 레벨 .gs 8개 삭제: src/gas/ 구조 이전 전 구버전, 배포 경로 밖 dead code
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 17:23:14 +09:00
kjh2064
b129deb63f
feat(release): add REPORT_GUIDE.md for structured LLM analysis
2026-06-14 13:27:45 +09:00
kjh2064
904b7c42a4
feat(release): optimize upload zip to include only report/spec/data files
2026-06-14 13:25:33 +09:00
kjh2064
7e136b7f1c
fix(gas-eval-dash): resolve daily_history header mismatch and redeploy version 9
2026-06-14 13:13:01 +09:00
kjh2064
ad77c96157
feat(gas-deploy): auto-update gas_lib timestamp and enforce clasp deploy versioning
2026-06-14 13:10:33 +09:00
kjh2064
7786e60daf
feat(gas-thin-adapter): Phase 3 thin_adapter — 23개 forbidden 함수에 THIN_ADAPTER 위임 주석 삽입
...
GAS_THIN_ADAPTER_POLICY_V1 Phase 3 (thin_adapter) 진행:
- tools/gas_thin_adapter_phase3_annotate.py: 23개 GAS forbidden 함수에 THIN_ADAPTER 주석 자동 삽입 스크립트
- src/gas_adapter_parts 7개 파일: 각 forbidden 함수 본문 첫 줄에
// THIN_ADAPTER: [<responsibility>] delegated to Python — <module>:<function>
주석 추가 (기능 코드 무변경, additive-only)
- spec/39: thin_adapter phase IN_PROGRESS + thin_adapter_result 블록 추가
⚠ GAS 파일 변경됨 — GAS deploy + 사용자 검증 필요 (runDataFeed 실행)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-14 11:32:00 +09:00
kjh2064
8defcc372e
WBS: gas_lib.gs 파일 헤더 주석에 변경 일시 버저닝 추가
2026-06-13 18:51:58 +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
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
38aaf947ed
Merge pull request '[WBS-2.2] US 주식 가격 settings 수동입력 -> 자동 Weight_Pct 연동' ( #7 ) from feature/wbs-2.2 into main
...
Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/7
2026-06-13 14:18:53 +09:00
kjh2064
af610fa14a
Merge pull request '[WBS-2.3] RS(상대강도) 신호 V2 완성' ( #6 ) from feature/wbs-2.3 into main
...
Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/6
2026-06-13 14:18:44 +09:00
kjh2064
d9e3a43e61
feat: WBS-2.2 US 주식 가격 settings 수동입력 -> 자동 Weight_Pct 연동
2026-06-13 14:05:12 +09:00
kjh2064
99b04195c6
feat: WBS-2.3 RS(상대강도) 신호 V2 완성 (macro 시트 동적 헤더 파싱 및 인코딩 버그 수정)
2026-06-13 14:03:07 +09:00
kjh2064
3ea15e8750
Merge pull request 'feat: WBS-1.4 매도 신호 시 Rule_Sell_Qty 자동 산출' ( #3 ) from feature/wbs-1.4 into main
...
Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/3
2026-06-13 13:57:36 +09:00
kjh2064
512da62fe4
Merge pull request 'feat: WBS-1.3 entry_stage 무관 Time_Stop_Date 디폴트 60일 자동 산출' ( #2 ) from feature/wbs-1.3 into main
...
Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/2
2026-06-13 13:54:55 +09:00
kjh2064
edcc6348c8
feat: WBS-1.4 매도 신호 시 Rule_Sell_Qty 자동 산출
2026-06-13 13:54:45 +09:00
kjh2064
a67cbee11c
feat: WBS-1.3 entry_stage 무관 Time_Stop_Date 디폴트 60일 자동 산출
2026-06-13 13:52:04 +09:00
kjh2064
63de4b922f
feat: WBS-1.2 total_asset_krw 실시간 재계산 구현
2026-06-13 13:51:25 +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