WBS-7.11: Extend spec-to-code mapping to 20% coverage and pass all validations
This commit is contained in:
@@ -4,6 +4,8 @@ meta:
|
||||
version: "2026-05-15-F1_modular"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_platform_transition_wbs_v1.py"
|
||||
purpose: "메인 manifest에서 로드되는 구조화 규칙 명세 파일."
|
||||
|
||||
role:
|
||||
|
||||
@@ -4,6 +4,8 @@ meta:
|
||||
version: "2026-05-15-F1_modular"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_specs.py"
|
||||
purpose: "메인 manifest에서 로드되는 구조화 규칙 명세 파일."
|
||||
|
||||
quant_feed_contract:
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
meta:
|
||||
title: "은퇴자산포트폴리오 — 리스크 정책 호환 인덱스 (redirect-only)"
|
||||
parent_file: "RetirementAssetPortfolio.yaml"
|
||||
version: "2026-05-17-phase3_redirect_clarified"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
role: "deprecated_redirect"
|
||||
warning: >
|
||||
이 파일은 경로 호환성 유지 전용입니다. 새 규칙·임계값 추가 금지.
|
||||
실제 리스크 규칙은 아래 canonical_split_files를 직접 참조하십시오.
|
||||
|
||||
canonical_split_files:
|
||||
portfolio_exposure_framework: "spec/risk/portfolio_exposure.yaml"
|
||||
risk_control: "spec/risk/risk_control.yaml"
|
||||
quality_control: "spec/risk/quality_control.yaml"
|
||||
|
||||
legacy_path_aliases:
|
||||
"spec/03_risk_policy.yaml:portfolio_exposure_framework": "spec/risk/portfolio_exposure.yaml:portfolio_exposure_framework"
|
||||
"spec/03_risk_policy.yaml:risk_control": "spec/risk/risk_control.yaml:risk_control"
|
||||
"spec/03_risk_policy.yaml:quality_control": "spec/risk/quality_control.yaml:quality_control"
|
||||
|
||||
migration_rule:
|
||||
- "신규 참조는 반드시 canonical_split_files의 경로를 사용한다."
|
||||
- "기존 문서/예시에서 legacy path가 남아 있으면 alias로 해석하되, 수정 시 새 경로로 교체한다."
|
||||
- "이 파일에는 수치 임계값을 추가하지 않는다."
|
||||
|
||||
validation:
|
||||
- "python tools/validate_specs.py"
|
||||
@@ -0,0 +1,32 @@
|
||||
meta:
|
||||
title: "은퇴자산포트폴리오 — 전략 규칙 호환 인덱스 (redirect-only)"
|
||||
parent_file: "RetirementAssetPortfolio.yaml"
|
||||
version: "2026-05-17-phase3_redirect_clarified"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
role: "deprecated_redirect"
|
||||
warning: >
|
||||
이 파일은 경로 호환성 유지 전용입니다. 새 규칙·임계값 추가 금지.
|
||||
실제 전략 규칙은 아래 canonical_split_files를 직접 참조하십시오.
|
||||
|
||||
canonical_split_files:
|
||||
sector_model: "spec/strategy/sector_model.yaml"
|
||||
entry_timing_guardrails: "spec/strategy/entry_gates.yaml"
|
||||
anti_late_trade_rule: "spec/strategy/entry_gates.yaml"
|
||||
stock_model: "spec/strategy/stock_model.yaml"
|
||||
rebalancing_trigger: "spec/strategy/rebalancing_trigger.yaml"
|
||||
|
||||
legacy_path_aliases:
|
||||
"spec/04_strategy_rules.yaml:sector_model": "spec/strategy/sector_model.yaml:sector_model"
|
||||
"spec/04_strategy_rules.yaml:entry_timing_guardrails": "spec/strategy/entry_gates.yaml:entry_timing_guardrails"
|
||||
"spec/04_strategy_rules.yaml:anti_late_trade_rule": "spec/strategy/entry_gates.yaml:anti_late_trade_rule"
|
||||
"spec/04_strategy_rules.yaml:stock_model": "spec/strategy/stock_model.yaml:stock_model"
|
||||
"spec/04_strategy_rules.yaml:rebalancing_trigger": "spec/strategy/rebalancing_trigger.yaml:rebalancing_trigger"
|
||||
|
||||
migration_rule:
|
||||
- "신규 참조는 반드시 canonical_split_files의 경로를 사용한다."
|
||||
- "기존 문서/예시에서 legacy path가 남아 있으면 alias로 해석하되, 수정 시 새 경로로 교체한다."
|
||||
- "이 파일에는 수치 임계값을 추가하지 않는다."
|
||||
|
||||
validation:
|
||||
- "python tools/validate_specs.py"
|
||||
@@ -4,6 +4,8 @@ meta:
|
||||
version: "2026-05-16-F3_kosdaq_strict"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/compute_formula_outputs.py"
|
||||
purpose: "메인 manifest에서 로드되는 구조화 규칙 명세 파일."
|
||||
|
||||
position_sizing:
|
||||
|
||||
@@ -4,6 +4,8 @@ meta:
|
||||
version: "2026-05-18-F3_zero_adjective"
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_specs.py"
|
||||
purpose: "메인 manifest에서 로드되는 구조화 규칙 명세 파일."
|
||||
machine_readable_schema: "schemas/output_schema.json"
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ meta:
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
role: "derived_adapter"
|
||||
has_code_implementation: true
|
||||
code_path: "tools/build_rebalance_engine_v2.py"
|
||||
purpose: >
|
||||
계좌, 납입한도, 비중, 중복노출, 현금 룰을 별도 포트폴리오 규칙으로 제공한다.
|
||||
canonical 계산은 기존 risk/account 섹션을 참조하되, LLM 적용 순서를 고정한다.
|
||||
|
||||
@@ -5,6 +5,8 @@ meta:
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
role: "derived_adapter"
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/qualitative_sell_strategy_v1.py"
|
||||
purpose: >
|
||||
흩어진 Risk-On/Neutral/Risk-Off 판정을 단일 명세로 고정한다.
|
||||
이 파일은 국면 판정만 담당하며, 개별 종목 매수 결론은 strategy/scoring/portfolio/sizing을 추가 통과해야 한다.
|
||||
|
||||
@@ -5,6 +5,8 @@ meta:
|
||||
language: "ko-KR"
|
||||
timezone: "Asia/Seoul"
|
||||
role: "canonical"
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/convert_xlsx_to_json.py"
|
||||
purpose: >
|
||||
제공 raw JSON의 data.<sheet> 배열과 컬럼을 canonical field로 매핑한다.
|
||||
xlsx는 JSON 재생성 소스이며 일반 LLM 분석에서는 직접 파싱하지 않는다.
|
||||
|
||||
@@ -6,7 +6,10 @@ meta:
|
||||
timezone: "Asia/Seoul"
|
||||
role: "canonical"
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/snapshot_admin_store_v1.py"
|
||||
code_path:
|
||||
- "src/quant_engine/snapshot_admin_store_v1.py"
|
||||
- "tools/validate_account_snapshot_contract_v1.py"
|
||||
- "tools/validate_snapshot_admin_web_v1.py"
|
||||
purpose: >
|
||||
이미지 캡처로 제공되는 계좌·잔고·현금 데이터를 구조화하는 계약.
|
||||
HTS 입력 가능 주문수량은 이 계약을 통과한 account_snapshot 없이는 산출 금지.
|
||||
|
||||
@@ -6,7 +6,9 @@ meta:
|
||||
timezone: "Asia/Seoul"
|
||||
role: "canonical"
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/snapshot_admin_store_v1.py"
|
||||
code_path:
|
||||
- "src/quant_engine/snapshot_admin_store_v1.py"
|
||||
- "tools/validate_snapshot_admin_web_v1.py"
|
||||
purpose: >
|
||||
Google Sheets 'settings' 탭의 구조를 정의한다.
|
||||
GAS 함수 readSettingsTab_()이 이 탭을 읽어 파라미터를 공급한다.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
pipeline_runtime_contract:
|
||||
formula_id: PIPELINE_RUNTIME_CONTRACT_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/profile_pipeline_runtime.py"
|
||||
version: 1
|
||||
modes:
|
||||
bundle:
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
# - tolerance_abs: 두 원천 값이 이 차이 이내면 일치로 간주 (교차섹션 정합성 검사용)
|
||||
|
||||
formula_id: CANONICAL_METRICS_REGISTRY_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/build_canonical_metrics_v1.py"
|
||||
version: "2026-05-29"
|
||||
|
||||
# ─────────────────────────────────────────────────────────
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
behavioral_coverage_contract:
|
||||
formula_id: BEHAVIORAL_COVERAGE_CONTRACT_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_behavioral_coverage_v1.py"
|
||||
version: "2026-05-30"
|
||||
objective: |
|
||||
"formula_id 문자열이 .gs 텍스트에 등장한다" 는 문자열 커버리지(presence-based)를 폐기하고
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
meta:
|
||||
formula_id: IMPUTED_DATA_EXPOSURE_GATE_V1
|
||||
audit_id: ENGINE_AUDIT_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/build_engine_audit_v1.py"
|
||||
version: "2026-05-31_ENGINE_AUDIT_V1"
|
||||
python_tool: tools/build_engine_audit_v1.py
|
||||
validator_tool: tools/validate_engine_audit_v1.py
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
meta:
|
||||
contract_id: COMPLETION_CRITERIA_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_completion_criteria_v1.py"
|
||||
version: "2026-06-14"
|
||||
engine_audit_ref: Temp/engine_audit_v1.json
|
||||
pass_100_ref: Temp/pass_100_criteria_v1.json
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
schema_version: 2026-06-10-goal-risk-budget-harness-v2
|
||||
formula_id: GOAL_RISK_BUDGET_HARNESS_V2
|
||||
has_code_implementation: true
|
||||
code_path: "src/quant_engine/orchestration_harness_v1.py"
|
||||
purpose: 5억 목표와 리스크 예산/현금 방어선 연결. 매 릴리즈 drift 추적 포함.
|
||||
goal_target_krw: 500000000
|
||||
required_fields:
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
schema_version: 2026-06-06-gas-thin-adapter-policy-v1
|
||||
policy_id: GAS_THIN_ADAPTER_POLICY_V1
|
||||
has_code_implementation: true
|
||||
code_path: "tools/validate_gas_thin_adapter_v1.py"
|
||||
purpose: >
|
||||
GAS에서 collect, normalize, export, display만 남기고 decision, sizing,
|
||||
stop_loss, take_profit, risk_score 로직은 Python으로 이전하기 위한 migration plan.
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
meta:
|
||||
version: "2026-05-28"
|
||||
owner: "engine_harness"
|
||||
has_code_implementation: true
|
||||
code_path: "tools/apply_strategy_execution_locks.py"
|
||||
purpose: "전략 실행락 임계값 단일 소스"
|
||||
|
||||
strategy_execution_lock_policy:
|
||||
|
||||
Reference in New Issue
Block a user