From 7abe8d5089a859bb51b64dc4d73e4012ac7ff33e Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 14 Jun 2026 14:56:49 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20routing=5Fgate=20=EC=8B=A4=EC=B8=A1=20PA?= =?UTF-8?q?SS=20=ED=99=95=EC=9D=B8=20+=20spec/30=20=EB=B3=B4=EC=A0=95=20+?= =?UTF-8?q?=20DAG=20step=5Fcount=2068=20=EA=B0=B1=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - spec/30: routing_gate FAIL→PASS (2026-06-14 실측: SHORT=12.5% MID=50.0% LONG=37.5%) pass/fail 카운트 9/8→10/7 (58.82%), reason 7개 기준 미달로 갱신 - spec/13: FACTOR_LIFECYCLE_COMPLETENESS_V1 formula 등록 - spec/41: step_count 67→68 (validate_factor_lifecycle_completeness 기존 포함 확인) - tools/build_horizon_rebalance_plan_v1.py: docstring 갱신 (MID/LONG 상한 명시) Co-Authored-By: Claude Sonnet 4.6 --- spec/13_formula_registry.yaml | 2 ++ spec/30_completion_criteria_contract.yaml | 19 +++++++++---------- spec/41_release_dag.yaml | 2 +- tools/build_horizon_rebalance_plan_v1.py | 6 ++++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/spec/13_formula_registry.yaml b/spec/13_formula_registry.yaml index e99d604..412661b 100644 --- a/spec/13_formula_registry.yaml +++ b/spec/13_formula_registry.yaml @@ -89,6 +89,7 @@ formula_registry: - CANONICAL_ARTIFACT_RESOLVER_V1 - COMPLETION_GAP_V1 - DATA_GATED_PROGRESS_V1 + - FACTOR_LIFECYCLE_COMPLETENESS_V1 - FACTOR_SHADOW_ELIGIBILITY_V1 - FINAL_EXECUTION_DECISION_V2 - FORMULA_REGISTRY_SYNC_V1 @@ -111,6 +112,7 @@ formula_registry: CANONICAL_ARTIFACT_RESOLVER_V1: tools/validate_canonical_artifact_resolver_v1.py COMPLETION_GAP_V1: tools/build_completion_gap_v1.py DATA_GATED_PROGRESS_V1: tools/build_data_gated_progress_v1.py + FACTOR_LIFECYCLE_COMPLETENESS_V1: tools/validate_factor_lifecycle_completeness_v1.py FACTOR_SHADOW_ELIGIBILITY_V1: tools/build_factor_shadow_eligibility_v1.py FINAL_EXECUTION_DECISION_V2: tools/build_final_execution_decision_v2.py FORMULA_REGISTRY_SYNC_V1: tools/build_formula_registry_sync_v1.py diff --git a/spec/30_completion_criteria_contract.yaml b/spec/30_completion_criteria_contract.yaml index 39b0f1f..dd751ae 100644 --- a/spec/30_completion_criteria_contract.yaml +++ b/spec/30_completion_criteria_contract.yaml @@ -133,11 +133,10 @@ criteria: routing_gate: target: "PASS" - current: FAIL - status: FAIL - note: "MID 75.0% > 상한 50% 위반 (horizon_conflict_count=1). routing_confidence=20 — style_horizon_mismatch 6건. SHORT=12.5%(PASS 범위)." - fix: "MID 호라이즌 종목 비중 50% 이하로 조정 — style/horizon 미스매치 해소" - source: "Temp/strategy_routing_audit_v1.json (2026-06-14 실측)" + current: PASS + status: PASS + note: "2026-06-14 실측: SHORT=12.5%, MID=50.0%, LONG=37.5% — 모든 상한 준수. routing_confidence=60." + source: "Temp/strategy_routing_audit_v1.json" confidence_cap_honest: target: "< 5 gap from raw_cap" @@ -151,9 +150,9 @@ criteria: # ── 현재 PASS/FAIL 요약 ──────────────────────────────────────────────────── summary: total_criteria: 17 - passed: 9 - failed: 8 - pass_rate_pct: 52.94 + passed: 10 + failed: 7 + pass_rate_pct: 58.82 last_updated: "2026-06-14" passed_items: @@ -167,6 +166,7 @@ summary: - final_json_schema_valid - sell_engine_gate - golden_test_coverage_ratio + - routing_gate: "PASS (SHORT=12.5% MID=50.0% LONG=37.5% — 2026-06-14 실측)" failed_items: - RELEASE_GATE_TRUTH: "honest_proof_score=45.1 < 70.0 (2026-06-14 실측; T+20 표본 및 펀더멘털 수집 필요)" @@ -175,12 +175,11 @@ summary: - missing_critical_field_count: "3 PENDING (운영 데이터 누적 필요)" - performance_readiness_score: "50 (목표 90, T+20 운영 30건 필요)" - imputed_data_exposure_gate: "IMPUTED_DATA_BLOCK (GAS 펀더멘털 내보내기 후 개선)" - - routing_gate: "FAIL (MID 75.0% > 50% 상한, horizon_conflict=1, routing_confidence=20 — 2026-06-14 실측)" - confidence_cap_honest: "gap 44.6 (펀더멘털 수집 후 자동 개선)" # ── 투자 판단 허용 조건 ────────────────────────────────────────────────────── investment_decision_allowed: false -reason: "9개 기준 미달 — 데이터 정합성·펀더멘털 결측·performance_readiness 미충족" +reason: "7개 기준 미달 — 데이터 정합성·펀더멘털 결측·performance_readiness 미충족 (RELEASE_GATE_TRUTH 차단)" # ── 후속 로드맵 ────────────────────────────────────────────────────────────── roadmap: diff --git a/spec/41_release_dag.yaml b/spec/41_release_dag.yaml index bd29723..5f811a8 100644 --- a/spec/41_release_dag.yaml +++ b/spec/41_release_dag.yaml @@ -1,5 +1,5 @@ schema_version: release_dag.v3 -step_count: 67 +step_count: 68 goal: Linearize package.json scripts into a validated DAG execution graph. execution_order: # 토폴로지 정렬 기준 병렬 실행 wave (의존성 없는 노드들을 동시에 실행 가능) diff --git a/tools/build_horizon_rebalance_plan_v1.py b/tools/build_horizon_rebalance_plan_v1.py index a891ab6..1413465 100644 --- a/tools/build_horizon_rebalance_plan_v1.py +++ b/tools/build_horizon_rebalance_plan_v1.py @@ -1,7 +1,9 @@ """build_horizon_rebalance_plan_v1.py — HORIZON_REBALANCE_PLAN_V1 -routing_gate=FAIL 원인: SHORT 호라이즌 71.4% > 상한 40%. -어떤 종목을 어떤 순서로 줄여야 하는지 결정론적으로 산출한다. +routing_gate=FAIL 원인: strategy_routing_audit_v1.json의 horizon_violations 참조. +SHORT/MID/LONG 각 호라이즌 상한 대비 초과분을 결정론적으로 산출하고 +우선순위 기반 리밸런싱 플랜을 생성한다. +상한: SHORT=40%, MID=50%, LONG=80% 입력: horizon_classification_v1.json + final_judgment_gate_v1.json + strategy_routing_audit_v1.json 출력: Temp/horizon_rebalance_plan_v1.json