Files
QuantEngineByItz/tools/validate_completion_harness_instructions_v1.py
T

149 lines
4.6 KiB
Python

#!/usr/bin/env python3
from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def _read(rel: str) -> str:
path = ROOT / rel
if not path.exists():
return ""
return path.read_text(encoding="utf-8", errors="replace").lower()
def _require_any(text: str, options: list[str]) -> bool:
return any(option.lower() in text for option in options)
def _require_all(text: str, groups: list[list[str]]) -> bool:
return all(_require_any(text, group) for group in groups)
def main() -> int:
files: dict[str, list[list[str]]] = {
"AGENTS.md": [
["0b. 기본 하네스 완료 조건"],
["yaml"],
["코드"],
["데이터 실체"],
["검증 증빙"],
],
"docs/runbook.md": [
["complete only when", "완료"],
["yaml"],
["code"],
["data artifact", "data artifacts", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"docs/ROADMAP_WBS.md": [
["완료 조건"],
["yaml"],
["코드"],
["데이터 실체"],
["검증 증빙"],
],
"REPORT_GUIDE.md": [
["completion harness"],
["yaml"],
["code"],
["data artifact", "data artifacts", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"docs/doctrine.md": [
["completion harness"],
["yaml"],
["code"],
["data artifact", "data artifacts", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/analysis_prompt.md": [
["default completion harness"],
["yaml"],
["코드"],
["데이터 실체"],
["검증 증빙"],
],
"prompts/review_prompt.md": [
["default completion harness"],
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/capture_parse_prompt.md": [
["기본 완료 조건"],
["yaml"],
["코드"],
["데이터 실체"],
["검증 증빙"],
],
"prompts/engine_audit_master_prompt_v2.md": [
["default completion harness"],
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/engine_audit_master_prompt_v3.md": [
["default completion harness"],
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/engine_audit_prompt.md": [
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/low_capability_report_renderer.md": [
["default completion harness"],
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/report_renderer_prompt.md": [
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
"prompts/weekly_operational_report_master_prompt_v1.md": [
["default completion harness"],
["yaml"],
["code"],
["data artifact", "data/artifact"],
["validation evidence", "검증 증빙"],
],
}
missing: list[dict[str, object]] = []
for rel, groups in files.items():
text = _read(rel)
if not text:
missing.append({"file": rel, "reason": "missing_file"})
continue
if not _require_all(text, groups):
missing.append({"file": rel, "reason": "missing_required_text", "required_groups": groups})
result = {
"formula_id": "COMPLETION_HARNESS_INSTRUCTIONS_V1",
"gate": "PASS" if not missing else "FAIL",
"checked_files": len(files),
"missing": missing,
}
out = ROOT / "Temp" / "completion_harness_instructions_v1.json"
out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(result, ensure_ascii=False, indent=2))
return 0 if not missing else 1
if __name__ == "__main__":
raise SystemExit(main())