fix(check-preservation): 삭제를 코드가 판정하지 않는다. 날조는 판정한다

사람이 채택한 편집 100쌍 중 9건을 막고 있었다. 막은 것이 전부 자료가 뒷받침하지 않는
덧붙인 이득과 되풀이를 지운 편집이고, 지운 문장 안에 숫자나 인용부호가 있었다는 이유로
막혔다. 반대로 「확인하지 못한 것」 절을 통째로 지운 편집은 통과했다.

부수 문장 삭제와 조건 삭제는 같은 연산이다. 지운 문장에 숫자가 있었는지로는 안 갈린다.
그래서 사라진 것은 warning 으로 내리고 새로 생긴 것만 error 로 둔다. 없던 수치·인용·코드를
더한 것은 날조이고 그것은 코드가 판정할 수 있다.

경계도 고쳤다. `(?![\w.-])` 의 `\w` 가 한글도 낱말 문자로 세어 `500행`·`5개다` 처럼 조사나
명사가 붙으면 보호가 통째로 풀렸다. 한국어에서 숫자는 거의 항상 뭔가가 바로 붙으므로
보호가 가장 필요한 자리에서 가장 안 걸렸다.

경고마다 그 값이 있던 문장을 함께 낸다. 기제와 수치까지만 있으면 검토자가 다시 찾아야 한다.

review-package 의 reviewerNotes 맨 위에 읽는 계약을 넣었다 — gates 가 전부 0 이어도 그것만
으로 통과가 아니고, warnings 가 비어 있어야 자동 통과다.

막은 쌍 9 → 1. 남은 하나는 편집이 인라인 코드를 새로 넣은 쌍이라 규칙이 제대로 도는 것이다.
0 으로 만들려면 그 규칙을 풀어야 하고 그러면 지어낸 식별자가 함께 통과한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4vKjQo9KKBBokzxqXLCfk
This commit is contained in:
DongHyeonka
2026-09-10 11:19:11 +09:00
co-authored by Claude Opus 5
parent 32a369f335
commit 4fae5b5398
2 changed files with 79 additions and 29 deletions
+11
View File
@@ -225,9 +225,17 @@ def build(project: str, record: str, figures_dir: str | None = None,
warnings.append({
"id": "유보 감소",
"detail": f"{h['word']} {h['before']}회 → {h['after']}",
"sentence": h.get("sentence", ""),
"note": "종료 코드로는 안 걸린다. 확신이 올라간 것인지 그 자리에서 "
"덜어 낼 만했던 것인지는 근거를 읽어야 안다",
})
for f in preservation.get("warnings", []):
warnings.append({
"id": f"보호 구간 {f['change']}",
"detail": f"{f['kind']}{f['value'][:80]}",
"sentence": f.get("sentence", ""),
"note": f.get("note", ""),
})
return {
"schemaVersion": 2,
@@ -252,6 +260,9 @@ def build(project: str, record: str, figures_dir: str | None = None,
"claimCandidates": _claim_candidates(text),
"judgmentCriteria": CLAIM_KINDS,
"reviewerNotes": [
"**gates 가 전부 exit 0 이어도 그것만으로 통과가 아니다.** warnings 가 비어 있어야 "
"자동 통과다. warnings 가 있으면 근거를 읽는 검토가 항목마다 PASS·FAIL·UNKNOWN 을 "
"낸다. UNKNOWN 은 통과가 아니다.",
"이 파일의 어느 값도 판정이 아니다. 관문의 exit 는 형식 검사의 결과일 뿐이다.",
"claimCandidates 는 표면 표지로 뽑은 것이라 주장이 아닌 문장이 섞인다. "
"반대로 표지가 없는 주장은 빠진다 — 본문을 읽고 빠진 것을 찾는 것이 검토의 일이다.",