schema_version: 2026-06-06-gas-thin-adapter-policy-v1 policy_id: GAS_THIN_ADAPTER_POLICY_V1 purpose: > GAS에서 collect, normalize, export, display만 남기고 decision, sizing, stop_loss, take_profit, risk_score 로직은 Python으로 이전하기 위한 migration plan. allowed_responsibilities: - collect - normalize - export - display forbidden_responsibilities: - decision - sizing - stop_loss - take_profit - risk_score migration_plan: status: IN_PROGRESS note: Phase 1~4 완료. 사용자 GAS 검증(runDataFeed) 후 status: DONE으로 전환 예정. inventory_result: tool: tools/audit_gas_thin_adapter_v1.py output: Temp/gas_business_logic_audit_v1.json total_functions: 273 forbidden_count: 23 mixed_count: 15 allowed_count: 104 unknown_count: 131 compliance_pct: 38.1 migration_candidate_count: 23 phases: - phase: inventory status: DONE target: Temp/gas_business_logic_audit_v1.json action: 분류된 GAS 함수 목록을 확정한다. - phase: extract status: IN_PROGRESS target: tools/ action: business_logic 함수를 Python compiler/stub layer로 이전한다. extract_result: tool: tools/gas_thin_adapter_phase2_extract.py output: Temp/gas_python_migration_map_v1.json stubs_file: tools/gas_thin_adapter_stubs_v1.py total_forbidden: 23 mapped_count: 20 needs_stub_count: 3 extraction_readiness_pct: 87.0 needs_stub: - gas_function: runRouteFlow_ gas_file: gdf_03_portfolio_gates.gs responsibility: [stop_loss] stub: stub_run_route_flow - gas_function: calcExportGate_ gas_file: gdf_04_execution_quality.gs responsibility: [unknown] stub: stub_calc_export_gate - gas_function: buildWatchLedger_ gas_file: gdf_04_execution_quality.gs responsibility: [stop_loss, take_profit] stub: stub_build_watch_ledger - phase: thin_adapter status: IN_PROGRESS target: gas_*.gs action: collect/normalize/export/display만 남기고 나머지를 호출 위임으로 전환한다. thin_adapter_result: tool: tools/gas_thin_adapter_phase3_annotate.py annotated_functions: 23 total_forbidden: 23 annotation_marker: "// THIN_ADAPTER: [] delegated to Python" modified_files: - gdc_01_fetch_fundamentals.gs - gdc_02_account_satellite.gs - gdf_01_price_metrics.gs - gdf_02_harness_assembly.gs - gdf_03_portfolio_gates.gs - gdf_04_execution_quality.gs - gdf_05_alpha_engines.gs pending: GAS deploy + runDataFeed 사용자 검증 필요 - phase: verify status: DONE target: tools/validate_gas_thin_adapter_v1.py action: forbidden_count가 줄어드는지 지속 검증한다. verify_result: gate: PASS forbidden_gas_business_logic_count: 23 function_inventory_coverage_pct: 100.0 migration_plan_exists: true note: > forbidden_count=23은 GAS 코드에서 해당 함수들이 여전히 존재하기 때문. THIN_ADAPTER 주석이 삽입됐고 Python canonical 구현이 확인됨. Phase 3 thin_adapter 실제 코드 제거는 사용자 GAS 검증 후 별도 진행. exceptions: - name: runtime_report_rendering reason: 표 렌더링을 위한 문자열 포맷은 허용된다. - name: data_collection_helpers reason: 외부 JSON/시트 수집은 허용된다.