Commit Graph

301 Commits

Author SHA1 Message Date
kjh2064 2eaa981b61 WBS-7.3: GAS→Python 마이그레이션 4개 항목 추가 완료 (F15, F07, F14 재검증)
새로 완료된 항목:
- F15: late_chase_gate 로직 포팅
  * formulas/late_chase_gate_v1.py: is_late_chase_blocked() 구현
  * tests/parity/test_late_chase_gate_parity_v1.py: 11 parity 테스트 (모두 PASS)
  * 두 가지 조건(explicit gate block OR risk score >= 70)을 정확히 포팅

- F07: score_thresholds 상수 모듈 추가
  * formulas/score_thresholds_v1.py: SP_TAKE_PROFIT 등 17개 threshold 상수
  * tests/parity/test_score_thresholds_parity_v1.py: 9 parity 테스트 (모두 PASS)
  * GAS THRESHOLDS 객체의 모든 값 정확히 재현

- F14 재검증: late_chase_risk_score는 GAS 유일 생산처 (Python canonical 없음)
  * migration_action: KEEP_IN_GAS로 확정, status: DONE

전체 테스트: 135/135 PASS

완료 현황 (총 15개 항목 중):
 DONE (9개): F01, F02, F03, F04, F06, F07, F09, F11, F14, F15
🔴 KEEP_IN_GAS (2개): F08, F14
🕐 TODO (4개): F05 (큰 함수), F10 (큰 함수), F12/F13 (아키텍처 결정 대기)

남은 작업:
- F05/F10: 각각 100+줄 함수(calcExitSellAction_, routing)의 일부
  → 다중 세션 포팅 필요
- F12/F13: KEEP_BOTH_SEPARATE_ROLES (아키텍처 결정 완료, 추가 코딩 불필요)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-22 22:49:48 +09:00
kjh2064 af1236202d WBS-7.3: GAS→Python 마이그레이션 5개 항목 완료 (F14, F02-F06)
- F14: late_chase_risk_score 검증
  * GAS가 유일한 생산처 (Python canonical 없음)
  * migration_action: KEEP_IN_GAS로 정정, status: DONE

- F02/F03/F04/F06: priceBasis 로직 포팅
  * formulas/price_basis_v1.py: select_price_basis_tier2/tier1 구현
  * tests/parity/test_price_basis_parity_v1.py: 8 parity 테스트 (모두 PASS)
  * GAS Number.isFinite() 의미론 정확히 재현 (math.isfinite 사용)
  * 모든 테스트 112/112 PASS

