From 75e2d5bcc94b325c5157b6f64c1895859eec80af Mon Sep 17 00:00:00 2001 From: Hogyu Jhang Date: Wed, 9 Sep 2026 22:57:32 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=A8=EA=B2=A9=20v4-r7=20/=20=ED=94=84?= =?UTF-8?q?=EB=A1=AC=ED=94=84=ED=8A=B8=20v.5-r7=20/=20=EA=B2=8C=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20v4.2:=20=EC=B6=94=EC=A0=95=C2=B7=EC=A0=84=ED=99=98?= =?UTF-8?q?=20=EB=8B=A8=EC=9D=BC=EA=B0=92=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 배치 13H에서 워커 넷이 서로 다른 사건종류에서 같은 벽에 부딪힌 문제를 반영했다. §4.2 추정·전환은 요건 블록 하나에 값 하나인데, §4의 진짜 공통 요건이면서 추정의 근거가 경로마다 다른 경우가 실재한다. 손해배상(지)의 「고의 또는 과실」은 일곱 경로 전부에 성립하는데 추정은 조문상 법률상 추정·판례에 의한 추정·부존재 셋으로 갈린다. 어느 기본값을 골라도 §7 총괄표의 그 행이 일부 경로에 대하여 거짓이 되고, §7은 벡터 DB로 변환되는 구조화 산출물이므로 거짓값이 후속 에이전트에게 그대로 전달된다. 후보 셋 중 (c) 복합 형식 신설을 택했다. (a) 명문화만 하는 안은 §12.7 공개가 문서 밖의 조치일 뿐 §7 자체는 거짓인 채로 남고, (b) 선택적 필드 신설은 10필드 계약과 L-f의 REQ_FIELDS를 바꾸어 기존 코퍼스 전건에 회귀를 낸다. 반영 3건 1. 추정·전환에 「경로별 상이 — <다수 경로의 값>」 형식 신설. 쓸 때의 의무 셋을 함께 정했다 — 경로별 내역을 증명 실무에 전부 적을 것, §12.7에 올리지 않을 것(근사가 아니라 정규형), 먼저 §5로 내릴 수 있는지 볼 것(요건 자체가 갈리면 공통 요건이 아니다). 2. 한 경로 안에서 증명책임 방향이 갈리면 요건 블록을 나눈다(상법 제826조의 준용 목록이 운송인·여객으로 부담을 뒤집는 경우). 경로별 상이로도 담기지 않는다. 3. 증거방법의 진정성립 추정은 이 필드가 아니다(민사소송법 제356조·제358조). 추정·전환: 없음 + 증명 실무가 정규 처리이고, 증거법칙적 추정은 그 요건사실 자체가 조문에 근거해 추정되나 반증으로 깨지는 경우에 쓴다. 게이트 v4.2 — L-f의 추정·전환 검사에 ^경로별 상이 — (.+)$ 형식을 추가 허용(CHU_MIXED). 허용 집합을 넓히기만 하는 개정이다. 코퍼스 108건 전수 회귀 실측 결과 v4.1과 v4.2의 FAIL 분포가 완전히 동일하고 기존 PASS → 신규 FAIL 0건이다. 새 형식의 실동작도 확인했다 (v4.1은 L-f FAIL, v4.2는 PASS). rf_gate.py를 v4.2로 교체하고 구버전은 rf_gate_v4.1_outdated.py로 보존했다. 프롬프트의 절차 1·2와 verification_loop의 버전 참조도 v4.2로 갱신했다. 원본 보존: ..._v4_r6_outdated.md (153,940 B, a93d093ca6be), ..._v.5_r6_outdated.txt (163,563 B, 017da9041958). patch_candidates_b13home.md의 §1.3을 해결됨으로 표시하고 선택 근거를 적었다. Co-Authored-By: Claude Opus 5 --- .DS_Store | Bin 59396 -> 61444 bytes .../_shared/patch_candidates_b13home.md | 25 +- tmp/rf_draft/_shared/rf_gate.py | 12 +- ...4.1_staged.py => rf_gate_v4.1_outdated.py} | 0 ...론_1차드래프트_생성_프롬프트_opus_v.5.txt | 57 +- ...트_생성_프롬프트_opus_v.5_r6_outdated.txt | 2065 +++++++++++++++++ 요건사실론_문서_공통골격_v4.md | 95 +- 요건사실론_문서_공통골격_v4_r6_outdated.md | 1815 +++++++++++++++ 8 files changed, 4047 insertions(+), 22 deletions(-) rename tmp/rf_draft/_shared/{rf_gate_v4.1_staged.py => rf_gate_v4.1_outdated.py} (100%) create mode 100644 요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r6_outdated.txt create mode 100644 요건사실론_문서_공통골격_v4_r6_outdated.md diff --git a/.DS_Store b/.DS_Store index 1371cee7c941369a797bac7326f98a5c79dac840..b9b875600c841d27564ad52072d3ea55773c6c08 100644 GIT binary patch delta 1340 zcmbtUZ)jUp6uMg_QO7mQrH*$G*8~dg;el^4}R~y zchB$q&OPVeb7M;)wkpaPWBj#udp(TZr%wYRKL!-W+ypDZ6))SVJx!CA=_AO~R*eLD z$&ZOtn}7$)CyBv0fgXd5HiKP*6^cVKYFIA|u^u)Aza(QYw;+q%?p@GzAur3G7#nOZ ztaCI<@Tg@AoZGry;P>4Y7fv}d{BKh=+-|aCrar*qQN6`TDq8jy8)026xH(8kk+~?$ zhVhB#zlDL!wli{}y!+X5SWdoImc5^N+|pzh`KaC2e@M4VN)r!y(R zQ*I~N0zaW>FmQNrO|R9^vdkEso)EkQBe_|@EwHiVLi??Qf?I+6cVT_w0Rde-GpbW1 z@l6CBA@BQ7-A396`-7qWKAOuHUyCb&!-DHj>0FSw9>!`txGy{>aRY=#UAQxvmADa= z@!zGq5@V-Tb*dvbt3kir|Bi-o^Fhq-fcKltqUz#h_`vUkqPnfC1WoJajmcL`H7>U) zhLy2I-+bkdK2^eWsA$4_$Si8CEN@f_^FZ79y-n*gVAYYZD6Bi)edD1HtKF{)2%Oms zpEemGaCsX9CR0VZf!t}vd);SEI959-pm+YaO@wd_K0owOhQZNNhSj#JK<-OBUbvIsu-c(DH7Gu#P0Sdnf}y5zY7QNkzb+w>3YfgxZJFV7Jj1j62A}5( zd=au2J$XSqd}%w65BJmI2v4`;v2T9W!@z7S2FtP%49^~fty324yK3itH+aG z5KWwe#>yHvb-cNi{%wy9_hlNJiY_R+Q921>LXxk?kDfUE84Q(~PF;^zBgE^sAbv`zk-IVQQv-c4wYB=bn4! zdCxufyytX8)>O_C%$w8!U>q=--r0;*#B2XSqb86d!F{ZzQgY=p;{Ce*Z zP(e7J+YC%&gg6t+pzv6ORl^;o1QWRySZTRsPn_Fn%Ubr7)ApoisVCcM^LTRHG-A1* zX2iLYeK#-Ll*cHzES`eNE;^KUhRPOY@=rDoLN)SWatP#})@U_?KZ=f>D5k)mf)ApYCZ~>p;3a0S` z{WOrGoe`YT+%s;J5kujN8NBQBAqF!Y(`V6--&nZap7}4KEieiSt$-SyR`N@=QoU3y z`I|RBvBMwOQ7^1&ZnXU9_I0xAqa#zRi%;z`bvwjX;YxOe zOf!`SW)si}5uFH$|FN=IzNxG(Z`4p=yN(if=F+taha9){d%EFGq9vOYy0kBeyEEo9 zIq$XeWOt;~$Q!Bj%EAxmXKw=aY_{>*Q}RsDr=9wu17vq zmssidlX}{<>nan~Ipyo3gQrJCg|2Fm05B+shZXa15A1Nk4G*%Ai#2!{CD?$+P>C(@ z!iNSl!jC32V?Ulo3tI6U!XR|wFy6#F=s_>~a6;7hIed(9OyLr~z-4@kU+^n_V;UC2 z%*?_PSRzYe^O@VkJZvQ^V5O{*ZJ}UuN@AmUuiF;##AdEMipmxLA>Ti22aj{VEK{7j zoNpcdR8P6Jp8vu1jN}(@PT@dCg?3fyPfibB8}(tmt$LdCSF7 zncBa!@%H5x zT9rUhpj99w&@I43J9i6tTwqjS(j*4jS((h!`SB{7=;dk?m)Na2`5jeFhuI@#bS=Y0 SGr10aDkq+)$)v@R1AhXX@FBAR diff --git a/tmp/rf_draft/_shared/patch_candidates_b13home.md b/tmp/rf_draft/_shared/patch_candidates_b13home.md index bce4349..fe0b2be 100644 --- a/tmp/rf_draft/_shared/patch_candidates_b13home.md +++ b/tmp/rf_draft/_shared/patch_candidates_b13home.md @@ -56,7 +56,7 @@ PROV-039·PROV-044가 각각 독립적으로 발견해 실측값을 썼다. **``(사전 통지는 판정이 아니다)가 세 배치 연속으로 값을 냈다.** 오케스트레이터의 교훈: **브리프에 PROV ID를 적을 때는 `leaf_id.py`로 도출한 값만 쓴다.** -### 1.3 **§4.2 `추정·전환`의 단일 열거값이 조건부·경로별 추정을 담지 못한다 — 4/10 워커** +### 1.3 ✅ **[해결됨 — 골격 v4-r7 / 프롬프트 v.5-r7 / 게이트 v4.2]** §4.2 `추정·전환`의 단일 열거값이 조건부·경로별 추정을 담지 못한다 — 4/10 워커 - **PROV-028**: R-PROV028-4-03(고의 또는 과실)은 일곱 경로 전부에 성립하는 진짜 공통 요건인데 추정은 P1·P2·P4와 등록된 P5에서 조문상 법률상 추정, P3에서 판례에 의한 추정, P7과 미등록 P5에서는 부존재로 갈린다. @@ -69,9 +69,26 @@ PROV-039·PROV-044가 각각 독립적으로 발견해 실측값을 썼다. - **PROV-038**: 민사소송법 제358조의 증거법칙적 추정처럼 **증거방법의 진정성립**이 추정되는 경우를 어느 필드에 적을지가 정해져 있지 않다. `추정·전환: 없음` + `증명 실무` 처리가 정규인지 명시가 필요하다. -**후보 방향** — (a) 「조건부·경로별로 갈리면 다수 경로의 값을 적고 조건을 `증명 실무`에 적는다」를 명문화(회귀 없음), -(b) 선택적 필드 `경로별 추정` 신설, (c) `추정·전환`에 「경로별 상이 — <다수 값>」 복합 형식 신설 + L-f의 `CHU_OK` 확장. -(b)·(c)는 판정 경계를 늘리므로 코퍼스 회귀 규모를 먼저 재야 한다. +**처리 (2026-09-09) — (c)를 택했다.** 후보 셋 중 +(a) 명문화만 하는 안은 §7 자체가 여전히 거짓값을 담으므로 문제를 해결하지 못하고(§12.7 공개는 문서 **밖**의 조치다), +(b) 선택적 필드 신설은 10필드 계약과 L-f의 `REQ_FIELDS`를 바꾸어 **기존 코퍼스 전건에 회귀**를 낸다. +(c)는 값 집합을 넓히기만 하므로 회귀가 없고 §7에 **참인 값**을 담는다. + +**골격 v4-r7 / 프롬프트 v.5-r7 / 게이트 v4.2**로 셋을 함께 반영했다. +1. `추정·전환`에 **`경로별 상이 — <다수 경로의 값>`** 형식 신설. 쓸 때의 의무 셋을 함께 정했다 — + ① 경로별 내역을 `증명 실무`에 전부 적는다(적지 않으면 정보가 아니라 회피다), + ② **§12.7에 올리지 않는다**(근사가 아니라 정규형이다), + ③ 먼저 §5로 내릴 수 있는지 본다(요건 자체가 갈리면 공통 요건이 아니므로 §5가 정답이다). +2. **한 경로 안에서 증명책임 방향이 갈리면 요건 블록을 나눈다**(PROV-033의 상법 제826조 준용 목록). + `경로별 상이`로도 담기지 않고, `주장책임 / 증명책임`이 슬래시 하나·두 값으로 고정되어 있어 + 한 블록에 반대 방향을 담으면 어느 쪽도 참이 아니게 된다. +3. **증거방법의 진정성립 추정은 이 필드가 아니다**(PROV-038). 민사소송법 제356조·제358조는 + `추정·전환: 없음` + `증명 실무`가 정규 처리이고, `증거법칙적 추정`은 **그 요건사실 자체가** + 조문에 근거해 추정되나 반증으로 깨지는 경우에 쓴다. + +**게이트 v4.2 회귀 실측**: 코퍼스 108건 전수에서 v4.1과 v4.2의 FAIL 분포가 **완전히 동일**하고 +기존 PASS → 신규 FAIL **0건**. 새 형식의 실동작도 확인했다(v4.1은 `L-f FAIL`, v4.2는 `PASS`). +`tmp/rf_draft/_shared/rf_gate.py`를 v4.2로 교체했고 구버전은 `rf_gate_v4.1_outdated.py`로 보존했다. ### 1.4 **열거값이 「판결로 재판하는 절차」만 전제한다 — PROV-134가 정면으로 걸렸다** diff --git a/tmp/rf_draft/_shared/rf_gate.py b/tmp/rf_draft/_shared/rf_gate.py index db787b6..02bdb59 100644 --- a/tmp/rf_draft/_shared/rf_gate.py +++ b/tmp/rf_draft/_shared/rf_gate.py @@ -7,7 +7,9 @@ 종료코드 0 = 전 항목 PASS.""" import sys, re, os, io, hashlib, unicodedata as U -RF_GATE_VERSION = 'v4.1' # 절차 1의 버전 확인 대상. 정본은 tmp/rf_draft/_shared/rf_gate.py이며 워커는 저장·덮어쓰기하지 않는다. +RF_GATE_VERSION = 'v4.2' # 절차 1의 버전 확인 대상. 정본은 tmp/rf_draft/_shared/rf_gate.py이며 워커는 저장·덮어쓰기하지 않는다. +# v4.2 (골격 v4-r7, 2026-09-09): L-f의 추정·전환 값에 「경로별 상이 — <기본값>」 형식을 추가 허용. +# 허용 집합을 넓히기만 하므로 v4.1에서 PASS하던 문서는 전부 그대로 PASS한다(코퍼스 회귀 없음). # v4.1 (골격 v4-r6, 2026-09-09): §6.6 신설(L-d 범위), S1 content_hash 형식, S10b 면제 단위 정정·범위 표기 면제, # §7 소속 절 열에 절 제목 병기, 린트 L-f(블록 필드 존재·순서·형식) / L-g(본문 조문의 §12 등재) 신설. @@ -43,7 +45,8 @@ DENY_LEAK = ['불성립','미교부','부존재','없었다'] # L-d SUNG_OK = {'부인','권리장애 항변','권리멸각 항변','권리저지 항변','기간·시효 항변', '신의칙·권리남용','직권 참작사유'} PROC_OK = {'이송','보정명령 후 소장각하명령','소각하판결','본안기각'} -CHU_OK = {'법률상 추정','의사해석규정상 추정','증거법칙적 추정','사실상 추정','전환규정','간주','없음'} # §4.2 추정·전환 (v4-r6: 간주 신설) +CHU_OK = {'법률상 추정','의사해석규정상 추정','증거법칙적 추정','사실상 추정','전환규정','간주','없음'} # §4.2 추정·전환 기본 7값 (v4-r6: 간주 신설) +CHU_MIXED = re.compile(r'^경로별 상이 — (.+)$') # v4.2: 경로별로 갈리는 경우의 복합 형식. 오른쪽은 다수 경로의 기본값 REQ_FIELDS = ['적용 경로','규범적 근거','요건분류','주장의 정도','주장책임 / 증명책임','추정·전환','다중 대응','증명 실무','흠결 빈발점','권위 ID'] DEF_FIELDS = ['대상요건','요건사실','주장책임 / 증명책임','재항변','재재항변','주문에 미치는 영향','소변경·석명 요부','권위 ID'] SEC_TITLE = {'4':'§4(공통 청구원인사실)','5':'§5(경로별 분기 요건사실)'} # §7 소속 절 열 (v4-r6: 제목 병기) @@ -462,7 +465,10 @@ def run(path): for rid,_,blk in req_blocks(lines, hs): _chk(rid, blk, REQ_FIELDS) v=field(blk,'추정·전환').strip('`*').strip() - if v and v not in CHU_OK: ef.append('%s 추정·전환:%s' % (rid, v[:16])) + if v: + m=CHU_MIXED.match(v) + base=m.group(1).strip() if m else v + if base not in CHU_OK: ef.append('%s 추정·전환:%s' % (rid, v[:24])) for no,blk in def_blocks(lines, hs): _chk(no, blk, DEF_FIELDS) ck('L-f', not ef, '%d건 예:%s' % (len(ef), ef[:3])) diff --git a/tmp/rf_draft/_shared/rf_gate_v4.1_staged.py b/tmp/rf_draft/_shared/rf_gate_v4.1_outdated.py similarity index 100% rename from tmp/rf_draft/_shared/rf_gate_v4.1_staged.py rename to tmp/rf_draft/_shared/rf_gate_v4.1_outdated.py diff --git a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt index 1492aa0..e58d307 100644 --- a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt +++ b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt @@ -465,7 +465,8 @@ MEMORY.md에는 사건별 교훈이 누적되어 있다. 반복되는 핵심: 정상 문서에서도 두 열이 같은 행이 다수다. 결함의 징표는 「두 열에 문장이 들어 있다」다. 「누가 왜 부담하는가」의 근거와 설명은 `증명 실무` 필드나 블록 아래 산문에 적는다. - **추정·전환**: 법률상 추정 | 의사해석규정상 추정 | 증거법칙적 추정 | 사실상 추정 | 전환규정 | 간주 | 없음 - **열거값 하나만 적는다. 설명 문장을 덧붙이지 않는다**(골격 v4). 린트 L-f가 이 7값 밖의 값을 FAIL로 잡는다. 이 필드는 §7 총괄표의 `추정` 열로 + **또는 `경로별 상이 — <위 7값 중 다수 경로의 값>`**(골격 v4-r7) + **열거값 하나만 적는다. 설명 문장을 덧붙이지 않는다**(골격 v4). 린트 L-f가 이 값들 밖을 FAIL로 잡는다. 이 필드는 §7 총괄표의 `추정` 열로 문자열 그대로 투영되므로 문장을 쓰면 총괄표가 무너진다. 설명은 `증명 실무`로 보낸다. `증거법칙적 추정`은 골격 v4-r3 신설이다. 민사소송법 제356조 제1항(공문서)·제358조(사문서)의 진정성립 추정처럼 **조문에 근거하지만 반증으로 깨지는** 추정이다. @@ -475,6 +476,21 @@ MEMORY.md에는 사건별 교훈이 누적되어 있다. 반복되는 핵심: 조문이 「본다」로 정한 법률효과다. **반대사실의 증명으로 깨지지 않으므로** 「법률상 추정」으로 적으면 반증으로 깨진다는 잘못된 값이 §7에 투영된다. 원고는 간주의 전제사실만 세우면 되고, 상대방의 방어는 전제사실의 부인이나 별도 항변으로 간다. 그 점을 `증명 실무`에 적는다. + **`경로별 상이 — <다수 경로의 값>`은 골격 v4-r7 신설이다.** §4의 **진짜 공통 요건인데 추정의 근거가 + 경로마다 다른 경우**에만 쓴다(배치 13H의 손해배상(지)에서 「고의 또는 과실」이 일곱 경로 전부에 성립하는데 + 추정은 조문상 법률상 추정·판례에 의한 추정·부존재 셋으로 갈렸다). + 어느 기본값을 골라도 §7의 그 행이 일부 경로에 대하여 거짓이 되므로 이 형식이 **참인 값**을 담는다. + **쓸 때의 의무 셋** — ① 경로별 내역(어느 경로가 어느 값이고 근거가 무엇인지)을 `증명 실무`에 전부 적는다. + 적지 않으면 정보가 아니라 회피다. ② **§12.7에 올리지 않는다.** 근사가 아니라 정규형이다. + ③ **먼저 §5로 내릴 수 있는지 본다.** 요건 자체가 일부 경로에만 성립하면 공통 요건이 아니므로 §5로 내리는 것이 + 정답이고(골격 원칙 2) 이 형식을 쓸 자리가 아니다. **요건은 전 경로 공통인데 추정만 갈리는 경우에 한한다.** + **한 경로 안에서 증명책임 방향이 갈리면 이 형식이 아니라 요건 블록을 나눈다**(골격 v4-r7). + 준용 목록에 따라 부담이 뒤집히는 경우가 그렇다(상법 제826조가 준용하는 제148조·제149조는 운송인에게, + 제150조는 여객에게 증명을 지운다). `주장책임 / 증명책임`이 슬래시 하나·두 값으로 고정되어 있어 + 한 블록에 반대 방향을 담으면 어느 쪽도 참이 아니게 된다. + **증거방법의 진정성립 추정은 이 필드가 아니다**(골격 v4-r7). 민사소송법 제356조 제1항·제358조의 추정은 + 요건사실이 아니라 **증거방법(문서)의 진정성립**에 관한 것이므로 `추정·전환: 없음`으로 두고 `증명 실무`에 적는다. + `증거법칙적 추정` 값은 **그 요건사실 자체가** 조문에 근거해 추정되나 반증으로 깨지는 경우에 쓴다. - **다중 대응**: 타 요건 겸용(ID) | 택일 요건(대체 ID) | 평가근거사실 목록 | 없음 - **증명 실무**: - **흠결 빈발점**: @@ -714,7 +730,7 @@ L-e 출처 잔재. 검사 범위는 **§1 시작부터 §12 시작 직전까지 **"감정평가서"·"감정서"는 증거 명칭이므로 예외**로 제외한 뒤 검사한다. L-f (게이트 v4.1 신설) 모든 `#### R-` 블록에 위 5의 10필드가 **그 순서대로** 존재, 모든 `#### 6.N.x` 블록에 위 6의 8필드가 **그 순서대로** 존재. `주장책임 / 증명책임`의 슬래시가 정확히 하나이고 양쪽이 비어 있지 않음. - `추정·전환`이 7값 중 하나. 결측은 §7에 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, + `추정·전환`이 7값 중 하나이거나 `경로별 상이 — <7값 중 하나>` 형식(게이트 v4.2, 골격 v4-r7). 결측은 §7에 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, v4.0까지 22/22 PASS인 문서에도 남던 침묵 결함이다. L-g (게이트 v4.1 신설) §1 시작부터 §12 시작 직전까지의 모든 줄(표 행 포함, 코드펜스 제외)에 등장하는 조문 토큰 `제\d+조(의\d+)?`가 §12 텍스트에 등장해야 한다. §12의 `제A조~제B조`·`제A조 내지 제B조`는 @@ -773,9 +789,9 @@ v.3까지 골격 v2의 errata를 우회하던 오버라이드 6건은 **골격 v 사용 절차 (Stage 5, P4) -1. **`tmp/rf_draft/_shared/rf_gate.py`(`RF_GATE_VERSION = 'v4.1'`)가 정본이다.** 존재하고 첫머리의 상수가 - `v4.1`이면 그대로 쓴다. 워커는 이 파일을 만들거나 덮어쓰지 않는다. -2. **없거나 상수가 `v4.1`이 아니면 중단하고 보고한다**(). 복원하지 않는다. +1. **`tmp/rf_draft/_shared/rf_gate.py`(`RF_GATE_VERSION = 'v4.2'`)가 정본이다.** 존재하고 첫머리의 상수가 + `v4.2`이면 그대로 쓴다. 워커는 이 파일을 만들거나 덮어쓰지 않는다. +2. **없거나 상수가 `v4.2`가 아니면 중단하고 보고한다**(). 복원하지 않는다. 3. 실행: - 검사만: `python3 tmp/rf_draft/_shared/rf_gate.py <문서경로>` - §7 투영 후 검사: `--project` @@ -785,10 +801,12 @@ v.3까지 골격 v2의 errata를 우회하던 오버라이드 6건은 **골격 v 결함이므로, 문서를 고치는 대신 그 사실을 decisions.md와 최종 보고의 「v4 패치 후보」에 적는다. 사양과 구현이 갈리면 골격 v4 제6부가 정본이다. -이 구현(v4.1)은 2026-09-09에 코퍼스 98건 전수에 시험되었다. 13건이 전 항목 PASS다. v4.0에서 PASS였던 +이 구현은 v4.2다(골격 v4-r7). 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 전 항목을 통과해야 한다.** +대상이 아니다(골격 12.9). **v4.2는 L-f의 `추정·전환` 검사에 `경로별 상이 — <기본값>` 형식을 추가 허용하기만 +했으므로 코퍼스 108건 전수에서 FAIL 분포가 v4.1과 완전히 같고 신규 FAIL이 0건이다**(골격 12.10). +**신규 생성 문서는 v4.2 전 항목(24개)을 통과해야 한다.** @@ -1505,7 +1523,7 @@ QUALIFIED 상한과 §10.4 UNKNOWN이 근거 없이 박힌다(배치 7의 두 ## 2. 게이트 스크립트 **의 표준 구현체를 쓴다. 새로 작성하지 않는다.** -`tmp/rf_draft/_shared/rf_gate.py`(v4.1)를 그대로 실행하고, 없거나 버전이 다르면 중단·보고한다( 절차 2). +`tmp/rf_draft/_shared/rf_gate.py`(v4.2)를 그대로 실행하고, 없거나 버전이 다르면 중단·보고한다( 절차 2). 검사 항목: 11의 S1~S14·S10b와 린트 L-a~L-g. §7은 이 스크립트가 `--project`로 §4.2·§5.P#.2·§6에서 투영하며, 투영은 멱등이다. yaml 모듈이 없으면 스크립트가 정규식 최소 구현으로 자동 강등하고 S1 사유에 그 사실을 적는다. @@ -1792,7 +1810,8 @@ v.5-r2까지 쓰던 `_<월>_<일>_outdated` 규칙은 **같은 날 두 번 고 | 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 | 161,170 B | `4137f72faa1c` | `..._v.5_r5_outdated.txt` | 배치 12H 패치 후보 반영. 아래 14건 + 게이트 v4.1 | -| v.5-r6 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가) | (아직 없음) | 배치 13H 보고. 입력 폴더 부재 처리 1건 | +| v.5-r6 | 2026-09-09 | 163,563 B | `017da9041958` | `..._v.5_r6_outdated.txt` | 배치 13H 보고. 입력 폴더 부재 처리 1건 | +| v.5-r7 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가) | (아직 없음) | 배치 13H 보고. `추정·전환` 3건 + 게이트 v4.2 | **보존 파일명은 2026-09-05에 전건 정리했다.** 위 표의 ``은 이제 그 파일이 담은 리비전과 일치한다. 정리 전에는 `..._v.5_9_4_outdated.txt`(r0)·`..._v.5_r.txt`(r1)·`..._v.5_r2.txt`(r3)로 체계가 섞여 있었고, @@ -2016,6 +2035,26 @@ v.5-r5가 입력 폴더 화이트리스트를 넷으로 넓히면서 **실재하 고친 자리 셋: `` 입력 폴더 목록, `` [5], `` Stage 0.4 (2). **게이트 구현체를 건드리지 않았다** — `RF_GATE_VERSION`은 `v4.1` 그대로이고 코퍼스 회귀가 없다. +## v.5-r7에서 바꾼 것 (3건 + 게이트 v4.2) + +골격 v4-r7과 짝이다. 배치 13H에서 **워커 넷이 서로 다른 사건종류에서 같은 벽에 부딪힌** +§4.2 `추정·전환`의 단일값 문제를 반영했다(근거: `patch_candidates_b13home.md` 1.3). + +1. **`` 5의 `추정·전환`에 `경로별 상이 — <다수 경로의 값>` 형식과 의무 셋을 반영했다.** + §4의 진짜 공통 요건인데 추정의 근거가 경로마다 다르면 어느 기본값도 §7에서 참이 되지 못한다. + 의무 셋은 ① 경로별 내역을 `증명 실무`에, ② §12.7에 올리지 않음(근사가 아니라 정규형), + ③ 먼저 §5로 내릴 수 있는지 확인(요건 자체가 갈리면 공통 요건이 아니다)이다. +2. **한 경로 안에서 증명책임 방향이 갈리면 요건 블록을 나눈다는 규칙을 반영했다.** + 준용 목록에 따라 부담이 뒤집히는 경우(상법 제826조)는 `경로별 상이`로도 담기지 않는다. +3. **증거방법의 진정성립 추정은 이 필드가 아님을 반영했다.** + 민사소송법 제356조·제358조는 `추정·전환: 없음` + `증명 실무`가 정규 처리이고, + `증거법칙적 추정`은 **그 요건사실 자체가** 조문에 근거해 추정되나 반증으로 깨지는 경우에 쓴다. + +**게이트 v4.2** — L-f의 `추정·전환` 검사에 `^경로별 상이 — (.+)$`를 추가 허용(`CHU_MIXED`). +`` 절차 1·2와 `` 2의 버전 참조를 v4.2로 갱신했다. +**허용 집합을 넓히기만 하므로 코퍼스 108건 전수에서 FAIL 분포가 v4.1과 완전히 같고 신규 FAIL 0건이다**(실측). +`tmp/rf_draft/_shared/rf_gate.py`는 이 개정과 함께 v4.2로 교체했다. + ## 예산 연혁 (v.5-r0 → r5) — 실행 지시가 아니다 `` 4의 현행값은 (a) 법령 30 + 판례 30 = 60, (b) 45(R6 예비 6)이다. 여기까지의 경위: diff --git a/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r6_outdated.txt b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r6_outdated.txt new file mode 100644 index 0000000..1492aa0 --- /dev/null +++ b/요건사실론_1차드래프트_생성_프롬프트_opus_v.5_r6_outdated.txt @@ -0,0 +1,2065 @@ + + +# 사건종류 +<####> + +# 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이 이관된다) + **넷 중 실재하지 않는 폴더가 있다. 부재를 오류로 다루지 말고 건너뛴 뒤 그 사실을 decisions.md에 적는다** + (v.5-r6). 실측 2026-09-09: `사건종류_청구취지작성규칙문서/`(비 `_done`)는 코퍼스에 없고 `_done`(64건)만 있다. + 배치 13H의 워커 7명이 이것을 보고했다. **이 목록은 「볼 수 있는 폴더의 상한」이지 「실재 보증」이 아니다.** + `_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. 이관된 것도 입력이다) + + 규칙 문서는 위 세 폴더 중 어디에든 있을 수 있다. **실재하는 폴더를 모두 본다** — + 세 폴더가 전부 있어야 하는 것은 아니고, 없는 폴더는 건너뛴다(v.5-r6. 참조). + 같은 어간에 판 번호만 다른 문서가 여럿이면 **가장 높은 판**을 채택하고 나머지 경로를 최종 보고에 적는다. + **판 번호는 고정되어 있지 않다.** `_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로 정규화하고 공백·'・'·'·'·'•'·','·'('·')'를 제거한 뒤 대조한다. + **폴더가 없으면 건너뛰고 decisions.md에 적는다. 중단하지 않는다**(v.5-r6). 목록은 상한이지 실재 보증이 아니다. + **셸 `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 | 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)로 체계가 섞여 있었고, +특히 `..._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-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)이다. 여기까지의 경위: + +- **계수 단위** — 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). + + diff --git a/요건사실론_문서_공통골격_v4.md b/요건사실론_문서_공통골격_v4.md index b2d8c3f..f9690f3 100644 --- a/요건사실론_문서_공통골격_v4.md +++ b/요건사실론_문서_공통골격_v4.md @@ -9,7 +9,7 @@ > 변경 요약: v1 대비는 제9부, v2 대비는 제10부, **v3 대비는 제11부** > **판 안에서의 개정 이력은 제12부.** 파일명이 `v4`로 같아도 내용은 개정될 수 있으므로, > 이 문서를 읽는 세션은 **제12부의 최신 리비전 번호와 날짜를 먼저 확인**한다. -> 현재 리비전: **v4-r6 (2026-09-09)** +> 현재 리비전: **v4-r7 (2026-09-09)** > v4 개정 근거: 배치 6(14개 사건종류 병렬 생성)의 교차 수렴 결함 보고 > `요건사실론_1차드래프트생성프롬프트_v5_패치안.md` 부록 C, > `plans/batch6-요건사실론-1차드래프트-병렬-v4.md` @@ -439,6 +439,7 @@ v2의 9필드에 `적용 경로`를 더했다(v2에서는 생성 프롬프트 게이트가 잡지 않아 22/22 PASS인 문서에도 틀린 총괄표가 남았다. 「누가 왜 부담하는가」의 근거와 설명은 `증명 실무` 필드나 블록 아래 산문에 적는다. - **추정·전환**: 법률상 추정 / 의사해석규정상 추정 / 증거법칙적 추정 / 사실상 추정 / 전환규정 / 간주 / 없음 + 또는 **`경로별 상이 — <위 7값 중 다수 경로의 값>`**(v4-r7) (v4) **열거값 하나만 적는다. 설명 문장을 덧붙이지 않는다.** 이 필드는 §7 총괄표의 `추정` 열로 **문자열 그대로 투영**되므로, 여기에 문장을 쓰면 총괄표의 열 정렬이 무너진다. 「무엇이 추정되고 무엇으로 깨지는가」는 `증명 실무` 필드에 적는다. @@ -470,9 +471,53 @@ v2의 9필드에 `적용 경로`를 더했다(v2에서는 생성 프롬프트 법률효과의 의제이므로 원고는 간주의 전제사실만 세우면 되고, 상대방의 방어는 전제사실의 부인이나 별도의 항변으로 간다. 그 점을 `증명 실무`에 적는다. -**게이트 v4.1의 린트 L-f가 이 필드의 열거값을 검증한다**(v4-r6). v4.0까지는 값을 §7의 `추정` 열로 -문자열 그대로 투영만 했고(`field(blk,'추정·전환') or '없음'`) 열거값을 보지 않았다. -값 집합은 위 7값이며, 이 집합을 늘릴 때는 L-f의 상수 `CHU_OK`를 함께 고친다. +**`경로별 상이 — <다수 경로의 값>` 형식을 신설한 이유**(v4-r7) — 이 필드는 요건 블록 하나에 값 하나이지만, +**§4의 진짜 공통 요건인데 추정의 근거가 경로마다 다른 경우**가 실재한다. 배치 13H에서 워커 넷이 +독립적으로 같은 벽에 부딪혔다. + +- **손해배상(지)(PROV-028)**: 「고의 또는 과실」은 일곱 경로 전부에 성립하는 진짜 공통 요건인데 + 추정은 특허·실용신안·디자인·품종과 등록된 프로그램에서 **조문상 법률상 추정**, 상표에서 **판례에 의한 추정**, + 배치설계권과 미등록 프로그램에서 **부존재**로 갈린다. +- **손해배상(저)(PROV-029)**: 저작권법 제125조 제6항의 과실 추정은 **「등록되어 있는 권리」에만** 작동한다. + +**어느 기본값을 골라도 §7 총괄표의 그 행이 일부 경로에 대하여 거짓이 된다**(「법률상 추정」이면 추정이 없는 +경로에, 「없음」이면 추정이 있는 경로에). §7은 제5부에 따라 벡터 DB로 변환되는 구조화 산출물이므로 +**거짓값 하나가 후속 에이전트에게 그대로 전달된다.** v4-r6까지의 처리(다수 경로의 값을 적고 §12.7에 공개)는 +**문서 밖에 공개할 뿐 §7 자체는 여전히 틀린 채로 남았다.** + +`경로별 상이 — 법률상 추정`으로 적으면 §7의 `추정` 열이 **참인 값**을 담고, 후속 에이전트에게 +「이 요건의 추정은 경로마다 다르니 §5와 `증명 실무`를 보라」는 신호가 그 자리에서 전달된다. +**오른쪽에 다수 경로의 값을 붙이는 이유**는 열을 값으로 필터하는 질의(`추정 = 법률상 추정`)가 +부분일치로 이 행을 잡을 수 있게 하기 위함이다. + +**이 형식을 쓸 때의 의무 셋.** +1. **경로별 내역을 `증명 실무`에 적는다.** 어느 경로가 어느 값이고 근거 조문·판례가 무엇인지 전부. + 이것을 적지 않으면 `경로별 상이`는 정보가 아니라 회피가 된다. +2. **§12.7에 올리지 않는다.** 이것은 근사가 아니라 **정규형**이므로 미해결 항목이 아니다. + v4-r6까지의 근사 처리와 구별한다. +3. **먼저 §5로 내릴 수 있는지 본다.** 요건 자체가 일부 경로에만 성립하면 그것은 공통 요건이 아니므로 + §5로 내리는 것이 정답이고(원칙 2), 이 형식을 쓸 자리가 아니다. **요건은 전 경로 공통인데 + 추정만 갈리는 경우에 한한다.** + +**한 경로 안에서 증명책임 방향이 갈리면 요건 블록을 나눈다**(v4-r7) — 같은 배치의 손해배상(해)(PROV-033)이 +이 경우였다. 상법 제826조 제1항·제2항이 준용하는 제148조 제1항·제149조 제1항은 **운송인에게 무과실 증명**을 +지우고, 같은 조 제3항이 준용하는 제150조는 반대로 **여객에게 과실 증명**을 지운다. +한 경로 안의 준용 목록 차이이므로 `경로별 상이`로도 담기지 않는다. +**이때는 요건 블록을 둘로 나눈다.** 한 블록에 반대 방향의 두 부담을 담으면 +`주장책임 / 증명책임`이 슬래시 하나·두 값으로 고정되어 있어 어느 쪽도 참이 아니게 된다. + +**증거방법의 진정성립 추정은 이 필드가 아니다**(v4-r7) — 민사소송법 제356조 제1항·제358조의 추정은 +**요건사실이 아니라 증거방법(문서)의 진정성립**에 관한 것이다. 요건 블록의 `추정·전환`은 +「그 요건사실이 추정되는가」만 담으므로, 서증의 진정성립 추정은 **`추정·전환: 없음`으로 두고 +`증명 실무`에 적는 것이 정규 처리다**(배치 13H의 신용카드이용대금 워커가 이 처리를 했다). +`증거법칙적 추정` 값은 **그 요건사실 자체가 조문에 근거해 추정되나 반증으로 깨지는 경우**에 쓴다. + +**게이트 v4.2의 린트 L-f가 이 필드의 값을 검증한다**(v4-r7). v4.0까지는 값을 §7의 `추정` 열로 +문자열 그대로 투영만 했고(`field(blk,'추정·전환') or '없음'`) 값을 보지 않았다. +v4.1이 기본 7값을 검사했고, **v4.2가 `경로별 상이 — <기본값>` 형식을 추가로 허용한다** +(정규식 `^경로별 상이 — (.+)$`로 벗긴 오른쪽이 기본 7값이면 통과). +**허용 집합을 넓히기만 하므로 v4.1에서 PASS하던 문서는 전부 그대로 PASS한다**(실측: 코퍼스 108건 전수, +FAIL 분포 완전 동일, 신규 FAIL 0건). 값 집합을 늘릴 때는 L-f의 상수 `CHU_OK`를 함께 고친다. **4.3 서술 순서** — 시간적·논리적 순서와 그 근거. @@ -1108,7 +1153,7 @@ stub 단계에 아직 없으므로, 그 시점에 스크립트를 돌리면 S1 | L-c | 13판 표제가 §12.4 밖 헤딩에 등장 | **골격 고정 제목과 H1은 예외.** 「확인의 이익」·「청구원인사실」·「당사자적격」은 13판 목차에도 실재하므로 예외를 두지 않으면 §3.2와 §4가 무조건 걸린다 | | L-d | 부인 누출 | §6.1~§6.6 **헤딩**에 `불성립`·`미교부`·`부존재`·`없었다`가 등장하면 실패(v4-r6: §6.6 포함) | | L-e | 출처 잔재 | 검사 범위는 **§1 시작부터 §12 시작 직전까지**. §0과 §12는 출처 기재의 정규 위치다. 금지어 `프롬프트`·`평가서`·`자료 파일`·`.md`·`.pdf`·`_v1`. **`감정평가서`·`감정서`는 증거 명칭이므로 예외**(단어 경계 또는 예외 목록으로 처리) | -| L-f | 블록 필드 (v4-r6 신설) | 모든 `#### R-` 요건 블록에 §4.2의 **10필드가 그 순서대로** 존재, 모든 `#### 6.N.x` 항변 블록에 §6 템플릿의 **8필드가 그 순서대로** 존재. `주장책임 / 증명책임` 값에 슬래시가 **정확히 하나**이고 양쪽이 비어 있지 않음. `추정·전환` 값이 §4.2의 **7값** 중 하나. 결측은 §7 투영에서 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, v4-r5까지 22/22 PASS인 문서에도 남던 침묵 결함이다 | +| L-f | 블록 필드 (v4-r6 신설) | 모든 `#### R-` 요건 블록에 §4.2의 **10필드가 그 순서대로** 존재, 모든 `#### 6.N.x` 항변 블록에 §6 템플릿의 **8필드가 그 순서대로** 존재. `주장책임 / 증명책임` 값에 슬래시가 **정확히 하나**이고 양쪽이 비어 있지 않음. `추정·전환` 값이 §4.2의 **7값** 중 하나이거나 `경로별 상이 — <7값 중 하나>` 형식(v4.2). 결측은 §7 투영에서 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, v4-r5까지 22/22 PASS인 문서에도 남던 침묵 결함이다 | | L-g | 조문 등재 (v4-r6 신설) | §1 시작부터 §12 시작 직전까지의 모든 줄(표 행 포함, 코드펜스 제외)에 등장하는 조문 토큰 `제\d+조(의\d+)?`가 **§12 텍스트에 등장**해야 한다. §12의 범위 표기 `제A조~제B조`·`제A조 내지 제B조`는 전개해 대조한다. 법령명은 대조하지 않는다(같은 번호의 다른 법령은 통과한다 — 느슨한 검사이며 누락만 잡는다). S9가 사건번호에 대해 하는 일을 조문에 대해 한다 | **§7 투영의 멱등성** — §7 총괄표는 손으로 쓰지 않고 §4.2·§5.P#.2·§6에서 스크립트로 투영한다. @@ -1493,7 +1538,8 @@ v4는 형식을 바꾸지 않았으므로 **기존 문서를 개정할 필요가 | v4-r3 | 2026-09-04 20:30 | 112,965 B | `e05a535d065d` | `..._v4_r3_outdated.md` | 배치 9·10 잔여 후보 정비. 12.4의 2건 | | v4-r4 | 2026-09-04 20:42 | 122,923 B | `e20bb6000fab` | `..._v4_r4_outdated.md` | r2·r3에 대한 적대적 검증의 지적 반영. 12.5의 5건 | | v4-r5 | 2026-09-05 13:03 | 137,800 B | `79a64a5bbcce` | `..._v4_r5_outdated.md` | 배치 11 결함 보고. 12.8의 1건(+프롬프트 2건) | -| v4-r6 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가 — 아래 주) | (아직 없음) | 배치 12H 패치 후보 반영. 12.9의 11건 + 게이트 v4.1 | +| v4-r6 | 2026-09-09 | 153,940 B | `a93d093ca6be` | `..._v4_r6_outdated.md` | 배치 12H 패치 후보 반영. 12.9의 11건 + 게이트 v4.1 | +| v4-r7 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가 — 아래 주) | (아직 없음) | 배치 13H 보고. 12.10의 3건 + 게이트 v4.2 | **보존 파일명은 2026-09-05에 전건 정리했다.** 위 표의 ``은 이제 그 파일이 담은 리비전과 일치한다. 정리 전에는 `..._v4_orig.md`(r0)·`..._v4_old.md`(r0a)·`..._v4_9_4_outdated.md`(r1)· @@ -1813,3 +1859,40 @@ v.5-r0(131,186 B)보다 앞선 초안이어서 리비전 표에 없다. **리비 - Stage 4의 stub 파일과 `sections/§0.md`의 관계 — 워커가 무리 없이 처리했고 산출물에 영향이 없다. - §4.2 `요건분류` 6값이 확인의 소 소송요건에 정확히 맞지 않는다는 지적(기타 권리확인) — 12.6의 기존 보류 (증서진부확인)와 같은 뿌리이며, 「소송요건」 값이 실재하므로 실행에 지장이 없다. 12.6에 그대로 둔다. + +### 12.10 v4-r7에서 바꾼 것 (3건 + 게이트 v4.2) + +배치 13H(2026-09-09, 10건 병렬: 이행 8·재판공격 2)의 결함 보고 중 +**§4.2 `추정·전환`의 단일값 문제**를 반영했다. 근거는 `tmp/rf_draft/_shared/patch_candidates_b13home.md` 1.3. +**워커 넷이 서로 다른 사건종류에서 같은 벽에 부딪혔다**(PROV-028·029·033·038). + +1. **`추정·전환`에 `경로별 상이 — <다수 경로의 값>` 형식을 신설했다.** + §4의 진짜 공통 요건인데 추정의 근거가 경로마다 다르면 어느 기본값을 골라도 §7의 그 행이 + 일부 경로에 대하여 거짓이 된다. v4-r6까지의 처리(다수 값 + §12.7 공개)는 문서 밖에 공개할 뿐 + **§7 자체는 틀린 채로 남았다.** 새 형식은 §7에 참인 값을 담고 후속 에이전트에게 신호를 준다. + 쓸 때의 의무 셋(경로별 내역을 `증명 실무`에, §12.7에 올리지 않음, 먼저 §5로 내릴 수 있는지 확인)을 함께 정했다. +2. **한 경로 안에서 증명책임 방향이 갈리면 요건 블록을 나눈다는 규칙을 명시했다.** + 손해배상(해)의 상법 제826조가 준용 목록에 따라 운송인·여객으로 부담을 뒤집는 경우다. + `경로별 상이`로도 담기지 않고, `주장책임 / 증명책임`이 슬래시 하나·두 값으로 고정되어 있어 + 한 블록에 반대 방향을 담으면 어느 쪽도 참이 아니게 된다. 워커는 자기심사에서 발견해 블록을 신설했다. +3. **증거방법의 진정성립 추정은 이 필드가 아님을 명시했다.** + 민사소송법 제356조·제358조의 추정은 요건사실이 아니라 증거방법에 관한 것이므로 + `추정·전환: 없음` + `증명 실무` 기재가 정규 처리다. `증거법칙적 추정` 값은 + **그 요건사실 자체가** 조문에 근거해 추정되나 반증으로 깨지는 경우에 쓴다. + 두 값의 경계가 정해져 있지 않아 배치 13H의 신용카드이용대금 워커가 판단으로 처리했던 자리다. + +**게이트 v4.2** — L-f의 `추정·전환` 검사에 `^경로별 상이 — (.+)$` 형식을 추가 허용했다(`CHU_MIXED`). +**허용 집합을 넓히기만 하는 개정이다.** + +**v4.2의 회귀 검증 (2026-09-09 실측).** 코퍼스 **108건 전수**에 v4.1과 v4.2를 각각 돌려 대조했다. + +- **v4.1 PASS 23 / v4.2 PASS 23.** 변동 없음. +- **항목별 FAIL 분포가 완전히 같다**(L-f 62 · L-g 61 · S1 6 · S10b 5 · S11 8 · S13 9 · S2c 9 · S2a 8 · + S2b 7 · S5 5 · S9 5 · S7 4 · S8 2 · S14 1). **기존 PASS → 신규 FAIL 0건.** +- 예상된 결과다. 검사를 느슨하게 하는 방향의 개정은 구조적으로 회귀를 낼 수 없다. + 그래도 측정한 이유는 **「낼 수 없다」와 「내지 않았다」가 다르기 때문**이다(12.8과 같은 기준). + +**이번에 반영하지 않은 배치 13H 항목**은 12.11로 옮기지 않고 `patch_candidates_b13home.md`에 그대로 둔다. +특히 다음 둘은 열거값 확장이 필요해 우선순위를 뒤로 미뤘다 — +§6 `주문에 미치는 영향`과 §3 `절차효과`에 **결정으로 재판하는 절차의 「신청 각하」·「신청 기각」이 없다**(준재심), +§3.3 판정 규칙 ①에 **「재판상 청구가 없으면 소멸한다」 문언형**이 없다(손해배상(해)). diff --git a/요건사실론_문서_공통골격_v4_r6_outdated.md b/요건사실론_문서_공통골격_v4_r6_outdated.md new file mode 100644 index 0000000..b2d8c3f --- /dev/null +++ b/요건사실론_문서_공통골격_v4_r6_outdated.md @@ -0,0 +1,1815 @@ +# 요건사실론 문서 공통 골격 v4 + +> 대상: `case_kinds.md`에서 가사소송·가족관계등록·행정소송을 제외한 민사 사건종류 전체 +> 용도: 사건종류별 문서의 편제 규범 + 복사용 템플릿 + 기계층 스키마 + 품질게이트 +> 입력: `사건종류_요건사실론문서자료/요건사실문서자료_<사건종류>_0|1|2.md`, `청구취지작성규칙_<사건종류>_v*.md` +> (자료 파일과 청구취지작성규칙 문서는 같은 폴더에 있다. 처리가 끝난 사건의 파일은 +> `사건종류_요건사실론문서자료_done/`·`사건종류_청구취지작성규칙문서_done/`으로 이관되며 **그 폴더도 입력이다** — v4-r6) +> 전신: `요건사실론_문서_공통골격_v3.md` (2026-09-02) / `요건사실론_문서_공통골격_v2.md` (2026-08-27) +> 변경 요약: v1 대비는 제9부, v2 대비는 제10부, **v3 대비는 제11부** +> **판 안에서의 개정 이력은 제12부.** 파일명이 `v4`로 같아도 내용은 개정될 수 있으므로, +> 이 문서를 읽는 세션은 **제12부의 최신 리비전 번호와 날짜를 먼저 확인**한다. +> 현재 리비전: **v4-r6 (2026-09-09)** +> v4 개정 근거: 배치 6(14개 사건종류 병렬 생성)의 교차 수렴 결함 보고 +> `요건사실론_1차드래프트생성프롬프트_v5_패치안.md` 부록 C, +> `plans/batch6-요건사실론-1차드래프트-병렬-v4.md` +> +> **`schema_version`은 v4에서도 `"3.0.0"`이다.** v4의 개정은 오기 시정과 판정 경계 완화뿐이고 +> 문서 형식(제5부 5.1 스키마)을 바꾸지 않았다. 골격 문서의 판(v3→v4)과 산출물의 데이터 스키마 판을 +> 혼동하지 않는다. 골격 판이 v4라는 이유로 `"4.0.0"`을 쓰지 않는다. +> +> **주의 — 이것은 게이트가 잡아주지 않는다.** 제6부 L1 표준 구현체의 S1은 front matter의 +> **필수 키 존재만** 확인하고 `schema_version`의 값을 대조하지 않는다(실측: `"4.0.0"`으로 바꾼 +> 문서가 전 항목 PASS. 현행 코퍼스의 `"2.0.0"` 문서 50건도 전부 S1 PASS). +> 값 검사를 추가하면 그 50건이 즉시 FAIL로 돌아서므로 v4에서는 넣지 않았다(제11부 11.2와 같은 기준). +> `"3.0.0"` 유지는 **집필 규율로** 지킨다. + +--- + +## 제1부. 설계 원칙 + +### 원칙 1. 사건종류명은 청구권이 아니라 표지다 + +`관리비 청구`는 집합건물 공용분담금·규약상 전유관리비·공동주택관리법 관리비·장기수선충당금·임대차 약정·위탁 용역대금의 표지이고, `계약금 청구`는 해약금 해제·법정해제 원상회복·위약금·가계약금 부당이득·합의해제 정산의 표지다. + +문서는 §1에서 표지를 청구경로로 해체한 뒤 §4(공통)와 §5(경로별)로 이층화한다. 배타적인 경로의 요건을 §4로 승격하면 문서가 무너진다. + +### 원칙 2. 공통 요건이 없으면 만들지 않는다 + +`청산금·채무인수금·체당금·추심금·출자금 청구 등`처럼 이질적 청구권을 묶은 표지에서는 경로 간 공통 요건이 실재하지 않는다. 이때 §4는 `해당 없음 — 경로 간 공통 요건 없음. §5(경로별 분기 요건사실)가 기본 단위`로 두고, 없는 공통성을 만들지 않는다. 이는 원칙 1의 필연적 귀결이다. + +### 원칙 3. 요건은 증명책임 배분의 결과물이되, 요건과 사실은 1:1이 아니다 + +각 요건은 권리근거·권리장애·권리멸각·권리저지 중 하나로 분류하고, 그 분류가 §4(원고)와 §6(피고)의 배치를 결정한다. + +다만 요건과 주요사실의 대응은 다음 세 경우에 1:1이 아니다. +- **평가적 요건**(사해성, 선의·악의, 과실, 정당한 사유, 배임적 행위)은 복수의 평가근거사실을 필요로 한다. +- **하나의 사실이 복수 요건을 지지**할 수 있다(같은 계약서가 성립과 내용 특정을 동시에 뒷받침). +- **택일적 요건**은 어느 하나로 족하다(최고 또는 이행거절 의사의 명백한 표시). + +기본 서술 단위는 `1요건 1주요사실`을 유지하되, 위 세 경우는 §4.2의 지정 필드로 표시한다. + +### 원칙 4. 부인과 항변을 구별한다 + +상대방이 주장한 권리발생사실이 존재하지 않는다는 주장은 **부인**이고 증명책임은 원래 부담주체에 남는다. 계약 불성립, 금원 미교부, 의사표시 부존재는 부인이지 항변이 아니다. 무효·취소·소멸·이행거절만이 적극적 항변이다. + +§6은 6.0에서 이 구별을 먼저 세우고, 이후 3분류를 전개한다. + +### 원칙 5. 소송요건 흠결의 효과는 각하 하나가 아니다 + +관할위반은 관할법원으로 **이송**하고(민사소송법 제34조 제1항), 소장의 필요적 기재사항·인지 흠결은 재판장의 보정명령을 거쳐 **소장각하명령**이며(제254조), 불복방법도 즉시항고로 다르다. 당사자적격·소의 이익 흠결이 **소각하판결**이다. + +§3의 각 항은 `절차효과` 값을 반드시 가진다. + +### 원칙 6. 기간제한은 성질에 따라 각하와 기각으로 갈린다 + +- **출소기간**(민법 제406조 제2항 채권자취소권, 제204조 제3항 점유보호청구권, 상법 제376조 제1항 주주총회결의취소) 도과 → **소각하** +- **재판외 행사로 족한 제척기간**(민법 제582조 하자담보책임) 및 **소멸시효 완성** → 본안 판단으로 **청구기각** +- **재판외 행사도 가능하지만 별도 조문이 같은 기간을 소 제기 자체의 기간으로 다시 거는 경우** + (언론중재법 제26조 제3항 전단형) → **소 국면에서는 출소기간이고 도과 시 소각하**, + 재판외 청구 국면에서는 제척기간으로 작동한다. **행사방법만 보고 이분하지 않는다**(v4-r4 신설). + +이 축이 §3과 §6 사이에 서지 않으면 요건사실 문서가 절차와 본안을 뒤섞는다. + +### 원칙 7. 판결효과는 소의 유형으로 일반화되지 않는다 + +`형성판결 = 대세효·소급효`는 성립하지 않는다. 사해행위취소는 상대적 효력이고, 공유물분할·경계확정은 처분권주의가 배제되는 형식적 형성이며, 청구이의는 집행력 배제일 뿐이다. §9는 효력객체·인적범위·시점·기판력·집행력을 분리해 기술한다. + +### 원칙 8. 학설과 판례가 갈리면 본문 요건은 판례로 확정한다 + +요건사실은 재판규범이다. 학설 대립은 **§12.6(학설)** 에 격리한다. 이는 법령과 판례의 우열을 말하는 것이 아니다. +(v2는 이 자리를 §12.5로 적어 제2부 §12 항 목록(12.5 = 웹 자료, 12.6 = 학설)과 충돌했다. 배치 4에서 10/10 워커가 지적했다.) + +권위의 위계는 `헌법 > 법률·명령 > 헌법재판소 결정 > 대법원 전원합의체 > 대법원 > 하급심 > 학설`이며, 헌법재판소 결정이 구제방법 자체를 제한하는 경우가 있다. 사과광고 청구는 헌법재판소 1991. 4. 1. 89헌마160에 의해 민법 제764조의 '명예회복에 적당한 처분'으로 명할 수 없다. + +### 원칙 9. 절 번호 고정의 목적은 생성 앵커다 + +절 번호를 137종에서 고정하는 실질 이유는 횡단 검색이 아니라 **절 단위 생성과 절 단위 재생성**이다. 사건종류 × 절 번호를 한 단위로 생성하면 60KB 일괄 생성보다 정합성이 높고, 품질게이트 실패 시 해당 절만 재호출할 수 있다. + +의미 검색은 절 번호가 아니라 `requirement_id`·`element_class`·`chunk_kind` 같은 의미 필드로 한다. 절 번호는 좌표이지 의미 ID가 아니다. + +--- + +## 제2부. 공통 골격 (§0 ~ §12) + +절 번호와 제목은 사건종류 전체에서 **고정**한다. 해당 없는 절은 삭제하지 않고 아래 세 값 중 하나와 사유를 남긴다. + +| 값 | 의미 | +|---|---| +| `해당 없음 — <사유>` | 이 사건종류에 법적으로 적용되지 않음 | +| `UNKNOWN — <사유>` | 적용되나 자료가 부족해 확정 못 함 | +| `UNVERIFIED — <사유>` | 서술했으나 공식 원문 검증을 통과하지 못함 | + +세 값을 혼용하지 않는다. 검색 시 `해당 없음`은 정상, `UNKNOWN`·`UNVERIFIED`는 작업 잔여로 취급된다. + +| 절 | 제목 | 성격 | +|---|---|---| +| §0 | 문서 메타 (front matter) | 필수 | +| §1 | 재판모델과 청구경로 지도 | 필수 | +| §2 | 소송물·주문·집행 연결 | 필수 | +| §3 | 소송요건과 절차효과 | 필수 | +| §4 | 공통 청구원인사실 | 필수(공통 없으면 `해당 없음`) | +| §5 | 경로별 분기 요건사실 | 경로 2개 이상이면 필수 | +| §6 | 상대방의 응답: 부인·항변·재항변 | 필수 | +| §7 | 주장·증명책임 총괄표 | 필수 | +| §8 | 증거계획 | 필수 | +| §9 | 판결효과·보전·집행 | 필수 | +| §10 | 서면 변환 | 필수 | +| §11 | 체크리스트·금지규칙·오류 카탈로그 | 필수 | +| §12 | 근거자료와 검증상태 | 필수 | + +**분량에 관하여** — v1의 절별 백분율 목표는 폐기한다. 합산이 100%를 넘어 제약으로 작동하지 않았고, 실제 산출물과도 배치됐다. `요건사실론_매매를원인으로한소유권이전등기청구_v2.md`는 63KB·최상위 39절이고 그중 16절이 항변 영역이다. 항변이 최대 비중을 차지하는 것이 정상이며, §6이 §4보다 길어도 결함이 아니다. 분량 대신 **절별 필수 구성요소의 존재**로 완성도를 판정한다(제6부). + +--- + +### §0. 문서 메타 (front matter) + +**파일 선두 레이아웃을 고정한다(v3 신설).** 코퍼스 실측 결과 50건 중 40건이 아래 순서이고 10건이 +H1을 앞세워 `---`가 파일 첫 바이트가 아니었다. 제5부의 Weaviate 적재는 `---`가 파일 첫 바이트일 것을 +전제하므로 다수형을 정본으로 못박는다. + +``` +1행 --- ← 파일의 첫 바이트. 앞에 어떤 줄도 두지 않는다 +… (YAML front matter) +N행 --- ← front matter 종료 +N+1행 (빈 줄) +N+2행 # 요건사실론: <사건종류명> ← H1, 문서 전체에 하나 +N+3행 (빈 줄) +N+4행 ## §0. 문서 메타 (front matter) ← §0 절 헤딩. front matter가 있어도 이 헤딩을 생략하지 않는다 +``` + +`## §0.` 헤딩은 front matter로 대체되지 않는다. §0은 제2부가 고정한 13개 절 제목의 하나이므로 +본문 헤딩으로도 실재해야 하고, 게이트 S2의 기대 헤딩 목록에 반드시 포함된다(v2는 이를 정하지 않아 +`## §0.` 헤딩이 통째로 빠진 문서가 S1~S14를 전부 통과한 사례가 나왔다). +`## §0.` 아래에는 front matter의 요약이나 `해당 없음 — front matter에 기재` 한 줄을 둔다. + +YAML 키는 **전부 ASCII**로 쓴다. Weaviate property 이름은 GraphQL 식별자 문법 `^[_A-Za-z][_0-9A-Za-z]*$`를 따라야 하므로 한글 키는 클래스 생성 단계에서 거부된다. 값만 한국어로 쓴다. + +```yaml +schema_version: "3.0.0" +case_kind_id: "MON-001" # 카탈로그 확정 전에는 PROV-001 +case_kind_name: "대여금 청구" +case_kind_slug: "daeyeogeum-cheonggu" # 파일명·경로·ID의 유일키 +aliases: ["대여금반환청구"] +case_family: "이행의 소" +dispute_type: "금전의 지급을 구하는 소" +action_type: "이행" # 이행|확인|형성|형식적형성|집행관계|재판공격 +overlays: [] # 등기·의사진술 | 원상회복·손해배상병존 +claim_paths: + - id: "P1" + name: "소비대차에 기한 대여금반환청구" + authorities: ["LAW:민법:598", "LAW:민법:603"] + has_branch: true # true이면 §5에 5.P1 블록이 존재해야 함 + - id: "P2" + name: "준소비대차에 기한 반환청구" + authorities: ["LAW:민법:605"] + has_branch: true +path_relation: "청구권경합" # 단일|청구권경합|법조경합|택일|독립 +joinder_mode: "선택적" # 없음|단순|선택적|예비적 +filing_deadline: + kind: "없음" # 없음|출소기간|제척기간|소멸시효 + basis: null + period: null +claim_rule_doc: "청구취지작성규칙_대여금청구_v1.md" +claim_rule_pattern_ids: ["3.1", "3.2"] # 규칙문서의 실재 절 번호 +source_materials: + - { path: "사건종류_요건사실론문서자료/요건사실문서자료_대여금청구_1.md", origin: "gpt" } + - { path: "사건종류_요건사실론문서자료/요건사실문서자료_대여금청구_2.md", origin: "grok" } +adjacent_case_kinds: ["MON-041", "MON-042"] # 이름이 아니라 ID +law_as_of: "2026-08-27" +verification_status: "QUALIFIED" # VERIFIED|QUALIFIED|UNVERIFIED +doc_version: "v2" +content_hash: "sha256:…" +``` + +**설계 주석** + +- `claim_rule_pattern_ids`는 v1의 `T코드`를 대체한다. 실측 결과 T코드 체계를 쓰는 청구취지작성규칙 문서는 `청구취지작성규칙_토지의인도를구하는소.md`(T1~T17) **하나뿐**이고, 나머지는 `Branch A~G`, `3.1/3.2 분기`, `0.1~0.5 최상위 원칙` 등 서로 다른 명명을 쓴다. 코퍼스 전역 T코드 키는 존재하지 않으므로 규칙문서의 **실재 절 번호**로 참조한다. +- `source_materials`는 경로와 출처모델을 함께 기록한다. 접미사 `_0|1|2`는 각각 perplexity·gpt·grok이며, 세 파일이 항상 존재하지는 않는다(실측: 가등기·경정등기·계약금은 0·1·2, 관리비·교환은 1·2만 존재). +- `case_kind_slug`가 유일키인 이유는 사건명 직접 사용이 이미 충돌을 만들고 있기 때문이다(`요건사실문서자료_관리비 청구_1.md`와 `요건사실문서자료_관리비청구_2.md`, `교환・교환약정을 원인으로 한 소유권이전등기 청구_1.md`와 `교환교환약정을원인으로한소유권이전등기청구_2.md`가 각각 같은 사건이다). 민사 사건명의 상당수가 `・`·`·`·괄호·공백을 포함한다. +- `case_family`는 `case_kinds.md`의 소송 대분류 값을 그대로 쓰고, `action_type`은 §1.0의 판정값을 쓴다. + 둘은 갈릴 수 있다. `case_kinds.md`는 청구이의·제3자이의·재심·준재심·제권판결에 대한 불복의 소를 + 형성의 소에 두지만 `action_type`은 각각 집행관계·재판공격이다. 갈리는 경우 §1.0에 그 괴리를 한 줄로 + 기록하고, 어느 값도 상대에 맞추어 고치지 않는다(v3 신설. v2에서는 프롬프트 층의 오버라이드로 처리했다). +- `dispute_type`은 `case_kinds.md`의 **분쟁 유형 셀 값**을 그대로 쓴다. **분쟁 유형 셀이 비어 있으면 + 소송 대분류 값을 그대로 쓴다**(v4-r6). 형성의 소 행이 그렇다 — 분쟁 유형 셀은 비어 있고 사건 종류 셀에 + 9개 leaf가 있으므로, 그 9건의 `dispute_type`은 `"형성의 소"`다. 제8부 8.2 규칙 2의 빈 셀 승격은 + **사건 종류 셀**이 비어 있는 3개 행에 관한 것이고, 이것은 **분쟁 유형 셀**이 비어 있는 경우이므로 + 승격 대상이 아니다. 두 경우를 섞지 않는다(배치 12H의 경계확정 청구가 규칙 부재를 보고했다). +- 문서 단위 `판례_최종확인일`은 제거한다. 일부 판례만 확인하고 전체를 최신으로 표시하는 은폐가 가능하다. 신선도는 요건별 `authority_ids`가 가리키는 권위 레지스트리 `checked_at`의 **최솟값**으로 산출한다. + +--- + +### §1. 재판모델과 청구경로 지도 + +**1.0 재판모델 분류** + +먼저 여섯 모델 중 하나를 확정한다. 이 값이 §2·§3·§9의 내용을 결정한다. + +| 모델 | 해당 사건 예 | 구조적 특징 | +|---|---|---| +| 이행 | 금전·인도·의사진술 청구 전반 | 급부명령, 집행방법 필수 | +| 확인 | 채권·채무·물권·지위·권리 확인 | 확인의 이익, 기판력만 | +| 형성 | 사해행위취소, 주주총회결의취소, 재심 | 법정 형성요건, 출소기간 | +| 형식적 형성 | 경계확정, 공유물분할 | 처분권주의 배제, 법원이 주문에 구속되지 않음 | +| 집행관계 | 청구이의, 제3자이의 | 집행력 배제가 목적, 기준시(변론종결) | +| 재판공격 | 재심, 준재심, 제권판결 불복 | 청구원인이 2단(재판공격 요건 + 본안) | + +**재판공격 모델은 §4를 2단으로 구성한다.** 제1단은 공격대상 재판의 특정·법정사유·불변기간·보충성이고, 제2단은 본안 요건이다. 재심은 민사소송법 제451조·제456조, 제권판결 불복은 제490조·제491조(안 날부터 1개월의 불변기간), 청구이의는 민사집행법 제44조 제2항(변론종결 후 사유)이 각 제1단을 규율한다. + +**1.1 청구경로 목록** + +| 경로 ID | 청구권 명칭 | 근거 조문·판례 | 전형 사실관계 | 소송물 | 주된 주문 형태 | +|---|---|---|---|---|---| + +**1.2 경로 관계** + +두 축으로 분리해 기록한다. v1의 `배타|병존|경합|단일` 단일 필드는 사실의 배타성과 청구권의 경합을 구별하지 못했다. + +| 축 | 값 | 의미 | +|---|---|---| +| `path_relation` | 단일 / 청구권경합 / 법조경합 / 택일 / 독립 | 실체법상 청구권 상호관계 | +| `joinder_mode` | 없음 / 단순 / 선택적 / 예비적 | 소송상 병합형태 | + +**병합형태 판정 규칙** — 하나의 사실관계가 두 청구권을 **동시에** 충족하면 청구권경합이고 **선택적 병합**이다. 예비적 병합은 논리적으로 **양립할 수 없는** 청구에 순위를 붙이는 장치다. 두 경로가 양립 불가능할 때 비로소 예비적 병합이다. + +**1.3 인접 사건종류와의 경계** — 구별 기준은 청구권의 발생원인이지 금원의 명칭이 아니다. + +**1.4 이 문서가 다루지 않는 것** — 명시적 negative scope. 헌법재판소 결정에 의한 구제한계가 있으면 여기에 적는다. + +--- + +### §2. 소송물·주문·집행 연결 + +**2.1 소송물의 특정** + +기준은 구실체법설(대법원의 일관된 태도)이다. 폐기하지 않는다. 다만 소송물의 단일·복수가 판례로 확립된 유형은 사건번호와 함께 기록한다. 예컨대 말소등기청구에서 복수의 무효사유는 별개 소송물이 아니라 공격방어방법이다(대법원 1982. 12. 14. 82다카148). 이 법리는 말소등기 계열 사건종류 전부에 영향을 미친다. + +기록 항목: `소송물 식별기준` / `판례 근거` / `기판력 범위` / `소변경 요부` + +**2.2 요건사실과 주문의 대응** + +| 충족된 요건 조합 | 주문 유형 | 부대청구 주문 문언 | 규칙문서 참조 절 | +|---|---|---|---| + +`부대청구 주문 문언` 열은 §4.4 구간표에서 도출한 값을 그대로 옮긴다. 두 곳의 값이 일치해야 한다. + +**2.3 주문 유형별 유의사항** + +- **단순이행** — 급부의 특정 +- **상환이행** — 동시이행항변권(민법 제536조)은 **연기적 항변권**이므로 피고가 원용해야 상환이행판결이 나온다. 원고가 청구원인에서 반대급부의 이행·이행제공을 주장·증명할 필요가 없다. 선이행의무자인 경우만 예외다. +- **의사진술** — 민사집행법 제263조에 의한 의제. 별도 집행행위 불요 +- **형성·형식적 형성** — 형식적 형성에서 법원은 당사자가 제시한 분할방법·경계선에 구속되지 않는다 +- **구제한계** — 요건이 충족되어도 주문으로 명할 수 없는 구제가 있다(사과광고, 헌재 89헌마160) + +--- + +### §3. 소송요건과 절차효과 + +본안 전 판단 사항만 담는다. 각 항은 아래 **다섯 필드**를 모두 가진다. + +| 필드 | 값 | +|---|---| +| `사유의 성질` | 관할 / 소장 요건·인지 / 당사자적격 / 소의 이익 / 기간 / 중복소송·기판력 | +| `조사방식` | 직권조사 / 항변사항 / 혼합 | +| `증명책임` | 원고 / 피고 / 해당 없음 | +| `보정 가능성` | 가능(기한) / 불가 | +| `절차효과` | 이송 / 보정명령 후 소장각하명령 / 소각하판결 / 본안기각 | + +`조사방식`과 `증명책임`은 독립이다. 채권자취소권의 제척기간은 직권조사사항이면서도 기간 도과의 증명책임은 상대방(피고)에게 있다(대법원 2023. 4. 13. 2021다309231). + +**§3의 항은 R-ID를 채번하지 않는다**(v4-r6). 소송요건이 요건사실로 다루어져야 하는 경우 — +채권자대위의 피보전채권·보전의 필요성·피대위권리·채무자의 불행사, 확인의 소의 「확인의 이익의 기초사실」, +장래이행의 소의 「미리 청구할 필요」 등 — 그 요건은 `요건분류: 소송요건`인 R-ID로 **§5의 해당 경로에** +(경로 전용이면 `5.P#.2`, 전 경로 공통이면 §4) 둔다. §3의 해당 항은 그 R-ID를 **참조만** 한다. +같은 사유가 §3과 §5에 두 번 나타나는 것은 중복이 아니라 연결이다 — §3은 절차효과(각하·이송)를, +§5는 요건사실과 증명책임을 담는다. §6.6의 블록이 `대상요건`으로 가리키는 것도 이 R-ID다(S7). + +**3.1 당사자적격** + +당사자적격과 본안의 권리귀속을 분리한다. 이행의 소에서는 자기가 이행청구권자라고 **주장하는** 자에게 원고적격이 있고, 실제 권리 존부는 본안 문제다(대법원 2005. 10. 7. 2003다44387). + +- **적격 문제**: 제3자 소송담당(채권자대위, 추심), 선정당사자, 총유재산 관련 사원총회 결의 +- **본안 문제**: 전부금 청구에서 전부명령의 유효 여부, 양수금 청구에서 채권양도의 효력 + +**3.2 소의 이익(확인의 이익 포함)** (전 재판모델에서 검토, 값이 없으면 3분 값) + +v2는 이 항을 「확인의 이익」으로 좁혀 확인·형성 전용으로 두었다. 그 결과 **이행의 소인데 +권리보호이익이 본안보다 먼저 걸리는 사건종류**가 담길 정규 자리를 잃었다. 대표적으로 +재산분할·재산승계를 원인으로 한 소유권이전등기 청구는 부동산등기법 제23조 제3항의 단독신청 +가능성과 가사소송법 제41조의 기존 집행권원 때문에 소의 이익이 첫 쟁점이 된다. v3은 항 제목을 +일반화하여 이 자리를 만든다. + +기재 대상: +- **확인의 소** — 대상적격, 방법선택의 적절성(이행의 소를 제기할 수 있으면 확인의 이익 부정), + 즉시확정의 이익. 대상은 원칙적으로 **현재의 권리·법률관계**이나, **증서의 진정여부를 확인하는 소는 + 민사소송법 제250조가 사실의 확인을 예외적으로 허용하는 법정 유형**이다. 해당 사건종류 문서는 이 예외를 + 명시한다. +- **이행의 소** — 권리보호의 이익·필요. 더 간이한 절차가 열려 있는지(단독신청 등기, 기존 집행권원, + 공탁), 이행기 미도래 시 장래이행의 소의 요건(민사소송법 제251조), 집행 불능이 명백한 청구인지. + 다투어지지 않는 사건에서는 `해당 없음 — 이행의 소로서 권리보호이익이 다투어지지 않음`으로 한 줄을 남긴다. +- **형성·형식적 형성·집행관계·재판공격** — 형성의 이익, 집행권원의 존재와 집행 미종료, 대상적격·보충성. + +항 제목이 일반화되었으므로 이 항은 **삭제 대상이 아니다.** 값이 없으면 3분 값 한 줄을 남긴다. +게이트 S12는 3분 값이 놓인 항에 5필드를 요구하지 않는다(제6부 S12). + +**3.3 기간제한: 출소기간·제척기간·소멸시효** + +**모든 재판모델에서 필수 항이다.** v1이 이 항을 형성의 소 전용으로 배치한 것은 오류였다. 이행의 소에도 기간이 승패를 가르는 사건이 다수 있다. + +| 사건종류 | 근거 | 기간 | 성질 | 효과 | +|---|---|---|---|---| +| 점유회수(반환)청구 | 민법 제204조 제3항 | 1년 | 출소기간 | 소각하 | +| 유류분반환 청구 | 민법 제1117조 | 1년 / 10년 | **소멸시효** | 기각 | +| 재산상속회복 청구 | 민법 제999조 제2항 | 3년 / 10년 | **출소기간(제소기간)** | **소각하** | +| 정정보도·반론보도 청구 | 언론중재법 제14조 제1항(반론보도는 제16조 제3항 준용) + **제26조 제3항 전단** | 3개월 / 6개월 | **출소기간**(판정 규칙 ③) | **소각하** | +| 사해행위취소 청구 | 민법 제406조 제2항 | 1년 / 5년 | 출소기간 | 소각하 | +| 주주총회결의취소의 소 | 상법 제376조 제1항 | 2개월 | 출소기간 | 소각하 | +| 제권판결 불복의 소 | 민사소송법 제491조 | 1개월(불변기간) | 출소기간 | 소각하 | +| 하자보수비 청구 | 민법 제582조·제670조·제671조 | 조문별 | 재판외 행사 가능 제척기간 | 기각 | + +**판정 규칙**(v4-r4에서 3분기로 고쳤다. 종전의 2분기는 아래 ③을 담지 못했다) + +① **소 제기로만 행사할 수 있다** → 출소기간. 도과 시 **소각하**. +② **재판외 행사로 족하다** → 제척기간. 도과 시 **본안 기각**. +③ **재판외 행사도 가능하지만, 별도의 조문이 같은 기간을 「소는 … 기간 이내에 제기하여야 한다」는 + 문언으로 소 제기 자체의 기간으로 다시 건다** → **소 국면에서는 출소기간이고 도과 시 소각하**이며, + 재판외 청구 국면에서는 제척기간으로 작동한다. 언론중재법 제26조 제3항 전단이 그 예다. + `filing_deadline.kind`는 문서가 다루는 국면(소 제기)을 기준으로 **`출소기간` 단일값**을 쓴다. + +**행사방법만 보고 ①②로 이분하지 마라.** 재판외 청구가 가능하다는 사실은 ③을 배제하지 않는다. +조문에 소 제기 기간을 다시 거는 규정이 있는지를 **반드시 별도로 확인**한다(13판 194면의 판별기준). +소멸시효 완성도 본안 기각이며, 항변사항이므로 §6.4에서 다룬다. + +**v3 정정 2건** (배치 4 지적) + +- **상속회복청구권(민법 제999조 제2항)** — v2는 「제척기간 / 기각」으로 적었으나 판례는 이를 + **제소기간**으로 보아 법원의 직권조사사항으로 삼고 기간 경과 후의 소를 **부적법 각하**한다 + (대법원 1993. 2. 26. 선고 92다3083 판결). 성질 열과 절차효과 열이 모두 틀렸다. +- **유류분반환청구권(민법 제1117조)** — v2는 「제척기간」으로 적었으나 조문 표제가 「소멸시효」이고 + 판례도 1년의 기간을 소멸시효로 본다(대법원 1993. 4. 13. 선고 92다3595 판결). + `filing_deadline.kind`의 열거값에 「소멸시효」를 추가한 것이 이 때문이다(제5부 5.1). + 소멸시효이므로 **항변사항**이고, 직권으로 참작하지 않는다. 효과는 본안 기각으로 v2와 같다. + +**v4 정정 1건** (배치 10 지적, 2026-09-04) + +- **정정보도·반론보도 청구(언론중재법)** — v4 초판은 「제척기간 / 기각」으로 적었으나 틀렸다. + 제14조 제1항이 정한 3개월·6개월은 재판외 청구에도 걸리는 제척기간이지만, + **제26조 제3항 전단이 「제1항의 소는 제14조제1항(제16조제3항에 따라 준용되는 경우를 포함한다) + 및 제17조제1항에 따른 기간 이내에 제기하여야 한다」고 정해 같은 기간을 소 제기 자체의 기간으로 + 다시 건다**(현행 원문 확인). **위 판정 규칙 ③에 해당한다.** 반론보도가 제14조 제1항의 기간에 + 걸리는 연결고리는 **제16조 제3항의 준용**이다. 따라서 **소로 행사하는 국면의 도과 효과는 소각하**이고, + `filing_deadline.kind`는 `출소기간` 단일값이다. + **재판외 청구만 문제 되는 국면에서는 제척기간으로 작동한다.** +- **각하의 재판형식이 청구별로 다르다.** 제26조 제6항에 따라 **정정보도 청구의 소는 민사소송법 절차**로 + 재판되므로 도과 시 **판결로 각하**하고, **반론보도·추후보도 청구의 소는 민사집행법 가처분절차**이므로 + **결정으로 각하**한다. 정정보도청구 등 사건 심판규칙 제3조 제2항이 「신청」을 「결정」으로 각하하게 하는 것은 + 후자에 정면으로 맞는다. §2.3·§3.3·§10.3에서 이 구별을 유지한다. +- **이 판정을 정면으로 판시한 대법원 판결은 확인되지 않았다.** 산출물은 그 사실을 §12.7에 남긴다. + +`filing_deadline.kind`는 `없음 | 출소기간 | 제척기간 | 소멸시효` 4값이다. 기간 제한이 실재하는데 +대응 열거값이 없다는 이유로 `없음`을 쓰지 않는다. 기계 판독 시 「기간 제한 없음」으로 오독된다. + +**3.4 관할·중복소송·기판력** — 관할위반의 원칙적 효과는 **이송**(민사소송법 제34조 제1항)이지 각하가 아니다. + +**3.5 소장 요건과 인지** — 필요적 기재사항·인지 흠결은 보정명령 후 **소장각하명령**(제254조)이며 불복은 즉시항고다. 소각하판결과 구별한다. + +**재판모델별 §3 필수 항** + +| 모델 | 필수 | 특기 | +|---|---|---| +| 이행 | 3.1, 3.2, 3.3, 3.4, 3.5 | 3.2는 권리보호이익이 다투어지는 사건에서만 실질 기재, 그 밖에는 3분 값 | +| 확인 | 3.1, **3.2**, 3.3, 3.4, 3.5 | 증서진정확인은 3.2 예외 명시 | +| 형성 | 3.1, **3.3(출소기간)**, 3.4, 3.5 | 직권조사와 증명책임 분리 | +| 형식적 형성 | 3.1, 3.3, 3.4, 3.5 | 당사자적격에 공유자 전원 필수적 공동소송 | +| 집행관계 | 3.1, **3.3**, 3.4, 3.5 | 집행권원의 존재·집행종료 여부가 소의 이익 | +| 재판공격 | 3.1, **3.3(불변기간)**, 3.4, 3.5 | 대상적격·보충성이 소송요건 | + +--- + +### §4. 공통 청구원인사실 + +**모든 경로에 공통되는 요건만** 둔다. 특정 경로 전용이면 §5로 내린다. 공통 요건이 실재하지 않으면 `해당 없음 — 경로 간 공통 요건 없음. §5(경로별 분기 요건사실)가 기본 단위`로 두고 §5를 기본 단위로 삼는다. + +**이 문구에서 절 제목 병기를 빼지 않는다.** 제6부 S10b는 산문 줄의 절 번호 단독 참조를 금지하고 +면제 형태는 계수(`§N에 <숫자>`)와 소유격(`§N의`) 둘뿐이다. `§5가`는 어느 쪽도 아니므로 +제목을 빼면 **그 참조가 그 항(H3) 구간에서 처음 등장하는 통상의 경우 S10b가 실패한다** +(실측: 이 값을 쓰는 코퍼스 23개 문서를 구 문구로 되돌리면 21개에서 신규 FAIL. 나머지 2개는 +같은 H3 구간에서 §5가 앞서 제목과 함께 등장해 우연히 면제됐다 — 우회가 우연에 의존한다). +v4 초판의 예시가 제목을 빠뜨리고 있었고, 기존 코퍼스 43곳은 전부 워커가 독립적으로 제목을 +보충하고 있었다(배치 10 전수 확인). **게이트는 여는 괄호의 존재만 보고 괄호 안이 실제 절 제목인지는 +검증하지 않으므로**(제6부 S10b 구현), 괄호만 채우는 우회를 하지 말고 정확한 절 제목을 쓴다. + +**4.1 요건사실 목록** + +각 요건에 **안정 ID**를 부여한다. 형식은 `R--<절>-<일련>`이다. + +``` +R-MON001-4-01 원고와 피고 사이에 금전을 대여하기로 하는 합의가 성립한 사실 +R-MON001-4-02 원고가 피고에게 금 ○○원을 교부한 사실 +R-MON001-4-03 변제기가 도래한 사실 +``` + +이 ID가 §7 총괄표, §6 항변의 `대상요건`, §5 중복 검사의 조인 키다. 번호만 매기면 세 곳의 대조가 문자열 유사도에 의존하게 되어 검증이 불가능하다. + +작성 규범은 제4부 참조. + +**4.2 요건별 상술** + +각 요건마다 아래 **10개 필드**를 동일 순서로 채운다. 이 블록이 청크의 최소 단위다. +**필드의 존재와 순서, `주장책임 / 증명책임`의 슬래시 1개, `추정·전환`의 열거값은 린트 L-f가 검사한다**(v4-r6, 게이트 v4.1). +v2의 9필드에 `적용 경로`를 더했다(v2에서는 생성 프롬프트 층이 임시로 덧붙이고 있었다). + +``` +#### R-MON001-4-02 원고가 피고에게 금 ○○원을 교부한 사실 +- **적용 경로**: 전 경로 # §4 블록은 반드시 "전 경로". 특정 경로만이면 그 요건은 §5로 내린다 +- **규범적 근거**: 민법 제598조 / 대법원 판례(사건번호) +- **요건분류**: 권리근거 # 권리근거|권리장애|권리멸각|권리저지|소송요건|절차 +- **주장의 정도**: 어디까지 특정해야 주장으로 인정되는가 +- **주장책임 / 증명책임**: 원고 / 원고 # 정규형 3종은 아래를 보라. 「근거」는 이 칸이 아니다 + (v4-r5) **슬래시 하나로 나눈 두 값만 적는다. 문장을 쓰지 않는다.** + 왼쪽이 주장책임, 오른쪽이 증명책임이며 각각 **당사자 표기**(`원고`·`피고`·`원고(이동 없음)` 등)이거나 + **§6.0이 정한 `해당 없음(직권)`**이다. 정규형: `원고 / 원고`, `피고 / 피고`, `피고 / 해당 없음(직권)`. + **`해당 없음(직권)`은 제6부의 「3분 값」이 아니다.** 3분 값은 `^(?:해당 없음|UNKNOWN|UNVERIFIED) — .{5,}$` + (엠대시와 5자 이상의 사유)이고 `해당 없음(직권)`은 여기에 매치하지 않는다. + 이것은 §6.0 `증명책임` 열의 고유 열거값이다. 두 개념을 섞어 쓰지 않는다. + **슬래시가 없으면 §7 총괄표의 「주장책임」과 「증명책임」 두 열에 같은 값이 복제되고, + 둘 이상이면 첫 슬래시에서만 잘려 나머지가 통째로 증명책임 열에 들어간다.** + (v4-r6) **린트 L-f가 슬래시가 정확히 하나이고 양쪽이 비어 있지 않은지 검사한다.** v4-r5까지는 + 게이트가 잡지 않아 22/22 PASS인 문서에도 틀린 총괄표가 남았다. 「누가 왜 부담하는가」의 근거와 설명은 + `증명 실무` 필드나 블록 아래 산문에 적는다. +- **추정·전환**: 법률상 추정 / 의사해석규정상 추정 / 증거법칙적 추정 / 사실상 추정 / 전환규정 / 간주 / 없음 + (v4) **열거값 하나만 적는다. 설명 문장을 덧붙이지 않는다.** 이 필드는 §7 총괄표의 `추정` 열로 + **문자열 그대로 투영**되므로, 여기에 문장을 쓰면 총괄표의 열 정렬이 무너진다. + 「무엇이 추정되고 무엇으로 깨지는가」는 `증명 실무` 필드에 적는다. +- **다중 대응**: 타 요건 겸용(요건 ID) / 택일 요건(대체 요건 ID) / 평가근거사실 목록 / 없음 +- **증명 실무**: 전형 증거, 간접사실, 반증의 방어선 +- **흠결 빈발점**: 자주 누락되는 사실과 그 효과 +- **권위 ID**: authority_ids +``` + +§5.P#.2의 추가 요건도 같은 블록을 쓴다. 요건 블록 헤딩은 §4·§5 모두 `####`로 통일한다. + +**`추정·전환`에 「의사해석규정상 추정」을 신설한 이유**(v3) — 민법 제398조 제4항의 위약금 추정은 +법률상 추정이 아니라 **의사해석규정상 추정**이다(『요건사실과 주장·증명책임』 제13판). 법률상 추정은 +전제사실의 증명으로 요건사실을 추정하고 상대방에게 반대사실의 본증을 요구하지만, 의사해석규정상 +추정은 당사자의 의사가 다르다는 점을 주장·증명하면 깨진다. 배치 4의 위약금 워커는 대응 열거값이 +없어 `법률상 추정(의사해석규정상 추정)`으로 병기하는 우회를 썼다. v3은 정규 값을 준다. + +**`추정·전환`에 「증거법칙적 추정」을 신설한 이유**(v4-r3) — 민사소송법 제356조 제1항(공문서)과 +제358조(사문서)의 진정성립 추정은 조문에 근거하지만 **반증으로 깨진다.** 「법률상 추정」으로 적으면 +상대방에게 반대사실의 **본증**을 요구한다는 뜻이 되어 증명도가 한 단계 올라가고, §7 총괄표의 `추정` 열이 +그대로 틀린다. 「사실상 추정」으로 적으면 조문에 근거한다는 사실이 사라진다. 두 값 사이의 자리가 없어 +배치 10의 증서진부확인 워커가 「법률상 추정」으로 근사하고 §12.7에 공개했다. v4-r3은 정규 값을 준다. + +**`추정·전환`에 「간주」를 신설한 이유**(v4-r6) — 기간제 및 단시간근로자 보호 등에 관한 법률 제4조 제2항의 +무기계약 간주, 구 파견근로자보호 등에 관한 법률의 직접고용 간주처럼 조문이 「본다」로 정한 법률효과는 +**반대사실의 증명으로 깨지지 않는다.** 이를 「법률상 추정」으로 적으면 반증(반대사실의 본증)으로 깨진다는 +잘못된 정보가 §7 총괄표의 `추정` 열에 문자열 그대로 투영된다. 배치 12H의 근로자의 지위 등 워커가 +최초 투영에서 두 행을 그렇게 냈다가 자기심사 전에 발견했다. 간주는 요건사실의 추정이 아니라 +법률효과의 의제이므로 원고는 간주의 전제사실만 세우면 되고, 상대방의 방어는 전제사실의 부인이나 +별도의 항변으로 간다. 그 점을 `증명 실무`에 적는다. + +**게이트 v4.1의 린트 L-f가 이 필드의 열거값을 검증한다**(v4-r6). v4.0까지는 값을 §7의 `추정` 열로 +문자열 그대로 투영만 했고(`field(blk,'추정·전환') or '없음'`) 열거값을 보지 않았다. +값 집합은 위 7값이며, 이 집합을 늘릴 때는 L-f의 상수 `CHU_OK`를 함께 고친다. + +**4.3 서술 순서** — 시간적·논리적 순서와 그 근거. + +**4.4 부수급부: 구간표** + +이율 수치를 골격에 박지 않는다. 소송촉진 등에 관한 특례법 제3조 제1항의 법정이율은 대통령령으로 변동해 왔고 부칙 경과규정에 따라 소 제기 시점별로 구간이 갈린다. 수치를 고정하면 모든 문서가 동시에 낡는다. + +| 구간 | 기산사건 | 종기사건 | 이율 | 근거법령·시행일 | +|---|---|---|---|---| +| 1 | | | | | +| 2 | | | | | + +기재 항목: `법적 성질`(약정이자 / 법정이자 / 지연손해금 / 원상회복 이자) / `원본의 기초` / `구간별 이율과 근거` / `소송촉진법 적용 제한`(항쟁의 상당성) / `중복·이중회복 금지` / `원금과 분리된 시효` + +계약해제 원상회복은 받은 날부터 소장 송달일까지 민법 제548조 제2항의 이자, 그 다음날부터 소송촉진법상 지연손해금으로 **2구간**이다(대법원 2022. 12. 1. 2022다259753). 단일 이율 칸으로는 표현되지 않는다. + +--- + +### §5. 경로별 분기 요건사실 + +경로가 2개 이상이면 필수. `has_branch: true`인 경로마다 아래 4개 하위 구조를 갖는다. + +``` +### 5.P1 [경로명] +#### 5.P1.1 이 경로가 성립하기 위한 표지사실 +#### 5.P1.2 추가 요건사실 (§4에 더해지는 것만, ID는 R-…-5-nn) +#### 5.P1.3 이 경로 고유의 항변 +#### 5.P1.4 주문과 부수급부의 변화 +``` + +**금지 규칙** +- 경로 전용 요건을 §4로 승격하지 않는다. +- 경로 간 요건 문장을 복사하지 않는다. 공통이면 §4에 있어야 한다. +- 요건 ID 집합이 §4와 §5에서 겹치지 않아야 한다. +- 두 경로가 하나의 사실관계로 **동시에 충족되면** 청구권경합·선택적 병합이고, **양립할 수 없을 때만** 예비적 병합이다. + +--- + +### §6. 상대방의 응답: 부인·항변·재항변 + +**6.0 부인과 항변의 구별** + +먼저 이 표를 채운다. 이것을 세우지 않으면 §7의 증명책임 값이 오염되고, 증명책임 주체별 검색이 전부 틀린다. + +| 상대방 주장 | 성질 | 증명책임 | 대상요건 ID | +|---|---|---|---| +| 계약이 성립하지 않았다 | 부인 | 원고(이동 없음) | R-…-4-01 | +| 금원을 받은 바 없다 | 부인 | 원고(이동 없음) | R-…-4-02 | +| 계약이 통정허위표시로 무효다 | 권리장애 항변 | 피고 | R-…-4-01 | +| 변제하였다 | 권리멸각 항변 | 피고 | R-…-4-01~03 | + +**`성질` 열의 열거값(v3 확정)** — 아래 7값 중 하나만 쓴다. + +| 값 | 증명책임 | 설명 | +|---|---|---| +| 부인 | 원고(이동 없음) | 권리발생사실의 부존재 주장. 6.1~6.6의 항변 블록으로 만들지 않는다 | +| 권리장애 항변 | 피고 | 무효·통정허위표시·불공정·강행법규 위반·원시적 불능 | +| 권리멸각 항변 | 피고 | 변제·공탁·상계·경개·면제·해제·혼동·시효완성 | +| 권리저지 항변 | 피고 | 동시이행·유치권·기한유예·한정승인·최고검색 | +| 기간·시효 항변 | 피고 | §6.4 소관 | +| 신의칙·권리남용 | 피고 | §6.5 소관. 평가근거사실로 전개 | +| **직권 참작사유** | **해당 없음(직권)** | **v3 신설.** 부인도 항변도 아니고 법원이 직권으로 참작하는 사유. (ii)의 블록은 §6.6 소관 | + +**「직권 참작사유」를 신설한 이유**(v3) — 손해배상 예정액의 직권감액 촉구(민법 제398조 제2항), +과실상계 주장(제396조), 실손해 부존재 주장은 피고가 주장하지 않아도 법원이 직권으로 참작한다. +증명책임이 피고에게 이동하지 않으므로 항변이 아니고, 권리발생사실을 다투는 것도 아니므로 부인도 +아니다. v2의 6값 어디에도 들어가지 않아 표 밖 산문으로 밀려났다. 이 값을 쓰는 행은 `대상요건` ID를 +그대로 싣는다. + +**「직권 참작사유」는 두 갈래이고 블록 전개 여부가 갈린다**(v4-r3에서 분기). +v4-r2까지는 「이 값을 쓰는 행은 §6.1~§6.5의 항변 블록을 만들지 않는다」고만 적었는데, +그 문장이 아래 (ii)까지 덮어 §6의 `주문에 미치는 영향` = `소각하`(v4 신설)와 정면으로 충돌했다. +배치 9의 이사회결의무효 워커가 이 충돌을 만나 승패를 가르는 방어를 「권리멸각 항변」으로 근사했고 +자기심사 R2가 3점으로 내려갔다. 아래로 나누어 적용한다. + +**(i) 실체법상 직권 참작** — 손해배상 예정액의 직권감액(민법 제398조 제2항), 과실상계(제396조), +실손해 부존재 주장. **§6.1~§6.6 어느 항에도 블록을 만들지 않는다.** 감액·상계의 기준이 되는 평가근거사실을 +`증명 실무`에 준하는 산문으로 §6.0 표 아래에 둔다. 재항변·소변경 요부를 전개할 실익이 없기 때문이다. + +**(ii) 소송요건의 소멸·흠결** — 후행 추인·재결의로 인한 소의 이익 소멸, 소송 계속 중 원고의 +지위 상실, 청구기간 도과, 청산 종결 등. **상대방이 실제로 그 사유를 주장하고 다투어 +재항변·소변경 요부·주문에 미치는 영향을 전개할 실익이 있으면 §6.6(소송요건의 소멸·흠결)에 블록을 둔다. +§6.1~§6.5에 두지 않는다**(v4-r6). 그 블록의 `증명책임`은 「해당 없음(직권)」을 유지하고 +`주문에 미치는 영향`은 `소각하`를 쓴다. 확인의 소에서는 이 갈래가 제1 방어선인 경우가 많다. +(v4-r5까지는 자리가 없어 §6.2에 두고 「권리멸각은 성질이 아니라 좌표」라는 유보를 적는 잠정 처리였고, + 배치 11·12H의 워커 10명이 같은 우회를 반복했다. v4-r6이 항을 신설해 해소한다. 이미 생성된 문서의 + §6.2 블록은 재생성 대상이 아니다 — 11.5와 같은 기준.) + +**(ii)의 두 가지 제약** + +1. **§6.0 표의 행을 없애지 않는다.** 블록을 두더라도 §6.0 표에 같은 항목을 「직권 참작사유」로 + 그대로 남긴다. 표는 성질의 분류이고 블록은 그 전개이므로 **중복이 아니라 연결**이다. + §11.2 금지규칙 15가 직권 참작사유를 §6.0 표 밖으로 밀어내지 말라고 정하는 것과 같은 취지다. + (v4-r2까지 §6 템플릿의 `소각하` 설명이 「두 자리를 동시에 쓰지 않는다」고 적어 이 규칙과 + 모순되었다. v4-r3에서 정정한다.) +2. **블록의 `대상요건`이 실재해야 한다.** 게이트 S7은 §6.1~§6.6 블록의 `대상요건`이 §4·§5에 + 실재하는 R-ID인지 검사한다. 따라서 그 소송요건이 **§4 또는 §5에 `요건분류: 소송요건`인 + R-ID로 실재할 때만** 블록으로 전개할 수 있다(확인의 소의 「확인의 이익의 기초사실」, + 장래이행의 소의 「미리 청구할 필요」가 그 예다). 실재하지 않으면 블록을 만들지 말고 + §6.0 행과 산문으로 두며, 그 사실을 §12.7에 적는다. **없는 R-ID를 지어내지 않는다.** + +**부인의 유형**: 단순부인 / 이유부부인(적극부인) / 부지. 어느 경우에도 증명책임은 이동하지 않는다. + +**6.1 권리장애 항변** — 무효, 통정허위표시, 불공정 법률행위, 강행법규 위반, 원시적 불능. **불성립은 여기에 넣지 않는다**(부인이다). + +**6.2 권리멸각 항변** — 변제, 변제공탁, 상계, 경개, 면제, 해제·해지, 혼동, 소멸시효 완성 + +**6.3 권리저지 항변** — 동시이행, 유치권, 기한유예, 한정승인, 최고·검색의 항변 + +**6.4 기간·시효 항변** + +빈출이므로 별도 항. 권리종류별로 분기한다. + +| 권리 | 근거 | 기간 | 기산점 | +|---|---|---|---| +| 일반 채권 | 민법 제162조 제1항 | 10년 | 권리를 행사할 수 있는 때 | +| 상사채권 | 상법 제64조 | 5년 | 동상 | +| 이자·부양료·급료·사용료 등 | 민법 제163조 | 3년 | 각 지급기 | +| 음식료·숙박료 등 | 민법 제164조 | 1년 | 동상 | +| **불법행위 손해배상** | **민법 제766조** | **3년 / 10년** | **손해 및 가해자를 안 날 / 불법행위를 한 날** | +| **판결 등으로 확정된 채권** | **민법 제165조** | **10년** | **확정된 때** | + +민법 제766조는 손해배상 계열 사건종류(자·산·의·지·저·언·건·국·해·기 및 배상금 청구)에서 필수이며, 기산점인 '손해 및 가해자를 안 날' 자체가 독립 쟁점이다. 제165조는 청구이의의 소와 시효연장 목적 재소에서 필수다. + +함께 기재: **중단**(청구·압류·가압류·승인 — 민법 제168조 이하), **정지**(제179조~제182조), +시효이익 포기(제184조 제1항), **원금과 지연손해금의 분리 기산** + +**용어 주의**(v3) — 우리 민법의 문언은 **중단·정지**다. 「완성유예」·「갱신」은 우리 조문에 없는 +표현이므로 쓰지 않는다. v2 본문과 생성 프롬프트가 이 표현을 썼던 것을 v3에서 정정한다. +중단은 진행한 기간이 소멸하고 새로 진행하며(제178조 제1항), 정지는 기간의 진행이 일시 멈출 뿐이다. + +**6.5 신의칙·권리남용** — 일반조항. 평가근거사실로 전개한다. + +**6.6 소송요건의 소멸·흠결**(v4-r6 신설) — §6.0 (ii)의 블록이 놓이는 유일한 자리다. 실체법상 항변이 아니라 +**소송요건을 다투는 상대방 주장**을 담으므로 6.1~6.5와 성질이 다르다. 규칙: + +- 블록 번호는 `#### 6.6.x`. 8필드 템플릿을 그대로 쓴다. `주장책임 / 증명책임`은 `피고 / 해당 없음(직권)`, + `주문에 미치는 영향`은 `소각하`가 정규형이다. +- `대상요건`은 §4·§5에 실재하는 `요건분류: 소송요건`인 R-ID다(§3의 R-ID 규칙, S7). 실재하지 않으면 + 블록을 만들지 않고 §6.0 행과 산문으로 두며 §12.7에 적는다. +- **원시적 흠결**(대상 불특정, 보충성 — 이행의 소로 종국 해결이 가능함, 확인의 이익 부존재)과 + **후발적 소멸**(권리의 종료, 원고 지위 상실, 후행 추인·재결의, 청산 종결)을 **모두** 여기에 두되 + 원시적 흠결을 먼저, 후발적 소멸을 뒤에 배열한다. 항 제목 하나로 두 갈래를 덮는 이유는 둘 다 + 효과가 각하이고 증명책임 값이 같기 때문이다. 갈래는 블록 헤딩의 항변명에 드러낸다 + (예: `6.6.1 확인의 이익의 원시적 흠결 — 이행의 소에 의한 종국 해결`, `6.6.3 확인 대상 권리의 종료`). +- **§6.0 표의 행을 지우지 않는다**((ii)의 제약 1). 표는 성질의 분류이고 블록은 그 전개다. +- 해당 블록이 하나도 없는 사건종류는 `해당 없음 — <사유>` 한 줄을 둔다(S3). 항을 삭제하지 않는다. +- 게이트: S7은 이 항의 블록도 다른 블록과 똑같이 검사한다. 린트 L-d(부인 누출)의 범위가 §6.6까지다. + S2a는 레벨 2 헤딩만 보므로 §6.6의 신설로 움직이지 않는다. + +**항변 템플릿** (각 항변 반복) + +``` +#### 6.N.x [항변명] +- **대상요건**: R-…-4-02 ← 필수. 이 값이 없으면 게이트 S7 실패. 복수 가능 +- **요건사실**: ① … ② … +- **주장책임 / 증명책임**: 피고 / 피고 + (v4-r5) 여기서도 **슬래시 하나로 나눈 두 값**으로 쓴다(§4.2의 같은 필드 규칙). + 다만 근거는 다르다. **§6 항변 블록은 §7 총괄표로 투영되지 않으므로**(투영 대상은 §4·§5의 요건 + 블록뿐이고 §6 블록에서 쓰이는 것은 `대상요건` 하나다) 여기에 문장을 써도 표가 무너지지는 않는다. + 형식을 맞추는 이유는 **집필자가 두 자리를 구별하지 못하기 때문**이다. 한쪽에서만 문장을 허용하면 + §4·§5에서도 문장이 나온다. 두 자리를 같은 형식으로 통일한다. + 소송요건 흠결을 다투는 블록은 `피고 / 해당 없음(직권)`이 정규형이다. +- **재항변**: … +- **재재항변**: … +- **주문에 미치는 영향**: 기각 / 일부인용 / 상환이행 주문으로 변형 / 소변경 후 상환이행(2단) / + **소각하** / 영향 없음 + (v4) **`소각하`를 신설했다.** 소송 계속 중 원고의 지위 상실, 후행 추인·재결의로 인한 소의 이익 + 소멸처럼 **소송요건 흠결을 다투는 상대방 주장**은 효과가 각하인데 v3까지 대응 값이 없어 + 8필드 블록으로 표현할 수 없었다(배치 6, 주주총회결의취소의 소). + 이런 주장은 §6.0 표에 `성질` = 「직권 참작사유」 행으로 **반드시 싣고**(S7은 그 행에 블록을 + 요구하지 않는다), 상대방이 실제로 다투어 재항변·소변경 요부·주문 영향을 전개할 실익이 있으면 + **추가로 §6.6(소송요건의 소멸·흠결)에 블록을 두고** `주문에 미치는 영향`을 `소각하`로 적는다(v4-r6). + 표와 블록은 중복이 아니라 연결이므로 **§6.0 행을 지우지 않는다**(§6.0의 (ii)와 §11.2 금지규칙 15). + 블록으로 전개하려면 그 소송요건이 §4·§5에 `요건분류: 소송요건`인 R-ID로 실재해야 한다(S7). + (v4-r2까지 이 자리에 「두 자리를 동시에 쓰지 않는다」고 적혀 있었으나 금지규칙 15와 모순이었다. v4-r3 정정.) +- **소변경·석명 요부**: 불요 | 필요 — <어떤 청구로의 변경이 필요한지> ← v3 신설. 위 값이 (2단)일 때 필수 +- **권위 ID**: … +``` + +**「소변경 후 상환이행(2단)」을 신설한 이유**(v3) — 지상물매수청구권(민법 제283조·제643조) 항변의 +실제 효과는 4값 중 어느 하나로도 표현되지 않는다. 대법원 1995. 7. 11. 선고 94다34265 전원합의체 +판결에 따르면 ① 임차인이 매수청구권을 행사하면 임대인의 **건물철거·토지인도 청구는 전부 기각**되고 +법원은 석명의무를 지며, ② 임대인이 **건물 인도·소유권이전등기 청구로 소를 변경한 뒤에야** 매매대금 +지급과의 상환이행 주문이 나온다. v2의 4값 중 「상환이행 주문으로 변형」을 고르면 원고의 소변경 없이 +상환이행 주문이 생성되는 오독을 부르고, 「기각」을 고르면 2단계가 사라진다. v3은 값을 신설하고 +`소변경·석명 요부` 필드로 2단째를 분리해 적는다. + +--- + +### §7. 주장·증명책임 총괄표 + +문서 전체를 한 장으로 압축한다. **행마다 요건 ID를 싣는다.** + +| 요건 ID | 요건사실 | 소속 절 | 요건분류 | 주장책임 | 증명책임 | 추정 | 대응 항변 ID | +|---|---|---|---|---|---|---|---| + +이 표의 요건 ID 집합은 §4·§5의 요건 ID 집합과 **정확히 일치**해야 한다. 두 집합의 대조가 품질게이트 S5다. + +`소속 절` 열은 `§4(공통 청구원인사실)` / `§5(경로별 분기 요건사실)`로 **절 제목을 병기해** 투영한다 +(v4-r6, 게이트 v4.1). 행 청크가 단독으로 해소되어야 하기 때문이다(제5부 5.3). 표 셀은 S10·S10b의 +대상이 아니므로 게이트와 충돌하지 않는다. v4.0 투영본(`§4`·`§5`)을 가진 문서는 `--project`로 재투영하면 갱신된다. + +행 단위로 청크를 발행하되 벡터 색인 방침은 제5부 참조. + +--- + +### §8. 증거계획 + +- **8.1 요건별 증거 매핑** — 요건 ID / 서증 / 인증 / 그 밖의 증거 / 증명력의 한계 +- **8.2 표준 서증 목록** — 갑 제N호증 순서 권고 +- **8.3 직권·보조 수단** — 사실조회, 문서제출명령, 감정, 검증, 증거보전 +- **8.4 증명 곤란** + +민사소송법 제202조의2는 **손해가 발생한 사실이 인정되는 것을 전제로 한 손해액 산정** 규정이다. 책임 발생, 위법성, 인과관계, 손해 발생 자체를 대체하는 범용 규칙이 아니다. + +증명방해는 자유심증의 자료로 불리하게 평가할 수 있을 뿐이며, 자동으로 증명책임이 전환되거나 상대방 주장사실이 증명된 것으로 되지 않는다(대법원 2024. 5. 17. 2018다262103). + +특별법이 특정 요소의 부담만 전환하는 경우에는 그 **대상 요소만** 표시한다. + +--- + +### §9. 판결효과·보전·집행 + +**9.1 판결효과** — 다섯 축으로 분리한다. `형성판결 = 대세효·소급효` 같은 일반화를 쓰지 않는다. + +| 축 | 기재 내용 | +|---|---| +| 효력의 객체 | 무엇이 변동·확정되는가 | +| 인적 범위 | 당사자 사이 / 제3자에 대한 효력 | +| 시점 | 소급 / 장래 | +| 기판력 범위 | 주문 / 이유 중 판단 / 기준시 | +| 집행력 | 집행권원이 되는가, 집행방법은 무엇인가 | + +사해행위취소는 상대적 효력이고 원상회복 범위를 별도로 검토한다. 공유물분할·경계확정은 형식적 형성이므로 법원이 주문에 구속되지 않고, 조정과 판결의 물권변동 효과가 같지 않을 수 있다. 청구이의는 집행력 배제가 목적이며 기초 실체권에 새 기판력을 만들지 않는다. + +**9.2 보전처분** — 피보전권리와 보전의 필요성. 본안 요건사실과의 차이 + +**9.3 집행방법** — 금전집행 / 인도집행 / 의사진술 의제(민사집행법 제263조) / 대체집행 / 간접강제 / 종류물 인도(제257조) + +**9.4 병합·소변경·반소, 다수당사자** — 필수적 공동소송(공유물분할은 공유자 전원), 소송고지, 보조참가. **이중회복 통제**: 손해배상과 부당이득처럼 구제가 중복될 수 있는 조합을 여기서 점검한다. + +--- + +### §10. 서면 변환 + +**10.1 소장 청구원인 서술 순서** + +문서 구조를 그대로 소장 순서로 내려보내지 않는다. 실무 소장은 소송요건을 앞세우지 않는다. + +1. 당사자와 목적물의 특정 +2. §4·§5 요건사실을 **시간순**으로 +3. §4.4 부수급부의 기산과 이율 +4. §3 소송요건은 **다투어질 것이 예상되는 경우에만** 별도 항으로 + +**10.2 답변서·준비서면 대응 순서** — §6.0의 부인·항변 구별을 그대로 따른다. 부인은 증명책임을 이동시키지 않으므로 항변과 별도 항에 쓴다. + +**10.3 흠결의 효과** + +| 흠결 유형 | 효과 | +|---|---| +| 관할위반 | 이송(민사소송법 제34조 제1항) | +| 소장 필요적 기재사항·인지 흠결 | 보정명령 후 소장각하명령(제254조), 즉시항고 | +| 당사자적격·소의 이익 흠결, 출소기간 도과 | 소각하판결 | +| 주요사실 주장 누락 | 주장자체로 이유없음 → 청구기각 | +| 주장은 있으나 증명 실패, 제척기간·시효 완성 | 청구기각 | + +**10.4 청구취지** — 문형 카탈로그는 `claim_rule_doc`을 참조하고 복제하지 않는다. + +--- + +### §11. 체크리스트·금지규칙·오류 카탈로그 + +**11.1 작성 전 체크리스트** + +1. 재판모델 6종 중 하나를 확정했는가 +2. 청구경로를 분리하고 `path_relation`·`joinder_mode`를 각각 정했는가 +3. §4에 실제 공통 요건이 있는가, 없으면 `해당 없음`으로 두었는가 +4. 모든 요건에 ID와 요건분류를 부여했는가 +5. §6.0에서 부인과 항변을 갈랐는가 +6. §3 각 항에 조사방식·증명책임·절차효과 값이 있는가 +7. 기간제한의 성질(출소기간/제척기간/시효)과 효과(각하/기각)를 판정했는가 +8. §4.4가 구간표이고 §2.2의 부대청구 문언과 값이 같은가 +9. 판결효과를 다섯 축으로 분리했는가 +10. 인용 판례가 §12.2에 등재되고 변경·폐기 여부가 확인됐는가 + +**11.2 금지규칙** + +1. 실제 공통요소가 없는 경로에 공통 청구원인사실을 만들지 않는다. +2. 요건과 사실을 기계적으로 1:1 대응시키지 않는다(평가적 요건·택일 요건·중복 지지 사실). +3. 부인을 항변으로 쓰지 않는다. 원고/피고라는 절차상 지위를 실체법상 부담주체와 동일시하지 않는다. +4. 소송요건 흠결을 전부 각하로 처리하지 않는다. +5. 형성판결의 효력을 전부 대세효·소급효로 처리하지 않는다. +6. 부존재확인의 **모든** 부담이 역전된다고 쓰지 않는다. +7. 동시이행 관계의 사실을 항상 청구원인 또는 항상 항변으로 고정하지 않는다. +8. 이율·시효·제척기간을 적용법령·시행일·경과규정 없이 고정하지 않는다. +9. 민사소송법 제202조의2를 책임·인과관계·손해발생의 대체규칙으로 쓰지 않는다. +10. 증명방해를 자동 증명책임 전환으로 처리하지 않는다. +11. 판결요지만으로 holding을 확정하지 않는다. 요건·항변의 직접 근거 판례는 전문을 확인한다. +12. `해당 없음`·`UNKNOWN`·`UNVERIFIED`를 같은 값으로 쓰지 않는다. +13. 잔여 범주(`기타 ○○확인`)를 **단일 청구권의 요건 열거형으로** 쓰지 않는다. + 문서 자체는 만들되 제8부 8.2 규칙 3의 **판정 가이드** 형식으로 쓴다 + (v3 정정. v2 원문 「사건종류 문서로 만들지 않는다」는 제8부 8.2 규칙 3과 정면으로 충돌했고, + 생성 프롬프트가 오버라이드로 우회하고 있었다). +14. 기간 제한이 실재하는데 `filing_deadline.kind`에 대응 열거값이 없다는 이유로 `없음`을 쓰지 않는다. +15. 부인도 항변도 아닌 직권 참작사유를 §6.0 표 밖으로 밀어내지 않는다(§6.0 `성질` 참조). + §6.6에 블록을 둔 경우에도 §6.0 표의 행을 지우지 않는다(§6.0의 (ii), v4-r3·v4-r6). + +**11.3 오류 카탈로그** — `…하면 …가 무너진다` 형식으로 사건별 함정을 열거한다. 자료조사 단계에서 확인된 함정과 `MEMORY.md`의 교훈이 여기로 수렴한다. + +--- + +### §12. 근거자료와 검증상태 + +- **12.1 법령** — 조문 번호 + 국가법령정보센터 URL + **시행일·경과규정** +- **12.2 판례** — 사건번호 / 선고일 / 판시사항 / **적용 요건 ID** / **상태(유효·변경·폐기)** / `fulltext_verified` 여부. law.go.kr 판례 Open API(`target=prec`)로 사건번호·선고일을 확인하되, 요건·항변의 직접 근거 판례는 전문의 판시로 holding을 확정한다. 병합 사건번호는 대표번호만 등재되는 경우가 많다 +- **12.3 헌법재판소 결정** — 결정유형·주문·효력범위·구제한계 +- **12.4 『요건사실과 주장·증명책임』 제13판** — 항목 경로 + 시작면~종료면. 다음 표제가 면 상단에서 시작하면 직전 면에서 종료하고, 같은 면 중간에서 시작하면 그 면을 양쪽 범위에 포함한다. **종료면은 표제 기준이 정본이다.** 각주가 다음 면으로 이어지는 **계속 각주**는 종료면에 넣지 않고 `(각주 계속 ~N면)`으로 병기한다(v4-r6. 자료조사 산출물은 계속 각주를 종료면에 반영하는 관행이어서 한 면씩 어긋났다) +- **12.5 웹 자료** — `URL / 페이지 제목 / 무엇을 확인하는 페이지인지` 3열 표 +- **12.6 학설** — 판례와 갈리는 지점만. 본문 요건에는 반영하지 않는다 +- **12.7 검증상태와 미해결** — `UNKNOWN`·`UNVERIFIED` 항목을 모아 사유와 함께 기록 + +--- + +## 제3부. 재판모델별 골격 변형 + +절 번호는 고정하고 내용만 치환한다. + +| 절 | 이행 | 확인 | 형성 | 형식적 형성 | 집행관계 | 재판공격 | +|---|---|---|---|---|---|---| +| §3 핵심 | 당사자적격·권리보호이익 | **확인의 이익** | **출소기간** | 필수적 공동소송 | 집행권원 존재·집행 미종료 | **불변기간·대상적격·보충성** | +| §3.3 성질 | 사건별(출소·제척 혼재) | 대체로 없음 | 출소기간 → 각하 | 없음 | 사유별 | 불변기간 → 각하 | +| §4 성격 | 권리근거사실 | 확인대상 법률관계의 존부 | 형성요건사실 | 분할·확정을 구할 지위 | 집행력 배제사유 | **2단: 재판공격 요건 + 본안** | +| §4 증명책임 특칙 | 원고 | **부존재확인은 아래 참조** | 원고. 전환규정 빈발 | 원고 | 원고(이의사유) | 원고 | +| §2 주문 | 급부명령 | 존부 확인 | 형성 + 원상회복 병합 | 법원 재량, 주문 비구속 | 집행 불허 | 취소·재심판 | +| §9 비중 | 집행방법 필수 | 기판력만 | 효력 5축 필수 | 물권변동 시점 필수 | 집행력 배제 범위 | 원판결 효력 | + +**부존재확인의 소** — `채권부존재확인`, `채무부존재확인`, `유치권 부존재확인` 등. + +"증명책임이 역전된다"고 쓰지 않는다. 역전이 아니라 **법률요건분류설의 정상 적용 결과**이며, 부담은 소송상 지위가 아니라 요건별로 붙는다. + +- 피고(권리 주장자)가 부담: 권리발생 요건사실 +- 원고가 부담: 확인의 이익의 기초사실, 원고가 주장하는 소멸·장애사실(변제 등) + +따라서 §4에는 「피고 주장 권리의 발생 요건사실(증명책임: 피고)」을 두되, §4.0에 「원고가 부담하는 +사실」을 별도로 둔다. + +**치환의 형식**(v3 확정) — 절 헤딩 `## §4. 공통 청구원인사실`은 **그대로 유지**하고, 바로 다음 줄에 +굵은 부제 `**피고 주장 권리의 발생 요건사실 (증명책임: 피고)**`을 둔다. 절 제목 13행을 고정하는 +제2부의 규범과 게이트 S2를 유지하기 위함이다(v2에서는 생성 프롬프트의 오버라이드로 처리했다). + +**혼합 표지의 예외**(v3 신설, 배치 4 유치권 워커 지적) — 하나의 사건종류가 적극 확인과 부존재 확인을 +함께 담는 경우(`유치권확인 또는 부존재확인`)에는 위 굵은 부제를 **§4에 붙이지 않는다.** 붙이면 +§4.1의 원고 부담 요건과 부제가 어긋난다. 이때는 +- §4에는 두 경로에 공통되는 확인의 이익 관련 요건만 두거나 `해당 없음 — 경로 간 공통 요건 없음. §5(경로별 분기 요건사실)가 기본 단위`, +- 부존재 경로(예: 5.P2)의 내부에서 「피고 주장 권리의 발생 요건사실(증명책임: 피고)」 부제를 적용하고, +- §4.0은 두지 않는다(부존재 경로의 원고 부담 사실은 그 경로의 5.P#.2에 `-5-nn`으로 채번한다). + +**방향이 모든 경로에 직교하는 표지**(v4-r6 신설, 배치 12H 기타 권리확인·기타 확인청구 지적) — 잔여범주처럼 +적극 확인과 소극 확인이 **모든 경로에서 함께 성립**하면 치환 부제를 붙일 「부존재 경로」가 따로 없다. 이때는 +- 부제를 어디에도 붙이지 않고 §4.0도 두지 않는다. +- 확인대상 법률관계의 **존부** 요건은 증명책임 방향이 경로마다 반대이므로 §4에 두지 않고 + §5의 각 경로에 둔다(제1부 원칙 2가 제8부 8.2 규칙 3에 우선한다). §4에는 확인의 이익의 기초사실 등 + 방향과 무관한 소송요건만 남긴다. +- 소극형(부존재 확인)의 부담 배분은 그 경로 R-ID 블록의 `증명 실무`와 §6.0 표 아래 산문에 적는다. + `주장책임 / 증명책임` 필드는 슬래시 하나·당사자 표기 둘로 고정되어 있어(§4.2) 양방향을 한 값에 담을 수 없다. + +--- + +## 제4부. 서술 규범 + +| 항목 | 규범 | +|---|---| +| 요건사실 문장 | 명사형 종결(`…한 사실`). 평가어 단독 사용 금지, 평가근거사실로 전개 | +| 요건 단위 | 기본은 1요건 1주요사실. 평가적 요건·택일 요건·중복 지지 사실은 §4.2 `다중 대응` 필드로 표시 | +| 요건 ID | 모든 요건에 `R-…` ID 부여. §4·§5·§6·§7이 이 ID로 조인된다 | +| 사실 층위 | 주요사실만 ID 부여. 간접사실·보조사실은 `증명 실무` 항으로 | +| 부인과 항변 | §6.0에서 먼저 가른다. 부인에는 증명책임 이동 없음 | +| 판례 인용 | 사건번호 필수. 요건·항변의 직접 근거는 전문 확인. 변경·폐기 여부 기록 | +| 학설 | §12.6으로 격리 | +| 조문 | 법명 + 조문번호 완전 표기(`민법 제406조 제2항`) | +| 이율·기간 | 수치를 골격에 고정하지 않고 구간표로. 근거법령과 시행일 병기 | +| 상호 참조 | 절 번호 + 절 제목 병기(`§6.2(권리멸각 항변) 참조`). 절 번호 단독 참조 금지 | +| 중복 | 요건 문장은 §4 또는 §5 중 한 곳에만. §7은 ID로 참조 | +| 미기재 | `해당 없음` / `UNKNOWN` / `UNVERIFIED` 3분, 각 사유 필수 | + +--- + +## 제5부. 기계층 + +### 5.1 front matter 검증 스키마 + +v2의 스키마는 `additionalProperties: false`를 걸면서 `properties` 목록에 `required` 키의 절반만 +열거해, v2 자신의 §0 예시가 스키마를 통과하지 못했다. 생성 프롬프트는 이를 오버라이드로 우회했다. +v3은 **모든 최상위 키를 `properties`에 열거**해 `additionalProperties: false`가 정상 작동하게 한다. + +```json +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "additionalProperties": false, + "required": ["schema_version","case_kind_id","case_kind_name","case_kind_slug","action_type", + "claim_paths","path_relation","filing_deadline","law_as_of", + "verification_status","doc_version"], + "properties": { + "schema_version": {"const":"3.0.0"}, + "case_kind_id": {"type":"string","pattern":"^(?:[A-Z]{3}|PROV)-[0-9]{3}$"}, + "case_kind_name": {"type":"string","minLength":1}, + "case_kind_slug": {"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}, + "aliases": {"type":"array","items":{"type":"string"}}, + "case_family": {"type":"string"}, + "dispute_type": {"type":"string"}, + "action_type": {"enum":["이행","확인","형성","형식적형성","집행관계","재판공격"]}, + "overlays": {"type":"array","items":{"type":"string"}}, + "claim_paths": { + "type":"array","minItems":1, + "items":{"type":"object","additionalProperties":false, + "required":["id","name","authorities","has_branch"], + "properties":{"id":{"type":"string","pattern":"^P[0-9]+$"}, + "name":{"type":"string","minLength":1}, + "authorities":{"type":"array","items":{"type":"string"}}, + "has_branch":{"type":"boolean"}}}}, + "path_relation": {"enum":["단일","청구권경합","법조경합","택일","독립"]}, + "joinder_mode": {"enum":["없음","단순","선택적","예비적"]}, + "filing_deadline": { + "type":"object","additionalProperties":false, + "required":["kind","basis","period"], + "properties":{"kind":{"enum":["없음","출소기간","제척기간","소멸시효"]}, + "basis":{"type":["string","null"]}, + "period":{"type":["string","null"]}}}, + "claim_rule_doc": {"type":["string","null"]}, + "claim_rule_pattern_ids": {"type":"array","items":{"type":"string"}}, + "source_materials": { + "type":"array","minItems":1, + "items":{"type":"object","additionalProperties":false, + "required":["path","origin"], + "properties":{"path":{"type":"string"}, + "origin":{"enum":["perplexity","gpt","grok"]}}}}, + "adjacent_case_kinds": {"type":"array", + "items":{"type":"string","pattern":"^(?:[A-Z]{3}|PROV)-[0-9]{3}$"}}, + "law_as_of": {"type":"string","format":"date"}, + "verification_status": {"enum":["VERIFIED","QUALIFIED","UNVERIFIED"]}, + "doc_version": {"type":"string","pattern":"^v[0-9]+$"}, + "content_hash": {"type":"string"} + }, + "allOf": [ + { "if": {"properties":{"action_type":{"const":"형성"}},"required":["action_type"]}, + "then": {"properties":{"filing_deadline": + {"properties":{"kind":{"enum":["출소기간","제척기간"]}}}}}}, + { "if": {"properties":{"path_relation":{"const":"단일"}},"required":["path_relation"]}, + "then": {"properties":{"claim_paths":{"maxItems":1}}}} + ] +} +``` + +`schema_version`은 v3·**v4** 문서에서 모두 `"3.0.0"`이다(v4는 형식을 바꾸지 않았다. 제11부). 기존 `"2.0.0"` 문서는 개정 시 함께 올린다. 골격 판이 v4라는 이유로 `"4.0.0"`을 쓰지 않는다. + +### 5.2 Weaviate 컬렉션 + +**모든 property 이름은 ASCII**여야 한다. 한글 property 이름은 GraphQL 식별자 문법 위반으로 클래스 생성이 거부된다. `date` 타입은 RFC3339(`2026-08-27T00:00:00Z`)를 요구하므로 front matter의 `2026-08-27`을 그대로 넣으면 적재가 실패한다. 빌드 시 변환한다. + +**`RfChunk`** + +| property | dataType | 용도 | +|---|---|---| +| `doc_id`, `case_kind_id`, `case_kind_name`, `action_type` | text | 사전 필터 축 | +| `section_no`, `section_title` | text | 좌표(의미 ID 아님) | +| `chunk_kind` | text | `prose` / `requirement` / `defense` / `table_row` / `meta` | +| `requirement_id` | text | `R-MON001-4-01` | +| `statement` | text | 요건·항변 문장 한 줄 | +| `element_class` | text | 권리근거 / 권리장애 / 권리멸각 / 권리저지 / 소송요건 / 절차 | +| `burden_allegation`, `burden_proof` | text | 주장책임·증명책임 주체 | +| `presumption` | text | 법률상추정 / 의사해석규정상추정 / 사실상추정 / 전환 / 없음 | +| `procedural_effect` | text | 이송 / 보정명령 / 소장각하명령 / 소각하판결 / 본안기각 | +| `path_ids` | text[] | §5 분기 청크 | +| `targets` | text[] | 항변이 공격하는 requirement_id | +| `authority_ids` | text[] | `RfAuthority` 조인 | +| `refs_out` | text[] | 상호참조 | +| `content` | text | 청크 전문 | +| `law_as_of`, `valid_from`, `valid_to` | date | RFC3339 | +| `supersedes`, `verification_status`, `content_hash` | text | 버전 통제 | + +**Named vector 2개** — `statement`(요건·항변 문장만)와 `body`(`content`). 요건 문장은 20~40자, 상술은 800자 이상이라 한 벡터 공간에 넣으면 짧은 요건 질의가 긴 상술에 묻힌다. 3개 이상은 불필요하다. + +**`RfAuthority`** (별도 컬렉션) — `authority_id`, `authority_kind`(법령 / 대법원 / 헌법재판소 / 하급심), `citation`, `decided_at`, `holding`, `source_url`, `pinpoint`, `checked_at`, `status`(유효 / 변경 / 폐기), `superseded_by`, `fulltext_verified` + +cross-reference(beacon)는 쓰지 않는다. `authority_ids` 문자열 배열 + 2회 조회가 재색인·마이그레이션 비용이 낮다. + +**질의 패턴** + +| 목적 | 질의 | +|---|---| +| 요건별 검색 | `near_text(target="statement")` + `where chunk_kind="requirement"` | +| 증명책임 주체별 | `where burden_proof="피고" AND element_class="권리멸각"` | +| 사건 횡단 비교 | `where chunk_kind="table_row" AND section_no="7"`, `group_by case_kind_id` | +| 판례 변경 영향 | `RfAuthority.status` 변경 → `where authority_ids contains ` | + +벡터 유사도 검색 전에 `case_kind_id`·`path_ids`·`law_as_of`·`verification_status`로 **구조화 필터를 선행**한다. 사전 필터 없는 순수 벡터 검색은 인접 사건종류 오염을 필연적으로 일으킨다. + +### 5.3 청킹 규칙 + +1. 기본 단위는 H3/H4, 상한 1,200자. 초과 시 H4 하위 불릿 경계에서 분할하고 `section_no`는 유지한다. +2. §4.2 요건 블록과 §6.N.x 항변 블록은 **1요건 = 1청크**로 발행하고 `statement`에 요건 문장만 담는다. +3. **§7 총괄표는 행 단위로 발행한다**(`chunk_kind="table_row"`). 각 행의 `content`는 헤더를 평문화해 자기완결적으로 만든다. 표 전체 마크다운은 렌더링 전용으로 두고 벡터 색인에서 제외한다. 20~40행 표를 벡터 1개로 임베딩하면 행별 변별력이 사라져, 가장 많이 조회될 청크가 검색 품질이 가장 낮은 청크가 된다. +4. §7 행 청크는 `body` 벡터만 색인하고 `statement` 벡터는 만들지 않는다. §4.2 청크와 요건 문장이 같으므로 근사 중복 벡터가 같은 질의에 함께 뜨는 것을 막는다. 이것이 §7의 자기완결 요구와 제4부의 중복 금지 규범을 동시에 만족시키는 방법이다. +5. 상호참조는 빌드 시 `§6.2` → `§6.2(권리멸각 항변)`으로 인라인 확장하고 `refs_out: ["6.2"]`를 기록한다. 검색기는 top-k 결과의 `refs_out`을 같은 `doc_id` 안에서 1-hop 확장한다. +6. **파서는 파일 첫 바이트가 `---`임을 전제한다**(§0 레이아웃). 첫 줄이 `---`가 아니면 front matter + 파싱이 실패하거나 H1을 front matter로 오독하므로, 적재 전에 §0 레이아웃 검사(게이트 S2c)를 통과한 + 문서만 빌드에 넣는다. + +### 5.4 유지보수 + +- 권위의 정본은 `authorities.jsonl` 단일 레지스트리에만 둔다. 판례 변경 1건 = 레지스트리 1행 수정 + `where authority_ids contains ` 1회 조회로 영향 문서 전량이 나온다. +- 문서 신선도 = 참조 권위들의 `checked_at` **최솟값**. +- 개정 시 청크를 덮어쓰지 않는다. 기존 청크에 `valid_to`를 설정하고 신규 청크가 `supersedes`로 이전 `chunk_id`를 가리킨다. 기본 검색은 `valid_to IS NULL`로 필터하고, 과거 시점 질의만 `law_as_of` 범위를 연다. 덮어쓰기는 과거 시점 법리 질의를 영구히 불가능하게 만든다. +- 생성 파이프라인은 **절 단위** 호출로 구성한다. `<사건종류, 절 번호, 자료 발췌, 앞선 절의 요건 ID 목록>`을 입력으로 절 1개를 생성하고, 게이트 실패 시 그 절만 재호출한다. + +--- + +## 제6부. 품질게이트 (3계층) + +v1의 게이트 8개는 세 개가 구조적으로 검사 불가능했다. 게이트 1은 단일 경로 사건에서 반드시 실패했고(경로 1개·분기 0개), 게이트 6은 §2.2에 없는 열을 비교했으며, 게이트 2·3·5는 조인 키가 없어 문자열 유사도에만 의존했다. v2는 이를 ID 도입과 슬롯 추가로 해소하고 3계층으로 재편한다. + +### L1 정적 (스크립트, 문서 단독, 전수·CI 차단) + +**v3에서 사양을 정밀화한 이유** — v2의 게이트 표는 검사의 *취지*만 적고 판정 경계를 정하지 않았다. +그 결과 배치 4에서 10개 워커가 게이트 스크립트를 **각자 구현했고**, 10건 모두 초회 실행에서 다수 +FAIL이 났으며 그 대부분이 오탐이었다. 워커마다 우회가 갈려 같은 게이트가 같은 문서를 다르게 +판정했다. v3은 아래 사양을 **판정 가능한 수준까지** 못박는다. 생성 프롬프트는 이 사양의 표준 +구현체를 하나만 두고 사건종류마다 재사용한다. + +#### 공통 정의 + +- **본문(body)** — front matter 종료 `---` 다음부터 파일 끝까지. +- **절 헤딩** — `^## §(\d+)\. ` / **항 헤딩** — `^### (\d+)\.` / **하위 항·블록 헤딩** — `^#### `. +- **leaf 헤딩** — 그 헤딩 다음에 나오는 첫 헤딩의 레벨이 자신보다 **깊지 않은** 헤딩. + 곧 자식 헤딩을 가지지 않는 헤딩이다. +- **3분 값** — `^해당 없음 — .{5,}$` / `^UNKNOWN — .{5,}$` / `^UNVERIFIED — .{5,}$`. +- **산문 줄** — 헤딩 줄이 아니고, `|`로 시작하지 않으며(표 행 아님), 코드펜스 안이 아닌 줄. +- **골격 고정 제목** — 제2부가 고정한 절 제목 13행과 항 제목 전부, 그리고 H1 `# 요건사실론: …`. +- **항(H3) 구간** — 항 헤딩부터 다음 **레벨 3 이하(H1·H2·H3)** 헤딩 직전까지. 그 안의 H4 블록은 구간을 + 끊지 않는다(v4-r6 명시. v4.0 구현은 다음 헤딩의 레벨을 보지 않아 첫 H4 앞에서 구간이 끊겼다). + +#### 게이트를 거는 시점 (v4 추가) + +게이트는 **§0~§12가 모두 존재하는 조립 완료 문서**에만 건다. 집필 도중의 부분 산출물, +특히 **§0 stub만 쓰인 단계의 파일에는 걸지 않는다.** +`claim_paths`·`path_relation`·`filing_deadline`·`verification_status`처럼 본문의 출력값인 필드는 +stub 단계에 아직 없으므로, 그 시점에 스크립트를 돌리면 S1이 필수 키 부재로, S8이 경로 ID 집합 +불일치로 **반드시 실패한다.** 이 FAIL은 문서의 결함이 아니라 검사 시점의 오류다. + +생성 절차가 §0 stub을 먼저 쓰는 것은 R-ID 접두를 채번 전에 동결하고 중단 시 부분 산출을 남기기 +위한 것이므로, 그 단계의 FAIL을 수정 대상으로 삼지 않는다. 게이트는 조립이 끝난 뒤의 검증 +라운드에서만 실행한다. 생성 프롬프트가 stub 필드 목록에 본문 출력값을 넣지 않는 것도 같은 이유다. + +#### 게이트 사양 + +| ID | 검사 | 판정 경계 (v3 확정) | +|---|---|---| +| S1 | front matter가 5.1 스키마 통과 | **사양은 5.1 스키마 전수(`additionalProperties: false` 포함)이나, L1 표준 구현체가 실제로 검사하는 것은 그 부분집합이다.** 구현체는 ① 필수 키 11개(`schema_version`·`case_kind_id`·`case_kind_name`·`case_kind_slug`·`action_type`·`claim_paths`·`path_relation`·`filing_deadline`·`law_as_of`·`verification_status`·`doc_version`)의 **존재**, ② `case_kind_id`(`^(?:[A-Z]{3}\|PROV)-[0-9]{3}$`)와 `case_kind_slug`의 형식, ③ `action_type`·`path_relation`·`filing_deadline.kind`·`verification_status`의 열거값, ④ 교차조건 2건(`path_relation: 단일`인데 `claim_paths`가 복수 / `action_type: 형성`인데 `filing_deadline.kind`가 출소기간·제척기간이 아님), ⑤ (v4-r6) `content_hash`가 `^sha256:[0-9a-f]{64}$`에 매치하는지만 본다. ⑤는 stub의 placeholder(`""`·`PENDING`)가 마감에서 치환되지 않은 채 남는 침묵 실패를 잡기 위한 것이다. **미열거 키의 혼입과 `schema_version`의 값은 잡지 않는다**(머리말 주의 참조). 이 둘은 집필 규율로 지킨다. 사양과 구현이 갈리는 유일한 게이트이므로, 스키마 전수 적합성은 게이트 통과와 별개로 확인한다 | +| S2a | 절 제목 13행 존재·순서 | 기대 목록에 **§0을 반드시 포함**한다. front matter의 존재가 `## §0.` 헤딩을 대체하지 않는다 | +| S2b | H1 유일 | `^# ` 헤딩이 정확히 1개 | +| S2c | §0 레이아웃 | 파일 **첫 줄**이 `---`, front matter 종료 후 H1, 그 다음 `## §0.` (제2부 §0) | +| S3 | 빈 절·항이 3분 값에 매치 | **leaf 헤딩만 검사 대상**. 자식 헤딩을 가진 컨테이너 헤딩은 본문이 비어 있어도 통과 | +| S4 | 요건 ID 유일성·형식 | `^R-(?:[A-Z]{3}\|PROV)[0-9]{3}-[0-9]+(?:\.[0-9]+)?-[0-9]{2}$` (PROV 접두 허용) | +| S5 | §4·§5 ID 집합 == §7 행 ID 집합 | §7은 스크립트 투영 결과이므로 불일치는 곧 투영 미실행 | +| S6 | §5 ID ∩ §4 ID = ∅ | **§4.0(부존재확인형 원고 부담 사실)의 ID는 `-4-nn`이므로 §4 집합에 넣는다.** 절 번호가 아니라 ID의 절 필드로 귀속을 판정한다 | +| S7 | §6 항변 블록의 `대상요건` 실재 | 검사 대상은 §6.1~§6.6의 `#### 6.N.x` 블록뿐(v4-r6: §6.6 포함). §6.0 표의 행은 대상이 아니다. `성질`이 「직권 참작사유」인 행에 대해 **블록을 요구하지 않는다**(블록이 없어도 통과). 다만 §6.0의 (ii)에 따라 블록을 둔 경우에는 그 블록도 다른 블록과 똑같이 `대상요건`의 실재를 검사한다 — 구현은 성질을 보지 않고 블록만 보므로 별도 처리가 없다(v4-r3에서 문구만 정정. 구현 무변경) | +| S8 | 경로 ID 정합 | `{claim_paths[].id}` == §1.1 표의 경로 ID 집합, `{id \| has_branch}` == §5의 `### 5.P#` 블록 ID 집합 | +| S9 | 사건번호 등재 | 아래 **S9 상세** | +| S10 | 상호참조 해소 | 아래 **S10 상세** | +| S11 | 부수급부 정합 | (a) §4.4 표 각 행에 기산사건·종기사건·이율·근거 4값. **이율이 부존재하는 것이 정답인 행**(장래 정기금 구간 등)은 이율 셀에 3분 값 `해당 없음 — <사유 5자 이상>`을 쓴다. 이것이 정규 값이다(v4). 「부가하지 아니한다」류의 임의 문구를 지어내지 않는다. 실패하는 것은 **빈 셀뿐**이다. **반대 방향의 오용을 함께 막는다 — 이율이 존재하는 행에 3분 값을 쓰지 않는다.** 앞 구간의 이율이 그대로 이어지고 **특례이율의 적용만 배제되는 구간**(항쟁의 상당성이 인정되어 소송촉진 등에 관한 특례법의 법정이율이 적용되지 않는 구간 등)은 이율 부존재 행이 아니다. 그런 행에는 `해당 없음`이 아니라 실질값(예: 「구간 2와 같다 — 민법 제379조의 연 5분」)과 배제되는 특례이율의 근거를 함께 적는다. 게이트는 빈 셀만 잡으므로 이 오용을 잡아주지 못한다(집필 규율). (b) §4.4를 **문서 내 위치와 무관하게** `4.4` 항 헤딩으로 찾는다(§4 말미에 있어도 된다). (c) §2.2의 `부대청구 주문 문언` 셀이 기계판독 문언 줄의 **합집합**에 포함(경로별 복수 허용) | +| S12 | §3 각 항 5필드 | `사유의 성질`·`조사방식`·`증명책임`·`보정 가능성`·`절차효과`. **그 항의 본문이 3분 값 한 줄이면 면제**한다. 스크립트는 `조사방식`·`증명책임`·`절차효과` 3값만 필수로 본다 | +| S13 | §6.0 표 `성질` 값 | 값이 §6.0이 정한 **7값** 중 하나. 부인 행의 증명책임은 「원고(이동 없음)」류, 직권 참작사유 행은 「해당 없음(직권)」 | +| S14 | `source_materials[].path` 실재 | 파일 시스템 대조. 한글 파일명은 **NFC 정규화 후** 비교 | + +**S9 상세 (사건번호 추출)** — 원시 정규식 `\d{2,4}[가-힣]{1,3}\d+`는 조문 표기를 대량 오탐한다. +배치 4에서 8/10 워커가 걸렸다(실례: `제246조의2` `제839조의2` `제10조의4` `제202조의2` `제1008조의2` +`제1115조제1항` `연 100분의 12`). 다음을 **전부** 적용한다. + +1. 한글부가 `조`·`항`·`호`·`목`·`면`·`분`·`년`·`조의`·`조제`·`항제`·`호의` 중 하나이면 **제외**. +2. 매치 직전 문자가 `제`이면 **제외**(`제202조의2`). +3. 매치 앞 8자 이내에 `100분의`·`연 `가 있으면 **제외**. +4. 남은 토큰만 사건번호 후보로 보고 **§12.2 ∪ §12.3** 에 등재되었는지 확인한다. + 헌법재판소 결정번호(`89헌마160`)는 §12.3 소관이므로 §12.2만 조회하면 필연 실패한다. + +**S10 상세 (상호참조)** — 다음을 전부 적용한다. + +1. 참조 패턴은 `§\d+(\.\d+)*(\.P\d+(\.\d+)*)?` 로 확장한다. v2 패턴은 `§5.P2.3`을 해소하지 못한다. +2. **산문 줄에만** 적용한다. 표 셀과 헤딩 줄은 대상이 아니다. §7 총괄표 `소속 절` 열의 `| §4 |`를 + 절 참조로 계수하면 표가 통째로 실패한다. +3. 절 제목 병기 요구(`§6.2(권리멸각 항변)`)도 **산문 줄에만** 건다. 표 안에서 제목을 병기하면 + 표가 읽히지 않는다. +4. 참조 대상이 문서에 실재하는 절·항·경로인지만 확인한다. + +**S10b 판정 경계 (v4 확정)** — v3은 산문 줄의 **모든** `§N` 뒤에 즉시 제목 병기를 요구했다. +그 결과 절 번호가 참조가 아니라 문장의 구성요소로 쓰인 경우(`§4에 1개, §5에 21개`, +`**§3의 세 값**`)까지 실패했고, 배치 6에서 4/14가 같은 오탐을 보고했다. +제4부 서술규범 5의 취지는 **청크가 단독으로 해소되는 것**이지 같은 번호를 매번 늘려 쓰는 것이 아니다. +아래 넷을 전부 적용한다. + +1. 대상은 산문 줄뿐이다(위 3과 같다). +2. **면제 단위는 항(H3, `### N.M`) 구간이다. 절(H2)이 아니다.** 구간은 공통 정의대로 **다음 레벨 3 이하 + 헤딩까지**이며 H4 블록은 구간을 끊지 않는다(v4-r6. v4.0 구현은 첫 H4 앞에서 끊어 블록 산문 전부가 + 문서 전역의 단일 면제 단위를 공유했다 — 골격 의도보다 훨씬 넓은 면제였다. v4.1이 사양대로 고쳤다). + 그 구간에서 어떤 참조가 처음 등장할 때 1회만 제목 병기를 요구하고, 같은 구간의 재등장은 면제한다. + 단위를 절로 잡으면 제5부가 정한 적재 청크(H3/H4)보다 면제 범위가 훨씬 넓어져 + 「청크 단독 해소」라는 취지가 깨진다. 항 구간이 청크 경계와 맞다. +3. 절 번호가 **참조가 아니라 문장의 구성요소**로 쓰인 다음 두 형태는 면제한다. + - 계수: `§N에 <숫자>` (예: `§4에 1개, §5에 21개`) + - 소유격: `§N의` (예: `§3의 세 값`) + 그 밖의 조사(`§6.2를`, `§4에 실제…`)는 면제하지 않는다. 가리키는 용법이기 때문이다. + - (v4-r6) 범위 표기 `§6.1~§6.5`처럼 `~`로 잇는 양 끝은 면제한다. 청크를 가리키는 참조가 아니라 + 항의 집합을 지정하는 표기이고, 양 끝에 서로 다른 제목을 붙이면 문장이 무너지기 때문이다. + **실패 형태 두 가지를 알고 쓴다**(v4-r6 명시. 배치 12H에서 초회 S10b FAIL의 대부분이 이 둘이었다) — + 구현은 「§ 바로 뒤 2자 안의 *여는* 괄호」만 병기로 본다. 따라서 + ① `(§6.2 권리멸각 항변)`처럼 여는 괄호가 § **앞**에 오는 형태와 + ② `(§6.2)`·`(§6.0)`처럼 참조를 괄호로 **감싼** 형태는 제목이 있어도 실패한다. + 정규형은 `§6.2(권리멸각 항변)`뿐이다. +4. **줄 단위 면제는 두지 않는다.** v4 초안은 「서로 다른 참조가 3개 이상인 줄 전체 면제」를 두었으나, + 참조를 한 줄에 3개 몰아 쓰면 임의 개수의 미병기 참조가 통과하는 **회피 경로**가 된다. + 집계 줄의 가독성 문제는 위 2와 3으로 이미 해소된다. + +참조 패턴은 경로 자리표시자를 허용한다(`§5.P#.4`의 `#`). 자리표시자를 못 읽으면 +바로 뒤에 제목이 병기되어 있어도 실패한다. + +**린트 (L1과 같은 층에서 스크립트로 검사)** + +| ID | 검사 | 판정 경계 (v3 확정) | +|---|---|---| +| L-a | YAML 키가 전부 ASCII | 제5부 5.2의 GraphQL 식별자 요구 | +| L-b | 이율에 시행일 동반 | **§4.4와 §5의 표 행에만** 적용한다. 같은 행에 `연 \d+%`가 있는데 시행일이 없으면 실패. **기계판독 부대청구 주문 문언 줄은 대상이 아니다** — 그 줄은 §2.2와 바이트 동일해야 하므로(S11) 시행일을 넣을 수 없다 | +| L-c | 13판 표제가 §12.4 밖 헤딩에 등장 | **골격 고정 제목과 H1은 예외.** 「확인의 이익」·「청구원인사실」·「당사자적격」은 13판 목차에도 실재하므로 예외를 두지 않으면 §3.2와 §4가 무조건 걸린다 | +| L-d | 부인 누출 | §6.1~§6.6 **헤딩**에 `불성립`·`미교부`·`부존재`·`없었다`가 등장하면 실패(v4-r6: §6.6 포함) | +| L-e | 출처 잔재 | 검사 범위는 **§1 시작부터 §12 시작 직전까지**. §0과 §12는 출처 기재의 정규 위치다. 금지어 `프롬프트`·`평가서`·`자료 파일`·`.md`·`.pdf`·`_v1`. **`감정평가서`·`감정서`는 증거 명칭이므로 예외**(단어 경계 또는 예외 목록으로 처리) | +| L-f | 블록 필드 (v4-r6 신설) | 모든 `#### R-` 요건 블록에 §4.2의 **10필드가 그 순서대로** 존재, 모든 `#### 6.N.x` 항변 블록에 §6 템플릿의 **8필드가 그 순서대로** 존재. `주장책임 / 증명책임` 값에 슬래시가 **정확히 하나**이고 양쪽이 비어 있지 않음. `추정·전환` 값이 §4.2의 **7값** 중 하나. 결측은 §7 투영에서 `-`로 조용히 채워지고 슬래시 결여는 두 열에 복제되므로, v4-r5까지 22/22 PASS인 문서에도 남던 침묵 결함이다 | +| L-g | 조문 등재 (v4-r6 신설) | §1 시작부터 §12 시작 직전까지의 모든 줄(표 행 포함, 코드펜스 제외)에 등장하는 조문 토큰 `제\d+조(의\d+)?`가 **§12 텍스트에 등장**해야 한다. §12의 범위 표기 `제A조~제B조`·`제A조 내지 제B조`는 전개해 대조한다. 법령명은 대조하지 않는다(같은 번호의 다른 법령은 통과한다 — 느슨한 검사이며 누락만 잡는다). S9가 사건번호에 대해 하는 일을 조문에 대해 한다 | + +**§7 투영의 멱등성** — §7 총괄표는 손으로 쓰지 않고 §4.2·§5.P#.2·§6에서 스크립트로 투영한다. +**같은 입력에 대해 몇 번을 재투영해도 바이트 동일**해야 한다. 배치 4에서 재투영마다 빈 줄이 하나씩 +늘어난 사례가 있었다. 투영기는 기존 §7 구간을 완전히 제거한 뒤 다시 쓰고, 절 경계의 개행 수를 +고정한다. 게이트는 「투영 2회 연속 실행 후 파일 해시 동일」을 검사 항목으로 포함한다. + +**§7 `소속 절` 열**(v4-r6) — 투영기는 `§4(공통 청구원인사실)`·`§5(경로별 분기 요건사실)`로 절 제목을 병기한다. +표 셀은 S10·S10b의 대상이 아니므로 게이트와 충돌하지 않고, 행 청크가 단독으로 해소된다(제5부 5.3). + +`S8`이 v1 게이트 1을 대체한다. 경로 수와 분기 수를 같다고 요구하지 않고, `has_branch`가 참인 경로만 §5에 있으면 통과하므로 단일 경로 사건도 정상 통과한다. + +**구현 정본** — 위 사양의 표준 구현체는 `tmp/rf_draft/_shared/rf_gate.py` 한 파일이다(`RF_GATE_VERSION = 'v4.1'`, +v4-r6. 프롬프트 v.5-r5부터 코드블록 내장을 폐지했다). 사건종류마다 새로 쓰지 않는다. 게이트가 눈먼 지점은 곧 산출물의 눈먼 지점이 되므로, 구현이 갈리는 것 자체가 결함이다. + +### L2 링크 (레지스트리·외부 API 대조, 야간 배치) + +| ID | 검사 | +|---|---| +| L1 | `case_kind_id`가 leaf registry에 존재, `slug` 전역 유일 | +| L2 | 모든 `authority_ids`가 `RfAuthority`에 존재하고 `status != 폐기` | +| L3 | `claim_rule_pattern_ids`가 해당 청구취지작성규칙 문서의 실재 절 번호 | +| L4 | 판례 사건번호·선고일이 law.go.kr Open API 응답과 일치 | +| L5 | `adjacent_case_kinds`가 상호 참조(A→B이면 B→A) | + +### L3 심사 (LLM judge + 사람 표본, 재생성 트리거) + +| ID | 검사 | +|---|---| +| R1 | §4가 실제로 모든 경로 공통인가 | +| R2 | 부인과 항변이 올바르게 갈렸는가 | +| R3 | `절차효과` 값이 법적으로 맞는가 | +| R4 | 기간제한의 성질·효과 판정이 맞는가 | +| R5 | 부수급부 구간이 사건 성질에 맞는가 | +| R6 | 인용 판례가 그 명제를 실제로 지지하는가 | + +채점은 `evals/EVAL_RUBRIC.md` 차원 중 Substantive accuracy, Source integrity, Legal application, Temporal fit 4개를 0~4점으로 쓴다. 3점 미만이면 **해당 절만** 재생성한다. 날조된 인용은 평균점과 무관하게 즉시 실패. + +표본률: L1·L2는 전수, L3는 제8부 대표셋 전수 + 나머지 15% 무작위. + +--- + +## 제7부. 적용 예시 + +### 예시 A. 대여금 청구 (이행) + +- §1.0 재판모델: 이행 / §1.1 경로: P1 소비대차(민법 제598조), P2 준소비대차(제605조), P3 양수금 +- §1.2 `path_relation: 청구권경합`, `joinder_mode: 선택적` +- §4: `R-…-4-01` 반환 약정 성립 / `R-…-4-02` 금전 교부 / `R-…-4-03` 변제기 도래 +- §6.0: "빌린 것이 아니라 증여받았다" → **부인**(증명책임 원고). "변제했다" → 권리멸각 항변(피고) +- §4.4: 약정이율 구간 → 법정이율 구간 → 소장부본 송달 다음날부터 소송촉진법 구간 + +### 예시 B. 채무부존재확인 청구 (확인) + +- §3.2가 최대 쟁점. 이행의 소를 제기할 수 있으면 확인의 이익 부정 +- §4 제목 치환: 「피고 주장 채권의 발생 요건사실(증명책임: 피고)」 +- §4.0: 원고 부담 사실 — 피고가 채권을 주장하여 다투는 사실, 원고가 주장하는 변제 등 소멸사유 +- §6: 원고의 소멸 주장이 §4에 대한 부인인지 독립 사유인지 §6.0에서 구별 + +### 예시 C. 사해행위취소 청구 (형성) + +- §3.3: 민법 제406조 제2항, 안 날 1년 / 행위 5년, **출소기간** → 도과 시 **소각하**. 직권조사사항이나 도과의 증명책임은 피고(2021다309231) +- §4: 피보전채권 존재 / 재산권을 목적으로 한 법률행위 / 사해성 / 채무자의 사해의사. **수익자 악의는 추정** → §4.2 `추정·전환` 필드에 명기 +- §6.1: 수익자·전득자의 선의(증명책임 피고) +- §9.1: 효력의 인적 범위 = **상대적 효력**. 대세효 아님 + +### 예시 D. 공유물분할 청구 (형식적 형성) + +- §1.0: 형식적 형성. 법원은 당사자가 제시한 분할방법에 구속되지 않는다 +- §3.1: 공유자 전원이 당사자인 **필수적 공동소송** +- §4: 공유관계의 존재, 분할협의 불성립. 통상의 청구원인사실과 성격이 다름 +- §9.1: 물권변동 시점, 조정과 판결의 효과 차이 + +### 예시 E. 청구이의의 소 (집행관계) + +- §1.0: 집행관계. 목적은 집행력 배제이지 실체권 확정이 아니다 +- §3: 집행권원의 존재와 집행 미종료가 소의 이익 +- §4: 이의사유가 **변론종결 후**에 생긴 것일 것(민사집행법 제44조 제2항) +- §6.4: 판결로 확정된 채권의 시효는 민법 제165조 10년 +- §9.1: 기판력은 집행력 배제 범위에 그친다 + +### 예시 F. 제권판결에 대한 불복의 소 (재판공격) + +- §1.0: 재판공격. §4가 2단 +- §4 제1단: 공격대상 제권판결의 특정, 민사소송법 제490조의 법정 불복사유, 제491조의 **1개월 불변기간** +- §4 제2단: 본안 +- §3.3: 불변기간 도과 → 소각하 + +--- + +## 제8부. 카탈로그 확정과 회귀검증 + +### 8.1 계수 문제 + +`case_kinds.md`의 사건 종류 셀을 쉼표로 기계 분해하면 **134개**다. + +| 대분류·분쟁유형 | 개수 | +|---|---| +| 금전의 지급을 구하는 소 | 59 | +| 특정물의 인도를 구하는 소 | 5 | +| 의사의 진술을 구하는 소 | 30 | +| 특수한 유형의 이행의 소 | 4 | +| 확인의 소 (7개 분쟁유형 합계) | 27 | +| 형성의 소 | 9 | +| **합계** | **134** | + +여기에 **사건종류 셀이 비어 있는 3개 행을 각각 하나의 사건종류로 취급**한다. 3층 분류(소송 대분류 – 분쟁유형 – 사건종류)에서 마지막 층이 비어 있으면 그 분쟁유형 자체가 곧 사건종류이기 때문이다. + +| 빈 셀 행 | 대분류 | 사건종류로 승격 | +|---|---|---| +| 종류물(대체물)의 지급 또는 인도를 구하는 소 | 이행의 소 | 승격 | +| 증서의 진정여부를 확인하는 소 | 확인의 소 | 승격 | +| 기타 확인청구 | 확인의 소 | 승격 | + +**134 + 3 = 137**이 정본 계수다. + +`・`로 묶인 복합 표지(`하자보수비・할부대금・화해금・확약금・환급금・회원가입비 등`, `청산금・채무인수금・체당금・추심금・출자금 청구 등`)는 분해하지 않고 하나의 leaf로 유지한다. `・`까지 일관 분해하면 171개가 되지만, 복합 표지는 §1의 청구경로 해체로 문서 **내부에서** 처리하는 것이 이 골격의 설계이므로 leaf를 쪼개지 않는다. 곧 `・` 항목은 leaf 경계가 아니라 경로 경계다. + +### 8.2 확정 규칙 + +1. **분해 규칙 고정** — 쉼표를 leaf 경계로 하고 `・`는 분해하지 않는다. `・`로 묶인 항목은 `aliases`로 흡수하고, 실체적 차이는 §1의 청구경로로 전개한다. +2. **빈 셀 3개 승격** — 사건종류 셀이 비어 있는 3개 행을 각각 사건종류로 승격한다(§8.1). 계수는 137이다. +3. **잔여 범주의 문서 형태** — `기타 확인청구`, `기타 결의부존재확인`, `기타 지위확인`, `기타 권리확인`은 청구권의 발생원인이 하나로 특정되지 않는다. 이들 문서는 요건사실을 열거하는 형식이 아니라 **판정 가이드** 형식으로 쓴다. 곧 §1을 「어떤 확인청구인지 판별하는 기준과, 확정된 유형에 대응하는 사건종류 문서로의 라우팅 표」로 채우고, §3.2 확인의 이익과 §4의 확인대상 법률관계 존부라는 확인의 소 공통 요건만 §4에 두며, 개별 실체 요건은 §5에서 대표 유형별로 전개한다. 골격의 절 번호와 게이트는 그대로 적용된다. + **단서**(v4-r6) — 적극 확인과 소극 확인이 섞여 **확인대상 법률관계 존부의 증명책임 방향이 경로마다 반대이면** 제1부 원칙 2가 우선한다. 존부 요건은 §4에 두지 않고 §5의 경로별 블록에 두며, §4에는 확인의 이익의 기초사실 등 방향과 무관한 소송요건만 남긴다(제3부 「방향이 모든 경로에 직교하는 표지」). `주장책임 / 증명책임` 필드가 한 값이므로 반대 방향의 두 부담을 한 블록에 담을 수 없기 때문이다. +4. **개방형 `등` 처리** — `등`이 붙은 셀은 대표 청구권을 canonical name으로 하고 나머지를 `aliases`로 흡수한다. +5. **잠정 ID 허용** — 카탈로그 세부 확정 전에도 `PROV-###`와 `verification_status: UNVERIFIED`로 착수한다. 확정 시 ID 매핑 1회로 흡수한다. 카탈로그 확정을 직렬 선행조건으로 두면 착수가 무기한 지연되며, 자료수집 결과가 오히려 경로 경계를 결정하는 입력이 된다. + +### 8.3 leaf registry + +`case_kind_registry.json`에 7개 필드만 둔다. + +```json +{ "case_kind_id": "MON-001", "canonical_name": "대여금 청구", + "slug": "daeyeogeum-cheonggu", "aliases": ["대여금반환청구"], + "parent": "금전의 지급을 구하는 소", "action_type": "이행", + "catalog_version": "2026.1" } +``` + +유효기간·해시·모듈은 leaf마다 두지 않는다. 카탈로그 단위 버전으로 충분하다. + +### 8.4 대표 회귀검증셋 + +골격을 전수 적용하기 전에 아래를 인스턴스화해 유형 흡수력을 판정한다. + +**1단계 (6종, 재판모델 전 유형 커버)** + +| 사건 | 검증 대상 | +|---|---| +| 대여금 청구 | 이행·부수급부 구간·시효 | +| 채무부존재확인 | 확인의 이익·요건별 부담 | +| 사해행위취소 | 형성·출소기간·상대효·추정 | +| 공유물분할 | 형식적 형성·필수적 공동소송·주문 비구속 | +| 청구이의 | 집행관계·기준시·제165조 | +| 제권판결 불복 | 재판공격·2단 청구원인·불변기간 | + +**2단계 (7종 추가)** — 매매를 원인으로 한 소유권이전등기(동시이행·상환이행·의사진술 의제), 토지인도·건물철거(목적물 특정·인도집행), 경계확정(형식적 형성 중 확인과의 구별), 주주총회결의취소(회사법 특별규율), 재심(대상적격·보충성), 증서진정여부확인(제250조 예외), 사과광고·정정보도(헌재 구제한계·언론중재법 기간) + +**3단계** — 전 leaf 최소 인스턴스화 후 적대적 회귀시험(법령 개정 전후 경계, 반대 판례, 불완전 사실, 상호배타 경로와 이중회복) + +1단계를 통과하지 못하면 골격을 고치고, 통과하면 2단계와 병행하여 전수 생성에 착수한다. + +--- + +## 제9부. v1 대비 변경 이력 (v2에서 작성, 그대로 보존) + +### 법리 오류 시정 + +| # | v1 | v2 | 근거 | +|---|---|---|---| +| 1 | 소송요건 흠결 = 각하 | 이송 / 보정명령 후 소장각하명령 / 소각하판결 / 본안기각 4분 | 민사소송법 제34조 제1항, 제254조 | +| 2 | `불성립`을 권리장애 항변에 편입 | §6.0 신설, 불성립은 부인 | 증명책임 불이동. v1 §10.2와의 자기모순 해소 | +| 3 | 형성판결 = 대세효·소급효 | §9.1 효력 5축 분리 | 사해행위취소 상대효, 공유물분할 형식적 형성, 청구이의 집행력 배제 | +| 4 | 반대의무를 원고 요건사실로 전환 | 동시이행항변권은 피고 원용 사항 | 민법 제536조는 연기적 항변권 | +| 5 | 부존재확인 = 증명책임 역전 | 요건별 부담 부착, 원고 부담 사실 별도 | 법률요건분류설의 정상 적용 | +| 6 | 당사자적격에 전부·추심·총유 혼재 | 소송담당(적격)과 권리귀속(본안) 분리 | 대법원 2003다44387 | +| 7 | 제소기간을 형성의 소 전용으로 배치 | §3.3을 전 모델 필수 항으로 승격 | 점유회수 1년, 유류분 1년/10년, 상속회복 3년/10년, 정정보도 3개월/6개월 | +| 8 | 기간 도과 = 각하 | 출소기간(각하) / 제척기간·시효(기각) 분기 | 소 제기로만 행사 가능한지가 판정 기준 | +| 9 | 시효 목록에 제766조·제165조 누락 | §6.4에 추가 | 손해배상 계열 다수, 청구이의 필수 | +| 10 | "두 분기 동시 충족 시 예비적 병합" | 동시 충족 = 선택적 병합, 양립 불가 = 예비적 병합 | 방향이 반대였음 | +| 11 | 확인 대상 = 현재의 권리관계로 고정 | 증서진정확인의 제250조 예외 명시 | 사실의 확인을 허용하는 법정 유형 | +| 12 | 제202조의2를 범용 증명완화로 배열 | 손해액 산정에 한정, 증명방해는 자유심증 자료 | 대법원 2018다262103 | +| 13 | 권위 위계에 헌재 결정 없음 | 원칙 8에 편입, §12.3 신설 | 헌재 89헌마160 사과광고 | +| 14 | 이율 수치 고정표 | 기산사건 기반 구간표 | 대법원 2022다259753, 소송촉진법 이율 변동 | +| 15 | 1요건 1주요사실 절대화 | 평가적 요건·택일 요건·중복 지지 사실 허용 | §4.2 `다중 대응` 필드 | + +### 기계층 시정 + +| # | v1 | v2 | 근거 | +|---|---|---|---| +| 16 | 한글 property 이름 | 전부 ASCII | Weaviate property는 GraphQL 식별자 문법 | +| 17 | `date` 필드에 `2026-08-27` | RFC3339 변환 | 적재 전건 실패 방지 | +| 18 | 게이트 1 = 경로 수 = 분기 수 | S8(`has_branch` 기준) | 단일 경로 사건이 필연 실패했음 | +| 19 | 게이트 6 = §4.4와 §2.2 비교 | §2.2에 부대청구 문언 열 추가 후 S11 | 비교 대상 열이 부재했음 | +| 20 | 요건 번호 `①②③` | `requirement_id` 안정 ID | §4·§5·§6·§7 조인 키 부재 해소 | +| 21 | §6 템플릿에 대상요건 없음 | `대상요건` 필드 필수 | 게이트 3이 검사 불가였음 | +| 22 | `T코드` 참조 | `claim_rule_pattern_ids` | T코드는 규칙문서 10개 중 1개에만 존재 | +| 23 | `출처_자료` 경로 배열 | `source_materials` 객체 배열(경로+출처모델) | 커버리지가 사건마다 다름 | +| 24 | 사건명을 파일명·ID로 | `case_kind_slug` 유일키 | 표기 불일치가 실재 | +| 25 | 문서 단위 판례 최종확인일 | 권위 레지스트리 `checked_at` 최솟값 | 부분 확인의 은폐 방지 | +| 26 | §7 표 전체를 청크 1개로 | 행 단위 청크, `body` 벡터만 색인 | 표 임베딩은 행별 변별력 소실 | +| 27 | 절 번호 참조 | 절 번호 + 제목 병기, `refs_out` 1-hop 확장 | 단독 청크에서 `§6.2`는 해소 불가 | +| 28 | `해당 없음` 단일 값 | `해당 없음` / `UNKNOWN` / `UNVERIFIED` 3분 | 비적용과 미확인의 구별 | +| 29 | 절별 백분율 목표 | 폐기, 필수 구성요소로 판정 | 합계 90~138%로 제약 불성립. 실제 산출물과 배치 | +| 30 | 절 번호 고정 근거 = 횡단 검색 | 절 단위 생성·재생성 앵커 | 횡단 검색은 의미 필드로도 가능 | + +### 평가 리포트에서 채택하지 않은 것 + +| 리포트 제안 | 불채택 사유 | +|---|---| +| C0~C11 외피로 전면 교체 | §0~§12와 내용이 1:1에 가까운 재명명. §4/§5 이층 구조를 소멸시켜 표지형 사건종류를 해체하는 유일한 장치를 잃는다 | +| 3층 아키텍처, 13종 정규 개체 | 산출물은 서면으로 변환되는 문서이고 벡터 DB 적재는 파생물이다. 정규화 비용이 문서 작성 비용을 넘고, 결과 그래프는 법조인이 검토할 수 없다 | +| `PROPOSITION`(심판대상 명제) 별도 층 | 우리 실무에서 요건과 심판대상 명제는 동일 단위로 다뤄진다. 문서 간 명제 ID 정합성을 유지할 수단이 없다 | +| 18종 선택 모듈 조합식 | 조합 폭발로 문서 간 대응관계가 사라져 공통 골격의 목적이 소멸한다. 특별법 모듈은 대상 leaf와 1:1이라 간접층만 늘린다. 재판모델 6종 축과 오버레이 2종으로 흡수 | +| `calculation_check`(독립 재계산값) | 요건사실론 문서는 이율·기산점의 규칙을 쓰는 문서이지 금액을 계산하는 문서가 아니다 | +| `production_burden`, `standard_of_proof` | 우리 민사에 독립 대응 개념이 없고, 증명도는 소명을 제외하면 상수다 | +| G0~G12 전면 교체 | G1·G2·G6·G7·G8·G10은 스크립트 판정 불가다. 자동 게이트와 사람 검토를 같은 층에 두면 둘 다 작동하지 않는다. 3계층으로 재편 | +| 15단계 의사결정트리를 본문에 편입 | 골격이 체크리스트로 변질된다. 생성 프롬프트 층으로 이동 | +| canonical 137 확정을 직렬 선행조건으로 | leaf 확정과 문서 생성은 병렬 가능하며, 자료수집 결과가 leaf 경계를 결정하는 입력이 된다. `PROV-###`로 착수 | +| "판례 항상 우선"이 법령과의 우열을 혼동한다는 비판 | 과잉 독해. v1 원칙 6의 문언은 교과서 대 판례를 말할 뿐이다. 원칙 유지하되 헌재 결정 누락만 시정 | +| 문장 단위 전수 권위 앵커링 | 앵커링 단위를 요건·항변·주문효과·부수급부 구간으로 한정 | +| 소장·답변서 변환 매트릭스 신설 | §10과 청구취지작성규칙 코퍼스가 이미 두 층을 담당한다. 세 번째 매핑 문서는 동기화 비용만 만든다 | +| `재권/제권판결` 표기 정정을 P0로 | **사실 오인.** `case_kinds.md` 제18행은 이미 `제권판결에 대한 불복의 소`로 올바르게 표기되어 있다(`재권판결` 0건, `제권판결` 1건). 리포트 자신이 3.2와 12장에서만 오기했고 5.5·6.4·10장에서는 정확히 표기했다. 존재하지 않는 오기를 선행조건으로 삼으면 작업 전체가 근거 없이 정지한다 | + +--- + +## 제10부. v2 대비 변경 이력 (v3) + +개정 근거는 배치 4(10개 사건종류 병렬 생성)에서 **독립 실행된 워커들이 교차 수렴한 지적**이다. +독립 지적 횟수를 신뢰도로 삼았다. 여러 사건종류에서 같은 항목이 걸렸다면 사건 특유의 사정이 아니라 +골격 자체의 결함이다. + +### 10.1 본문 결함 시정 + +| # | 항목 | v2 | v3 | 근거 · 독립 지적 | +|---|---|---|---|---| +| 1 | 학설 격리처 | 원칙 8이 「§12.5」 | 「**§12.6**」 | 제2부 §12 목록(12.5=웹 자료, 12.6=학설)과 충돌. **10/10** | +| 2 | 상속회복청구권 | 제척기간 / 기각 | **출소기간(제소기간) / 소각하** | 대법원 92다3083. 직권조사 후 부적법 각하 | +| 3 | 유류분반환청구권 | 제척기간 | **소멸시효** | 민법 제1117조 표제, 대법원 92다3595, 13판 1029면 | +| 4 | §3.2 항 제목 | 「확인의 이익」 | 「**소의 이익(확인의 이익 포함)**」 | 이행의 소에서 권리보호이익이 첫 쟁점인 사건종류가 담길 자리가 없었다 | +| 5 | `filing_deadline.kind` | 없음\|출소기간\|제척기간 | **+ 소멸시효** | 대응값 부재로 `없음` 우회가 강제되어 「기간 제한 없음」으로 오독됐다 | +| 6 | §4.2 `추정·전환` | 4값 | **+ 의사해석규정상 추정** | 민법 제398조 제4항 위약금 추정의 성질(13판) | +| 7 | §6.0 `성질` | 6값(암묵) | **7값 명시 + 직권 참작사유** | 직권감액(제398조 제2항)·과실상계·실손해 부존재가 표 밖으로 밀려났다 | +| 8 | §6 `주문에 미치는 영향` | 4값 | **+ 소변경 후 상환이행(2단)** 및 `소변경·석명 요부` 필드 | 지상물매수청구권, 대법원 94다34265 전원합의체의 2단 효과 | +| 9 | §6.4 시효 정지 문언 | 「완성유예」 | 「**정지**」(민법 제179조~제182조) | 우리 민법 문언은 중단·정지다 | +| 10 | §4.2 필드 수 | 9필드 | **10필드**(`적용 경로` 신설) | 생성 프롬프트가 임시로 덧붙이던 것을 정규화 | +| 11 | §11.2 금지규칙 13 | 「잔여 범주를 문서로 만들지 않는다」 | 「**단일 청구권 요건 열거형으로 쓰지 않는다**」 | 제8부 8.2 규칙 3과 정면 충돌했다 | +| 12 | 부존재확인 §4 치환 | 제목 치환 | **정규 헤딩 유지 + 굵은 부제**, 혼합 표지는 부제 미적용 | S2 유지. 혼합 leaf(유치권확인 또는 부존재확인)에서 §4.1과 어긋났다 | +| 13 | §0 레이아웃 | 미규정 | **`---`가 파일 첫 바이트 → H1 → `## §0.`** | 코퍼스 50건 중 10건이 이탈. 제5부 적재가 첫 바이트를 전제한다 | +| 14 | `case_family` vs `action_type` | 미규정 | **갈릴 수 있음을 명시, §1.0에 괴리 기록** | 생성 프롬프트의 오버라이드를 흡수 | + +### 10.2 기계층·게이트 시정 + +| # | 항목 | v2 | v3 | 근거 · 독립 지적 | +|---|---|---|---|---| +| 15 | 5.1 스키마 | `additionalProperties:false`인데 properties 불완전 | **전 키 열거** | v2 자신의 §0 예시가 스키마를 통과하지 못했다 | +| 16 | S4 regex | `[A-Z]{3}` 만 | **`(?:[A-Z]{3}\|PROV)`** | PROV 문서가 전부 거부됐다 | +| 17 | S2 기대 헤딩 | §0 포함 여부 미정 | **§0 필수 포함**, S2b(H1 유일)·S2c(레이아웃) 신설 | `## §0.` 헤딩이 빠진 문서가 S1~S14를 전부 통과했다 | +| 18 | S3 빈 절 판정 | 「빈 절」 미정의 | **leaf 헤딩만 검사** | 자식 항을 가진 컨테이너 절이 필연 실패. **3/10** | +| 19 | S6 귀속 판정 | 절 번호 기준 | **ID의 절 필드 기준**(§4.0은 `-4-nn`) | 부존재확인형의 §4.0이 §5로 오분류됐다 | +| 20 | S9 사건번호 정규식 | `\d{2,4}[가-힣]{1,3}\d+` 단독 | **조·항·호·면·분·년 배제 + `제` 선행 배제 + `100분의`/`연 ` 배제** | 조문 표기 대량 오탐. **8/10** | +| 21 | S9 조회 범위 | §12.2 | **§12.2 ∪ §12.3** | 헌재 결정번호는 §12.3 소관 | +| 22 | S10 참조 패턴 | `§\d+(\.\d+)*` | **`(\.P\d+(\.\d+)*)?` 확장, 산문 줄에만** | `§5.P2.3` 미해소, §7 `소속 절` 셀 오검출. **5/10** | +| 23 | S11 §4.4 탐색 | 위치 가정 | **위치 무관 + 문언 줄 합집합 대조** | §4 말미의 §4.4에서 실패 | +| 24 | S12 §3 5필드 | 무조건 요구 | **3분 값 항은 면제** | 이행의 소 §3.2가 통과 불가였다. **2/10** | +| 25 | L-b 적용 범위 | 「행」 미정의 | **§4.4·§5의 표 행에만** | 기계판독 문언 줄과 S11이 충돌했다 | +| 26 | L-c 예외 | 없음 | **골격 고정 제목·H1 예외** | 「확인의 이익」·「청구원인사실」이 무조건 걸렸다. **4/10** | +| 27 | L-e 범위·예외 | 문서 전역 | **§1~§12 직전, `감정평가서` 예외** | 증거 명칭 오탐. **3/10** | +| 28 | §7 투영 | 멱등성 미요구 | **멱등 필수, 재투영 해시 동일 검사** | 재투영마다 빈 줄이 늘었다 | +| 29 | 게이트 구현 | 사양만 제시 | **표준 구현체를 생성 프롬프트에 내장** | 워커 10명이 각자 구현해 판정이 갈리고 라운드 1을 소모했다 | +| 30 | `schema_version` | `"2.0.0"` | `"3.0.0"` | 개정 시 함께 올린다 | + +### 10.3 v2 문서를 쓰는 기존 산출물의 처리 + +`사건종류_요건사실론문서/`의 기존 문서는 **일괄 개정하지 않는다.** 다음 규칙으로 흡수한다. + +1. 해당 사건종류를 다음에 재생성·개정할 때 v3 사양으로 올린다. +2. 그때 `schema_version`을 `"3.0.0"`으로, `doc_version`을 한 단계 올린다. +3. §0 레이아웃(제2부 §0)과 §12.6 학설 격리는 개정 없이도 기계 검사로 잡히므로, + `---` 위치 이탈 10건과 `## §0.` 헤딩 누락 문서는 **개정 순서와 무관하게 먼저 고친다.** + 적재 파이프라인이 이 둘에 의존한다. + +--- + +## 제11부. v3 대비 변경 이력 (v4) + +개정 근거는 배치 6(14개 사건종류 병렬 생성, 프롬프트 v.4 / 골격 v3)에서 **독립 실행된 워커들이 +교차 수렴한 지적**이다. v3과 같은 원칙으로 독립 지적 횟수를 신뢰도로 삼았다. + +v4는 **오기 시정과 판정 경계 완화만** 담는다. 문서 형식은 바꾸지 않았고, 따라서 +`schema_version`은 `"3.0.0"` 그대로다. + +### 11.1 반영한 5건 + +| # | 항목 | v3 | v4 | 근거 · 독립 지적 | +|---|---|---|---|---| +| 1 | S11(a) 이율 셀 | 4값 존재만 요구 | **이율 부존재가 정답인 행은 `해당 없음 — <사유>`가 정규 값** | 장래 정기금 구간에서 임의 문구를 지어내야 통과했다. **5/14** | +| 2 | S10b 제목 병기 | 산문의 모든 `§N` | **항(H3) 구간별 첫 등장 1회 + 형태 기반 면제**(계수 `§N에 <숫자>`, 소유격 `§N의`) | 절 번호가 문장 구성요소인 경우까지 실패. **4/14**. 초안의 「3개 이상 참조 줄 면제」와 절(H2) 단위 면제는 아래 11.4 #1~#3에서 폐기했다. 판정 경계의 정본은 제6부이며 L1 표준 구현체도 형태 기반을 구현한다 | +| 3 | §4.2 `추정·전환` | 열거값 나열만 | **열거값 하나만, 설명은 `증명 실무`로** | §7 총괄표로 문자열 그대로 투영되어 열 정렬이 무너졌다. **2/14** | +| 4 | §6 `주문에 미치는 영향` | 5값 | **+ `소각하`** | 소송요건 흠결을 다투는 주장을 8필드 블록으로 표현할 자리가 없었다. **1/14** | +| 5 | 제2부 §0 YAML 예시 | `schema_version: "2.0.0"` | **`"3.0.0"`** | 제5부 5.1의 `{"const":"3.0.0"}`과 자기모순. 사양 차원의 자기모순이지 게이트 실패는 아니다(S1 구현이 값을 보지 않는다). **1/14** | + +### 11.2 의도적으로 반영하지 않은 1건 + +| 항목 | 지적 | 보류 사유 | +|---|---|---| +| 린트 L-c | 대조 재료가 목차 txt의 원문 줄(점선·쪽번호 포함)이라 사실상 무조건 PASS. 13판 표제 유출을 못 잡는다. **3/14** | 나머지 5건과 **방향이 반대**다. 이 수정은 검사를 **엄격하게** 만들므로 기존 코퍼스 64건 중 새로 FAIL로 돌아서는 문서가 나올 수 있고 그 규모를 아직 측정하지 않았다. 또 지적자 자신이 밝혔듯 「변제」·「상계」 같은 짧은 표제가 §6 항변 블록 제목과 충돌하므로, **최소 길이와 예외 목록을 먼저 정해야 한다.** 이는 오기 시정이 아니라 사양 설계 결정이므로 별도 개정으로 다룬다. | + +### 11.3 게이트 구현체에 미치는 영향 + +5건 중 **구현 변경이 필요한 것은 2번(S10b) 하나뿐**이다. + +- 1번(S11 이율 셀): 현행 구현은 `any(not c for c in r[1:5])`로 **빈 셀만** 실패시킨다. + `해당 없음 — …`은 이미 통과하므로 구현 무변경. v4는 그 값을 정규 값으로 **명시**한 것이다. +- 3번(`추정·전환`), 4번(`소각하`): 두 필드 모두 게이트가 열거값을 검증하지 않는다. 구현 무변경. +- 5번(`schema_version` 예시): 스키마의 `const`는 `"3.0.0"` 그대로다. 구현 무변경. +- 2번(S10b): 구현 변경 필요. **완화 방향이므로 현재 통과 중인 문서는 어느 것도 실패로 바뀌지 않는다.** + +### 11.4 적대적 검증에서 걸러낸 v4 초안의 결함 + +v4 초안을 5개 독립 관점으로 적대 검증하고, 각 지적을 다시 반증 시도했다(12건 중 6건 생존). +생존 6건은 전부 반영했다. 초안이 틀렸던 것을 기록으로 남긴다. + +| # | 초안의 결함 | 시정 | +|---|---|---| +| 1 | S10b 완화 규칙이 **자신이 오탐 사례로 인용한 두 예시**(`§4에 1개…` 참조 2개, `**§3의 세 값**` 참조 1개)를 면제하지 못했다. 규칙의 임계값이 3개였다 | 임계값 방식을 버리고 **형태 기반 면제**(계수 `§N에 <숫자>`, 소유격 `§N의`)로 교체 | +| 2 | 「줄에 참조 3개 이상이면 줄 전체 면제」가 **회피 경로**였다. 참조를 몰아 쓰면 임의 개수의 미병기 참조가 통과한다 | 줄 단위 면제 폐기 | +| 3 | 면제 단위를 **절(H2)**로 잡았으나 제5부의 적재 청크는 H3/H4다. 면제 범위가 청크보다 훨씬 넓어 「청크 단독 해소」 취지가 깨졌다 | 면제 단위를 **항(H3) 구간**으로 축소 | +| 4 | 참조 정규식이 경로 자리표시자 `§5.P#.4`를 읽지 못해, 바로 뒤에 제목이 병기되어 있어도 실패했다 | `P` 뒤에 `#` 허용 | +| 5 | 머리말과 11.1이 「`"4.0.0"`을 쓰면 S1이 실패한다」·「예시를 복사하면 S1이 필연 실패」라고 단언했으나 **거짓**이다. 구현체의 S1은 값을 대조하지 않는다(실측: `"4.0.0"` 문서가 전 항목 PASS, 코퍼스의 `"2.0.0"` 50건도 전부 S1 PASS) | 두 문장을 사실로 정정하고, 값 검사를 넣지 않은 이유(코퍼스 50건 즉시 FAIL)를 명시 | +| 6 | (생성 프롬프트 쪽) 민법 제165조를 집행권원 종류와 무관하게 일반화했다. 집행증서는 기판력이 없어 「판결과 동일한 효력」이 아니므로 제165조가 적용되지 않는다 | 경로별로 분기하고 제3항(변제기 미도래 채권 제외)을 추가 | + +반증되어 반영하지 않은 지적 6건 중 셋은 §3과 §6의 편제 경계, `소각하` 블록의 `대상요건` ID 부재, +§4.2 `추정·전환`에 대한 기존 코퍼스의 부적합을 다룬다. 근거는 있으나 **v4의 범위(오기 시정과 완화)를 +넘는 사양 설계 변경**이므로 다음 개정으로 넘긴다. + +### 11.5 v3 문서를 쓰는 기존 산출물의 처리 + +v4는 형식을 바꾸지 않았으므로 **기존 문서를 개정할 필요가 없다.** +`schema_version`도 올리지 않는다. 다음 재생성 때 v4 사양으로 쓰면 족하다. + +--- + +## 제12부. v4 판 안에서의 개정 이력 (리비전) + +**파일명이 `요건사실론_문서_공통골격_v4.md`로 같아도 내용은 개정된다.** +배치 9(2026-09-04 00:29~01:33)와 배치 10(같은 날 15:45~16:30)이 **서로 다른 리비전을 읽었고**, +그 사실이 실행 후에야 파일 크기 변화로 드러났다. 같은 일이 반복되지 않도록 아래를 규칙으로 둔다. + +### 12.0 리비전 규칙 + +1. 이 문서를 고칠 때마다 **12.1의 표에 행을 추가하고 머리말의 「현재 리비전」을 갱신한다.** + 리비전 번호는 `v4-r`이고 `schema_version`(`"3.0.0"`)과 무관하다. 산출물에 기록하지 않는다. +2. 고치기 전에 **원본을 `요건사실론_문서_공통골격_v4_r_outdated.md`로 보존한다**(``은 그 원본의 + 리비전 번호). v4-r3까지 쓰던 `_<월>_<일>_outdated` 규칙은 **같은 날 두 번 고치면 이름이 충돌**했고 + 실제로 충돌했다(2026-09-04에 두 번 고쳤고 앞선 원본이 규칙 밖 이름 `_old`로 피신했다). + 기존 사본의 매핑은 12.1 표의 「보존 파일명」 열에 있다. +3. **이 파일을 git에 추적시킨다.** 현재 추적되지 않아(`git status`에서 `??`) 변경 내용을 diff로 + 확인할 수 없다. 추적되지 않으면 회귀검증이 불가능하고, 배치가 어느 리비전을 읽었는지도 사후에 + 확인할 수 없다. 배치 10에서 실제로 이 문제가 발생했다. +4. 병렬 배치의 오케스트레이터는 **배치 시작 시 이 파일의 sha256과 리비전 번호를 preflight에 적는다.** + 워커의 최종 보고에도 자기가 읽은 리비전을 적게 한다. +5. (v4-r5) **리비전 변경 기록 절은 뒤에 붙이고 기존 번호를 밀지 않는다.** + 12.2~12.5가 r1~r4의 기록이고 12.6·12.7은 기록이 아닌 절인데, 새 기록을 12.6에 끼우면 + 본문 여러 곳이 12.6·12.7을 그 번호로 가리키고 있어(제2부 §12 목록, 12.6의 잠정 처리 규칙 참조 등) + 중간에 끼우면 그 참조가 통째로 어긋난다. 그러므로 r5의 기록은 + **12.8**이고, 이후 리비전도 문서 끝에 이어 붙인다. 절 번호는 시간 순서가 아니라 고정 좌표다. +6. (v4-r5) **보존 파일명은 2026-09-05에 규칙 2의 기본형으로 전건 정리했다.** + 그전에는 `_orig`·`_old`·`_<월>_<일>_outdated`·`_r`·`_r2`가 섞여 있었고 숫자가 실제 리비전과 + 어긋나기까지 했다(`..._v4_r.md`가 v4-r2, `..._v4_r2.md`가 v4-r4였다). + **지금은 `..._v4_r_outdated.md`의 ``이 그 파일이 담은 리비전과 일치한다.** + 그래도 **판별의 정본은 파일명이 아니라 12.1 표의 sha256이다.** 이름은 사람이 읽기 위한 것이고 + 대조는 해시로 한다. 새 보존본을 만들 때 규칙 2를 어기면 이 정합이 다시 깨진다. + +### 12.1 리비전 표 + +| 리비전 | 일시 | 크기 | sha256(앞 12) | 보존 파일명 | 근거·내용 | +|---|---|---|---|---|---| +| v4-r0 | 2026-09-03 22:28 | 96,397 B | `27d8ab7106c8` | `..._v4_r0_outdated.md` | 배치 6 결함 보고. v4 초판(제11부) | +| v4-r0a | 2026-09-04 10:26 | 96,645 B | `f4d09bff882a` | `..._v4_r0a_outdated.md` | 제11부 11.1 표 2행만 다르다. 개정 경위 미기록 — 이 표를 만들기 전의 상태다 | +| v4-r1 | 2026-09-04 10:27 | 99,121 B | `c713730f83bf` | `..._v4_r1_outdated.md` | 배치 9 결함 보고. 12.2의 3건 | +| v4-r2 | 2026-09-04 19:56 | 105,759 B | `3a5e92410040` | `..._v4_r2_outdated.md` | 배치 10 결함 보고. 12.3의 3건 | +| v4-r3 | 2026-09-04 20:30 | 112,965 B | `e05a535d065d` | `..._v4_r3_outdated.md` | 배치 9·10 잔여 후보 정비. 12.4의 2건 | +| v4-r4 | 2026-09-04 20:42 | 122,923 B | `e20bb6000fab` | `..._v4_r4_outdated.md` | r2·r3에 대한 적대적 검증의 지적 반영. 12.5의 5건 | +| v4-r5 | 2026-09-05 13:03 | 137,800 B | `79a64a5bbcce` | `..._v4_r5_outdated.md` | 배치 11 결함 보고. 12.8의 1건(+프롬프트 2건) | +| v4-r6 | 2026-09-09 (현재 파일) | (현재) | (자기 참조 불가 — 아래 주) | (아직 없음) | 배치 12H 패치 후보 반영. 12.9의 11건 + 게이트 v4.1 | + +**보존 파일명은 2026-09-05에 전건 정리했다.** 위 표의 ``은 이제 그 파일이 담은 리비전과 일치한다. +정리 전에는 `..._v4_orig.md`(r0)·`..._v4_old.md`(r0a)·`..._v4_9_4_outdated.md`(r1)· +`..._v4_r.md`(r2)·`..._v4_r2.md`(r4)로 접미사 체계가 셋 섞여 있었고 숫자가 실제와 어긋났다. +이름을 바꿀 때 **전건 사전 해시 검증 → 이동 → 사후 재검증**을 걸어 내용 변형이 없음을 확인했다. +**그래도 대조는 이름이 아니라 sha256으로 한다**(12.0 규칙 6). + +**현재 리비전 행의 sha256은 비워 둔다.** 문서가 자기 해시를 담을 수 없기 때문이다(적으면 그 순간 달라진다). +오케스트레이터는 배치 시작 시 현재 파일의 해시를 계산해 **preflight에 적고**, 다음 개정 때 그 값이 +이 표의 직전 행으로 내려온다. 따라서 **대조는 「직전 행들과 다르면 현재 리비전」**으로 한다. + +**표의 용도** — 12.0 #4가 요구하는 preflight 대조의 정본이다. 오케스트레이터는 배치 시작 시 +현재 파일의 sha256 앞 12자리를 계산해 이 표의 어느 행과 같은지 확인하고, 그 리비전 번호를 +워커 브리프에 적는다. 어느 행과도 같지 않으면 **기록되지 않은 개정이 있는 것이므로 중단하고 보고한다.** +(`v4-r0a`는 그렇게 발견된 행이다. 이 표를 만들기 전의 개정이어서 경위가 남아 있지 않다.) + +### 12.2 v4-r1에서 바꾼 것 (3건) + +1. **제6부에 「게이트를 거는 시점」 절 신설.** 게이트는 §0~§12가 모두 존재하는 조립 완료 문서에만 건다. + §0 stub 단계에 걸면 S1이 필수 키 부재로, S8이 경로 ID 집합 불일치로 **반드시 실패한다.** + 이 FAIL은 문서의 결함이 아니라 검사 시점의 오류다. 배치 9에서 워커 2명이 이 FAIL을 + 라운드 1 실패로 오독했고, 배치 10에서는 4건 모두 발생하지 않았다. +2. **S1의 사양과 구현 차이를 명시.** 사양은 5.1 스키마 전수(`additionalProperties: false` 포함)이나 + 표준 구현체는 그 부분집합(필수 키 11개의 존재, 2개 필드의 형식, 4개 필드의 열거값, 교차조건 2건)만 본다. + 미열거 키의 혼입과 `schema_version`의 값은 잡지 않는다. +3. **S11(a)에 역방향 오용 금지 추가.** 이율이 존재하는 행에 3분 값을 쓰지 않는다. + 앞 구간의 이율이 그대로 이어지고 **특례이율의 적용만 배제되는 구간**(항쟁의 상당성이 인정되는 구간 등)은 + 이율 부존재 행이 아니다. 게이트는 빈 셀만 잡으므로 이 오용을 잡아주지 못한다. + +### 12.3 v4-r2에서 바꾼 것 (3건) + +1. **§3.3 표의 정정보도·반론보도 행을 「출소기간 / 소각하」로 정정.** 근거는 언론중재법 제26조 제3항 전단. + 상세는 §3.3의 「v4 정정 1건」. 배치 10의 PROV-098이 원문으로 발견했다. +2. **§4의 3분 값 예시 문구에 절 제목을 병기.** `§5가 기본 단위` → `§5(경로별 분기 요건사실)가 기본 단위`. + 제6부 S10b의 면제 형태가 계수와 소유격뿐이어서 **골격이 지정한 문구를 그대로 쓰면 반드시 S10b가 실패**했다. + 기존 코퍼스 43곳 전부가 워커의 독립적 우회로 제목을 보충하고 있었다(배치 10 전수 확인). + 골격 3곳과 생성 프롬프트 2곳을 함께 고쳤다. + +3. **머리말에 「현재 리비전」 표기를, 문서 말미에 제12부(리비전 추적 체계)를 신설했다.** + 워커의 보고 의무가 늘었다 — 읽은 골격 리비전 번호를 최종 보고에 적어야 한다. + (v4-r2 원본에는 이 3번이 누락되어 있었다. 규칙을 세운 개정이 첫 적용에서 그 규칙을 어겼고, + v4-r4의 적대적 검증이 이를 지적했다. r4에서 보충한다.) + +### 12.4 v4-r3에서 바꾼 것 (2건) + +**품질 개선이 아니라 정비다.** 두 건 모두 영향 범위가 좁고, 지금까지의 산출물은 근사한 사실을 +§12.7에 공개해 왔으므로 오류가 숨지 않았다. 다만 근사가 반복되므로 정본을 준다. +**두 건 다 게이트 구현체를 건드리지 않는다**(`RF_GATE_VERSION` 무변경, 코퍼스 회귀 없음). + +1. **§4.2 `추정·전환`에 「증거법칙적 추정」을 신설했다.** + 민사소송법 제356조 제1항·제358조의 진정성립 추정은 조문에 근거하지만 반증으로 깨진다. + 「법률상 추정」으로 적으면 반대사실의 본증을 요구한다는 뜻이 되어 증명도가 한 단계 올라간다. + 게이트는 이 필드의 열거값을 검증하지 않고 §7에 문자열로 투영만 하므로 값 추가에 회귀가 없다. + 배치 10의 증서진부확인이 근사했던 자리다. 상세는 §4.2의 신설 이유. + +2. **§6.0 「직권 참작사유」를 두 갈래로 나누고 (ii)에 블록 전개를 허용했다.** + v4-r2까지 §6.0은 「이 값을 쓰는 행은 블록을 만들지 않는다」고 무조건 금지했는데, + §6 템플릿의 `주문에 미치는 영향` = `소각하`(v4 신설)는 조건부로 블록을 허용하고 있어 + **같은 문서 안에서 정면으로 충돌**했다. 배치 9의 이사회결의무효 워커가 금지 쪽을 읽고 + 승패를 가르는 방어를 「권리멸각 항변」으로 근사했다(R2 3점). + (i) 실체법상 직권 참작(감액·과실상계)은 블록 금지 그대로, (ii) 소송요건의 소멸·흠결은 + 실익이 있으면 블록 허용으로 나누었다. **열거값 7개는 그대로 두었으므로 게이트 상수 + `SUNG_OK`와 S13이 무변경이고 코퍼스 82건에 회귀가 없다.** + 함께 정정한 것 — §6 템플릿의 「두 자리를 동시에 쓰지 않는다」가 §11.2 금지규칙 15와 + 모순이어서 「§6.0 행을 지우지 않는다」로 고쳤고, 제6부 S7의 판정 경계 문구를 + 「블록을 요구하지 않는다(있으면 똑같이 검사한다)」로 정확히 했다(구현 무변경). + 블록 전개의 전제로 **그 소송요건이 §4·§5에 `요건분류: 소송요건`인 R-ID로 실재할 것**을 명시했다. + S7이 `대상요건`의 실재를 검사하므로 이 전제가 없으면 블록이 게이트에서 실패한다. + +### 12.5 v4-r4에서 바꾼 것 (5건) + +**r2·r3에 대한 적대적 검증(7 에이전트)의 지적을 반영한 것이다.** 총평은 `needs_fix`였고, +지적의 핵심은 「표의 한 행만 고치고 그 행을 낳은 규칙은 그대로 두었다」였다. + +1. **원칙 6과 §3.3 판정 규칙을 3분기로 고쳤다**(가장 무거운 지적). + r2는 §3.3 표의 정정보도 행만 고치고 **그 결론을 낳은 판정 규칙 두 곳을 손대지 않았다.** + 규칙은 「소 제기로만 행사 가능 → 출소기간 / 재판외 행사로 족함 → 제척기간」이라는 배타적 이분법인데, + 정정보도청구권은 제14조 제1항이 재판외 청구를 명문으로 허용하므로 **규칙을 문자대로 적용하면 + 여전히 「제척기간 / 기각」이 나온다.** r2의 정정 블록은 규칙에 없는 문언 기준을 「위 판정 규칙상」이라고 + 원용하고 있었다. ③호(별도 조문이 소 제기 기간을 다시 거는 경우)를 신설해 규칙과 결과를 일치시켰다. + **같은 구조의 다른 사건종류에서 같은 오류가 재생산되던 것을 막는다.** +2. **§3.3 표의 성질 셀을 단일 열거값으로 고쳤다.** r2는 「제척기간이면서 제26조 제3항에 의한 출소기간」이라는 + 복합 문자열이었는데, `filing_deadline.kind`는 단일값이고 생성 프롬프트가 이 표를 front matter의 + 파생원으로 지정한다(「filing_deadline ← §3.3」). 파생 지점에서 단일값 추출이 모호했다. + 「**출소기간**(판정 규칙 ③)」으로 고쳐 표·12.3·프롬프트 캐시가 한 값을 말하게 했다. +3. **근거 열에 제16조 제3항 준용을 넣고, 각하의 재판형식 구별을 추가했다.** + 반론보도가 제14조 제1항 기간에 걸리는 연결고리가 제16조 제3항의 준용인데 누락되어 있었다 + (산출물 PROV-098이 골격보다 정확한 역전이 있었다). 또 제26조 제6항에 따라 + **정정보도의 소는 판결로, 반론·추후보도는 가처분절차이므로 결정으로 각하**한다. +4. **§4 3분 값 문구의 근거 문장을 실측대로 완화했다.** 「반드시 실패한다」는 과장이었다 — + S10b의 면제 단위가 (H3 구간, 참조)의 첫 등장 1회이므로, 같은 구간에서 앞서 제목과 함께 등장했으면 + 뒤의 `§5가`는 검사되지 않는다. 실측 23개 문서 중 21개에서만 실패한다. 「44곳」도 실측 43곳이었다. + 게이트가 괄호 안 문자열을 검증하지 않는다는 사실도 함께 적었다(괄호만 채우는 우회 차단). +5. **12.1 리비전 표를 실측으로 다시 세우고 보존 파일명 규칙을 고쳤다.** + r0 행이 서로 다른 두 산출물(96,397 B / 96,645 B)을 한 행에 섞고 있었고, 대조 키인 sha256이 없었으며, + `_<월>_<일>_outdated` 규칙은 같은 날 두 번 고치면 충돌했다(이미 충돌했다). + sha256·크기·보존 파일명 열을 넣고 `_r_outdated`로 바꿨다. 12.3의 누락 변경도 보충했다. + +### 12.6 아직 반영하지 않은 결함 후보 + +배치 9·10에서 보고되었으나 **v4의 범위(오기 시정과 완화)를 넘는 사양 설계 변경**이므로 다음 판으로 넘긴다. +근거는 `tmp/rf_draft/_shared/patch_candidates_batch9.md`·`patch_candidates_batch10.md`에 있다. + +**보류 항목에는 「다음 판까지의 잠정 처리 규칙」을 함께 둔다.** 규칙이 없으면 워커마다 우회가 갈리고, +그 갈림이 사양으로 되먹임되지 않는다(§4 3분 값 문구가 43곳에서 제각기 우회된 전례가 그것이다). + +- §4.2 `요건분류` 6값이 「사실의 확인」 유형(증서진부확인)에 맞지 않는다. + 확정 대상이 권리가 아니어서 권리근거·권리장애가 비유적으로만 들어맞는다. 부담 주체는 + 별도 필드에 정확히 적히므로 §7은 오염되지 않는다. 값 추가는 게이트 S4·S13과 무관하지만 + §7 투영과 검색 축에 영향이 있어 회귀 확인이 필요하다. + **잠정 처리**: 「소송요건」으로 적고 그 근사 사실을 §12.7에 남긴다. 새 값을 지어내지 않는다. +- 제6부 S9가 결정 사건번호(`2014그553` 등)를 정상적으로 잡는다는 사실을 사양에 명시. + **잠정 처리**: 결정도 §12.2에 등재한다. 「결정은 판례가 아니다」라고 판단해 빠뜨리지 않는다. + +**v4-r3에서 목록에서 내린 2건** — §6.0 `성질`의 블록 전개 국면과 §4.2 `추정·전환`의 +증거법칙적 추정은 12.4에서 반영했다. 둘 다 열거값 집합이나 게이트 구현을 건드리지 않는 방식을 +택했으므로 코퍼스 회귀가 없다. + +**(v4-r5) 배치 11에서 추가된 보류 2건 → v4-r6에서 1건 해소.** 근거는 `tmp/rf_draft/_shared/patch_candidates_batch11.md`. + +- ~~§6.0 (ii) 「소송요건의 소멸·흠결」 블록의 배치~~ — **v4-r6에서 §6.6을 신설해 해소했다**(12.9의 1번). + 잠정 처리(§6.2 배치 + 유보)로 생성된 배치 11·12H의 문서는 재생성 대상이 아니다. +- **`claim_rule_pattern_ids`가 정보를 담지 못하는 경우가 있다.** 규칙 문서의 절 번호가 0~14의 + 단순 연번이면 이 필드가 사실상 아무것도 가리키지 못한다. T코드를 대체한 취지에 비추어 + LEAF/FORM ID를 담게 하자는 제안이 있다. **검증 미완** — 규칙 문서 여러 건의 절 번호 체계를 + 실제로 대조해야 한다. 배치 11의 규칙 문서 6건이 전부 `_v2`이므로 표본으로 쓸 수 있다. + **잠정 처리**: 현행 사양대로 절 번호를 적는다. + +### 12.7 코퍼스 건전성 기준선 (2026-09-04, v4-r4 시점) + +**다음 배치의 성공 기준은 이 수치를 낮추지 않는 것이다.** 개정이 회귀를 냈는지 판정하려면 +기준선이 있어야 한다. 아래는 v4-r4 시점에 `사건종류_요건사실론문서/` 전수에 +표준 구현체(`RF_GATE_VERSION = v4.0`)를 돌린 결과다. + +- **82개 문서 중 56개 PASS, 26개 FAIL (통과율 68.3%)** +- 항목별 FAIL 분포: S2c 10 · S13 9 · S2a 8 · S11 8 · S2b 7 · S9 5 · S5 5 · S7 4 · S8 3 · S1 3 · S10b 2 · S14 1 +- **이 26건은 개정이 낸 회귀가 아니다.** 게이트는 검사 대상 문서와 그 문서가 선언한 자료 파일, + 13판 목차 파일만 읽고 골격·프롬프트를 열지 않는다. 대부분은 골격 v2·v3 세대의 산출물이며 + 11.5가 정한 대로 개정 대상이 아니다. +- **다만 한 덩어리는 단일 원인이고 즉시 고칠 수 있다.** 3개 문서(근로자의지위등, 동업반환금청구, + 배당금배분금청구)가 S1·S2c·S8을 동시에 실패하는데, 원인은 셋이 아니라 하나다 — + **H1 제목을 파일 첫 줄에 두어 front matter가 첫 바이트가 아니다.** 표준 구현체의 `split_fm()`이 + `lines[0]`이 `---`가 아니면 폴백 정규식으로 본문의 다른 `---`를 먼저 잡아 YAML이 아예 파싱되지 않고, + 그 결과 S1이 필수 키 부재로, S8이 경로 ID 공집합으로 연쇄 실패한다. + YAML 블록을 H1 위(파일 첫 바이트)로 올리면 세 항목이 한 번에 해소된다. + **§0 레이아웃(제2부 §0)이 이미 이를 정하고 있으므로 사양 변경은 필요 없다.** + +### 12.8 v4-r5에서 바꾼 것 (1건) + +배치 11(확인의 소 6건 병렬)의 결함 보고 중 **골격에 걸리는 1건**을 반영했다. +나머지 2건은 프롬프트에만 걸리므로 `요건사실론_1차드래프트_생성_프롬프트_opus_v.5.txt` v.5-r4에서 처리했다. +근거는 `tmp/rf_draft/_shared/patch_candidates_batch11.md` 항목 J. + +1. **§4.2와 §6 항변 템플릿의 `주장책임 / 증명책임` 필드에 「슬래시 하나로 나눈 두 값」 규칙을 명시했다.** + + **발견 경위** — 배치 11의 워커 두 명(공탁금출급청구권·시설출입이용권)이 **독립적으로** 같은 실패를 + 보고했다. 이 필드에 슬래시 없이 설명 문장을 쓰면 §7 총괄표의 「주장책임」과 「증명책임」 두 열에 + **같은 문자열이 복제된다.** 표준 구현체의 §7 투영이 다음과 같기 때문이다. + + ```python + bur = field(blk, '주장책임 / 증명책임') + ba, bp = (bur.split('/',1) + [''])[:2] if '/' in bur else (bur, bur) + ``` + + 슬래시가 없으면 `(bur, bur)`이 되어 두 열이 같아지고, 둘 이상이면 `split('/',1)`이 첫 슬래시에서만 + 잘라 나머지가 통째로 증명책임 열에 들어간다. + + **왜 위험한가** — **게이트가 이것을 잡지 않는다.** S11도 S12도 이 필드의 형식을 검사하지 않으므로 + **22/22 PASS인 문서에도 틀린 총괄표가 남는다.** §7은 제5부에 따라 Weaviate 벡터 DB로 변환되는 + 구조화 산출물이어서, 두 열이 같으면 후속 에이전트가 주장책임과 증명책임을 구별하지 못한다. + 조용히 틀리는 종류의 결함이다. 배치 11에서는 두 워커가 자기심사에서 뒤늦게 발견해 고쳤으나 + (각 5블록·5행) 구조가 막아 준 것이 아니라 규율이 막은 것이다. + + **왜 이 방식인가** — 게이트에 검사를 추가하면(S11 확장 또는 새 린트) `RF_GATE_VERSION`이 + v4.0에서 올라가고 **코퍼스 전수 재검사**가 붙는다. 이 한 건 때문에 게이트 버전을 올리면 + 재검사 비용이 이득을 넘는다. **열거값 집합도 게이트 구현도 건드리지 않고 서술만 고쳤으므로 + 코퍼스 회귀가 없다.** v4-r3에서 §6.0 성질과 §4.2 추정·전환을 처리한 것과 같은 노선이다. + 다만 이 결함은 조용히 틀리는 종류이므로, **다음에 게이트를 손볼 일이 생기면 함께 넣는다** + (12.6의 보류 항목과 같은 시점). + + **§4.2와 §6에 근거가 다르다는 점을 각각 밝혔다.** 투영 대상은 §4·§5의 요건 블록뿐이고 + §6 항변 블록에서 쓰이는 것은 `대상요건` 하나다. 그러므로 §6에 문장을 써도 표가 무너지지는 않는다. + 그런데도 §6까지 형식을 통일한 이유는 **집필자가 두 자리를 구별하지 못하기 때문**이다. + 한쪽에서만 문장을 허용하면 §4·§5에서도 문장이 나온다. + +**v4-r5의 회귀 검증 (2026-09-05 실측).** 개정 직후 코퍼스 **90건 전건**에 표준 구현체를 돌렸다. + +- **64 PASS / 26 FAIL (통과율 71.1%)** +- 항목별 FAIL 분포: S2c 10 · S13 9 · S11 8 · S2a 8 · S2b 7 · S9 5 · S5 5 · S7 4 · S1 3 · S8 3 · S10b 2 · S14 1 +- **FAIL 건수와 항목별 분포가 12.7의 v4-r4 기준선과 완전히 같다.** 12.7 시점의 82건에서 8건이 + 늘었고(배치 11의 6건과 병행 배치의 2건) **늘어난 8건이 전부 PASS**여서 통과율만 68.3%→71.1%로 올랐다. + **새로 깨진 문서가 하나도 없다.** +- 이는 예상된 결과다. 게이트는 검사 대상 문서와 그 문서가 선언한 자료 파일, 13판 목차 파일만 읽고 + **골격·프롬프트를 열지 않는다.** 서술만 고친 개정은 구조적으로 회귀를 낼 수 없다. + 그래도 측정한 이유는 **「낼 수 없다」와 「내지 않았다」가 다르기 때문**이다. +- 남은 26건은 여전히 골격 v2·v3 세대 산출물이며 11.5가 정한 대로 개정 대상이 아니다. + 12.7이 지목한 3건(근로자의지위등·동업반환금청구·배당금배분금청구)의 front matter 위치 문제도 + 그대로 남아 있다. **파일을 고쳐야 해소되며 골격 개정으로는 낫지 않는다.** + +**v4-r5의 자체 정정 (배포 전 적대적 검증).** 위 1번을 쓴 직후 6개 차원 56개 에이전트로 개정 자체를 +검증했고, 지적 25건 중 8건이 반증을 견뎠다. **그 8건을 v4-r5 안에서 모두 고친 뒤 확정했다** +(리비전을 올리지 않은 이유는 이 판이 아직 어느 배치에도 쓰이지 않았기 때문이다). +골격에 걸린 것은 다음 넷이다. + +1. **§4.2 필드의 값 자리가 `각 주체와 근거`로 남아 새 규칙과 충돌했다.** §6 템플릿(`피고` → `피고 / 피고`)과 + 프롬프트는 정규형으로 고쳤으면서 정작 §4.2만 옛 값을 두었고, 그 값이 「근거」를 이 칸에 적으라고 + 지시하는데 바로 아래 규칙은 근거를 `증명 실무`로 보내라고 했다. **값을 `원고 / 원고`로 바꿨다.** +2. **`해당 없음(직권)`을 「3분 값」이라 불렀다. 틀렸다.** 3분 값은 제6부가 정규식 + `^(?:해당 없음|UNKNOWN|UNVERIFIED) — .{5,}$`로 못 박은 것이고 `해당 없음(직권)`은 매치하지 않는다. + 이것은 §6.0 `증명책임` 열의 고유 열거값이다. **두 개념을 명시적으로 갈랐다.** +3. **12.6의 새 보류 항목이 게이트 동작을 틀리게 적었다.** §6.6 신설이 「S2a의 기대 헤딩을 13개에서 + 14개로 늘린다」고 했으나, S2a가 대조하는 것은 `SEC`의 **레벨 2 `§N.` 헤딩 13개**뿐이어서 + §6의 하위 항 수와 무관하다. 실제로 걸리는 것은 **린트 L-d의 `^6\.[1-5]`** 범위다. **구현 실측대로 고쳤다.** +4. **12.0 규칙 5의 근거가 문서에 없는 진술이었다.** 「12.5 본문이 12.6·12.7을 신설했다고 적었다」고 썼으나 + 12.5에 그런 문장이 없다. **실재하는 근거(본문 여러 곳이 12.6·12.7을 그 번호로 참조한다)로 바꿨다.** + 덧붙여 12.1 표의 v4-r3 행 시각 `20:0x`를 실측값 `20:30`으로 고쳤다. + +**이 정정 자체가 12.8의 논거를 강화한다.** 1번은 「한 자리만 고치고 형제 자리를 빠뜨리면 +템플릿이 계속 옛 실패를 가르친다」는 것이고, 3번은 「구현을 읽지 않고 사양을 쓰면 틀린다」는 것이다. +**개정을 쓴 세션이 그대로 검증하면 이 여덟은 나오지 않았을 것이다.** 격리된 검증이 값을 냈다. + +**v4-r5의 부수 작업 — 보존 파일명 전건 정리 (2026-09-05).** + +정리 전에는 접미사 체계가 셋 섞여 있었고 숫자가 실제 리비전과 어긋나기까지 했다. +`_orig`(r0)·`_old`(r0a)·`_9_4_outdated`(r1)·`_r`(**r2**)·`_r2`(**r4**)·`_r3_outdated`(r3). +`_r`과 `_r2`는 이름만 보면 r1·r2로 읽히는데 실제 내용은 r2·r4였다. **읽는 사람을 반드시 속이는 배치다.** + +규칙 2의 기본형 `..._v4_r_outdated.md`로 **8건**(골격 5 + 프롬프트 3)을 옮겼고, +이제 파일명의 ``이 그 파일이 담은 리비전과 일치한다. + +| 옛 이름 | 새 이름 | 담긴 리비전 | +|---|---|---| +| `..._v4_orig.md` | `..._v4_r0_outdated.md` | v4-r0 | +| `..._v4_old.md` | `..._v4_r0a_outdated.md` | v4-r0a | +| `..._v4_9_4_outdated.md` | `..._v4_r1_outdated.md` | v4-r1 | +| `..._v4_r.md` | `..._v4_r2_outdated.md` | v4-r2 | +| (변경 없음) | `..._v4_r3_outdated.md` | v4-r3 | +| `..._v4_r2.md` | `..._v4_r4_outdated.md` | v4-r4 | +| `..._v.5_9_4_outdated.txt` | `..._v.5_r0_outdated.txt` | v.5-r0 | +| `..._v.5_r.txt` | `..._v.5_r1_outdated.txt` | v.5-r1 | +| (변경 없음) | `..._v.5_r2_outdated.txt` | v.5-r2 | +| `..._v.5_r2.txt` | `..._v.5_r3_outdated.txt` | v.5-r3 | + +**안전 절차** — ① 전건 사전 해시 검증(기대 sha256과 대조, 목표명 충돌 확인, 하나라도 어긋나면 전부 중단) +→ ② 이동 → ③ 이동 후 해시 재검증 → ④ 목표 실재·원본 잔존 전수 확인. 내용 변형 0건, 유실 0건. + +**정리했다고 해서 대조를 이름으로 바꾸지 않는다.** 12.0 규칙 6이 정한 대로 정본은 12.1 표의 sha256이다. +이름은 사람이 읽기 위한 것이고, 다음 개정에서 규칙 2를 어기면 이 정합은 다시 깨진다. + +**프롬프트 계열에는 표 밖의 사전 판본 2건이 남아 있다.** +`..._v.5_old.txt`(124,488 B, `8dacfdbe4857`)와 `..._v.5_prev.txt`(130,862 B, `d0ba7a0d612f`)는 +v.5-r0(131,186 B)보다 앞선 초안이어서 리비전 표에 없다. **리비전 번호를 붙이면 추적 대상인 것처럼 +보이므로 이름을 바꾸지 않았다.** 골격 계열에는 이런 잔여물이 없다(`_orig`·`_old`가 각각 r0·r0a로 +표에 실재하는 리비전이었다). + +### 12.9 v4-r6에서 바꾼 것 (11건 + 게이트 v4.1) + +배치 12H(2026-09-09, 10건 병렬: 잔여범주 4·확인 2·이행 3·형성 1)의 결함 보고를 반영했다. +근거는 `tmp/rf_draft/_shared/patch_candidates_b12home.md` 0절·1절. 적용 기준은 사용자가 정했다 — +**실행에 지장이 없는 항목은 반영하지 않는다**, §6.0 (ii)는 **§6.6 신설**, `요건분류: 소송요건`인 R-ID는 **§5**. +**이번에는 게이트 구현체를 손댔다.** `RF_GATE_VERSION`이 `v4.0` → `v4.1`로 올랐고 코퍼스 전수 재검사 결과가 아래에 있다. + +**골격 본문 (11건)** + +1. **§6.6 「소송요건의 소멸·흠결」을 신설했다**(제2부 §6, §6.0 (ii), §11.2 금지규칙 15, 제6부 S7·L-d). + 배치 11·12H의 워커 10명 중 7명이 독립적으로 같은 자리를 지적했다. 원시적 흠결과 후발적 소멸을 모두 담고 + 원시적 → 후발적 순으로 배열한다. S2a는 움직이지 않고(레벨 2만 대조) L-d의 범위만 `[1-6]`으로 넓어졌다. +2. **§3의 항은 R-ID를 채번하지 않고, 소송요건 R-ID는 §5(경로 전용)·§4(전 경로 공통)에 둔다**(제2부 §3). + §3은 참조만 한다. 같은 사유의 이중 서술은 중복이 아니라 연결이다. 배치 12H 교환약정 워커의 지적. +3. **§4.2 `추정·전환`에 「간주」를 신설했다**(7값). 기간제법 제4조 제2항·구 파견법의 직접고용 간주를 + 「법률상 추정」으로 적으면 반증으로 깨진다는 잘못된 값이 §7에 투영된다. 배치 12H 근로자의 지위 등 워커의 지적. +4. **`dispute_type`의 빈 셀 규칙을 §0 설계 주석에 넣었다.** 분쟁 유형 셀이 비어 있으면 소송 대분류 값을 쓴다. + 형성의 소 9개 leaf에 반복되는 상황이다. 배치 12H 경계확정 워커의 지적. +5. **제3부에 「방향이 모든 경로에 직교하는 표지」를, 제8부 8.2 규칙 3에 단서를 넣었다.** 잔여범주에서 + 8.2 규칙 3과 원칙 2가 충돌하던 것을 원칙 2 우선으로 정리하고, 배치 12H 기타 권리확인 워커의 처리 + (부제 없음·§4.0 없음·존부 요건은 §5)를 정규 처리로 승격했다. +6. **§12.4에 계속 각주 규칙을 넣었다.** 표제 기준 종료면이 정본이고 계속 각주는 `(각주 계속 ~N면)`으로 병기한다. + 배치 12H 기타 지위확인 워커의 지적(5건 어긋남). +7. **§7 `소속 절` 열에 절 제목을 병기한다**(제2부 §7, 제6부). 행 청크의 단독 해소. 배치 12H 기타 확인청구 워커의 지적. +8. **제6부 S10b의 면제 단위를 공통 정의로 못 박고(다음 레벨 3 이하 헤딩까지), 범위 표기 면제와 + 실패 형태 두 가지를 명시했다.** 사양-구현 괴리(배치 12H 기타 결의부존재확인 워커)와 초회 라운드 소모 + (임금·퇴직금, 교환약정 워커)의 원인이었다. +9. **제6부 S1에 `content_hash` 형식 검사를 넣었다**(⑤). placeholder가 치환되지 않은 채 22/22를 통과한 + 침묵 실패(배치 12H 관리비 워커)를 잡는다. +10. **린트 L-f를 신설했다** — 요건 블록 10필드·항변 블록 8필드의 존재와 순서, 슬래시 1개, `추정·전환` 열거값. + v4-r5가 「다음에 게이트를 손볼 때 함께 넣는다」고 유보한 슬래시 검사를 포함해, 배치 12H에서 세 워커가 + 서로 다른 형태로 보고한 침묵 결함(§5 요건 27개 전부에서 `요건분류` 결측인 채 PASS, 필드 순서 뒤바뀜)을 한 검사로 잡는다. +11. **린트 L-g를 신설했다** — 본문(§1~§11)의 조문 토큰이 §12에 등재되어 있는가. S9가 사건번호에 하는 일을 + 조문에 한다. 배치 12H 임금·퇴직금 워커가 자기심사 전까지 조문 12건이 §12.1에 빠진 채 22/22였다고 보고했다. + 머리말의 입력 폴더 설명에 `_done` 이관 폴더도 입력임을 함께 적었다(프롬프트 쪽 개정과 짝). + +**게이트 v4.1의 회귀 실측 (2026-09-09, 코퍼스 98건 전수)** + +| | v4.0 | v4.1 | +|---|---|---| +| PASS | 73 | 13 | +| FAIL | 25 | 85 | +| 항목별 FAIL(v4.1 신설·변경분만) | — | L-f 62 · L-g 61 · S1 +4 · S10b +3 | + +- **v4.0 PASS였던 60건이 v4.1에서 FAIL로 돌아섰고, 원인은 전부 신설·변경 검사다**(L-g 44 · L-f 37 · S10b 3 · S1 2, 중복 포함). + 기존 항목(S2~S9·S11~S14·L-a~L-e)의 FAIL 분포는 v4.0과 완전히 같다 — **새 검사가 아닌 이유로 깨진 문서는 없다.** +- **이 60건은 개정이 낸 회귀가 아니라 v4-r6 이전 세대 문서에 잠복해 있던 침묵 결함이다.** 슬래시 없는 + `주장책임 / 증명책임`(요건 블록 1,653개 중 689개), 문장이 들어간 `추정·전환`, §12.1에 없는 본문 조문 — + 모두 §7 총괄표나 권위 등재를 조용히 틀리게 하던 것이다. 11.5의 기준대로 **재생성 대상이 아니다.** +- **v4-r5 세대인 배치 12H의 10건**에 v4.1을 돌린 결과: 4건 PASS, 6건이 L-g(§12 미등재 조문 1~11건)·S10b(2건)· + L-f(1건, 필드 순서 13블록)로 FAIL했다. 전부 실제 결함이다(예: 민사소송법 제249조를 §3.5에 쓰고 §12.1에 등재하지 않음, + 공동주택관리법 제14조를 `규범적 근거`로 쓰고 미등재). L-g가 느슨한 검사(번호만 대조)인데도 잡힌다. +- **새 기준선**: 다음 배치의 성공 기준은 **신규 생성 문서가 v4.1 전 항목을 통과하는 것**이다. + 코퍼스 통과율(13/98)은 v4.1 기준의 출발점이며, 12.7의 v4.0 기준선(56/82 → 73/98)과 비교하지 않는다. + +**의도적으로 반영하지 않은 것 (사용자 기준 「실행에 지장 없음」)** + +- Stage 0.4 (2) 괄호의 NFC/NFD 실측값이 낡았다는 지적 — 본문이 「반드시 목록을 읽어 코드에서 정규화한다」고 + 지시하므로 결론에 영향이 없다. 프롬프트 소관이며 그대로 두었다. +- 최종 보고의 「레지스트리 항목」 개수에 T0 lead를 세는지 — 보고 형식의 문제다. +- §0 stub 필드 목록에 `aliases`·`overlays`가 없는 것 — 워커가 「실행에 지장 없음」으로 보고했다. +- Stage 4의 stub 파일과 `sections/§0.md`의 관계 — 워커가 무리 없이 처리했고 산출물에 영향이 없다. +- §4.2 `요건분류` 6값이 확인의 소 소송요건에 정확히 맞지 않는다는 지적(기타 권리확인) — 12.6의 기존 보류 + (증서진부확인)와 같은 뿌리이며, 「소송요건」 값이 실재하므로 실행에 지장이 없다. 12.6에 그대로 둔다.