fix(tester): 프룬이 「할 일 아님」 칸을 되돌려 놓던 구멍 막음 · 기계 md 읽기 셋 넓힘(못 보는 자리 38 → 25)

**① 프룬 구멍** — 읽기(`load_known()`)만 「할 일 아님」 칸을 읽게 고쳤고 **쓰기는 안 고쳤음**.
  `--prune` 이 합쳐 읽은 것을 그대로 되쓰면 2026-09-18 에 가른 칸이 다시 갈래로 섞여
  **없는 할 일 36 이 되살아남**. 세 파일 다 「제자리에서 지우기」로 고침.

**② 기계 읽기 넓힘**
  · `| 9020- | 비항SD | | … |` 꼴 **앞자리만 알리는 머리줄** — 값이 없으니 못 보는 자리가 아님(8줄 뺌)
  · 빈 칸·`동력` 낱말·전력(㎾) 주연료를 읽게 함 — 전력 기종 아홉은 원문에 기름 값이 없어
    양쪽이 비는 것이 맞음(12줄 뺌) · 7360-0090 차선 제거기는 원문 휘발유 5.53 을 이제 읽음
  · ⭐ **머리 없는 이어 표**를 세는 자리를 만듦 — 책장 넘김에 밀린 줄을 `|---|` 없이 따로 적어
    표로 안 잡히던 자리. **9020 그래브 준설선 일곱 줄의 손료계수가 양쪽 다 조용히 빠져 있었음**

**③ 드러난 어긋남을 장부에 사유·주인과 함께 올림**
  · 7993-0020 양수기 — md 가 규격을 주연료 칸에 밀어 적음(코덱스: PDF 대조로 휘발유 1.3ℓ 제자리에)
  · 9020 일곱 줄 — 코덱스: 앞 표에 이어 붙일 것(`제8장_건설기계.md` 3617줄 자리)
  · 겸용 연료 둘(3450-0642 · 7992-0001) — 랩탑 메인: `_build_mach.py` 가 갈라 읽게

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
This commit is contained in:
2026-09-18 13:21:13 +09:00
co-authored by Claude Opus 5
parent 1a707e51fb
commit 75a96a6a18
4 changed files with 158 additions and 157 deletions
@@ -567,12 +567,22 @@ def test_알려진_어긋남_밖은_없음(src: dict, kind: str) -> None:
if __name__ == "__main__" and "--prune" in sys.argv:
# 고쳐졌거나 모습이 바뀐 줄만 지움 — 새 어긋남은 안 보탬(보태면 빨강이 조용히 묻힘).
# ⚠ 「할 일 아님」 칸(`_할일_아님`)은 **제자리에서** 지운다. `load_known()` 이 합쳐 읽은 것을
# 그대로 되쓰면 2026-09-18 에 가른 칸이 다시 갈래로 섞여 「없는 할 일」이 되살아난다.
current = current_mismatches(load_sources())
data = load_known()
data = json.loads(KNOWN.read_text(encoding="utf-8"))
parked = (data.get("_할일_아님") or {}).get("줄") or {}
def _keep(kind: str, rows: dict) -> dict:
return {k: v for k, v in rows.items() if current[kind].get(k) == _without_why(v)}
for kind in FILES:
before = len(data[kind])
data[kind] = {
k: v for k, v in data[kind].items() if current[kind].get(k) == _without_why(v)
}
before = len(data.get(kind) or {})
data[kind] = _keep(kind, data.get(kind) or {})
print(f"{kind}: {before} → {len(data[kind])}")
if kind in parked:
was = len(parked[kind])
parked[kind] = _keep(kind, parked[kind])
if len(parked[kind]) != was:
print(f" 할 일 아님 {kind}: {was} → {len(parked[kind])}")
KNOWN.write_text(json.dumps(data, ensure_ascii=False, indent=1) + "\n", encoding="utf-8")