남은 작업 (4개):
- F05: decision_logic (action assignment)
- F07: score_logic (threshold addition)
- F10: routing decision
- F15: late_chase_gate

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-22 22:45:00 +09:00
kjh2064 a419330157 Merge pull request 'Merge feature/kis-collection-enhancements into main' (#74) from feature/kis-collection-enhancements into main
Reviewed-on: http://kjh2064.synology.me:8418/kjh2064/myfinance/pulls/74
2026-06-22 19:02:31 +09:00
kjh2064 5bda54c7ba test(snapshot-admin): stabilize web validation seeds
Snapshot Admin Web Validation / validate-snapshot-admin-smoke (push) Has been cancelled
Snapshot Admin Web Validation / validate-snapshot-admin-full (push) Has been cancelled
2026-06-22 18:59:09 +09:00
kjh2064 4c8048358a chore(gitea): add PR harness validator 2026-06-22 18:56:30 +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 c576138829 Merge pull request 'Merge feature/kis-token-db-cache into main' (#73) from feature/kis-token-db-cache into main
Reviewed-on: http://kjh2064.synology.me:8418/kjh2064/myfinance/pulls/73
2026-06-22 18:44:18 +09:00
kjh2064 4624292b50 test(kis-token): add unit tests for SQLite-based OAuth2 token database caching and expiration 2026-06-22 18:40:12 +09:00
kjh2064 00e428f94f feat(kis-token): transition OAuth2 token cache from JSON files to SQLite database 2026-06-22 18:40:12 +09:00
kjh2064 3456f58d63 WBS-7.11: Extend spec-to-code mapping to 20% coverage and pass all validations 2026-06-22 18:40:12 +09:00
kjh2064 4f6341184b feat(kis-token): transition OAuth2 token cache from JSON files to SQLite database 2026-06-22 18:14:45 +09:00
kjh2064 712b16bc73 Merge pull request 'data_feed/macro 원자료 Python/SQLite 수집 확장 + distribution_risk 역할분리' (#72) from codex/roadmap-publish into main
Reviewed-on: http://kjh2064.synology.me:8418/KimJaeHyun/myfinance/pulls/72
2026-06-22 14:57:57 +09:00
kjh2064 514b54433b Merge origin/main into codex/roadmap-publish 2026-06-22 14:55:43 +09:00
kjh2064 e4be187973 WBS-7.11: Extend spec-to-code mapping to 20% coverage and pass all validations 2026-06-22 12:34:30 +09:00
kjh2064 f90fc0afb3 WBS-7.3: Complete GAS-to-Python parity checks for take-profit pricing basis, decision routing and scoring thresholds (F02-F07) with test suite expansion 2026-06-22 11:41:40 +09:00
kjh2064 e8d9912cfc WBS-7.3.6: Verify stop_loss_gate (F11) and late_chase_gate (F15) decisions parity via test expansion 2026-06-22 11:27:55 +09:00
kjh2064 84df6e1f7e Refactor unit tests to remove pytest dependency and use unittest.TestCase 2026-06-22 11:18:57 +09:00
kjh2064 dcd73de05f WBS-7.3.4: Updated migration ledger status to DONE for F12, F13, F14 findings after establishing parity 2026-06-22 10:55:47 +09:00
kjh2064 bdaa0173f2 WBS-7.13: Implemented late_chase_risk_score parity unit tests to verify algorithm correctness 2026-06-22 10:54:06 +09:00
kjh2064 2701721d4b WBS-7.12: Implemented stop_loss_gate parity unit tests to verify stop loss logic matches specification 2026-06-22 10:51:53 +09:00
kjh2064 39ee9c620f WBS-7.3.1: Upgraded distribution_risk_score algorithm to match GAS and implemented parity tests 2026-06-22 10:42:00 +09:00
kjh2064 b5ef2017a2 WBS-7.11: PostgreSQL polymorphic store driver & placeholder mapping in data_collection_store_v1.py 2026-06-22 10:28:07 +09:00
kjh2064 93f046c76c WBS-7.9, WBS-7.10: KIS data collection fallback resiliency & deploy_gas.py pre-deploy thin-adapter lint integration 2026-06-22 10:25:23 +09:00
kjh2064 4266039d1c snapshot admin workbook inventory 2026-06-22 02:43:58 +09:00
kjh2064 6d4ee39e04 WBS-7.3 F12/F13: distribution_risk 두 공식 역할 분리 확정(KEEP_BOTH)
GAS calcDistributionRiskRow_의 "THIN_ADAPTER: delegated to Python" 주석이
틀린 주석이었음을 발견 — GAS(DISTRIBUTION_RISK_SCORE_V1, 점수식 BUY 차단
게이트)와 Python calc_distribution_detector_per_ticker(DISTRIBUTION_SELL_DETECTOR_V1,
6신호 카운트, PRE_DISTRIBUTION_EARLY_WARNING 정밀도 보완)는 이미 spec에
서로 다른 고유 formula_id로 등록된 독립 공식이었다. "GAS가 Python의 중복"
이라는 ledger 전제가 거짓이었을 뿐, 코드는 원래부터 올바르게 분리돼 있었다.

사용자 결정(둘 다 유지, 역할 분리)에 따라:
- GAS 소스의 잘못된 주석 정정(gdf_03_portfolio_gates.gs) + 번들 재생성
- 양쪽 formula_registry에 상호 related_formula 참조 추가(향후 혼동 방지)
- governance/gas_logic_migration_ledger_v1.yaml: migration_action을
  DELETE_DISTRIBUTION_RISK_GAS → KEEP_BOTH_SEPARATE_ROLES로 변경, DONE
2026-06-22 02:29:50 +09:00
kjh2064 2af3681fb9 WBS-7.9: keep push CI on core validation only 2026-06-22 01:47:57 +09:00
kjh2064 5c94564c9f Gitea Act Runner — Synology 기동 스크립트 + 토큰 홈 검증 도구
로컬 워크스페이스에서 Gitea Actions를 검증·디스패치할 수 있는
GITEA_TOKEN_HOME API 토큰 계약과, Synology에서 act_runner를
기동하는 스크립트를 추가한다.

- validate_gitea_token_home_v1.py: 저장소 메타데이터 조회, 워크플로
  접근 확인, workflow_dispatch 트리거 + 최신 실행 결과 폴링
- start_act_runner_synology.sh: Synology 환경에서 act_runner 기동
- setup_act_runner.sh: 기동 절차 갱신
2026-06-22 01:44:22 +09:00
kjh2064 cfcf65f822 WBS-7.9: split CI core and ui/storage validation jobs 2026-06-22 01:42:38 +09:00
kjh2064 89b4c118d1 GAS 번들 빌드/동기화 파이프라인 추가
src/gas/core/, src/gas_adapter_parts/의 모듈 소스를 clasp push 대상인
루트 .gs 번들(gas_lib.gs, gas_data_collect.gs, gas_data_feed.gs)로
해시 검증과 함께 생성한다. 번들 파일에는 "GENERATED — DO NOT EDIT
MANUALLY" 헤더와 소스 해시를 새겨 수동 편집 드리프트를 방지한다.

- build_gas_bundle_v1.py: 소스→번들 생성, 해시 헤더 삽입
- validate_gas_bundle_sync_v1.py: 번들이 현재 소스 해시와 일치하는지 검증
- audit_tools_thin_wrapper_v1.py: tools/ CLI가 핵심 로직 없이 thin
  wrapper로만 동작하는지 감사
- deploy_gas.py: 번들 빌드 파이프라인과 연동
2026-06-22 01:42:36 +09:00
kjh2064 530cb5f47a WBS-7.9: 로컬 loopback에서 Basic Auth 게이트 실측 검증
Synology 실배포는 검증 불가하지만, 인증 게이트 자체(401/wrong-401/correct-200,
WWW-Authenticate 헤더)는 로컬에서 --auth-user/--auth-password로 재현해 문서의
실측 절차 1)·3) 기대값과 정확히 일치함을 확인했다. 2)/5)/6)은 실제 NAS·공개
호스트명이 필요해 사용자가 직접 수행해야 함을 명시했다.
2026-06-22 01:39:47 +09:00
kjh2064 47184a2f25 WBS-7.9: trim CI cache-hit overhead and wait for deploy readiness 2026-06-22 01:38:11 +09:00
kjh2064 4b1a33ba48 WBS-7.11 2차 확장: spec-코드 동기화 태깅 12→20개 (7.5%→12.5%)
이미 harness_file:/python_tool:/validator: 필드로 1:1 코드 매핑을
스스로 명시하고 있던 H001~H008 결정론적 하네스 계약 7개(spec/52~58)와
spec/32(canonical_artifact_resolver), spec/37(evaluation_dashboard_contract)에
has_code_implementation/code_path를 추가했다. 모든 대상 파일의 code_path
실존을 사전 확인했다.

