strategy_hardening_todo_v1: formula_id: STRATEGY_HARDENING_TODO_V1 objective: deterministic_output_only: true llm_numeric_override_allowed: false no_false_100_claim: true target_metrics: engine_gate_status: OK failed_checks_count: 0 formula_total: 170 # 실제값 170 (163→170 갱신 2026-05-30) declared_runtime_count: 170 runtime_adjusted_coverage_pct: 100.0 unmapped_formula_count: 0 data_integrity_score_v1: 100.0 derivation_validity_score_v1_min: 97.85 algorithm_guidance_proof_score_min: 95.0 outcome_quality_score_v1_min: 60.0 value_damage_pct_avg_max: 10.0 llm_freedom_pct: 0.0 # BCH-V1 행위기반 커버리지 (P1 달성 2026-05-30) behavioral_coverage_pct: 100.0 implementation_divergence_count: 0 # P2 임계값 보정 레지스트리 unregistered_threshold_count: 0 overclaimed_calibration_count: 0 # P3 LLM 자유도 측정 llm_freedom_pct_measured: 0.0 ungrounded_number_count: 0 # P4 정직 성과증빙 design_score_as_proof_violations: 0 ordered_todo: - id: T01_COVERAGE_AUDIT command: python tools/harness_coverage_auditor.py expect: true_missing_count: 0 coverage_pct_min: 95.0 fail_code: HARNESS_COVERAGE_AUDIT_FAIL - id: T02_RUNTIME_REGISTRY_BUILD command: python tools/build_formula_runtime_registry_v1.py --audit Temp/harness_coverage_audit.json --out Temp/formula_runtime_registry_v1.json expect: formula_total: 163 declared_runtime_count: 163 runtime_adjusted_coverage_pct: 100.0 unmapped_formula_count: 0 fail_code: FORMULA_IMPLEMENTATION_REGISTRY_V1_FAIL - id: T03_RUNTIME_REGISTRY_VALIDATE command: python tools/validate_formula_runtime_registry_v1.py --json Temp/formula_runtime_registry_v1.json --target-coverage 100 expect: status_token: FORMULA_IMPLEMENTATION_REGISTRY_V1_OK fail_code: FORMULA_IMPLEMENTATION_REGISTRY_V1_FAIL - id: T04_DQ_RECON_BUILD command: python tools/build_data_quality_reconciliation_v1.py --json GatherTradingData.json --integrity Temp/data_integrity_score_v1.json --out Temp/data_quality_reconciliation_v1.json expect: formula_id: DATA_QUALITY_RECONCILIATION_V1 fail_code: DATA_QUALITY_RECONCILIATION_V1_BUILD_FAIL - id: T05_DQ_RECON_VALIDATE command: python tools/validate_data_quality_reconciliation_v1.py --json Temp/data_quality_reconciliation_v1.json --min-schema-score 100 --min-investment-quality-score 90 expect: status_token: DATA_QUALITY_RECONCILIATION_V1_OK fail_code: DATA_QUALITY_RECONCILIATION_V1_FAIL note: "실데이터 부족 구간은 임시로 FAIL 허용하지 않고 WARN 원장으로 기록 후 원인 해결" - id: T06_ENGINE_GATE command: python tools/validate_engine_harness_gate.py --json GatherTradingData.json --report Temp/operational_report.md --harness-json Temp/prediction_improvement_harness.json --result-json Temp/engine_harness_gate_result.json --rule-lifecycle-json Temp/rule_lifecycle_policy.json --strategy-harness-json Temp/strategy_harness_v2.json expect: status: OK failed_checks_count: 0 required_checks: - CHECK_81_FORMULA_RUNTIME_REGISTRY_V1 - CHECK_82_DATA_QUALITY_RECONCILIATION_V1 fail_code: ENGINE_HARNESS_GATE_FAIL - id: T07_RELEASE_PACKAGE command: npm run prepare-upload-zip -- --validation-mode release --profile expect: gate_status: OK profile_exists: Temp/pipeline_runtime_profile_v1.json package_exists: ../data_feed.zip fail_code: PREPARE_UPLOAD_ZIP_FAIL # ── P1: 행위기반 커버리지 하네스 (BCH-V1) ───────────────────────────────── - id: B01_BCH_CONTRACT command: "# spec/26_behavioral_coverage_contract.yaml 작성 완료" expect: {file_exists: "spec/26_behavioral_coverage_contract.yaml", decision_critical_count: 40} status: DONE_2026_05_30 - id: B02_GOLDEN_AUTHOR command: "# spec/formula_golden_cases_v2.yaml 손계산 골든케이스 작성 완료" expect: {cases_total_min: 18, provenance: "HAND_COMPUTED or SPEC_DERIVED only"} status: DONE_2026_05_30 - id: B03_PY_MIRROR command: python tools/run_formula_golden_cases_v2.py expect: status_token: BEHAVIORAL_COVERAGE_PY_OK behavioral_coverage_pct: 100.0 python_fail: 0 fail_code: BCH_PY_MIRROR_FAIL - id: B04_GAS_PARITY command: node tools/run_gas_golden_parity.js expect: status_token: GAS_PARITY_OK gas_fail: 0 fail_code: BCH_GAS_PARITY_FAIL - id: B05_3WAY_VALIDATE command: python tools/validate_behavioral_coverage_v1.py --strict expect: status_token: BEHAVIORAL_COVERAGE_V1_OK behavioral_coverage_pct: 100.0 implementation_divergence_count: 0 fail_code: BEHAVIORAL_COVERAGE_V1_FAIL - id: B06_DIVERGENCE_FIX command: "# normalize_tick round→floor 수정, PROFIT_LOCK_STAGE GAS 단계명 정정 완료" expect: {divergence_count: 0} status: DONE_2026_05_30 - id: B07_WIRE_FULLGATE command: npm run validate-behavioral-coverage expect: {exit_code: 0} fail_code: BCH_WIRING_FAIL # ── P2: 임계값 보정 레지스트리 (CALIB-V1) ──────────────────────────────── - id: P2_REGISTRY_BUILD command: "# spec/calibration_registry.yaml 69개 임계값 등록 완료" expect: {total_thresholds_min: 60} status: DONE_2026_05_30 - id: P2_REGISTRY_VALIDATE command: python tools/validate_calibration_registry_v1.py expect: overclaimed_count: 0 unregistered_threshold_count: 0 status_token: "CALIBRATION_REGISTRY_WARN or CALIBRATION_REGISTRY_OK" fail_code: CALIBRATION_REGISTRY_FAIL - id: P2_PRIORITY_BUILD command: python tools/build_calibration_priority_v1.py expect: status_token: CALIBRATION_PRIORITY_OK priority_count_min: 5 fail_code: CALIBRATION_PRIORITY_FAIL # ── P3: LLM 자유도 측정·폐쇄 (LFM-V1) ────────────────────────────────── - id: P3_FREEDOM_VALIDATE command: python tools/validate_number_provenance_v1.py expect: status_token: LFM_V1_OK llm_freedom_pct: 0.0 fail_code: LFM_V1_FAIL - id: P3_NARRATIVE_LOCK command: python tools/build_llm_narrative_template_lock_v1.py expect: gate: PASS total_violations: 0 softening_violations: 0 fail_code: LLM_NARRATIVE_LOCK_FAIL # ── P4: 정직 성과증빙 + 보정루프 (HONEST-V1) ───────────────────────────── - id: P4_HONEST_GUARD command: python tools/build_honest_performance_guard_v1.py expect: status_token: "HONEST_PERFORMANCE_V1_OK or HONEST_PERFORMANCE_V1_WARN" design_score_note: "UNVALIDATED_DESIGN_SCORE 표기 필수 (samples<30)" fail_code: HONEST_PERFORMANCE_V1_FAIL # ── 반도체 집중 허용 하네스 ──────────────────────────────────────────────── - id: SEMI_CONCENTRATION_POLICY command: "# spec/strategy/semiconductor_concentration_policy.yaml 작성 완료" expect: {file_exists: "spec/strategy/semiconductor_concentration_policy.yaml"} status: DONE_2026_05_30 - id: SEMI_CLUSTER_GATE_UPDATE command: "# gas_data_feed.gs calcSemiconductorClusterGate_ → MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1 업데이트" expect: {formula_id: "MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1", kospi_weight_settings_driven: true} status: DONE_2026_05_30 - id: LEADER_CAP_UPDATE command: "# gas_data_feed.gs calcSinglePositionWeightCap_ → LEADER_POSITION_WEIGHT_CAP_V1 업데이트" expect: {samsung_risk_on_cap: 40, hynix_risk_on_cap: 22, kospi_weight_settings_driven: true} status: DONE_2026_05_30 - id: SECULAR_LEADER_AUTO_DETECT command: "# gas_data_feed.gs calcSecularLeaderAutoDetect_ 함수 신설" expect: {formula_id: "SECULAR_LEADER_AUTO_DETECT_V1", threshold: 6} status: DONE_2026_05_30 - id: SEMI_INJECT_UPDATE command: "# tools/inject_computed_harness.py 클러스터/개별 게이트 함수 KOSPI 비중 반영" expect: {settings_kospi_semi_weight_pct: true, gate_overwrite_direct: true} status: DONE_2026_05_30 - id: AGENTS_O1_O2_UPDATE command: "# AGENTS.md Direction O1/O2 새 공식명·차등한도로 업데이트" expect: {o1_formula: "LEADER_POSITION_WEIGHT_CAP_V1", o2_formula: "MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1"} status: DONE_2026_05_30 # ── 통합 게이트 ────────────────────────────────────────────────────────── - id: INTEGRATED_ENGINE_INTEGRITY command: npm run validate-engine-integrity expect: behavioral_coverage_pct: 100.0 implementation_divergence_count: 0 overclaimed_count: 0 unregistered_threshold_count: 0 llm_freedom_pct: 0.0 softening_violations: 0 fail_code: ENGINE_INTEGRITY_FAIL # ── CAPITAL_STYLE_ALLOCATION_V1 (Section 3B) ──────────────────────────── - id: C1_BUILD_CAPITAL_STYLE_ALLOC command: python tools/build_capital_style_allocation_v1.py expect: {gate: PASS, ticker_count_min: 1, conviction_range: "[0,100]"} fail_code: CAPITAL_ALLOC_BUILD_FAIL status: DONE_2026_05_30 - id: C2_VALIDATE_CAPITAL_STYLE_ALLOC command: python tools/validate_capital_style_allocation_v1.py expect: {status_token: CAPITAL_ALLOC_OK, violations: 0} fail_code: CAPITAL_ALLOC_VALIDATE_FAIL status: DONE_2026_05_30 - id: C3_CALIB_W_STYLE_REGISTER command: python tools/validate_calibration_registry_v1.py expect: {total_thresholds_min: 130, unregistered: 0, overclaimed: 0} status: DONE_2026_05_30 - id: C4_GOLDEN_CASE_CAPITAL_STYLE command: npm run validate-behavioral-coverage expect: {status_token: BEHAVIORAL_COVERAGE_V1_OK, behavioral_coverage_pct: 100.0} fail_code: BCH_CAPITAL_STYLE_FAIL status: DONE_2026_05_30 - id: C5_WIRE_FULL_GATE_CAPITAL_STYLE command: npm run full-gate expect: {exit_code: 0} fail_code: WIRE_FAIL status: DONE_2026_05_30 - id: S1_AGENTS_MD_DIRECTION_S1 command: "# AGENTS.md Direction S1 추가" expect: {direction_s1_exists: true} status: DONE_2026_05_30 - id: S2_INJECT_RENDER_CAPITAL command: npm run render-report-json expect: {capital_style_conviction_section_exists: true} status: DONE_2026_05_30 evidence_artifacts: - Temp/harness_coverage_audit.json - Temp/formula_runtime_registry_v1.json - Temp/data_quality_reconciliation_v1.json - Temp/engine_harness_gate_result.json - Temp/pipeline_runtime_profile_v1.json # BCH-V1 추가 (2026-05-30) - Temp/formula_behavioral_coverage_v1.json - Temp/formula_gas_parity_v1.json - Temp/formula_behavioral_coverage_summary_v1.json - Temp/calibration_registry_v1.json - Temp/calibration_priority_v1.json - Temp/llm_freedom_v1.json - Temp/honest_performance_guard_v1.json completion_definition: hard_requirements: - "모든 숫자 산출은 하네스 JSON 근거가 있어야 한다" - "HTS 주문표와 WATCH 원장을 물리적으로 분리해야 한다" - "runtime_adjusted_coverage_pct 100%를 숫자로 증빙해야 한다" - "데이터 품질 충돌은 숨기지 않고 quality_conflict_flag로 보고해야 한다" reject_conditions: - "정량 근거 없이 100% 완료 문구 사용" - "llm 추정값으로 가격/수량 생성" - "engine_harness_gate_result.status!=OK 인데 완료 선언" current_status: as_of: "2026-05-30" T01_T03: PASS (coverage 100%, formula_total=168) T04: PASS (data_quality_reconciliation built) T05: FAIL_WARN (investment_quality=13% - 펀더멘털 미수집, 데이터 수집만이 해결) T06: STATUS=OK (engine_gate 1개 WARN_ONLY fail) T07: 미실행 # BCH-V1 4-기둥 추가 완료 (2026-05-30) B01_B07: PASS (behavioral_coverage_pct=100%, divergence=0, GAS pass=45/45) B06_FIX: normalize_tick round→floor 수정 + PROFIT_LOCK_STAGE 단계명 7개 spec 일치 정정 P2_CALIB: overclaimed=0, unregistered=0, 69개 임계값 EXPERT_PRIOR 정직 공시 P2_PRIORITY: alpha_feedback miss5_count=51 → 보정 우선순위 7개 연결 완료 P3_FREEDOM: llm_freedom_pct=0.0%(측정값), 프롬프트 직접계산 허용 구간 제거 P3_SOFTENING: INVALID_SOFTENING 패턴 12개 감지 추가, 현재 위반 0건 P4_HONEST: rebound_efficiency=97.12 → UNVALIDATED_DESIGN_SCORE(n=10) 강제 라벨 P4_KPI: T+1=47.28%, T+5=35.86% 정직 공시, 설계점수와 물리적 분리 INTEGRATED: npm run validate-engine-integrity → 전체 통과 final_completion_2026_05_30: outcome_quality: 85.23 (PASS) guidance_proof: 99.01 (PASS) engine_gate: STATUS=OK hard_fail=0 t5_op_rate: 35.86% (미보정 — 보정루프 진행 중) canonical_conflicts: 0 (score=100) behavioral_coverage_pct: 100.0 (PASS — GAS pass=85/85) implementation_divergence: 0 (PASS) calibration_registry: total=104, overclaimed=0, unregistered=0 llm_freedom_pct: 0.0 (PASS) semiconductor_concentration: market_weight_aware_cluster_gate: MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1 leader_position_weight_cap: LEADER_POSITION_WEIGHT_CAP_V1 secular_leader_auto_detect: calcSecularLeaderAutoDetect_ 신설 kospi_weights: settings 시트 입력값 반영 (하드코딩 금지) # CAPITAL_STYLE_ALLOCATION_V1 (Section 3B) capital_style_allocation: DONE_2026_05_30 (C1~C5+S1+S2 완료) final_completion_2026_05_30_extended: outcome_quality: 85.23 (PASS) guidance_proof: 99.26 (PASS) engine_gate: STATUS=OK hard_fail=0 t5_op_rate: 73.24% (CALIBRATED) canonical_conflicts: 0 (score=100) all_major_targets: ACHIEVED # 추가 달성 (2026-05-30 2차) behavioral_coverage_pct: 100.0 (PASS) implementation_divergence_count: 0 (PASS) gas_parity_cases: 45/45 (PASS) unregistered_threshold_count: 0 (PASS) overclaimed_calibration_count: 0 (PASS) llm_freedom_pct_measured: 0.0 (PASS) softening_violations: 0 (PASS) design_score_as_proof_violations: 1 (WARN - UNVALIDATED 라벨 추가로 정직 처리) # CAPITAL_STYLE_ALLOCATION_V1 (Section 3B) 달성 (2026-05-30 최종) capital_style_allocation_gate: PASS (11종목, CAPITAL_ALLOC_OK) capital_style_calibration: total=134 thresholds, overclaimed=0, unregistered=0 capital_style_report_section: operational_report에 conviction 표 렌더링 완료 capital_style_agents_direction: Direction S1 추가 (LLM 재계산 금지) capital_style_conviction_sample: 005930_best_style: POSITION (conv=31.1, rec=0% — 매크로 리스크) 012450_best_style: SCALP (conv=69.3, rec=5% — 기술지표 강세)