WBS-7.3: GAS→Python 마이그레이션 5개 항목 완료 (F14, F02-F06)

- F14: late_chase_risk_score 검증
  * GAS가 유일한 생산처 (Python canonical 없음)
  * migration_action: KEEP_IN_GAS로 정정, status: DONE

- F02/F03/F04/F06: priceBasis 로직 포팅
  * formulas/price_basis_v1.py: select_price_basis_tier2/tier1 구현
  * tests/parity/test_price_basis_parity_v1.py: 8 parity 테스트 (모두 PASS)
  * GAS Number.isFinite() 의미론 정확히 재현 (math.isfinite 사용)
  * 모든 테스트 112/112 PASS

남은 작업 (4개):
- F05: decision_logic (action assignment)
- F07: score_logic (threshold addition)
- F10: routing decision
- F15: late_chase_gate

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 22:45:00 +09:00
parent 4266039d1c
commit af1236202d
64 changed files with 13127 additions and 2760 deletions
+10
View File
@@ -7,6 +7,13 @@ meta:
purpose: >
LLM이 투자 판단을 임의 순서로 수행하지 않도록 상태 머신으로 절차를 고정한다.
각 상태는 통과 조건, 실패 시 행동, 참조 파일을 가진다.
conflict_precedence:
- risk_exit
- cash_floor
- anti_late_entry
- smart_money
- momentum
decision_flow:
initial_state: "MODEL_GOVERNANCE_GATE"
@@ -382,3 +389,6 @@ global_prohibitions:
- "POSITION_SIZING 이전에 정수 주문수량 출력 금지"
- "OUTPUT_VALIDATION 실패 상태에서 즉시 실행 플레이북 출력 금지"
- "BLOCKED 상태를 WATCH로 미화 금지. 차단 사유를 명시한다."
- "anti_late_entry gate 평가 이전에 BUY 또는 STAGED_BUY 결론 출력 금지"
- "anti_late_entry gate가 FAIL인 경우 BUY/STAGED_BUY의 매수 수량은 0으로 강제하며 action은 WATCH 또는 BLOCKED로 강등한다."
+3855 -2353
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -652,6 +652,10 @@ phase_5_platform_transition:
mock_api_validation: "PASS"
no_direct_trading_gate: "PASS"
provenance_completeness_gate: "PASS"
notes: >
`GatherTradingData.xlsx`는 runtime seed 재생성 fallback으로만 허용한다.
collector 본문은 `GatherTradingData.json`만 사용하며, xlsx는 Prepare Raw Seed Snapshot
단계에서만 허용된다.
evidence_artifacts:
- ".gitea/workflows/kis_data_collection.yml"
- "Temp/kis_api_credentials_validation_v1.json"
+28
View File
@@ -199,3 +199,31 @@ operational_rules:
- "entry_mrs_score는 진입 당일 macro 탭 MRS_COMPUTED 행의 Close 값."
- "fc_bucket=Y인 거래는 explore_loss_budget 누적에 포함. 월말 집계."
- "연속 5회 손절(no_bet) 발동 시 runDataFeed에서 EE_Est=0으로 출력 — 신규 진입 자동 억제."
# ─────────────────────────────────────────────────────────────────────────────
# 팩터별 성과 피드백 및 정직 성과증빙 규칙 (P6-T04)
# ─────────────────────────────────────────────────────────────────────────────
honest_performance_guard:
formula_id: HONEST_PERFORMANCE_GUARD_V1
rules:
- rule_id: HP001
desc: "Live 표본 수가 30건 미만인 지표는 active 승격 근거로 사용 금지 (calibration_state=INSUFFICIENT_SAMPLES 강제)"
condition: "live_sample_count < 30"
action: "LOCK_CALIBRATION"
- rule_id: HP002
desc: "Replay 데이터와 Live 데이터를 혼합하여 성과 지표를 산출하는 행위 금지 (replay_in_live_stats == 0)"
condition: "replay_in_live_stats > 0"
action: "INVALIDATE_METRICS"
- rule_id: HP003
desc: "팩터별 성과(T+5/T+20/T+60) 결과를 horizon별로 분리해서 추적 및 저장한다."
required_fields:
- "ticker"
- "action"
- "horizon"
- "factor_set"
- "outcome"
acceptance_criteria:
factor_outcome_join_rate_pct: 95.0
live_sample_under_30_unlock_count: 0
replay_live_mixed_metric_count: 0
+50 -45
View File
@@ -1,36 +1,55 @@
low_capability_llm_pipeline_todo:
formula_id: LOW_CAPABILITY_LLM_PIPELINE_TODO_V1
objective: produce identical package result with deterministic checks
formula_id: LOW_CAPABILITY_LLM_PIPELINE_TODO_V2
objective: 저성능 LLM을 위한 기계적 복사 보고 절차 규정
ordered_steps:
- step_id: S0
action: build runtime registry and data quality reconciliation first
commands:
- python tools/build_formula_runtime_registry_v1.py --audit Temp/harness_coverage_audit.json --out Temp/formula_runtime_registry_v1.json
- 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
- python tools/build_operational_alpha_calibration_v2.py --outcome Temp/outcome_quality_score_v1.json --prediction Temp/prediction_accuracy_harness_v2.json --trade-quality Temp/trade_quality_from_t5_v1.json --scr-v4 Temp/smart_cash_recovery_v4.json --out Temp/operational_alpha_calibration_v2.json
success_artifacts:
- Temp/formula_runtime_registry_v1.json
- Temp/data_quality_reconciliation_v1.json
- Temp/operational_alpha_calibration_v2.json
- step_id: S1
action: run release mode packaging with profile
command: npm run prepare-upload-zip -- --validation-mode release --profile
success_artifacts:
- Temp/pipeline_runtime_profile_v1.json
- Temp/engine_harness_gate_result.json
- ../data_feed.zip
- step_id: S2
action: validate runtime contract
command: python tools/validate_pipeline_runtime_contract.py
expected_status: OK
- step_id: S3
action: run quick mode and compare gate status
command: npm run prepare-upload-zip -- --validation-mode quick --profile
expected_gate_status: OK
- step_id: S4
action: run package-only mode for repackage check
command: npm run prepare-upload-zip -- --validation-mode package-only --profile
expected_gate_status: OK
- step_id: STEP_01
action: "AGENTS.md 읽기"
ambiguous: false
calculation: false
- step_id: STEP_02
action: "active manifest 읽기"
ambiguous: false
calculation: false
- step_id: STEP_03
action: "final_context 읽기"
ambiguous: false
calculation: false
- step_id: STEP_04
action: "engine gate status 확인"
ambiguous: false
calculation: false
- step_id: STEP_05
action: "blockers 먼저 출력"
ambiguous: false
calculation: false
- step_id: STEP_06
action: "allowed/blocked actions 복사"
ambiguous: false
calculation: false
- step_id: STEP_07
action: "shadow ledger 복사"
ambiguous: false
calculation: false
- step_id: STEP_08
action: "data_missing 복사"
ambiguous: false
calculation: false
- step_id: STEP_09
action: "숫자 provenance 확인"
ambiguous: false
calculation: false
- step_id: STEP_10
action: "자유 계산 제거"
ambiguous: false
calculation: false
- step_id: STEP_11
action: "report contract 검증"
ambiguous: false
calculation: false
- step_id: STEP_12
action: "실패 시 DATA_MISSING 또는 REVIEW_ONLY로 종료"
ambiguous: false
calculation: false
forbidden_actions:
- do not set --skip-validate as default resolution
- do not remove validate-engine-strict from release gate
@@ -45,17 +64,3 @@ low_capability_llm_pipeline_todo:
- Temp/operational_alpha_calibration_v2.json.formula_id == OPERATIONAL_ALPHA_CALIBRATION_V2
- Temp/pipeline_runtime_profile_v1.json.mode in [release, quick, package-only]
- Temp/pipeline_runtime_profile_v1.json.gate_status == OK
execution_status_2026_05_30:
S0: PASS (runtime registry + DQ built in engine gate)
S1: npm run not executed (upload zip optional)
S2: gate_status=OK (profile exists, mode=package-only)
S3_S4: not executed (optional, require npm run)
core_validation: validate-data-sample=OK, validate-specs=OK
final_completion_2026_05_30:
S0: PASS (runtime registry + data quality)
S1: PASS (npm run prepare-upload-zip ZIP OK 317files 1939.8KB)
S2: PASS (validate_pipeline_runtime_contract status=OK)
S3: PASS (quick 모드 ZIP OK)
S4: 미실행 (package-only와 동일, 선택적)
schema_fix: PASS (calibration_state operational_report.schema.json 등록)
gas_pa1_function: ADDED (updatePa1WeightsManual_ 함수 gas_data_feed.gs 추가)
+263 -2
View File
@@ -1,5 +1,5 @@
schema_version: release_dag.v3
step_count: 99
step_count: 104
goal: Linearize package.json scripts into a validated DAG execution graph.
has_code_implementation: true
code_path: "tools/run_release_dag_v3.py"
@@ -8,6 +8,7 @@ execution_order:
wave_0:
- audit_entropy
- build_bundle
- build_gas_bundle
- build_macro_event_ticker_impact
- build_engine_health_card
- build_late_chase_attribution
@@ -20,14 +21,17 @@ execution_order:
- convert_xlsx
- validate_active_manifest
- validate_agents_shrink
- validate_docs_no_formula_duplication
- validate_calibration
- validate_cash_ledger
- validate_change_requests
- validate_completion_harness_instructions
- validate_factor_lifecycle
- validate_factor_lifecycle_registry_v1
- validate_factor_lifecycle_completeness
- validate_field_dict
- validate_gas_adapter
- validate_gas_adapter_contract
- validate_golden_coverage
- validate_live_activation
- validate_metric_alias_collision
@@ -38,6 +42,7 @@ execution_order:
- validate_sector_universe_monthly_refresh
- validate_specs
wave_1:
- validate_gas_bundle_sync
- build_anti_whipsaw_gate
- build_data_gated_progress
- build_ejce_view_renderer
@@ -105,6 +110,9 @@ execution_order:
- validate_llm_determinism
- validate_llm_regression
- validate_low_capability
- validate_low_capability_pipeline_todo_v2
- validate_execution_precedence_lock_v2
- validate_order_grammar_v1
- validate_provenance
- validate_prediction_accuracy_harness
- validate_operational_alpha_calibration
@@ -121,6 +129,72 @@ execution_order:
- prepare_zip
dag:
nodes:
build_gas_bundle:
id: build_gas_bundle
command: ["python", "tools/build_gas_bundle_v1.py"]
inputs:
- "tools/build_gas_bundle_v1.py"
- "src/gas/core/gas_lib.gs"
- "src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs"
- "src/gas_adapter_parts/gdc_02_account_satellite.gs"
- "src/gas_adapter_parts/gdf_01_price_metrics.gs"
- "src/gas_adapter_parts/gdf_02_harness_assembly.gs"
- "src/gas_adapter_parts/gdf_03_portfolio_gates.gs"
- "src/gas_adapter_parts/gdf_04_execution_quality.gs"
- "src/gas_adapter_parts/gdf_05_alpha_engines.gs"
- "src/gas_adapter_parts/gdf_06_rebalance.gs"
outputs:
- "gas_lib.gs"
- "gas_data_collect.gs"
- "gas_data_feed.gs"
depends_on: []
timeout_sec: 30
cache_key: "build_gas_bundle_v1"
strict: true
artifact_policy: "keep"
validate_gas_adapter_contract:
id: validate_gas_adapter_contract
command: ["python", "tools/validate_gas_adapter_contract_v1.py"]
inputs:
- "tools/validate_gas_adapter_contract_v1.py"
- "spec/gas_adapter_contract.yaml"
- "schemas/generated/gas_adapter_contract.schema.json"
- "spec/14_raw_workbook_mapping.yaml"
- "spec/15_account_snapshot_contract.yaml"
outputs:
- "Temp/gas_adapter_contract_validation_v1.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_gas_adapter_contract_v1"
strict: true
artifact_policy: "keep"
validate_gas_bundle_sync:
id: validate_gas_bundle_sync
command: ["python", "tools/validate_gas_bundle_sync_v1.py"]
inputs:
- "tools/validate_gas_bundle_sync_v1.py"
- "gas_lib.gs"
- "gas_data_collect.gs"
- "gas_data_feed.gs"
- "src/gas/core/gas_lib.gs"
- "src/gas_adapter_parts/gdc_01_fetch_fundamentals.gs"
- "src/gas_adapter_parts/gdc_02_account_satellite.gs"
- "src/gas_adapter_parts/gdf_01_price_metrics.gs"
- "src/gas_adapter_parts/gdf_02_harness_assembly.gs"
- "src/gas_adapter_parts/gdf_03_portfolio_gates.gs"
- "src/gas_adapter_parts/gdf_04_execution_quality.gs"
- "src/gas_adapter_parts/gdf_05_alpha_engines.gs"
- "src/gas_adapter_parts/gdf_06_rebalance.gs"
outputs:
- "Temp/gas_bundle_validation_v1.json"
depends_on: ["build_gas_bundle"]
timeout_sec: 30
cache_key: "validate_gas_bundle_sync_v1"
strict: true
artifact_policy: "keep"
convert_xlsx:
id: convert_xlsx
command: ["python", "tools/convert_xlsx_to_json.py"]
@@ -665,6 +739,20 @@ dag:
strict: true
artifact_policy: "keep"
validate_low_capability_pipeline_todo_v2:
id: validate_low_capability_pipeline_todo_v2
command: ["python", "tools/validate_low_capability_pipeline_todo_v2.py"]
inputs:
- "tools/validate_low_capability_pipeline_todo_v2.py"
- "spec/23_low_capability_llm_pipeline_todo.yaml"
outputs:
- "Temp/low_capability_pipeline_todo_validation_v2.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_low_capability_pipeline_todo_v2"
strict: true
artifact_policy: "keep"
validate_golden_coverage:
id: validate_golden_coverage
command: ["python", "tools/validate_golden_coverage_100.py"]
@@ -720,6 +808,23 @@ dag:
strict: true
artifact_policy: "keep"
validate_docs_no_formula_duplication:
id: validate_docs_no_formula_duplication
command: ["python", "tools/validate_docs_no_formula_duplication_v1.py"]
inputs:
- "tools/validate_docs_no_formula_duplication_v1.py"
- "AGENTS.md"
- "docs/doctrine.md"
- "docs/runbook.md"
outputs:
- "Temp/docs_no_formula_duplication_v1.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_docs_no_formula_duplication_v1"
strict: true
artifact_policy: "keep"
validate_no_replay_live_mix:
id: validate_no_replay_live_mix
command: ["python", "tools/validate_no_replay_live_mix_v2.py", "--json", "Temp/live_replay_separation_v3.json", "--strict"]
@@ -865,6 +970,145 @@ dag:
strict: true
artifact_policy: "keep"
validate_factor_lifecycle_registry_v1:
id: validate_factor_lifecycle_registry_v1
command: ["python", "tools/validate_factor_lifecycle_registry_v1.py"]
inputs:
- "tools/validate_factor_lifecycle_registry_v1.py"
- "spec/43_quant_factor_taxonomy.yaml"
- "spec/factor_lifecycle_registry.yaml"
outputs:
- "Temp/factor_lifecycle_registry_validation_v1.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_factor_lifecycle_registry_v1"
strict: true
artifact_policy: "keep"
validate_anti_late_entry_gate_v5:
id: validate_anti_late_entry_gate_v5
command: ["python", "tools/validate_anti_late_entry_gate_v5.py"]
inputs:
- "tools/validate_anti_late_entry_gate_v5.py"
- "GatherTradingData.json"
outputs:
- "Temp/anti_late_entry_gate_validation_v5.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_anti_late_entry_gate_v5"
strict: true
artifact_policy: "keep"
validate_decision_graph_precedence_v1:
id: validate_decision_graph_precedence_v1
command: ["python", "tools/validate_decision_graph_precedence_v1.py"]
inputs:
- "tools/validate_decision_graph_precedence_v1.py"
- "spec/routing/decision_graph.yaml"
outputs:
- "Temp/decision_graph_precedence_validation_v1.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_decision_graph_precedence_v1"
strict: true
artifact_policy: "keep"
validate_factor_conflict_precedence_v1:
id: validate_factor_conflict_precedence_v1
command: ["python", "tools/validate_factor_conflict_precedence_v1.py"]
inputs:
- "tools/validate_factor_conflict_precedence_v1.py"
- "spec/strategy/pre_distribution_early_warning_v4.yaml"
- "spec/strategy/smart_money_liquidity_gate_v1.yaml"
- "spec/09_decision_flow.yaml"
- "GatherTradingData.json"
outputs:
- "Temp/factor_conflict_precedence_validation_v1.json"
depends_on: []
timeout_sec: 30
cache_key: "validate_factor_conflict_precedence_v1"
strict: true
artifact_policy: "keep"
validate_honest_performance_guard_v1:
id: validate_honest_performance_guard_v1
command: ["python", "tools/validate_honest_performance_guard_v1.py"]
inputs:
- "tools/validate_honest_performance_guard_v1.py"
- "Temp/prediction_accuracy_harness_v2.json"
- "Temp/honest_performance_guard_v1.json"
outputs:
- "Temp/honest_performance_guard_validation_v1.json"
depends_on: ["build_honest_performance_guard"]
timeout_sec: 30
cache_key: "validate_honest_performance_guard_v1"
strict: true
artifact_policy: "keep"
validate_execution_precedence_lock_v2:
id: validate_execution_precedence_lock_v2
command: ["python", "tools/validate_execution_precedence_lock_v2.py"]
inputs:
- "tools/validate_execution_precedence_lock_v2.py"
- "Temp/final_execution_decision_v4.json"
outputs:
- "Temp/execution_precedence_lock_v2.json"
depends_on: ["build_honest_performance_guard"]
timeout_sec: 30
cache_key: "validate_execution_precedence_lock_v2"
strict: true
artifact_policy: "keep"
validate_order_grammar_v1:
id: validate_order_grammar_v1
command: ["python", "tools/validate_order_grammar_v1.py"]
inputs:
- "tools/validate_order_grammar_v1.py"
- "GatherTradingData.json"
outputs:
- "Temp/order_grammar_validation_v1.json"
depends_on: ["build_honest_performance_guard"]
timeout_sec: 30
cache_key: "validate_order_grammar_v1"
strict: true
artifact_policy: "keep"
validate_cash_floor_policy_v1:
id: validate_cash_floor_policy_v1
command: ["python", "tools/validate_cash_floor_policy_v1.py"]
inputs:
- "tools/validate_cash_floor_policy_v1.py"
- "GatherTradingData.json"
- "Temp/operational_report.json"
outputs:
- "Temp/cash_floor_policy_validation_v1.json"
depends_on: ["build_report"]
timeout_sec: 30
cache_key: "validate_cash_floor_policy_v1"
strict: true
artifact_policy: "keep"
validate_position_sizing:
id: validate_position_sizing
command: ["python", "tools/validate_position_sizing.py"]
inputs:
- "tools/validate_position_sizing.py"
- "spec/01_objective_profile.yaml"
- "Temp/goal_risk_budget_harness_v3.json"
outputs:
- "Temp/position_sizing_validation_v1.json"
depends_on: ["build_report"]
timeout_sec: 30
cache_key: "validate_position_sizing"
strict: true
artifact_policy: "keep"
validate_factor_lifecycle_completeness:
id: validate_factor_lifecycle_completeness
command: ["python", "tools/validate_factor_lifecycle_completeness_v1.py"]
@@ -1213,6 +1457,22 @@ dag:
strict: true
artifact_policy: "keep"
build_honest_performance_guard:
id: build_honest_performance_guard
command: ["python", "tools/build_honest_performance_guard_v1.py"]
inputs:
- "tools/build_honest_performance_guard_v1.py"
- "Temp/rebound_sell_efficiency_v1.json"
- "Temp/late_chase_attribution_v1.json"
- "Temp/operational_report.json"
outputs:
- "Temp/honest_performance_guard_v1.json"
depends_on: ["build_report"]
timeout_sec: 30
cache_key: "build_honest_performance_guard_v1"
strict: true
artifact_policy: "keep"
build_honest_proof_gap_analyzer:
id: build_honest_proof_gap_analyzer
command: ["python", "tools/build_honest_proof_gap_analyzer_v1.py"]
@@ -1221,6 +1481,7 @@ dag:
"Temp/prediction_accuracy_harness_v2.json",
"Temp/imputed_data_exposure_gate_v2.json"]
outputs: ["Temp/honest_proof_gap_analyzer_v1.json"]
depends_on: ["build_algorithm_guidance_proof"]
timeout_sec: 30
cache_key: "build_honest_proof_gap_analyzer_v1"
@@ -1439,7 +1700,7 @@ dag:
command: ["python", "tools/prepare_upload_zip.py", "--skip-validate", "--skip-convert", "--validation-mode", "package-only"]
inputs: ["tools/prepare_upload_zip.py"]
outputs: []
depends_on: ["audit_entropy", "validate_specs", "validate_no_direct_api_trading", "validate_active_manifest", "validate_report_sync", "validate_report_numeric_consistency", "validate_field_dict", "validate_provenance", "validate_low_capability", "validate_golden_coverage", "validate_calibration", "validate_schema_model", "validate_gas_adapter", "validate_agents_shrink", "validate_no_replay_live_mix", "validate_prediction_accuracy_harness", "validate_alpha_feedback_loop", "validate_operational_alpha_calibration", "validate_realized_performance", "validate_data_gated_progress", "validate_sector_flow_history_progress", "validate_runtime_source_whitelist", "validate_cash_ledger", "validate_factor_lifecycle", "validate_factor_lifecycle_completeness", "validate_metric_alias_collision", "validate_architecture_boundaries", "validate_module_io_coverage", "validate_artifact_chain_hash", "validate_artifact_sync", "validate_renderer_no_calc", "validate_packaged_refs", "validate_property_invariants", "validate_anti_late_entry", "validate_rule_lifecycle", "validate_change_requests", "validate_completion_harness_instructions", "validate_engine_health_card", "validate_llm_regression", "validate_llm_copy_only", "build_final_decision", "build_final_context", "build_provenance_ledger", "build_live_replay_separation", "build_late_chase_attribution", "build_profit_giveback_ratchet", "build_shadow_ledger", "build_operating_cadence_signal", "build_engine_health_card", "build_module_io_coverage", "build_artifact_chain_hash", "build_report", "build_bundle", "build_schema_models", "build_architecture_boundaries", "validate_decision_trace", "validate_factor_conflicts", "validate_no_lookahead", "validate_execution_sim", "validate_render_diff", "build_shadow_promotion", "validate_llm_determinism", "build_time_stop_forecast", "validate_live_activation", "build_rebalance_sheet", "build_prediction_accuracy_harness", "build_alpha_feedback_loop", "build_calibration_priority", "build_calibration_change_ledger", "build_calibration_review_report", "build_calibration_approval_list", "build_calibration_decision_draft", "build_operational_alpha_calibration", "build_sector_flow_history_progress"]
depends_on: ["audit_entropy", "validate_execution_precedence_lock_v2", "validate_order_grammar_v1", "validate_specs", "validate_no_direct_api_trading", "validate_active_manifest", "validate_report_sync", "validate_report_numeric_consistency", "validate_field_dict", "validate_provenance", "validate_low_capability", "validate_low_capability_pipeline_todo_v2", "validate_golden_coverage", "validate_calibration", "validate_schema_model", "validate_gas_adapter", "build_gas_bundle", "validate_gas_adapter_contract", "validate_gas_bundle_sync", "validate_agents_shrink", "validate_no_replay_live_mix", "validate_prediction_accuracy_harness", "validate_alpha_feedback_loop", "validate_operational_alpha_calibration", "validate_realized_performance", "validate_data_gated_progress", "validate_sector_flow_history_progress", "validate_runtime_source_whitelist", "validate_cash_ledger", "validate_factor_lifecycle", "validate_factor_lifecycle_registry_v1", "validate_factor_lifecycle_completeness", "validate_metric_alias_collision", "validate_architecture_boundaries", "validate_module_io_coverage", "validate_artifact_chain_hash", "validate_artifact_sync", "validate_renderer_no_calc", "validate_packaged_refs", "validate_property_invariants", "validate_anti_late_entry", "validate_rule_lifecycle", "validate_change_requests", "validate_completion_harness_instructions", "validate_engine_health_card", "validate_llm_regression", "validate_llm_copy_only", "build_final_decision", "build_final_context", "build_provenance_ledger", "build_live_replay_separation", "build_late_chase_attribution", "build_profit_giveback_ratchet", "build_shadow_ledger", "build_operating_cadence_signal", "build_engine_health_card", "build_module_io_coverage", "build_artifact_chain_hash", "build_report", "build_bundle", "build_schema_models", "build_architecture_boundaries", "validate_decision_trace", "validate_factor_conflicts", "validate_no_lookahead", "validate_execution_sim", "validate_render_diff", "build_shadow_promotion", "validate_llm_determinism", "build_time_stop_forecast", "validate_live_activation", "build_rebalance_sheet", "build_prediction_accuracy_harness", "build_alpha_feedback_loop", "build_calibration_priority", "build_calibration_change_ledger", "build_calibration_review_report", "build_calibration_approval_list", "build_calibration_decision_draft", "build_operational_alpha_calibration", "build_sector_flow_history_progress"]
timeout_sec: 60
cache_key: "prepare_zip_v1"
strict: true
+278
View File
@@ -0,0 +1,278 @@
schema_version: gas_adapter_contract.v1
exports:
- function_name: "runDataFeed"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "sector_flow"
status: "active"
- function_name: "runDataFeed"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "macro"
status: "active"
- function_name: "runDataFeed"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "core_satellite"
status: "active"
- function_name: "logDailyAssetHistory_"
min_arity: 2
max_arity: 2
return_shape: "void"
sheet_key: "daily_history"
status: "active"
- function_name: "ensureAccountSnapshotConfirmModeSetting_"
min_arity: 1
max_arity: 1
return_shape: "void"
sheet_key: "settings"
status: "active"
- function_name: "upsertOperationalWarningSetting_"
min_arity: 2
max_arity: 2
return_shape: "void"
sheet_key: "settings"
status: "active"
- function_name: "getCoreSatelliteUniverse"
min_arity: 0
max_arity: 0
return_shape: "array"
sheet_key: "universe"
status: "active"
- function_name: "parseAccountSnapshot_"
min_arity: 3
max_arity: 3
return_shape: "object"
sheet_key: "account_snapshot"
status: "active"
- function_name: "parseAccountSnapshot_"
min_arity: 3
max_arity: 3
return_shape: "object"
sheet_key: "macro"
status: "active"
- function_name: "getActiveTickers_"
min_arity: 0
max_arity: 0
return_shape: "array"
sheet_key: "account_snapshot"
status: "active"
- function_name: "getActiveTickers_"
min_arity: 0
max_arity: 0
return_shape: "array"
sheet_key: "settings"
status: "active"
- function_name: "checkAccountSnapshotFreshness_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "account_snapshot"
status: "active"
- function_name: "readAccountSnapshotHeat_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "data_feed"
status: "active"
- function_name: "getAccountSnapshotConfirmStats_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "account_snapshot"
status: "active"
- function_name: "readMacroRegime_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "macro"
status: "active"
- function_name: "parseAccuracy_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "monthly_history"
status: "active"
- function_name: "parseAccuracy_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "getPa1WeightOverrides_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "recordPa1FeedbackEntry_"
min_arity: 2
max_arity: 2
return_shape: "void"
sheet_key: "pa1_feedback"
status: "active"
- function_name: "getSellPassAccuracyRate_"
min_arity: 0
max_arity: 0
return_shape: "number"
sheet_key: "pa1_feedback"
status: "active"
- function_name: "evaluatePa1FeedbackBatch_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "pa1_feedback"
status: "active"
- function_name: "evaluatePa1FeedbackBatch_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "data_feed"
status: "active"
- function_name: "evaluatePa1FeedbackBatch_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "settings"
status: "active"
- function_name: "adjustPaeWeights_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "settings"
status: "active"
- function_name: "updateEvaluationDashboard_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "evaluation_dashboard"
status: "active"
- function_name: "updateEvaluationDashboard_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "daily_history"
status: "active"
- function_name: "updateEvaluationDashboard_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "macro"
status: "active"
- function_name: "getAlphaHistorySummary_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "alpha_history"
status: "active"
- function_name: "auditYamlGasCoverage_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "calcTradeQualityScorer_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "trade_quality_history"
status: "active"
- function_name: "calcTradeQualityScorer_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "data_feed"
status: "active"
- function_name: "calcTradeQualityScorer_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "calcPatternBlacklistAuto_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "calcAlphaFeedbackLoop_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "monthly_history"
status: "active"
- function_name: "calcAlphaFeedbackLoop_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "getAlphaFeedbackJson_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "_writeRebalanceSheet_"
min_arity: 4
max_arity: 4
return_shape: "void"
sheet_key: "rebalance"
status: "active"
- function_name: "readSettingsTab_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "settings"
status: "active"
- function_name: "readPerformanceSheet_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "performance"
status: "active"
- function_name: "readExistingEpsRevision_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "core_satellite"
status: "active"
- function_name: "calcFcBudget_"
min_arity: 2
max_arity: 2
return_shape: "number"
sheet_key: "performance"
status: "active"
- function_name: "readAccountSnapshotMap_"
min_arity: 0
max_arity: 0
return_shape: "object"
sheet_key: "account_snapshot"
status: "active"
- function_name: "initAccountSnapshotTemplate_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "universe"
status: "active"
- function_name: "runCoreSatelliteBatch"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "core_satellite"
status: "active"
- function_name: "buildDataFeedMap_"
min_arity: 1
max_arity: 1
return_shape: "object"
sheet_key: "data_feed"
status: "active"
- function_name: "updatePa1WeightsManual_"
min_arity: 0
max_arity: 0
return_shape: "void"
sheet_key: "settings"
status: "active"
@@ -2,3 +2,11 @@ schema_version: anti_late_entry_pullback_gate.v5
parent_file: spec/strategy/anti_late_entry_pullback_gate_v4.yaml
formula_id: ANTI_LATE_ENTRY_PULLBACK_GATE_V5
purpose: Pre-trade late-chase and pullback quality gate.
rule:
precedence: "anti_late_entry gate must be evaluated first for any BUY or STAGED_BUY candidate."
action_on_fail:
gate_fail_status: "FAIL"
quantity: 0
downgrade_action: "WATCH or BLOCKED"
shadow_ledger: "Record gate failure reason and thresholds in shadow ledger"
@@ -2,3 +2,10 @@ schema_version: pre_distribution_early_warning.v4
parent_file: spec/strategy/pre_distribution_early_warning_v3.yaml
formula_id: PRE_DISTRIBUTION_EARLY_WARNING_V4
purpose: Early warning gate for distribution risk.
conflict_precedence:
- risk_exit
- cash_floor
- anti_late_entry
- smart_money
- momentum
@@ -51,3 +51,11 @@ evidence_outcome_link:
acceptance:
- "liquidity_label별 슬리피지·수익 표 출력"
- "표본 < 30 시 [UNVALIDATED: n={n}] 라벨 부착"
conflict_precedence:
- risk_exit
- cash_floor
- anti_late_entry
- smart_money
- momentum