governance/rules/00~05, spec/40·45·46·gas_adapter_contract 등 다중 구현체에
걸친 계약은 단일 code_path로 환원하면 거짓 1:1 매핑이 되므로 의도적으로
제외했다(WBS-7.11 핵심 원칙 유지).
2026-06-22 01:36:55 +09:00
kjh2064 6ed2da7a9d WBS-7.9: wait for snapshot admin readiness before verify 2026-06-22 01:30:14 +09:00
kjh2064 32716ec15e fix: Gitea secrets 계약 테스트를 vars.* 키 네이밍으로 동기화
tools/validate_gitea_secrets_contract_v1.py가 secrets.KIS_APP_KEY에서
vars.KIS_APP_KEY로 검증 키를 변경했으나 테스트가 갱신되지 않아 회귀.
2026-06-22 01:29:47 +09:00
kjh2064 744372f75c WBS-7.9: target snapshot admin deploy host runner 2026-06-22 01:07:39 +09:00
kjh2064 05ee10079d WBS-7.9: improve snapshot admin run clarity 2026-06-22 01:02:17 +09:00
kjh2064 ae10512170 Merge remote-tracking branch 'origin/main' into codex/roadmap-publish 2026-06-22 00:58:55 +09:00
kjh2064 316e1fd08c WBS-7.9: clarify snapshot admin smoke gate 2026-06-22 00:58:21 +09:00
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 f2e304a508 fix: clarify platform transition wbs failure notes 2026-06-21 23:40:53 +09:00
kjh2064 e1ce6b3d88 Merge pull request 'Make mock KIS validation dry-run only' (#70) from codex/roadmap-publish into main 2026-06-21 23:23:16 +09:00
kjh2064 3002149fce fix: dry-run mock KIS validation in workflows 2026-06-21 23:22:22 +09:00
kjh2064 640b83080b Merge pull request 'Reinstall cached workflow deps and add snapshot admin pyyaml setup' (#69) from codex/roadmap-publish into main 2026-06-21 23:18:45 +09:00
kjh2064 610b9b1330 fix: reinstall workflow deps on cached venvs 2026-06-21 23:17:57 +09:00
kjh2064 08e43567a3 Merge pull request 'Fix Synology Python 3.8 compatibility and KIS validation deps' (#68) from codex/roadmap-publish into main 2026-06-21 23:11:31 +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 3c49b2d712 Merge pull request 'Synology KIS workflow recovery, branch checkout fix, and seed JSON tracking' (#67) from codex/roadmap-publish into main
Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/67
2026-06-21 22:49:14 +09:00
kjh2064 f0dd9a8ae4 docs: add merge checklist and xlsx decision 2026-06-21 22:47:07 +09:00