schema_version: formula_domain.v1 source: C:\Temp\data_feed\spec\13_formula_registry.yaml domain: reporting formulas: FLOW_CREDIT_V1: purpose: 가격·거래량·5D 수급 품질을 0~1 점수로 계산 inputs: - field: close_price unit: KRW_per_share - field: open_price unit: KRW_per_share optional: true - field: previous_close_price unit: KRW_per_share optional: true - field: volume unit: shares - field: avg_volume_5d unit: shares - field: frg_5d_sh unit: shares - field: inst_5d_sh unit: shares - field: flow_ok unit: none components: C1_price_action: expression: 1 if close_price >= open_price OR close_price > previous_close_price else 0 weight: 0.3 missing_action: 0 C2_volume_action: expression: 1 if volume >= avg_volume_5d * 1.20 else 0 weight: 0.3 missing_action: 0 C3_flow_action: expression: 1 if flow_ok == true AND (frg_5d_sh + inst_5d_sh) > 0 else 0 weight: 0.4 missing_action: 0 expression: C1_price_action*0.30 + C2_volume_action*0.30 + C3_flow_action*0.40 output: field: flow_credit unit: ratio_0_1 hard_override: - condition: C1_price_action == 0 AND C2_volume_action == 0 result: 0 reason: C3 단독 충족은 물량 받기로 간주 canonical_ref: spec/02_data_contract.yaml:quant_feed_contract.investor_flow_rules.active_quality_gate owner: quant_team lifecycle_state: active input_fields: - close_price - open_price - previous_close_price - volume - avg_volume_5d - frg_5d_sh - inst_5d_sh - flow_ok output_fields: - flow_credit missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation TRADE_QUALITY_SCORER_V1: purpose: '실행된 매수·매도를 T+1/T+5/T+20 기준으로 자동 채점해 뒷박/설거지/저점 투매를 데이터로 증명. O4(WIN_LOSS_STREAK_GUARD_V1) 개선 피드백 루프. ' applicable: monthly_history 업데이트 배치. 진입 후 T+5, T+20 경과 시 자동 평가. inputs: - field: velocity_1d_at_entry unit: percent note: buy quality — 진입 당일 속도 - field: entry_price unit: KRW_per_share note: buy quality - field: ma20_at_entry unit: KRW_per_share note: buy quality - field: volume_ratio_at_entry unit: ratio note: buy quality - field: t5_return_pct unit: percent optional: true note: buy quality T+5 - field: t20_vs_core_pctp unit: percent optional: true note: buy quality T+20 alpha - field: sell_price unit: KRW_per_share note: sell quality - field: ma20_at_sell unit: KRW_per_share note: sell quality - field: average_cost unit: KRW_per_share note: sell quality — 평단 - field: price_t5_after_sell unit: KRW_per_share optional: true note: sell quality T+5 사후 - field: cash_recovered_krw unit: KRW note: sell quality — 실제 회수액 - field: cash_shortfall_min_krw unit: KRW note: sell quality — 목표 현금 부족분 scoring: buy_score: velocity_ok: condition: velocity_1d_at_entry < 1 points: 20 ma20_proximity: condition: entry_price <= ma20_at_entry * 1.01 points: 20 volume_confirm: condition: volume_ratio_at_entry >= 1.2 points: 20 t5_positive: condition: t5_return_pct > 0 points: 20 t20_alpha: condition: t20_vs_core_pctp > 0 points: 20 sell_score: above_ma20: condition: sell_price >= ma20_at_sell * 0.99 points: 25 above_cost: condition: sell_price >= average_cost points: 25 not_too_early: condition: price_t5_after_sell is null OR price_t5_after_sell < sell_price points: 25 cash_goal_met: condition: cash_recovered_krw >= cash_shortfall_min_krw points: 25 grade_table: 90100: grade: EXCELLENT tag: GOOD_EXECUTION 7589: grade: GOOD tag: GOOD_EXECUTION 6074: grade: ACCEPTABLE tag: REVIEW_NEEDED 4059: grade: POOR tag: CHASE_ENTRY_OR_PANIC_EXIT 0_39: grade: CRITICAL tag: PATTERN_ALERT feedback_tags: - CHASE_ENTRY - PANIC_EXIT - DISTRIBUTION_ENTRY - OVERSOLD_PANIC - GOOD_EXECUTION output: field: trade_quality_json schema: - ticker: 종목코드 action: BUY|SELL score: 0~100 grade: enum feedback_tag: enum ground_truth: harness llm_allowed: cite_only prohibition: - LLM이 trade_quality_score를 즉석 계산 금지 - POOR/CRITICAL 종목에 '이번엔 괜찮다' 임의 판단 금지 canonical_ref: AGENTS.md:Direction F1, O4(WIN_LOSS_STREAK) version: 2026-05-22_3RD_HARNESS owner: quant_team lifecycle_state: active input_fields: - velocity_1d_at_entry - entry_price - ma20_at_entry - volume_ratio_at_entry - t5_return_pct - t20_vs_core_pctp - sell_price - ma20_at_sell - average_cost - price_t5_after_sell - cash_recovered_krw - cash_shortfall_min_krw output_fields: - trade_quality_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation PATTERN_BLACKLIST_AUTO_V1: purpose: '같은 종목에서 3회 이상 POOR/CRITICAL grade가 누적되면 자동으로 강화 제한 적용. "같은 실수를 4번째는 시스템이 막는다." ' applicable: TRADE_QUALITY_SCORER_V1 이후. monthly_history 배치. inputs: - field: trade_quality_json unit: array - field: monthly_history unit: array trigger: condition: 동일 ticker, grade IN [POOR, CRITICAL] 누적 횟수 >= 3 action: PATTERN_BLACKLIST_TRIGGERED restrictions_applied: saqg_downgrade: 해당 ticker SAQG를 EXCLUDED로 자동 격하 (BUY 완전 차단) alpha_score_cap: alpha_lead_score 상한 50점 적용 llm_ban: LLM '이번엔 다르다' 서술 금지 — Override는 사용자 수동 확인만 허용 release_condition: 3회 연속 GOOD 이상 달성 시 블랙리스트 해제 output: field: pattern_blacklist_status values: - TRIGGERED - CLEAR - NOT_APPLICABLE additional_fields: - blacklist_ticker - accumulated_poor_count - release_condition_met ground_truth: harness llm_allowed: cite_only prohibition: - TRIGGERED 종목에 예외 매수 서술 금지 - 블랙리스트 해제를 LLM이 임의 선언 금지 — 3회 연속 GOOD 조건 충족만 canonical_ref: AGENTS.md:Direction F2, TRADE_QUALITY_SCORER_V1, SAQG version: 2026-05-22_3RD_HARNESS owner: quant_team lifecycle_state: active input_fields: - trade_quality_json - monthly_history output_fields: - pattern_blacklist_status missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation FUNDAMENTAL_QUALITY_GATE_V1: purpose: 펀더멘털 품질(ROE/이익성장/부채/현금흐름/밸류)을 결정론적으로 점수화해 BUY 허용 여부를 잠금. inputs: - field: roe_pct unit: percent optional: true - field: op_income_growth_pct unit: percent optional: true - field: debt_ratio_pct unit: percent optional: true - field: operating_cf_krw unit: KRW optional: true - field: pe_ttm unit: ratio optional: true output: field: fundamental_quality_json llm_allowed: cite_only version: 2026-05-25_PROPOSAL53 owner: quant_team lifecycle_state: active input_fields: - roe_pct - op_income_growth_pct - debt_ratio_pct - operating_cf_krw - pe_ttm output_fields: - fundamental_quality_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation ROUTING_SERVING_DECISION_TRACE_V2: purpose: 라우팅→서빙→게이트 경로를 단일 trace JSON으로 고정해 사후감사 가능성 확보. inputs: - field: routing_trace_json unit: json - field: export_gate_json unit: json output: field: routing_serving_trace_v2_json llm_allowed: cite_only version: 2026-05-25_PROPOSAL53 owner: quant_team lifecycle_state: active input_fields: - routing_trace_json - export_gate_json output_fields: - routing_serving_trace_v2_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation EARNINGS_GROWTH_QUALITY_GATE_V1: purpose: 분기/연간 이익 성장 일관성으로 매수 게이트를 잠금. inputs: - field: eps_growth_qoq_pct unit: percent optional: true - field: eps_growth_yoy_pct unit: percent optional: true output: field: earnings_growth_quality_json llm_allowed: cite_only version: 2026-05-25_PROPOSAL54 owner: quant_team lifecycle_state: active input_fields: - eps_growth_qoq_pct - eps_growth_yoy_pct output_fields: - earnings_growth_quality_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation ROUTING_DECISION_EXPLAIN_LOCK_V1: purpose: 최종 의사결정 게이트 경로와 차단사유를 JSON으로 고정. inputs: - field: export_gate_json unit: json output: field: routing_decision_explain_json llm_allowed: cite_only version: 2026-05-25_PROPOSAL54 owner: quant_team lifecycle_state: active input_fields: - export_gate_json output_fields: - routing_decision_explain_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation BLANK_CELL_AUDIT_V1: purpose: '보고서 GFM 표의 빈 셀·일률 stub 라벨을 감사하여 셀-레벨 결정론 충족 여부를 판정한다. 금지 일률값(데이터 누락/NEUTRAL/LOSING/정상/-/빈문자)이 하나라도 있으면 INCOMPLETE_TABLE. enforcement_mode_until 이전은 WARN_ONLY, 이후 hard-block. ' inputs: - field: operational_report_json unit: json output: field: blank_cell_audit_v1_json expected_outputs: - gate - blank_fill_pct - incomplete_tables - enforcement_mode llm_allowed: cite_only version: 2026-05-27_PHASE1 owner: quant_team lifecycle_state: active input_fields: - operational_report_json output_fields: - blank_cell_audit_v1_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation EJCE_VIEW_RENDERER_V1: purpose: 'ejce_consensus_table의 Analyst/Trader/Quant 본문 셀을 결정론 템플릿으로 채운다. AGENTS.md EJ1 의무: 3관점 모두 인용. 본문 셀 비면 INCOMPLETE_EJCE_REPORT. ' inputs: - field: ejce_json unit: json - field: alpha_lead_json unit: json - field: breakout_quality_gate_json unit: json - field: anti_chasing_velocity_json unit: json - field: heat_concentration_json unit: json - field: portfolio_alpha_confidence unit: score output: field: ejce_view_renderer_v1_json expected_outputs: - gate - blank_view_count - row_count llm_allowed: cite_only version: 2026-05-27_PHASE1 owner: quant_team lifecycle_state: active input_fields: - ejce_json - alpha_lead_json - breakout_quality_gate_json - anti_chasing_velocity_json - heat_concentration_json - portfolio_alpha_confidence output_fields: - ejce_view_renderer_v1_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation EARNINGS_QUALITY_SIGNAL_V1: purpose: 'OPM(영업이익률) 기반 이익 품질을 결정론적으로 라벨링한다. EXPANDING/STABLE/CONTRACTING/VOLATILE/DATA_MISSING 라벨과 buy_modifier(+10 ~ -15)를 종목별로 산출한다. ' output: field: earnings_quality_signal_v1_json expected_outputs: - gate - label_counts - data_missing_pct llm_allowed: cite_only version: 2026-05-27_PHASE2B owner: quant_team lifecycle_state: active input_fields: [] output_fields: - earnings_quality_signal_v1_json missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation TRADE_QUALITY_FROM_T5_V1: purpose: '운영(non-backfill) T+5 outcome MATCHED/MISMATCH 기반으로 per-ticker 및 전체 거래품질 점수를 산출한다. T+20 성숙 전 bridge; T+20 성숙 후 자동 승격. ' output: file: Temp/trade_quality_from_t5_v1.json expected_outputs: - gate - summary_score - scored_count - trade_quality_basis llm_allowed: cite_only version: 2026-05-28_PHASE4 owner: quant_team lifecycle_state: active input_fields: [] output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation LLM_NARRATIVE_TEMPLATE_LOCK_V1: purpose: 'operational_report.json 각 section.markdown에서 금지 어휘(같다/약간/곧/강한모멘텀 등)를 스캔한다. 발견 시 INVALID_NARRATIVE. gate=PASS: 금지어 0건 강제. ' output: file: Temp/llm_narrative_template_lock_v1.json expected_outputs: - gate - total_violations - sections_checked llm_allowed: cite_only version: 2026-05-28_PHASE5 owner: quant_team lifecycle_state: active input_fields: [] output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation EJCE_DIVERGENCE_AUDIT_V1: purpose: 'EJCE 3관점 block_reasons 다양성 감사. 10/10 동일 사유 → ANALYST_VIEW_HOMOGENEOUS 경고. unique_reason_pct < 60% → WARN. ' output: file: Temp/ejce_divergence_audit_v1.json expected_outputs: - gate - unique_reason_pct - homogeneous_flag - analyst_view_homogeneous llm_allowed: cite_only version: 2026-05-28_PHASE5 owner: quant_team lifecycle_state: active input_fields: [] output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation INVESTMENT_QUALITY_HEADLINE_V1: purpose: 'schema_presence=100% vs investment_quality=13% 충돌을 보고서 CORE 첫 섹션으로 강제 표기. 거짓 표면화 게이트. effective_confidence = raw × cap_factor 적용 증빙. DATA_QUALITY_RECONCILIATION_V1 gate=CONFLICT 시 보고서 첫 섹션에 ⚠️ 경고 표시. ' output: section: investment_quality_headline expected_outputs: - quality_conflict_flag - investment_quality_score - schema_presence_score llm_allowed: cite_only version: 2026-05-28_PHASE6 owner: quant_team lifecycle_state: active input_fields: [] output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation CROSS_SECTION_CONSISTENCY_V1: purpose: 'operational_report.json 섹션 markdown을 파싱해 CANONICAL_METRICS_V1 지표가 여러 섹션에서 동일한 canonical 값으로 렌더링됐는지 검증. 충돌 발견 시 gate=FAIL(WARN). AGENTS.md R1 enforcement_mode_until 단계적 차단 정책 적용. ' input_fields: - Temp/canonical_metrics_v1.json.metrics - Temp/operational_report.json.sections[].markdown expected_outputs: - conflict_count - conflicts - forbidden_uniform_labels - incomplete_tables - score - gate - enforcement_mode_until llm_allowed: cite_only version: 2026-05-29_PHASE7 owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation ALGORITHM_GUIDANCE_PROOF_V1: purpose: 'YAML↔GAS 커버리지·결정론·LLM 의존도를 종합해 알고리즘 안내 품질 점수를 산출한다. ' input_fields: - skeleton_score - cell_coverage_pct - harness_gate_pass - outcome_quality_score expected_outputs: - algorithm_guidance_proof_score - algorithm_guidance_proof_gate llm_allowed: cite_only version: 2026-06-03_ORPHAN_RECONCILE owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation AUDIT_REPLAY_SNAPSHOT_V1: purpose: 'replay 시뮬레이션의 스냅샷을 생성해 의사결정 재현 감사를 지원한다. ' input_fields: - replay_date - portfolio_state - decision_vector expected_outputs: - audit_snapshot - replay_validation_status llm_allowed: cite_only version: 2026-06-03_ORPHAN_RECONCILE owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation CONTINUOUS_EVALUATION_DASHBOARD_V1: purpose: 'T+1/T+5/T+20 성과를 주간 자동 갱신하는 연속 평가 대시보드를 산출한다. ' input_fields: - trade_outcomes - evaluation_period expected_outputs: - weekly_scorecard - profit_giveback_pct - expectancy_pct llm_allowed: cite_only version: 2026-06-03_ORPHAN_RECONCILE owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation DATA_QUALITY_GATE_V2_PY: purpose: 'Python 하네스 전용 데이터 품질 게이트 v2. GAS 버전과 parity 검증. ' input_fields: - harness_context - required_fields expected_outputs: - data_quality_gate - missing_fields - quality_score llm_allowed: cite_only version: 2026-06-03_ORPHAN_RECONCILE owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation DATA_QUALITY_GATE_V3: purpose: '데이터 품질 게이트 v3. imputed 데이터 비율·출처 신뢰도를 추가 검증한다. ' input_fields: - harness_context - imputed_fields - source_reliability expected_outputs: - data_quality_gate_v3 - imputed_ratio - quality_grade llm_allowed: cite_only version: 2026-06-03_ORPHAN_RECONCILE owner: quant_team lifecycle_state: active output_fields: [] missing_policy: DATA_MISSING. 계산 결과를 추정하지 않는다. golden_cases: [] activation_threshold: min_t20_sample: 30 retirement_condition: performance_degradation