Merge pull request '[codex] 로드맵 순차 이행 및 릴리스 게이트 정비' (#65) from codex/roadmap-publish into main

Reviewed-on: http://192.168.123.100:8418/KimJaeHyun/myfinance/pulls/65
This commit is contained in:
2026-06-21 15:48:59 +09:00
275 changed files with 3897 additions and 1565 deletions
+10
View File
@@ -7,6 +7,15 @@
- 하네스 결측은 `DATA_MISSING — 하네스 업데이트 필요`로만 표시한다.
- 차단된 종목의 산출값은 숨기지 말고 shadow ledger로 투명하게 남긴다.
## 0b. 기본 하네스 완료 조건
- 모든 작업은 `YAML + 코드 + 데이터 실체 + 검증 증빙`이 모두 존재할 때만 완료로 본다.
- `YAML`은 계약/공식/거버넌스의 원본 권위다. 관련 spec 또는 governance 파일이 함께 갱신되어야 한다.
- `코드``src/` 또는 `tools/`의 canonical 구현과 생성물이 함께 맞아야 한다.
- `데이터 실체``Temp/`, `GatherTradingData.xlsx`, `GatherTradingData.json`, `runtime/` 등 실제 산출물 또는 데이터 파일로 확인되어야 한다.
- `검증 증빙`은 재현 가능한 명령 출력 또는 생성된 검증 결과 파일로 남겨야 한다.
- 위 4가지 중 하나라도 빠지면 작업은 미완료다. 요약이나 설명만으로 완료 처리하지 않는다.
- 완료 보고에는 반드시 변경된 YAML, 코드, 데이터 파일 경로와 검증 명령을 함께 적는다.
## 1. 읽는 순서
1. `runtime/active_artifact_manifest.yaml`
2. `Temp/final_decision_packet_active.json` (manifest alias)
@@ -83,6 +92,7 @@
- `python tools/validate_schema_model_generation_v1.py`
- `python tools/validate_gas_thin_adapter_v1.py`
- `python tools/validate_agents_shrink_v1.py`
- `python tools/validate_completion_harness_instructions_v1.py`
## 6b. 추가 운영 헌법 원칙 (proposed_AGENTS_constitution_v1 반영)
- Live T+20 표본이 30건 미만이면 `active` 또는 `PASS_100`으로 승격하지 않는다.
+24 -75
View File
@@ -26,86 +26,35 @@ node core_satellite_collector.js
## 운영 표준
하네스/보고서/동기화까지 포함한 최종 게이트는 아래 순서를 사용합니다.
릴리즈와 패키징의 기준 진입점은 아래를 사용합니다.
```powershell
npm run ops:release
```
릴리즈 DAG의 엄격 판정이 필요하면 아래를 사용합니다.
```powershell
npm run full-gate
```
이 스크립트는 아래를 직렬로 수행합니다.
- `convert-data-json`
- `validate-gas-call-arity`
- `validate-proposal-reference`
- `validate-harness-context`
- `validate-operational-report-contract`
- `audit-coverage`
- `validate-harness-coverage-auditor`
- `validate-strategy-tests-contract`
- `validate-breakout-gate`
- `validate-anti-whipsaw`
- `validate-cash-raise-route`
- `validate-brt-harness`
- `validate-determinism`
- `validate-alpha-execution-harness:strict`
- `render-report-json`
- `validate-report-json`
- `validate-report-quality`
- `validate-report-sync`
spec와 데이터 샘플 검증까지 포함한 전체 엄격 검증은 아래를 사용합니다.
패키지 생성은 아래를 사용합니다.
```powershell
npm run validate-engine-strict
npm run prepare-upload-zip
```
proposal 평가 이력까지 갱신하는 일일 실행은 아래를 사용합니다.
`ops:release`는 릴리즈 DAG 전체를 실행하고, 일부 `warn_only` 검증은 `PASS_WITH_WARNINGS`로 기록합니다.
`full-gate``validate-engine-strict`는 엄격 모드로 동일한 릴리즈 DAG를 재검증합니다.
```powershell
npm run daily-feedback-report
```
추가 스크립트:
백필 누적 원장(`backdata_feature_bank`) 상태를 즉시 검증하려면 아래를 사용합니다.
```powershell
npm run validate-backdata-migration-state
```
Outcome/Evaluation 복구 파이프라인(YOLO)을 한 번에 실행하려면 아래를 사용합니다.
```powershell
npm run yolo-outcome-recovery
```
GAS 함수 정의/호출 인자 수 불일치만 단독 점검하려면 아래를 사용합니다.
```powershell
npm run validate-gas-call-arity
```
사용자 판단용 제안표 하네스 출력이 실제로 존재하는지 점검하려면 아래를 사용합니다.
```powershell
npm run validate-proposal-reference
```
GAS `runHarnessRefresh_()` 반영 후에는 아래 강제 검증으로 올릴 수 있습니다.
```powershell
npm run validate-proposal-reference:strict
```
GAS 반영 후 `proposal_reference_json`까지 포함한 최종 엄격 게이트는 아래를 사용합니다.
```powershell
npm run full-gate:proposal-strict
```
spec/데이터 샘플까지 포함한 전체 엄격 검증은 아래를 사용합니다.
```powershell
npm run validate-engine-proposal-strict
```
- `npm run ops:package`
- `npm run ops:validate`
- `npm run ops:build`
- `npm run render-report-json`
- `npm run validate-proposal-reference`
- `npm run validate-gas-call-arity`
## GAS 반영 체크리스트
@@ -116,10 +65,10 @@ npm run validate-engine-proposal-strict
3. Google Sheets `harness_context` 시트에 아래 키 생성 확인
- `proposal_reference_json`
- `proposal_reference_lock`
4. 로컬에서 `npm run convert-data-json` 실행
5. `npm run validate-proposal-reference:strict` 실행
6. `npm run full-gate:proposal-strict` 실행
7. 최종 운영 전환 시 `npm run validate-engine-proposal-strict` 기준으로 사용
4. 로컬에서 `npm run ops:prepare` 실행
5. `npm run ops:release` 실행
6. `npm run full-gate` 실행
7. 최종 운영 전환 시 `npm run prepare-upload-zip`로 패키지 생성 여부를 확인
## 운영 리포트 계약
@@ -132,5 +81,5 @@ npm run validate-engine-proposal-strict
- 전체 게이트에는 `render-report-json -> validate-report-json -> validate-report-quality -> validate-report-sync` 순서가 포함됩니다.
전환 기준:
- `validate-proposal-reference``SKIP`이면 아직 GAS 산출물 미반영 상태
- `validate-proposal-reference:strict``PASS`여야 proposal 하네스 strict 전환 완료
- `validate-proposal-reference` 결과와 `ops:release` 결과를 함께 봅니다.
- `prepare-upload-zip``PASS_WITH_WARNINGS`를 출력하면 warn_only 검증 이슈가 남아 있는 상태입니다.
+15
View File
@@ -4,6 +4,21 @@ This document is the authoritative guide for LLMs analyzing the packaged data fe
---
## Completion Harness
작업 완료는 아래 4가지가 모두 있을 때만 인정한다.
- `YAML` 증빙
- `코드` 증빙
- `데이터 실체` 증빙
- `검증 증빙`
하나라도 없으면 완료로 보지 않는다.
For this guide, the same rule applies: YAML evidence, code evidence, data artifact evidence, and validation evidence must all be present before marking work complete.
---
## 1. Directory & File Mapping
When the zip package is unpacked, the directory structure is organized as follows. Use these files to verify numbers and trace decisions:
+19 -4
View File
@@ -5,6 +5,19 @@
---
## 0b. 완료 조건
모든 작업은 아래 4가지 증빙이 함께 있을 때만 완료로 본다.
- `YAML` 증빙
- `코드` 증빙
- `데이터 실체` 증빙
- `검증 증빙`
하나라도 빠지면 완료로 보지 않는다.
---
## 0. 프로젝트 비전 & 방향성
### 핵심 목표
@@ -23,7 +36,7 @@
| **D2 공식 결정론** | 149개 공식 ID 전부 lifecycle 등록 | 269개 등록 (100%) ✅ |
| **D3 리스크 제어** | Core/Satellite/Cash 버킷 밴드 위반 0건 | RISK_ON 밴드 내 유지 중 |
| **D4 알파 피드백** | 예측→실현 수익 루프 30건 이상 누적 | 0건 (DATA_GATED ~2026-07-15) |
| **D5 실행 자동화** | run_all 1회 실행으로 전체 파이프라인 완결 | 55단계 DAG 구축 완료 ✅ |
| **D5 실행 자동화** | run_all 1회 실행으로 전체 파이프라인 완결 | 98단계 DAG 구축 완료 ✅ |
---
@@ -252,6 +265,7 @@ RS_Line_20D_Slope = RS_Pct_20D의 5일 이동평균 변화율
| **공식 ID** | `FLOW_CREDIT_V1`, `SECTOR_ROTATION_MOMENTUM_V1` |
| **현재 상태** | sector_flow_history 탭 존재, 데이터 누적 중 |
| **신호 로직** | 최근 5일 기관 순매수 상위 섹터 → Flow_Credit 가중치 부여 |
| **진척 아티팩트** | `Temp/sector_flow_history_progress_v1.json` |
| **상태** | 부분 구현 (일일 누적 필요) |
**성공 하네스 (데이터 기준)**:
@@ -259,7 +273,7 @@ RS_Line_20D_Slope = RS_Pct_20D의 5일 이동평균 변화율
검증: sector_flow_history 행 수 ≥ 30 × 섹터 수
Flow_Credit IS NOT NULL for 보유 종목 100%
Flow_Credit 범위: [0.0, 1.0]
현재: Flow_Credit 일부 NULL → 30일 데이터 누적 후 재검증
현재: sector_flow_history = 3일 / 30일, Flow_Credit 25/25 non-null → 30일 데이터 누적 후 재검증
```
---
@@ -361,6 +375,7 @@ MDD = (peak_total_asset - current_total_asset) / peak_total_asset × 100
| **공식 ID** | `ALPHA_FEEDBACK_LOOP_V2` (lifecycle: DATA_GATED) |
| **활성화 조건** | live_t20_count ≥ 30 건 (~2026-07-15 예상) |
| **담당 파일** | `tools/build_operational_t20_outcome_ledger_v1.py` |
| **진척 아티팩트** | `Temp/data_gated_progress_v1.json` |
| **현재 상태** | 스키마 완성, 데이터 0건 |
**성공 하네스 (데이터 기준)**:
@@ -557,7 +572,7 @@ CI 게이트:
신호 품질:
RS 신호 커버리지: 100% → 목표: 100% ✅ (WBS-2.3 완료)
Flow_Credit 커버리지: 60% → 목표: 100% (WBS-2.5 DATA_GATED)
Flow_Credit 커버리지: 100% (data_feed 25/25) → 목표: 100% (WBS-2.5 DATA_GATED)
PEG_Gate 커버리지: 75% → 목표: 80% (WBS-2.4 완료, 음수성장 2종목 제외)
섹터 유니버스 갱신 gate: PASS ✅ (naver_rows=100, representative_rows=12)
@@ -573,7 +588,7 @@ CI 게이트:
honest_proof_score: 50.95 → 목표: ≥70 (T+20 30건 → 70.95 자동 달성 예상)
자동화:
run_all 성공률: 87단계 DAG PASS → 목표: ≥95% ✅ (step_count=87, wave_0~9)
run_all 성공률: 98단계 DAG PASS → 목표: ≥95% ✅ (step_count=98, wave_0~9)
CI/CD 커버리지: 100% → 목표: 100% ✅ (Synology act_runner 온라인, 4게이트 PASS)
수동 개입 횟수: 매일 → 목표: ≤1회/주 (setupDailyRunAllTrigger 설정 후)
```
+5
View File
@@ -11,3 +11,8 @@ This repository is a deterministic quant engine.
- GAS is an adapter layer, not a business-logic layer.
- Prompts are copy-only renderers and must not compute prices, quantities, or thresholds.
## Completion Harness
- A task is complete only when `YAML`, `code`, `data artifact`, and `validation evidence` all exist together.
- Missing any one of the four means the task is incomplete.
+1 -1
View File
@@ -5,4 +5,4 @@
3. Generate canonical artifacts through the builder scripts only.
4. Render reports from canonical data only.
5. Package upload artifacts only after the full gate passes or the output is explicitly audit-only.
6. Treat work as complete only when YAML, code, data artifacts, and validation evidence all exist together.
+17 -5
View File
@@ -16,6 +16,18 @@
"ops:package": "python tools/refresh_trading_calendar.py && python tools/prepare_upload_zip.py --validation-mode release --profile",
"prepare-upload-zip": "python tools/refresh_trading_calendar.py && python tools/prepare_upload_zip.py",
"ops:audit": "python tools/harness_coverage_auditor.py",
"build-prediction-accuracy-harness": "python tools/build_prediction_accuracy_harness_v2.py",
"build-alpha-feedback-loop": "python tools/build_alpha_feedback_loop_v2.py",
"build-operational-alpha-calibration": "python tools/build_operational_alpha_calibration_v2.py",
"build-sector-flow-history-progress": "python tools/build_sector_flow_history_progress_v1.py",
"validate-data-gated-progress": "python tools/validate_data_gated_progress_v1.py",
"build-realized-performance": "python tools/build_realized_performance_v1.py",
"validate-completion-harness": "python tools/validate_completion_harness_instructions_v1.py",
"validate-prediction-accuracy-harness": "python tools/validate_prediction_accuracy_harness_v2.py",
"validate-alpha-feedback-loop": "python tools/validate_alpha_feedback_loop_v2.py",
"validate-operational-alpha-calibration": "python tools/validate_operational_alpha_calibration_v2.py",
"validate-sector-flow-history-progress": "python tools/validate_sector_flow_history_progress_v1.py",
"validate-realized-performance": "python tools/validate_realized_performance_v1.py",
"validate-gas-recovery": "python tools/validate_gas_orchestration_recovery_v1.py",
"ops:clean": "python tools/clean_temp_artifacts_v1.py",
"ops:dev": "node core_satellite_collector.js",
@@ -26,14 +38,14 @@
"render-report-json": "python tools/render_operational_report.py --json GatherTradingData.json --output Temp/operational_report.md --report-json-output Temp/operational_report.json"
},
"dependencies": {
"cheerio": "latest",
"cheerio": "1.2.0",
"googleapis": "^171.4.0",
"iconv-lite": "latest",
"yahoo-finance2": "latest"
"iconv-lite": "0.7.2",
"yahoo-finance2": "3.15.3"
},
"optionalDependencies": {
"adm-zip": "latest",
"fast-xml-parser": "latest"
"adm-zip": "0.5.17",
"fast-xml-parser": "5.8.0"
},
"devDependencies": {
"xlsx": "^0.18.5"
+11
View File
@@ -13,6 +13,17 @@ Use this prompt when producing an investment analysis or HTS-ready playbook.
- HTS 즉시 입력 가능 여부는 제안과 분리해 별도 표로 표시한다.
- 실행 차단이라도 사용자 판단용 `proposal_reference_sheet`는 숨기지 않는다.
## DEFAULT COMPLETION HARNESS
이 프롬프트로 수행하는 모든 작업은 아래 4가지를 모두 충족해야 완료로 본다.
1. `YAML` 증빙: 관련 spec/governance/contract 파일이 실제로 갱신되었거나, 변경이 필요 없다는 근거가 명시되어야 한다.
2. `코드` 증빙: `src/` 또는 `tools/`의 canonical 코드 변경이 있거나, 변경이 없다는 근거가 명시되어야 한다.
3. `데이터 실체` 증빙: `Temp/`, `GatherTradingData.xlsx`, `GatherTradingData.json`, `runtime/` 등 실제 데이터 또는 산출물이 갱신되었거나, 변경이 없다는 근거가 명시되어야 한다.
4. `검증 증빙`: 재현 가능한 검증 명령과 결과가 제시되어야 한다.
하나라도 빠지면 완료로 간주하지 않는다. 요약이나 해설만으로는 완료 판정할 수 없다.
## CRITICAL — QUANTITATIVE_EXPERT_HARNESS (QEH) — 전문사 정밀도 강제
`data._harness_context`가 JSON에 존재하면 아래 규칙을 **절대적으로** 따른다.
+10
View File
@@ -3,6 +3,16 @@
HTS 캡처 이미지가 제공되면 이 프롬프트를 **분석보다 먼저** 실행한다.
출력 순서: ① 화면판별 → ② 검증 → ③ 충돌감지·캡처우선 선언 → ④ TSV붙여넣기 → ⑤ account_snapshot 상태갱신 → ⑥ 현금요약 → ⑦ 인라인재산출 → ⑧ 다음단계
## 기본 완료 조건
작업 완료는 다음 4개가 함께 있어야 한다.
- `YAML` 증빙
- `코드` 증빙
- `데이터 실체` 증빙
- `검증 증빙`
하나라도 빠지면 완료로 보지 않는다.
---
## STEP 1 — 화면 종류 판별
+4
View File
@@ -7,6 +7,10 @@ You are the investment audit renderer for the retirement-asset portfolio engine.
- Do not calculate prices, quantities, cash shortfall, or gates.
- If data is missing, write `DATA_MISSING` and stop at the safest available ledger output.
## Default Completion Harness
- Complete only when `YAML`, `code`, `data artifact`, and `validation evidence` all exist together.
- If any one of the four is missing, the task is incomplete.
## Authority Rules
- `global_execution_gate` is the top-level decision.
- If the gate is `AUDIT_ONLY`, render Shadow Ledger only.
+4
View File
@@ -7,6 +7,10 @@ You are the investment audit renderer for the retirement-asset portfolio engine.
- Do not calculate prices, quantities, cash shortfall, gates, or scores.
- If data is missing, write `DATA_MISSING — 하네스 업데이트 필요` and stop at the safest available ledger output.
## Default Completion Harness
- A task is complete only when `YAML`, `code`, `data artifact`, and `validation evidence` are all present.
- Missing any one of the four means the task remains incomplete.
## Authority Order
1. `Temp/final_decision_packet_active.json`
2. `GatherTradingData.json:data._harness_context`
+1 -1
View File
@@ -6,4 +6,4 @@ Audit only.
- Do not invent missing numeric values.
- Flag stale or deprecated inputs as invalid.
- Separate live, replay, and informational outputs.
- A task is not complete unless YAML, code, data artifact, and validation evidence all exist together.
@@ -3,6 +3,10 @@
You are a copy-only report renderer. Do not perform any calculations or estimate any numbers.
Read the data only from `Temp/final_context_for_llm_v5.yaml` (or active manifests).
## Default Completion Harness
- Complete only when `YAML`, `code`, `data artifact`, and `validation evidence` are all present.
- Do not mark a task complete if any one of the four is missing.
## Execution Protocol
1. Check `global_execution_gate`. If it is not `PASS`, output a block alert.
2. Under no circumstances should you generate arbitrary prices, quantities, stop losses, or take profits.
+1 -1
View File
@@ -6,4 +6,4 @@ Render only.
- Do not compute prices, quantities, thresholds, or scores.
- If a value is missing, render `DATA_MISSING`.
- Do not reconcile conflicting sources.
- A task is complete only when YAML, code, data artifact, and validation evidence are all available together.
+11
View File
@@ -16,6 +16,17 @@ Review priority:
`alpha_lead_table`, `anti_distribution_table`, `profit_preservation_table`, `smart_cash_raise_table`, `execution_quality_table`.
10. Verify `routing_serving_trace` appears before `QEH_AUDIT_BLOCK`, and both appear before `concise_hts_input_sheet`.
## Default Completion Harness
Do not treat a task as complete unless the change is evidenced in all four forms:
1. YAML or contract evidence in `spec/` or `governance/`
2. Canonical code evidence in `src/` or `tools/`
3. Concrete data/artifact evidence in `Temp/`, `GatherTradingData.xlsx`, `GatherTradingData.json`, or `runtime/`
4. Reproducible validation evidence from command output or generated validation artifacts
If any one of the four is missing, call out the task as incomplete.
Return findings first, ordered by severity.
If no findings exist, state that explicitly and list residual risks or missing tests.
@@ -8,6 +8,10 @@ Strictly adhere to the following rules:
3. If `interim_check_required` is true, you must render the `engine_health_card` section.
4. Keep the reporting format standardized.
## Default Completion Harness
- The report task is complete only when `YAML`, `code`, `data artifact`, and `validation evidence` are all present.
- Missing any one of the four means the task remains incomplete.
## Layout Order
1. engine_health_card
2. global_gate_and_cash_defense
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ABSOLUTE_RISK_STOP_V1."""
FORMULA_ID = 'ABSOLUTE_RISK_STOP_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['holdings', 'df_map']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ALGORITHM_GUIDANCE_PROOF_V1."""
FORMULA_ID = 'ALGORITHM_GUIDANCE_PROOF_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ALPHA_EVALUATION_WINDOW_V1."""
FORMULA_ID = 'ALPHA_EVALUATION_WINDOW_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['entry_date', 'position_class', 't20_return_pct', 't60_return_pct', 'benchmark_core_return_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ALPHA_FEEDBACK_LOOP_V1."""
FORMULA_ID = 'ALPHA_FEEDBACK_LOOP_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['alpha_evaluation_window_json', 'saqg_v1', 'brt_verdict', 'market_regime']
FORMULA_OUTPUT_FIELDS = [{'field': 'alpha_feedback_json', 'subfields': ['eligible_t20_fail_rate', 'eligible_t60_fail_rate', 'recommended_filter_adjustments', 'cases_analyzed']}]
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ANTI_CHASE_V1."""
FORMULA_ID = 'ANTI_CHASE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ANTI_CHASING_VELOCITY_V1."""
FORMULA_ID = 'ANTI_CHASING_VELOCITY_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close', 'close_1d_ago', 'close_5d_ago', 'market_regime']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ANTI_LATE_ENTRY_GATE_V2."""
FORMULA_ID = 'ANTI_LATE_ENTRY_GATE_V2'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ANTI_WHIPSAW_GATE_V1."""
FORMULA_ID = 'ANTI_WHIPSAW_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close_price', 'ma20', 'rsi14']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ARTIFACT_FRESHNESS_GATE_V1."""
FORMULA_ID = 'ARTIFACT_FRESHNESS_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for AUDIT_REPLAY_SNAPSHOT_V1."""
FORMULA_ID = 'AUDIT_REPLAY_SNAPSHOT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for BENCHMARK_RELATIVE_TIMESERIES_V1."""
FORMULA_ID = 'BENCHMARK_RELATIVE_TIMESERIES_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['price.ret5D', 'price.ret20D', 'price.ret60D', 'price.close', 'high52w', 'globalKospiRet5D_', 'globalKospiRet20D_', 'globalKospiRet60D_', 'globalKospiDrawdown_']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for BLANK_CELL_AUDIT_V1."""
FORMULA_ID = 'BLANK_CELL_AUDIT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['operational_report_json']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for BREAKEVEN_RATCHET_V1."""
FORMULA_ID = 'BREAKEVEN_RATCHET_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['average_cost', 'highest_price_since_entry']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for BREAKOUT_FAILURE_STOP_V1."""
FORMULA_ID = 'BREAKOUT_FAILURE_STOP_V1'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['prior_high', 'close_price', 'days_since_breakout']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('BREAKOUT_FAILURE_STOP_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for BREAKOUT_QUALITY_GATE_V2."""
FORMULA_ID = 'BREAKOUT_QUALITY_GATE_V2'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close', 'ma20', 'ret_3d', 'ret_1d', 'disparity', 'rsi14', 'volume', 'avg_volume_5d', 'timing_score_exit', 'distribution_risk_score', 'late_chase_risk_score']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CANONICAL_ARTIFACT_RESOLVER_V1."""
FORMULA_ID = 'CANONICAL_ARTIFACT_RESOLVER_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CANONICAL_METRICS_V1."""
FORMULA_ID = 'CANONICAL_METRICS_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CAPITAL_STYLE_ALLOCATION_V1."""
FORMULA_ID = 'CAPITAL_STYLE_ALLOCATION_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['smart_money_flow_signal_v2_json', 'fundamental_multifactor_v3_json', 'macro_event_ticker_impact_v1_json', 'liquidity_flow_signal_v1_json']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_CREATION_PURPOSE_LOCK_V1."""
FORMULA_ID = 'CASH_CREATION_PURPOSE_LOCK_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['composite_verdict', 'rs_verdict', 'brt_verdict', 'excess_drawdown_pctp', 'recovery_ratio_20d', 'sfg_v1']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_FLOOR_V1."""
FORMULA_ID = 'CASH_FLOOR_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['total_asset', 'settlement_cash_d2_krw', 'market_risk_score']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RAISE_PARETO_EXECUTOR_V2."""
FORMULA_ID = 'CASH_RAISE_PARETO_EXECUTOR_V2'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RAISE_VALUE_OPTIMIZER_V3."""
FORMULA_ID = 'CASH_RAISE_VALUE_OPTIMIZER_V3'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RATIOS_V1."""
FORMULA_ID = 'CASH_RATIOS_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['settlement_cash', 'reserved_order_amount', 'planned_buy_amount', 'sell_cash_proceeds_d2', 'total_asset']
FORMULA_OUTPUT_FIELDS = {'settlement_cash_ratio': 'settlement_cash / total_asset * 100', 'total_cash_ratio': 'settlement_cash / total_asset * 100', 'buy_power_cash': 'settlement_cash - reserved_order_amount', 'buy_power_ratio': '(settlement_cash - reserved_order_amount) / total_asset * 100', 'post_trade_total_cash_ratio': '(settlement_cash - planned_buy_amount + sell_cash_proceeds_d2) / total_asset * 100'}
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RECOVERY_OPTIMIZER_V1."""
FORMULA_ID = 'CASH_RECOVERY_OPTIMIZER_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['cash_shortfall_target_krw', 'cash_shortfall_min_krw', 'sell_candidates_json', 'immediate_sell_qty', 'sell_limit_price', 'holding_qty']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RECOVERY_OPTIMIZER_V4."""
FORMULA_ID = 'CASH_RECOVERY_OPTIMIZER_V4'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASH_RECOVERY_V1."""
FORMULA_ID = 'CASH_RECOVERY_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASHFLOW_QUALITY_SIGNAL_V1."""
FORMULA_ID = 'CASHFLOW_QUALITY_SIGNAL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CASHFLOW_STABILITY_GATE_V1."""
FORMULA_ID = 'CASHFLOW_STABILITY_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['operating_cf_krw', 'free_cf_krw', 'accrual_ratio_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CLA_REGIME_EXIT_CONDITION_V1."""
FORMULA_ID = 'CLA_REGIME_EXIT_CONDITION_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['ticker', 'rs_verdict', 'brt_verdict', 'frg_5d_sh', 'volume', 'avg_volume_5d', 'market_regime']
FORMULA_OUTPUT_FIELDS = [{'field': 'cla_exit_status', 'unit': 'enum [CLA_ACTIVE,CLA_EXIT_WARNING,CLA_EXIT_CONFIRMED]'}, {'field': 'cla_exit_signals_triggered', 'unit': 'list'}, {'field': 'cla_exit_total_weight', 'unit': 'int'}]
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for COMPLETION_GAP_V1."""
FORMULA_ID = 'COMPLETION_GAP_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for COMPOSITE_VERDICT_V1."""
FORMULA_ID = 'COMPOSITE_VERDICT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['ss001_grade', 'rs_verdict']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for COMPREHENSIVE_PROPOSAL_V1."""
FORMULA_ID = 'COMPREHENSIVE_PROPOSAL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for CONSECUTIVE_STREAK_V1."""
FORMULA_ID = 'CONSECUTIVE_STREAK_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['daily_close_changes']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('CONSECUTIVE_STREAK_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CONTINUOUS_EVALUATION_DASHBOARD_V1."""
FORMULA_ID = 'CONTINUOUS_EVALUATION_DASHBOARD_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for CROSS_SECTION_CONSISTENCY_V1."""
FORMULA_ID = 'CROSS_SECTION_CONSISTENCY_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_INTEGRITY_100_LOCK_V1."""
FORMULA_ID = 'DATA_INTEGRITY_100_LOCK_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_INTEGRITY_100_LOCK_V2."""
FORMULA_ID = 'DATA_INTEGRITY_100_LOCK_V2'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_INTEGRITY_SCORE_V1."""
FORMULA_ID = 'DATA_INTEGRITY_SCORE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_MATURITY_TRUTH_GATE_V1."""
FORMULA_ID = 'DATA_MATURITY_TRUTH_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_MATURITY_TRUTH_GATE_VALIDATOR_V1."""
FORMULA_ID = 'DATA_MATURITY_TRUTH_GATE_VALIDATOR_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_QUALITY_GATE_V2_PY."""
FORMULA_ID = 'DATA_QUALITY_GATE_V2_PY'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DATA_QUALITY_GATE_V3."""
FORMULA_ID = 'DATA_QUALITY_GATE_V3'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DETERMINISTIC_ROUTING_ENGINE_V1."""
FORMULA_ID = 'DETERMINISTIC_ROUTING_ENGINE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['harness_context']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DISTRIBUTION_SELL_DETECTOR_V1."""
FORMULA_ID = 'DISTRIBUTION_SELL_DETECTOR_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close', 'high52w', 'avg_volume_5d', 'volume', 'ret5d', 'flow_credit', 'frg_5d_sh', 'inst_5d_sh', 'rsi14', 'obv_slope_20d']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DIVERGENCE_SCORE_V1."""
FORMULA_ID = 'DIVERGENCE_SCORE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close_price', 'ma20', 'frg_5d_sh', 'inst_5d_sh', 'flow_credit', 'frg_20d_sh']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DRAWDOWN_GUARD_V1."""
FORMULA_ID = 'DRAWDOWN_GUARD_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['win_loss_streak_state', 'win_loss_streak_buy_scale']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for DYNAMIC_HEAT_GATE_V1."""
FORMULA_ID = 'DYNAMIC_HEAT_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['market_regime', 'total_heat_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EARNINGS_GROWTH_QUALITY_GATE_V1."""
FORMULA_ID = 'EARNINGS_GROWTH_QUALITY_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['eps_growth_qoq_pct', 'eps_growth_yoy_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EARNINGS_QUALITY_SIGNAL_V1."""
FORMULA_ID = 'EARNINGS_QUALITY_SIGNAL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ECP_RISK_SCALE_V1."""
FORMULA_ID = 'ECP_RISK_SCALE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['total_asset', 'total_asset_ma10']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EJCE_DIVERGENCE_AUDIT_V1."""
FORMULA_ID = 'EJCE_DIVERGENCE_AUDIT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EJCE_VIEW_RENDERER_V1."""
FORMULA_ID = 'EJCE_VIEW_RENDERER_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['ejce_json', 'alpha_lead_json', 'breakout_quality_gate_json', 'anti_chasing_velocity_json', 'heat_concentration_json', 'portfolio_alpha_confidence']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for ENTRY_TIMING_DECILE_FACTOR_V1."""
FORMULA_ID = 'ENTRY_TIMING_DECILE_FACTOR_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['buy_timing_score', 't5_ledger', 'cut_decile']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for EXECUTION_CAPACITY_LADDER_V1."""
FORMULA_ID = 'EXECUTION_CAPACITY_LADDER_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['planned_order_amount_krw', 'avg_trade_value_20d_krw', 'intraday_trade_value_krw', 'orderbook_top3_depth_krw', 'spread_bps']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('EXECUTION_CAPACITY_LADDER_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EXECUTION_METHOD_LADDER_V1."""
FORMULA_ID = 'EXECUTION_METHOD_LADDER_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['sell_timing_verdict', 'sell_waterfall_gate', 'smart_cash_recovery_gate']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for EXECUTION_PLAN_COMPILER_V1."""
FORMULA_ID = 'EXECUTION_PLAN_COMPILER_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['order_capacity_krw', 'revalidation_snapshot', 'baseline_snapshot']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('EXECUTION_PLAN_COMPILER_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EXECUTION_QUALITY_SCORE_V1."""
FORMULA_ID = 'EXECUTION_QUALITY_SCORE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for EXPECTED_EDGE_V1."""
FORMULA_ID = 'EXPECTED_EDGE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['target_price', 'entry_price', 'stop_price', 'bayesian_confidence_multiplier', 'execution_cost_rate']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for FIFTY_TWO_WEEK_HIGH_TRIGGER_V1."""
FORMULA_ID = 'FIFTY_TWO_WEEK_HIGH_TRIGGER_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close_price', 'high52w']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('FIFTY_TWO_WEEK_HIGH_TRIGGER_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FINAL_JUDGMENT_GATE_V1."""
FORMULA_ID = 'FINAL_JUDGMENT_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FINANCIAL_HEALTH_SCORE_V1."""
FORMULA_ID = 'FINANCIAL_HEALTH_SCORE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['roe_pct', 'operating_margin_pct', 'debt_to_equity', 'fcf_b', 'sector_type']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FLOW_ACCELERATION_V1."""
FORMULA_ID = 'FLOW_ACCELERATION_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['frg_5d_sh', 'frg_20d_sh', 'close_price', 'ma20']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FLOW_CREDIT_V1."""
FORMULA_ID = 'FLOW_CREDIT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['close_price', 'open_price', 'previous_close_price', 'volume', 'avg_volume_5d', 'frg_5d_sh', 'inst_5d_sh', 'flow_ok']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FOLLOW_THROUGH_DAY_CONFIRM_V1."""
FORMULA_ID = 'FOLLOW_THROUGH_DAY_CONFIRM_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['days_since_breakout', 'ret_since_breakout', 'vol_today', 'vol_breakout_day', 'close', 'ma20']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for FORECAST_SIMULATION_ENGINE_V1."""
FORMULA_ID = 'FORECAST_SIMULATION_ENGINE_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['net_profit_distribution_after_tax_fee_slippage', 'sample_count_total', 'sample_count_same_regime', 'execution_mode']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('FORECAST_SIMULATION_ENGINE_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FUNDAMENTAL_MULTI_FACTOR_SCORE_V2."""
FORMULA_ID = 'FUNDAMENTAL_MULTI_FACTOR_SCORE_V2'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['roe_pct', 'opm_pct', 'revenue_growth_pct', 'op_income_growth_pct', 'market_share_proxy_pct', 'operating_cf_krw', 'free_cf_krw', 'debt_ratio_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FUNDAMENTAL_MULTIFACTOR_V3."""
FORMULA_ID = 'FUNDAMENTAL_MULTIFACTOR_V3'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FUNDAMENTAL_QUALITY_GATE_V1."""
FORMULA_ID = 'FUNDAMENTAL_QUALITY_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['roe_pct', 'op_income_growth_pct', 'debt_ratio_pct', 'operating_cf_krw', 'pe_ttm']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for FUNDAMENTAL_RAW_INGEST_V1."""
FORMULA_ID = 'FUNDAMENTAL_RAW_INGEST_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for GOLDEN_CROSS_SIGNAL_V1."""
FORMULA_ID = 'GOLDEN_CROSS_SIGNAL_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['ma20', 'ma20_prev', 'ma60', 'ma60_prev']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('GOLDEN_CROSS_SIGNAL_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for GROWTH_RATE_SIGNAL_V1."""
FORMULA_ID = 'GROWTH_RATE_SIGNAL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for HARNESS_DATA_FRESHNESS_GATE_V1."""
FORMULA_ID = 'HARNESS_DATA_FRESHNESS_GATE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'data_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['metadata.generated_at', 'metadata.market_date', 'today_date']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for HEAT_CONCENTRATION_ALERT_V1."""
FORMULA_ID = 'HEAT_CONCENTRATION_ALERT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['heat_share_pct']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for HORIZON_ALLOCATION_LOCK_V1."""
FORMULA_ID = 'HORIZON_ALLOCATION_LOCK_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['invest_horizon', 'market_value_krw', 'total_asset_krw']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for HORIZON_CLASSIFICATION_V1."""
FORMULA_ID = 'HORIZON_CLASSIFICATION_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for IMMUTABLE_DECISION_LEDGER_V1."""
FORMULA_ID = 'IMMUTABLE_DECISION_LEDGER_V1'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['decision_id', 'input_hash_bundle', 'execution_mode', 'candidate_ids', 'selected_transition_id']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('IMMUTABLE_DECISION_LEDGER_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for INTRADAY_ACTION_MATRIX_V1."""
FORMULA_ID = 'INTRADAY_ACTION_MATRIX_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['capture_time', 'market_date']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for INVESTMENT_QUALITY_HEADLINE_V1."""
FORMULA_ID = 'INVESTMENT_QUALITY_HEADLINE_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for K2_STAGED_REBOUND_SELL_V1."""
FORMULA_ID = 'K2_STAGED_REBOUND_SELL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['base_sell_qty', 'previous_close_price', 'atr20']
FORMULA_OUTPUT_FIELDS = []
@@ -0,0 +1,10 @@
"""Auto-generated formula stub for LEADER_LIFECYCLE_GATE_V1."""
FORMULA_ID = 'LEADER_LIFECYCLE_GATE_V1'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['relative_strength_leads_sector', 'volume_quality_confirmed', 'above_ma60_or_reclaim_confirmed', 'earnings_revision_status', 'institutional_flow_status', 'current_role']
FORMULA_OUTPUT_FIELDS = []
def execute(inputs: dict[str, object]) -> dict[str, object]:
raise NotImplementedError('LEADER_LIFECYCLE_GATE_V1' + ' is a generated stub.')
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for LEADER_POSITION_WEIGHT_CAP_V1."""
FORMULA_ID = 'LEADER_POSITION_WEIGHT_CAP_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'quant_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['single_position_weight_json', 'market_regime']
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for LIQUIDITY_FLOW_SIGNAL_V1."""
FORMULA_ID = 'LIQUIDITY_FLOW_SIGNAL_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for LLM_NARRATIVE_TEMPLATE_LOCK_V1."""
FORMULA_ID = 'LLM_NARRATIVE_TEMPLATE_LOCK_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'report_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = []
FORMULA_OUTPUT_FIELDS = []
@@ -1,8 +1,8 @@
"""Auto-generated formula stub for LLM_SERVING_CONSTRAINT_V1."""
FORMULA_ID = 'LLM_SERVING_CONSTRAINT_V1'
FORMULA_OWNER = 'TODO_REQUIRED'
FORMULA_STATUS = 'TODO_REQUIRED'
FORMULA_OWNER = 'engine_owner'
FORMULA_STATUS = 'active'
FORMULA_INPUT_FIELDS = ['harness_context']
FORMULA_OUTPUT_FIELDS = []

Some files were not shown because too many files have changed in this diff Show More