From ec78fa26dd8fa4ae1e1068ee332f589d896ac9a9 Mon Sep 17 00:00:00 2001 From: Hogyu Jhang Date: Wed, 9 Sep 2026 22:04:00 +0900 Subject: [PATCH] =?UTF-8?q?=ED=94=84=EB=A1=AC=ED=94=84=ED=8A=B8=20v.5-r6:?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=20=ED=8F=B4=EB=8D=94=20=ED=99=94=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=9D=98=20=EB=B6=80?= =?UTF-8?q?=EC=9E=AC=20=EC=B2=98=EB=A6=AC=20=EB=AA=85=EB=AC=B8=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 배치 13H에서 워커 7명이 독립적으로 보고한 결함 1건을 고쳤다. v.5-r5가 입력 폴더 화이트리스트를 넷으로 넓히면서 실재하지 않는 폴더를 넣었다 — 사건종류_청구취지작성규칙문서/(비 _done)는 코퍼스에 없고 _done(64건)만 있다. 결론에는 영향이 없었으나(코드로 목록을 읽으면 조용히 건너뛴다) 부재를 오류로 다루는 구현이면 중단할 수 있다. 목록을 셋으로 줄이지 않고 「부재를 건너뛴다」를 명문화하는 쪽을 택했다. _v1 규칙 문서가 주 폴더로 되돌아올 수 있고 같은 문제가 _done 폴더에도 생길 수 있으므로, 「목록은 볼 수 있는 폴더의 상한이지 실재 보증이 아니다」를 규범으로 세워 두 경우를 한 번에 덮었다. 고친 자리 셋: 입력 폴더 목록, [5], Stage 0.4 (2). 게이트 구현체는 건드리지 않았다 — RF_GATE_VERSION = v4.1 그대로이고 코퍼스 회귀가 없다. v.5-r5 원본은 ..._v.5_r5_outdated.txt로 보존했다(161,170 B, sha256 4137f72faa1c). patch_candidates_b13home.md의 해당 항목을 해결됨으로 표시했다. Co-Authored-By: Claude Opus 5 --- .../_shared/patch_candidates_b13home.md | 8 +- ...론_1차드래프트_생성_프롬프트_opus_v.5.txt | 30 +- ...트_생성_프롬프트_opus_v.5_r5_outdated.txt | 2041 +++++++++++++++++ 3 files changed, 2074 insertions(+), 5 deletions(-) create mode 100644 요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r5_outdated.txt diff --git a/tmp/rf_draft/_shared/patch_candidates_b13home.md b/tmp/rf_draft/_shared/patch_candidates_b13home.md index 00922b0..bce4349 100644 --- a/tmp/rf_draft/_shared/patch_candidates_b13home.md +++ b/tmp/rf_draft/_shared/patch_candidates_b13home.md @@ -36,13 +36,17 @@ ## 1. 여러 워커가 수렴한 항목 -### 1.1 ⚠️ **`사건종류_청구취지작성규칙문서/`(비 `_done`)가 실재하지 않는다 — 7/10 워커가 보고** +### 1.1 ✅ **[해결됨 — 프롬프트 v.5-r6]** `사건종류_청구취지작성규칙문서/`(비 `_done`)가 실재하지 않는다 — 7/10 워커가 보고 **v.5-r5가 입력 폴더 화이트리스트를 넷으로 넓히면서 실재하지 않는 폴더를 넣었다.** 현재 코퍼스에 있는 것은 `사건종류_청구취지작성규칙문서_done/`(64건)뿐이고 `_done`이 없는 주 폴더는 없다. Stage 0.4 (2)를 코드로 수행하면 조용히 건너뛰므로 **10건 모두 결론에 영향이 없었으나**, 부재를 오류로 다루는 구현이면 중단할 수 있다(PROV-037·038이 지적). -**후보: 목록을 셋으로 줄이거나 「없으면 건너뛰고 그 사실을 decisions.md에 적는다」 한 줄을 넣는다.** +**처리 (2026-09-09, 프롬프트 v.5-r6)** — 목록을 셋으로 줄이지 않고 **「부재를 건너뛴다」를 명문화**했다. +`_v1` 규칙 문서가 앞으로 주 폴더로 되돌아올 수 있고 같은 문제가 `_done` 폴더에도 생길 수 있으므로, +**「목록은 볼 수 있는 폴더의 상한이지 실재 보증이 아니다」**를 규범으로 세워 두 경우를 한 번에 덮었다. +고친 자리 셋: `` 입력 폴더 목록, `` [5], `` Stage 0.4 (2). +게이트 구현체는 건드리지 않았다(`RF_GATE_VERSION` = `v4.1` 그대로, 코퍼스 회귀 없음). ### 1.2 ⚠️ **브리프의 PROV ID 오기 — 2/10 워커가 원문으로 바로잡았다** diff --git a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt index 84b79c0..1492aa0 100644 --- a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt +++ b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt @@ -107,6 +107,9 @@ Main working directory를 기준으로 해석한다. 사건종류_요건사실론문서자료_done/ (처리가 끝난 사건의 요건사실문서자료_*가 이관된다) 사건종류_청구취지작성규칙문서/ (청구취지작성규칙_*_v1) 사건종류_청구취지작성규칙문서_done/ (처리가 끝난 사건의 청구취지작성규칙_*_v1이 이관된다) + **넷 중 실재하지 않는 폴더가 있다. 부재를 오류로 다루지 말고 건너뛴 뒤 그 사실을 decisions.md에 적는다** + (v.5-r6). 실측 2026-09-09: `사건종류_청구취지작성규칙문서/`(비 `_done`)는 코퍼스에 없고 `_done`(64건)만 있다. + 배치 13H의 워커 7명이 이것을 보고했다. **이 목록은 「볼 수 있는 폴더의 상한」이지 「실재 보증」이 아니다.** `_done`은 폐기물 보관소가 아니라 **이관 보관소**다. 재실행 배치에서는 입력의 절반이 여기에 있다 (배치 12H의 4건은 규칙 문서와 `_2` 자료가 전부 `_done`에 있었고, 오케스트레이터 브리프가 없었으면 7이 오발동해 QUALIFIED 상한이 근거 없이 박혔다). 게이트 S14도 `_done`을 탐색한다. @@ -332,7 +335,8 @@ MEMORY.md에는 사건별 교훈이 누적되어 있다. 반복되는 핵심: - 사건종류_청구취지작성규칙문서/청구취지작성규칙_<####>_v*.md - 사건종류_청구취지작성규칙문서_done/청구취지작성규칙_<####>_v*.md (v.5-r5. 이관된 것도 입력이다) - 규칙 문서는 위 세 폴더 중 어디에든 있을 수 있다. 세 폴더를 모두 본다. + 규칙 문서는 위 세 폴더 중 어디에든 있을 수 있다. **실재하는 폴더를 모두 본다** — + 세 폴더가 전부 있어야 하는 것은 아니고, 없는 폴더는 건너뛴다(v.5-r6. 참조). 같은 어간에 판 번호만 다른 문서가 여럿이면 **가장 높은 판**을 채택하고 나머지 경로를 최종 보고에 적는다. **판 번호는 고정되어 있지 않다.** `_v1.md`·`_v2.md`가 코퍼스에 함께 실재하므로 대조에서 판 번호를 무시한다(Stage 0.4 (2)). `_v1`만 찾으면 실재하는 문서를 부재로 오판한다. @@ -996,8 +1000,9 @@ pdftotext가 없으면 1.3의 대체 경로(이미지 렌더링·확인)로 간 leaf 137 assert와 서수 검산 5건이 스크립트 안에 있다. 실패하면 중단·보고. (2) 입력 실재 확인. 의 **네 폴더**(사건종류_요건사실론문서자료/, 같은 이름 `_done/`, - 사건종류_청구취지작성규칙문서/, 같은 이름 `_done/`) 각각의 파일 목록을 한 번씩 읽어 + 사건종류_청구취지작성규칙문서/, 같은 이름 `_done/`) 중 **실재하는 것** 각각의 파일 목록을 한 번씩 읽어 각 파일명을 유니코드 NFC로 정규화하고 공백·'・'·'·'·'•'·','·'('·')'를 제거한 뒤 대조한다. + **폴더가 없으면 건너뛰고 decisions.md에 적는다. 중단하지 않는다**(v.5-r6). 목록은 상한이지 실재 보증이 아니다. **셸 `ls | grep`으로 파일명을 찾지 않는다.** 이 폴더는 NFC와 NFD가 섞여 있어 (실측 2026-09-02: 청구취지작성규칙_* 전부 NFD, 요건사실문서자료_*는 NFC) NFC 패턴으로 건 grep이 NFD 파일을 통째로 놓친다. 반드시 목록을 읽어 코드에서 정규화한다. @@ -1786,7 +1791,8 @@ v.5-r2까지 쓰던 `_<월>_<일>_outdated` 규칙은 **같은 날 두 번 고 | v.5-r2 | 2026-09-04 20:32 | 148,126 B | `8049a6ea9b2c` | `..._v.5_r2_outdated.txt` | 배치 9·10 잔여 후보 정비. 아래 5건 | | v.5-r3 | 2026-09-04 20:41 | 160,694 B | `29fa4bd20405` | `..._v.5_r3_outdated.txt` | r1·r2에 대한 적대적 검증의 지적 반영. 아래 8건 | | v.5-r4 | 2026-09-05 | 171,737 B | `e5ec945828f9` | `..._v.5_r4_outdated.txt` | 배치 11 결함 보고. 아래 3건. (2026-09-09 19:32 Stage 0.4 (2) 예시 2문장 삭제 정정본 `51ccf24fcb30` 171,441 B — 보존본은 이것) | -| v.5-r5 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가) | (아직 없음) | 배치 12H 패치 후보 반영. 아래 14건 + 게이트 v4.1 | +| v.5-r5 | 2026-09-09 | 161,170 B | `4137f72faa1c` | `..._v.5_r5_outdated.txt` | 배치 12H 패치 후보 반영. 아래 14건 + 게이트 v4.1 | +| v.5-r6 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가) | (아직 없음) | 배치 13H 보고. 입력 폴더 부재 처리 1건 | **보존 파일명은 2026-09-05에 전건 정리했다.** 위 표의 ``은 이제 그 파일이 담은 리비전과 일치한다. 정리 전에는 `..._v.5_9_4_outdated.txt`(r0)·`..._v.5_r.txt`(r1)·`..._v.5_r2.txt`(r3)로 체계가 섞여 있었고, @@ -1992,6 +1998,24 @@ S10b 면제 단위 정정·범위 표기 면제, L-d 범위 §6.6, §7 소속 `tmp/rf_draft/_shared/rf_gate.py`는 2026-09-09에 v4.1로 교체했다(구버전은 `rf_gate_v4.0_outdated.py`). 워커는 이 파일을 정본으로 실행만 하고, 없거나 버전이 다르면 중단·보고한다( 절차 1·2). +## v.5-r6에서 바꾼 것 (1건) + +배치 13H(2026-09-09, 10건 병렬)에서 **워커 7명이 독립적으로 같은 것을 보고했다.** +v.5-r5가 입력 폴더 화이트리스트를 넷으로 넓히면서 **실재하지 않는 폴더를 넣었다** — +`사건종류_청구취지작성규칙문서/`(비 `_done`)는 코퍼스에 없고 `_done`(64건)만 있다. + +**결론에는 영향이 없었다.** 10건 전부 규칙 문서를 주 자료 폴더에서 1단 대조로 찾았고, +목록을 코드로 읽는 구현은 없는 폴더를 조용히 건너뛴다. 그러나 **부재를 오류로 다루는 구현이면 중단할 수 있고**, +실제로 워커 둘이 「하드 스톱으로 오독할 여지가 있다」고 지적했다. + +**폴더 목록을 셋으로 줄이지 않고 「부재를 건너뛴다」를 명문화하는 쪽을 택했다.** +이유 둘 — ① `_v1` 규칙 문서가 앞으로 주 폴더로 되돌아올 수 있으므로 목록에서 빼면 그때 다시 넓혀야 한다. +② 같은 문제가 `_done` 폴더에도 생길 수 있다(코퍼스가 정리되면 비워지거나 사라진다). +**목록은 「볼 수 있는 폴더의 상한」이지 「실재 보증」이 아니다**를 규범으로 세우면 두 경우가 한 번에 덮인다. + +고친 자리 셋: `` 입력 폴더 목록, `` [5], `` Stage 0.4 (2). +**게이트 구현체를 건드리지 않았다** — `RF_GATE_VERSION`은 `v4.1` 그대로이고 코퍼스 회귀가 없다. + ## 예산 연혁 (v.5-r0 → r5) — 실행 지시가 아니다 `` 4의 현행값은 (a) 법령 30 + 판례 30 = 60, (b) 45(R6 예비 6)이다. 여기까지의 경위: diff --git a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r5_outdated.txt b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r5_outdated.txt new file mode 100644 index 0000000..84b79c0 --- /dev/null +++ b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r5_outdated.txt @@ -0,0 +1,2041 @@ + + +# 사건종류 +<####> + +# Placeholder rule +본 프롬프트에서 문자열 "<####>"는 이번 작업에서 요건사실론 문서를 작성할 +대한민국 민사소송의 구체적인 "사건종류"를 의미한다. + +작업을 시작할 때 "<####>"를 사용자가 지정한 실제 사건종류로 해석하고, +이후의 모든 조사·분석·파일 탐색·파일 생성·검증·보고에서 동일한 사건종류를 일관되게 사용한다. + +사건종류는 'case_kinds.md'에서 소송 대분류 '가사소송'·'가족관계등록'·'행정소송'을 제외한 +137개 leaf 중 하나다. '사건 종류' 셀이 비어 있는 3개 행 +(종류물(대체물)의 지급 또는 인도를 구하는 소 / 증서의 진정여부를 확인하는 소 / 기타 확인청구)은 +'분쟁 유형' 명칭 자체가 사건종류다. + +# 표지 원칙 +"<####>"라는 사건종류의 명칭이 곧 하나의 실체법상 청구권을 뜻한다고 사전 가정하지 않는다. +사건종류명은 표지이고, 문서는 §1에서 표지를 청구경로로 해체한 뒤 +§4(공통)와 §5(경로별)로 이층화한다(골격 v4 원칙 1). +공통 요건이 실재하지 않으면 만들지 않는다(원칙 2). + +# Leaf ID와 slug 도출 규칙 (결정적, 1회 실행) + +사건분류의 정본은 'case_kinds.md' 하나다. 다른 카탈로그 파일은 쓰지 않는다. +아래 스크립트를 tmp/rf_draft/leaf_id.py로 저장해 한 번만 실행하고, +출력된 case_kind_id·case_kind_name·slug를 그대로 쓴다. 손으로 세거나 표를 통독하지 않는다. + +```python +# 실행: python3 tmp/rf_draft/leaf_id.py "<####>" +import sys, re, unicodedata as u +CHO=['g','kk','n','d','tt','r','m','b','pp','s','ss','','j','jj','ch','k','t','p','h'] +JUNG=['a','ae','ya','yae','eo','e','yeo','ye','o','wa','wae','oe','yo','u','wo','we','wi','yu','eu','ui','i'] +JONG=['','k','k','k','n','n','n','t','l','k','m','l','l','l','p','l','m','p','p','t','t','ng','t','t','k','t','p','t'] +def rom(s): + o=[] + for c in u.normalize('NFC', s): + n=ord(c) + if 0xAC00<=n<=0xD7A3: + i=n-0xAC00; o.append(CHO[i//588]+JUNG[(i%588)//28]+JONG[i%28]) + elif c.isascii() and c.isalnum(): o.append(c.lower()) + else: o.append('-') + return re.sub(r'-+','-',''.join(o)).strip('-') +def norm(s): + s=u.normalize('NFC', s) + return ''.join(ch for ch in s if ch not in ' \t・·•,()') +SKIP={'가사소송','가족관계등록','행정소송'} +leaves=[] +for ln in open('case_kinds.md', encoding='utf-8'): + ln=u.normalize('NFC', ln).strip() + if not ln.startswith('|'): continue + cells=[c.strip() for c in ln.strip('|').split('|')] + if len(cells)<3 or cells[0]=='소송 대분류' or set(cells[0])<=set('- '): continue + big, dis, kinds = cells[0], cells[1], cells[2] + if big in SKIP: continue + leaves += [dis] if not kinds else [p.strip() for p in kinds.split(',') if p.strip()] +assert len(leaves)==137, f'leaf 총수 {len(leaves)} != 137 — 중단' +for n, nm in ((1,'대여금 청구'),(60,'종류물(대체물)의 지급 또는 인도를 구하는 소'), + (66,'매매를 원인으로 한 소유권이전등기 청구'),(128,'기타 확인청구'), + (137,'주주총회결의취소의 소')): + assert norm(leaves[n-1])==norm(nm), f'검산 실패 PROV-{n:03d}: {leaves[n-1]}' +q=norm(sys.argv[1]); hit=[(i,x) for i,x in enumerate(leaves,1) if norm(x)==q] +assert len(hit)==1, f'사건종류 매칭 {len(hit)}건 — 중단' +i, name = hit[0] +print(f'PROV-{i:03d}', name, rom(name), sep='\t') +``` + +스크립트가 하는 일: +- leaf 열거: 소송 대분류가 가사소송·가족관계등록·행정소송인 행을 건너뛰고, + '사건 종류' 셀이 비어 있으면 '분쟁 유형' 셀을 leaf 1개로, 비어 있지 않으면 ASCII 쉼표(,)로만 분리한다 + ('・' U+30FB, '·' U+00B7는 분리하지 않는다). +- case_kind_id = "PROV-" + leaf 순번의 3자리 0채움. +- slug = 사건종류명의 음절 단위 로마자 변환(초성·중성·종성 치환, 음운변동 미적용. + 결정성이 정서법상 정확성보다 우선). 한글·ASCII 영숫자 이외의 문자는 '-'로, 연속 '-'는 하나로, 양끝 '-'는 제거. +- assert 4종: leaf 총수 137, 서수 검산 5건, 사건종류 매칭 1건. + +검산 기대값: 대여금 청구=PROV-001, 종류물(대체물)의 지급 또는 인도를 구하는 소=PROV-060, +매매를 원인으로 한 소유권이전등기 청구=PROV-066, 기타 확인청구=PROV-128, 주주총회결의취소의 소=PROV-137. +slug 기대값 예: daeyeogeum-cheonggu / gongyumulbunhal-cheonggu / geonmului-myeongdo-indo-ui-so. + +assert가 하나라도 실패하면 작업을 중단하고 보고한다(). +매칭이 0건 또는 2건 이상이면 case_kinds.md에서 사용자가 지정한 명칭에 대응하는 leaf를 확인해 +정확한 명칭으로 한 번 더 실행한다. 추측으로 진행하지 않는다. + +파일명에는 slug를 쓰지 않는다. 파일명은 의 규칙을 따른다. + + + + + + +# Root directory +prompt_updates_sequential/ + +# Main working directory +prompt_updates_sequential/요건사실론/ + +# Path interpretation rule +별도의 명시가 없는 모든 상대경로는 +Main working directory를 기준으로 해석한다. + +# 이번 작업이 쓰는 경로 +- 출력 폴더: 사건종류_요건사실론문서/ (없으면 생성) +- 자료·규칙 문서 입력 폴더 (v.5-r5, 넷 전부가 정규 탐색 대상이다. 이 넷 밖은 보지 않는다): + 사건종류_요건사실론문서자료/ (요건사실문서자료_* · 청구취지작성규칙_*_v2 이상) + 사건종류_요건사실론문서자료_done/ (처리가 끝난 사건의 요건사실문서자료_*가 이관된다) + 사건종류_청구취지작성규칙문서/ (청구취지작성규칙_*_v1) + 사건종류_청구취지작성규칙문서_done/ (처리가 끝난 사건의 청구취지작성규칙_*_v1이 이관된다) + `_done`은 폐기물 보관소가 아니라 **이관 보관소**다. 재실행 배치에서는 입력의 절반이 여기에 있다 + (배치 12H의 4건은 규칙 문서와 `_2` 자료가 전부 `_done`에 있었고, 오케스트레이터 브리프가 없었으면 + 7이 오발동해 QUALIFIED 상한이 근거 없이 박혔다). 게이트 S14도 `_done`을 탐색한다. +- 작업 스크래치: tmp/rf_draft// + (독서계획, 발췌 노트, 권위 레지스트리, 결정 로그, ad-hoc 스크립트. 영구 자산이 아니다) + - tmp/rf_draft//extract/ : 13판 pdftotext 추출물을 블록 단위 파일로 둔다(Stage 1.5). + 추출물은 파일에 두고 컨텍스트에는 grep/sed로 필요한 구간만 올린다. + + + + + + +## 1. Runtime assumption + +이 작업은 Claude Code에서 **Claude Opus 5 (Ultra)** 단일 세션으로 수행한다. +모델 또는 capability mode의 선택은 외부 runtime configuration에서 한다. + +**이 프롬프트의 작성 규약**(v.5-r5) — Opus 5 Ultra가 긴 지시서를 한 번에 읽고 순차 실행한다는 전제에서 지킨다. +개정할 때도 같은 규약을 지킨다. +① 실행 지시 절(`` 앞의 모든 절)에는 **현행값 하나만** 둔다. 수치·열거값·경계의 연혁과 + 정정 경위는 ``에만 둔다. 같은 문단이 두 값을 말하면 규율이 아니라 문서가 틀린 것이다. +② 판정 경계는 정규식·열거값·수치로 적는다. 「적절히」·「대체로」로 끝나는 판정 규칙을 두지 않는다. +③ 우선순위가 갈릴 수 있는 곳에는 「무엇이 정본인가」를 한 줄로 명시한다 + (골격 v4 파일 > 이 프롬프트의 캐시, 원문 > 사전 통지, 판례 > 교과서). +④ 게이트가 잡지 못하는 결함은 「게이트가 잡지 않는다」를 명시하고 집필 규율로 지정한다. + 잡지 못한다는 사실을 숨기면 22/22 PASS가 완료의 증거로 오독된다. + +## 2. 하위 에이전트 spawn 금지 (하드 제약) + +하위 에이전트를 spawn하지 않는다. Agent tool·subagent·multi-agent·Workflow·병렬 워커를 +어떤 이름으로도 기동하지 않는다. 예외 없다. +모든 조사·독서·검증·집필·심사·수정은 이 세션이 직접 순차 수행한다. +병렬화로 시간을 벌려 하지 말고, 시간이 문제면 의 상한으로 범위를 줄인다. +아래에서 "패스(pass)"는 위임 단위가 아니라 이 세션이 순서대로 수행하는 작업 구간을 뜻한다. + +## 3. 패스 구성 + +P0 Pre-flight — 규칙·골격(v4) 확인, ID·slug 확정, 입력 실재 확인, §0 stub 파일 선작성 +P1 자료·독서 — 자료 파일 파싱·병합, 오프셋 실측, 13판 지정 범위 정독, 발췌 노트 +P2 권위 검증 — 조문 현행성, 판례 사건번호·선고일·holding, 이율·기간. authorities.jsonl 소유 +P3 집필 — §1 → §3·§4·§2.1 → §5 → §6·§8·§9·§2.2~2.3 → §7 투영·§10·§11 → §12 +P4 게이트 — python3 스크립트로 S1~S14와 린트 L-a~L-g 기계 검사, §7 재투영 +P5 심사 — 조립본만 다시 읽고 R1~R6 자기심사(blind 프로토콜, 아래 4) +P6 마감 — §0 최종화, 파일 재독, 사용자 보고, MEMORY.md 갱신 + +P2는 P1과 P3 사이에 몰아서 하지 않아도 된다. 집필 중 새 권위가 필요해지면 그 자리에서 검증하고 +레지스트리에 추가한다. 다만 검증 대상은 본문에 실제로 인용할 후보로 한정한다. + +## 4. blind 자기심사 프로토콜 (P5) + +P5는 집필 근거를 다시 펼치지 않는다. 입력은 다음뿐이다. +- 조립된 문서 전문 +- 요건사실론_문서_공통골격_v4.md +- 발췌 노트, 권위 레지스트리 +- , , , 의 R1~R6 정의 +- R6(인용 판례 검증)에 한한 web 접근. 인용된 판례의 원문·현재 상태를 다시 확인하기 위한 용도로만 쓰고, + R1~R5의 판정이나 새 법리 조사에는 쓰지 않는다. 이 확인은 4 (b)의 T2 상한에서 센다. + +쓰지 않는 것: 결정 로그, 집필 중 근거·중간 산출, adjudication 메모. +"내가 그렇게 쓴 이유"를 판정 근거로 삼지 않는다. 문서에 적힌 것만으로 판정한다. +문서가 스스로 근거를 대지 못하면 그 자체가 지적사항이다. +심사는 문서 전문 1회 통독으로 끝낸다. 절별 재통독을 반복하지 않는다. + +**이 프로토콜의 원리적 한계를 알고 쓴다.** 하위 에이전트 spawn이 금지되어 있으므로 **집필한 세션이 +그대로 심사한다.** 집필 중 알게 된 것을 컨텍스트에서 내려놓을 방법이 없으므로 blind는 구조로 +보장되지 않고 **규율로만 유지된다.** 배치 10에서 이 점이 지적됐다. 그러므로 아래 넷을 기계적으로 지킨다. +이것이 격리의 대용물이다. + +1. **디스크에서 다시 읽는다.** 심사 직전에 최종 산출물 파일을 파일시스템에서 다시 읽어 + 그 텍스트만을 판정 대상으로 삼는다. 집필 중 컨텍스트에 있던 초안·절 파일(`sections/`)을 + 판정 근거로 쓰지 않는다. 파일과 기억이 다르면 **파일이 정본이다.** +2. **지적마다 문서의 줄을 인용한다.** 각 지적사항에 「문서의 어느 서술이 그렇게 말하는가」를 + 본문 인용으로 붙인다. 인용을 붙일 수 없는 지적은 문서가 아니라 기억을 근거로 한 것이므로 버린다. +3. **역방향도 같다.** 「이건 내가 확인했으니 맞다」로 통과시키지 않는다. 문서가 스스로 근거를 + 대지 못하면 R 점수를 깎고 §12.7에 올린다. **집필 중 확인한 사실은 문서에 적혀 있을 때만 유효하다.** +4. **R 점수의 사유에 집필 경위를 쓰지 않는다.** 「자료가 얇아서」·「예산이 모자라서」는 심사 사유가 + 아니라 제한 사항이다. 제한 사항은 §12.7과 최종 보고에 적고, R 점수는 문서의 상태만으로 매긴다. + +이 넷을 지켜도 격리가 완전해지지는 않는다. 남은 편향은 **자기심사의 구조적 한계**로 보고 +최종 보고의 제한 사항에 한 줄로 적는다. 3단계 평가 프롬프트가 독립 세션에서 이를 보완한다. + +## 5. 판단 원칙 + +1. 선행 결과에 의존하는 작업(§1 → §4 → §5 → §6 → §7, 게이트 → 심사)은 dependency 순서대로 수행한다. +2. 자료 파일 간, 교과서 대 판례의 충돌은 source authority, doctrinal relevance, + factual-element relevance, evidentiary support를 기준으로 판정한다. + 기계적 합산이나 단순 다수결로 정하지 않는다. +3. 중요한 법률적 결론은 상위 권위의 primary source로 검증한다. +4. 검증은 본문에 실제로 등장할 명제에만 건다. 쓰지 않을 것을 미리 검증하지 않는다. + + + + + + +대한민국 민사소송에서 사건종류 "<####>"에 대하여 +원고가 소를 제기하는 경우를 대상으로, + +'요건사실론_문서_공통골격_v4.md'를 완전히 준수하는 +요건사실론 문서 1차 드래프트를 생성한다. + +관점: +30년 이상 경력을 보유한 대한민국 최고 수준의 법조인 및 +세계적인 수준의 인공지능 아키텍트 기술자. + +독자: +이 문서는 후속 LLM 에이전트가 읽고 정확히 이해하여 +소장·답변서·준비서면의 청구원인과 공격방어방법을 구성하는 데 활용한다. +또한 Weaviate 벡터 DB로 변환된다(골격 v4 제5부). +따라서 사람이 읽기 좋은 것과 기계가 자를 수 있는 것을 동시에 만족해야 한다. + +최종 결과물: + +사건종류_요건사실론문서/요건사실론_<####>_v1.md + +파일명의 "<####>"는 사건종류명에서 공백·특수문자를 제거한 형태로 쓴다 +(청구취지작성규칙 파일명과 같은 관례. 예: 요건사실론_공유물분할청구_v1.md). +slug는 front matter에만 쓴다. + +"완료"의 의미: +파일이 존재하고, §0~§12가 모두 있으며, 게이트 S1~S14를 통과하고, +R1~R6 자기심사가 모두 3점 이상이거나 미달 항목이 §12.7에 사유와 함께 기록되어 있고, +verification_status가 계산되어 있으며, 사용자 보고와 MEMORY.md 갱신이 끝난 상태. + + + + + + +이 프롬프트는 4단계 파이프라인의 2단계다. + +1) 자료조사: 요건사실론문서작성_자료수집_프롬프트_gpt|grok_v.2 + → 사건종류_요건사실론문서자료/요건사실문서자료_<####>_0|1|2.md (0|1|2 모두 존재할 수도 있고, 1개 혹은 2개만 존재할 수도 있다) + (제13판에서 골라낸 목차 항목·페이지·필요 이유) +2) 1차 드래프트: 이 프롬프트 + → 사건종류_요건사실론문서/요건사실론_<####>_v1.md +3) 1차 드래프트 평가 (별도 프롬프트) +4) 2차 드래프트 (별도 프롬프트) + +자료 파일 접미사: _0 = perplexity, _1 = gpt, _2 = grok. +세 파일이 항상 다 있지는 않다. 처리가 끝난 사건의 자료·규칙 문서는 `_done` 폴더로 이관되어 있을 수 있다 +(· [2]·[5]). +파일명의 띄어쓰기가 서로 다를 수 있다 +(실재 예: '요건사실문서자료_관리비 청구_1.md'와 '요건사실문서자료_관리비청구_2.md'는 같은 사건). + +자료 파일의 '필요 이유' 열은 단순 메모가 아니다. +그 목차가 청구권·요건·항변·증명책임 중 무엇을 위해 필요한지를 적은 것이므로, +독서 시 추출 목표이자 §1 경로 해체의 1차 근거다. + +기존 최종 문서 +(예: 매매를원인으로하는소유권이전등기청구/요건사실론_매매를원인으로한소유권이전등기청구_v2.md, + 임차권확인/요건사실_임차권확인청구_v2_편집.md)는 골격 v2 이전 세대다. +서술의 깊이는 참고하되 편제는 따르지 않는다. + +MEMORY.md에는 사건별 교훈이 누적되어 있다. 반복되는 핵심: +- 사건종류명은 표지이지 단일 청구권이 아니다. +- 13판에 전용 목이 없을 때 유사 표제로 메우지 않는다. +- 다음 표제가 면 상단에서 시작하면 앞 항목은 전 면에서 끝난다. +- OCR 텍스트는 위치 확인용이지 인용원이 아니다. +- 교과서와 판례가 갈리면 판례를 따른다. + + + + + + +[1] 출력 사양 (구속력 있음) + +- 요건사실론_문서_공통골격_v4.md + + Stage 0에서 전문을 읽는다. + 본 프롬프트의 는 이 파일의 요약 캐시이며, 충돌 시 **파일이 우선한다.** + v.3까지 있던 오버라이드 6건은 골격 v3가 본문에 흡수했으므로 예외는 없다. + 구버전 요건사실론_문서_공통골격_v2.md·요건사실론_문서_공통골격_v3.md가 함께 있어도 읽지 않는다. + 둘 다 작업 디렉터리에 실재하므로 파일명을 끝까지 확인한다. v3을 읽으면 S10b 완화와 + §0 예시 정정이 빠진 사양을 따르게 된다. + + **파일명이 같아도 내용은 개정된다.** 골격 v4는 판 안에서 리비전이 올라가며(제12부), + 실제로 **2026-09-04 하루에만 v4-r1 → v4-r2 → v4-r3 → v4-r4로 네 번 바뀌었다**(v4-r0은 전날 상태다). + 같은 날 실행된 두 배치가 서로 다른 리비전을 읽었고 그 사실이 사후에야 드러났다. + 따라서 Stage 0.2에서 **머리말의 「현재 리비전」과 제12부의 리비전 표를 먼저 확인하고, + 그 리비전 번호를 최종 보고에 적는다.** + **읽을 파일은 `요건사실론_문서_공통골격_v4.md` 정확히 그 이름 하나뿐이다**(화이트리스트). + `_old`·`_orig`·`_prev`·`_r`·`_r_outdated`·`_<월>_<일>_outdated` 등 접미가 붙은 사본은 + 전부 과거 리비전의 보존본이므로 읽지 않는다. 이 프롬프트도 같다 — `..._opus_v.5.txt` 하나만 읽는다. + + +[2] 사건종류별 요건사실론 자료 (자료조사 단계 산출물) + +- 사건종류_요건사실론문서자료/요건사실문서자료_<####>_0.md +- 사건종류_요건사실론문서자료/요건사실문서자료_<####>_1.md +- 사건종류_요건사실론문서자료/요건사실문서자료_<####>_2.md +- 사건종류_요건사실론문서자료_done/ 안의 같은 이름 파일 (v.5-r5. 이관된 것도 입력이다) + + 두 폴더를 합쳐 존재하는 파일을 전부 쓴다. 같은 파일명이 두 폴더에 모두 있으면 주 폴더의 것을 쓰고 + 그 사실을 decisions.md에 적는다. §0 `source_materials[].path`에는 실제로 읽은 경로를 적는다. + 탐색은 파일명을 유니코드 NFC로 정규화한 뒤 공백·'・'·'·'을 제거한 문자열로 대조한다. + (macOS·Dropbox는 한글 파일명을 NFD로 돌려주는 경우가 있어 문자열 비교가 그냥은 실패한다.) + + +[3] 『요건사실과 주장·증명책임』 제13판 + +- 요건사실.pdf + (1374쪽. OCR 텍스트층이 가장 깨끗하므로 본문 정독은 이 파일로 한다) +- 요건사실과주장증명책임_13판_목차_페이지표시.txt + (목차명과 표시 시작면의 정본) +- 요건사실과주장증명책임_13판.pdf, 요건사실과주장증명책임_13판_OCR.pdf + (이미지 대조·대체용) + + PDF 물리 쪽번호와 책 표시 쪽번호는 다르다. + 오프셋은 Stage 1.3에서 실측한다. 하드코딩하지 않는다. + + +[4] 대한민국 민법 교과서 + +- 대한민국민법자료/민법_지원림.pdf (1856쪽) + + +[5] 사건종류 "<####>"의 청구취지 작성규칙 + +- 사건종류_요건사실론문서자료/청구취지작성규칙_<####>_v*.md +- 사건종류_청구취지작성규칙문서/청구취지작성규칙_<####>_v*.md +- 사건종류_청구취지작성규칙문서_done/청구취지작성규칙_<####>_v*.md (v.5-r5. 이관된 것도 입력이다) + + 규칙 문서는 위 세 폴더 중 어디에든 있을 수 있다. 세 폴더를 모두 본다. + 같은 어간에 판 번호만 다른 문서가 여럿이면 **가장 높은 판**을 채택하고 나머지 경로를 최종 보고에 적는다. + **판 번호는 고정되어 있지 않다.** `_v1.md`·`_v2.md`가 코퍼스에 함께 실재하므로 + 대조에서 판 번호를 무시한다(Stage 0.4 (2)). `_v1`만 찾으면 실재하는 문서를 부재로 오판한다. + 부재할 수 있다(137종 중 다수). 부재 시 7에 따른다. + + +[6] 대한민국 법조계의 공신력 있는 primary websites + + + +- 대한민국 국가법령정보센터 + https://www.law.go.kr + (현행 법령·시행일·부칙, 판례 Open API target=prec) + +- 대한민국 법원 + https://www.scourt.go.kr/scourt/index.html + +- 세계법제정보센터 + https://world.moleg.go.kr/web/main/index.do + (비교법이 실제로 필요한 경우에만) + + + + +[7] 사건 분류 + +- case_kinds.md + + +[8] 프로젝트 행동규칙 + +- AGENTS.md, CLAUDE.md(있으면), MEMORY.md +- docs/quality/evidence-policy.md +- docs/workflows/legal-analysis-ko.md + + + + + + +골격 v4의 요약 캐시. 집필과 게이트 스크립트가 바이트 단위로 지켜야 하는 것만 담는다. +원칙 1~9, 서술규범(제4부), 재판모델별 변형(제3부), 적용 예시(제7부), +잔여범주 규칙(제8부 8.2), 게이트 사양의 상세(제6부)는 파일에서 읽는다. +파일과 이 요약이 다르면 **언제나 파일을 적용하고**, 그 차이를 최종 보고에 적으며, +영향받는 게이트를 `UNVERIFIED — 골격 불일치`로 표시한다. 예외는 없다. + + +## 1. 헤딩 형식 + +- 문서 제목: `# 요건사실론: <####>` (H1 하나) +- 절: `## §N. <제목>` (N = 0~12, 아래 2의 제목 그대로) +- 항: `### N.M <제목>` (예: `### 4.2 요건별 상술`, `### 5.P1 <경로명>`) +- 하위 항: `#### N.M.k <제목>` (예: `#### 5.P1.2 추가 요건사실`, `#### 6.2.1 변제`) +- 요건 블록: `#### R-XXX000-N-nn <요건사실 문장>` +- 항변 블록: `#### 6.N.x <항변명>` +- 제13판 목차 표제를 문서의 헤딩으로 쓰지 않는다. 13판 표제는 §12.4에만 등장한다. + + +## 2. 절 제목 13행 (고정, 순서 고정, 삭제 금지) + +## §0. 문서 메타 (front matter) +## §1. 재판모델과 청구경로 지도 +## §2. 소송물·주문·집행 연결 +## §3. 소송요건과 절차효과 +## §4. 공통 청구원인사실 +## §5. 경로별 분기 요건사실 +## §6. 상대방의 응답: 부인·항변·재항변 +## §7. 주장·증명책임 총괄표 +## §8. 증거계획 +## §9. 판결효과·보전·집행 +## §10. 서면 변환 +## §11. 체크리스트·금지규칙·오류 카탈로그 +## §12. 근거자료와 검증상태 + +항 제목(고정): +- §1: 1.0 재판모델 분류 / 1.1 청구경로 목록 / 1.2 경로 관계 / 1.3 인접 사건종류와의 경계 / 1.4 이 문서가 다루지 않는 것 +- §2: 2.1 소송물의 특정 / 2.2 요건사실과 주문의 대응 / 2.3 주문 유형별 유의사항 +- §3: 3.1 당사자적격 / 3.2 소의 이익(확인의 이익 포함) / 3.3 기간제한: 출소기간·제척기간·소멸시효 / 3.4 관할·중복소송·기판력 / 3.5 소장 요건과 인지 +- §4: (4.0 원고가 부담하는 사실 — 부존재확인형에서만) / 4.1 요건사실 목록 / 4.2 요건별 상술 / 4.3 서술 순서 / 4.4 부수급부: 구간표 +- §5: 5.P# <경로명> 아래 5.P#.1 이 경로가 성립하기 위한 표지사실 / 5.P#.2 추가 요건사실 / 5.P#.3 이 경로 고유의 항변 / 5.P#.4 주문과 부수급부의 변화 +- §6: 6.0 부인과 항변의 구별 / 6.1 권리장애 항변 / 6.2 권리멸각 항변 / 6.3 권리저지 항변 / 6.4 기간·시효 항변 / 6.5 신의칙·권리남용 / **6.6 소송요건의 소멸·흠결**(골격 v4-r6 신설) +- §8: 8.1 요건별 증거 매핑 / 8.2 표준 서증 목록 / 8.3 직권·보조 수단 / 8.4 증명 곤란 +- §9: 9.1 판결효과 / 9.2 보전처분 / 9.3 집행방법 / 9.4 병합·소변경·반소, 다수당사자 +- §10: 10.1 소장 청구원인 서술 순서 / 10.2 답변서·준비서면 대응 순서 / 10.3 흠결의 효과 / 10.4 청구취지 +- §11: 11.1 작성 전 체크리스트 / 11.2 금지규칙 / 11.3 오류 카탈로그 +- §12: 12.1 법령 / 12.2 판례 / 12.3 헌법재판소 결정 / 12.4 『요건사실과 주장·증명책임』 제13판 / 12.5 웹 자료 / 12.6 학설 / 12.7 검증상태와 미해결 + + +## 3. 미기재 3분 값 (혼용 금지, 사유 5자 이상 필수) + +- `해당 없음 — <사유>` regex `^해당 없음 — .{5,}$` (법적으로 적용되지 않음) +- `UNKNOWN — <사유>` regex `^UNKNOWN — .{5,}$` (적용되나 자료 부족으로 확정 못 함) +- `UNVERIFIED — <사유>` regex `^UNVERIFIED — .{5,}$` (서술했으나 공식 원문 검증 미통과) + +해당 없는 절·항은 삭제하지 않고 이 세 값 중 하나를 한 줄로 남긴다. + + +## 4. 요건 ID + +- 형식: `R--<절>-<2자리 일련>` + 예: R-PROV001-4-01, R-PROV001-5-03 +- regex(골격 v4 제6부 S4): `^R-(?:[A-Z]{3}|PROV)[0-9]{3}-[0-9]+(?:\.[0-9]+)?-[0-9]{2}$` +- 채번 권한: §4 집필 시 `-4-nn`, §5 집필 시 `-5-nn`. + 부존재확인형의 4.0(원고 부담 사실)은 `-4-nn`의 같은 일련 공간을 쓴다. 다른 절은 채번하지 않는다. +- §4·§5·§6·§7·§8은 이 ID로 조인된다. ID 없는 요건 문장은 문서 어디에도 두지 않는다. + + +## 5. §4.2 요건 블록 10필드 (순서 고정, 전부 존재 — 린트 L-f가 검사한다) + +#### R-… <요건사실 문장> +- **적용 경로**: 전 경로 | P1, P3 … ← §4 블록은 "전 경로"여야 한다(골격 v4에서 정규 필드) +- **규범적 근거**: +- **요건분류**: 권리근거 | 권리장애 | 권리멸각 | 권리저지 | 소송요건 | 절차 +- **주장의 정도**: +- **주장책임 / 증명책임**: `원고 / 원고` | `피고 / 피고` | `피고 / 해당 없음(직권)` … + **슬래시 하나로 나눈 두 값만 적는다. 문장을 쓰지 않는다**(골격 v4-r5). 왼쪽이 주장책임, + 오른쪽이 증명책임이고 각각 **당사자 표기**이거나 **§6.0이 정한 `해당 없음(직권)`**이다. + **`해당 없음(직권)`은 3분 값이 아니다** — 3분 값은 엠대시와 5자 이상의 사유를 요구하는 + `해당 없음 — <사유>` 형식이고, `해당 없음(직권)`은 §6.0 `증명책임` 열의 고유 열거값이다. + 이 필드는 §7 총괄표의 **두 열로 쪼개져 투영**되는데, 투영 코드가 + `ba, bp = (bur.split('/',1) + [''])[:2] if '/' in bur else (bur, bur)`이므로 + **슬래시가 없으면 같은 문자열이 두 열에 복제되고, 둘 이상이면 첫 슬래시에서만 잘려 + 나머지가 통째로 증명책임 열에 들어간다.** + **린트 L-f가 슬래시가 정확히 하나이고 양쪽이 비어 있지 않은지 검사한다**(게이트 v4.1). + **두 열의 값이 같은 것 자체는 정상이다** — `원고 / 원고`와 `피고 / 피고`가 정규형이므로 + 정상 문서에서도 두 열이 같은 행이 다수다. 결함의 징표는 「두 열에 문장이 들어 있다」다. + 「누가 왜 부담하는가」의 근거와 설명은 `증명 실무` 필드나 블록 아래 산문에 적는다. +- **추정·전환**: 법률상 추정 | 의사해석규정상 추정 | 증거법칙적 추정 | 사실상 추정 | 전환규정 | 간주 | 없음 + **열거값 하나만 적는다. 설명 문장을 덧붙이지 않는다**(골격 v4). 린트 L-f가 이 7값 밖의 값을 FAIL로 잡는다. 이 필드는 §7 총괄표의 `추정` 열로 + 문자열 그대로 투영되므로 문장을 쓰면 총괄표가 무너진다. 설명은 `증명 실무`로 보낸다. + `증거법칙적 추정`은 골격 v4-r3 신설이다. 민사소송법 제356조 제1항(공문서)·제358조(사문서)의 + 진정성립 추정처럼 **조문에 근거하지만 반증으로 깨지는** 추정이다. + 「법률상 추정」으로 적으면 상대방에게 반대사실의 **본증**을 요구한다는 뜻이 되어 증명도가 한 단계 + 올라가고, 「사실상 추정」으로 적으면 조문에 근거한다는 사실이 사라진다. 세 값을 구별해 쓴다. + `간주`는 골격 v4-r6 신설이다. 기간제법 제4조 제2항의 무기계약 간주, 구 파견법의 직접고용 간주처럼 + 조문이 「본다」로 정한 법률효과다. **반대사실의 증명으로 깨지지 않으므로** 「법률상 추정」으로 적으면 + 반증으로 깨진다는 잘못된 값이 §7에 투영된다. 원고는 간주의 전제사실만 세우면 되고, 상대방의 방어는 + 전제사실의 부인이나 별도 항변으로 간다. 그 점을 `증명 실무`에 적는다. +- **다중 대응**: 타 요건 겸용(ID) | 택일 요건(대체 ID) | 평가근거사실 목록 | 없음 +- **증명 실무**: +- **흠결 빈발점**: +- **권위 ID**: + +`의사해석규정상 추정`은 민법 제398조 제4항의 위약금 추정처럼 당사자의 의사가 다르다는 점을 +주장·증명하면 깨지는 추정이다. 법률상 추정(반대사실의 본증 필요)과 구별해 쓴다. +요건 블록 헤딩은 §4·§5 모두 `####`로 통일한다(`#####`를 쓰지 않는다). + +**§5에서는 그 결과 요건 블록이 항 헤딩과 같은 레벨이 된다. 이것이 정상이다.** + +``` +#### 5.P1.2 추가 요건사실 ← 항 헤딩 (level 4) +#### R-XXX000-5-01 <요건사실 문장> ← 요건 블록 (level 4, 같은 레벨) +#### R-XXX000-5-02 <요건사실 문장> ← 요건 블록 (level 4) +``` + +시각적 위계가 사라지므로 `#####`로 쓰고 싶어지지만 쓰지 않는다. +**경고 — 이 오작성은 게이트가 FAIL로 잡지 못한다.** 표준 구현체의 `req_blocks`는 level 4만 +수집하므로, `#####`로 쓰면 §5 요건이 통째로 수집되지 않고 **S4·S5·S7이 아무것도 검사하지 않은 채 +PASS한다.** 실패가 아니라 침묵으로 넘어가는 유일한 유형이므로 집필 시 주의한다. +자기점검: §7 총괄표를 투영한 뒤 그 행 수가 §4·§5의 요건 블록 수 합계와 같은지 눈으로 대조한다. +§5 요건이 있는데 총괄표에 §5 행이 없으면 헤딩 레벨을 먼저 의심한다. + +§5.P#.2의 추가 요건도 같은 블록이다. §4 블록의 '적용 경로'에 특정 경로만 적히면 그 요건은 §5로 내린다. + + +## 6. §6 항변 블록 8필드 (순서 고정 — 린트 L-f가 검사한다) + +#### 6.N.x <항변명> +- **대상요건**: R-… (필수. §4·§5에 실재하는 ID. 복수 가능) +- **요건사실**: ① … ② … +- **주장책임 / 증명책임**: `피고 / 피고` | `피고 / 해당 없음(직권)` + 여기서도 **슬래시 하나로 나눈 두 값**으로 쓴다(골격 v4-r5). 다만 근거는 §4.2와 다르다 — + **§6 항변 블록은 §7로 투영되지 않으므로**(투영 대상은 §4·§5의 요건 블록뿐이고 §6에서 쓰이는 것은 + `대상요건` 하나다) 문장을 써도 표가 무너지지는 않는다. 형식을 통일하는 이유는 + **집필자가 두 자리를 구별하지 못하기 때문**이다. 한쪽에서만 문장을 허용하면 §4·§5에서도 문장이 나온다. + 소송요건 흠결을 다투는 블록은 `피고 / 해당 없음(직권)`이 정규형이다. +- **재항변**: +- **재재항변**: +- **주문에 미치는 영향**: 기각 | 일부인용 | 상환이행 주문으로 변형 | 소변경 후 상환이행(2단) | + **소각하** | 영향 없음 + `소각하`는 골격 v4 신설. 소송 계속 중 원고의 지위 상실, 후행 추인·재결의로 인한 소의 이익 소멸처럼 + 소송요건 흠결을 다투는 상대방 주장의 효과다. 정규 자리는 §6.0의 `성질`=「직권 참작사유」 행이고, + §6.0 표에 그 행을 **반드시 싣고**, 전개할 실익이 있으면 **추가로 §6.6(소송요건의 소멸·흠결)에 블록을 두고** 이 값을 쓴다(골격 v4-r6). + 표와 블록은 중복이 아니라 연결이므로 **§6.0 행을 지우지 않는다**(골격 v4-r3 정정. v4-r2까지 + 「두 자리를 동시에 쓰지 않는다」로 적혀 §11.2 금지규칙 15와 모순이었다). +- **소변경·석명 요부**: 불요 | 필요 — <어떤 청구로의 변경이 필요한지> ← 위 값이 (2단)이면 필수 +- **권위 ID**: + +`소변경 후 상환이행(2단)`은 지상물매수청구권(민법 제283조·제643조) 항변처럼 ① 원청구는 전부 기각되고 +법원이 석명의무를 지며 ② 원고가 소를 변경한 뒤에야 상환이행 주문이 나오는 2단 효과를 가리킨다 +(대법원 94다34265 전원합의체). 이 값을 「상환이행 주문으로 변형」으로 적으면 원고의 소변경 없이 +상환이행이 생성되는 오독을 부른다. + +§6.0은 표다: `| 상대방 주장 | 성질 | 증명책임 | 대상요건 ID |` +성질 ∈ {부인, 권리장애 항변, 권리멸각 항변, 권리저지 항변, 기간·시효 항변, 신의칙·권리남용, + 직권 참작사유} ← 7값. 골격 v4에서 「직권 참작사유」가 신설되었다. +- 부인 행의 증명책임은 "원고(이동 없음)"류로 쓴다. 부인은 6.1~6.6의 블록으로 만들지 않는다. +- 직권 참작사유는 증명책임을 "해당 없음(직권)"으로 쓴다. **블록 전개 여부는 두 갈래로 갈린다** + (골격 v4-r3에서 분기했다. v4-r2까지 무조건 금지로 적혀 있어 `소각하` 값과 충돌했고, + 배치 9의 이사회결의무효가 승패를 가르는 방어를 「권리멸각 항변」으로 근사했다). + - **(i) 실체법상 직권 참작** — 손해배상 예정액 직권감액(민법 제398조 제2항), 과실상계(제396조), + 실손해 부존재 주장. **6.1~6.6 어느 항에도 블록으로 만들지 않는다.** 감액·상계의 기준이 되는 + 평가근거사실은 §6.0 표 아래 산문으로 둔다. + - **(ii) 소송요건의 소멸·흠결** — 후행 추인·재결의로 인한 소의 이익 소멸, 소송 계속 중 원고의 + 지위 상실, 청구기간 도과, 청산 종결 등. 상대방이 실제로 다투어 재항변·소변경 요부·주문 영향을 + 전개할 실익이 있으면 **§6.6(소송요건의 소멸·흠결)에 블록을 둔다. §6.1~§6.5에 두지 않는다**(골격 v4-r6). + `주문에 미치는 영향`은 `소각하`, `증명책임`은 「해당 없음(직권)」을 유지한다. + 확인의 소에서는 이 갈래가 제1 방어선인 경우가 많다. + - **(ii)의 제약 둘.** ① 블록을 두더라도 **§6.0 표의 행을 지우지 않는다.** 표는 성질의 분류이고 + 블록은 그 전개이므로 중복이 아니라 연결이다(골격 §11.2 금지규칙 15). + ② 블록으로 전개하려면 **그 소송요건이 §4·§5에 `요건분류: 소송요건`인 R-ID로 실재해야 한다.** + S7이 `대상요건`의 실재를 검사하기 때문이다(확인의 소의 「확인의 이익의 기초사실」, + 장래이행의 소의 「미리 청구할 필요」가 그 예다). 실재하지 않으면 블록을 만들지 말고 + §6.0 행과 산문으로 두고 그 사실을 §12.7에 적는다. **없는 R-ID를 지어내지 않는다.** + - **§6.6의 규칙**(골격 v4-r6): 블록 번호 `#### 6.6.x`, 8필드 템플릿 그대로. 정규형은 + `피고 / 해당 없음(직권)` + `소각하`. **원시적 흠결**(대상 불특정·보충성·확인의 이익 부존재)을 먼저, + **후발적 소멸**(권리 종료·원고 지위 상실·후행 추인·청산 종결)을 뒤에 배열하고 갈래는 항변명에 드러낸다. + 블록이 하나도 없으면 `해당 없음 — <사유>` 한 줄(S3). 항을 삭제하지 않는다. + 소송요건 R-ID의 자리는 §5(경로 전용)·§4(전 경로 공통)이고 §3은 참조만 한다(골격 v4-r6 §3). + + +## 7. §7 총괄표 (스크립트 투영) + +`| 요건 ID | 요건사실 | 소속 절 | 요건분류 | 주장책임 | 증명책임 | 추정 | 대응 항변 ID |` + +행 집합 = §4·§5 요건 ID 집합과 정확히 일치. +대응 항변 ID = 그 요건을 `대상요건`으로 가진 §6 블록 번호(6.N.x)의 목록. +`소속 절` 열은 투영기가 `§4(공통 청구원인사실)` / `§5(경로별 분기 요건사실)`로 절 제목을 병기한다(게이트 v4.1). + + +## 8. §3 각 항의 5필드 + +`사유의 성질` / `조사방식`(직권조사 | 항변사항 | 혼합) / `증명책임`(원고 | 피고 | 해당 없음) / +`보정 가능성` / `절차효과`(이송 | 보정명령 후 소장각하명령 | 소각하판결 | 본안기각) + +S12는 조사방식·증명책임·절차효과 3값을 검사한다. + + +## 9. §4.4 구간표와 기계판독 문언 + +`| 구간 | 기산사건 | 종기사건 | 이율 | 근거법령·시행일 |` + +표 아래에 **경로마다 한 줄씩**(경로가 다섯이면 다섯 줄): +`부대청구 주문 문언[P1]: "…"` +`부대청구 주문 문언[P2]: "…"` +`부대청구 주문 문언[P3]: "…"` +**라벨은 §1.1의 경로 ID 그대로 `[P]` 하나뿐이다**(v.5-r5). `[P1b]`·`[P-장래]`·`[전 경로]` 같은 임의 라벨을 +만들지 않는다. 한 경로 안에서 문언이 구간별로 갈리면 라벨을 늘리지 말고 그 경로의 줄 하나에 +전체 문언을 담는다(§2.2 셀과 바이트 동일해야 하므로). 게이트 S11(c)는 라벨 형식을 검사하지 않고 +합집합만 대조하므로 라벨 규칙은 집필 규율이다. +§5.P#.4가 경로별 문언을 바꾸면 그 절 말미에 같은 형식으로 추가한다. +§2.2의 '부대청구 주문 문언' 셀은 이 줄들의 문자열 중 하나와 정확히 같아야 한다(S11, 오버라이드 5). +부수급부가 없는 사건은 표 대신 `해당 없음 — <사유>` 한 줄과 `부대청구 주문 문언[P1]: "없음"`을 둔다. + + +## 10. §0 front matter (YAML, 키 전부 ASCII, 값은 한국어 가능) + +schema_version("3.0.0") / case_kind_id / case_kind_name / case_kind_slug / aliases[] / +case_family / dispute_type(case_kinds.md의 분쟁 유형 셀. **셀이 비어 있으면 소송 대분류 값** — 형성의 소 9건은 `"형성의 소"`, 골격 v4-r6) / +action_type(이행 | 확인 | 형성 | 형식적형성 | 집행관계 | 재판공격) / +overlays[] / claim_paths[{id: P#, name, authorities[], has_branch}] / +path_relation(단일 | 청구권경합 | 법조경합 | 택일 | 독립) / joinder_mode(없음 | 단순 | 선택적 | 예비적) / +filing_deadline{kind(없음 | 출소기간 | 제척기간 | 소멸시효), basis, period} / +claim_rule_doc / claim_rule_pattern_ids[] / source_materials[{path, origin}] / +adjacent_case_kinds[] / law_as_of(YYYY-MM-DD) / verification_status(VERIFIED | QUALIFIED | UNVERIFIED) / +doc_version("v1") / content_hash(`sha256:<64자리 소문자 hex>`. S1이 형식을 검사한다 — 게이트 v4.1) + +조건: action_type=형성이면 filing_deadline.kind ∈ {출소기간, 제척기간}. + path_relation=단일이면 claim_paths는 1개. + case_kind_id는 `^(?:[A-Z]{3}|PROV)-[0-9]{3}$`, case_kind_slug는 `^[a-z0-9]+(?:-[a-z0-9]+)*$`. + 기간 제한이 실재하는데 대응 열거값이 없다는 이유로 kind에 `없음`을 쓰지 않는다. + 유류분반환청구권(민법 제1117조)은 `소멸시효`, 상속회복청구권(제999조 제2항)은 `출소기간`이다. + **정정보도·반론보도 청구는 `출소기간`이다**(골격 §3.3 판정 규칙 ③, v4-r4). 언론중재법 제14조 + 제1항(반론보도는 제16조 제3항 준용)의 3개월·6개월은 재판외 청구에도 걸리는 제척기간이지만 + **제26조 제3항 전단이 같은 기간을 소 제기 자체의 기간으로 다시 걸므로**, 소로 행사하는 + 국면의 도과 효과는 소각하다. **두 유보를 함께 옮긴다** — ① **재판외 청구만 문제 되는 + 국면에서는 제척기간으로 작동한다.** ② **이 판정을 정면으로 판시한 대법원 판결은 확인되지 + 않았으므로 해당 사건종류 문서는 그 사실을 §12.7에 남긴다.** + 각하의 재판형식도 갈린다 — 제26조 제6항에 따라 정정보도의 소는 민사소송법 절차이므로 + **판결로 각하**하고, 반론·추후보도의 소는 가처분절차이므로 **결정으로 각하**한다. + +**§0 레이아웃 (골격 v4 제2부 §0, 고정)** + + 1행 --- ← 파일의 첫 바이트. 앞에 어떤 줄도 두지 않는다 + … (YAML front matter) + N행 --- + N+1행 (빈 줄) + N+2행 # 요건사실론: <####> ← H1, 문서 전체에 하나 + N+3행 (빈 줄) + N+4행 ## §0. 문서 메타 (front matter) ← front matter가 있어도 이 헤딩을 생략하지 않는다 + +`## §0.` 헤딩 아래에는 front matter의 요약 또는 `해당 없음 — front matter에 기재` 한 줄을 둔다. +게이트 S2c가 이 레이아웃을 검사한다. Weaviate 적재가 `---`의 첫 바이트 위치를 전제한다. + + +## 11. 게이트 S1~S14·린트 (L1, 스크립트) — 골격 v4 제6부 사양 + +**판정 경계는 골격 v4 제6부가 정본이고, 그 표준 구현체가 다.** +게이트를 사건종류마다 새로 구현하지 않는다. 배치 4에서 워커 10명이 각자 구현해 초회 실행이 +전건 다수 FAIL이었고 그 대부분이 오탐이었으며, 수정에 라운드 1의 상당 부분이 소모됐다. + +공통 정의 — **leaf 헤딩**: 자식 헤딩을 갖지 않는 헤딩(요건·항변 블록을 자식으로 가진 항 헤딩은 컨테이너다). +**산문 줄**: 헤딩도 표 행도 코드펜스 내부도 아닌 줄. **3분 값**: 백틱·굵게로 감싼 표기도 인정한다. + +S1 front matter가 위 10의 스키마를 통과. + **사양과 구현이 다르다. 알고 쓴다.** 골격 v4 5.1 스키마는 `additionalProperties: false`를 + 전수 적용한다고 정하지만, 표준 구현체의 S1은 **필수 키의 존재만** 검사한다. + 미지 키, `doc_version` 패턴 위반, `law_as_of` 날짜 형식 위반, `schema_version` 값 오류는 + 구현체가 통과시킨다. 값 검사를 넣으면 기존 코퍼스 50건이 즉시 FAIL이 되어 + 완화만 담기로 한 v4의 기준과 어긋나므로 v4에서는 넣지 않았다. + 따라서 §0 필드의 정확성은 게이트가 아니라 **집필 규율과 P6 재독으로** 지킨다. + (v4.1) 예외 하나 — `content_hash`는 `^sha256:[0-9a-f]{64}$` 형식을 검사한다. stub의 placeholder가 + 마감에서 치환되지 않은 채 남는 침묵 실패를 잡기 위함이다. +S2a 절 제목 13행이 순서대로 존재. 기대 목록에 **§0을 반드시 포함**한다. + front matter의 존재가 `## §0.` 헤딩을 대체하지 않는다. +S2b H1(`^# `)이 정확히 1개. +S2c §0 레이아웃: 파일 **첫 줄**이 `---`, front matter 종료 후 H1, 그 다음 `## §0.`. +S3 빈 절·항이 3분 값에 매치. **leaf 헤딩만 검사한다.** 요건·항변 블록 자체는 대상이 아니다. +S4 요건 ID 유일성 및 위 4의 regex. +S5 §4·§5의 요건 ID 집합 == §7 행의 요건 ID 집합. +S6 §5 요건 ID ∩ §4 요건 ID = ∅. **귀속은 절 번호가 아니라 ID의 절 필드로 판정한다** + (부존재확인형 §4.0의 ID는 `-4-nn`이므로 §4 집합이다). +S7 §6.1~§6.6의 `#### 6.N.x` 블록에 `대상요건`이 있고 그 값이 §4·§5에 실재(§6.6 포함 — 골격 v4-r6). + §6.0 표의 행은 대상이 아니다. `성질`이 「직권 참작사유」인 행에 **블록을 요구하지 않는다** + (없어도 통과). 다만 위 §6.0 (ii)에 따라 블록을 둔 경우에는 **그 블록도 똑같이 검사한다** — + 구현은 성질을 보지 않고 블록만 수집하므로, `대상요건`이 §4·§5에 실재하지 않으면 FAIL이다. +S8 {claim_paths[].id} == §1.1 표의 경로 ID 집합, {id | has_branch} == §5의 5.P# 블록 ID 집합. +S9 사건번호 등재. 원시 정규식 `\d{2,4}[가-힣]{1,3}\d+`는 조문 표기를 대량 오탐하므로 아래를 전부 적용한다. + (i) 한글부가 조·항·호·목·면·분·년·조의·조제·항제·호의이면 제외 + (ii) 매치 직전 문자가 `제`이면 제외 (iii) 앞 8자에 `100분의`·`연 `가 있으면 제외 + (iv) 남은 토큰을 **§12.2 ∪ §12.3** 과 대조한다. 헌재 결정번호는 §12.3 소관이다. +S10 상호참조 해소. 패턴을 `§\d+(\.\d+)*(\.P\d+(\.\d+)*)?`로 확장하고(§5.P2.3 형태), + **산문 줄에만** 적용한다. §7 총괄표 '소속 절' 열의 `| §4 |`를 절 참조로 계수하지 않는다. +S10b 절 제목 병기(`§6.2(권리멸각 항변)`). 역시 **산문 줄에만** 건다. 표 셀·헤딩은 대상이 아니다. + 골격 v4의 경계: **면제 단위는 항(H3) 구간**이고(절이 아니다. 적재 청크가 H3/H4이므로), + 그 구간에서 그 참조의 **첫 등장 1회만** 제목 병기를 요구한다. + **H3 구간 = 항 헤딩부터 다음 레벨 3 이하 헤딩 직전까지.** 그 안의 H4 블록은 구간을 끊지 않는다 + (게이트 v4.1이 사양대로 고쳤다. v4.0은 첫 H4 앞에서 끊어 블록 산문이 문서 전역의 단일 면제 단위를 공유했다). + 절 번호가 문장 구성요소인 형태는 면제한다 — 계수 `§N에 <숫자>`, 소유격 `§N의`, + 범위 표기 `§6.1~§6.5`의 양 끝(집합 지정, 게이트 v4.1). + 그 밖의 조사(`§6.2를`, `§4에 실제…`)는 면제하지 않는다. + **실패 형태 두 가지** — 구현은 「§ 바로 뒤 2자 안의 *여는* 괄호」만 병기로 본다. 따라서 + ① `(§6.2 권리멸각 항변)`처럼 여는 괄호가 § **앞**에 오면, ② `(§6.2)`처럼 참조를 괄호로 **감싸면** + 제목이 있어도 FAIL이다. 정규형은 `§6.2(권리멸각 항변)`뿐이다. + 배치 12H의 초회 S10b FAIL 대부분이 이 둘이었다(한 워커는 18곳을 정규식 치환). + **줄 단위 면제는 없다**(참조를 몰아 써서 회피하는 경로를 막기 위함). +S11 (a) §4.4의 구간표 각 데이터 행에 기산사건·종기사건·이율·근거 4값. + 이율이 부존재하는 것이 정답인 행(장래 정기금 구간 등)은 이율 셀에 3분 값 + `해당 없음 — <사유>`를 쓴다. 골격 v4의 정규 값이다. 임의 문구를 지어내지 않는다. + 실패하는 것은 빈 셀뿐이다. + **반대 방향의 오용을 함께 막는다 — 이율이 존재하는 행에 3분 값을 쓰지 않는다**(골격 v4-r1). + 앞 구간의 이율이 그대로 이어지고 **특례이율의 적용만 배제되는 구간**(항쟁의 상당성이 인정되어 + 소송촉진 등에 관한 특례법의 법정이율이 적용되지 않는 구간, 민사소송법 제251조의 장래이행분 등)은 + **이율 부존재 행이 아니다.** 그런 행에는 `해당 없음`이 아니라 실질값(예: + 「구간 2와 같다 — 민법 제379조의 연 5분」)과 배제되는 특례이율의 근거를 함께 적는다. + **게이트는 빈 셀만 잡으므로 이 오용을 잡아주지 못한다.** 집필 규율로 지킨다. + §4.4 안에 표가 여럿이면 헤더에 **기산사건과 이율이 함께 있는 블록만** 구간표로 보고 헤더 행은 건너뛴다. + (b) §4.4는 **문서 내 위치와 무관하게** `4.4` 항 헤딩으로 찾는다(§4 말미에 있어도 된다). + (c) §2에서 헤더에 `부대청구 주문 문언`이 있는 표 블록의 그 열만, 기계판독 문언 줄의 **합집합**과 대조한다. + 대조 전에 양쪽에서 `부대청구 주문 문언[P#]: ` 접두와 따옴표를 제거해 정규화한다. +S12 §3 각 항에 조사방식·증명책임·절차효과 3값. **그 항의 본문 첫 줄이 3분 값이면 면제**한다. +S13 §6.0 표의 `성질`이 위 6의 7값 중 하나. 헤더가 `| 상대방 주장 | 성질 | …`인 **첫 표 블록만** 검사한다. +S14 source_materials[].path 실재. 한글 파일명은 **NFC 정규화 후** 비교하고, + 완료된 사건의 자료 파일은 `<폴더>_done/`으로 이관되므로 **그 폴더도 함께 탐색**한다. + +린트 +L-a YAML 키가 전부 ASCII. +L-b `연 \d+%` 옆에 같은 행 시행일. **§4.4·§5의 표 행에만** 적용한다. + 기계판독 부대청구 주문 문언 줄은 대상이 아니다(그 줄은 §2.2와 바이트 동일해야 하므로 시행일을 넣을 수 없다). +L-c 13판 목차 표제가 §12.4 밖 헤딩에 등장. **골격 고정 절·항 제목과 H1은 예외**다. + 「확인의 이익」·「청구원인사실」·「당사자적격」은 13판 목차에도 실재한다. +L-d §6.1~6.6 헤딩에 "불성립"·"미교부"·"부존재"·"없었다"(부인 누출). +L-e 출처 잔재. 검사 범위는 **§1 시작부터 §12 시작 직전까지**(§0·§12는 출처 기재의 정규 위치). + 금지어 "프롬프트"·"평가서"·"자료 파일"·".md"·".pdf"·"_v1". + **"감정평가서"·"감정서"는 증거 명칭이므로 예외**로 제외한 뒤 검사한다. +L-f (게이트 v4.1 신설) 모든 `#### R-` 블록에 위 5의 10필드가 **그 순서대로** 존재, 모든 `#### 6.N.x` 블록에 + 위 6의 8필드가 **그 순서대로** 존재. `주장책임 / 증명책임`의 슬래시가 정확히 하나이고 양쪽이 비어 있지 않음. + `추정·전환`이 7값 중 하나. 결측은 §7에 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, + v4.0까지 22/22 PASS인 문서에도 남던 침묵 결함이다. +L-g (게이트 v4.1 신설) §1 시작부터 §12 시작 직전까지의 모든 줄(표 행 포함, 코드펜스 제외)에 등장하는 + 조문 토큰 `제\d+조(의\d+)?`가 §12 텍스트에 등장해야 한다. §12의 `제A조~제B조`·`제A조 내지 제B조`는 + 전개해 대조한다. 법령명은 대조하지 않는다(누락만 잡는 느슨한 검사). S9가 사건번호에 하는 일을 조문에 한다. + **집필 규율**: 본문에 조문번호를 쓰는 순간 §12.1에 등재한다. 「이 문서가 다루지 않는 것」(§1.4)에서 + 경계로 언급하는 조문도 같다 — 등재하거나 번호 없이 법령명만 쓴다. + +**§7 투영의 멱등성** — 투영기는 §7 구간만 치환하고 나머지 바이트를 보존한다. front matter를 +재조립하지 않는다. 2회 연속 투영 후 파일 해시가 같아야 하며, 의 +`--check-idempotent`가 이를 검사한다. + + +## 11-b. 골격 v4가 v3에서 바꾼 것 (요약) + +이 프롬프트는 **골격 v4**를 정본으로 삼는다. v3 대비 5건이 바뀌었고 전부 오기 시정 또는 완화다. +**`schema_version`은 v4에서도 `"3.0.0"`이다.** 골격 문서의 판과 산출물의 데이터 스키마 판은 다르다. +골격 판이 v4라는 이유로 `"4.0.0"`을 쓰지 않는다. +**게이트는 이것을 잡아주지 않는다** — 구현체의 S1은 필수 키 **존재**만 보고 +`schema_version` 값을 대조하지 않는다(실측: `"4.0.0"` 문서가 전 항목 PASS). 집필 규율로 지킨다. + +| # | 항목 | 바뀐 내용 | +|---|---|---| +| 1 | S11(a) 이율 셀 | 이율 부존재가 정답인 행은 `해당 없음 — <사유>`가 **정규 값** | +| 2 | S10b 제목 병기 | **항(H3) 구간별 첫 등장 1회**만 요구 + 형태 기반 면제(계수 `§N에 <숫자>`, 소유격 `§N의`). 줄 단위 면제와 절(H2) 단위 면제는 골격 v4 제11부 11.4에서 폐기됐다 | +| 3 | §4.2 `추정·전환` | 열거값 하나만. 설명은 `증명 실무`로 | +| 4 | §6 `주문에 미치는 영향` | **`소각하` 신설** | +| 5 | 제2부 §0 YAML 예시 | `schema_version` 예시를 `"3.0.0"`으로 정정 | + +린트 L-c의 무력화(3/14 지적)는 **의도적으로 반영하지 않았다.** 검사를 엄격하게 만드는 방향이라 +기존 코퍼스에 회귀를 낼 수 있고, 짧은 표제의 예외 목록을 먼저 정해야 한다(골격 v4 제11부 11.2). +따라서 L-c는 v4에서도 사실상 무조건 PASS다. 13판 표제를 헤딩으로 쓰지 않는 것은 **집필 규율로** 지킨다. + + +## 12. 오버라이드 — 없음 + +v.3까지 골격 v2의 errata를 우회하던 오버라이드 6건은 **골격 v3가 본문에 흡수**했다. +이 프롬프트는 골격을 우회하지 않는다. 골격 v4 파일과 이 요약이 다르면 언제나 파일을 적용한다. + +| v.3의 오버라이드 | 골격 v3에서의 처리 | +|---|---| +| 1. S4 regex에 PROV 허용 | 제6부 S4 사양에 편입 | +| 2. S1에서 additionalProperties 미적용 | 5.1 스키마가 전 키를 열거해 정상 작동. 오버라이드 불요 | +| 3. 부존재확인형 §4 정규 헤딩 유지 + 굵은 부제 | 제3부 「치환의 형식」으로 편입 | +| 4. 잔여범주 판정 가이드 형식 | §11.2 금지규칙 13을 재기술 | +| 5. 부대청구 주문 문언 경로별 복수 | 제6부 S11(c) 합집합 대조로 편입 | +| 6. case_family와 action_type의 괴리 | §0 설계 주석으로 편입 | + +골격 v4 파일에서 위 6건이 확인되지 않으면 v2를 잘못 읽은 것이다. 파일명을 다시 확인한다. + + + + + + +골격 v4 제6부 L1 사양의 **표준 구현체**(`tmp/rf_draft/_shared/rf_gate.py`)를 쓰는 절차다. 사건종류마다 새로 쓰지 않는다. + +사용 절차 (Stage 5, P4) + +1. **`tmp/rf_draft/_shared/rf_gate.py`(`RF_GATE_VERSION = 'v4.1'`)가 정본이다.** 존재하고 첫머리의 상수가 + `v4.1`이면 그대로 쓴다. 워커는 이 파일을 만들거나 덮어쓰지 않는다. +2. **없거나 상수가 `v4.1`이 아니면 중단하고 보고한다**(). 복원하지 않는다. +3. 실행: + - 검사만: `python3 tmp/rf_draft/_shared/rf_gate.py <문서경로>` + - §7 투영 후 검사: `--project` + - 투영 멱등성까지 확인: `--check-idempotent` + 종료코드 0이면 전 항목 PASS. 각 행은 ` PASS|FAIL <사유>` 형식이다. +4. **스크립트를 고쳐서 통과시키지 않는다.** FAIL이 오탐으로 보이면 그것은 골격 v4 제6부 사양의 + 결함이므로, 문서를 고치는 대신 그 사실을 decisions.md와 최종 보고의 「v4 패치 후보」에 적는다. + 사양과 구현이 갈리면 골격 v4 제6부가 정본이다. + +이 구현(v4.1)은 2026-09-09에 코퍼스 98건 전수에 시험되었다. 13건이 전 항목 PASS다. v4.0에서 PASS였던 +60건이 신설 검사(L-f 37·L-g 44·S10b 3·S1 2)로 FAIL이 되었고 기존 항목의 FAIL 분포는 v4.0과 같다 — +새 검사가 아닌 이유로 깨진 문서는 없다. 그 60건은 v4-r6 이전 세대에 잠복해 있던 침묵 결함이며 재생성 +대상이 아니다(골격 12.9). **신규 생성 문서는 v4.1 전 항목을 통과해야 한다.** + + + + + + +law.go.kr·scourt.go.kr 호출에서 배치 4·6의 워커들이 각자 같은 함정에 걸려 조회 예산을 낭비했다. +아래는 배치 6까지의 실측 관례다. 처음부터 이 순서로 호출한다. +관례가 실측과 어긋나면 실측을 따르고 그 사실을 최종 보고의 「v.5 패치 후보」에 적는다. + +## 0. 모든 XML 응답에 공통으로 걸리는 파서 함정 (먼저 읽는다) + +- **레코드 태그는 속성을 가진다.** 판례검색은 ``, 법령검색은 ``이다. + ``·``로만 잡는 정규식은 `totalCnt`가 1 이상인데도 0건을 반환한다. + 이것을 「판례 부존재」·「법령 부존재」로 오판하면 재조회가 전건으로 번진다 + (배치 6에서 두 워커가 각각 12건·19건을 이 이유로 재조회했다). + 레코드 추출은 `]*>(.*?)`처럼 **속성을 허용하는 형태**로 쓴다. +- **CDATA를 먼저 벗기고 태그를 지운다. 순서를 바꾸지 않는다.** + `<조문내용>` 등은 CDATA로 감싸이는데 그 안에 `>`가 없으면 `<[^>]+>` 치환이 + CDATA 블록 전체를 하나의 태그로 보아 **본문을 통째로 삭제한다.** + 결과가 빈 문자열이므로 「조문 없음」으로 오판하기 쉽다. + 올바른 순서: ① ``를 안쪽 문자열로 치환 → ② 남은 태그 제거. +- **일부 필드만 CDATA로 감싸여 있다.** 전 필드가 CDATA라고 가정한 파서는 파싱에 실패한다 + (배치 4에서 한 워커가 이것으로 28건을 재조회했다). CDATA 유무를 모두 허용하도록 쓴다. +- **(v.5-r4) CDATA는 판례 응답이나 조문 본문만의 문제가 아니다. 법령 *검색* 응답의 + `<법령명한글>`·`<법령약칭명>`도 CDATA다.** 실측(2026-09-05): + `lawSearch.do?target=law&type=XML&query=택지개발촉진법` → + `<법령명한글>`. + 그러므로 **법령명 완전일치 필터를 CDATA를 벗기기 전에 걸면 전건 0을 낸다.** + 이것을 「해당 법령 없음」으로 오판하면 조문 확인 전체가 무너진다. + 배치 11의 한 워커가 이 이유로 법령 검색 10건을 전부 놓쳤다. + **순서를 지켜라: ① CDATA를 벗긴다 → ② 완전일치를 건다.** 부분일치로 후보를 받아 두는 것도 안전하다. +- **`IncompleteRead`가 드물지 않다.** 판례 전문 조회에서 특히 자주 난다 + (배치 6에서 한 워커가 5회 겪었다). read를 루프로 받거나 단순 재시도한다. + 같은 대상의 재시도이므로 상한에 계수하지 않는다( 4). +- **`type=XML`을 반드시 붙인다.** HTML 응답은 본문이 AJAX로 채워지므로 파싱하면 빈 값이 돌아온다. + 이것을 「전문 없음」으로 오판하지 않는다. +- **조문 레코드의 태그 이름이 응답마다 다르다.** `<조문>`인 응답과 `<조문단위 ...>`인 응답이 모두 실재한다. + 두 이름을 모두 허용하고 **속성을 허용하는 형태**(`<조문단위[^>]*>`, `<조문[^>]*>`)로 매치한다. + 한 이름만 가정한 파서는 조문 0건을 낸다. +- **대통령령·시행령의 본칙은 `<조문내용>`의 텍스트가 아니라 CDATA 안에 있는 경우가 있다.** + 위 CDATA 규칙을 적용해 CDATA에서 직접 뽑는다. 태그 텍스트만 읽으면 본칙이 비어 보인다. +- **큰 법령은 urllib의 chunked 읽기가 `IncompleteRead`로 깨진다**(민법에서 실측). + `curl -s -o <파일>`로 스크래치에 받은 뒤 로컬에서 파싱하는 편이 안정적이다. + +## 1. 법령 + +- `lawService.do`를 **법령명만으로 호출하지 않는다.** 오류를 반환한다. + `lawSearch.do?target=law&query=<법령명>`으로 먼저 검색한다. +- **(v.5-r5) 질의어를 반드시 URL 인코딩한다**(`urllib.parse.quote`). 법령명에 공백이 있으면 + (「장사 등에 관한 법률」·「집합건물의 소유 및 관리에 관한 법률」·「소송촉진 등에 관한 특례법」) + 인코딩 없이 붙인 요청이 깨져 **직전 질의의 결과가 그대로 돌아온다.** 0건이 아니라 **다른 법령**이 + 반환되므로 그대로 채택하면 조용히 틀린다(배치 12H에서 세 건이 앞선 「온천법」 결과를 받았다). + 응답의 `<법령명한글>`(CDATA를 벗긴 뒤)이 질의한 법령명과 일치하는지 반드시 대조한다. + 공백 없는 어간(「장사등에관한법률」)으로 검색해도 된다 — 부분일치이므로 잡힌다. +- 검색(`lawSearch.do`)으로 MST를 얻고 본문(`lawService.do`)을 여는 것은 **같은 대상의 2단 호출**이므로 + 합쳐 법령 1대상으로 센다( 4). 판례의 `nb=` → `ID=`와 같다. +- 검색 응답의 필드명은 **`<법령일련번호>`**이고, 그 값을 `lawService.do`에서는 + **`ID=`가 아니라 `MST=`에 넣는다.** `ID=`로 넣으면 「일치하는 법령이 없습니다」가 돌아온다 + (배치 6에서 실측). `ID`와 `LM`을 함께 요구하는 응답도 있으므로 실패 시 두 파라미터를 붙여 재시도한다. +- **법령명 검색은 부분일치다.** 「민법」·「상법」처럼 짧고 흔한 이름은 이 경로로 바로 MST를 얻을 수 없다 + (실측: `query=민법`이 「난민법」을 상위로, `query=상법`이 56건을 반환). + `display=100`으로 넓힌 뒤 `<법령명한글>`이 **정확히 일치하는 행만** 채택한다. +- **`search=1`은 완전일치가 아니다.** 법령명 검색 모드라는 뜻일 뿐이어서 「민법」 질의에 + 찾는 법명이 상위에 오지 않는다. `display`를 키우고 법령명 완전일치로 걸러야 한다. +- **연혁본 MST가 먼저 반환될 수 있다.** `<법령명한글>` 완전일치와 `<현행연혁코드>`가 `현행`인 조건을 + **함께** 걸어야 시행 중인 판을 잡는다. 한쪽만 걸면 폐지·연혁 판의 조문을 현행으로 오인한다. +- 조문 단위 조회가 가장 싸다: `lawService.do?target=law&MST=<법령일련번호>&JO=<조 4자리+가지 2자리>` + (예: 민법 제179조 → `JO=017900`, 제202조의2 → `JO=020202`). +- 실측 MST(2026-09-02 기준, 재확인 후 사용): 민법 284415, 상법 272919, 민사소송법 252393. + 이 값은 진입점이지 판정이 아니다(). 시행일·부칙은 반드시 응답에서 확인한다. +- **조문을 여럿 볼 때는 법령 XML을 1회 받아 로컬에서 뽑는다.** 조문마다 HTTP를 부르면 + 연속 호출에서 연결이 끊긴다. 법령 1건은 이 방식으로 HTTP 8회 안에 끝난다(계수는 법령 1대상). + 배치 조회가 불가피하면 호출 사이에 **1.5초**를 넣는다. +- 받은 XML은 tmp/rf_draft//에만 두고, 컨텍스트에는 본문에 인용할 조문만 올려 레지스트리에 요약한다. + +## 2. 판례 + +- 본문검색(`search=2`)으로 잡히지 않는 구판례가 많다. **`nb=<사건번호>`로 재조회**하면 나온다. + 본문검색 0건을 곧바로 「판례 부존재」로 판정하지 않는다. +- 권장 경로는 **2단**이다. + ① `lawSearch.do?target=prec&nb=<사건번호>` → `<판례일련번호>` 취득 + ② `lawService.do?target=prec&type=XML&ID=<판례일련번호>` → **`<판례내용>` 전문 취득** + `lawService.do?target=prec`는 메타데이터만 준다는 v.4의 기술은 **실측과 다르다.** + 배치 6의 두 워커가 T2 확인 16건·17건 전건을 이 한 엔드포인트로 끝냈다. +- `precInfoP.do`는 위 ②의 `<판례내용>`이 비어 올 때의 **대체 경로**다. 먼저 부르지 않는다. + `evtNo`가 공백이면 `precSeq`로 재시도한다. +- ②의 엔드포인트는 **판시사항·판결요지·참조조문·판례내용을 함께** 준다. 이 2단 호출이 가장 싸다. +- **`nb=<사건번호>`는 부분일치가 섞인다.** `87다카279` 질의가 `87다카2792`까지 함께 잡는다. + 반환된 `<사건번호>`를 **정확히 대조**해 채택한다. 구판례(87다카279·66다615·92다527 등)도 이 경로로 잡힌다. +- **사건번호의 실재와 판시의 일치는 별개 검증이다.** 번호가 조회된 것만으로 T2가 되지 않는다. + 전문을 받아 본문에 쓸 명제의 문언과 대조해야 holding이 확정된다( 2). +- **변경·폐기 여부는 뒤의 전원합의체 판결 본문에서 확인한다.** 그 판결문에서 「변경하기로 한다」를 + grep해야 잡히고, 원 판결의 응답만으로는 드러나지 않는다. 확인 결과를 레지스트리 `status`에 적는다. + +## 3. 헌법재판소 결정 + +- `target=detc`이고, 응답의 레코드 태그가 **대문자 ``**다. + 판례와 같은 소문자를 가정한 파서는 0건으로 읽는다(배치 6 실측). +- 사건번호 조회는 `nb=<사건번호>`가 정확하다. `query=`는 사건명 검색이어서 무관한 결과를 준다. + +## 4. 실패 시 처리 + +- 같은 대상에 대한 재시도는 5회를 넘기지 않는다. 넘으면 그 항목을 UNKNOWN으로 두고 다음으로 간다. +- 형식 오류로 실패한 호출은 **외부 조회 상한에 계수하지 않는다**( 4). +- 공식 사이트가 모두 응답하지 않으면 의 Website unavailable로 간다. + + + + + + +이 프롬프트나 배치 오케스트레이터가 사전에 주는 경고·요약·기대값(예: "이 사건종류의 기간은 +제척기간일 것", "이 조문은 개정되었을 것")은 **판정이 아니라 조사의 진입점**이다. + +- 사전 경고와 원문이 갈리면 **원문을 따른다.** 사전 경고에 맞추어 원문 해석을 굽히지 않는다. +- 갈린 사실을 decisions.md에 남기고, 결론에 영향이 있으면 §12.7에도 한 줄로 적는다. +- 배치 4에서 사전 경고 2건이 틀렸고(유류분의 기간 성질, 개정 여부) 워커가 원문으로 바로잡았다. + 이 절차가 작동한 것은 좋으나 명문 규정이 없었다. v.4에서 명문화했고, 배치 6에서 실제로 값을 했다. +- 같은 원칙이 MEMORY.md의 교훈, 자료 파일의 '필요 이유', 인접 사건종류 문서에도 적용된다. + 전부 진입점이며, 어느 것도 primary source를 대체하지 않는다. +- **오케스트레이터가 사전에 확정해 준 값도 진입점이다.** 병렬 배치에서 브리프가 주는 + case_kind_id·slug·입력 파일 실재 여부·특수모드 지정은 전부 검증 대상이지 판정이 아니다. + 배치 6에서 오케스트레이터가 「청구취지작성규칙 부재」로 통지하고 「다시 찾지 마라」고 적었으나 + 파일은 실재했고(파일명 말미 어절 차이), 워커가 Stage 0.4의 3단 대조로 찾아 사용했다. + 사전 통지와 원문이 갈리면 원문을 따르고, 그 사실을 최종 보고에 적는다. + + + + + + +법적 명제의 신뢰성을 판단할 때 다음 source hierarchy를 적용한다. + +## Tier 1 — Primary Legal Authority +- 현행 대한민국 법령 (국가법령정보센터) +- 헌법재판소 결정 +- 대법원 판례, 대한민국 법원의 공식 판례자료 +- 기타 공식 법령·판례 database + +## Tier 2 — Authoritative Secondary Legal Sources +- 『요건사실과 주장·증명책임』 제13판 (요건사실 문장·증명책임 배분의 1차 교과서) +- 사용자가 제공한 민법 교과서(지원림), 법학 전문서적, 학술논문 +- 법원 또는 공공기관이 제공하는 실무자료 + +## Tier 3 — Project Internal Rules +- 사건종류_요건사실론문서자료/ (자료 파일과 청구취지작성규칙 문서), MEMORY.md +- 기타 프로젝트 내부 규칙문서 + +## Tier 4 — Supplemental Web Sources +- 기타 법률정보 웹사이트, 법률전문가 해설, 기타 보조자료 + +원칙: + +1. Tier 4 자료만으로 중요한 법률명제를 확정하지 않는다. +2. 판례의 존재·사건번호·선고일자·판시내용은 Tier 1에서 검증한다. +3. 적용 법률과 조문은 국가법령정보센터에서 현행성·시행일·부칙을 확인한다. +4. 충돌 시 먼저 실제 법리 충돌인지, 적용시점 차이인지, 사실관계 차이인지, 일반법과 특별법 관계인지를 확인한다. +5. 해결되지 않으면 상위 Tier를 우선한다. +6. 교과서의 설명과 현행 법령·최신 판례가 충돌하면 현행 법령·판례를 우선한다(골격 v4 원칙 8). + 학설 대립은 §12.6에 격리하고 본문 요건에 반영하지 않는다. +7. 권위의 위계는 `헌법 > 법률·명령 > 헌법재판소 결정 > 대법원 전원합의체 > 대법원 > 하급심 > 학설`이다. + 헌법재판소 결정이 구제방법 자체를 제한하는 경우(사과광고, 89헌마160)를 §1.4·§2.3에 반영한다. +8. 내부 규칙문서는 사건분류·청구취지 형태를 이해하는 자료이지 실체법적 요건을 확정하는 권위가 아니다. + +분업: +- 요건사실 문장, 요건분류, 주장·증명책임 배분, 추정 → 제13판이 1차 출처 +- 13판에 전용 목이 없는 제도, 실체법 개념 구조, 학설 → 지원림 (학설은 §12.6만) +- 조문 현행성·시행일·부칙, 판례 사건번호·선고일·판시, 이율·기간 수치 → law.go.kr 필수 +- 요건·항변·주문효과·부수급부 구간의 직접 근거 판례 → 전문 확인(판결요지만으로 holding 확정 금지) + + + + + + + +# Stage 0. Pre-flight (P0) + +## 0.1 규칙 읽기 +AGENTS.md와 MEMORY.md를 읽는다. CLAUDE.md가 있으면 읽는다. +MEMORY.md는 크므로 "<####>"와 인접 사건종류명을 grep으로 찾아 그 구간만 읽는다. +docs/quality/evidence-policy.md와 docs/workflows/legal-analysis-ko.md는 통독하지 않고 +이 작업에 걸리는 규칙만 grep으로 확인한다. + +## 0.2 골격 읽기 +요건사실론_문서_공통골격_v4.md 전문을 읽는다. +구속력 있는 유일한 출력 사양이므로 이 파일만은 통독한다. +**먼저 머리말의 「현재 리비전」과 제12부 12.1의 리비전 표를 읽고 리비전 번호를 확정한다.** +파일명이 v4로 같아도 내용은 개정되므로, 읽은 리비전을 decisions.md와 최종 보고에 적는다. +오케스트레이터가 브리프에 리비전을 통지했으면 파일과 대조한다(사전 통지는 판정이 아니다). +**머리말의 「현재 리비전」과 12.1 표의 최신 행이 어긋나면 표를 따르고 그 사실을 보고한다.** +현재 파일의 sha256이 12.1 표의 어느 행과도 같지 않으면 그것이 현재 리비전이다(표는 자기 해시를 +담을 수 없다). 표의 **과거 행 중 하나와 같으면 낡은 사본을 읽은 것이므로 중단하고 보고한다.** +이 프롬프트의 리비전은 표의 최신 행에서 확인한다. +와 대조하여 차이가 있으면 **언제나 파일을 적용하고** 그 차이를 기록한다. +오버라이드는 없다(위 12). + +## 0.3 도구 probe +`command -v pdftotext pdfinfo pdftoppm python3` 한 줄로 끝낸다. +python3의 yaml 모듈 가부는 사전 probe하지 않고 게이트 스크립트 첫 실행의 import 실패로 판정한다. +pdftotext가 없으면 1.3의 대체 경로(이미지 렌더링·확인)로 간다. + +## 0.4 ID·slug 확정 + 입력 실재 확인 + §0 stub (한 묶음) +세 가지를 한 번에 끝낸다. 순서대로 하되 중간 보고를 넣지 않는다. + +(1) tmp/rf_draft/를 만들고, 의 스크립트를 tmp/rf_draft/leaf_id.py로 저장해 + 1회 실행하여 case_kind_id·case_kind_name·slug를 얻는다. + leaf 137 assert와 서수 검산 5건이 스크립트 안에 있다. 실패하면 중단·보고. + +(2) 입력 실재 확인. 의 **네 폴더**(사건종류_요건사실론문서자료/, 같은 이름 `_done/`, + 사건종류_청구취지작성규칙문서/, 같은 이름 `_done/`) 각각의 파일 목록을 한 번씩 읽어 + 각 파일명을 유니코드 NFC로 정규화하고 공백·'・'·'·'·'•'·','·'('·')'를 제거한 뒤 대조한다. + **셸 `ls | grep`으로 파일명을 찾지 않는다.** 이 폴더는 NFC와 NFD가 섞여 있어 + (실측 2026-09-02: 청구취지작성규칙_* 전부 NFD, 요건사실문서자료_*는 NFC) + NFC 패턴으로 건 grep이 NFD 파일을 통째로 놓친다. 반드시 목록을 읽어 코드에서 정규화한다. + + 대조는 **3단으로 내려가며** 하고, 어느 단계든 1건이 잡히면 채택한다. + ① 정규화 완전일치 + ② 양방향 포함관계(정규화한 사건종류명이 파일명에 포함되거나 그 반대) + ③ 사건종류명 말미의 어절을 떼어낸 어간으로 ①②를 재시도 + (제거 대상: '청구', '등', '의 소', '청구 등', '청구의 소') + ③이 필요한 이유: 규칙 문서 파일명이 사건종류명의 말미 어절을 생략하는 경우가 실재한다. ①②만 쓰면 실재하는 파일을 「부재」로 판정한다. + + **판 번호는 대조에서 무시한다.** 파일명 말미의 `_v<숫자>`와 확장자를 떼어낸 어간으로 비교한다. + 실측 — 배치 7의 `계금 청구`·`공제금 청구`는 규칙 문서가 `청구취지작성규칙_<사건종류명>_v2.md`였다. + `_v1`로 고정해 대조하면 실재하는 76~81KB 규칙 문서를 「부재」로 오판하고 7이 잘못 발동해 + claim_rule_doc: null·§10.4 UNKNOWN·verification_status 상한 QUALIFIED가 조용히 박힌다. + + - 자료 파일: 요건사실문서자료_<사건종류명>_0|1|2.md 중 존재하는 것 전부 (주 폴더 + `_done`) + - 규칙 문서: 청구취지작성규칙_<사건종류명>_v*.md (판 번호 무시. 세 폴더 어디든. 없으면 7) + 3단에서 2건 이상이 잡히면: **같은 어간에 판 번호만 다른 경우는 가장 높은 판을 채택**하고 나머지를 + 최종 보고에 적는다(v.5-r5. `_v1`이 `_done`에, `_v2`가 주 폴더에 함께 실재하는 경우가 있다). + 그 밖의 2건 이상(어간이 다른 두 사건종류가 함께 잡힘)은 중단·보고한다. 임의로 고르지 않는다. + **「부재」 결론은 3단을 모두 거친 뒤에만 내린다.** 사전에 부재라고 통지받았더라도 + 이 3단을 직접 수행한다( — 사전 통지는 판정이 아니다). + 자료 파일이 하나도 없으면 의 하드 스톱. + 존재하지 않는 파일의 내용을 추측하거나 만들어내지 않는다. + +(3) 출력 파일 사건종류_요건사실론문서/요건사실론_<####>_v1.md에 §0 stub만 먼저 쓴다. + identity 필드만 채운다: schema_version, case_kind_id, case_kind_name, case_kind_slug, + case_family, dispute_type, source_materials(실재 파일·origin), claim_rule_doc(또는 null), + law_as_of(실행일), verification_status: UNVERIFIED, doc_version: v1, **content_hash: ""**(빈 문자열. + `PENDING` 같은 문자열을 두지 않는다 — Stage 6의 치환 정규식이 매치하지 못해 미기입 상태로 남은 사례가 있다). + front matter는 `---`로 열고 닫는다. yaml 코드펜스로 감싸지 않는다. + 목적 두 가지: R-ID 접두를 채번 전에 동결하는 것, 그리고 어느 시점에 끊겨도 + 디스크에 부분 산출이 남게 하는 것. 나머지 필드는 Stage 6에서 채운다. + 이 단계에서 §1 이하의 절을 쓰지 않는다. + +## 0.5 스크래치와 결정 로그 +tmp/rf_draft//와 그 아래 extract/를 만든다. 결정 로그는 decisions.md 한 파일이면 족하다 +(단일 출처 항목의 채택 근거, TOC_MISMATCH 판정, 잘라낸 독서 블록, + 외부 조회 사용 횟수 (a)/(b) 누적과 상한 도달 사실만 적는다). +별도 ExecPlan 문서는 만들지 않는다. 하위 에이전트를 쓰지 않으므로 docs/PLANS.md의 요구가 발동하지 않는다. +직전 런이 남긴 스크래치(extract/의 추출 텍스트, reading_plan.json, notes.md, authorities.jsonl)가 있으면 +그대로 재사용한다. 다시 만들지 않는다. +단 법령·이율·기간 조회 결과는 예외다. authorities.jsonl의 `checked_at`이 실행일과 다른 항목은 +재사용하지 않고 law.go.kr에서 다시 조회한다( 5). + + +# Stage 1. 자료 병합과 독서 (P1) + +## 1.1 파싱 +각 자료 파일의 3열 표를 행 단위로 파싱한다: (목차 항목, 페이지, 필요 이유, origin). +표 아래에 URL 표(`Url / 페이지 제목 / 설명`)가 있으면 레지스트리 씨앗으로 넘긴다. + +## 1.2 앙상블 병합 +- 합집합으로 모으되 단순 합집합·다수결로 채택을 정하지 않는다. + 같은 항목을 한 파일만 골랐다면 그 '필요 이유'가 §1~§7 중 어느 절의 어떤 명제를 위한 것인지를 + 판정하고 그 근거를 decisions.md에 남긴다. +- 키 = (정규화한 목차명, 시작면). 목차명은 요건사실과주장증명책임_13판_목차_페이지표시.txt에 + 원문 그대로 존재해야 한다. 없으면 `TOC_MISMATCH`로 표시하고 의 규칙으로 판정한다. 유사 제목으로 고치지 않는다. +- 같은 키에 종료면이 다르면 1.4의 경계 규칙으로 원본 PDF에서 재판정한다. +- 겹치거나 인접한 범위는 독서 블록으로 합치되, 행 단위 '필요 이유'는 블록에 그대로 붙여 둔다. + 이 '필요 이유'가 정독 시 추출 목표다. + 합친 블록이 표시면 40쪽을 넘으면 1.4의 경계 규칙에 따라 표제 경계에서 나눈다(1.5의 블록 상한). + 블록마다 블록ID(예: B01, B02)를 부여한다. extract/의 파일명이 이 ID를 쓴다. +- 출력: tmp/rf_draft//reading_plan.json + +## 1.3 오프셋 실측 (하드코딩 금지) +본문 중 연속한 두 PDF 쪽을 골라 `pdftotext -layout`으로 첫 줄을 뽑고, +짝수 표시면은 좌측 머리글의 쪽번호, 홀수 표시면은 우측 머리글의 쪽번호를 읽어 +offset = PDF 쪽 − 표시 쪽을 계산한다. 두 쪽의 offset이 같아야 한다. +다르면 다른 두 쪽으로 재시도하고, 그래도 안 되면 이미지를 렌더링해 확인하며, +이미지 확인이 불가하면 offset을 `UNVERIFIED`로 기록하고 §12.4 범위 전체에 표시한다. + +## 1.4 경계 규칙 +다음 동급 이상 표제가 그 면의 상단(머리글 아래 첫 비어 있지 않은 줄)에서 시작하면 +앞 항목은 직전 면에서 끝난다. 같은 면 중간에서 시작하면 그 면을 양쪽 범위에 포함한다. +**종료면은 표제 기준이 정본이다.** 각주가 다음 면으로 이어지는 **계속 각주**는 종료면에 넣지 않고 +§12.4에 `(각주 계속 ~N면)`으로 병기한다(골격 v4-r6 §12.4). 자료조사 산출물은 계속 각주를 종료면에 +반영하는 관행이므로 자료의 종료면과 한 면 어긋나면 이 규칙으로 교정하고 두 값을 함께 적는다. +블록마다 추출 첫 쪽의 인쇄 쪽번호가 시작면과 같은지 assert한다. + +## 1.5 정독 (순차, 총량·블록 상한 있음) + +추출물을 표준출력으로 받아 통째로 컨텍스트에 올리지 않는다. 반드시 파일로 저장한 뒤 구간만 읽는다. +하위 에이전트가 없으므로 컨텍스트 격리를 이 규칙이 대신한다. 이 규칙을 어기면 200쪽 상한이 무의미해진다 +(요건사실.pdf 실측: `pdftotext -layout` 20쪽이 56,701자·1,118행. 표시면 200쪽이면 약 57만 자·1.1만 행으로, + 프롬프트와 골격 v4와 집필 중 문서를 함께 든 단일 세션 컨텍스트에 들어가지 않는다). + +블록마다 다음 순서로 한다. +1) 추출: `pdftotext -f (시작면+offset) -l (종료면+offset) -layout 요건사실.pdf tmp/rf_draft//extract/<블록ID>.txt` +2) 조준: 그 블록에 붙은 '필요 이유'의 키워드로 추출 파일을 grep해 해당 구간의 행 번호를 잡는다. +3) 정독: 잡은 행 번호 앞뒤로 sed 범위를 넓혀 **한 번에 300줄 이내씩만** 컨텍스트로 읽는다 + ( 2). 블록 전체를 한 번에 cat하지 않는다. +4) 노트: 아래 형식으로 notes.md에 append한 뒤, 그 블록의 추출 파일은 더 이상 컨텍스트로 올리지 않는다. + 이후의 필요는 notes.md로 해결하고, 원문 확인이 꼭 필요하면 저장된 추출 파일을 grep으로 다시 조준한다. + +- 블록 상한: 한 블록은 표시면 기준 40쪽을 넘지 않는다. 넘으면 1.4의 경계 규칙에 따라 표제 경계에서 나눈다. +- 총량 상한: 표시면 기준 합계 200쪽. 초과하면 '필요 이유'가 §4·§5·§6의 요건·항변에 직접 닿는 블록부터 + 채우고 나머지를 잘라낸다. 잘라낸 블록은 decisions.md에 적는다. +- 발췌 노트는 tmp/rf_draft//notes.md에 블록 단위로 append한다. 형식: + 명제 단위로, 유형 태그(요건 | 항변 | 재항변 | 증명책임 | 추정 | 주문 | 기간 | 이율 | 소송요건 | 경계·구별)와 + 책 표시면 pinpoint를 붙인다. +- 조문·사건번호는 T0 lead로만 기록한다(OCR 숫자는 틀릴 수 있다). +- 원문 문장 복사 금지, 명제 재진술만. +- 블록에 붙은 '필요 이유'가 요구한 것을 찾지 못했으면 그 사실을 노트에 명시한다. + + +# Stage 2. 권위 레지스트리 (P2) + +## 2.1 씨앗 +자료 파일의 '필요 이유'와 URL 표, 발췌 노트의 lead, 규칙 문서의 인용, 지원림의 실체법 lead. + +## 2.2 검증과 등급 +tmp/rf_draft//authorities.jsonl. 필드는 골격 v4 제5부 5.2 `RfAuthority` +(authority_id, authority_kind, citation, decided_at, holding, source_url, pinpoint, checked_at, + status, superseded_by, fulltext_verified)에 `tier`와 `used_by`를 더한다. +- T0: lead. 본문 등장 금지. +- T1: law.go.kr Open API(target=prec) 또는 법령 조회로 사건번호·선고일·조문 현행성이 확인됨. +- T2: 전문을 읽어 holding을 확정함. 요건·항변·주문효과·부수급부 구간의 직접 근거는 T2여야 한다. +ID 형식: `LAW:민법:406-2`, `PREC:2021다309231`(선고일은 별도 필드, 전원합의체는 en_banc 플래그), +`CC:89헌마160`, `BOOK:RF13:773-794`, `WEB:-01`. + +## 2.3 규칙 +- 확인되지 않는 사건번호는 본문에서 삭제하고 명제를 `UNVERIFIED — 판례 미확인`으로 남긴다. +- 판례의 변경·폐기 여부(후속 전원합의체 등)를 status에 기록한다. +- 병합 사건번호는 대표번호만 등재되는 경우가 많으므로 전체 번호를 저장하고 대표번호로도 조회한다. +- 이율(소송촉진 등에 관한 특례법 제3조의 대통령령 이율, 근로기준법 제37조 등 특별이율)과 + 기간은 실행일 기준 law.go.kr에서 시행일·부칙과 함께 조회한다. 13판 본문의 수치는 쓰지 않는다. +- 13판에 전용 목이 없는 제도는 지원림으로 실체법 구조를 잡되, 요건사실 문장은 판례·법령으로 세운다. + 유사 표제로 메우지 않는다. +- 검증 대상은 본문에 실제로 인용할 후보로 한정한다. 통상 규모는 법령 10~20건, 판례 15~30건이다. + 그 이상으로 넓히지 않는다. 쓰지 않을 판례를 미리 검증하지 않는다. +- 조사·검증의 외부 조회 상한은 4를 따른다(일반 조회 60대상 = 법령 30 + 판례 30, T2 전문 확인 45회, 각각 별도). + 상한에 닿으면 미확정분을 UNKNOWN 또는 UNVERIFIED로 두고 집필로 넘어간다. + + +# Stage 3. §1 집필 (P3-1) + +§1.0 재판모델(이행 | 확인 | 형성 | 형식적형성 | 집행관계 | 재판공격) 확정. +case_family와 갈리면 한 줄로 기록(오버라이드 6). +§1.1 청구경로 표(P1, P2 …; 청구권 명칭 | 근거 조문·판례 | 전형 사실관계 | 소송물 | 주된 주문 형태). +§1.2 path_relation과 joinder_mode를 두 축으로 분리. + 하나의 사실관계가 두 청구권을 동시에 충족하면 청구권경합·선택적 병합, + 양립할 수 없을 때만 예비적 병합. +§1.3 인접 사건종류는 이름이 아니라 PROV ID로. 구별 기준은 청구권의 발생원인. +§1.4 negative scope. 헌법재판소 결정에 의한 구제한계가 있으면 여기에. +§1을 확정하기 전에는 다른 절을 쓰지 않는다. + + +# Stage 4. 절 집필 (P3-2, 순차) + +절마다 집필 직전에 손에 쥐는 입력: +<§0 stub, 그 절의 골격 v4 원문, 재판모델과 제3부의 해당 행, 그 절에 관련된 발췌 노트, + 검증된(T1 이상) 레지스트리 항목, 앞선 절의 R-ID 목록(문장+요건분류), + 제4부 서술규범, 적용되는 , > + +집필 순서(의존 순서다. 병렬화하지 않는다): +1) §1 확정 (Stage 3) +2) §3 → §4.1~4.3(`-4-nn` 채번) → §4.4 구간표(검증된 이율 필요) → §2.1 +3) §5 (`-5-nn` 채번. §4 ID 목록을 옆에 두고 S6과 승격 금지를 강제) +4) §6(6.0 표를 먼저, 이어 6.1~6.6 블록에 `대상요건`. (ii)의 블록은 6.6에만) → §8(8.1은 R-ID로) → §9(재판모델 기준) + → §2.2~2.3(§4.4·§5.P#.4의 문언 줄을 그대로 복사) +5) §7은 집필하지 않고 게이트 스크립트로 투영(§4.2·§5.P#.2 블록의 요건분류·주장책임·증명책임·추정 + + §6의 대상요건) → §10(§3, §4·§5의 시간순, §4.4, §6.0, 규칙 문서 필요) + → §11(11.1 체크리스트의 답, 11.2 금지규칙 15개 재기술, 11.3 오류 카탈로그는 MEMORY 교훈· + 자료 파일의 UNVERIFIED 메모·이번 조사의 함정에서) +6) §12.1~12.6은 레지스트리에서 투영, §12.7은 placeholder + +규칙: +- **집필 순서와 파일 기록 순서는 다르다. 혼동하지 않는다.** + 위 순서는 내용의 **의존 순서**이고, 출력 파일에는 **절 번호 오름차순으로만** append한다. + 둘을 동시에 만족시키는 절차는 이것 하나다: + (1) 절을 확정하는 즉시 `tmp/rf_draft//sections/§N.md`에 쓴다(§N은 절 번호). + (2) 앞 번호의 절이 전부 확정되면 그 시점에 번호 순으로 본 파일에 이어 붙인다. + **이어 붙일 때 절 사이를 빈 줄 하나로 띄운다**(`\n\n`으로 결합하고, 각 절 파일의 끝 + 개행을 정규화한다). 단순 연결하면 `## §N.` 헤딩 바로 앞에 빈 줄이 없어 **Weaviate 적재의 + 청크 경계가 흐려진다.** 게이트는 이것을 잡지 않으므로(S2a는 헤딩의 존재와 순서만 본다) + 집필 규율로 지킨다. 배치 10에서 워커 두 명이 각자 심사에서 발견해 고쳤다. + 예: §4를 확정하면 sections/§4.md에 두고, §2.1·§2.2·§3이 확정된 뒤에 §2 → §3 → §4 순으로 append한다. + 60KB 일괄 생성 금지의 취지(어느 시점에 끊겨도 디스크에 부분 산출이 남는 것)는 + sections/ 파일로 유지되므로 손상되지 않는다. + (v.4까지 「절을 쓴 즉시 출력 파일에 append」와 위 의존 순서가 양립 불가였다. v.5에서 정정한다.) +- 요건 블록 헤딩은 §4·§5 모두 `####`로 쓴다(`#####`를 쓰지 않는다). 이유는 5. +- R-ID 채번은 그 절의 몫만 한다(§4는 `-4-nn`, §5는 `-5-nn`). 다른 절의 ID를 만들지 않는다. +- 집필 중 새 권위가 필요해지면 그 자리에서 Stage 2의 규칙으로 검증하고 레지스트리에 추가한다. +- 확정하지 못한 항목은 조사를 늘리지 말고 UNKNOWN 또는 UNVERIFIED로 두고 다음 절로 간다. + +순서 근거: §1이 §2·§3·§9의 내용과 §4/§5의 분할을 결정한다. §5를 §4 뒤에 두어야 배타성을 구조적으로 강제할 수 있다. +§6은 실재 R-ID가 있어야 `대상요건`을 쓸 수 있다. §7 투영은 S5·S7 드리프트 계열을 제거한다. +§2.2를 §4.4 뒤에 두면 S11 드리프트가 사라진다. §0의 나머지 필드는 본문의 출력값이므로 마지막이다. + + +# Stage 5. 조립·게이트·심사·수정 루프 (P4·P5) + +에 따른다. 최대 2라운드. + +**게이트를 거는 시점**(골격 v4-r1 제6부. v.5-r3에서 반영) — 게이트는 **§0~§12가 모두 존재하는 +조립 완료 문서에만** 건다. 집필 도중의 부분 산출물, 특히 **Stage 0.4 (3)의 §0 stub만 쓰인 단계의 +파일에는 걸지 않는다.** `action_type`·`claim_paths`·`path_relation`·`filing_deadline`처럼 본문의 +출력값인 필드는 stub 단계에 아직 없으므로, 그 시점에 스크립트를 돌리면 **S1이 필수 키 부재로, +S8이 경로 ID 집합 불일치로 반드시 실패한다.** 이 FAIL은 문서의 결함이 아니라 **검사 시점의 오류**이며 +수정 대상이 아니다. 배치 9에서 워커 2명이 이 FAIL을 라운드 1 실패로 오독했다. +Stage 6의 §0 최종화가 그 네 필드를 채우므로, **게이트 전량 실행은 조립과 §0 최종화가 끝난 뒤** +검증 라운드에서만 한다(조립 중의 부분 검사는 수정한 절이 걸린 항목만 본다). + + +# Stage 6. §0 최종화 (스크립트) + +claim_paths ← §1.1, path_relation·joinder_mode ← §1.2, filing_deadline ← §3.3, +claim_rule_pattern_ids ← 규칙 문서의 실재 절 번호(T코드 복제 금지), adjacent_case_kinds ← §1.3, +verification_status ← 의 계산, content_hash ← front matter 닫는 `---` 이후 본문의 sha256. + +**`content_hash`는 반드시 마지막에 계산한다.** 순서는 ① §7 투영(`--project`) → ② 절 사이 빈 줄 +정규화(Stage 4의 (2)) → ③ 나머지 §0 필드 확정 → ④ `content_hash` 계산·기입이다. +§7 투영은 front matter를 건드리지 않지만 **본문은 바꾸므로**, 투영 전에 계산한 해시는 즉시 낡는다. +빈 줄 정규화도 같다. 해시를 기입한 뒤에는 본문을 한 바이트도 고치지 않는다. +고쳤으면 다시 계산한다. +**기입 후 대조한다**(v.5-r5): front matter의 `content_hash`를 다시 읽어 본문을 재계산한 값과 같은지 확인한다. +stub의 `""`가 그대로 남아 있으면 치환이 실패한 것이다. 게이트 S1이 형식(`sha256:<64hex>`)을 검사하므로 +빈 값은 FAIL로 드러나지만, 값이 낡은 것(본문을 고친 뒤 재계산하지 않음)은 게이트가 잡지 않는다 — 이 대조가 그것을 잡는다. + + +# Stage 7. 최종 파일 재독과 보고 (P6) + +파일 전체를 다시 읽고 으로 보고한다. + + +# Stage 8. MEMORY.md 갱신 + +Stage 5~7이 성공적으로 끝난 후에만. 기존 관례(작업 요약 + 교훈, 'How to Write' 섹션 아래)를 따른다. +덮어쓰지 않는다. 이번 사건에서 향후 재사용할 것만 압축 기록한다. + + + + + + +각 절에서 반드시 지켜야 할 것. 골격 v4 제2부의 해당 절 원문이 상세 규범이다. + +§0 키 전부 ASCII. 날짜 YYYY-MM-DD. claim_rule_pattern_ids는 규칙 문서에 실재하는 절 번호만. + source_materials는 실재 파일만(S14). aliases는 case_kinds.md의 '등'·'・' 묶음에서 흡수. + case_family는 case_kinds.md의 소송 대분류 그대로. dispute_type은 분쟁 유형 셀 그대로, **셀이 비어 있으면 + 소송 대분류 값**(형성의 소 9건 → `"형성의 소"`. 골격 v4-r6). 빈 셀 승격 3종과 혼동하지 않는다 — + 그것은 사건 종류 셀이 비어 있는 경우다. +§1 1.0에서 여섯 모델 중 하나. 재판공격이면 §4가 2단임을 여기서 선언. + 1.1 표의 경로 ID는 P1부터 연번. has_branch=true인 경로만 §5에 블록이 생긴다(S8). +§2 2.1 소송물 식별기준(구실체법설)·판례 근거·기판력 범위·소변경 요부. + 2.2 표 `| 충족된 요건 조합 | 주문 유형 | 부대청구 주문 문언 | 규칙문서 참조 절 |`. 요건 조합은 R-ID로. + 2.3 상환이행: 동시이행항변권은 연기적 항변권이므로 피고 원용사항. 원고가 반대급부 이행제공을 청구원인에서 + 증명할 필요 없음(선이행의무자 예외). 의사진술: 민사집행법 제263조 의제. 구제한계가 있으면 명시. +§3 각 항 5필드. 3.3은 모든 재판모델에서 필수. **판정은 3분기다**(골격 v4-r4 §3.3): + ① 소 제기로만 행사할 수 있는 기간(출소기간)은 도과 시 소각하, + ② 재판외 행사로 족한 제척기간과 소멸시효 완성은 본안 기각, + ③ **재판외 행사도 가능하지만 별도 조문이 같은 기간을 「소는 … 기간 이내에 제기하여야 한다」로 + 다시 거는 경우**(언론중재법 제26조 제3항 전단형)는 **소 국면에서 출소기간이고 도과 시 소각하**, + 재판외 청구 국면에서는 제척기간으로 작동한다. + **행사방법만 보고 ①②로 이분하지 마라.** 재판외 청구가 가능하다는 사실이 ③을 배제하지 않는다. + 조문에 소 제기 기간을 다시 거는 규정이 있는지 반드시 별도로 확인한다. 관할위반은 이송(민사소송법 제34조 제1항), + 소장 흠결은 보정명령 후 소장각하명령(제254조). 당사자적격(소송담당)과 본안의 권리귀속을 분리. + **§3은 R-ID를 채번하지 않는다**(골격 v4-r6). 요건사실로 다루어야 할 소송요건(채권자대위의 네 요건, + 확인의 이익의 기초사실, 미리 청구할 필요 등)은 `요건분류: 소송요건`인 R-ID로 **§5의 해당 경로**에 + (전 경로 공통이면 §4에) 두고, §3의 항은 그 R-ID를 참조만 한다. 이중 서술은 중복이 아니라 연결이다. + 기판력 저촉은 두 효과를 구별한다: 전소와 **소송물이 동일**하면 소각하이고, + 전소 변론종결 전에 존재한 사유의 **주장이 차단**되는 경우에는 소는 적법하고 본안에서 배척된다. + 후자를 소각하로 적지 않는다. +§4 모든 경로에 공통되는 요건만. 공통 요건이 실재하지 않으면 `해당 없음 — 경로 간 공통 요건 없음. §5(경로별 분기 요건사실)가 기본 단위`. + **절 제목 병기를 빼지 마라.** S10b의 면제 형태는 계수(`§N에 <숫자>`)와 소유격(`§N의`) 둘뿐이므로 + `§5가`로 쓰면 **그 참조가 그 항(H3) 구간에서 처음 등장하는 통상의 경우 S10b가 실패한다** + (실측 23개 문서 중 21개. 골격 v4-r2에서 예시 문구를 정정했고 v4-r4에서 수치를 실측대로 고쳤다). + 게이트는 여는 괄호의 존재만 보고 괄호 안이 실제 절 제목인지는 검증하지 않으므로, + 괄호만 채우는 우회를 하지 말고 정확한 절 제목을 쓴다. + 4.1 목록은 R-ID + 문장(명사형 종결 `…한 사실`). 4.2는 10필드 블록. 4.3 서술 순서와 근거. + 4.4 구간표 + 기계판독 문언 줄. 이율 수치는 검증·시행일 동반 시만. +§5 has_branch 경로마다 5.P#.1~4. 경로 전용 요건을 §4로 올리지 않는다. 경로 간 요건 문장을 복사하지 않는다. + 적극·소극 확인이 **모든 경로에서 함께 성립하는 표지**(잔여범주 등)에서는 존부 요건을 §4에 두지 않고 + 각 경로에 두며, 소극형의 부담 배분은 그 블록의 `증명 실무`와 §6.0 표 아래 산문에 적는다 + (골격 v4-r6 제3부 「방향이 모든 경로에 직교하는 표지」). 치환 부제는 어디에도 붙이지 않는다. +§6 6.0 표를 먼저 세운다. 불성립·금원 미교부·의사표시 부존재는 부인이며 증명책임은 이동하지 않는다. + 6.1~6.6은 8필드 블록. **6.6 소송요건의 소멸·흠결**(골격 v4-r6)에 §6.0 (ii)의 블록을 둔다 — + 원시적 흠결 먼저, 후발적 소멸 뒤. 6.1~6.5에 두지 않는다. 블록이 없으면 3분 값 한 줄. + 6.4는 권리종류별 기간·기산점 표(민법 제162조·제163조·제164조·제165조·제766조, 상법 제64조 + 중 해당하는 것)와 **중단**(민법 제168조 이하)·**정지**(제179조~제182조)·시효이익 포기(제184조 제1항)· + 원금과 지연손해금의 분리 기산. + 우리 민법의 문언은 중단·정지다. 「완성유예」·「갱신」은 우리 조문에 없는 표현이므로 쓰지 않는다 + (v.3까지 이 줄이 반대로 지시하고 있었다. 골격 v4 §6.4에서 정정됐다). +§7 스크립트 투영. 손으로 쓰지 않는다. +§8 8.1은 R-ID별 서증·인증·기타 증거·증명력의 한계. 8.4: 민사소송법 제202조의2는 손해액 산정 한정, + 증명방해는 자유심증 자료일 뿐 자동 전환 아님. 특별법이 특정 요소의 부담만 전환하면 그 요소만. +§9 9.1 다섯 축(효력의 객체 | 인적 범위 | 시점 | 기판력 범위 | 집행력). "형성판결 = 대세효·소급효" 금지. + 9.3 집행방법은 재판모델·주문 유형에 맞게. 9.4에 이중회복 통제. + 기판력의 작용은 소각하(소송물 동일)와 주장 차단(전소 변론종결 전 사유)으로 나누어 적는다(§3.3과 같은 구별). +§10 10.1은 시간순(당사자·목적물 특정 → §4·§5 요건사실 시간순 → §4.4 기산·이율 → 다투어질 소송요건만). + 10.2는 §6.0의 부인·항변 구별 그대로. 10.3 흠결 효과 표. 10.4는 claim_rule_doc 참조만, 문형 복제 금지. +§11 11.1의 10개 질문에 이 문서 기준으로 답한다. +11.2는 **골격 v4 §11.2의 15개 금지규칙**을 이 사건종류 기준으로 재기술한다 +(v.4까지 「v2의 13개」로 적혀 있었다. v3에서 14 `filing_deadline.kind`, 15 직권 참작사유가 신설됐다). + 11.3은 `…하면 …가 무너진다` 형식의 사건별 함정. +§12 12.1 조문 + URL + 시행일·경과규정. 12.2 사건번호 | 선고일 | 판시사항 | 적용 요건 ID | 상태 | fulltext_verified. + 12.4 13판 항목 경로 + 표시 시작면~종료면(경계 규칙 적용. 종료면은 표제 기준, 계속 각주는 `(각주 계속 ~N면)` 병기). 12.5 `URL | 페이지 제목 | 무엇을 확인하는 페이지인지`. + 12.6 판례와 갈리는 학설만. 12.7 UNKNOWN·UNVERIFIED 전부 모아 사유와 함께. + +재판모델별 변형은 골격 v4 제3부의 표를 그대로 따른다. 절 번호는 고정하고 내용만 치환한다. + + + + + + +## 1. 잔여범주 — 기타 확인청구, 기타 결의부존재확인, 기타 지위확인, 기타 권리확인 + +판정 가이드 형식으로 쓴다(골격 v4 제8부 8.2 규칙 3, §11.2 금지규칙 13). +- action_type: 확인. path_relation: 독립, joinder_mode: 없음(가이드가 달리 정하지 않는 한). +- §1.1은 "어떤 확인청구인지 판별하는 기준 → 대응하는 사건종류 leaf ID"의 라우팅 표다. +- §4는 확인의 소 공통 요건만(확인의 이익의 기초사실 등 소송요건). R-ID를 부여한다. + **확인대상 법률관계의 존부는 적극·소극 확인이 섞이면 §4에 두지 않는다**(골격 v4-r6 8.2 규칙 3 단서) — + 증명책임 방향이 경로마다 반대여서 한 블록에 담을 수 없다. 존부 요건은 §5의 각 경로에 둔다. +- §5는 대표 하위유형을 경로로 전개한다(has_branch: true). +- 게이트는 그대로 적용된다. + +## 2. 빈 셀 승격 3종 + +case_kind_name = 분쟁 유형 셀 문자열. dispute_type = 같은 값. aliases: []. +- 종류물(대체물)의 지급 또는 인도를 구하는 소: 이행. §9.3에 민사집행법 제257조와 대상청구·특정 문제. + 부수급부는 대체로 `해당 없음 — <사유>`. +- 증서의 진정여부를 확인하는 소: 확인. §3.2에 민사소송법 제250조가 사실의 확인을 예외적으로 허용하는 + 법정 유형임을 명시. §1.4에 "증서"의 범위. +- 기타 확인청구: 위 1의 잔여범주 규칙. + +## 3. 부존재확인형 — §4 치환 + +적용 대상: 피고가 권리 주장자인 경우만 +(채권부존재확인 청구, 채무부존재확인 청구, `유치권확인 또는 부존재확인`의 부존재 경로). +- 정규 헤딩 `## §4. 공통 청구원인사실`을 유지하고 바로 다음 줄에 + `**피고 주장 권리의 발생 요건사실 (증명책임: 피고)**` 굵은 부제를 둔다(골격 v4 제3부 「치환의 형식」). +- 4.0 원고가 부담하는 사실(확인의 이익의 기초사실, 원고가 주장하는 소멸·장애사실)을 고유 R-ID로 둔다. +- §7은 요건별로 혼합된 부담을 그대로 보인다. "증명책임이 역전된다"고 쓰지 않는다. + 법률요건분류설의 정상 적용 결과다. +- 가드: 결의부존재확인 계열(상법 제380조)은 원고가 중대한 하자를 증명한다. 치환을 적용하지 않고 판례로 확인한다. +- **혼합 표지의 예외**(골격 v4 제3부): 적극 확인과 부존재 확인이 한 사건종류에 섞이면 + §4에 굵은 부제를 **붙이지 않는다.** 붙이면 §4.1의 원고 부담 요건과 어긋난다. + §4에는 두 경로 공통의 확인의 이익 관련 요건만 두거나 `해당 없음 — 경로 간 공통 요건 없음. §5(경로별 분기 요건사실)가 기본 단위`, + 치환 부제는 부존재 경로(예: 5.P2) 내부에서 적용하고, §4.0은 두지 않는다 + (부존재 경로의 원고 부담 사실은 그 경로의 5.P#.2에 `-5-nn`으로 채번한다). +- **방향이 모든 경로에 직교하는 표지**(골격 v4-r6): 적극·소극 확인이 모든 경로에서 함께 성립하면 + 치환 부제를 붙일 「부존재 경로」가 없다. 부제를 어디에도 붙이지 않고 §4.0도 두지 않으며, + 존부 요건은 §5의 각 경로에, 소극형의 부담 배분은 그 R-ID 블록의 `증명 실무`와 §6.0 표 아래 산문에 둔다. + +## 4. 재판공격 모델 — §4 2단 (재심 청구, 준재심 청구, 제권판결에 대한 불복의 소) + +4.1에 굵은 하위 블록 `제1단 — 재판공격 요건`(공격대상 재판의 특정, 법정사유, 불변기간, 보충성)과 +`제2단 — 본안 요건`. R-ID는 단일 순번을 이어 쓰되 요건 문장 헤딩 끝에 `[제1단]` 또는 `[제2단]`을 붙인다 +(10필드 파서 유지). §3.3은 불변기간 도과 → 소각하. filing_deadline.kind: 출소기간. +재심은 민사소송법 제451조·제456조, 제권판결 불복은 제490조·제491조. + +## 5. 집행관계 모델 + +청구이의(민사집행법 제44조)와 제3자이의(같은 법 제48조)는 **근거 조문도 이의원인도 다르다.** +v.4까지 두 사건종류에 같은 지시를 주었으나 실체법상 틀렸다. 아래로 나누어 적용한다. +아래 조문번호는 진입점이며 원문 확인 대상이다(). + +### 5-A. 두 사건 공통 + +§3에 집행권원의 존재와 집행 미종료가 소의 이익임을 둔다. +§9.1 기판력은 집행력 배제 범위에 그친다(청구권 자체의 존부를 확정하지 않는다). +§2.2 주문은 「강제집행을 불허한다」 형태이며 집행권원과 집행 대상을 특정해 적는다. + +### 5-B. 청구이의 + +- **이의원인은 원고(채무자)의 청구원인이다.** 변제·상계·면제·소멸시효 완성 등 집행채권을 + 소멸·저지시키는 사실은 §4 또는 §5의 요건이지 §6의 항변이 아니다. +- **민사집행법 제44조 제2항(변론종결 후에 생긴 사유일 것)을 §4로 올리지 않는다.** + 이 제한은 **기판력 있는 집행권원에만** 걸린다. 지급명령·집행증서·이행권고결정에서는 + 배제되므로(같은 법 제58조 제3항·제59조 제3항, 소액사건심판법 제5조의8 제3항) + §4로 올리면 골격의 「경로 전용 요건의 §4 승격 금지」와 정면 충돌한다. + §1에서 집행권원의 종류를 경로로 갈라 각 경로의 §5 요건으로 둔다. +- **§6.4의 방향에 주의한다.** 소멸시효 완성은 **원고의 이의사유**이고, §6.4에 놓이는 것은 + 피고의 시효중단(민법 제168조·제178조)·시효정지(제179조~제182조)·시효이익 포기 항변이다. + **민법 제165조를 집행권원 종류와 무관하게 일반화하지 않는다.** + 제165조 제1항은 판결로 확정된 채권을, 제2항은 파산절차로 확정된 채권 및 재판상 화해·조정 + 기타 **「판결과 동일한 효력이 있는 것」**으로 확정된 채권을 10년으로 한다 + (조문 확인 2026-09-02, law.go.kr, 민법 MST 284415). + - 확정판결·재판상 화해·조정·확정된 지급명령(민사소송법 제474조가 확정판결과 같은 효력을 준다) + → 제165조 적용, 10년. + - **집행증서(공정증서)는 기판력이 없어 「판결과 동일한 효력」이 아니다 → 제165조가 적용되지 않고 + 원래의 시효기간(민법 제162조 이하, 상법 제64조 등)이 그대로 진행한다.** + - 제165조 **제3항**: 판결확정 당시 변제기가 도래하지 아니한 채권에는 제1·2항을 적용하지 않는다. + 각 경로의 §5에 그 경로에 맞는 시효기간을 적는다. 위 구분을 판례로 확인하라(). + 증명책임 방향을 뒤집으면 §7 총괄표의 값이 통째로 어긋난다. + +### 5-C. 제3자이의 + +- **이의원인은 목적물에 대한 제3자의 권리다**(소유권, 양도를 막을 수 있는 권리 등. + 민사집행법 제48조 제1항). 집행채권의 존부·소멸은 이의원인이 되지 **않는다.** +- **민법 제165조 10년을 §6.4에 두지 않는다.** 집행채권의 시효는 채무자의 청구이의 사유이지 + 제3자이의와 무관하다. v.4의 지시는 오류였다. +- **민사집행법 제44조 제2항을 적용하지 않는다.** 제44조는 청구이의의 소 조항이다. +- §4에는 세 경로 공통의 요건(집행의 존재, 목적물의 동일성, 원고가 제3자일 것)을 두고, + 권리의 종류별 발생 요건은 §5로 내린다. +- §6에는 피고(집행채권자)의 대항 주장을 둔다(대항요건 흠결, 통정허위표시·사해행위 주장, + 집행을 용인하여야 할 사유 등). + +## 6. 부수급부 구간표 + +행마다 기산사건·종기사건·이율·근거법령·시행일. 이율 수치는 law.go.kr 실행일 검증과 시행일·부칙 요약이 +같은 행에 있을 때만 쓴다. 아니면 법적 명칭으로 쓴다 +(예: "소송촉진 등에 관한 특례법 제3조 제1항의 법정이율(대통령령), law_as_of 기준 확인 필요"). +13판의 수치를 복사하지 않는다. 계약해제 원상회복처럼 2구간(민법 제548조 제2항 이자 → 소송촉진법)인 경우 행을 나눈다. + +## 7. 청구취지작성규칙 부재 + +claim_rule_doc: null, claim_rule_pattern_ids: [], §2.2 마지막 열 `규칙문서 부재`, +§10.4 `UNKNOWN — 청구취지작성규칙_<####>_v*.md 부재`. verification_status 상한 QUALIFIED. +§2.2의 주문 유형은 13판과 판례만으로 쓴다. 문형을 창작하지 않는다. + +**이 모드는 Stage 0.4 (2)의 3단 대조를 판 번호 무시로 모두 거친 뒤에만 발동한다.** +판 번호를 `_v1`로 고정해 놓친 파일을 부재로 처리하면, 실재하는 규칙 문서를 버린 채 +QUALIFIED 상한과 §10.4 UNKNOWN이 근거 없이 박힌다(배치 7의 두 사건종류가 `_v2.md`였다). + + + + + + +1. 본문에 등장하는 모든 조문·사건번호·헌재 결정은 레지스트리에 T1 이상으로 존재해야 한다. +2. R-ID·항변·주문효과·부수급부 구간의 직접 근거 판례는 T2(전문 확인). 판결요지만으로 holding을 확정하지 않는다. +3. 사건번호 표기: `대법원 YYYY. M. D. 선고 ○○다○○○○ 판결`(전원합의체는 `전원합의체 판결`). + §12.2에는 law.go.kr 또는 scourt.go.kr URL을 함께 둔다. +4. 조문 표기: 법명 + 조문번호 완전 표기(`민법 제406조 제2항`). §12.1에 URL·시행일·경과규정. +5. 법령 개정이 결론에 영향을 주면 현행법과 필요한 범위의 구법을 구별하고, 부칙 적용례를 §12.1에 적는다. +6. 하급심 판례는 대법원 판례가 없는 쟁점에 한해 보충적으로, 그 성격을 밝혀 쓴다. +7. 세계법제정보센터는 비교법이 실제 개선에 도움이 되는 경우에만 쓴다. +8. 검색결과 snippet, 개인 블로그, 광고성 법률사무소 콘텐츠, 출처 불명 AI 요약은 단독 근거로 쓰지 않는다. + + + + + + +1. 확인하지 못한 법령 조문을 생성하지 않는다. +2. 확인하지 못한 판례번호·선고일자를 생성하지 않는다. +3. 판례의 판시내용을 기억에 의존하여 정확한 판시인 것처럼 작성하지 않는다. +4. 존재하지 않는 책의 목차명을 생성하지 않는다. 13판 표제는 목차 txt 원문 그대로만 §12.4에 쓴다. +5. 확인하지 않은 페이지 번호를 추정하지 않는다. +6. 검색결과 snippet만으로 중요한 법률명제를 확정하지 않는다. +7. 서로 다른 사건종류의 법리를 명칭 또는 키워드가 비슷하다는 이유만으로 적용하지 않는다. +8. 사건종류 "<####>"에 관한 직접적인 근거와 일반적인 민법원리를 구별한다. +9. 확인된 사실, 추론, 가정을 구분한다. 추론만으로 요건을 세워야 하는 상황에서는 먼저 추가 검증을 시도한다. +10. 직접 확인할 수 없는 사실을 높은 확신의 표현으로 확정하지 않는다. +11. 특정 법리가 학설인지 판례인지 법문인지 구별한다. 판례가 예외적 사실관계에 관한 것인지 일반 법리인지 구별한다. +12. 13판·지원림의 OCR 텍스트를 verbatim 인용하지 않는다. 인용은 law.go.kr 원문에서만. + OCR에서 읽은 사건번호·조문번호·날짜는 T0 lead이며 확인 전에는 본문에 쓰지 않는다. +13. 확인되지 않은 사건번호는 삭제하고 명제를 `UNVERIFIED — 판례 미확인`으로 남긴다. 그럴듯한 번호로 대체하지 않는다. +14. 이율·기간·비율 수치를 기억이나 교과서에서 가져오지 않는다. +15. 기존 최종 문서(구세대)의 문장을 근거 확인 없이 복사하지 않는다. +16. **13판 각주가 인용한 판례는 T0 lead다.** 각주의 요약이 전문의 판시사항과 어긋나는 경우가 실재하므로, + `lawService.do?target=prec&type=XML&ID=`로 전문의 판시를 확인하기 전에는 본문에 쓰지 않는다. + 각주에서 읽은 사건번호·선고일도 같다(위 12와 같은 취지). +17. 소멸시효에 관한 우리 민법의 문언은 **중단**(제168조·제178조)과 **정지**(제179조~제182조)다. + 「완성유예」·「갱신」은 우리 조문에 없는 표현이므로 쓰지 않는다(§6.4, 골격 v4 §6.4). + + + + + + +골격 v4 제4부 서술규범을 그대로 적용한다. 요지: + +1. 요건사실 문장은 명사형 종결(`…한 사실`). 평가어(사해성, 선의, 과실, 정당한 사유) 단독 사용 금지, 평가근거사실로 전개. +2. 요건 단위는 1요건 1주요사실이 기본. 평가적 요건·택일 요건·중복 지지 사실은 §4.2 `다중 대응`으로 표시. +3. 주요사실만 R-ID. 간접사실·보조사실은 `증명 실무` 항으로. +4. 부인과 항변은 §6.0에서 먼저 가른다. +5. 상호참조는 절 번호 + 절 제목 병기(`§6.2(권리멸각 항변) 참조`). 절 번호 단독 참조 금지. + 괄호는 **§ 뒤에** 연다. `(§6.2 권리멸각 항변)`·`(§6.2)`는 제목이 있어도 S10b FAIL이다( 11 S10b). +6. 요건 문장은 §4 또는 §5 중 한 곳에만. §7·§8은 ID로 참조. +7. 미기재는 3분 값 중 하나, 사유 필수. +8. 절은 자기완결적으로 쓴다. 청크로 잘렸을 때 앞뒤 없이 읽혀야 한다(H3/H4 단위 상한 1,200자 기준). +9. 출처 잔재 금지: 본문 산문에 프롬프트·평가서·자료 파일명·PDF 파일명·작업 경위·버전 언급을 두지 않는다. + 출처는 §0 source_materials와 §12에만 구조화 기재한다(L-e). +10. 13판 편제를 문서 편제로 옮기지 않는다. 13판의 표제·순서는 §12.4에만 있다. +11. 항변은 사건 관련성이 있는 것만. 각 항변 블록의 `요건사실` 또는 `권위 ID`가 자료 파일의 '필요 이유'나 + 검증된 판례와 연결되어야 한다. 교과서의 모든 항변을 옮기지 않는다. +12. 언어: 한국어 법률문장. 정확한 법률용어. 불필요한 수사·반복 금지. + + + + + + +## 1. 라운드 구성 (최대 2라운드) + +1라운드(필수): 게이트 스크립트 → 기계적 수정 → 게이트 재실행 → R1~R6 자기심사 → 표적 수정. +2라운드(조건부): 1라운드 끝에 S 실패 또는 R < 3이 남아 있을 때만 돈다. + 남은 것이 없으면 2라운드를 돌리지 않고 곧바로 Stage 6으로 간다. +3라운드는 없다. 2라운드 끝의 잔여는 아래 5로 처리한다. + +라운드 안에서도 이미 통과한 항목을 다시 심사하지 않는다. +게이트 재실행은 수정한 절이 걸린 검사 항목만 보는 것으로 족하나, +스크립트 전량 실행이 더 싸면 전량 실행한다(기계 검사는 비용이 낮다). + +## 2. 게이트 스크립트 + +**의 표준 구현체를 쓴다. 새로 작성하지 않는다.** +`tmp/rf_draft/_shared/rf_gate.py`(v4.1)를 그대로 실행하고, 없거나 버전이 다르면 중단·보고한다( 절차 2). +검사 항목: 11의 S1~S14·S10b와 린트 L-a~L-g. +§7은 이 스크립트가 `--project`로 §4.2·§5.P#.2·§6에서 투영하며, 투영은 멱등이다. +yaml 모듈이 없으면 스크립트가 정규식 최소 구현으로 자동 강등하고 S1 사유에 그 사실을 적는다. +FAIL이 오탐으로 보여도 스크립트를 고치지 않는다( 4). + +## 3. R1~R6 자기심사 (각 0~4점, blind 프로토콜) + + 4의 입력 제한을 지킨다. 문서 전문 1회 통독으로 끝낸다. +「1회 통독」은 2의 300줄 상한 아래에서 **절 순서대로 나누어 읽는 것**이다(v.5-r5). +같은 절을 두 번 읽지 않으면 분할 통독이 곧 1회 통독이다. 두 규칙은 충돌하지 않는다. +R1 §4가 실제로 모든 경로 공통인가 (경로 전용 요건의 승격 여부) +R2 부인과 항변이 올바르게 갈렸는가 +R3 §3 `절차효과` 값이 법적으로 맞는가 (이송 / 소장각하명령 / 소각하판결 / 본안기각) +R4 기간제한의 성질(출소기간 / 제척기간 / 시효)과 효과(각하 / 기각) 판정이 맞는가 +R5 부수급부 구간이 사건 성질에 맞는가 (이중회복, 2구간, 소송촉진법 배제 사유) +R6 인용 판례가 그 명제를 실제로 지지하는가 (holding 대 판결요지, 변경·폐기 여부) + R6에 한해 web으로 판례 원문·현재 상태를 다시 확인할 수 있다( 4). + 이 확인은 4 (b)의 T2 상한에서 세고, 새 법리 조사로 번지지 않게 한다. +추가 심사: 원칙 1~8 준수, 형식, §10.1 시간순, 재판모델별 §3 필수 항, 날조 의심 인용. +채점 기준은 evals/EVAL_RUBRIC.md의 Substantive accuracy / Source integrity / Legal application / Temporal fit. +심사 산출은 R별 점수 1줄 + 지적사항 목록이다. 근거 재서술을 길게 쓰지 않는다. + +## 4. 수정 규칙 + +- 실패한 절만 그 절만 다시 써서 교체한다. 전체 재생성 금지. +- §4·§5·§6이 바뀌면 §7을 재투영한다. §4.4가 바뀌면 §2.2를 재검한다. 라운드 말에 §0을 재동기화한다. +- 날조 의심 인용은 점수와 무관하게 즉시 실패: 번호를 삭제하고 명제를 UNVERIFIED로. +- 지적사항이 "더 조사하면 확정할 수 있다"류이면 조사를 늘리지 말고 UNKNOWN으로 확정한다. + 4의 상한은 수정 루프에도 그대로 걸린다. + +## 5. 2라운드 후 잔여 + +- S 실패 잔여 → 해당 항목을 `UNVERIFIED — <사유>` 또는 `UNKNOWN — <사유>`로 고쳐 쓴다. +- R < 3 잔여 → 해당 절 상단에 `UNVERIFIED — R#: <사유>` 한 줄, §12.7에 항목 추가. + +## 6. verification_status 계산 +- VERIFIED: 전 S 통과, 전 R ≥ 3, 문서에 UNKNOWN·UNVERIFIED 0건, 본문 판례가 전부 요구 등급 충족 +- QUALIFIED: 전 S 통과, 전 R ≥ 3, §12.7에 미해결 존재 (청구취지작성규칙 부재 시 상한) +- UNVERIFIED: 그 외 + + + + + + +1. 하위 에이전트를 spawn하지 않는다( 2). + 병렬화로 시간을 벌려 하지 말고, 시간이 문제면 아래 상한으로 범위를 줄인다. +2. 대용량 파일을 통째로 읽지 않는다. 한 번에 컨텍스트로 올리는 양은 300줄이 상한이다. + PDF는 pdftotext로 페이지 범위를 지정해 **파일로 저장한 뒤** 그 파일을 grep/sed로 300줄 이내씩 읽는다(Stage 1.5). + 추출물을 표준출력으로 받아 통째로 올리지 않는다. 텍스트·md도 같은 300줄 규칙을 따른다. + 예외는 요건사실론_문서_공통골격_v4.md 하나다(구속력 있는 사양이므로 통독). + P5의 「문서 전문 1회 통독」도 이 상한 아래에서 절 순서대로 나누어 읽는다. 같은 절을 두 번 읽지 않으면 + 분할 통독이 1회 통독이다(v.5-r5. 두 규칙이 충돌한다는 지적이 세 배치에서 반복됐다). +3. 판례 전문을 파일로 내려받지 않는다. 필요한 판시만 확인하고 레지스트리에 요약한다. + 법령은 예외다. 조문을 여럿 확인해야 하면 법령 XML을 tmp/rf_draft//에 **1회** 받아 + 로컬 파서로 뽑는다(HTTP 8회로 끝난다. 조문마다 호출하면 연결이 끊긴다 — + 1). 받은 XML은 스크래치에만 두고 컨텍스트에는 인용할 조문만 올린다. +4. 조사·검증 상한은 두 갈래이고, 계수 대상은 **외부 조회**뿐이다. + 외부 조회 = web 검색·페이지 열람, law.go.kr·scourt.go.kr 조회, 판례 Open API 호출. + 로컬 셸·파일 조작(pdftotext, grep, sed, python3, 파일 읽기·쓰기·append)은 계수하지 않는다. + + **계수 단위는 호출 횟수가 아니라 「확인한 대상」의 개수다.** + 대상 = **법령 1건**(그 법령에서 읽은 조문이 몇 개든 1대상), 판례 사건번호 1건, 헌재 결정 1건, 이율·기간 항목 1건. + 같은 대상에 대한 반복 호출은 **최초 1건으로만** 센다. 다음은 상한에 계수하지 않는다. + - 파서·요청 형식 실수로 실패해 고쳐서 다시 부른 호출(MST 없이 `lawService.do` 호출, CDATA 가정 오류, 파라미터 이름 오류 등) + - 빈 응답·오류 응답을 받아 다른 엔드포인트나 파라미터로 재조회한 호출(`search=2` 0건 → `nb=`, `evtNo` 공백 → `precSeq`) + - 같은 대상의 검색(`lawSearch.do`로 MST·판례일련번호 취득)에 이어 본문을 여는 호출 — **2단 호출은 합쳐 1대상** + - 네트워크 오류·타임아웃으로 인한 단순 재시도 + - **키워드 본문검색으로 후보만 받고 어느 대상도 채택하지 않은 탐색성 검색.** 채택한 대상만 센다. + 취지: 도구 사용 미숙을 조사 범위 축소로 갚지 않게 하는 것. 남용 방지: 같은 대상 재시도는 5회를 넘기지 않는다. + 넘으면 UNKNOWN으로 두고 다음으로 간다. decisions.md에 **확인한 대상 목록(계수)**과 **재시도 횟수(비계수)**를 + 나누어 적고 최종 보고에도 두 값을 함께 낸다. + + (a) 일반 조회 — **법령 30 + 판례 30 = 60.** 한쪽이 남아도 다른 쪽으로 넘기지 않는다. + - **법령 30**: 조문 현행성·시행일·부칙 확인, 이율·기간 조회. 계수는 법령 단위다. + **골격 v4가 조문번호를 지정해 명시를 요구하는 조문은 상한 밖이다** — §3.4·§3.5·§6.4·§8.4·§10.3이 + 이름을 대어 요구하는 것(민법 제168조·제178조·제179조~제182조, 민사소송법 제202조의2 등)은 T1 검증이 + 필수이므로 고정 목록으로 보아 계수하지 않는다. 그 밖의 조문은 정상 계수한다. + - **판례 30**: 판례의 **실재·표기 확인과 변경·폐기 확인.** 계수는 사건번호 단위. 헌재 결정도 여기서 센다. + `lawSearch.do?target=prec&nb=<사건번호>`의 응답 필드는 판례일련번호·사건명·사건번호·선고일자·법원명· + 법원종류코드·사건종류명·사건종류코드·**판결유형**·선고·데이터출처명·판례상세링크다(실측). + 판시사항·판결요지·판례내용은 없다. **`<판결유형>`이 「전원합의체 판결」 표기를 주는 유일한 (a) 경로다** + ( 3, 레지스트리 `en_banc`). 전원합의체 여부를 (b)로 돌리지 않는다. + **규범 — 어느 경로로 얻었든 판시를 본문에 쓰려면 (b)의 전문 확인으로 계수한다.** scourt.go.kr이 + 판시사항을 보여 주더라도 같다. 제한은 엔드포인트가 아니라 계수 규범이다. + 13판 각주·규칙 문서·자료 파일·검색 요약을 holding으로 삼지 않는다( 16). + 전문을 열지 못한 명제는 `UNVERIFIED — 판례 전문 미확인`으로 두고 §12.7에 적는다. + **전문을 연 판례는 (b)에만 계수하고 (a)의 판례 예산에서 다시 세지 않는다.** T2로 갈 판례는 처음부터 + (b)로 처리한다. 인용 후보를 전부 전문 확인으로 처리하는 확인의 소에서는 **(a) 판례가 0/30으로 남는 것이 + 정상이다**(배치 12H의 확인의 소 6건 중 5건). 0을 채우려고 (a) 조회를 늘리지 않는다. + (여기의 T1/T2는 Stage 2.2의 **검증 등급**이고 의 Tier 1~4는 **출처 등급**이다. 다른 축이다.) + **조문 목록은 집필 전에 확정한다.** 본문에 실제로 인용할 조문만 레지스트리에 등재한다(아래 7). + (b) T2 전문 확인 — **45회.** ① 직접 근거 판례의 전문 열람( 2), ② 인용 판례의 변경·폐기 확인을 + 위한 **후속 전원합의체 판결의 전문 열람**(Stage 2.3, 2), ③ P5의 R6 재확인. + (a)와 별도로 센다. **45회 중 6회는 R6 예비분이다. P2·P3에서 39회를 넘기지 않는다.** + 직접 근거 판례가 넘치면 §4·§5의 요건과 §6의 항변에 직접 닿는 것부터 채우고, 나머지는 T1로 남긴 채 §12.7에 적는다. + 어느 쪽이든 상한에 닿으면 미확정분을 UNKNOWN 또는 UNVERIFIED로 두고 다음 단계로 간다. + 확정하지 못한 것을 확정하려고 라운드나 검색을 늘리지 않는다. 집필 중 추가 검증과 수정 루프를 포함한 누적치다. + **위 수치의 연혁(v.5-r0~r4)은 의 「예산 연혁」에 있다. 실행 지시는 이 절의 값 하나뿐이다.** +5. 같은 검색을 반복하지 않는다. 직전 런이 남긴 스크래치(extract/의 추출 텍스트, + reading_plan.json, notes.md, authorities.jsonl)가 있으면 재사용한다. 다시 만들지 않는다. + 단 법령·판례·이율·기간의 조회 결과는 신선도 조건이 붙는다. authorities.jsonl의 `checked_at`이 + 실행일과 다른 항목은 재사용하지 않고 law.go.kr에서 다시 조회한 뒤 `checked_at`을 갱신한다. + §0의 `law_as_of`는 실행일로 기록되므로, 과거 조회값을 그대로 쓰면 9와 어긋난다. + 실행일과 무관한 산출물(13판 추출 텍스트, 목차 대조 결과, reading_plan.json)은 그대로 재사용한다. +6. 13판 정독 상한은 표시면 기준 총 200쪽, 블록당 40쪽(Stage 1.5). + 추출물은 extract/에 파일로 두고, 컨텍스트에는 명제 단위로 압축한 노트만 남긴다. +7. 검증은 본문에 실제로 인용할 명제에만 건다. 쓰지 않을 판례·조문을 미리 검증하지 않는다. +8. 조사 결과는 집필 전에 + `Evidence → Legal proposition → Cause of action / Defense → Required factual element → 절·R-ID`로 구조화한다. +9. 임시 산출물은 tmp/rf_draft//에만 둔다. Main working directory에 남기지 않는다. +10. 핵심 deliverable은 최종 문서와 MEMORY.md 갱신 두 가지다. 그 밖의 산출물을 늘리지 않는다. +11. 60KB를 한 번에 생성하지 않는다. 절 단위로 생성해 즉시 파일에 append한다. + + + + + + +## 자료 파일 전무 (정규화 변형 탐색 후에도) +하드 스톱. 문서를 만들지 않는다. "전제 조건 미충족: 자료조사 프롬프트를 먼저 실행하라"를 보고한다. +자료조사 단계를 이 작업 안에서 대신 수행하지 않는다. + +## 자료 파일 부분 존재 (_0만, _1·_2만 등) +진행하되 source_materials에 존재 파일만 기록하고, 단일 출처 항목의 채택 근거를 decisions.md에 남긴다. +자료 파일이 **1개뿐이면** 앙상블 교차검증이 성립하지 않으므로 그 사실을 §12.7에 한 줄로 적는다 +(`UNVERIFIED — 자료 파일 단일 출처(_N). 앙상블 교차검증 미실시`). verification_status 판정에 반영된다. + +## 청구취지작성규칙 부재 + 7. + +## 오프셋 미확정 +해당 블록 발췌를 `UNVERIFIED`로 표시하고 §12.4의 범위에 표시한다. 문서 전체를 멈추지 않는다. + +## TOC_MISMATCH +자료 파일의 목차명이 목차 txt에 없으면 그 행을 직접 판정한다. 가장 가까운 실재 표제로 바꾸되 +바꾼 사실을 decisions.md에 남긴다. 유사 표제를 새로 만들지 않는다. + +## Website unavailable +같은 법령·판례를 다른 공식 source에서 찾는다. 비공식 자료만 있으면 T1 미만으로 두고 본문에서 뺀다. + +## Ambiguous case type +"<####>"가 복수의 청구권을 포함하면 임의로 하나만 고르지 않는다. 자료 파일·규칙 문서·13판으로 +프로젝트가 의도한 범위를 식별하고, 합리적으로 포함되는 청구권은 각각 경로로 둔다. + +## Leaf 계수 ≠ 137, 서수 검산 실패, 사건종류 매칭 0건 또는 2건 이상 +중단·보고. case_kinds.md가 편집되어 PROV 번호가 조용히 바뀌는 것을 막기 위함이다. +매칭 실패는 case_kinds.md에서 대응 leaf를 확인해 정확한 명칭으로 한 번 더 실행한 뒤에도 +해소되지 않을 때만 중단 사유가 된다. + +## 게이트 스크립트 작성 불가 (python3 부재 등) +S1~S14를 수동 대조하고, 그 사실과 대조 결과를 보고에 적는다. verification_status 상한 QUALIFIED. + + + + + + +1. 작업 시작 전에 반드시 AGENTS.md와 MEMORY.md를 읽는다. AGENTS.md의 규칙을 전체 작업에 적용한다. +2. 요건사실론_문서_공통골격_v4.md를 전문으로 읽고, 절 편제·제목·번호를 고정한다. 절을 추가·삭제·개명하지 않는다. +3. 사건종류 "<####>"의 명칭만 보고 실체법상 청구권을 사전 확정하지 않는다. §1에서 경로로 해체한다. +4. case_kind_id·slug는 의 스크립트(case_kinds.md 단독 정본)로 도출하고 §0 stub에 먼저 고정한다. + case_kind_registry.json을 비롯한 다른 카탈로그 파일을 쓰지 않는다. +5. 자료 파일 _0|1|2 중 존재하는 것을 전부 쓰되 단순 합집합·다수결로 채택하지 않는다. +6. 페이지 오프셋을 하드코딩하지 않는다. 경계면은 원본 PDF로 확인한다. + 13판 추출물은 extract/에 파일로 저장하고 한 번에 300줄 이내씩만 읽는다. 표준출력으로 통째로 받지 않는다. + 정독 상한은 총 200쪽, 블록당 40쪽이다. +7. 13판·지원림 OCR 텍스트를 verbatim 인용하지 않는다. +8. 본문의 모든 조문·사건번호는 레지스트리 T1 이상, 직접 근거 판례는 T2. +9. 이율·기간 수치는 law.go.kr 실행일 조회와 시행일·부칙 동반 시만 쓴다. + law.go.kr 호출은 의 순서를 따른다. + 사전 경고·요약·기대값은 진입점이지 판정이 아니다(). +10. §1을 먼저 확정하고, 절은 Stage 4의 집필 순서대로 생성해 즉시 파일에 append한다. 60KB 일괄 생성 금지. +11. R-ID 채번은 §4·§5 집필 시에만. §7은 스크립트 투영. +12. §6.0에서 부인과 항변을 먼저 가른다. 부인을 항변 블록으로 만들지 않는다. +13. 학설은 §12.6에만. 본문 요건은 판례·법령으로 확정한다. +14. 잔여범주·빈 셀 3종·부존재확인·재판공격·집행관계는 를 따른다. +15. 골격을 우회하지 않는다. 오버라이드는 없다( 12). 골격 v4 파일은 수정하지 않는다. + 골격 자체의 결함을 발견하면 최종 보고의 「v4 패치 후보」로만 올린다. +16. 게이트 S1~S14·S10b와 린트는 의 표준 구현체로 검사한다. 새로 작성하거나 고치지 않는다. + R1~R6 심사는 blind 프로토콜로 수행한다(집필 근거를 판정 근거로 쓰지 않는다). + R6에 한해 판례 원문의 web 재확인을 허용한다. +17. 수정 루프는 실패한 절만, 최대 2라운드(2라운드는 잔여가 있을 때만). + 초과분은 UNVERIFIED/UNKNOWN으로 남기고 §12.7에 모은다. +18. 최종 결과 파일: 사건종류_요건사실론문서/요건사실론_<####>_v1.md (공백 제거 파일명). +19. 파일 생성 후 전체를 다시 읽는다. +20. 하위 에이전트를 spawn하지 않는다. 별도 ExecPlan 문서를 만들지 않는다. + 결정 로그는 tmp/rf_draft//decisions.md 한 파일로 유지한다. +21. 최종 산출물과 게이트·심사가 끝난 후에만 MEMORY.md를 갱신한다. 기존 내용을 훼손하거나 덮어쓰지 않는다. +22. 장황한 내부 reasoning, 중간 산출, 기각된 후보 전부를 최종 보고에 넣지 않는다. +23. 본문 산문에 프롬프트·평가서·내부 파일명·작업 경위를 남기지 않는다. +24. 최종 보고는 을 따른다. + + + + + + +다음이 모두 충족되어야 작업을 완료한 것으로 본다. + +1. AGENTS.md·MEMORY.md·골격 v4 확인 및 **골격·프롬프트의 리비전 번호 확정** 완료 +2. case_kind_id·slug 확정, leaf 137 assert 통과 +3. 자료 파일 병합·독서계획·오프셋 실측 완료 +4. 권위 레지스트리 구축 완료(본문 인용 전부 T1 이상. + T2 상한으로 전문 확인을 못 해 T1에 머문 직접 근거 판례는 §12.7에 기록) +5. §1 확정 +6. §0~§12 전 절 존재(빈 절은 3분 값) +7. §7 투영 완료 +8. 표준 구현체로 게이트 S1~S14·S10b·린트 통과(또는 잔여의 UNVERIFIED/UNKNOWN 처리), + §7 투영 멱등성 확인 완료 +9. R1~R6 자기심사 완료, 미달분 §12.7 기록 +10. §0 최종화(verification_status·content_hash) 완료 +11. 최종 파일 생성·재독 완료 +12. decisions.md 종결 기록 +13. 사용자 보고 완료 +14. MEMORY.md 갱신 완료 + +핵심 항목이 충족되지 않은 상태에서 완료를 보고하지 않는다. + + + + + + +사용자에게는 다음만 보고한다. + +- 완료 여부 +- 사건종류, case_kind_id, slug, action_type +- 생성 파일 경로와 크기 +- 사용한 source_materials(_0/_1/_2)와 청구취지작성규칙 유무 +- 실측 오프셋, 경계 교정한 범위 +- 13판 정독 쪽수(총량 200쪽 대비)와 잘라낸 블록 +- 외부 조회 사용량: (a) 법령 대상 수/30 · 판례 대상 수/30, (b) T2 전문 대상 수/45, 상한 도달 여부 +- 비계수 재시도 횟수와 그 사유(파서 오류·엔드포인트 재조회·네트워크) +- 개수: 청구경로, §4 R-ID, §5 R-ID, §6 항변 블록, 레지스트리 항목(T1/T2) +- 라운드별 S1~S14·린트 결과 표와 R1~R6 점수 +- 사용한 라운드 수 +- verification_status와 그 사유 +- §12.7 미해결 건수와 상위 항목 +- 사전 통지(오케스트레이터 브리프·MEMORY.md 교훈·자료 파일 메모)와 원문이 갈린 사실. + 갈린 항목, 원문에서 확인한 값, 결론에 미친 영향. 없으면 「없음」 +- **읽은 골격 리비전 번호**(예: v4-r4)와 골격 제12부 12.1 표의 최신 행 +- **읽은 이 프롬프트의 리비전 번호**(예: v.5-r3. 표의 최신 행) +- 골격 v4와의 불일치·v4 패치 후보(게이트 오탐으로 의심되는 항목 포함) +- 이 프롬프트(v.5) 자체의 결함·모호점 +- MEMORY.md 갱신 여부 +- 제한 사항(접근 불가 웹사이트, OCR 판독 불가 쪽, 부재 자료) + + + + + + +**이 절은 유지보수 기록이다. 워커는 읽되 실행하지 않는다.** +작업 지시는 `` 앞의 절들이고, 이 절은 개정 이력과 미해결 목록만 담는다. +아래 「다루지 않은 결함 후보」에 적힌 충돌은 **현행 우선순위를 함께 명시**했으므로 +구속 규칙을 상대화하는 근거로 쓰지 않는다. + +**파일명이 `..._opus_v.5.txt`로 같아도 내용은 개정된다.** +이 프롬프트를 고칠 때마다 아래 표에 행을 추가하고, 고치기 전에 원본을 +`요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r_outdated.txt`로 보존한다(``은 그 원본의 리비전). +v.5-r2까지 쓰던 `_<월>_<일>_outdated` 규칙은 **같은 날 두 번 고치면 이름이 충돌**했고 실제로 충돌했다. +작업 디렉터리에 `_r_outdated` 보존본과 `_old`·`_prev` 사전 판본이 함께 있으므로 +**`..._opus_v.5.txt` 정확히 그 이름만 읽는다**(화이트리스트). +(2026-09-05에 보존 파일명을 규칙 기본형으로 전건 정리했다. 그전에는 `_9_4_outdated`·`_r`·`_r2`가 +섞여 있었고 `_r2`의 숫자가 실제 리비전과 어긋났다. 아래 리비전 표를 보라.) + +**이 파일과 골격 v4를 git에 추적시킨다.** 현재 둘 다 추적되지 않아(`git status`에서 `??`) +어느 배치가 어느 판을 읽었는지 사후에 확인할 수 없다. 배치 10에서 실제로 이 문제가 발생했다. +병렬 배치의 오케스트레이터는 배치 시작 시 두 파일의 sha256과 리비전을 preflight에 적는다. + +**미이행 경고 (v.5-r3)** — 이 preflight 의무는 **실제 배치 실행 프롬프트에 아직 구현되지 않았다.** +`Prompt_요건사실론_1차드래프트_병렬작성_프롬프트.txt`에는 「리비전」·「sha256」·「preflight」가 +한 번도 나오지 않는다. 워커 쪽 Stage 0.2의 대조는 「오케스트레이터가 통지했으면」이라는 조건부이므로, +**통지가 없으면 대조는 영영 일어나지 않는다.** 규칙이 그 규칙을 읽지 않는 주체에게만 부과되어 있다. +배치 실행 프롬프트에 「배치 시작 전 골격과 이 프롬프트의 sha256·리비전을 산출해 각 워커 브리프에 +적는다」를 넣어야 이 조치가 실제로 발동한다. + +| 리비전 | 일시 | 크기 | sha256(앞 12) | 보존 파일명 | 근거·내용 | +|---|---|---|---|---|---| +| v.5-r0 | 2026-09-03 23:09 | 131,186 B | `ef8224420584` | `..._v.5_r0_outdated.txt` | 배치 7·8 결함 보고. v.5 초판 | +| v.5-r1 | 2026-09-04 19:58 | 137,910 B | `a362ba395676` | `..._v.5_r1_outdated.txt` | 배치 10 결함 보고. 아래 4건 | +| v.5-r2 | 2026-09-04 20:32 | 148,126 B | `8049a6ea9b2c` | `..._v.5_r2_outdated.txt` | 배치 9·10 잔여 후보 정비. 아래 5건 | +| v.5-r3 | 2026-09-04 20:41 | 160,694 B | `29fa4bd20405` | `..._v.5_r3_outdated.txt` | r1·r2에 대한 적대적 검증의 지적 반영. 아래 8건 | +| v.5-r4 | 2026-09-05 | 171,737 B | `e5ec945828f9` | `..._v.5_r4_outdated.txt` | 배치 11 결함 보고. 아래 3건. (2026-09-09 19:32 Stage 0.4 (2) 예시 2문장 삭제 정정본 `51ccf24fcb30` 171,441 B — 보존본은 이것) | +| v.5-r5 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가) | (아직 없음) | 배치 12H 패치 후보 반영. 아래 14건 + 게이트 v4.1 | + +**보존 파일명은 2026-09-05에 전건 정리했다.** 위 표의 ``은 이제 그 파일이 담은 리비전과 일치한다. +정리 전에는 `..._v.5_9_4_outdated.txt`(r0)·`..._v.5_r.txt`(r1)·`..._v.5_r2.txt`(r3)로 체계가 섞여 있었고, +특히 `..._v.5_r2.txt`(내용은 r3)와 `..._v.5_r2_outdated.txt`(내용은 r2)가 `_outdated`의 유무만으로 +갈려 있었다. 이름을 바꿀 때 전건 해시 검증을 걸어 내용 변형이 없음을 확인했다. +**그래도 대조는 이름이 아니라 위 sha256으로 한다.** 골격 v4도 같이 정리했다(골격 12.0 규칙 6). + +**표 밖의 사전 판본 2건이 남아 있다.** `..._v.5_old.txt`(124,488 B, `8dacfdbe4857`)와 +`..._v.5_prev.txt`(130,862 B, `d0ba7a0d612f`)는 **v.5-r0(131,186 B)보다 앞선 초안**이어서 +리비전 표에 없다. 리비전 번호를 붙이면 추적 대상인 것처럼 보이므로 이름을 바꾸지 않았다. +**둘 다 읽지 마라.** 읽을 것은 `..._opus_v.5.txt` 하나다. + +**현재 리비전 행의 sha256은 비워 둔다**(문서가 자기 해시를 담을 수 없다). 오케스트레이터는 배치 시작 시 +현재 파일의 해시를 계산해 preflight에 적는다. **과거 행 중 하나와 같으면 낡은 사본을 읽은 것이다.** + +## v.5-r1에서 바꾼 것 (4건) + +1. **`` 10의 `filing_deadline` 예시에 정정보도·반론보도를 추가했다.** + 언론중재법 제14조 제1항의 3개월·6개월은 제척기간이지만 **제26조 제3항 전단이 같은 기간을 + 소 제기 자체의 기간으로 다시 걸므로** `출소기간`이고 도과 효과는 소각하다. + 골격 v4-r2가 §3.3 표의 해당 행을 함께 정정했다. 배치 10의 PROV-098이 원문으로 발견했다. + +2. **§4의 3분 값 예시 문구에 절 제목을 병기했다**(2곳). + `§5가 기본 단위` → `§5(경로별 분기 요건사실)가 기본 단위`. + S10b의 면제 형태가 계수(`§N에 <숫자>`)와 소유격(`§N의`) 둘뿐이어서 + **지정 문구를 그대로 쓰면 반드시 S10b가 실패**했다. 기존 코퍼스 44곳 전부가 + 워커의 독립적 우회로 제목을 보충하고 있었다(배치 10 전수 확인). 골격 v4-r2의 3곳과 함께 고쳤다. + +3. **`` 4 (a)의 판례 예산 설명에서 「요지 확인」을 삭제했다.** + `lawSearch.do?target=prec&nb=<사건번호>`의 응답은 사건번호·선고일·법원명·사건명과 + `<판례일련번호>`만 주고 **판시사항·판결요지·판례내용을 주지 않는다.** + 따라서 (a)로는 holding을 확인할 수 없고, 판시가 필요한 판례는 예외 없이 (b)로 처리해야 한다. + 이 사실이 명문화되어 있지 않아 T1 판례의 holding을 13판 각주나 규칙 문서의 요약에 + 의존해 적을 위험이 있었다. 배치 10의 PROV-101이 P5의 R6에서 발견했다. + +4. **리비전 추적 장치를 신설했다** — `` 절 자체, `` [1]의 리비전 확인 문단, + Stage 0.2의 리비전 확정 지시, ``의 보고 항목. + (v.5-r1 원본에는 이 4번이 누락되어 있었다. 리비전 표를 신설한 개정이 그 표에 자기 변경을 적지 않았고, + v.5-r3의 적대적 검증이 이를 지적했다. r3에서 보충한다.) + +## v.5-r2에서 바꾼 것 (5건) + +**품질 개선이 아니라 정비다.** 다섯 건 모두 영향 범위가 좁거나 절차 규율이고, 지금까지의 산출물은 +근사·우회한 사실을 §12.7에 공개해 왔으므로 오류가 숨지 않았다. +**게이트 구현체를 건드리지 않았다** — `RF_GATE_VERSION`이 `v4.0` 그대로이고 코퍼스 회귀가 없다. + +### 골격 v4-r3과 동기화한 2건 + +1. **§4.2 `추정·전환`에 「증거법칙적 추정」을 반영했다.** + 민사소송법 제356조 제1항·제358조의 진정성립 추정은 조문에 근거하지만 반증으로 깨진다. + 「법률상 추정」으로 적으면 반대사실의 본증을 요구한다는 뜻이 되어 증명도가 한 단계 올라간다. + 게이트는 이 필드의 열거값을 검증하지 않고 §7에 문자열로 투영만 하므로 값 추가에 회귀가 없다. + 배치 10의 증서진부확인이 근사했던 자리다. + +2. **§6.0 「직권 참작사유」의 블록 전개 규칙을 두 갈래로 나누었다.** + v4-r2까지 「블록으로 만들지 않는다」는 무조건 금지가 §6 템플릿의 `소각하`(조건부 허용)와 + **정면으로 충돌**했다. 배치 9의 이사회결의무효가 금지 쪽을 읽고 승패를 가르는 방어를 + 「권리멸각 항변」으로 근사했다(R2 3점). (i) 실체법상 직권 참작은 블록 금지 그대로, + (ii) 소송요건의 소멸·흠결은 실익이 있으면 블록 허용으로 나누었다. + **열거값 7개를 그대로 두었으므로 게이트 상수 `SUNG_OK`와 S13이 무변경이다.** + 함께 정정한 것 — 「두 자리를 동시에 쓰지 않는다」를 「§6.0 행을 지우지 않는다」로 고쳤고 + (골격 §11.2 금지규칙 15와 모순이었다), S7 요약을 「블록을 요구하지 않는다(있으면 똑같이 검사한다)」로 + 정확히 했으며, 블록 전개의 전제로 **그 소송요건이 §4·§5에 `요건분류: 소송요건`인 R-ID로 실재할 것**을 + 명시했다. S7이 `대상요건`의 실재를 검사하므로 이 전제가 없으면 블록이 게이트에서 실패한다. + +### 프롬프트 단독 3건 + +3. **`` 11의 S11 요약에 역방향 오용 금지를 반영했다**(골격 v4-r1 미반영분). + 이율이 존재하는 행에 3분 값을 쓰지 않는다. 앞 구간의 이율이 이어지고 **특례이율의 적용만 + 배제되는 구간**은 이율 부존재 행이 아니다. 게이트는 빈 셀만 잡으므로 이 오용을 잡아주지 못한다. + 배치 10의 종류물 워커가 골격 파일을 직접 읽어 우회했고, 요약만 읽었으면 틀렸을 자리다. + +4. **Stage 4의 절 조립에 빈 줄 정규화를, Stage 6에 `content_hash` 계산 순서를 넣었다.** + 절 파일을 단순 연결하면 `## §N.` 헤딩 앞에 빈 줄이 없어 Weaviate 적재의 청크 경계가 흐려지는데 + 게이트가 잡지 않는다(S2a는 헤딩의 존재와 순서만 본다). 배치 10에서 워커 두 명이 각자 발견해 고쳤다. + `content_hash`는 §7 투영과 빈 줄 정규화가 끝난 **뒤에** 계산해야 한다. 투영은 front matter를 + 건드리지 않지만 본문을 바꾸므로 그 전에 계산한 해시는 즉시 낡는다. 순서를 명시했다. + +5. **`` 4에 blind 자기심사의 원리적 한계와 보완 절차를 명시했다.** + 하위 에이전트 spawn이 금지되어 **집필한 세션이 그대로 심사하므로** 격리가 구조로 보장되지 않는다. + 이 사실을 숨기지 않고 적고, 대용물로 넷을 기계적으로 지키게 했다 — ① 심사 직전 디스크에서 + 파일을 다시 읽어 그 텍스트만 판정 대상으로 삼는다 ② 지적마다 본문 인용을 붙이고 인용할 수 없는 + 지적은 버린다 ③ 「내가 확인했으니 맞다」로 통과시키지 않는다 ④ R 점수 사유에 집필 경위를 쓰지 않는다. + 남은 편향은 구조적 한계로 보고 제한 사항에 적는다. + +## v.5-r3에서 바꾼 것 (8건) + +**r1·r2에 대한 적대적 검증(7 에이전트)의 지적을 반영한 것이다.** 총평은 `needs_fix`였고, +핵심 지적은 「표의 한 행만 고치고 그 행을 낳은 규칙은 그대로 두었다」와 「용도만 좁히고 숫자는 그대로 두었다」였다. + +1. **`` §3의 기간 판정을 3분기로 고쳤다.** r1은 `` 10에 + 정정보도를 출소기간으로 넣었으나, 1,000행 떨어진 §3 규칙은 「재판외 행사로 족하면 본안 기각」이라는 + 이분법 그대로였다. **같은 파일 안에서 정면으로 충돌**했고, R4 자기심사가 후자로 채점하므로 + 성실한 워커가 §0의 출소기간 값을 오류로 판정할 수 있었다. 골격 v4-r4 §3.3 ③호와 맞췄다. +2. **`` 10에 골격의 두 유보를 함께 옮겼다.** r1은 결론만 옮겨 확정 명제로 적었다 — + 재판외 국면에서는 제척기간으로 작동한다는 것, 정면 판시가 확인되지 않아 §12.7에 남겨야 한다는 것. + 캐시만 읽는 워커가 미확인 명제를 확정 서술하게 되어 ``의 취지와 어긋났다. + 각하의 재판형식 구별(정정보도는 판결, 반론·추후보도는 결정)과 제16조 제3항 준용도 함께 넣었다. +3. **§4 3분 값 문구의 근거 문장을 실측대로 완화했다.** 「반드시 실패한다」는 과장이었고(23개 중 21개), + 게이트가 괄호 안 문자열을 검증하지 않는다는 사실을 함께 적었다. +4. **판례 응답 필드를 실측대로 고치고 「만 준다」를 걷어냈다.** r1은 `<판결유형>`을 빠뜨렸는데, + **이 필드가 「전원합의체 판결」 표기를 주는 유일한 (a) 경로**다(`` 3의 요구, + 레지스트리 `en_banc`). 「만」이라고 읽은 워커는 전원합의체 확인을 (b)로 돌려 예산을 낭비하거나 + 표기를 추정하게 된다. +5. **「(a)로는 판시사항을 확인할 수 없다」를 사실 명제와 규범 명제로 분리했다.** + scourt.go.kr 종합법률정보는 판시사항을 보여 주므로 사실 명제로는 거짓이었다. + `` 서두가 「관례가 실측과 어긋나면 실측을 따르라」고 지시하므로, + 그 페이지를 열어 본 워커가 이 문장을 실측 위반으로 판단하고 요지 확인을 (a)에 되돌릴 수 있었다. + 제한은 엔드포인트가 아니라 **계수 규범**이라고 다시 썼다. +6. **예산 숫자를 좁힌 의미에 맞춰 재산정했다.** r1은 (a)의 용도만 좁히고 50과 25를 그대로 두어 + holding 확인이 전부 (b)로 몰렸는데, 같은 문단이 배치 7에서 이미 20/20에 닿았다고 적고 있었다. + **(a) 판례 50 → 30, (b) 25 → 45**(예비 4 → 6)로 옮겼다. 총 대상 수는 종전과 같은 수준이다. + 50을 정당화하던 괄호주가 옛 넓은 의미 아래의 실측이라는 점도 명시했다. +7. **(b)의 정의에 「변경·폐기 확인을 위한 후속 전원합의체 판결의 전문 열람」을 명시했다.** + Stage 2.3이 P2 의무로 요구하는 이 작업이 좁혀진 (a)에도 (b)의 옛 정의에도 들어가지 않아 + **어느 상한에도 속하지 않는 상태**가 됐었다. +8. **Stage 5에 「게이트를 거는 시점」을 반영했다**(골격 v4-r1 미반영분). + 프롬프트의 단계 순서가 골격 규칙을 정면으로 위반하고 있었다 — P4 게이트가 P6 §0 최종화보다 앞이고 + Stage 0.4의 stub 필드 목록에 `action_type`·`claim_paths`·`path_relation`·`filing_deadline`이 없어, + 그 stub으로 게이트를 돌리면 S1이 반드시 실패한다. 배치 9에서 워커 2명이 이 FAIL을 오독했다. + **이 8번은 사용자가 지시한 5건 밖이다.** 프롬프트가 골격을 정면 위반하는 상태를 남기는 것이 + 더 나쁘다고 판단해 함께 고쳤고, 이 사실을 여기에 적는다. + 함께: 리비전 추적의 집행 결함(보고 항목에 프롬프트 리비전 추가, 완료 정의에 리비전 확정 추가, + Stage 0.2에 불일치 처리, 보존 파일명 `_r_outdated`, 화이트리스트 읽기, 날짜 서술 정정)도 고쳤다. + +## v.5-r4에서 바꾼 것 (3건) + +배치 11(확인의 소 6건 병렬)의 결함 보고를 반영했다. 근거는 `tmp/rf_draft/_shared/patch_candidates_batch11.md`. +**셋 다 서술만 고쳤다. 열거값 집합도 게이트 구현도 건드리지 않았으므로 `RF_GATE_VERSION`이 오르지 않고 +코퍼스 회귀가 없다.** v.5-r2·r3에서 택한 노선과 같다. + +1. **`` 5(§4.2 10필드)와 6(§6 8필드)의 `주장책임 / 증명책임`에 + 「슬래시 하나로 나눈 두 값」 규칙을 명시했다.** 골격 v4-r5와 짝이다. + + 배치 11의 워커 두 명(공탁금출급청구권·시설출입이용권)이 **독립적으로** 같은 실패를 보고했다. + 이 필드에 슬래시 없이 문장을 쓰면 §7 총괄표의 두 열에 **같은 문자열이 복제된다.** + 투영 코드가 `ba, bp = (bur.split('/',1) + [''])[:2] if '/' in bur else (bur, bur)`이기 때문이다. + **게이트가 잡지 않는다** — S11도 S12도 이 필드의 형식을 검사하지 않으므로 **22/22 PASS인 문서에도 + 틀린 총괄표가 남는다.** §7은 벡터 DB로 변환되는 구조화 산출물이어서 두 열이 같으면 + 후속 에이전트가 두 책임을 구별하지 못한다. 조용히 틀리는 종류다. + 게이트에 검사를 넣으면 버전이 올라 코퍼스 전수 재검사가 붙으므로, 지금은 서술로 막고 + **다음에 게이트를 손볼 때 함께 넣는다.** 조립 후 §7의 두 열이 같은 행이 있는지 눈으로 확인하라는 + 지시를 §4.2 항목에 넣었다. + +2. **`` 4 (a)의 자기모순을 없앴다.** 같은 문단이 머리에서 「법령 30 + 판례 30 = 60」, + 괄호주 말미에서 「합계를 80으로 올린다」를 동시에 말하고 있었다. + v.5-r3에서 판례를 50→30으로 내리며 머리와 판례 하위 항목만 고치고 **괄호주의 결론 문장을 + v.5-r0 이래 그대로 남긴** 것이 원인이다. 괄호주를 연혁으로 다시 쓰고 현행 합계가 60임을 명시했다. + (보존본 실측 결과 「30 + 50 = 80」은 v.5-r2가 아니라 **v.5 초판부터** 있었다. r4의 첫 수정안이 + 이를 「v.5-r2에서 올렸다」로 잘못 적었다가 개정 직후의 적대적 검증에서 잡혀 바로잡았다.) + 배치 11의 워커가 이 모순을 발견하고 머리의 60을 따랐다 — 올바른 선택이었으나 + **규율이 막은 것이지 문서가 막은 것이 아니었다.** + +3. **`` 0에 「법령 검색 응답의 `<법령명한글>`도 CDATA」를 추가했다.** + 기존 CDATA 경고가 판례 응답과 조문 본문만 예로 들고 있어서, **법령명 완전일치 필터를 + CDATA를 벗기기 전에 거는 세션이 전건 0을 받는다.** 이것을 「해당 법령 없음」으로 오판하면 + 조문 확인 전체가 무너진다. 배치 11의 한 워커가 이 이유로 법령 검색 10건을 놓쳤다. + 실측값(2026-09-05, `target=law&query=택지개발촉진법`)을 함께 적었다. + +**부수 작업 — 보존 파일명 전건 정리 (2026-09-05).** 접미사 체계가 셋 섞여 있었고 숫자가 실제 +리비전과 어긋나기까지 했다. 프롬프트 쪽은 `..._v.5_r2.txt`(내용 **r3**)와 +`..._v.5_r2_outdated.txt`(내용 **r2**)가 `_outdated`의 유무만으로 갈려 있었다. +규칙의 기본형 `..._v.5_r_outdated.txt`로 옮겨 **파일명의 ``이 담긴 리비전과 일치**하게 했다 +(프롬프트 3건 + 골격 5건 = 8건). 전건 사전 해시 검증 → 이동 → 사후 재검증으로 내용 변형 0건을 확인했다. +표 밖의 사전 판본 `..._v.5_old.txt`·`..._v.5_prev.txt` 2건은 추적 대상이 아니므로 그대로 두었다. +상세 대조표는 골격 12.8에 있다. **정리 후에도 대조의 정본은 이름이 아니라 sha256이다.** + +## v.5-r5에서 바꾼 것 (14건 + 게이트 v4.1) + +배치 12H(2026-09-09, 10건 병렬)의 결함 보고를 반영했다. 근거는 `tmp/rf_draft/_shared/patch_candidates_b12home.md` +0절·1절. 적용 기준은 사용자가 정했다 — **실행에 지장이 없는 항목은 반영하지 않는다**, §6.0 (ii)는 **§6.6 신설**, +`요건분류: 소송요건`인 R-ID는 **§5**. 골격 v4-r6과 짝이며 골격 쪽 11건은 골격 12.9에 있다. +**이번에는 게이트 구현체를 손댔다** — 정본 `tmp/rf_draft/_shared/rf_gate.py`가 `RF_GATE_VERSION = 'v4.1'`이다. +프롬프트에 내장하던 코드블록은 v.5-r5에서 제거했다. 워커는 정본 파일을 실행만 하고 복원하지 않는다. +**이 프롬프트가 Claude Opus 5 (Ultra)에서 최적으로 동작해야 한다**는 요구를 `` 1의 +작성 규약 네 가지로 명문화했고, 그 첫째(실행 지시 절에는 현행값 하나만)를 아래 6·7에서 실제로 적용했다. + +1. **입력 폴더 화이트리스트를 넷으로 넓혔다**(``·`` [2]·[5]·Stage 0.4 (2)). + `_done` 이관 폴더와 `사건종류_청구취지작성규칙문서/`가 정규 탐색 대상이다. 같은 어간에 판 번호만 다른 규칙 + 문서가 여럿이면 최고 판을 채택한다. 배치 12H의 4건이 브리프 없이는 7 오발동이었다. +2. **`` 2·6과 `` §6에 §6.6을 반영했다.** (ii)의 블록은 §6.6에만 둔다. +3. **`` 5의 `추정·전환`에 「간주」를 반영했다**(7값). +4. **`` 10과 `` §0에 `dispute_type` 빈 셀 규칙을 넣었다.** +5. **`` §3·`` 6에 소송요건 R-ID의 자리(§5, §3은 참조만)를 넣었다.** +6. **`` 4를 현행값만으로 다시 썼다.** (a)·(b)의 연혁 괄호(두 세대가 나란히 남아 있던 (b) 포함)를 + 전부 아래 「예산 연혁」으로 옮겼다. 함께 명문화한 계수 규범 셋 — 탐색성 검색 비계수, `lawSearch`→`lawService` + 2단 호출 1대상, 확인의 소에서 (a) 판례 0/30이 정상. +7. **`` 2와 `` 3의 300줄 상한 vs 1회 통독 충돌을 명문으로 해소했다** + (분할 통독 = 1회 통독). +8. **`` 1에 URL 인코딩 함정을 넣었다.** 공백 포함 법령명을 인코딩 없이 붙이면 + 직전 질의의 결과가 돌아온다. 0건이 아니라 다른 법령이므로 조용히 틀린다. +9. **S10b의 실패 형태 두 가지와 면제 단위의 정의, 범위 표기 면제를 `` 11과 `` 5에 넣었다.** +10. **`` 9의 기계판독 문언 줄을 다중 경로 예시로 바꾸고 라벨 규칙(`[P]`뿐)을 정했다.** +11. **`` 7·11에 §7 `소속 절` 열의 제목 병기와 S1 `content_hash` 형식 검사를 반영했다.** +12. **Stage 0.4 (3)의 stub에 `content_hash: ""`를, Stage 6에 기입 후 대조를 넣었다.** +13. **Stage 1.4·`` §12에 계속 각주 규칙을 넣었다.** +14. **`` 1·3과 `` §5에 「방향이 모든 경로에 직교하는 표지」의 정규 처리를 넣었다.** + 잔여범주에서 존부 요건은 §5, 부제는 어디에도 없음. + +**게이트 v4.1** — L-f(블록 필드 존재·순서·슬래시·열거값)·L-g(본문 조문의 §12 등재) 신설, S1 `content_hash`, +S10b 면제 단위 정정·범위 표기 면제, L-d 범위 §6.6, §7 소속 절 제목 병기. 코퍼스 98건 회귀 실측은 골격 12.9에 있다 +(v4.0 PASS 73 → v4.1 PASS 13. 신규 FAIL 60건은 전부 신설 검사이며 기존 항목 분포는 불변). +`tmp/rf_draft/_shared/rf_gate.py`는 2026-09-09에 v4.1로 교체했다(구버전은 `rf_gate_v4.0_outdated.py`). +워커는 이 파일을 정본으로 실행만 하고, 없거나 버전이 다르면 중단·보고한다( 절차 1·2). + +## 예산 연혁 (v.5-r0 → r5) — 실행 지시가 아니다 + +`` 4의 현행값은 (a) 법령 30 + 판례 30 = 60, (b) 45(R6 예비 6)이다. 여기까지의 경위: + +- **계수 단위** — v.4는 「법령 조문 1건」을 단위로 삼았다. 이미 내려받은 법령 XML 하나에서 읽은 조문이 전부 + 개별 대상으로 계수되어 배치 6에서 한 워커가 HTTP 8회로 조문 87건을 확인하고 89/60으로 계수됐다. + 초과 5건 중 조사 범위를 넓혀서 초과한 것은 없었다. v.5에서 법령 단위로 바꿨다. +- **비계수 재시도** — 배치 4에서 한 워커가 CDATA 가정 오류로 28건을 재조회해 60을 74까지 넘겼고, 다른 워커는 + MST 재시도로 22회를 소모했다. 둘 다 파서가 틀려서 생긴 초과였으므로 v.5에서 형식 오류 재조회를 비계수로 했다. +- **(a)의 분리** — v.4는 합계 60을 한 예산으로 두었다. 배치 6에서 확인의 소는 판례만으로 35건이 나가 조문 + 검증분이 남지 않았고, 특별법이 일곱 걸린 사건은 조문만으로 47건이 나가 판례가 눌렸다. 반대 방향으로 소진했으므로 분리했다. + v.5의 최초값 25+35=60도 배치 7에서 좁았다(복합 표지에서 골격 지정 조문만으로 법령 예산이 찼고, 공제금 청구는 판례 30/35). + 그래서 v.5-r0~r2는 「법령 30 + 판례 50 = 80」이었다. +- **(a) 판례 50 → 30** — v.5-r1이 (a)의 용도에서 「요지 확인」을 삭제해 실재·표기·변경·폐기 확인으로 좁혔고 + (`nb=` 응답에 판시사항이 없다는 실측), v.5-r3이 좁힌 의미에 맞춰 숫자를 30으로 내리고 줄인 20을 (b)로 옮겼다. + Stage 2.3이 레지스트리 판례를 15~30건으로 제한하므로 구조상 30을 넘기 어렵다. 배치 7의 「30/35」는 옛 넓은 의미의 실측이다. +- **(b) 20 → 25 → 45** — v.5 최초값 20(예비 3)은 배치 7에서 공제금 청구가 정확히 20/20에 닿았다. 25(예비 4)로 올렸으나 + holding 확인이 전부 (b)로 몰린 뒤 배치 7·9·10에서 25/25에 닿은 사건이 넷이었다. v.5-r3이 (a)에서 줄인 20과 + ②(변경·폐기 확인용 전합 전문)의 몫을 더해 45(예비 6)로 올렸다. 총 외부 조회 대상 수는 (a) 60 + (b) 45로 종전과 같은 수준이다. +- **골격 지정 조문의 상한 제외** — 배치 6에서 두 워커가 골격 §3.4·§3.5·§6.4·§8.4·§10.3이 요구하는 조문만으로 예산을 + 소진했다. 골격을 지키는 것만으로 예산이 소진되므로 고정 목록으로 보아 계수하지 않는다. +- **v.5-r4의 정정** — r3이 머리와 판례 항목만 고치고 괄호주의 결론 문장 「합계를 80으로 올린다」를 r0 이래 그대로 + 남겨 같은 문단이 60과 80을 동시에 말했다. 배치 11의 워커가 이를 발견하고 머리의 60을 따랐다. +- **v.5-r5의 정리** — (b)에도 같은 종류의 연혁 괄호 두 세대(「20(예비 3)이었다…25(예비 4)로 올린다」와 + 「45(예비 6)로 올린다」)가 나란히 남아 있었다(배치 12H 교환약정 워커). 실행 지시 절에서 연혁을 전부 걷어내고 이 절로 옮겼다. + +## 이번 개정에서도 다루지 않은 결함 후보 + +`tmp/rf_draft/_shared/patch_candidates_batch9.md`·`patch_candidates_batch10.md`·`patch_candidates_batch11.md`· +`patch_candidates_b12home.md`에 근거가 있다. + +**사용자 기준 「실행에 지장 없음」으로 v.5-r5에서 의도적으로 제외한 것 (배치 12H 보고분)** + +- Stage 0.4 (2) 괄호의 NFC/NFD 실측값(2026-09-02)이 낡았다 — 본문이 목록을 읽어 코드에서 정규화하라고 지시하므로 결론에 영향이 없다. +- ``의 「레지스트리 항목」 개수에 T0 lead를 세는지 — 보고 형식의 문제다. +- Stage 0.4 (3)의 stub 필드 목록에 `aliases`·`overlays`가 없다 — 워커가 「실행에 지장 없음」으로 보고했다. +- Stage 4의 stub 파일과 `sections/§0.md`의 관계 — 워커가 무리 없이 처리했고 산출물에 영향이 없다. + +**골격 소관으로 남은 것** + +- 골격 §4.2 `요건분류` 6값이 「사실의 확인」 유형(증서진부확인)과 확인의 소 소송요건에 정확히 맞지 않는다(골격 12.6). +- 골격 `claim_rule_pattern_ids`가 정보를 담지 못하는 경우가 있다. 검증 미완(골격 12.6). **현행 잠정 처리: 절 번호를 적는다.** + +**v.5-r4까지 목록에 있다가 v.5-r5에서 반영한 것** — 기계판독 문언 줄의 다중 경로 예시(위 10), 300줄 상한 vs 1회 통독(위 7), +§6.0 (ii) 블록의 자리(위 2, 골격 §6.6). + +