{
  "_header": [
    "sources.lock — 소스 17건 전건 등재. 정본이다.",
    "부분 갱신 금지: 값 갱신은 의도적 행위이며 전건 재생성을 동반한다.",
    "한 행만 손대면 counts·golden.txt·sensitive_reviewed_sha256 이 서로를 반증한다.",
    "sensitive_reviewed_sha256 은 사람이 육안 확인한 그 바이트의 해시다. sha256 과 달라지면 게이트가 exit 1 한다."
  ],
  "version": 1,
  "measured_at": "2026-09-15",
  "sources_root_hint": ".samples (OPS_SOURCES_ROOT 로 덮어쓴다. 정본 대조 수단은 경로가 아니라 sha256)",
  "sensitive_review": {
    "method": "사람 육안 확인 (기계 판정 없음)",
    "reviewed_at": "2026-08-13",
    "scope": "47건 전건. 읽기 전용 사본을 보았고 사본 해시가 원본 H_before 와 일치함을 먼저 확인했다",
    "question": "개인 식별 정보 또는 자격증명이 있는가",
    "verdict": "개인 식별 정보 0건 · 자격증명 0건",
    "toctou": "검토 직후 원본을 재해시해 H_before == H_after 전건 일치를 확인했다",
    "intake_m1": {
      "method": "유지보수자 확인 — Claude 사전 판독(셀·문단 계수, PII 패턴 계수, 이미지 육안) 보조",
      "reviewed_at": "2026-09-15",
      "scope": "신규 8건 (i1-modreq · i2-consent · i3-manual · i4-claim-terms · i6-shot · s1-doclist · s1-searchcolor · s2-corp-login). 2026-08-13 판정분 중 이 lock 에 남은 9건은 그 판정을 그대로 쓴다",
      "question": "개인 식별 정보 또는 자격증명이 있는가",
      "verdict": "행별 sensitive_note — 사람 이름 2건(관측 시 가림) · 이미지 속 실명 1건(미관측) · 자격증명 1건(미관측)"
    }
  },
  "counts": {
    "total": 17,
    "parsed": 8,
    "unparsed": 9,
    "pii_excluded": 0
  },
  "excluded_count": 0,
  "exclusions_note": "훅이 상대 cwd 에 흘린 `**/.claude/state/**` jsonl 1건이 여기 있었다(F-OPS-00-03). 2026-08-13 게이트가 manifest ownership.prune_contains 를 소스 순회에도 걸면서 그 잔재는 sources_pruned 정수로 계수된다 — 사람이 흘릴 때마다 이 배열을 손대지 않는다. exclusions 는 이제 **디스크에 실재하는데 소스가 아니라고 사람이 판정한 것** 전용이다.",
  "derived_removed_note": "2026-09-15 intake M1 — 디스크에 없는 파생 CSV 37 · txt 1(38행)을 등재에서 뺐다. 재내보내기는 바이트가 달라 되살릴 수 없다. 사유와 계수는 ops/findings/ops-doc-reconcile-intake.md, 원래 행은 git 이력(a8b3904:ops/_meta/sources.lock)에 있다",
  "sources": [
    {
      "id": "i2-consent",
      "path": "intake1/i2-consent.docx",
      "sha256": "9c45b835ca0f5aa9e2a5f67d50f1e19bc603e9a7458a31a8e0bec1150aa48d22",
      "kind": "docx",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "9c45b835ca0f5aa9e2a5f67d50f1e19bc603e9a7458a31a8e0bec1150aa48d22",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 개인정보 제3자 제공 동의서 문안. 제공 항목 이름(성명·휴대전화번호 등)만 있고 값은 없다. 연락처·주민번호 패턴 0건"
    },
    {
      "id": "i3-manual",
      "path": "intake1/i3-manual.pptx",
      "sha256": "c60a3bc48d74e7dddeeeca8b42e5c15abff7046ba0a457fcee4c659c173606da",
      "kind": "pptx",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "c60a3bc48d74e7dddeeeca8b42e5c15abff7046ba0a457fcee4c659c173606da",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 관리자 매뉴얼 슬라이드. 표지와 개정 이력에 작성자 실명 2곳 — 관측 시 좌표 지정 가명(ops/intake/mask-rules.json). 관측은 슬라이드 텍스트 문단뿐이고 화면 캡처 이미지 속 내용은 판정하지 않았다(미관측). 연락처·주민번호 패턴 0건"
    },
    {
      "id": "i4-claim-terms",
      "path": "intake1/i4-claim-terms.hwpx",
      "sha256": "fe85f70d0a44a977171ed1fe2da555e7042f81b77f395cff3c922c0694183c16",
      "kind": "hwpx",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "fe85f70d0a44a977171ed1fe2da555e7042f81b77f395cff3c922c0694183c16",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 보험금 청구 동의서 약관 문안. 수집 항목 이름만 있고 값은 없다. 연락처·주민번호 패턴 0건"
    },
    {
      "id": "i6-shot",
      "path": "intake1/i6-shot.png",
      "sha256": "af63f41553dd7616e1b65a2c5eee27f742e93e6a89a63f9791d3f35624fff700",
      "kind": "image",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "af63f41553dd7616e1b65a2c5eee27f742e93e6a89a63f9791d3f35624fff700",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 서비스 일시 중단 안내 팝업 이미지(육안). 공지 문구뿐이고 개인 식별 정보·자격증명 없음"
    },
    {
      "id": "s1-customer-test",
      "path": "step1/20241230_고객테스트.pdf",
      "sha256": "e9ee5b4c23220b536acf5534b109f84810efbac7b8777b707d3579217dc35c56",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "e9ee5b4c23220b536acf5534b109f84810efbac7b8777b707d3579217dc35c56",
      "supersedes": null
    },
    {
      "id": "s1-addl-holdings",
      "path": "step1/241224_추가 보유.pdf",
      "sha256": "794d45da2cd7680290eff0403b2686631e2a749bf5629c2c922bafe5d76697c7",
      "kind": "pdf",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "794d45da2cd7680290eff0403b2686631e2a749bf5629c2c922bafe5d76697c7",
      "supersedes": null
    },
    {
      "id": "s1-healthy-master",
      "path": "step1/건강체완성본(24030811471.xlsx",
      "sha256": "9be9a74228d54f72ce404531cea86727894b91a371d72930e5bc974c751286f7",
      "kind": "xlsx",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "9be9a74228d54f72ce404531cea86727894b91a371d72930e5bc974c751286f7",
      "supersedes": null,
      "sensitive_note": "판정 근거: 건강·진료 항목 표. 항목명·코드 열만 있고 성명·주민번호·연락처 등 개인 식별 열과 자격증명 문자열이 없음을 유지보수자가 사본으로 육안 확인(2026-08-13). 47건 중 내용이 저장소 산출물(cells/*.jsonl)로 들어가는 2건 중 하나라 개별 판정했다"
    },
    {
      "id": "s1-searchcolor",
      "path": "step1/검색 색상 항목 정리_241004.xlsx",
      "sha256": "48a1b360d67e82cd5ade0c65e39e1acda046cac2f3554a010c1452e1661bf4c8",
      "kind": "xlsx",
      "state": "unparsed",
      "reason": "manifest expected_sources 원본 — 등재만 한다. 판독 범위 확대는 M3 계수 뒤 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "48a1b360d67e82cd5ade0c65e39e1acda046cac2f3554a010c1452e1661bf4c8",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 검색 코드 색상 정리 표. 표 머리 기준 사람 식별 열이 없고 자격증명 키워드 0건. 관측하지 않는다"
    },
    {
      "id": "s1-doclist",
      "path": "step1/보험분석 시스템_문서,계정 리스트.xlsx",
      "sha256": "26d5bd03c0900582f9a4bdd6f3729b2d5b1aefa8ee49a233cf4d60d450a0a1b5",
      "kind": "xlsx",
      "state": "unparsed",
      "reason": "manifest expected_sources 원본 — 등재만 한다. 판독 범위 확대는 M3 계수 뒤 (intake UI8). 자격증명이 있어 관측하지 않는다",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "26d5bd03c0900582f9a4bdd6f3729b2d5b1aefa8ee49a233cf4d60d450a0a1b5",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 서비스 계정 목록과 외부 API 접속 정보 문서. 자격증명(ID/PW)과 계정 목록이 있다. 관측하지 않고 원본은 저장소 밖에 둔 채 해시만 싣는다"
    },
    {
      "id": "s1-intro-summary",
      "path": "step1/보험유니버스 서비스 소개서 요약본_20250305.pdf",
      "sha256": "a0c6d33017a67f753633e56325761b59d8e52ec6efaa3e6402a3471046e21605",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "a0c6d33017a67f753633e56325761b59d8e52ec6efaa3e6402a3471046e21605",
      "supersedes": null
    },
    {
      "id": "s1-intro-full",
      "path": "step1/보험유니버스 서비스 소개서_20250305.pdf",
      "sha256": "d4700af0198f4523fb3785c196107449c6877551232bb9a2fd07ce94c013e005",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "d4700af0198f4523fb3785c196107449c6877551232bb9a2fd07ce94c013e005",
      "supersedes": null
    },
    {
      "id": "s1-user-manual-v3",
      "path": "step1/보험유니버스_사용매뉴얼(상용)_v3.pdf",
      "sha256": "e41494f09f76b549bb16c12f4f892ab9cc4fc63e9d8d77d485005b6a80f915cb",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "e41494f09f76b549bb16c12f4f892ab9cc4fc63e9d8d77d485005b6a80f915cb",
      "supersedes": null
    },
    {
      "id": "i1-modreq",
      "path": "step1/수정사항관리.xlsx",
      "sha256": "69d204dec9121962755c2cf0ef75e466ce8e811dad00b9b1b94d964675eefd79",
      "kind": "xlsx",
      "state": "parsed",
      "reason": null,
      "observer": "intake",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "69d204dec9121962755c2cf0ef75e466ce8e811dad00b9b1b94d964675eefd79",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 수정 요청 대장. 수정사항관리대장 시트의 작성자(I)·담당자(K) 열에 사람 이름이 있다 — 관측 시 가명으로 바꾼다(ops/intake/mask-rules.json). 내장 이미지 2건 중 1건(모바일 화면 캡처)에 로그인 사용자 실명이 보인다 — observer intake 로 셀 값만 관측하고 이미지는 저장소에 들이지 않는다. 자격증명 없음"
    },
    {
      "id": "s1-simwon-items",
      "path": "step1/심평원자료로 도출해야하는 항목정리_20240801.xlsx",
      "sha256": "bb3a30054963348fc978ccb1d8c279cef03c4679f763bd48b3372928e3f67863",
      "kind": "xlsx",
      "state": "parsed",
      "reason": null,
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "bb3a30054963348fc978ccb1d8c279cef03c4679f763bd48b3372928e3f67863",
      "supersedes": null,
      "sensitive_note": "판정 근거: 심평원 도출 항목 표. 항목명·분류 열만 있고 개인 식별 열과 자격증명 문자열이 없음을 유지보수자가 사본으로 육안 확인(2026-08-13). 47건 중 내용이 저장소 산출물(cells/*.jsonl)로 들어가는 2건 중 하나라 개별 판정했다"
    },
    {
      "id": "s1-briefing-20240816",
      "path": "step1/전달_20240816추가 설명자료.pdf",
      "sha256": "39a0373d6cf5a4a96ce2faa882723d9de8f341f00af02f43f3fb67d1b73c528f",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "39a0373d6cf5a4a96ce2faa882723d9de8f341f00af02f43f3fb67d1b73c528f",
      "supersedes": null
    },
    {
      "id": "s2-corp-login",
      "path": "step2/기업로그인시제거해야할 항목.xlsx",
      "sha256": "5a3f431cd2203521846642c99720f8160fd81559cbcbc61eb680ee812dc84565",
      "kind": "xlsx",
      "state": "unparsed",
      "reason": "manifest expected_sources 원본 — 등재만 한다. 판독 범위 확대는 M3 계수 뒤 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "5a3f431cd2203521846642c99720f8160fd81559cbcbc61eb680ee812dc84565",
      "supersedes": null,
      "sensitive_note": "판정 근거(2026-09-15): 기업 로그인 시 제거 항목 표(값 있는 셀 12개). 개인 식별 정보·자격증명 없음. 관측하지 않는다"
    },
    {
      "id": "s2-admin-manual",
      "path": "step2/보험유니버스_관리자 매뉴얼.pdf",
      "sha256": "4261a1f20ef5b9394b70ef320040f4ccee3d86244a5116fb8d1700fa5e2eb495",
      "kind": "pdf",
      "state": "unparsed",
      "reason": "PDF. 형식 표본은 s1-addl-holdings 1건이다 — 나머지 판독 범위는 M3 계수 뒤에 정한다 (intake UI8)",
      "sensitive_checked": true,
      "sensitive_reviewed_sha256": "4261a1f20ef5b9394b70ef320040f4ccee3d86244a5116fb8d1700fa5e2eb495",
      "supersedes": null
    }
  ],
  "exclusions": []
}
