문서 / specs/001-harness-public-site/contracts/evidence-manifest.md

Contract: Evidence Manifest

근거 매니페스트의 계약.

Purpose

사람이 공개할 근거를 선별하되 빌드가 원본과 공개 안전성을 검증할 수 있는 입력 계약이다. 입력은 content/evidence.json, 출력은 content/generated/evidence.public.json이다.

Input shape

{
  "workspace": "5240lab",
  "verifiedOn": "YYYY-MM-DD",
  "items": [
    {
      "id": "stable-kebab-id",
      "title": "공개 제목",
      "layer": "verification",
      "type": "execution",
      "sourcePath": "relative/path.md",
      "startLine": 1,
      "endLine": 10,
      "expectedExcerpt": "원문에 있는 짧은 문장",
      "summary": "입증 범위"
    }
  ]
}

Boundary rules

  1. sourcePath는 절대 경로, .., 역슬래시, NUL을 포함할 수 없다.
  2. 실제 경로와 실경로는 모두 5240lab 워크스페이스 안에 있어야 한다.
  3. 시작·종료 행은 양수이며 시작이 종료보다 클 수 없다.
  4. 발췌 범위는 40행 이하, 공개 발췌는 400자 이하로 제한한다.
  5. 안정 ID는 유일하고 계층·유형은 등록된 값이어야 한다.
  6. 기대 발췌는 지정 행 범위에 공백 정규화 후 정확히 존재해야 한다.
  7. 경로·발췌·요약에 공개 금지 패턴이 있으면 실패한다.

Output rules

출력은 절대 경로와 원본 전체 내용을 포함하지 않는다. 각 항목에는 검증된 상대 경로, 행 범위, 기대 발췌, 요약, 유형, 계층, 검증일과 status: verified만 포함한다.

Failure contract

검증기는 0이 아닌 종료 상태와 안정 ID가 포함된 오류를 반환하며 기존 공개 스냅샷을 부분 갱신하지 않는다. 모든 항목이 통과한 경우에만 임시 파일을 최종 출력으로 원자적으로 교체한다.