diff --git a/AGENTS.md b/AGENTS.md index d1a754e..d23e195 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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`으로 승격하지 않는다. diff --git a/README.md b/README.md index 4d7127f..dd75301 100644 --- a/README.md +++ b/README.md @@ -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 검증 이슈가 남아 있는 상태입니다. diff --git a/REPORT_GUIDE.md b/REPORT_GUIDE.md index b08ecca..7a74f7c 100644 --- a/REPORT_GUIDE.md +++ b/REPORT_GUIDE.md @@ -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: diff --git a/docs/ROADMAP_WBS.md b/docs/ROADMAP_WBS.md index 4936a76..4e78b0d 100644 --- a/docs/ROADMAP_WBS.md +++ b/docs/ROADMAP_WBS.md @@ -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회 실행으로 전체 파이프라인 완결 | 90단계 DAG 구축 완료 ✅ | --- @@ -573,7 +586,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 성공률: 90단계 DAG PASS → 목표: ≥95% ✅ (step_count=90, wave_0~9) CI/CD 커버리지: 100% → 목표: 100% ✅ (Synology act_runner 온라인, 4게이트 PASS) 수동 개입 횟수: 매일 → 목표: ≤1회/주 (setupDailyRunAllTrigger 설정 후) ``` diff --git a/docs/doctrine.md b/docs/doctrine.md index 8647fd2..8ca6e19 100644 --- a/docs/doctrine.md +++ b/docs/doctrine.md @@ -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. + diff --git a/docs/runbook.md b/docs/runbook.md index 52940a0..25d81cb 100644 --- a/docs/runbook.md +++ b/docs/runbook.md @@ -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. diff --git a/prompts/analysis_prompt.md b/prompts/analysis_prompt.md index 5e9384f..63662e2 100644 --- a/prompts/analysis_prompt.md +++ b/prompts/analysis_prompt.md @@ -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에 존재하면 아래 규칙을 **절대적으로** 따른다. diff --git a/prompts/capture_parse_prompt.md b/prompts/capture_parse_prompt.md index c930974..9759012 100644 --- a/prompts/capture_parse_prompt.md +++ b/prompts/capture_parse_prompt.md @@ -3,6 +3,16 @@ HTS 캡처 이미지가 제공되면 이 프롬프트를 **분석보다 먼저** 실행한다. 출력 순서: ① 화면판별 → ② 검증 → ③ 충돌감지·캡처우선 선언 → ④ TSV붙여넣기 → ⑤ account_snapshot 상태갱신 → ⑥ 현금요약 → ⑦ 인라인재산출 → ⑧ 다음단계 +## 기본 완료 조건 + +작업 완료는 다음 4개가 함께 있어야 한다. +- `YAML` 증빙 +- `코드` 증빙 +- `데이터 실체` 증빙 +- `검증 증빙` + +하나라도 빠지면 완료로 보지 않는다. + --- ## STEP 1 — 화면 종류 판별 diff --git a/prompts/engine_audit_master_prompt_v2.md b/prompts/engine_audit_master_prompt_v2.md index 48eb667..39ba3ea 100644 --- a/prompts/engine_audit_master_prompt_v2.md +++ b/prompts/engine_audit_master_prompt_v2.md @@ -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. diff --git a/prompts/engine_audit_master_prompt_v3.md b/prompts/engine_audit_master_prompt_v3.md index c17ca18..f491718 100644 --- a/prompts/engine_audit_master_prompt_v3.md +++ b/prompts/engine_audit_master_prompt_v3.md @@ -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` diff --git a/prompts/engine_audit_prompt.md b/prompts/engine_audit_prompt.md index c32b978..d4c6c7b 100644 --- a/prompts/engine_audit_prompt.md +++ b/prompts/engine_audit_prompt.md @@ -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. diff --git a/prompts/low_capability_report_renderer.md b/prompts/low_capability_report_renderer.md index a822b84..1454e03 100644 --- a/prompts/low_capability_report_renderer.md +++ b/prompts/low_capability_report_renderer.md @@ -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. diff --git a/prompts/report_renderer_prompt.md b/prompts/report_renderer_prompt.md index bbd8538..a800839 100644 --- a/prompts/report_renderer_prompt.md +++ b/prompts/report_renderer_prompt.md @@ -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. diff --git a/prompts/review_prompt.md b/prompts/review_prompt.md index ae808f7..18e8dd2 100644 --- a/prompts/review_prompt.md +++ b/prompts/review_prompt.md @@ -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. diff --git a/prompts/weekly_operational_report_master_prompt_v1.md b/prompts/weekly_operational_report_master_prompt_v1.md index 4ea8df8..d5cb8f2 100644 --- a/prompts/weekly_operational_report_master_prompt_v1.md +++ b/prompts/weekly_operational_report_master_prompt_v1.md @@ -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