{
  "checkedAt": "2026-09-24",
  "runtime": "v25.6.1",
  "csv": {
    "rows": 5,
    "bytes": 194,
    "sha256": "b0c2d6d4f9e2f2a699cb8450f0244de160c3dd5deea263e8f049032975db2a83",
    "roundTripExact": true,
    "protectedIdentifiers": [
      "00123",
      "000000000000000001",
      "A-03",
      "A-04",
      "가-05"
    ],
    "quotedComma": "comma, kept",
    "embeddedNewline": "two\nlines",
    "formulaCandidate": "=1+1"
  },
  "jsonContract": {
    "fixtures": 12,
    "passedExpectations": 12,
    "results": [
      {
        "name": "valid-minimum",
        "expected": true,
        "actual": true
      },
      {
        "name": "valid-done",
        "expected": true,
        "actual": true
      },
      {
        "name": "id-number",
        "expected": false,
        "actual": false
      },
      {
        "name": "missing-title",
        "expected": false,
        "actual": false
      },
      {
        "name": "owner-string-null",
        "expected": false,
        "actual": false
      },
      {
        "name": "impossible-date",
        "expected": false,
        "actual": false
      },
      {
        "name": "ambiguous-date",
        "expected": false,
        "actual": false
      },
      {
        "name": "unknown-status",
        "expected": false,
        "actual": false
      },
      {
        "name": "extra-field",
        "expected": false,
        "actual": false
      },
      {
        "name": "empty-id",
        "expected": false,
        "actual": false
      },
      {
        "name": "leap-day",
        "expected": true,
        "actual": true
      },
      {
        "name": "array-instead",
        "expected": false,
        "actual": false
      }
    ]
  },
  "editorialAudit": {
    "sentences": [
      {
        "text": "이 방법은 오류를 완벽히 없앤닌다.",
        "verdict": "remove",
        "reason": "실행 자료가 없는 절대 주장"
      },
      {
        "text": "12개 고정 예제를 같은 규칙으로 검사했습니다.",
        "verdict": "keep",
        "reason": "실행 회수와 결과 파일을 함께 제공"
      },
      {
        "text": "이 통과는 원자료의 사실성을 뜻하지 않습니다.",
        "verdict": "keep",
        "reason": "검증 범위를 제한"
      }
    ]
  },
  "readability": {
    "before": {
      "sentences": 1,
      "characters": 99,
      "averageSentenceCharacters": 98,
      "longestSentenceCharacters": 98
    },
    "after": {
      "sentences": 4,
      "characters": 82,
      "averageSentenceCharacters": 18.8,
      "longestSentenceCharacters": 37
    },
    "measuredOnly": "문장 길이와 구조 비교이며 사용자 이해도 실험이 아님"
  },
  "files": {
    "files": 3,
    "plan": [
      [
        "report final.txt",
        "01-report-final.txt"
      ],
      [
        "00123.csv",
        "02-00123.csv"
      ],
      [
        "한글 메모.md",
        "03-한글-메모.md"
      ]
    ],
    "afterRename": [
      "01-report-final.txt",
      "02-00123.csv",
      "03-한글-메모.md"
    ],
    "restoredNames": [
      "00123.csv",
      "report final.txt",
      "한글 메모.md"
    ],
    "hashesMatch": true,
    "collisionFixture": {
      "from": "A?.txt",
      "to": "a-.txt",
      "conflictsWith": "A*.txt -> a-.txt",
      "verdict": "stop-before-write"
    }
  },
  "calculations": {
    "percentage": {
      "start": 5,
      "end": 6,
      "pointDifference": 1,
      "relativeChange": 20
    },
    "rounding": {
      "raw": [
        1000.4,
        1000.4,
        1000.4
      ],
      "roundAfterSum": 3001,
      "sumAfterRowRounding": 3000,
      "difference": 1
    },
    "scope": "산술 재현이며 매출·수익 성과 증거가 아님"
  },
  "evidenceLadder": [
    {
      "claim": "파일이 열린다",
      "level": "run",
      "evidence": "Node.js 실행 로그"
    },
    {
      "claim": "ID 00123이 보존된다",
      "level": "repeatable",
      "evidence": "인코드→파싱 일치 결과"
    },
    {
      "claim": "사용자가 더 빠리 완료한다",
      "level": "unknown",
      "evidence": "사용자 시간 측정 안 함"
    },
    {
      "claim": "모든 CSV가 안전하다",
      "level": "unsupported",
      "evidence": "제품별 실행 환경 미검증"
    }
  ]
}
