test(validation): 토큰 위생 및 플랫폼 통합 검증 체계 고도화
Snapshot Admin Web Validation / validate-snapshot-admin-smoke (push) Has been cancelled
Snapshot Admin Web Validation / validate-snapshot-admin-full (push) Has been cancelled
Quant Engine CI/CD Pipeline / validate-core (pull_request) Has been cancelled
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been cancelled
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Has been cancelled
Snapshot Admin Web Validation / validate-snapshot-admin-smoke (push) Has been cancelled
Snapshot Admin Web Validation / validate-snapshot-admin-full (push) Has been cancelled
Quant Engine CI/CD Pipeline / validate-core (pull_request) Has been cancelled
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been cancelled
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Has been cancelled
This commit is contained in:
@@ -40,7 +40,7 @@ def main() -> int:
|
||||
|
||||
gap_path = Path(args.gap) if Path(args.gap).is_absolute() else ROOT / args.gap
|
||||
if not gap_path.exists():
|
||||
print(f"FAIL: {gap_path} not found — run build-completion-gap-v1 first")
|
||||
print(f"FAIL: {gap_path} not found - run build-completion-gap-v1 first")
|
||||
return 1
|
||||
|
||||
d = _load(gap_path)
|
||||
@@ -52,6 +52,8 @@ def main() -> int:
|
||||
for f in required:
|
||||
if f not in d:
|
||||
failures.append(f"missing field: {f}")
|
||||
if "workflow_disciplines" not in d:
|
||||
failures.append("missing field: workflow_disciplines")
|
||||
|
||||
if failures:
|
||||
for f in failures:
|
||||
@@ -100,6 +102,23 @@ def main() -> int:
|
||||
if str(llm_field.get("current")) != "0" and llm_field.get("current") != 0:
|
||||
failures.append("CRITICAL: llm_generated_decision_field_count != 0 — LLM 판단 개입")
|
||||
|
||||
workflow = d.get("workflow_disciplines") if isinstance(d.get("workflow_disciplines"), dict) else {}
|
||||
required_order = workflow.get("required_preimplementation_order") if isinstance(workflow.get("required_preimplementation_order"), list) else []
|
||||
expected_order = [
|
||||
"로드맵/현황 확인",
|
||||
"WBS 작성",
|
||||
"목표 설정",
|
||||
"성공판단 데이터 정의",
|
||||
"구현",
|
||||
"사후 검증",
|
||||
"증빙 기록",
|
||||
]
|
||||
if required_order != expected_order:
|
||||
failures.append(f"workflow_disciplines.required_preimplementation_order mismatch: {required_order}")
|
||||
for key in ("completion_gate_rule", "small_change_rule", "scope_change_rule", "evidence_rule"):
|
||||
if not str(workflow.get(key) or "").strip():
|
||||
failures.append(f"workflow_disciplines missing or empty: {key}")
|
||||
|
||||
if failures:
|
||||
for f in failures:
|
||||
print("FAIL:", f)
|
||||
|
||||
Reference in New Issue
Block a user