검증 및 증거
핵심 요약
yp protect verify는 실제 검사를 실행하고 증적을 기록합니다. 계획서 작성이나 코드 적용만으로 보안 검증이 끝난 것이 아닙니다.
검증 상태표에서 실행된 검사와 누락된 검사부터 확인하세요. PARTIALLY_VERIFIED와 NOT_VERIFIED는 성공으로 해석하지 않습니다.
yp protect verify는 검사를 실행합니다 — 코드를 검사하고 성공을 추론하지 않습니다. 출력은 .devpay/evidence/*.record.json에 스키마 유효 증거 레코드로 기록됩니다(experiments/auto-protection/evidence/ — 클레임 등급 게이트가 있는 레코드 스키마 v1).
verify가 실행하는 것
- 동등성 레그 — 분할된 클라이언트가 spec의 동등성 벡터로 루프백을 통해 생성된 파티션 서버에 대해 실행됩니다(
--vectors오버라이드;--asset은 하나의 spec 에셋으로 제한). - 라이선스/API 레그 — 설정된 경우, 생성된 서버에 대한 entitlement 게이트 호출(
yp-license모드)과 API 도달 가능성(--api-base). - apply 리포트 없이는 거부됩니다(exit 2) — 검증은 적용된 작업을 입증합니다; 플랜만으로는 planned이지 applied가 아닙니다.
판정 어휘
증거 레코드는 두 개의 판정 세트를 사용합니다 — evidence/validate.mjs에서 인용:
레그당 판정: PASS · FAIL · ATTACK_BLOCKED · ATTACK_REPRODUCED · LIMITATION_CONFIRMED · NOT_VERIFIED · NOT_APPLICABLE.
보안 판정 (클레임 수준):VERIFIED_WITHIN_SCOPE · FAILED · PARTIALLY_VERIFIED · NOT_VERIFIED · NOT_APPLICABLE.
정직하게 읽기:
VERIFIED_WITHIN_SCOPE— 실행된 범위에 대해서만 긍정적 증거가 존재합니다. 에셋에 대한 포괄적 진술이 아닙니다.PARTIALLY_VERIFIED— 서면 서브셋 경계가 필요합니다(limitations[]또는basis); 없으면 스키마가 거부합니다. 성공이 아닙니다.NOT_VERIFIED— 침묵이 아닌 명시적 판정. 빈 results 배열은 오류이고, 모든 spec 주장 불변식은 판정을 가져야 합니다 — 명시적NOT_VERIFIED도 카운트됩니다; 침묵은 스키마 실패입니다.ATTACK_REPRODUCED/FAIL/NOT_VERIFIED는 클레임을 뒷받침할 수 없습니다.
클레임 게이트 (레코드가 절대 말할 수 없는 것)
검증기는 다음을 가진 증거를 거부합니다:
- 프로덕션 준비 클레임,
- 달성된 L3/L4 주장,
- 절대적 저항 클레임("clone-proof", "unbreakable", "unforgeable") — 레코드의 모든 문자열 값 과 모든 객체 키에서 재귀적으로 스캔됩니다.
클레임은 바운드된 긍정적 증거가 필요합니다: 불변식 X에 대한 VERIFIED_WITHIN_SCOPE / PARTIALLY_VERIFIED 판정은 그 불변식에 바운드된 ≥1개의 실행된 결과가 필요합니다; 빈 commands/env/results는 클레임을 뒷받침할 수 없습니다.
레코드 읽기
.devpay/evidence/<asset>.record.json
asserted_invariants[] — 각각 판정 보유 (명시적 NOT_VERIFIED도 카운트)
scenarios[] / executions[] — 바운드된 레그 (commands, env, results[])
verdicts[] — 클레임 수준 보안 판정 + basis/limitations2
3
4
크로스 트랙 리포팅(evidence/cross-track.mjs)은 Track A/B 레코드를 병합하고 PARTIALLY_VERIFIED로만 상한할 수 있습니다 — 부분 범위를 결합해도 절대 전체 검증이 되지 않습니다.
동등성 실패
실패한 동등성 레그는 FAIL_ADOPTION(CLI exit 1)으로 표면화됩니다 — 분할된 클라이언트가 벡터에서 원래 모듈과 발산했습니다. 이는 부정적 판정을 가진 완료된 검사입니다: 파티션이나 spec을 고치고, re-apply, re-verify하세요.