diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/MEMORY.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/MEMORY.md index 74bb9883..9017d1ba 100644 --- a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/MEMORY.md +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/MEMORY.md @@ -16,6 +16,29 @@ - 하위 에이전트(subagents)를 사용하여 핵심 테마와 교훈을 식별하고 MEMORY.md에 섹션으로 저장하라. - 향후 세션 시작 시 MEMORY.md의 이전 섹션을 참조하라. +## 2026-08-28 — Stage 2 최적 개정 전략 v4 및 자산 명세 + +한 줄 요약: v3의 유효 계약을 보존하면서 `take_away_from_eval_v.3.md`의 채택사항을 5-task clean-slate DAG에 흡수하고, 2회 독립 병렬 전략 검증과 1회 독립 자산 검증을 거쳐 v4 전략서·상세 SVG·version-free 자산/source inventory를 완성했다. + +- 최종 산출물: `stage_2_optimal_update_strategy_v.4.md` 1,507행/112,959 bytes/SHA-256 `6baac7bbc234057def8f448a5d3d990f1f3c825390ec0483cbeb61ebb6557901`; `stage_2_optimal_update_strategy_v.4_workflow.svg` 179행/12,859 bytes/`88f98feb1401bcfc403cc732b9b5664ebfdcf4e2a65842858117d0aa5315b28d`; `assets_for_stage_2_v.4.md` 471행/40,855 bytes/`48616d9d761861543adcf0783e54c3ac6b3f9d209e34bca4def7fd886567aee5`. +- 실행 backbone: `S2_00` ingress·bundle → `S2_10` 법률판단 map → `S2_20` deterministic reduce·stable group ID·case-type binding·계산·retrieval → `S2_30` group 공동 drafting → `S2_40` 검증·review wait/resume·seal·atomic commit. LLM task는 S2_10/S2_30 두 개뿐이고 나머지는 고정 Python/data contract다. +- 주요 계약: Stage 1 `fact_id/evidence_ref` 보존, 유류분 신구법·가액지급 전환, 사해행위 실체귀속/절차상대방 분리와 6-route·3-cap, 제1117조 기간 경과의 자동 제외 금지, closed generic predicate, digest-bound 변호사 receipt와 content-change 시 새 attempt, commit intent/result 분리를 명시했다. +- canonical inventory: version-free `Default_Agent/Stage_2_Clean/` 아래 YAML 92(LLM-DIRECT 2, LLM-CONTEXT 45, DUAL-CONTRACT 6, NON-LLM-DETERMINISTIC 39), 고정 Python 21(runtime 13/offline·release 8), schema 12, prompt 3 및 동적 rule/corpus/authority/fixture family다. 전략서와 자산 명세의 YAML name/class, Python, schema set 차이는 모두 0이다. +- source 경계: 현행 Stage 1 logical handoff와 배포 contract, ACTIO 지정 10종, legacy 16종, 기존 청구취지 규칙 후보 19개, raw 요건사실 6개, discrepancy/improvement 9개를 명시했으나 원문 runtime load나 과거 사건별 법리 branch는 금지한다. loader·canary·rollback·tamper 증적은 `manifest/stage2_release.json`의 signed `release_evidence[]`로 일원화했다. +- 검증: 전략은 독립 법률·architecture sub-agent 2개씩 정확히 2회 검증 후 증분 개정했고 receipt는 `evals/stage2_v4/round_1.md`, `round_2.md`에 저장했다. 자산 명세는 독립 감사 1회만 수행하여 Stage 1 input·legacy 16·회귀 source 누락을 보완했다. SVG XML/렌더, Markdown fence/table, UTF-8, trailing whitespace와 catalog 수량을 정적으로 통과했다. +- 경계: 설계·inventory 완료일 뿐 실제 YAML/Python/schema/rule/corpus 구현·배포, live LLM/Weaviate/Stage 1→2 E2E, FULL_137_PRODUCTION_READY, 대한민국 변호사 법률 검수·법원 제출 완료를 뜻하지 않는다. + +## 2026-08-28 — v.3 평가 취사선택 및 개정안 + +한 줄 요약: 법률·AI architecture·적대적 감사 3개 독립 sub-agent 결과를 앙상블하여 eval v.3의 CRITICAL 2·MAJOR 22·MINOR 36·LOST 15를 전수 처분하고, 5-task DAG를 유지하면서 필요한 계약만 최소 복원하는 `take_away_from_eval_v.3.md`를 작성했다. + +- 최종 문서: `take_away_from_eval_v.3.md`; 560행/38,585 bytes; SHA-256 `a911e0266eb762fa0b55617e0e8adb48a634590d6182a2398fb39536cf75d5c6`. CRITICAL 2·MAJOR 22·MINOR 36·LOST 15가 각 disposition 표에 정확히 1회씩 있고 Markdown fence 16개·UTF-8·trailing whitespace 0을 확인했다. +- 예정 자산 해석: 137종 `case_type_id` registry는 S2_10 실체법 판단 이후의 C25 drafting/retrieval/coverage selector일 뿐 substantive claim router가 아니다. 소가·인지 Markdown은 사람 검수용 source이며, 법률가 승인 structured CE-13·versioned law value·고정 Python calculator로 projection되어야 한다. +- 취사선택: v2-1 전문·137행 부록의 복원, legacy 16종 runtime 재사용, 전역 최고이율식, 모든 numeral 금지, multi-match의 청구권 증식, `max_tokens:0` cache warm-up은 기각했다. legacy 16종 전수 disposition은 비차단 audit이고, 지정 ACTIO 10종과 release scope의 독자 필수 명제만 Phase 0 receipt 대상이다. +- 사해행위 교정: 원물회복의 실체 귀속은 채무자 책임재산, 가액배상 지급은 원고로 구분한다. 실체 귀속주체·등기권리자·주문상 절차이행 상대방·양도수령인·통지상대방·지급수령인을 분리하고, 기존 relief-rule의 “원고에게 말소등기” 문형은 route·등기구조·공식 authority 재검수 전 quarantine한다. +- review contract: `STANDARD_ATTORNEY_REVIEW|MANDATORY_SPECIALIST_REVIEW`, closed review tags, trigger별 required receipt, package-hash-bound `ready_eligible` 도출식을 정의했다. 미충족 시 filing-decision READY만 제한하고 draft·worknote·review packet은 보존한다. +- 경계: 전략 개정 명세만 작성했다. `stage_2_optimal_update_strategy_v.3.md` 본문 개정, 신규 YAML/Python/registry/module 구현·배포, live Stage 1→2·LLM·Weaviate·cache E2E, 137종 법률가 sign-off와 실제 filing decision은 미수행이다. + ## 2026-08-28 — v.3 엄격 검증 (eval 보고서 생성, 8차원 Workflow + 감사 2회) 한 줄 요약: `stage_2_optimal_update_strategy_v.3.md`를 8차원 finder·refuter 176 sub-agent Workflow와 3-lens 독립 감사 2회로 검증하여 CRITICAL 2·MAJOR 22·MINOR 36으로 판정하고 `eval_stage_2_optimal_update_strategy_v.3.md`에 기록했다 — v.3은 v2-1 내용을 대체 규정 없이 대량 삭제(LOST 15건)했으므로 현 상태로 Phase 0 착수 불가, C-1·C-2·MAJOR 22 반영 v.3.1이 착수 기준. @@ -24,7 +47,7 @@ - CRITICAL: ① 청구원인 cause atom을 Stage 1 `fact_id/evidence_ref`에 결속하는 invariant 부재(v2-1 V01/V02 회귀) ② 유류분 전환 계약(제1115조 가액지급·부칙 제3조·제1112조 4호·2024다208261·fixture 3종) 삭제 — catalog 8행 anchor가 R03이라 신법 사건에 등기 유류분 주문이 READY 통과 가능. - MAJOR 22 = 회귀 8(137 catalog 정본·CK ID·부록 A / freshness 정책 / profile scope·X3·X4 / 사죄광고 금지 / 16 이관자산 중 12 / ingress ALL 확장·digest_guard·review_key·P1 hard gate / template byte 대조 / claim option 보존) + 소장층 신규 7(갑 호증 exhibit register / 지연손해금 일반 규칙·제397조①단서·base rate seal / 등기·별지 object registry / 동시이행 상환이행 문형 / 고유필수적 공동소송 / 원고 title chain·책임형태·client no-sue / 소장 송달로써 하는 의사표시) + 계약 7(review_policy enum / domain_config 입력 / rule doc 법정수치 / C25 predicate / corpus element_ids / 사해행위 cap operand·route·제척기간 disposition·원상회복 상대방 / 상태모델). - 법률 인용: v.3 인용 13건 중 12건 + 보고서 의존 8건(제397조①단서·제379조·제450조②·상법 54조·소촉법 3조·민소규칙 62조 2·3호·107조②·2023다254519) law.go.kr/scourt 직접 MATCH; 허위 0. `민법_지원림.pdf`(v.7 사본, 1,856쪽, PDF index 기준) 전문 추출로 법리 전제 쪽수 인용. -- 교훈: (1) "대폭 개정"은 삭제 회귀를 낳는다 — 후속 버전 평가는 반드시 전신 대비 LOST/SUPERSEDED 표를 만들어야 하고, 개정본은 "잔존 조항 승계표"를 스스로 달아야 한다. (2) 감사자 지적도 실측 없이 수용하면 오류가 전파된다(1차 감사의 "8행"을 2차가 9행으로 잡음; ledger에 남긴 수치가 재감사의 anchor가 됨). (3) law.go.kr 조문은 `lsSideInfoP.do?docCls=jo&joNo=NNNN&lsiSeq=…` 패턴이면 fetch 가능(민법 284415·상법 272919·소촉법 286417·민소규칙 283113) — "제목만 반환"으로 포기하지 말 것. (4) 사해행위 원상회복은 형태별 급부 상대방이 다르다(말소등기·가액배상=원고, 배당금채권 양도·진정명의회복=채무자). +- 교훈: (1) "대폭 개정"은 삭제 회귀를 낳는다 — 후속 버전 평가는 반드시 전신 대비 LOST/SUPERSEDED 표를 만들어야 하고, 개정본은 "잔존 조항 승계표"를 스스로 달아야 한다. (2) 감사자 지적도 실측 없이 수용하면 오류가 전파된다(1차 감사의 "8행"을 2차가 9행으로 잡음; ledger에 남긴 수치가 재감사의 anchor가 됨). (3) law.go.kr 조문은 `lsSideInfoP.do?docCls=jo&joNo=NNNN&lsiSeq=…` 패턴이면 fetch 가능(민법 284415·상법 272919·소촉법 286417·민소규칙 283113) — "제목만 반환"으로 포기하지 말 것. (4) 사해행위취소의 원물회복은 채무자 책임재산으로 귀속되고 가액배상은 취소채권자에게 지급된다. 다만 주문상 절차이행 상대방은 실체 귀속과 별도 필드로 두고 route·등기구조·공식 authority에 결속해야 한다. - 경계: 정적 검증. Stage 1 live 산출물 대조, 137종 법률가 sign-off, 인지규칙·상법 45조 직접 확인, 대부업법 제20702호 부칙 적용례는 미수행. ## 2026-08-28 — Stage 2 최적 개정 전략 v3 diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/assets_for_stage_2_v.4.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/assets_for_stage_2_v.4.md new file mode 100644 index 00000000..a3bc3da4 --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/assets_for_stage_2_v.4.md @@ -0,0 +1,471 @@ +# Stage 2 v4 자산·source 명세 + +> 기준 문서: stage_2_optimal_update_strategy_v.4.md +> +> 기준일: 2026-08-28 +> +> 상태: 설계상 생성·배포해야 할 inventory. 이 문서는 해당 파일의 구현·배포·법률가 검수·live 실행 완료를 의미하지 않는다. + +## 0. 읽는 법과 총량 + +신규 runtime 배포 root는 다음 하나다. + +**R = Case_02_Comparison_Research/Default_Agent/Stage_2_Clean/** + +기존 source·설계자료의 repository root는 다음과 같이 축약한다. + +**P = Case_02_Comparison_Research/** + +§1의 모든 위치는 R 아래의 정확한 상대경로다. 따라서 예를 들어 workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml의 완전한 배포위치는 R/workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml이다. 이 신규 배포 tree에는 v2, v3, v4 같은 version folder를 쓰지 않고 file 내부 version field, SHA-256 및 release manifest digest로 version을 관리한다. + +| 물리 단위 | 계획 수량 | 성격 | +|---|---:|---| +| canonical YAML | 92 | LLM 직접 2, LLM context 45, dual contract 6, deterministic/non-LLM 39 | +| 고정 Python | 21 | runtime 13, offline build/release 8 | +| Stage 2 JSON Schema | 11 | workflow IO·deployment·migration/regression | +| Weaviate collection schema | 1 | corpus 전용 별도 JSON schema | +| static prompt Markdown | 3 | P00, P10, P30 | +| 절차 설명 source Markdown | 2 | 소가 산정, 민사소송 등 인지규칙 | +| 사건종류별 청구취지 규칙 Markdown | N_claim_capable | 137 전체가 아니라 승인된 claim-capable subset에만 1개씩 | +| corpus raw Markdown | N_source_doc | 승인된 source document 수에 따라 증가 | +| authority local capture | N_authority | VERIFIED_AND_SEALED authority별 1개 | +| 고정 manifest/receipt data file | 10 | release 5, corpus 3, migration/regression 2; loader·canary·rollback·tamper 증적은 stage2 release 내부 signed object | +| regression fixture JSON | N_fixture + N_mutation | finding별 정상 fixture와 mutation/property fixture; 승인 범위에 따라 증가 | + +N_claim_capable과 N_source_doc는 Phase 0·3의 법률가 disposition 및 corpus coverage가 확정되기 전에는 숫자로 고정하지 않는다. “137종 catalog”는 “청구취지 규칙 137개”와 동의어가 아니다. + +--- + +## 1. 신규 생성·배포 자산 + +### 1.1 canonical YAML 92개 + +#### A. orchestration YAML 5개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml | NON-LLM-DETERMINISTIC | Stage 1 allowlist·schema/hash·conservation 검증, context/cluster DAG와 bundle plan 생성 | +| workflows/S2_10_domain_relief_resolution_map.yml | LLM-DIRECT | dependency wave별 청구권·항변·구제수단 판단과 typed DomainVerdict 생성 | +| workflows/S2_20_canonical_relief_plan_reduce.yml | NON-LLM-DETERMINISTIC | option reduce, stable group ID, exact case type binding, 계산·retrieval·ReliefPlan freeze | +| workflows/S2_30_claim_group_draft_map.yml | LLM-DIRECT | frozen group별 청구취지·청구원인·절차선언·worknote atom 공동작성 | +| workflows/S2_40_final_review_render_and_commit.yml | NON-LLM-DETERMINISTIC | closed render, V01~V18, review wait/resume, seal·atomic commit·operational receipt | + +#### B. substantive profile YAML 22개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| registry/substantive/EC-00_contract_general.yml | LLM-CONTEXT | 계약 공통 성립·효력·이행·해제·손해배상 | +| registry/substantive/E-01_juristic_act_validity.yml | LLM-CONTEXT | 법률행위 무효·취소·추인·원상회복 | +| registry/substantive/E-02_contract_money_claim.yml | LLM-CONTEXT | 대금·대여금 등 계약상 금전채권 | +| registry/substantive/E-03_parties_liability_succession.yml | LLM-CONTEXT | 보증·연대·승계·상호속용 등 책임주체 | +| registry/substantive/E-04_unjust_enrichment.yml | LLM-CONTEXT | 부당이득 유형·법률상 원인·반환범위 | +| registry/substantive/E-05_tort_general.yml | LLM-CONTEXT | 일반 불법행위·인과관계·손해·과실상계 | +| registry/substantive/E-06_professional_liability.yml | LLM-CONTEXT | 전문직 위임·주의의무·손해 | +| registry/substantive/E-07_construction_defect.yml | LLM-CONTEXT | 공사대금·추가공사·하자·감액 | +| registry/substantive/E-08_lease_deposit.yml | LLM-CONTEXT | 임대차보증금·명도·공제·동시이행 | +| registry/substantive/E-09_registry_transfer_claims.yml | LLM-CONTEXT | 소유권이전·말소·회복·경정 등기 | +| registry/substantive/E-10_secured_registry.yml | LLM-CONTEXT | 근저당·전세권·담보권 등기·말소 | +| registry/substantive/E-11_possession_vindication.yml | LLM-CONTEXT | 인도·명도·방해배제·점유 | +| registry/substantive/E-12_co_ownership_boundary.yml | LLM-CONTEXT | 공유물분할·경계·지분 관계 | +| registry/substantive/E-13_creditor_preservation.yml | LLM-CONTEXT | 채권자대위·사해행위취소·보전 | +| registry/substantive/E-14_execution_linked_claims.yml | LLM-CONTEXT | 배당·청구이의·집행 관련 본안 | +| registry/substantive/E-15_succession_family_property.yml | LLM-CONTEXT | 상속·유류분·상속재산 귀속 | +| registry/substantive/E-16_negotiable_instruments.yml | LLM-CONTEXT | 어음·수표 권리·항변 | +| registry/substantive/E-17_labor_wage_claims.yml | LLM-CONTEXT | 임금·수당·퇴직금 | +| registry/substantive/E-18_org_resolution_status.yml | LLM-CONTEXT | 회사·조합 결의·지위·청산 | +| registry/substantive/E-19_insurance_claims.yml | LLM-CONTEXT | 보험금·면책·대위·중복보험 | +| registry/substantive/E-20_ip_claims.yml | LLM-CONTEXT | 지식재산 침해·금지·손해배상 | +| registry/substantive/E-21_media_personality_rights.yml | LLM-CONTEXT | 명예·인격권·보도 관련 구제 | + +#### C. crosscut profile YAML 5개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| profiles/crosscut/E-00_residual_unrouted.yml | LLM-CONTEXT | 기존 profile로 routing되지 않는 이슈를 보존하고 review로 전달 | +| profiles/crosscut/X1_notice_lifecycle.yml | LLM-CONTEXT | 최고·통지·해제·송달의 actor·도달·효과 lifecycle | +| profiles/crosscut/X2_asset_identity_lineage.yml | LLM-CONTEXT | 목적물 동일성·변동·등기/점유 lineage | +| profiles/crosscut/X3_procedure_standing_relief.yml | LLM-CONTEXT | 당사자적격·소의 이익·필수당사자·구제 적합성 | +| profiles/crosscut/X4_response_admission_defense.yml | LLM-CONTEXT | 항변·재항변·불리한 사실·자백위험·선진술 | + +#### D. special-law profile YAML 13개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| profiles/special_law/SL-AUTO_motor_vehicle.yml | LLM-CONTEXT | 자동차손해 책임·보험·과실 | +| profiles/special_law/SL-INDUSTRIAL_ACCIDENT.yml | LLM-CONTEXT | 산업재해·보상·손해 조정 | +| profiles/special_law/SL-PRODUCT_LIABILITY.yml | LLM-CONTEXT | 제조물책임 요건·면책·손해 | +| profiles/special_law/SL-RESIDENTIAL_LEASE.yml | LLM-CONTEXT | 주택임대차 대항력·우선변제·승계 | +| profiles/special_law/SL-COMMERCIAL_LEASE.yml | LLM-CONTEXT | 상가임대차 대항력·갱신·권리금 | +| profiles/special_law/SL-LABOR.yml | LLM-CONTEXT | 노동관계 강행규정·지위·기간 | +| profiles/special_law/SL-STATE_LIABILITY.yml | LLM-CONTEXT | 국가배상 특별요건·공법경계·review trigger | +| profiles/special_law/SL-IP-PATENT.yml | LLM-CONTEXT | 특허·실용신안 권리범위·침해·구제 | +| profiles/special_law/SL-IP-COPYRIGHT.yml | LLM-CONTEXT | 저작권·저작인격권 침해·구제 | +| profiles/special_law/SL-IP-OTHER.yml | LLM-CONTEXT | 상표·디자인·부정경쟁·영업비밀 | +| profiles/special_law/SL-MEDIA.yml | LLM-CONTEXT | 정정·반론·추후보도와 명예구제 | +| profiles/special_law/SL-TRANSPORT_MARITIME.yml | LLM-CONTEXT | 운송·해상 책임기간·면책·책임제한 | +| profiles/special_law/SL-CONSUMER_CONTRACT.yml | LLM-CONTEXT | 소비자성·거래방식·철회·무효·환급 | + +#### E. calculation YAML 17개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| registry/calculations/CE-01_interest_delay.yml | NON-LLM-DETERMINISTIC | obligation별 원금·이자·지연손해금 rate timeline | +| registry/calculations/CE-02_allocation_setoff_balance.yml | NON-LLM-DETERMINISTIC | 변제충당·상계·잔액 | +| registry/calculations/CE-03_limitation_deadline.yml | NON-LLM-DETERMINISTIC | 시효·제척기간·출소기간·urgency와 항변 axis | +| registry/calculations/CE-04_valuation.yml | NON-LLM-DETERMINISTIC | 사용이익·목적물 가치 | +| registry/calculations/CE-05_personal_injury.yml | NON-LLM-DETERMINISTIC | 일실수입·치료비·과실상계 | +| registry/calculations/CE-06_construction_defect.yml | NON-LLM-DETERMINISTIC | 기성·추가공사·하자보수·감액 | +| registry/calculations/CE-07_lease_use_gain.yml | NON-LLM-DETERMINISTIC | 임대차 공제·사용이익 | +| registry/calculations/CE-08_inheritance_reserved_share.yml | NON-LLM-DETERMINISTIC | 상속분·유류분 가액·신구법 branch | +| registry/calculations/CE-09_wage_severance.yml | NON-LLM-DETERMINISTIC | 임금·수당·퇴직금 | +| registry/calculations/CE-10_actio_insolvency_value.yml | NON-LLM-DETERMINISTIC | 무자력·공동담보·사해행위 3-cap | +| registry/calculations/CE-11_distribution_share_division.yml | NON-LLM-DETERMINISTIC | 배당·지분·분할금액 | +| registry/calculations/CE-12_insurance.yml | NON-LLM-DETERMINISTIC | 보험가액·중복보험·공제 | +| registry/calculations/CE-13_court_value_cost.yml | NON-LLM-DETERMINISTIC | 소가·인지·송달비용·병합 branch | +| registry/calculations/CE-R1_ip_damage.yml | NON-LLM-DETERMINISTIC | 지식재산 손해액 | +| registry/calculations/CE-R2_org_liquidation.yml | NON-LLM-DETERMINISTIC | 회사·조합 청산·분배 | +| registry/calculations/CE-R3_transport_maritime.yml | NON-LLM-DETERMINISTIC | 운송·해상 손해·책임제한 | +| registry/calculations/CE-R4_financial_instrument.yml | NON-LLM-DETERMINISTIC | 금융상품·계좌·정산 | + +#### F. renderer YAML 6개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| renderers/R01_money_payment.yml | NON-LLM-DETERMINISTIC | 금전지급 AST/template와 typed slot | +| renderers/R02_delivery_possession.yml | NON-LLM-DETERMINISTIC | 인도·명도·퇴거 AST/template | +| renderers/R03_declaration_registry.yml | NON-LLM-DETERMINISTIC | 의사표시·이전/말소/회복/경정 등기 AST/template | +| renderers/R04_special_nonmoney_performance.yml | NON-LLM-DETERMINISTIC | 특별 비금전 이행 AST/template | +| renderers/R05_declaratory.yml | NON-LLM-DETERMINISTIC | 확인청구와 소의 이익 slot | +| renderers/R06_constitutive_judgment_challenge.yml | NON-LLM-DETERMINISTIC | 형성·불복·공유물분할 method preference | + +#### G. control·drafting·ACTIO·deployment YAML 24개 + +| 이름·배포 위치(R 기준) | 작업 성격 | 역할 | +|---|---|---| +| manifest/case_type_registry.yml | NON-LLM-DETERMINISTIC | 137 catalog row, canonical ID/name, row kind, predicate, claim disposition | +| manifest/case_type_rule_registry.yml | NON-LLM-DETERMINISTIC | case type→renderer·rule·corpus·CE-13·review exact binding | +| registry/drafting/case_type_relief_rules.yml | DUAL-CONTRACT | claim-capable structured 청구취지 rule와 non-claim disposition | +| registry/review/review_policy_registry.yml | NON-LLM-DETERMINISTIC | base/tag/trigger→필수 receipt와 READY eligibility | +| registry/authority/authority_registry.yml | DUAL-CONTRACT | proposition·temporal scope·official locator·negative treatment | +| law_values/general_law_values.yml | NON-LLM-DETERMINISTIC | 이율·기간·상한 등 versioned 법정수치 | +| law_values/court_fee_values.yml | NON-LLM-DETERMINISTIC | 소가·인지·송달비용의 시점별 수치 | +| registry/temporal/inheritance_reserved_share.yml | DUAL-CONTRACT | 상속개시일 기준 유류분 권리·remedy·시효·이자 branch | +| registry/drafting/forbidden_relief_rules.yml | DUAL-CONTRACT | 강제 사죄광고 등 금지 relief와 허용 branch | +| registry/drafting/counter_performance_rules.yml | DUAL-CONTRACT | 동시이행·상환이행·제공·거절 문형과 계산 연결 | +| registry/drafting/procedural_declaration_rules.yml | DUAL-CONTRACT | 소장 송달 의사표시 actor·도달·효과 | +| registry/corpus/requirement_fact_scope.yml | NON-LLM-DETERMINISTIC | collection/query/tie-break/crosswalk/replay closed contract | +| routing/actio_pauliana_route_registry.yml | NON-LLM-DETERMINISTIC | ACTIO 6 route·operand·recipient·renderer | +| routing/actio_pauliana_mortgage_route.yml | NON-LLM-DETERMINISTIC | 담보설정·말소·경매·배당 route | +| profiles/overlays/ACTIO-MORTGAGE.yml | LLM-CONTEXT | 기존 담보부 목적물 양도·실채무·공동담보 | +| profiles/overlays/ACTIO-MORTGAGE-CREATION.yml | LLM-CONTEXT | 사해적 담보권 설정·배당 route | +| profiles/overlays/ACTIO-ENCUMBERED-TRANSFER.yml | LLM-CONTEXT | 부담부 소유권이전·가액배상 | +| profiles/overlays/ACTIO-PRESERVED-CLAIM-BUNDLE.yml | LLM-CONTEXT | 복수 피보전채권·이자·변제·담보부족 | +| profiles/overlays/ACTIO-DEFENSE-MAP.yml | LLM-CONTEXT | 충분담보·상계·수익자/전득자 선의·재항변 | +| validators/actio_value_compensation_invariants.yml | NON-LLM-DETERMINISTIC | ACTIO route·3-cap·기간·당사자·recipient invariant | +| registry/regression/finding_fixture_map.yml | NON-LLM-DETERMINISTIC | discrepancy finding→fixture→invariant regression mapping | +| registry/cache/prompt_cache_policy.yml | NON-LLM-DETERMINISTIC | cache prefix·key·breakpoint·TTL·PII·telemetry policy | +| migration/legacy_asset_disposition.yml | NON-LLM-DETERMINISTIC | legacy 16종 MIGRATE/REBUILD/DROP와 runtime load 0 | +| deployment/stage2_loader_binding.yml | NON-LLM-DETERMINISTIC | 5 workflow exact path/hash와 legacy fallback 0 | + +### 1.2 고정 Python 21개 + +#### Runtime 13개 + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| runtime/s2_00_ingress.py | input allowlist·schema/hash·conservation·context·cluster·bundle 실행 | +| runtime/s2_20_reduce.py | option portfolio·stable group·binding/calculation/retrieval/report orchestration | +| runtime/s2_40_commit.py | reduce·state·review wait/resume·seal·atomic commit·recovery | +| runtime/c25_case_type_bind.py | closed predicate exact case type binding | +| runtime/c27_query_plan.py | role·element별 deterministic query plan | +| runtime/c28_weaviate_retrieve.py | exact metadata filter·hybrid retrieval·replay receipt | +| runtime/c29_pack_verify.py | snapshot/hash/approval/crosswalk·injection 검증 | +| runtime/c45_document_assembler.py | typed atom에서 closed AST/template 조립 | +| runtime/calculators/registry_engine.py | CE YAML dispatch·operand·law-value·receipt | +| runtime/rendering/closed_renderer.py | R01~R06 canonical render·normalization | +| runtime/validation/invariant_runner.py | V01~V18·mutation/property oracle | +| runtime/authority/authority_preflight.py | temporal/freshness/dependency seal | +| runtime/llm/structured_runner.py | S2_10/S2_30 structured call·schema repair 1회·usage part | + +#### Offline build·release 8개 + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| offline_build/compile_case_type_registry.py | 137 source catalog→registry, ordinal/hash exact 검증 | +| offline_build/compile_relief_rule_projection.py | 승인 Markdown→structured relief row와 semantic diff | +| offline_build/build_authority_law_value_release.py | official capture·temporal authority·law-value seal | +| offline_build/build_corpus_snapshot.py | raw corpus chunk·metadata·crosswalk·snapshot manifest | +| offline_build/build_release_manifests.py | module/case-type/authority/corpus/stage2 release 조립 | +| release_ops/stage2_loader.py | loader binding과 stage2 release만 읽는 runtime loader | +| release_ops/release_validator.py | physical hash·schema·dependency·semantic receipt·92 YAML 검증 | +| release_ops/canary_rollback.py | subset canary·rollback digest·tamper test | + +Python은 사건별 실행결과에 맞춰 동적으로 생성되는 코드가 아니다. 위 고정 코드는 YAML/JSON data contract와 run artifact를 입력으로 받아 data-driven branch만 실행한다. + +### 1.3 schema 12개 + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| schemas/ingress.schema.json | Stage 1 input manifest·handoff resolver·diagnostic | +| schemas/context.schema.json | 사실·증거·목적물·당사자·slot·cluster·bundle context | +| schemas/domain_verdict.schema.json | DomainVerdict·claim option·provenance·impact | +| schemas/relief_plan.schema.json | option disposition·atomic claim·group·ReliefPlan·plan ledger | +| schemas/binding_retrieval.schema.json | signature/predicate/binding·query/result/receipt/pack·crosswalk | +| schemas/calculation.schema.json | CE input·operand·period·law value·receipt | +| schemas/draft_atoms.schema.json | relief/cause/declaration/worknote atom | +| schemas/review_status.schema.json | issue·request/receipt·lawyer judgment·validation·state | +| schemas/package.schema.json | candidate manifest/digest·documents·review packet·package | +| schemas/deployment.schema.json | manifests·loader·commit intent/result | +| schemas/migration_regression.schema.json | migration disposition/receipt·finding map·fixture | +| corpus/weaviate_collection.schema.json | Weaviate object·metadata·tenant/index collection schema | + +### 1.4 prompt·법률 설명 source·청구취지 rule + +| 이름·배포 위치(R 기준) | 역할 | 수량·생성 조건 | +|---|---|---| +| prompts/P00_system_and_safety_contract.md | 공통 role·source hierarchy·금지·provenance·security prefix | 1 | +| prompts/P10_legal_resolution_contract.md | S2_10 판단 순서·output contract·self-check | 1 | +| prompts/P30_joint_drafting_contract.md | S2_30 group 공동작성·atom·금지·self-check | 1 | +| procedural_rules/소가_산정_규칙.md | CE-13 규칙을 사람이 검수하는 설명 source | 1; runtime parsing 금지 | +| procedural_rules/민사소송_등_인지규칙.md | 인지·송달비용 branch의 사람이 검수하는 설명 source | 1; runtime parsing 금지 | +| rules/relief/.md | 해당 claim-capable 사건종류의 청구취지작성규칙과 authority/provenance | N_claim_capable; DOCTRINE_TOPIC/GROUP 및 미승인 GENERIC에는 생성 금지 | + +Markdown 청구취지 규칙은 실행코드가 아니다. 승인 후 registry/drafting/case_type_relief_rules.yml로 projection되고, runtime은 structured row를 실행하며 Markdown hash를 semantic source로 대조한다. + +### 1.5 authority·law-value 자산과 source + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| authority/source_captures/.json | official URL·원문/발췌 hash·retrieved_at·시행/선고일·temporal metadata | +| registry/authority/authority_registry.yml | capture에서 승인된 proposition·route·효력기간·후속취급의 정본 | +| law_values/general_law_values.yml | output-affecting 법정수치의 authority-bound token | +| law_values/court_fee_values.yml | 소가·인지·송달비용 수치의 authority-bound token | +| manifest/authority_release.json | 사용 가능한 capture·registry·law-value exact set/hash seal | + +authority source는 §2.5의 공식 웹 원문에서 수집한다. CANDIDATE_UNSEALED는 local capture가 있어도 runtime 사용 불가이며, A00의 VERIFIED_AND_SEALED와 법률가 review가 있어야 release에 포함된다. + +### 1.6 corpus·Weaviate 자산 + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| corpus/raw//.md | 법률가 승인 요건사실 raw source의 canonical 사본 | +| corpus/source_manifest.json | source document ID·case type/subtype·hash·approval·authority | +| corpus/chunk_manifest.jsonl | heading-aware chunk별 section/offset·element/role·hash metadata | +| corpus/weaviate_collection.schema.json | collection/tenant/object metadata와 index schema | +| corpus/build_receipt.json | chunk·embedding/reranker/index config·snapshot build receipt | +| registry/corpus/requirement_fact_scope.yml | exact filter·query·score/tie-break·slot crosswalk·replay contract | +| manifest/corpus_release.json | collection/schema/snapshot/chunk/crosswalk exact set/hash seal | + +현재 요건사실 raw 6개는 seed 후보일 뿐이다. 위 canonical corpus로 승인·이관되고 coverage manifest와 fixture가 닫히기 전에는 137종 coverage 증거가 아니다. + +### 1.7 manifest·migration·regression data + +| 이름·배포 위치(R 기준) | 역할 | +|---|---| +| manifest/module_manifest.json | module scope·IO·authority·dependency·physical hash·status | +| manifest/case_type_coverage.json | 137 row별 rule·renderer·corpus·profile·CE/SL·review·sign-off | +| manifest/authority_release.json | authority/law-value/temporal dependency seal | +| manifest/corpus_release.json | corpus snapshot·schema·chunk·crosswalk seal | +| manifest/stage2_release.json | 모든 manifest/config/fixture/loader receipt를 묶는 release oracle | +| migration/actio_assets_receipt.json | 지정 ACTIO 10종 source path/raw hash→canonical proposition·fixture 이관 이력 | +| tests/fixtures/regression_manifest.json | finding→fixture→invariant·expected result와 external gold hash | +| corpus/source_manifest.json | corpus source set·approval·hash | +| corpus/chunk_manifest.jsonl | ordered chunk metadata | +| corpus/build_receipt.json | corpus build·snapshot·index config receipt | +| tests/fixtures/cases/.json | EXPLICIT/DERIVED 사실·source locator·operand·expected result/hash를 가진 정상 회귀 fixture | +| tests/fixtures/mutations/.json | 단일 결함을 주입한 mutation/property fixture와 기대 invariant code | + +동일 파일이 §1.5·§1.6과 이 표에 다시 나타난 것은 역할별 view일 뿐 물리 파일을 중복 생성한다는 뜻이 아니다. + +loader·canary·rollback·tamper 결과는 별도 경로를 암묵적으로 만들지 않는다. 모두 `manifest/stage2_release.json`의 서명된 `release_evidence[]` object로 저장하며, 각 object는 `evidence_type`, 실행주체, 입력 release digest, 결과, 산출시각, tool/version, payload hash와 signer를 가진다. + +--- + +## 2. 재사용·이관할 기존 source와 상류 input + +§2의 경로는 별도 표기가 없으면 P 기준이다. 이 파일들은 신규 Stage 2 canonical 배포자산 그 자체가 아니다. Stage 1 산출물은 read-in-place input이고, catalog·예시·ACTIO·평가자료는 compile/migration/regression source다. source path에 존재하는 v.7, v.8, v1, v3 표기는 역사적 원본명이며 신규 배포경로 version-free 규칙의 예외가 아니라 “원본 위치 기록”이다. + +### 2.1 현행 Stage 1 producer·runtime input + +| 기존 이름·위치 | Stage 2에서의 역할 | 처리 | +|---|---|---| +| YAML_Prompts/1. Stage_1/v.8/stage_1_part_1_v.8.yml | evidence·event·BO·handoff 생산 명세 확인 | 실행 YAML 자체를 runtime context로 주입하지 않고 실제 run output만 소비 | +| YAML_Prompts/1. Stage_1/v.8/stage_1_part_2_v.8.yml | LES·domain activation·review 생산 명세 확인 | 동일 | +| YAML_Prompts/1. Stage_1/v.8/stage_1_part_3_v.8.yml | legal-event/review handoff 생산 명세 확인 | 동일 | +| YAML_Prompts/1. Stage_1/v.8/stage_1_part_4_v.8.yml | Fact Ledger·signal·final review 생산 명세 확인 | 동일 | +| /BO.json | 당사자·법률행위·목적물과 source BO identity | handoff resolver가 봉인한 실제 path/hash를 S2_00이 읽음 | +| /evidence_indexed.json | 내부 evidence ID·문서 provenance·호증 seed | 동일 | +| /evidence_event_candidates.json | 이행기·최고·도달·해제·제공·거절 event 후보 | 동일 | +| /legal_effect_structures.json | domain/type/route/calculation request와 BO 역색인 | 동일 | +| /Fact_Ledger_base.json | fact_id와 BO·evidence·LES·계산 연결 | 동일; typed 사실주장의 유일 anchor | +| /signals/signal_manifest.json | canonical signal ALL read set·schema/hash 목록 | manifest에 열거된 모든 signal을 독립 순회 | +| / | 기한·계산·절차·구제 signal 실제 payload | signal manifest의 exact path/hash만 사용 | +| /client_goal.json | 의뢰인 목표와 법률상 가능한 relief의 분리 | 누락 시 목표 최적화 scope를 review로 표시 | +| /domain_activation_manifest.json | expected/active domain 집합·config refs | handoff digest와 활성 set 보존 검사 | +| /stage1_contract_manifest.json | 기본 경로와 다른 배포본의 logical→physical mapping | 조건부 입력; 기본 exact path와 다를 때만 요구 | +| /defendant_target_matrix.json | 피고별 지시·회수대상 | optional; 부재를 청구권 부존재로 해석 금지 | +| /asset_status.json | 집행가능성·회수위험 관련 자산상태 | optional; 법률상 성립 여부와 분리 | +| /quality_gates/B1_evidence_indexed_gate.json | evidence-index gate와 finding/source hash | S2_00 allowlist read | +| /quality_gates/B2_event_candidates_gate.json | event-candidate gate와 finding/source hash | S2_00 allowlist read | +| /quality_gates/stage1_part1_soft_gate_handoff.json | handoff status·review conservation·7-key digest guard | S2_00 allowlist read | +| /quality_gates/stage1_part2_review_handoff.json | Part 2 review universe | S2_00 allowlist read | +| /quality_gates/stage1_part3_review_handoff.json | Part 3 LES review | S2_00 allowlist read | +| /quality_gates/stage1_part4_review_handoff.json | final signal/LES/ledger review | S2_00 allowlist read | +| /stage1_tmp/fact_ledger/fact_ledger_writer_report.json | Fact Ledger row·hash·writer report | S2_00 allowlist read | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/runtime_manifest.json | 현행 Stage 1 runtime contract와 asset set | 배포본의 exact digest를 ingress contract source로 참조 | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/domains/_registry_index.json | domain ID·config registry | activation manifest와 registry set 비교 | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/domains//domain_config.json | element/opposing/defense slot과 party/object rule | 배포된 활성 set/hash를 ingress manifest로 참조 | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/platform/schemas/*.json | BO/LES/Ledger/domain handoff schema | 실제 producer schema ID/hash 검증 source | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/signals/schemas/*.json | signal envelope·manifest·category schema | signal별 schema 검증 source | +| YAML_Prompts/1. Stage_1/v.7/extension_research/Default_Agent/signals/signal_registry.v2.json | signal 종류·schema·consumer registry | manifest ALL set과 registry coverage 비교 | + +위 표의 `/...` 표기는 logical canonical path다. 실제 물리경로는 Stage 1 handoff resolver가 봉인한 mapping과 raw hash를 사용하며 Stage 2가 추정하거나 이름 검색하지 않는다. `stage1_contract_manifest.json`은 기존 Stage 1의 새 production output을 요구하는 것이 아니라, 기본 경로와 다른 배포 환경에서만 사용하는 조건부 resolver 계약이다. + +### 2.2 137종 catalog source + +| 기존 이름·위치 | 역할 | canonical 결과 | +|---|---|---| +| P/case_kinds.md | 제외 범주를 뺀 137 source row의 label·ordinal 기준 | R/manifest/case_type_registry.yml | + +다른 사본을 자동 선택하지 않는다. compile 시 이 source의 raw SHA-256·ordinal·label exact equality를 봉인한다. + +### 2.3 ACTIO 지정 migration source 10종 + +기존 source root는 P/YAML_Prompts/2. Stage_2/사해행위취소소송관련기존자산/ 이다. + +| 원본 파일명 | 이관 목적 | canonical target family | +|---|---|---| +| actio_pauliana_calc_v1.txt | 가액배상 operand·proxy 경고·계산 후보 추출 | CE-10·ACTIO invariant·fixture | +| actio_pauliana_calc_v3_mini_v1.json | 축약 계산 rule 후보 비교 | CE-10·migration receipt | +| actio_pauliana_case_type_determination.csv | route 분류 후보 추출 | ACTIO route registry | +| actio_pauliana_mortgage_actio_calc_both_v1.txt | 담보부 양도/설정 분기와 계산 후보 | 두 mortgage overlay·route | +| actio_pauliana_mortgage_v1.txt | 선순위 담보·실채무·최고액 operand | ACTIO-MORTGAGE·CE-10 | +| mortgage_fraudulent_act_module_v1_mini_v1.json | 사해적 담보설정 module 후보 | ACTIO-MORTGAGE-CREATION | +| 부담부_부동산소유권이전_사해행위_가액배상_모듈.md | 부담부 이전·가액배상 proposition 후보 | ACTIO-ENCUMBERED-TRANSFER | +| 사해행위취소_가액배상_최종화게이트_모듈.md | 가액배상 final gate 후보 | ACTIO invariant·fixture | +| 사해행위취소_피보전채권번들_검증_모듈.md | 피보전채권 bundle·cap 후보 | ACTIO-PRESERVED-CLAIM-BUNDLE | +| 사해행위취소_항변통합_모듈.md | 선의·충분담보·상계·재항변 후보 | ACTIO-DEFENSE-MAP | + +신규 runtime은 이 10개 원본을 직접 읽지 않는다. migration receipt가 raw basename bytes/NFC display name/hash, 추출 proposition, official authority 대조, 교정/drop 이유와 canonical target hash를 기록한다. + +### 2.4 legacy module migration source 16종 + +기존 source root는 P/Default_Agent_updated/Modules_and_New_Rules/ 이다. 이는 `migration/legacy_asset_disposition.yml`의 16/16 audit 모집단이며 신규 runtime이 직접 읽거나 fallback하는 자산이 아니다. + +| 원본 파일명 | 주요 검토 대상 | 처리 계약 | +|---|---|---| +| 금전채권_이행기_시효_지연손해금_작성규칙.md | 이행기·시효·지연손해금 명제 | MIGRATE/REBUILD/DROP + target/reason/hash | +| 상호속용_영업양수인_책임_작성규칙.md | 상호속용 책임주체 명제 | 동일 | +| 법정변제충당_담보채무_지분말소_모듈.md | 변제충당·담보채무·지분말소 | 동일 | +| 담보권실행경매_공신력_항변_모듈.md | 경매 공신력·항변 | 동일 | +| 미등기건물_토지사용_부당이득_부진정연대_모듈.md | 토지사용이익·부진정연대 | 동일 | +| 차임감정표_법률상_기준선택_모듈.md | 차임 산정 기준 | 동일 | +| 임대차보증금_부당이득_배제검토_모듈.md | 계약/부당이득 경합 | 동일 | +| 부담부_부동산소유권이전_사해행위_가액배상_모듈.md | 부담부 이전·가액배상 | 동일 | +| 사해행위취소_피보전채권번들_검증_모듈.md | 피보전채권 bundle | 동일 | +| 사해행위취소_항변통합_모듈.md | ACTIO 항변·재항변 | 동일 | +| 사해행위취소_가액배상_최종화게이트_모듈.md | ACTIO 계산 final gate | 동일 | +| 유치권소멸_건물인도_부당이득반환_모듈.md | 유치권·인도·부당이득 | 동일 | +| 상속포기_배우자단독상속_모듈.md | 상속포기·배우자 지위 | 동일 | +| 통지_도달_법률효과_모듈.md | 통지 lifecycle | 동일 | +| 별지목록_등기부_asset_alias_모듈.md | 목적물·등기부 alias | 동일 | +| 피고답변서_항변추출_모듈.md | 답변서 항변 추출 | 동일 | + +이 root의 ACTIO 관련 4개와 §2.3 root의 동명 파일은 서로 다른 물리 source다. basename이 같아도 자동 병합하지 않고 각 raw path/hash·명제·disposition을 별도로 기록한 뒤 semantic/hash deduplication을 수행한다. + +### 2.5 discrepancy·improvement 회귀 source + +| 기존 이름·위치 | 수량 | 역할 | canonical 결과 | +|---|---:|---|---| +| P/discrepancy_report_1.md ~ discrepancy_report_4.md | 4 | 과거 불일치 finding·사례·기대조건 추출 | R/tests/fixtures/regression_manifest.json 및 cases/mutations fixture | +| P/improvement_report_1.md ~ improvement_report_4.md | 4 | 권고사항을 candidate invariant·negative test로 변환 | 동일 | +| P/improvement_merged.md | 1 | 중복 권고 adjudication과 finding cross-reference | 동일 | + +이 문서의 과거 사건 사실·금액·모범답안은 production 법리 branch가 아니다. fixture에는 `source_locator`, `assertion_basis ∈ {EXPLICIT, DERIVED}`, DERIVED인 경우 operand/calculator, 기대 output·invariant code·external gold hash를 저장하고 법률가가 회귀 oracle로 승인한다. + +### 2.6 기존 규칙·요건사실 seed source + +| 기존 위치 | 수량 | 역할 | 제한 | +|---|---:|---|---| +| P/Default_Agent/청구취지작성규칙_*.md | 19 | 기존 청구취지 규칙·mapping·중복 revision의 후보 pool | 파일명 최신성으로 자동 선택 금지; case identity·authority·semantic/hash dedup 후 승인 projection | +| YAML_Prompts/2. Stage_2/청구취지작성규칙문서예시/*.md | 5 | case-specific relief rule 작성·projection의 seed | 그대로 production rule 또는 137 coverage로 간주 금지 | +| YAML_Prompts/2. Stage_2/요건사실론문서raw/*.md | 6 | canonical corpus raw source 후보 | 법률가 승인·metadata·chunk/crosswalk·snapshot seal 전 runtime 사용 금지 | +| YAML_Prompts/1. Stage_1/v.7/대한민국민법자료/민법_지원림.pdf | 1 | 법리 연구·교차검토 자료 | 2024-12 교재이므로 2026 법개정 controlling source가 아니며 runtime authority 아님 | + +seed를 이관할 때도 원본 path/hash를 source_manifest 또는 rule projection receipt에 보존한다. + +### 2.7 설계·평가 provenance source + +| 기존 이름·위치 | 역할 | runtime dependency 여부 | +|---|---|---| +| P/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.3.md | 개정 전 retained/replaced/missing 비교 기준 | 아님 | +| P/YAML_Prompts/2. Stage_2/eval_stage_2_optimal_update_strategy_v.3.md | v3 손실·누락·결함 finding source | 아님 | +| P/YAML_Prompts/2. Stage_2/take_away_from_eval_v.3.md | 수용·부분수용·기각 결정 source | 아님 | +| P/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md | 이 inventory의 normative 설계 기준 | 구현·runtime 자산은 아님 | +| P/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4_workflow.svg | v4 상세 DAG의 시각화 | 아님; 표·schema와 충돌 시 재생성 | + +이 표의 version marker는 설계 history를 정확히 식별하기 위한 것으로, R 아래 신규 runtime 배포경로의 version-free 원칙과 충돌하지 않는다. + +### 2.8 공식 법률·기술 source + +다음은 전략서가 명시한 authority·provider source다. 법률 source의 local 배포위치는 R/authority/source_captures/.json이고, 승인된 명제만 authority registry/release로 승격한다. + +| source 명칭 | 공식 locator | 용도·상태 | +|---|---|---| +| 민법 제1115조 | https://law.go.kr/LSW/lsLinkCommonInfo.do?lsJoLnkSeq=1031985365 | 2026 유류분 가액지급·이자 | +| 민법 제1112조 | https://www.law.go.kr/lsLinkCommonInfo.do?lsJoLnkSeq=1031182201 | 유류분 권리자 범위·삭제조항 | +| 민법 제1117조 현행본 | https://www.law.go.kr/LSW/lsSideInfoP.do?docCls=jo&joBrNo=00&joNo=1117&lsiSeq=284415&urlMode=lsScJoRltInfoR | 기간 clock | +| 대법원 2016다258124 | https://www.law.go.kr/LSW/precInfoP.do?precSeq=184647 | 시효 항변·기산점·재항변 axis | +| 헌법재판소 2020헌가4등 | https://www.law.go.kr/LSW/detcInfoP.do?detcSeq=190071 | 유류분 위헌결정 효과 | +| 법률 제21454호 부칙 제3조 | https://law.go.kr/LSW/lsRvsDocListP.do?chrClsCd=010202&lsId=001706&lsRvsGubun=all | 유류분 신법 적용례 | +| 민법 제764조·89헌마160 | https://www.law.go.kr/lsLinkCommonInfo.do?lsJoLnkSeq=1001851088 | 강제 사죄광고 금지 | +| 민사소송 등 인지규칙 | https://law.go.kr/lsInfoP.do?lsId=005771 | CE-13 소가·인지 branch | +| 민사소송 등 인지법 제2조 | https://www.law.go.kr/LSW/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1020788181 | 소가에 따른 인지액 | +| 대법원 2016다279206 | https://www.law.go.kr/LSW/precInfoP.do?precSeq=184747 | ACTIO 원상회복 귀속 | +| 대법원 2013다34945 | https://www.law.go.kr/LSW/precInfoP.do?precSeq=230413 | 미지급 배당금채권 양도·통지 | +| 대법원 2007다61618 | https://www.law.go.kr/LSW/precInfoP.do?precSeq=133423 | ACTIO 가액배상 지체·이율 | +| 대법원 2018다203715 | https://www.law.go.kr/LSW/precInfoP.do?precSeq=208412 | ACTIO 확정시 발생·가액·전득자 한도 | +| 2020그42 | Phase 0 official locator 확정 필요 | 배우자 단독상속 route; CANDIDATE_UNSEALED | +| 2023다254519 | Phase 0 official locator 확정 필요 | 배당금채권 양도형 원상회복; CANDIDATE_UNSEALED | +| 2018다202774 | Phase 0 official locator 확정 필요 | 복수 가액배상·이중회복; CANDIDATE_UNSEALED | +| 2012다952 | Phase 0 official locator 확정 필요 | 가등기 권리변동 route; CANDIDATE_UNSEALED | +| OpenAI Responses API prompt caching reference | https://developers.openai.com/api/reference/cli/resources/responses/methods/create | cache capability preflight source; 결과는 prompt_cache_policy.yml에 봉인 | + +법률 source의 기준 우선순위는 현행 공식 법령·대법원/헌법재판소 원문이다. 세계법제정보센터와 기타 설명 웹사이트는 탐색 보조자료일 뿐 대한민국 국내 민사사건의 controlling authority로 봉인하지 않는다. + +--- + +## 3. 실행 시 생성되지만 배포자산이 아닌 run artifact + +아래는 고정 자산이 아니라 각 사건 run에서 생성되는 결과물이다. root는 Case_02_Comparison_Research/stage2_runs// 이며, canonical 배포 tree에 미리 작성하지 않는다. + +| run artifact family | 대표 위치 | producer·용도 | +|---|---|---| +| ingress/context | ingress/, context/ | S2_00; 입력 manifest·보존검사·cluster/bundle | +| S2_10 immutable parts | map_s2_10// | 각 S2_10 instance; verdict·option·issue·usage | +| canonical plan | plan/ | S2_20; binding·retrieval·calculation·reports·group slices | +| per-group prompt segment P31 | plan/prompt_segments//P31_rule_and_pack.json | S2_20; exact case-type relief rule·요건사실 pack의 ordered source/hash | +| per-group prompt segment P32 | plan/prompt_segments//P32_common_authority.json | S2_20; 공통·route authority와 temporal/hash context | +| S2_30 immutable parts | map_s2_30// | 각 S2_30 instance; draft/worknote/issue/usage atoms | +| review records | review/ | base/final issue, request/receipt, lawyer judgment, usage | +| operational status | control/run_status.json | S2_40 single writer; wait/resume/commit status | +| operational commit receipt | commit/commit_intent.json, commit/stage2_commit_result.json | sealed content 밖 append-only commit evidence | +| candidate staging | .staging// | external review 중 immutable candidate | +| committed package | final/ | validation을 통과해 atomic rename된 sealed documents/package | + +receipt가 CONTENT_CHANGE_REQUIRED이면 기존 candidate는 SUPERSEDED로 보존하고 새 attempt를 생성한다. run artifact를 template·registry·law-value 같은 재사용 자산으로 승격해서는 안 된다. + +--- + +## 4. 명시적 제외와 완료 판정 + +다음은 v4 신규 runtime dependency가 아니다. + +- YAML_Prompts/2. Stage_2/v.0~v.3의 YAML·prompt·loader·중간 filename +- stage_2_optimal_update_strategy_v.2-1.md 본문 +- legacy 16종의 원문 runtime load 또는 fallback +- discrepancy 사례의 사실·금액·모범답안을 production 법리 branch로 직접 사용하는 것 +- 현재 5개 청구취지 예시와 6개 요건사실 raw 문서만으로 137종 coverage를 선언하는 것 +- 이 전략서·SVG·자산 명세 자체를 구현·deployment evidence로 간주하는 것 + +inventory 완료와 production 완료는 다르다. production은 적어도 physical file/hash/schema, fixed Python test, official authority seal, 법률가 semantic sign-off, 92 YAML loader binding, corpus snapshot, fixture/E2E, canary/rollback과 FULL_137_PRODUCTION_READY 조건을 별도로 통과해야 한다. diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_1.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_1.md new file mode 100644 index 00000000..fd0bad0b --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_1.md @@ -0,0 +1,34 @@ +# Stage 2 v4 독립 검증 round 1 + +- 일자: 2026-08-28 +- 검증자: `v4_round1_legal`, `v4_round1_arch` +- 방식: 동일 초안을 법률·추적성 lens와 아키텍처·IO lens로 독립 병렬 검증; validator는 파일을 수정하지 않음 +- 초안 판정: 양쪽 모두 `NEEDS_REVISION/FAIL` +- 증분 개정 후 전략서: 1,465행, 106,925 bytes, SHA-256 `f892194861cad1ac407e1ccee91326145863a043f53ee4643f4c7cbb10c57d37` +- 증분 개정 후 SVG: SHA-256 `8b198b0691a00b9d06198ee72d1df04eca122038533c3e2e7c0af4fff2a5aeb2`, XML well-formed + +## 수용·수정한 핵심 finding + +1. 유류분 temporal rule에 권리자·헌재결정 효과·제1117조·구법 authority·expected error/result·이율 period를 추가했다. +2. catalog 137 전체 row와 claim-capable subset을 분리하고 non-claim row disposition을 닫았다. +3. S2_20 순서를 C20/21→C25/26→C22 및 retrieval→C30→C35로 교정했다. +4. base→plan→final issue ledger single-writer chain을 복원했다. +5. candidate digest, 외부 reviewer receipt, S2_40 resume, commit intent와 post-rename commit result를 분리했다. +6. 상태를 evaluation/scope/run/artifact/legal/workflow 축의 closed enum·aggregation으로 재정의했다. +7. X4 source contract·polarity·자백위험·선진술/worknote 규칙을 닫았다. +8. C25 signature/predicate/binding schema와 error code, closed renderer postcondition을 추가했다. +9. 기존 `requirement_fact_scope.yml` 안에 재현 가능한 retrieval·crosswalk·replay section을 명시했다. 최소 구조 원칙상 별도 YAML 두 개를 추가하라는 제안은 수용하지 않았다. +10. ACTIO 지체·이율, knowledge timing, cap authority, mortgage overlay 분할, exact migration source root를 보강했다. +11. module manifest mandatory row, artifact→schema mapping, offline build/release owner·고정 Python 단위를 추가했다. +12. 공유물분할, 대부 temporal branch, 일부청구 typed contract와 MINOR 36 개별 disposition을 명시했다. + +## 이미 해소되어 재적용하지 않은 finding + +- 두 검증자가 지적한 X4 조건부 삭제는 검증 스냅샷 이후 선행 증분에서 이미 제거되어 92번째 canonical YAML로 확정되어 있었다. +- semantic class 합계 `2 direct + 45 context + 6 dual + 39 non-LLM = 92`도 검증 중 선행 증분에서 이미 명시했다. + +## 2차 검증 대상 + +- round 1 개정본에서 위 계약이 실제로 닫혔는지 +- ASCII·SVG·IO·상태·seal·92 catalog가 다시 상호 일치하는지 +- 새 결함·회귀가 생기지 않았는지 diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_2.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_2.md new file mode 100644 index 00000000..81449950 --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/evals/stage2_v4/round_2.md @@ -0,0 +1,37 @@ +# Stage 2 v4 독립 검증 round 2 + +- 일자: 2026-08-28 +- 검증자: `v4_round1_legal`, `v4_round1_arch` +- 방식: round 1 증분 개정본을 법률·추적성 lens와 아키텍처·IO lens로 다시 독립 병렬 검증; validator는 파일을 수정하지 않음 +- 검증 snapshot 전략서 SHA-256: `f892194861cad1ac407e1ccee91326145863a043f53ee4643f4c7cbb10c57d37` +- snapshot 판정: 양쪽 모두 `NEEDS_REVISION` +- 사용자 지정 검증 횟수: 이 round로 정확히 2회 종료; 제3의 전략 sub-agent 검증은 수행하지 않음 + +## 증분 반영한 architecture finding + +1. `required_receipt_types=[]`, 필수 receipt 미도착·무효, 전부 유효한 경우를 서로 다른 state branch로 닫았다. +2. S2_10에서는 `GROUP_LOCAL`을 금지하고, C20이 stable preliminary `claim_group_id`를 발급한 뒤 S2_20/S2_30만 group-local impact를 계산하도록 lifecycle을 교정했다. +3. receipt의 `APPROVE_AS_IS`와 `CONTENT_CHANGE_REQUIRED`를 분리했다. 내용 변경 요구는 기존 candidate를 수정하지 않고 `supersedes_candidate_digest`를 가진 새 attempt에서 S2_20 또는 S2_30부터 재실행한다. +4. `stage2_commit_result.json`과 `commit_intent.json`을 sealed package 밖 `commit/` 운영영역으로 옮기고 post-rename crash reconciliation을 정의했다. +5. retrieval 순서를 `normalized_score DESC`, exact score tie에서만 canonical metadata tuple 순으로 고정했다. +6. ASCII에 `technical diagnostic → S2_40 status-only entry` 경로를 명시했다. + +## 증분 반영한 legal finding + +1. 민법 제1117조 기간의 외관상 경과만으로 유류분 청구를 자동 제외하지 않는다. `LIMITATION_PRIMA_FACIE_EXPIRED`와 항변·중단/완성유예·포기·권리남용 재항변·digest-bound 변호사 판단을 분리했다. +2. `GENERIC` row는 변호사가 승인한 closed predicate와 `claim_capable_disposition=CLAIM_CAPABLE`이 있을 때만 claim-capable로 허용하고 catch-all fallback은 금지했다. +3. 외부 receipt 분기의 중의성을 제거하고 operational commit receipt의 sealed-content 경계를 명시했다. +4. V06을 실제 binding schema의 `BOUND | UNRESOLVED | CONFLICT`와 `binding_issue_codes[]` 조합에 맞췄다. +5. `2020그42`, `2023다254519`, `2018다202774`, `2012다952`를 route-local `CANDIDATE_UNSEALED`로 열거하고 A00 official seal 전 사용을 금지했다. +6. 제1117조 official locator를 2026-03-17 시행 현행본으로 교체했다. +7. SVG 최종 decision edge에 `all pass`/`otherwise`를 표시했다. + +## 검증 후 결과 + +- 전략서: 1,507행, 112,959 bytes, SHA-256 `6baac7bbc234057def8f448a5d3d990f1f3c825390ec0483cbeb61ebb6557901` +- SVG: 179행, 12,859 bytes, SHA-256 `88f98feb1401bcfc403cc732b9b5664ebfdcf4e2a65842858117d0aa5315b28d` +- YAML catalog: 정확히 92개 — `LLM-DIRECT 2 + LLM-CONTEXT 45 + DUAL-CONTRACT 6 + NON-LLM-DETERMINISTIC 39` +- Markdown fence: 50개로 짝 일치; trailing whitespace 0 +- SVG: XML well-formed, headless Chrome 1600×1900 렌더에서 잘림 없음 + +이 receipt는 설계 검증 이력이다. YAML/Python 구현, live model run, Weaviate build, E2E, 137종 법률가 semantic sign-off 또는 법원 제출 적합성을 증명하지 않는다. diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md new file mode 100644 index 00000000..24b47fec --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md @@ -0,0 +1,1507 @@ +# Stage 2 작업명세서 최적 개정 전략 v4 + +> 기준일: 2026-08-28 (Asia/Seoul) +> +> 관할·대상: 대한민국 민사 본안, `case_kinds.md`에서 가사소송·가족관계등록·행정소송을 제외한 137종 +> +> 목적: 현행 Stage 1 산출물을 직접 소비하여 원고에게 법적으로 지속 가능하고 입증·집행·회수 가능한 최적 청구권 포트폴리오, 청구취지 및 청구원인을 작성한다. +> +> 문서 성격: 신규 Stage 2 YAML·Python·prompt·registry·renderer·retrieval·검증 자산을 구현하기 위한 clean-slate 전략. 이 문서 자체는 구현·배포·live LLM·Weaviate·E2E·137종 법률가 검수 완료 증거가 아니다. + +--- + +## 0. 집행 결론 + +v4는 v3의 5-task 구조를 유지하고 `take_away_from_eval_v.3.md`의 취사선택을 실행 가능한 계약으로 통합한다. + +| 순서 | orchestration YAML | 실행 성격 | 단독 책임 | +|---:|---|---|---| +| 1 | `S2_00_stage1_ingress_normalize_and_bundle_compile.yml` | deterministic Python | Stage 1 입력 검증·정규화, 사실·증거·당사자·목적물·slot·review 보존, cluster DAG와 prompt bundle 계획 | +| 2 | `S2_10_domain_relief_resolution_map.yml` | LLM 직접 추론 | dependency wave별 청구권·항변·구제수단·법적 상태 판단과 typed claim option 생성 | +| 3 | `S2_20_canonical_relief_plan_reduce.yml` | deterministic Python + 고정 retrieval orchestration | option reduce, 계산, C25 사건종류 결속, C27~C29 요건사실 검색, claim group과 frozen ReliefPlan 확정 | +| 4 | `S2_30_claim_group_draft_map.yml` | LLM 직접 추론 | 동결된 group별 청구취지·청구원인·절차상 의사표시 atom 공동작성 | +| 5 | `S2_40_final_review_render_and_commit.yml` | deterministic Python | closed renderer, 독립 재전개, V01~V18, 상태·review packet·seal·atomic commit | + +LLM task는 정확히 2개, deterministic task는 정확히 3개다. 별도 C30 계산 task, 제3 LLM reviewer 또는 137개 사건종류별 agent를 만들지 않는다. 계산·검색·문서조립은 S2_20 또는 S2_40 내부의 고정 Python component다. + +### 0.1 절대 목적함수 + +“원고의 최대 이익”은 최대 명목액이나 최대 청구 수가 아니다. 다음 우선순위의 lawful remedy frontier다. + +1. 사건에 적용되는 시점의 법령·부칙·공식 판례와 절차법에 맞는다. +2. 당사자적격, 권원, 요건사실, 주장·증명책임, 증거와 소의 이익이 연결된다. +3. 승소가능성뿐 아니라 집행·회수 가능성, 기한, 소가·인지·비용과 중복회복 위험을 반영한다. +4. 주위적·예비적·선택적·부대청구, 복수 책임자와 법적으로 가능한 일부청구를 소거하지 않는다. +5. 기록에 없는 사실·증거·금액·일자·확률을 창작하지 않는다. + +불확실한 option은 `CONDITIONAL`, `UNRESOLVED` 또는 명시적 deferred 상태로 보존한다. 법률상 불확실성은 draft·worknote·review packet의 저장을 막지 않는다. 다만 미확정 사실·금액·날짜를 clean pleading의 확정 문장으로 렌더링하지 않는다. + +### 0.2 v3에서 유지·교체·추가하는 계약 + +| 구분 | v4 결정 | +|---|---| +| 유지 | 5-task DAG, dependency-wave S2_10, group-parallel S2_30, C25→C27~C29, 6 renderer, deterministic calculation·commit, review-required draft 저장 | +| 교체 | `case_kind_id`→`case_type_id`; `/v3/` 배포 root→version-free root; v3 manifest filename→version-free filename; 단일 review 예시→closed policy; V01~V14→보강 V01~V18 | +| 추가 | typed atom provenance, Stage 1 evidence/domain/party/object ingress, option conservation, exhibit/object registry, party/title/liability, counter-performance, procedural declaration, CE-13, inheritance temporal overlay, corrected ACTIO route, non-cyclic seal | +| 기각 | v2-1 전문 복원, legacy 16종 runtime load, 사건명 기반 실체법 routing, multi-match 청구 증식, 전역 최고이율식, Markdown 모든 numeral 금지, LLM 산술, `max_tokens:0` cache warm-up, strict global no-save | + +### 0.3 source of truth와 clean-slate 경계 + +신규 runtime의 허용 source는 다음뿐이다. + +1. 현행 Stage 1 Part 1~4 실행 산출물과 그 schema·gate·hash·review 계약 +2. 배포된 Stage 1 domain registry 및 활성 `domain_config.json` +3. 신규 canonical `case_type_id` 137종 registry와 rule registry +4. A00가 공식 원문으로 확인·versioning·봉인한 authority 및 law-value release +5. 법률가가 승인한 청구취지 규칙 Markdown·structured rule projection +6. 법률가가 승인한 요건사실론 corpus snapshot과 crosswalk +7. discrepancy/improvement에서 추출하여 외부 fixture로 봉인한 regression oracle +8. 지정 ACTIO 10종에서 provenance를 붙여 추출·교정한 canonical proposition·fixture + +`YAML_Prompts/2. Stage_2/v.0`~`v.3`의 YAML·prompt·loader·중간 filename 또는 v2-1 본문은 runtime dependency가 아니다. legacy 16종은 비차단 migration audit 대상일 뿐이며 원문 runtime load와 fallback은 0이어야 한다. + +### 0.4 canonical 배포 root + +모든 신규 runtime 자산의 physical root는 다음과 같이 version-free다. + +```text +Default_Agent/Stage_2_Clean/ +``` + +release version은 folder나 filename suffix가 아니라 각 file의 `schema_version`, `asset_version`, raw SHA-256, `effective_from`, manifest dependency와 immutable release seal로 관리한다. rollback도 과거 version folder scan이 아니라 release manifest digest를 사용한다. + +--- + +# [1] 전체 작업 scaffolding + +## 1. 작업흐름도 DAG — overview + +```text +[Stage 1 current outputs] + + [canonical profiles/authority/case_type/rules/corpus] + | + v + S2_00 deterministic ingress + | + v + S2_10 LLM legal judgment + | + v + S2_20 deterministic ReliefPlan + + C25 case_type exact binding + + C27~C29 verified retrieval + + CE calculators / completeness reports + | + v + S2_30 LLM joint drafting + | + v + S2_40 deterministic validation + + closed render + state + seal + commit + | + +---------------+----------------+ + v v + READY_FOR_LAWYER_FILING_DECISION LAWYER_REVIEW_REQUIRED + \ / + +-- professional draft package-+ +``` + +사건종류는 S2_10이 실체법 판단을 마친 뒤 C25가 atomic claim을 drafting·retrieval·coverage용 `case_type_id`에 결속할 때만 사용한다. 사건명·group·semantic similarity로 substantive profile이나 청구권 존부를 결정하지 않는다. + +## 2. 상세 작업흐름도 DAG — ASCII + +```text +┌──────────────────────────────── SOURCE PLANE ────────────────────────────────┐ +│ Stage 1 BO / evidence / events / LES / Fact Ledger / signals / review │ +│ active domain_config / client goal / defendant target / asset status │ +│ canonical authority + law values + case_type + rule registry + corpus seal │ +└───────────────────────────────┬──────────────────────────────────────────────┘ + │ immutable path/schema/hash refs + v +┌──────────────────────────────────────────────────────────────────────────────┐ +│ S2_00 [DETERMINISTIC PYTHON] │ +│ C00 input allowlist · schema/hash · ALL read-set · review universe │ +│ C05 BO↔LES↔Ledger↔signal↔evidence conservation │ +│ C10 evidence/object/party-title/slot crosswalk · issue ledger base │ +│ C15 co-cluster · dependency DAG · immutable cluster slices · bundle plan │ +└──────────────┬───────────────────────────────────────────────┬───────────────┘ + │ readable minimum case │ impossible to + │ │ build consistent + v │ package +┌───────────────────────────────────────────────────────────┐ │ +│ S2_10 [LLM: wave-parallel, immutable parts] │ │ +│ active profile + official authority + Stage 1 slice only │ │ +│ claim/defense/remedy options + typed provenance │ │ +│ normalized claim signature + limitation urgency │ │ +└────────────────────────────┬──────────────────────────────┘ │ + │ deterministic ID-sorted reduce │ + v │ +┌───────────────────────────────────────────────────────────┐ │ +│ S2_20 [DETERMINISTIC PYTHON] │ │ +│ C20 option conservation / dependency / compatibility │ │ +│ C21 party-set / title / liability / client-instruction │ │ +│ C25 normalized claim signature → exact case_type_id │ │ +│ zero/multi → UNRESOLVED_BINDING; claim 생성 금지 │ │ +│ C26 exact relief rule/renderer/CE-13 branch selection │ │ +│ C22 CE-01..CE-R4 calculators + calculation receipts │ │ +│ C27 role-aware query plan │ │ +│ C28 metadata-filtered Weaviate hybrid retrieval │ │ +│ C29 approved pack + corpus↔Stage 1 slot crosswalk │ │ +│ C30 exhibit register / filing metrics / completeness │ │ +│ C35 frozen ReliefPlan + claim groups + group slices │ │ +└────────────────────────────┬──────────────────────────────┘ │ + │ selected narrow context only │ + v │ +┌───────────────────────────────────────────────────────────┐ │ +│ S2_30 [LLM: group-parallel, immutable parts] │ │ +│ frozen plan + selected rule + approved requirement pack │ │ +│ relief/cause/worknote/procedural-declaration atoms │ │ +│ exhibit tokens; no calculation, no new claim, no commit │ │ +└────────────────────────────┬──────────────────────────────┘ │ + │ │ + v v +┌──────────────────────────────────────────────────────────────────────────────┐ +│ S2_40 [DETERMINISTIC PYTHON; final status single writer] │ +│ C40 part reduce + issue ledger final │ +│ C45 closed AST/template rendering + independent canonical re-render │ +│ C46 V01~V18 + law-value/calculation/rule/corpus/package-hash conformance │ +│ C47 candidate digest → review request / 외부 receipt 검증 → final seal │ +│ C48 atomic commit → post-rename commit result, 또는 status-only diagnostic │ +└───────────────────────┬───────────────────────┬──────────────────────────────┘ + │ │ + v v + READY_FOR_LAWYER_FILING_DECISION LAWYER_REVIEW_REQUIRED + \ / + +-- clean draft + worknote + receipts + +[S2_00 impossible branch] + | + v + [technical diagnostic] + | + v + [S2_40 status-only entry] + +TECHNICAL_INCOMPLETE는 일관된 package를 물리적으로 만들 수 없는 영향범위에만 사용한다. +법률 불확실성·증거 gap·binding conflict는 review draft를 저장하며 전역 no-save하지 않는다. +``` + +### 2.1 UML 상세 DAG + +아래 UML은 위 ASCII와 동일한 5-task 실행계약, 내부 deterministic component와 상태 분기를 표현한다. + +![Stage 2 v4 상세 UML DAG](./stage_2_optimal_update_strategy_v.4_workflow.svg) + +UML의 normative 의미는 이 문서의 task/IO·producer·state 표와 함께 해석한다. 그림과 표가 충돌하면 schema·producer·invariant 표가 우선하고 SVG를 재생성한다. + +## 3. 전체 IO 계약 + +### 3.1 Stage 1 ingress allowlist + +S2_00은 실제 run root에서 다음 logical input을 manifest row로 찾고, expected path·observed path·schema·producer·raw hash를 모두 기록한다. versioned repository source path는 설계 provenance이며 runtime 배포경로가 아니다. + +| logical input | Stage 2 사용 목적 | 누락·불일치 처리 | +|---|---|---| +| `BO.json` | 당사자·법률행위·목적물·source BO identity | 읽기 불가 시 affected scope `TECHNICAL_INCOMPLETE` | +| `evidence_indexed.json` | 내부 evidence ID, 문서 provenance, 기존 호증 seed | gate 미확정이면 evidence assertion READY 제한; 사실 삭제 금지 | +| `evidence_event_candidates.json` | 이행기·송달·최고·해제·제공·거절 등 event 후보 | 불명확 event는 `UNRESOLVED`, 날짜 추정 금지 | +| B1/B2 gate·B12 audit handoff | evidence/event quality와 exception disposition | 원문 key를 canonical review schema로 mapping | +| `legal_effect_structures.json` | domain/type/route/calculation request와 BO 역색인 | join gap은 issue ledger에 보존 | +| `Fact_Ledger_base.json` | `fact_id`와 BO·evidence·LES·계산 연결 | typed fact assertion의 유일 사실 anchor | +| `fact_ledger_writer_report.json` | hash·conservation·missing operand·law version | 자체 PASS를 복사하지 않고 재검사 | +| `signals/signal_manifest.json`와 canonical `ALL` read set | 기한·계산·절차·구제 signal | used/unused 독립 순회와 digest 검사 | +| `stage1_part4_review_handoff.json` 및 P1~P4 review | unresolved/conditional/excluded/review universe | affected READY만 제한, review draft 보존 | +| `client_goal.json` | 의뢰인 목표와 법률상 가능한 relief 구분 | no-sue를 청구권 부존재로 바꾸지 않음 | +| `domain_activation_manifest.json`·활성 `domain_config.json` | 활성 profile·element/opposing/defense slot | config 누락은 slot 검사를 `UNEVALUABLE`로 두고 review | +| optional `defendant_target_matrix`·`asset_status` | 피고별 의뢰인 지시·회수위험·재산상태 | 사실·법률상 제외와 별도 disposition | + +Stage 1에 다섯 번째 production task나 새로운 상류 전제 자산을 요구하지 않는다. S2_00은 현행 산출물을 읽고 독립 검증한다. + +현행 Stage 1 v.8의 review/seal logical resolver는 다음 exact relative path를 기본값으로 봉인한다. 배포본이 이와 다르면 추측 경로를 탐색하지 않고 `stage1_contract_manifest.json`의 명시적 mapping과 raw hash를 요구한다. + +| channel | exact relative path | 핵심 seal/review field | +|---|---|---| +| Part 1 evidence gate | `quality_gates/B1_evidence_indexed_gate.json` | gate result, finding IDs, source hashes | +| Part 1 event gate | `quality_gates/B2_event_candidates_gate.json` | gate result, finding IDs, source hashes | +| Part 1 Stage 2 handoff | `quality_gates/stage1_part1_soft_gate_handoff.json` | `handoff_status`, `stage2_auto_progression_allowed`, `hard_gate_summary`, `review_item_conservation`, seven-key `digest_guard` | +| Part 2 review | `quality_gates/stage1_part2_review_handoff.json` | `review_items`, `review_item_count`, action source | +| Part 3 review | `quality_gates/stage1_part3_review_handoff.json` | `review_items`, LES transaction/hash refs | +| Part 4 review | `quality_gates/stage1_part4_review_handoff.json` | `status`, `review_items`, signal/LES/fact-ledger refs | +| Part 4 writer report | `stage1_tmp/fact_ledger/fact_ledger_writer_report.json` | ledger hash, conservation, missing operand, law-version refs | + +Part 1 `digest_guard`의 closed key는 `evidence_indexed_sha256`, `evidence_event_candidates_sha256`, `b1_gate_sha256`, `b2_gate_sha256`, `screening_sha256`, `activation_manifest_sha256`, `registry_index_sha256`다. 활성 profile 집합은 handoff가 봉인한 `expected_runnable_domain_ids`를 기준으로 하고, 실제 `active_domain_ids`·`domain_config` 집합과의 차이를 별도 issue로 보존한다. Stage 1 ID 순번·multiset 규칙은 이 resolver가 가리키는 실제 배포 schema를 Phase 0에서 확인한 뒤 `schemas/ingress.schema.json`에 봉인하며, 확인 전 임의 순번 규칙을 만들지 않는다. + +### 3.2 task별 IO + +| Task | 주요 입력 | 주요 출력 | 소비자 | +|---|---|---|---| +| S2_00 | Stage 1 allowlist, deployed schemas/domain configs, release manifests | `stage1_input_manifest.json`, `intake_report.json`, `ingress_status.json`, `case_context.json`, `evidence_inventory.json`, `object_registry.json`, `party_and_title_context.json`, `slot_crosswalk.json`, `cluster_plan.json`, cluster slices, `bundle_plan.json`, `issue_ledger.base.json` | S2_10, S2_40 status short-circuit | +| S2_10 | cluster slice, active profile subset, common/route authority, prior-wave narrow verdict | per-cluster `domain_verdict.json`, typed claim options, normalized signature, issue/assumption/usage parts | S2_20 | +| S2_20 | S2_10 immutable parts, registries, calculators, Weaviate release | `canonical_relief_plan.json`, `claim_groups.json`, `case_type_bindings.json`, `issue_ledger.plan.json`, `rule_context_packs/`, query/retrieval/pack receipts, `exhibit_register.json`, `filing_metrics.json`, option/party reports, group slices | S2_30, S2_40 | +| S2_30 | frozen group slice, selected relief rule, approved requirement pack, fact/evidence excerpt | per-group typed draft, issue/worknote/usage parts | S2_40 | +| S2_40 | all immutable parts, frozen plan, templates, base/plan ledger; resume 시 외부 review receipt | final ledger, candidate manifest/digest, relief/cause/pleading Markdown, review request·packet, validation, status, package, post-rename commit result | 외부 검토자, 변호사·후속 제출 workflow | + +### 3.3 run IO tree + +```text +stage2_runs// +├── ingress/ +│ ├── stage1_input_manifest.json +│ ├── intake_report.json +│ ├── ingress_status.json +│ └── technical_diagnostic.json +├── context/ +│ ├── case_context.json +│ ├── evidence_inventory.json +│ ├── object_registry.json +│ ├── party_and_title_context.json +│ ├── slot_crosswalk.json +│ ├── cluster_plan.json +│ ├── cluster_slices/.json +│ └── bundle_plan.json +├── map_s2_10/ +│ ├── domain_verdicts/.json +│ ├── issue_patches/.json +│ ├── assumption_parts/.json +│ └── usage_parts/.json +├── plan/ +│ ├── canonical_relief_plan.json +│ ├── claim_groups.json +│ ├── case_type_bindings.json +│ ├── issue_ledger.plan.json +│ ├── rule_context_packs/.json +│ ├── prompt_segments//P31_rule_and_pack.json +│ ├── prompt_segments//P32_common_authority.json +│ ├── query_plans/.json +│ ├── retrieval_results/.json +│ ├── retrieval_receipts/.json +│ ├── requirement_fact_packs/.json +│ ├── element_evidence_gap/.json +│ ├── calculation_report.json +│ ├── filing_metrics.json +│ ├── exhibit_register.json +│ ├── option_conservation_report.json +│ ├── party_completeness_report.json +│ └── group_slices/.json +├── map_s2_30/ +│ ├── draft_parts/.json +│ ├── issue_patches/.json +│ ├── worknote_parts/.json +│ └── usage_parts/.json +├── review/ +│ ├── issue_ledger.base.json +│ ├── issue_ledger.final.json +│ ├── assumption_ledger.json +│ ├── review_requests/.json +│ ├── review_receipts/.json +│ ├── lawyer_judgment_record.json +│ └── llm_usage.jsonl +├── control/ +│ └── run_status.json +├── commit/ +│ ├── commit_intent.json +│ └── stage2_commit_result.json +└── final/ + ├── candidate_package_manifest.json + ├── candidate_content_digest.json + ├── claim_relief.md + ├── claim_cause.md + ├── pleading_draft.md + ├── attorney_worknotes.json + ├── lawyer_review_packet.json + ├── stage2_final_validation_report.json + └── stage2_package.json +``` + +위 `final/`은 성공적으로 commit된 sealed-content target이다. 대기·재검토 중에는 동일 상대경로의 candidate content를 `.staging//` 아래에 두고, `control/`과 `commit/`은 그 sealed-content set 밖의 append-only 운영영역으로 유지한다. + +### 3.4 producer ownership + +| artifact family | single writer | 쓰기 금지 주체 | +|---|---|---| +| ingress/context | S2_00 | S2_10/S2_30 LLM | +| cluster immutable parts | 각 S2_10 instance 자기 ID | 다른 instance와 S2_30 | +| ReliefPlan·binding·calculation·retrieval·plan ledger·group slice | S2_20 | S2_10/S2_30 | +| group draft immutable parts | 각 S2_30 instance 자기 ID | 다른 group instance | +| final ledger·documents·status·seal·commit 운영 receipt | S2_40 | S2_00/S2_10/S2_20/S2_30 | +| review request에 대응하는 receipt·lawyer judgment | 배포 manifest가 지정한 대한민국 변호사/전문검토자 | LLM·S2_00/S2_10/S2_20/S2_30; S2_40은 검증·참조만 수행 | + +공용 append는 금지한다. map task는 자기 ID의 immutable part만 쓰고 reducer가 canonical ID 정렬 후 단 한 번 합친다. + +## 4. YAML 전체 catalog: 명칭·작업 특징·작업 내역 + +### 4.1 판정 기준 + +- `LLM-DIRECT`: 해당 workflow가 모델을 호출하고 구조화 추론 결과를 받는다. +- `LLM-CONTEXT`: 모델 호출은 하지 않지만 S2_10 또는 S2_30 bundle에 선택적으로 조립되는 법률 context다. +- `DUAL-CONTRACT`: 선택된 row는 LLM context가 되고 같은 typed field를 Python validator도 검사한다. +- `NON-LLM-DETERMINISTIC`: Python executor가 읽는 선언형 rule·formula·routing·template·deployment data다. + +어떤 YAML도 Python source code를 포함하지 않는다. 실제 제어·계산·검증은 `runtime/*.py` 고정 코드에 있고, YAML은 input/output schema, entrypoint, rule data와 선택 조건을 선언한다. + +92개 catalog의 실행 주체별 합계는 `LLM-DIRECT` 2개, `LLM-CONTEXT` 45개, `DUAL-CONTRACT` 6개, `NON-LLM-DETERMINISTIC` 39개다. `LLM-CONTEXT`는 직접 model을 호출하지 않고 Python이 선택·조립한 뒤 LLM bundle에 제공하며, `DUAL-CONTRACT`는 같은 선택 row를 LLM이 읽고 Python이 검증한다. 따라서 “LLM 추론”과 “Python 실행”뿐 아니라 양자를 연결하는 context/data 계약을 별도로 표시한다. + +### 4.2 orchestration workflow YAML 5개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml` | NON-LLM-DETERMINISTIC | `runtime/s2_00_ingress.py`에 allowlist·schema·IO·retry·state를 전달하여 ingress와 bundle을 작성 | +| `workflows/S2_10_domain_relief_resolution_map.yml` | LLM-DIRECT | dependency wave의 cluster별 법률판단 prompt를 조립하고 typed DomainVerdict를 수집 | +| `workflows/S2_20_canonical_relief_plan_reduce.yml` | NON-LLM-DETERMINISTIC | `runtime/s2_20_reduce.py`가 option·계산·binding·retrieval·group freeze를 수행하도록 선언 | +| `workflows/S2_30_claim_group_draft_map.yml` | LLM-DIRECT | frozen group별 청구취지·청구원인 typed atom 작성 prompt를 조립 | +| `workflows/S2_40_final_review_render_and_commit.yml` | NON-LLM-DETERMINISTIC | `runtime/s2_40_commit.py`가 V01~V18·closed render·seal·atomic commit을 수행하도록 선언 | + +### 4.3 S2_10 실체 법리 context YAML 22개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `registry/substantive/EC-00_contract_general.yml` | LLM-CONTEXT | 계약 성립·해석·동시이행·불이행·해제·원상회복 공통 법리 | +| `registry/substantive/E-01_juristic_act_validity.yml` | LLM-CONTEXT | 무효·취소·대리·조건·기한 | +| `registry/substantive/E-02_contract_money_claim.yml` | LLM-CONTEXT | 계약상 금전채권의 요건·항변·구제수단 | +| `registry/substantive/E-03_parties_liability_succession.yml` | LLM-CONTEXT | 보증·연대·구상·채무인수·채권양도·영업양수 | +| `registry/substantive/E-04_unjust_enrichment.yml` | LLM-CONTEXT | 부당이득·사무관리·원상회복·중복청구 | +| `registry/substantive/E-05_tort_general.yml` | LLM-CONTEXT | 위법·귀책·인과관계·손해·공동불법행위 | +| `registry/substantive/E-06_professional_liability.yml` | LLM-CONTEXT | 의료·설명의무·전문직·제조물책임 일반 쟁점 | +| `registry/substantive/E-07_construction_defect.yml` | LLM-CONTEXT | 공사대금·기성·추가공사·하자 | +| `registry/substantive/E-08_lease_deposit.yml` | LLM-CONTEXT | 임대차 종료·공제·보증금·대항력·갱신 | +| `registry/substantive/E-09_registry_transfer_claims.yml` | LLM-CONTEXT | 이전·말소·회복·경정·본등기·승낙 | +| `registry/substantive/E-10_secured_registry.yml` | LLM-CONTEXT | 저당·질권·전세권·유치권·경매·배당 | +| `registry/substantive/E-11_possession_vindication.yml` | LLM-CONTEXT | 인도·명도·퇴거·철거·방해배제·상린관계 | +| `registry/substantive/E-12_co_ownership_boundary.yml` | LLM-CONTEXT | 공유·공유물분할·경계·집합건물 | +| `registry/substantive/E-13_creditor_preservation.yml` | LLM-CONTEXT | 사해행위취소·채권자대위의 요건·구제형태 | +| `registry/substantive/E-14_execution_linked_claims.yml` | LLM-CONTEXT | 전부·추심·공탁·청구이의·제3자이의 | +| `registry/substantive/E-15_succession_family_property.yml` | LLM-CONTEXT | 상속순위·포기·상속회복·유증·유류분 | +| `registry/substantive/E-16_negotiable_instruments.yml` | LLM-CONTEXT | 어음·수표 발행·배서·제시·소구 | +| `registry/substantive/E-17_labor_wage_claims.yml` | LLM-CONTEXT | 근로자성·임금·퇴직금·근로지위 | +| `registry/substantive/E-18_org_resolution_status.yml` | LLM-CONTEXT | 회사·단체 결의·지위·주주권·조합 | +| `registry/substantive/E-19_insurance_claims.yml` | LLM-CONTEXT | 보험금·면책·고지·수익자·보험자대위 | +| `registry/substantive/E-20_ip_claims.yml` | LLM-CONTEXT | 지식재산 권리범위·침해·금지·손해 | +| `registry/substantive/E-21_media_personality_rights.yml` | LLM-CONTEXT | 정정·반론·삭제·명예·인격·개인정보 | + +### 4.4 cross-cutting context YAML 5개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `profiles/crosscut/E-00_residual_unrouted.yml` | LLM-CONTEXT | 미분류 material을 추측으로 종결하지 않고 review issue로 보존 | +| `profiles/crosscut/X1_notice_lifecycle.yml` | LLM-CONTEXT | 발송·도달·효력·기산 event 판단 | +| `profiles/crosscut/X2_asset_identity_lineage.yml` | LLM-CONTEXT | 별지·등기·자산 alias·지분 identity | +| `profiles/crosscut/X3_procedure_standing_relief.yml` | LLM-CONTEXT | 당사자적격·소의 이익·관할·청구형태·집행가능성 | +| `profiles/crosscut/X4_response_admission_defense.yml` | LLM-CONTEXT | source를 Stage 1 `opposing_fact_slots`·`defense_map`, 실제 제출된 상대방 서면의 typed ref, 승인된 authority row로 한정하여 자백·부인·항변·재항변을 분석 | + +### 4.5 특별법 context YAML 13개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `profiles/special_law/SL-AUTO_motor_vehicle.yml` | LLM-CONTEXT | 자동차손해 특별요건·책임관계 | +| `profiles/special_law/SL-INDUSTRIAL_ACCIDENT.yml` | LLM-CONTEXT | 산재급여와 민사배상 조정 | +| `profiles/special_law/SL-PRODUCT_LIABILITY.yml` | LLM-CONTEXT | 제조물 결함·제조업자·면책 | +| `profiles/special_law/SL-RESIDENTIAL_LEASE.yml` | LLM-CONTEXT | 주택임대차 적용범위·대항력·보증금·갱신 | +| `profiles/special_law/SL-COMMERCIAL_LEASE.yml` | LLM-CONTEXT | 상가임대차 갱신·보증금·권리금 | +| `profiles/special_law/SL-LABOR.yml` | LLM-CONTEXT | 노동관계 강행규정·지위·기간 | +| `profiles/special_law/SL-STATE_LIABILITY.yml` | LLM-CONTEXT | 국가배상 특별요건·공법경계 및 specialist review trigger | +| `profiles/special_law/SL-IP-PATENT.yml` | LLM-CONTEXT | 특허·실용신안 권리범위·침해·구제 | +| `profiles/special_law/SL-IP-COPYRIGHT.yml` | LLM-CONTEXT | 저작권 침해·저작인격권·구제 | +| `profiles/special_law/SL-IP-OTHER.yml` | LLM-CONTEXT | 상표·디자인·부정경쟁·영업비밀 분기 | +| `profiles/special_law/SL-MEDIA.yml` | LLM-CONTEXT | 언론중재·정정·반론·추후보도 | +| `profiles/special_law/SL-TRANSPORT_MARITIME.yml` | LLM-CONTEXT | 운송·해상 책임기간·면책·책임제한 | +| `profiles/special_law/SL-CONSUMER_CONTRACT.yml` | LLM-CONTEXT | 소비자성·사업자성·거래방식별 철회·항변·무효·환급 | + +### 4.6 deterministic 계산 YAML 17개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `registry/calculations/CE-01_interest_delay.yml` | NON-LLM-DETERMINISTIC | obligation별 원금·이자·지연손해금 rate timeline | +| `registry/calculations/CE-02_allocation_setoff_balance.yml` | NON-LLM-DETERMINISTIC | 변제충당·상계·잔액 | +| `registry/calculations/CE-03_limitation_deadline.yml` | NON-LLM-DETERMINISTIC | 소멸시효·제척기간·출소기간과 urgency | +| `registry/calculations/CE-04_valuation.yml` | NON-LLM-DETERMINISTIC | 사용이익·목적물 가치 | +| `registry/calculations/CE-05_personal_injury.yml` | NON-LLM-DETERMINISTIC | 일실수입·치료비·과실상계 | +| `registry/calculations/CE-06_construction_defect.yml` | NON-LLM-DETERMINISTIC | 기성·추가공사·하자보수·감액 | +| `registry/calculations/CE-07_lease_use_gain.yml` | NON-LLM-DETERMINISTIC | 임대차 공제·사용이익 | +| `registry/calculations/CE-08_inheritance_reserved_share.yml` | NON-LLM-DETERMINISTIC | 상속분·유류분 가액·temporal branch | +| `registry/calculations/CE-09_wage_severance.yml` | NON-LLM-DETERMINISTIC | 임금·수당·퇴직금 | +| `registry/calculations/CE-10_actio_insolvency_value.yml` | NON-LLM-DETERMINISTIC | 무자력·공동담보·사해행위 3-cap | +| `registry/calculations/CE-11_distribution_share_division.yml` | NON-LLM-DETERMINISTIC | 배당·지분·분할금액 | +| `registry/calculations/CE-12_insurance.yml` | NON-LLM-DETERMINISTIC | 보험가액·중복보험·공제 | +| `registry/calculations/CE-13_court_value_cost.yml` | NON-LLM-DETERMINISTIC | 소가·인지·송달비용과 병합 branch | +| `registry/calculations/CE-R1_ip_damage.yml` | NON-LLM-DETERMINISTIC | 지식재산 손해액 | +| `registry/calculations/CE-R2_org_liquidation.yml` | NON-LLM-DETERMINISTIC | 회사·조합 청산·분배 | +| `registry/calculations/CE-R3_transport_maritime.yml` | NON-LLM-DETERMINISTIC | 운송·해상 손해·책임제한 | +| `registry/calculations/CE-R4_financial_instrument.yml` | NON-LLM-DETERMINISTIC | 금융상품·계좌·정산 | + +### 4.7 deterministic renderer YAML 6개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `renderers/R01_money_payment.yml` | NON-LLM-DETERMINISTIC | 금전지급 AST/template·typed slots | +| `renderers/R02_delivery_possession.yml` | NON-LLM-DETERMINISTIC | 인도·명도·퇴거 AST/template·typed slots | +| `renderers/R03_declaration_registry.yml` | NON-LLM-DETERMINISTIC | 의사표시·이전/말소/회복/경정 등기 AST/template | +| `renderers/R04_special_nonmoney_performance.yml` | NON-LLM-DETERMINISTIC | 특별 비금전 이행 AST/template | +| `renderers/R05_declaratory.yml` | NON-LLM-DETERMINISTIC | 확인청구 AST/template·소의 이익 slot | +| `renderers/R06_constitutive_judgment_challenge.yml` | NON-LLM-DETERMINISTIC | 형성·불복·분할 method preference template | + +### 4.8 canonical control·drafting·ACTIO·deployment YAML 24개 + +| YAML 명칭 | 특징 | brief 작업 내역 | +|---|---|---| +| `manifest/case_type_registry.yml` | NON-LLM-DETERMINISTIC | 137 `case_type_id`, canonical name, row kind, group, predicate | +| `manifest/case_type_rule_registry.yml` | NON-LLM-DETERMINISTIC | case type→renderer·rule·corpus·CE-13·review policy exact binding | +| `registry/drafting/case_type_relief_rules.yml` | DUAL-CONTRACT | 137 catalog row 중 claim-capable row의 structured 청구취지 rule과 non-claim disposition; 선택 rule만 S2_30 context, S2_40 typed validation | +| `registry/review/review_policy_registry.yml` | NON-LLM-DETERMINISTIC | base policy·tag·trigger→required receipt·READY eligibility | +| `registry/authority/authority_registry.yml` | DUAL-CONTRACT | proposition·temporal scope·official locator·negative treatment; 선택 excerpt만 LLM context | +| `law_values/general_law_values.yml` | NON-LLM-DETERMINISTIC | 이율·기간·상한 등 output-affecting versioned 법정수치 | +| `law_values/court_fee_values.yml` | NON-LLM-DETERMINISTIC | 소가·인지·송달비용의 시점별 수치 | +| `registry/temporal/inheritance_reserved_share.yml` | DUAL-CONTRACT | `inheritance_opened_at` 기준 신·구 유류분 remedy·renderer·interest branch | +| `registry/drafting/forbidden_relief_rules.yml` | DUAL-CONTRACT | 강제 사죄·사과광고 등 금지 relief와 허용 정정·반론 branch | +| `registry/drafting/counter_performance_rules.yml` | DUAL-CONTRACT | 동시이행·상환이행·제공·수령거절 template와 CE-01 연결 | +| `registry/drafting/procedural_declaration_rules.yml` | DUAL-CONTRACT | 소장 송달 의사표시 actor·권한·내용·도달·효과상태 | +| `registry/corpus/requirement_fact_scope.yml` | NON-LLM-DETERMINISTIC | case type/subtype·role·element ID의 Weaviate filter와 권한범위 | +| `routing/actio_pauliana_route_registry.yml` | NON-LLM-DETERMINISTIC | ACTIO 6 route와 operand·recipient·renderer 선택 | +| `routing/actio_pauliana_mortgage_route.yml` | NON-LLM-DETERMINISTIC | 담보설정·말소·경매·배당 route 분기 | +| `profiles/overlays/ACTIO-MORTGAGE.yml` | LLM-CONTEXT | 기존 담보가 있는 목적물 양도·실제 피담보채무·공동담보 법리 | +| `profiles/overlays/ACTIO-MORTGAGE-CREATION.yml` | LLM-CONTEXT | 사해적 근저당권 설정과 배당 route 법리 | +| `profiles/overlays/ACTIO-ENCUMBERED-TRANSFER.yml` | LLM-CONTEXT | 부담부 소유권이전과 가액배상 법리 | +| `profiles/overlays/ACTIO-PRESERVED-CLAIM-BUNDLE.yml` | LLM-CONTEXT | 복수 피보전채권·이자·변제·담보부족 추적 | +| `profiles/overlays/ACTIO-DEFENSE-MAP.yml` | LLM-CONTEXT | 충분담보·상계·수익자/전득자 선의·재항변 | +| `validators/actio_value_compensation_invariants.yml` | NON-LLM-DETERMINISTIC | ACTIO route·3-cap·기간·당사자·recipient 검증 | +| `registry/regression/finding_fixture_map.yml` | NON-LLM-DETERMINISTIC | eval/discrepancy finding→invariant→외부 fixture mapping; runtime 법리 source 아님 | +| `registry/cache/prompt_cache_policy.yml` | NON-LLM-DETERMINISTIC | non-PII prefix, breakpoint, key, TTL capability, telemetry | +| `migration/legacy_asset_disposition.yml` | NON-LLM-DETERMINISTIC | legacy 16종의 비차단 `MIGRATE\|REBUILD\|DROP` audit disposition | +| `deployment/stage2_loader_binding.yml` | NON-LLM-DETERMINISTIC | 5 workflow, Python entrypoint, model/effort, schema, IO root, legacy fallback 0 결속 | + +따라서 v4의 canonical YAML 계획은 **92개 physical YAML**이다: workflow 5 + core LLM context 40 + 계산 17 + renderer 6 + control/drafting/overlay/deployment 24. 이 숫자는 구현 완료 수가 아니라 명시된 계획 수다. claim-capable subset의 청구취지 Markdown과 Weaviate raw 문서는 YAML 수에 포함하지 않는다. + +`X4_response_admission_defense.yml`의 source contract는 닫혀 있다. 실제 상대방 제출서면의 문서 ID·문단 locator가 없으면 자백·부인으로 단정하지 않고, Stage 1의 `opposing_fact_slots`·`defense_map`에서 나온 내용은 `ANTICIPATED_DEFENSE`로만 표시한다. 이에 따라 X4는 출처 불명 모듈도 아니고 E-13에 잠정 흡수되는 조건부 파일도 아니다. + +## 5. S2_00 상세 계약 — ingress·identity·provenance seed + +### 5.1 canonical ID와 namespace owner + +| ID 종류 | owner | 변경 규칙 | +|---|---|---| +| `fact_id`, `evidence_id`, `BO_ID`, Stage 1 `signal_id`, Stage 1 slot ID | Stage 1 | Stage 2가 재번호·병합·대체 금지 | +| `cluster_id`, `claim_option_id`, `atomic_claim_id`, `claim_group_id` | Stage 2 | source ID와 deterministic minting input hash 필수 | +| `case_type_id` | `case_type_registry.yml` | C25가 exact row를 참조; LLM 생성 금지 | +| `authority_id`, `law_value_id`, `template_id`, `calculation_receipt_id` | 해당 registry/executor | release/hash/temporal scope 필수 | +| `exhibit_id` | S2_20 exhibit register | 기존 제출 label 보존, 신규 label만 deterministic 배정 | + +S2-minted ID는 `namespace`, `producer_task`, `source_refs`, `canonical_order_key`를 갖는다. 병렬 worker가 임의 순번을 부여하지 않는다. + +### 5.2 slot·review·evidence 보존 + +```text +fact_id + -> BO_ID / party_id / object_id + -> LES structure_id / domain_id / type_id / route_id + -> signal_id / calculation_request / law_version_refs + -> element_slot_id / opposing_fact_slot_id / defense_id / rebuttal_slot_id + -> evidence_slot_status / evidence_id / event_id + -> review_key / client_goal / client_instruction +``` + +S2_00은 이 연결을 원문에서 새로 추론하지 않고 Stage 1 canonical ID를 보존한다. active profile의 `element_slots`, `opposing_fact_slots`, `defense_map`과 evidence status를 `slot_crosswalk.json`에 결속한다. corpus element ID는 별도 namespace이며 법률가 승인 crosswalk 없이는 Stage 1 slot을 대체하지 못한다. + +slot state는 `SUPPORTED | CONDITIONAL | UNRESOLVED | NOT_APPLICABLE`이다. 새 slot 제안은 `proposed_new_slot=true`, authority ref, 기존 taxonomy와의 차이 및 review disposition을 가져야 하며 기존 slot처럼 가장하지 않는다. + +### 5.3 ingress 보존식 + +S2_00은 최소 다음을 독립 계산한다. + +1. BO와 Fact Ledger `source_bo_id`의 set·cardinality·multiset 일치 +2. LES expected/actual domain·type·route counts와 BO 역조인 일치 +3. signal manifest `ALL` read set의 used/unused 독립 순회, 합집합·교집합·순번 검사 +4. evidence index와 event candidate의 finalized ID·gate·exception disposition 보존 +5. `expected_review_keys = resolved ∪ conditional ∪ unresolved ∪ excluded`, 네 집합 pairwise disjoint +6. P1~P4 exact handoff path와 digest key, observed hash, schema version 보존 +7. 활성 profile마다 deployed `domain_config.json` 및 slot ID crosswalk 존재 여부 +8. every input path의 allowlist membership, raw hash, producer, schema, transaction/run identity + +상류 `blocks_final_drafting` 또는 blocked review item은 해당 scope의 filing-decision READY를 제한한다. recoverable record를 삭제하거나 전체 run의 draft 저장을 금지하지 않는다. + +### 5.4 party·title·object context + +`party_and_title_context.json`은 다음을 분리한다. + +- plaintiff title chain: 계약당사자, 양수, 상속, 대위, 구상 등 권원 단계 +- defendant role: 원채무자, 보증인, 수익자, 전득자, 점유자, 등기의무자 등 +- liability form: 개별·연대·부진정연대·보충·한도·공동관계 +- client instruction: sue now, defer, no-sue, settlement preference +- recovery information: 현재 파악된 재산·회수위험·우선순위; 법률상 청구권 존부와 분리 +- completeness status와 source refs + +`object_registry.json`은 부동산·동산·채권·등기·계좌·지분별 identity와 alias lineage를 보존한다. `required_specification_slots`는 renderer와 subtype이 정한다. 신규 소유권이전등기와 기존 등기 말소에 동일 접수번호 slot을 일률 강제하지 않는다. + +## 6. S2_10 상세 계약 — dependency-wave 법률판단 + +### 6.1 cluster와 dependency + +동일 채무·목적물·당사자관계 또는 같은 LES route를 공유하는 아래 관계는 co-cluster한다. + +- 원채무와 보증·연대·채무인수·상호속용 영업양수 책임 +- 피보전채권과 사해행위취소·채권자대위 +- 물권·점유와 인도·방해배제·사용이익 +- 동일 급부의 변제·상계·충당·이자 +- 계약이행·해제 원상회복·손해배상 등 법률상 대안 + +남는 관계는 `claim_precondition | accessory_of | incompatible_with` edge로 기록한다. Stage 1 registry의 `depends_on`은 지식 상속 관계이므로 그대로 소송상 선후관계로 쓰지 않는다. cycle은 삭제하지 않고 conditional premise와 review issue로 보존한다. + +### 6.2 LLM input 경계와 model binding + +S2_10에는 해당 cluster의 Stage 1 slice, 활성 profile subset, 적용시점 authority excerpt, law-value token name, 선행 wave의 좁은 operative slice만 제공한다. 137종 catalog 전체, raw corpus 전체, 모든 rule Markdown, 법정수치 table 전체를 넣지 않는다. + +최고 품질 production 후보의 기본 binding은 `gpt-5.6-sol`과 `reasoning_effort=ultra`로 두되 `deployment/stage2_loader_binding.yml`에서만 지정하고 Phase 4 representative benchmark와 법률가 blind review를 통과해야 확정한다. YAML context 자체에는 model 호출 코드를 넣지 않는다. + +### 6.3 typed DomainVerdict와 claim option + +각 S2_10 결과는 closed schema를 따른다. + +```yaml +cluster_id: CL-0001 +claim_options: + - claim_option_id: CO-0001 + normalized_claim_signature: {} + relation: primary + decision: SUPPORTED + element_statuses: [] + defense_statuses: [] + remedy_candidates: [] + incompatible_with: [] + precondition_refs: [] + same_underlying_recovery_group_id: RG-001 + limitation_urgency: null + impact_scope: OPTION_ONLY + risk_level: UNASSESSED + forbidden_outputs: [] + review_resolutions: [] + typed_provenance: [] +``` + +`decision`은 `SUPPORTED | CONDITIONAL | UNRESOLVED | EXCLUDED`다. 의뢰인의 현재 미제기 지시는 `EXCLUDED`가 아니라 후단의 `DEFERRED_BY_CLIENT_INSTRUCTION` disposition으로 보존한다. LLM은 `case_type_id`, 최종 금액, exhibit label, 최종 group, READY 상태 또는 commit path를 정하지 않는다. + +S2_10이 출력할 수 있는 `impact_scope`의 closed enum은 `RUN_WIDE | CLUSTER_LOCAL | OPTION_ONLY`다. 아직 claim group이 존재하지 않으므로 S2_10은 `GROUP_LOCAL`을 쓰지 못한다. S2_20의 C20이 option dependency를 정규화한 뒤 stable preliminary `claim_group_id`를 mint하고, 그 이후 S2_20/S2_30이 `GROUP_LOCAL`을 계산할 수 있다. C35는 group 구성과 slice를 동결할 뿐 이미 발급한 group ID를 다시 mint하지 않는다. `forbidden_outputs`는 해당 verdict가 생성해서는 안 되는 relief/문형을, `review_resolutions`는 해소된 review key와 근거만 담는다. + +### 6.4 typed provenance + +| atom/proposition type | 필수 source contract | +|---|---| +| `FACT_ASSERTION` | Stage 1 `fact_id`; 증거를 언급하면 `evidence_id`도 필수 | +| `EVIDENCE_ASSERTION` | `evidence_id`, source locator, 후단 `exhibit_id` | +| `PARTY_OR_OBJECT_ASSERTION` | `BO_ID`·party/object registry ref | +| `LEGAL_PROPOSITION` | `authority_id` 또는 approved corpus chunk와 proposition ID | +| `DERIVED_VALUE` | `calculation_receipt_id`, operand refs, `law_value_id` | +| `PROCEDURAL_DECLARATION` | declaration rule, actor authority, service event/status ref | +| `TEMPLATE_GLUE` | `template_id`와 typed slot refs; 새 사실 포함 금지 | + +source가 없는 법률 가설은 `assumption_part` 또는 worknote로만 저장한다. legal chunk나 rule Markdown을 사건 사실 source로 승격할 수 없다. + +## 7. S2_20 상세 계약 — portfolio·binding·retrieval·calculation + +내부 의존 순서는 `C20/C21 portfolio·party → C25/C26 exact binding·rule branch → C22 calculators`이며, 결속 후 `C22`와 `C27~C29`를 병렬 실행한 다음 `C30 reports → C35 freeze`로 합친다. 특히 CE-13은 `case_type_id`, 선택 rule branch와 portfolio 병합관계를 받은 뒤에만 실행한다. + +### 7.1 option conservation과 lawful frontier + +다음 식은 claim option ID의 exact set equality와 pairwise disjointness로 검사한다. + +```text +all_option_ids = + selected_option_ids + ∪ alternative_option_ids + ∪ excluded_option_ids + ∪ deferred_option_ids +``` + +각 excluded/deferred row는 `legal_reason`, `evidence_reason`, `client_instruction_ref`, `reconsideration_condition`, limitation impact와 amount impact를 구분한다. C20은 dependency와 compatibility를 정규화한 뒤 preliminary claim group을 만들고 stable `claim_group_id`를 발급한다. 이후 C25 binding과 C35 freeze는 이 ID를 보존한다. S2_20은 법률상 양립성, 선결·부종관계, 당사자·급부 동일성, 중복회복과 회수상한을 검증하고 비지배 option을 자동 소거하지 않는다. + +비지배 option의 기계적 표시 순서는 `limitation_urgency`, `decision`, `relation`, stable `claim_option_id`로만 정하며 승소확률을 창작하지 않는다. 변호사가 순서를 바꾸거나 일부청구를 선택하면 candidate digest에 결속된 `lawyer_judgment_record.json`에 선택 근거·잔여 위험·영향 option ID를 기록한다. + +S2_20에서 새로 생기는 binding conflict, retrieval/corpus gap, 계산 불능, 당사자·목적물 불완전은 `issue_ledger.plan.json`에만 쓴다. ledger 계보는 `issue_ledger.base.json`(S2_00) → `issue_ledger.plan.json`(S2_20) → `issue_ledger.final.json`(S2_40)이며 각 단계는 선행 row ID를 보존하고 삭제·덮어쓰지 않는다. + +### 7.2 C25 canonical `case_type_id` binding + +registry 최소 row는 다음과 같다. + +```yaml +case_type_id: CT-001 +canonical_name: 대여금 청구 +source_catalog_ref: {path: case_kinds.md, ordinal: 1, source_sha256: "..."} +row_kind: CLAIM +claim_capable_disposition: CLAIM_CAPABLE +group_id: MONEY_CLAIM +classification_predicate: {} +allowed_renderer_ids: [R01] +allowed_companion_case_type_ids: [] +relief_rule_refs: [] +corpus_scope_refs: [] +court_value_rule_refs: [] +review_policy_base: STANDARD_ATTORNEY_REVIEW +review_tags: [] +implementation_status: PLANNED +``` + +`normalized_claim_signature`의 closed field는 `claim_family`, `legal_effect`, `performance_kind`, `object_kind`, `party_role_pattern`, `source_obligation_kind`, `remedy_mode`, `registry_action`, `procedural_posture`, `special_statute_tags`다. 각 value는 registry token 또는 명시적 `UNKNOWN`이고, key 정렬·Unicode NFC·set token 정렬 후 canonical hash를 만든다. 자유 사건명이나 자연어 embedding은 predicate operand가 아니다. + +C25는 이 signature를 `EQ`, `IN`, `ALL_OF`, `NONE_OF`, `EXISTS`만 허용하는 side-effect-free predicate grammar로 exact match한다. `row_kind ∈ {CLAIM, DOCTRINE_TOPIC, GENERIC, GROUP}`를 구분한다. `DOCTRINE_TOPIC/GROUP` row는 신규 청구가 될 수 없다. `GENERIC` row는 대한민국 변호사가 승인한 closed predicate와 `claim_capable_disposition=CLAIM_CAPABLE`이 모두 있을 때만 신규 청구에 사용할 수 있다. zero/multi match 또는 GENERIC의 exact predicate 실패는 각각 `BINDING_ZERO_MATCH`, `BINDING_MULTI_MATCH`로 남기며, nearest name, catch-all generic, fuzzy path, semantic fallback 또는 복수 청구 자동 생성은 금지한다. + +`case_type_bindings.json`의 각 row는 `atomic_claim_id`, `claim_option_id`, `claim_group_id`, `signature_hash`, `matched_case_type_id`, `matched_predicate_id`, `selected_renderer_id`, `selected_rule_id`, `applicable_branch_ids`, `binding_status ∈ {BOUND, UNRESOLVED, CONFLICT}`, `binding_issue_codes[]`를 가진다. rule 단계의 closed code는 `RULE_PLAN_CONFLICT`, `RULE_DOCUMENT_MISSING`, `RULE_HASH_MISMATCH`; corpus 단계는 `CORPUS_COVERAGE_MISSING`, `RETRIEVAL_TECHNICAL_INCOMPLETE`다. 미결 binding은 generic review draft를 보존할 수 있지만 clean relief READY는 금지한다. + +### 7.3 case-specific drafting rule selection + +exact binding 후에만 다음이 허용된다. + +```text +case_type_id + atomic claim subtype + -> exact structured relief-rule row + -> exact Markdown source path/hash + -> allowed renderer/branch + -> required specification slots + -> CE-13 branch and review policy +``` + +Markdown은 `RELIEF_ONLY` 설명 source이고 structured row가 executable contract다. 어느 쪽도 frozen claim option을 바꾸거나 Stage 1에 없는 사실·증거를 만들지 못한다. + +### 7.4 C27~C29 requirement-fact retrieval + +1. **C27**은 claim role별 `element | defense | rebuttal | burden | relief_consistency` query를 만들고 `case_type_id`, subtype, role, approved status, temporal scope filter를 고정한다. +2. **C28**은 해당 filter 안에서만 Weaviate hybrid search를 수행한다. timeout·partial result 시 filter를 완화하거나 인접 사건종류로 fallback하지 않는다. +3. **C29**는 source doc/hash/snapshot, section/offset, approval, authority, corpus element ID를 검증하고 Stage 1 slot crosswalk와 대조한다. + +출력 pack의 권한은 `CAUSE_AND_ELEMENT_CHECK`다. 미매핑 chunk는 context-only이고 gap을 충족한 것으로 세지 않는다. 충돌 chunk는 양쪽 provenance를 보존하며 적용시점·법원 위계·후속 취급에 따라 정리하고 해결되지 않으면 review issue를 만든다. 검색 본문 속 prompt/tool/filter 변경 지시는 untrusted data로 기록하고 실행하지 않는다. + +단일 자산 `registry/corpus/requirement_fact_scope.yml`은 다음 named section을 모두 가진다. + +- `collection_contract`: collection/tenant, schema·snapshot ID/hash, jurisdiction, approved-status filter +- `query_contract`: hybrid alpha, top-k, embedding/reranker ID·digest, score normalization, index parameter hash +- `tie_break_contract`: `normalized_score DESC`가 1차 순서이고 점수가 정확히 같은 hit에만 `(case_type_id, subtype_id, doctrine_role, corpus_element_id, chunk_id)` canonical order 적용 +- `slot_crosswalk_rows`: corpus element ID ↔ Stage 1 domain/element/opposing/defense/rebuttal slot의 법률가 승인 mapping +- `replay_contract`: ordered raw pre-rerank hits, scores, selected/dropped reason과 config hash + +따라서 별도 무명 retrieval config나 crosswalk 파일을 런타임에서 탐색하지 않는다. `retrieval_receipt`는 query/filter/config/snapshot/embedding/reranker/index digest, ordered raw hits, post-rerank order, tie-break와 pack hash를 봉인한다. 동일 release·동일 query의 replay가 다른 순서를 내면 `RETRIEVAL_TECHNICAL_INCOMPLETE`다. + +### 7.5 deterministic calculation + +LLM은 산술하지 않는다. S2_20의 고정 calculator가 YAML formula data와 versioned law value를 해석하고 모든 값을 receipt로 만든다. + +- CE-01: obligation별 성립·이행기·최고·불법행위·반대급부 제공·피고별 송달·판결확정 event를 따라 rate timeline 작성 +- CE-03: 청구별 만료일·잔여일·중단·완성유예·제척기간과 `URGENT_DEADLINE` +- CE-08: 상속개시일에 따른 유류분 remedy·가액·이자 branch +- CE-10: 피보전채권·공동담보·수익자/전득자 이익의 별도 operand와 route별 cap +- CE-13: claim portfolio·병합관계·목적물가액·부대청구·적용시점을 이용한 소가·인지·송달비용 + +전역 `max(약정이율, 법정이율/소촉법 이율)`은 금지한다. 약정의 성립·효력·상한, 적용기간, 민·상이율, 피고별 송달, 항쟁 상당성과 route별 배제 특칙을 순차 판정한다. output-affecting numeral은 `law_value_id`가 필요하고 비실행 인용·예시 숫자는 `NON_EXECUTABLE` metadata로 구분한다. + +### 7.6 party·exhibit·filing reports + +- `party_completeness_report.json`: profile의 `party_set_rule_id`, required/present set, 자료완전성, title chain, liability form을 비교한다. 자료 미확정은 review, 확인된 필수당사자 누락은 READY 금지다. +- `exhibit_register.json`: 내부 evidence ID와 외부 갑호증 label을 분리하고 기존 label을 보존한다. 신규 증거만 stable sort key로 번호를 배정한다. +- `filing_metrics.json`: 소가·인지·송달비용, missing operand, range, calculation receipt를 담는다. 계산 불능은 draft 폐기가 아니라 filing-decision READY 제한이다. + +## 8. S2_30 상세 계약 — claim group 공동작성 + +### 8.1 context bundle과 token economy + +```text +[P00 immutable system/legal safety contract] +[P30 immutable drafting/output schema contract] +[P32 common authority excerpts] +--- explicit breakpoint 1 --- +[P31 selected renderer + exact relief rule + approved requirement pack] +--- explicit breakpoint 2 --- +[S30 frozen group slice + Stage 1 fact/evidence excerpts] +``` + +P00·P30은 Phase 2의 static prompt source다. P31·P32는 별도 prompt source file이 아니라 S2_20이 canonical rule/corpus/authority release에서 생성하는 per-group immutable JSON segment이며, 각각 `plan/prompt_segments//P31_rule_and_pack.json`, `P32_common_authority.json`에 schema ID·ordered source hashes·segment hash를 기록한다. S30은 S2_20의 frozen group slice다. + +static common prefix에는 PII와 사건별 사실을 넣지 않는다. first real request가 cohort cache owner가 되고 완료 후 fan-out한다. 별도 `max_tokens:0` warm request는 만들지 않는다. provider가 지원하는 `prompt_cache_key`, explicit breakpoint와 TTL을 capability preflight한 뒤 사용하고 cache write/read/cached token을 기록한다. + +### 8.2 output atom + +각 atom은 `atom_id`, `claim_option_id`, `atomic_claim_id`, `output_section`, `text_or_slots`, typed provenance와 source-plan hash를 가진다. + +```text +relief_main +relief_cost +relief_provisional_execution +cause_parties +cause_facts +cause_law +cause_conclusion +procedural_declaration +worknote_only +``` + +S2_30은 청구취지와 청구원인을 같은 group context에서 함께 작성하여 당사자·급부·금액·기산일·법률상 원인을 일치시킨다. 그러나 최종 문자열·번호·소송비용·가집행·별지·exhibit label·계산값은 확정하지 않는다. + +### 8.3 counter-performance와 procedural declaration + +`counter_performance`는 반대급부 내용, 제공·이행·수령거절 event, 조건과 authority를 가진다. 상환이행 문형은 renderer branch로만 출력하고 CE-01 지체 판단과 연결한다. + +`procedural_declaration`은 actor의 권한, 의사표시 내용, 예정 송달 event, 도달 후 추가기간, 효과조건을 가진다. 송달 전 상태는 `PLANNED`이며 이미 발생한 역사적 사실로 서술하지 않는다. 채권양도 통지처럼 원칙적으로 특정 actor의 통지를 요구하는 경우 대리권 없는 선언을 만들 수 없다. + +### 8.4 불리한 사실·자백위험 + +X4의 각 factual proposition은 `polarity ∈ {SUPPORTS_PLAINTIFF, SUPPORTS_DEFENDANT, MIXED, NEUTRAL}`, `admission_risk ∈ {NONE, POSSIBLE_JUDICIAL_ADMISSION, AUTHENTICITY_OR_SCOPE_DISPUTE}`, `rebuttal_slot_id`, `source_document_id/paragraph_locator`, `presentation_disposition`을 가진다. 실제 상대방 제출서면 locator가 없으면 자백·부인으로 부르지 않고 `ANTICIPATED_DEFENSE`로만 둔다. + +피고에게만 유리한 사실은 삭제하지 않는다. 다만 재항변 근거 또는 변호사가 승인한 `PREEMPTIVE_DISCLOSURE` branch가 없으면 clean cause atom으로 자동 승격하지 않고 `worknote_only`에 보존한다. 명백한 항변의 선진술 필요성, 진술의 진실의무·신뢰성, 재판상 자백 위험을 함께 검토하며 변호사 선택은 candidate digest에 결속된 receipt를 요구한다. + +## 9. S2_40 상세 계약 — closed render·invariant·state·seal + +### 9.1 document assembly + +C45는 검증된 atom을 다음 순서로 조립한다. + +1. 청구취지 본안 항과 주위·예비·선택 관계 +2. 소송비용 부담 항 +3. eligible atom만 참조하는 가집행 항 +4. 당사자관계와 권원 +5. 공통·group별 사실관계 +6. 청구별 요건→사실→증거→항변·재항변 +7. 결론과 별지·호증 reference + +청구취지·비용·가집행 같은 정형부만 closed AST/template로 렌더한다. 청구원인 자유서술 전체를 byte template로 고정하지 않는다. S2_40은 NFC·line ending·escaping을 canonicalize한 뒤 frozen plan과 template로 독립 재전개하여 LLM draft의 정형 slot과 비교한다. + +각 renderer row는 `template_id`, immutable `literal_fragments`, typed `slot_definitions`, `branch_predicates`, `cardinality`, `escaping_policy`, `allowed_atom_types`, `required_exhibit_resolution`, normalization version을 가진다. postcondition은 (a) eligible atom exactly once, (b) unbound/unknown slot 0, (c) dangling exhibit/object/party token 0, (d) branch predicate 단일 선택, (e) independent canonical re-render byte equality다. 자유 텍스트가 literal 또는 typed slot 밖의 정형 청구취지에 삽입되면 V18 실패다. + +### 9.2 비용·가집행 + +가집행 가능성은 atomic relief 단위로 판단한다. + +```text +provisional_execution_eligible = + proprietary_claim + AND performance_atom + AND NOT dependent_on_constitutive_judgment + AND renderer_id NOT IN {R03, R05, R06} +``` + +형성판결에 종속하는 사해행위 가액배상이나 공유물분할 가격배상에 기계적으로 가집행을 붙이지 않는다. 가집행·비용 항은 exact rule branch와 authority ref를 가져야 한다. + +### 9.3 review policy closed contract + +모든 산출물은 실제 제출 전 대한민국 변호사의 filing decision을 거친다. policy는 자동제출 권한이 아니라 추가 specialist receipt를 정한다. + +| field | closed value | +|---|---| +| `review_policy_base` | `STANDARD_ATTORNEY_REVIEW` 또는 `MANDATORY_SPECIALIST_REVIEW` | +| `review_tags[]` | `PUBLIC_LAW_NEXUS_REVIEW`, `UNROUTED_ISSUE_REVIEW`, `DOCUMENT_AUTHENTICITY_REVIEW`, `PROCEDURAL_REMEDY_SPECIALIST_REVIEW`의 부분집합 | +| `required_receipt_types[]` | base·활성 tag·runtime trigger의 closed registry mapping으로만 생성 | +| `ready_eligible` | V01~V18·binding·authority·state 및 candidate-content-digest-bound 필수 receipt가 모두 충족될 때만 true | + +`STANDARD_ATTORNEY_REVIEW`는 READY 이후 실제 제출결정을 변호사가 한다는 기본 원칙이고 pre-READY specialist receipt를 자동 요구하지 않는다. `MANDATORY_SPECIALIST_REVIEW`와 tag는 각각 `SPECIALIST_LEGAL_REVIEW`, `PUBLIC_LAW_REVIEW`, `ROUTING_REVIEW`, `DOCUMENT_AUTHENTICITY_REVIEW`, `PROCEDURAL_REMEDY_REVIEW` 중 registry가 정한 receipt를 추가한다. runtime trigger는 base를 상향하거나 receipt를 추가할 수 있을 뿐 하향하지 못한다. + +S2_40은 candidate 문서와 `candidate_content_digest`를 동결한다. `required_receipt_types`가 비어 있지 않을 때만 각 유형의 `review_requests/.json`을 쓴다. 배포 manifest가 지정한 대한민국 변호사·전문검토자만 그 digest, finding IDs, 판단, 범위, 자격/role, 서명·시각과 `review_disposition ∈ {APPROVE_AS_IS, CONTENT_CHANGE_REQUIRED}`를 포함한 `review_receipts/.json` 및 필요한 `lawyer_judgment_record.json`을 작성한다. S2_40은 이를 생성하거나 내용 판단을 대신하지 않고 schema·서명·candidate content digest·scope·expiry를 검증한다. 미충족이어도 draft·worknote·review packet을 저장하고 `LAWYER_REVIEW_REQUIRED`로 둔다. + +### 9.4 상태 vocabulary + +| axis | closed enum | +|---|---| +| `evaluation_status` | `PASS`, `FAIL`, `UNEVALUABLE` | +| `scope_technical_status` | `OK`, `REVIEW_REQUIRED`, `INCOMPLETE` | +| `run_technical_status` | `CONSISTENT`, `TECHNICAL_REVIEW_REQUIRED`, `TECHNICAL_INCOMPLETE` | +| `artifact_technical_status` | `CONSISTENT`, `TECHNICAL_REVIEW_REQUIRED`, `NOT_PRODUCED` | +| `legal_readiness` | `READY_FOR_LAWYER_FILING_DECISION`, `LAWYER_REVIEW_REQUIRED`, `NOT_ASSESSED` | +| `workflow_phase` | `CANDIDATE_FROZEN`, `AWAITING_EXTERNAL_REVIEW`, `READY_TO_COMMIT`, `COMMITTED`, `SUPERSEDED`, `DIAGNOSTIC_ONLY` | + +aggregation은 closed 함수다. scope 하나라도 `INCOMPLETE`면 run은 `TECHNICAL_INCOMPLETE`; 그렇지 않고 하나라도 `REVIEW_REQUIRED` 또는 필수 평가가 `UNEVALUABLE`이면 `TECHNICAL_REVIEW_REQUIRED`; 나머지는 `CONSISTENT`다. run이 incomplete면 final artifact는 `NOT_PRODUCED`·legal은 `NOT_ASSESSED`; artifact가 만들어졌으나 기술 review가 남으면 두 번째 axis는 `TECHNICAL_REVIEW_REQUIRED`·legal은 `LAWYER_REVIEW_REQUIRED`; 오직 run/artifact가 모두 `CONSISTENT`, V01~V18 `PASS`, binding·authority·필수 receipt가 모두 해소된 때만 `READY_FOR_LAWYER_FILING_DECISION`이다. 약칭 `READY`, `REVIEW`를 schema value로 쓰지 않는다. + +`UNEVALUABLE`은 평가축의 값이지 기술상태가 아니다. 해당 평가가 READY 필수이면 scope를 `REVIEW_REQUIRED`로 올리지만, 일관된 draft를 만들 수 있다는 이유만으로 `INCOMPLETE`로 올리지 않는다. S2_00이 조기 중단하더라도 `control/run_status.json`은 S2_40 status-only entry가 단독 작성한다. + +### 9.5 non-cyclic final seal + +S2_40은 같은 task의 idempotent `FREEZE → (OPTIONAL EXTERNAL_REVIEW_WAIT) → RESUME_VALIDATE → COMMIT` state machine으로 실행된다. + +```text +C40/C45/C46 + -> freeze candidate documents + candidate_package_manifest.json + -> candidate_content_digest.json + deterministic validation + -> lawyer_review_packet.json + required_receipt_types derivation + -> [required_receipt_types=[]] READY_TO_COMMIT; 대기 없이 계속 + -> [필수 receipt가 있으나 미도착/무효] control/run_status.json에 AWAITING_EXTERNAL_REVIEW를 atomic save 후 종료 + -> [필수 receipt 전부 도착] 같은 candidate content digest로 S2_40 resume + -> receipt schema/signature/scope/digest/disposition validation + -> [전부 APPROVE_AS_IS] READY_TO_COMMIT + -> [하나라도 CONTENT_CHANGE_REQUIRED] 기존 candidate SUPERSEDED; 새 attempt 생성 + -> stage2_package.json staging + commit/commit_intent.json 기록 + -> same-filesystem atomic rename + -> rename 성공 뒤 commit/stage2_commit_result.json append + -> control/run_status.json을 COMMITTED로 갱신 +``` + +`CONTENT_CHANGE_REQUIRED` receipt는 같은 candidate의 수정 권한이 아니다. S2_40은 기존 candidate를 immutable `SUPERSEDED`로 보존하고 `supersedes_candidate_digest`를 가진 새 attempt를 만든다. plan/계산/rule 변경이면 가장 이른 content owner인 S2_20부터, 문안만 변경이면 S2_30부터 다시 실행한다. 이는 새 top-level task가 아니라 동일 5-task DAG의 별도 attempt이며 새 candidate digest와 필요한 receipt를 다시 발급한다. + +resume 시 Stage 1 input, plan, candidate document 또는 dependency hash가 하나라도 바뀌면 기존 receipt를 폐기하고 새 request를 만든다. `commit/commit_intent.json`은 시도 전 기록일 뿐 성공 증명이 아니다. sealed-content set 밖의 `commit/stage2_commit_result.json`만 rename 이후 실제 source/destination digest·filesystem result를 기록하며, candidate/final package digest를 역참조하는 append-only operational receipt다. 이는 byte 결속·commit 성공만 증명하고 법률적 완전성이나 변호사 승인 자체를 선언하지 않는다. rename 성공 후 result 기록 전에 process가 중단되면 S2_40 재실행은 destination digest를 intent와 대조한다. 일치하면 result를 idempotent하게 보충하고 `COMMITTED`로 조정하며, 불일치하면 기존 target을 덮어쓰지 않고 commit conflict를 기록한다. + +review checkpoint는 candidate draft·worknote·request·status의 보존물이고 최종 `stage2_package.json` 또는 release commit이 아니다. `required_receipt_types`가 비어 있지 않은 경우에는 해당 candidate-content-digest-bound receipt가 전부 유효하기 전까지 checkpoint를 READY package로 승격하지 않는다. + +## 10. 핵심 법률·절차 계약 + +### 10.1 authority release와 temporal validity + +각 authority row는 최소 다음을 가진다. + +```text +authority_id, proposition_id, issuing_body, +statute_article_or_case_number, decision_or_promulgation_date, +effective_from, effective_to, temporal_scope, +transitional_rule_refs, supersedes, negative_treatment, +official_url, retrieved_at, source_sha256, +refresh_policy_id, review_status +``` + +고정 `24h|7d|30d` freshness를 전략 본문에 두지 않는다. 법령·대법원규칙·판례·헌법재판소·행정자료별 정책과 change event를 registry에서 관리한다. authority excerpt와 law-value release가 prompt·calculator·fixture가 참조하는 유일한 법률 source다. + +`take_away`가 수용한 다음 판례는 전역 prompt가 아니라 해당 route의 A00 후보로만 등록한다. Phase 0에서 공식 원문·판시범위·후속취급·적용 route를 확인하고 `VERIFIED_AND_SEALED`가 되기 전에는 prompt, calculator 또는 READY 판단에 사용할 수 없다. + +| case number | route-local candidate proposition | pre-seal status | +|---|---|---| +| `2020그42` | 배우자 단독상속 route의 당사자·권리 구조 | `CANDIDATE_UNSEALED` | +| `2023다254519` | 배당금채권 양도형 원상회복의 채무자 귀속·양도통지 | `CANDIDATE_UNSEALED` | +| `2018다202774` | 복수 가액배상 의무와 이중회복 방지 | `CANDIDATE_UNSEALED` | +| `2012다952` | 가등기 관련 권리변동·말소/이전 route | `CANDIDATE_UNSEALED` | + +### 10.2 유류분 temporal overlay + +`inheritance_opened_at`을 mandatory operand로 두고 적용법을 선택한다. 현행 민법 제1115조 제1항은 2026-03-17 시행본에서 부족한 한도의 **가액 지급**과 청구일부터의 이자를 규정하고, 법률 제21454호 부칙 제3조는 개정 제1115조 제1항을 시행 이후 상속개시부터 적용한다. + +- 신법 branch: `VALUE_PAYMENT_ONLY`, R01만 허용, R02/R03 relief 금지, 이자기산 `claim_made_at` +- 구법 branch: 적용 당시 authority release에 따른 반환·가액 branch, 권리자·시효·가액시점 별도 검토 +- 공통: `inheritance_opened_at`, claimant status, 권리자 범위, 특별수익/증여·유증, 부족액, 기간, claim date를 서로 다른 axis로 보존 + +`registry/temporal/inheritance_reserved_share.yml`의 mandatory field는 `inheritance_opened_at`, `claimant_class`, `claimant_entitlement_rule_id`, `constitutional_decision_effect_id`, `remedy_temporal_rule_id`, `valuation_rule_id`, `limitation_rule_id`, `claim_made_at`, defendant별 `complaint_served_at`, `interest_branch_ids`, `allowed_renderer_ids`와 `limitation_status`, `defense_assertion_status`, `interruption_or_suspension_event_ids`, `waiver_status`, `abuse_of_right_rebuttal_status`, `lawyer_disposition_ref`다. 제1112조 제4호 형제자매 유류분은 2024-04-25 단순위헌 결정의 효력과 삭제법을 authority branch로 적용하며, 이를 단순히 “구법이므로 유효”로 되살리지 않는다. 제1117조의 두 기간은 CE-03 mandatory dependency다. + +| predicate | decision/result | +|---|---| +| `inheritance_opened_at` 누락 또는 경계 authority 불명 | `TEMPORAL_BRANCH_UNRESOLVED`, `UNEVALUABLE`, clean relief READY 금지 | +| 신법 적용 + R02/R03 후보 | `INHERITANCE_NEWLAW_RENDERER_FORBIDDEN`, 후보 제외·mutation FAIL | +| claimant entitlement 부정 | `CLAIMANT_NOT_ENTITLED`, claim option `EXCLUDED`·근거 보존 | +| 제1117조 기간이 외관상 경과 | `LIMITATION_PRIMA_FACIE_EXPIRED`; option을 `CONDITIONAL` 또는 lawyer-reviewed alternative로 보존 | +| 피고의 시효 항변이 실제 존재하고 중단·완성유예·시효이익 포기·권리남용 재항변이 없다는 digest-bound 변호사 판단 | 해당 candidate attempt에서만 clean pleading 제외 가능; 근거·reconsideration condition 보존 | +| 구법 remedy·가액기준 authority 미봉인 | `LEGACY_REMEDY_AUTHORITY_UNSEALED`, review draft만 허용 | +| 신법·권리자·기간·가액 operand 해소 | R01 가액지급 및 CE-08/CE-01 receipt 생성 | + +기간 경과만으로 청구 option을 자동 소거하지 않는다. 소멸시효 항변과 그 기산점은 당사자 주장 및 재항변의 영향을 받으므로, `defense_assertion_status`, 중단·완성유예, 시효이익 포기와 권리남용 반박을 별도 axis로 심사한다. 신법의 제1115조 이자는 `claim_made_at`에서 시작하는 period와, 소장 송달 후 소송촉진법 branch가 허용되는지를 defendant별로 판정한 period를 CE-01에서 분리한다. 두 이율을 중복 가산하지 않고 적용시점·항쟁 상당성·authority를 receipt에 남긴다. + +official authority: + +- [민법 제1115조](https://law.go.kr/LSW/lsLinkCommonInfo.do?lsJoLnkSeq=1031985365) +- [민법 제1112조](https://www.law.go.kr/lsLinkCommonInfo.do?lsJoLnkSeq=1031182201) +- [민법 제1117조(2026. 3. 17. 시행 현행본)](https://www.law.go.kr/LSW/lsSideInfoP.do?docCls=jo&joBrNo=00&joNo=1117&lsiSeq=284415&urlMode=lsScJoRltInfoR) +- [대법원 2017. 3. 22. 선고 2016다258124](https://www.law.go.kr/LSW/precInfoP.do?precSeq=184647) +- [헌법재판소 2024. 4. 25. 2020헌가4등](https://www.law.go.kr/LSW/detcInfoP.do?detcSeq=190071) +- [법률 제21454호 부칙 제3조](https://law.go.kr/LSW/lsRvsDocListP.do?chrClsCd=010202&lsId=001706&lsRvsGubun=all) + +fixture는 시행 전·당일·후 상속개시, 날짜 누락, 형제자매 권리 주장, 권리자 부적격, 제1117조 각 기간 경계, `기간 경과만으로 자동 제외 금지`, 피고 항변 유무, 중단·완성유예·포기·권리남용 재항변, 구법 authority 미봉인, 청구일·피고별 송달일 차이, R03 mutation을 포함하고 위 error/result를 expected oracle로 갖는다. + +### 10.3 강제 사죄·사과광고 금지 + +민법 제764조의 명예회복 처분에 강제 사죄광고를 포함시키는 것은 헌법에 위반된다는 89헌마160 취지를 `forbidden_relief_rules.yml`에 둔다. 강제 사죄·사과광고 atom은 생성·대안 제시·READY 모두 금지한다. 정정보도·반론보도·추후보도·판결결과 고지는 각각의 법적 근거와 요건·문형이 있는 경우에만 별도 branch로 허용한다. + +- [민법 제764조 및 89헌마160 표시](https://www.law.go.kr/lsLinkCommonInfo.do?lsJoLnkSeq=1001851088) + +### 10.4 CE-01 이율 timeline + +```text +obligation type + -> accrual/due/demand/tort/profit/judgment/counter-performance event + -> agreed interest or liquidated delay rate validity + -> interest-limit / loan-business / other cap and invalidity effect + -> civil or commercial statutory rate branch + -> defendant-specific complaint service event + -> litigation-promotion rate and reasonable-dispute exception + -> route-specific exclusion such as ACTIO value compensation + -> period rows + receipt hash +``` + +피고마다 송달일이 다르면 기간도 분리한다. `delay_start_at`이 불명확하면 확정값을 렌더링하지 않고 range·missing event·항쟁 상당성 worknote를 남긴다. + +### 10.5 CE-13 소가·인지·송달비용 + +계획된 `procedural_rules/소가_산정_규칙.md`와 `procedural_rules/민사소송_등_인지규칙.md`는 법률가 검수용 설명 source다. runtime은 Markdown을 파싱하지 않는다. + +```text +approved Markdown + -> human-approved CE-13 branch projection + -> versioned court-fee law values + -> fixed Python calculator + -> filing_metrics.json + calculation receipt +``` + +claim portfolio, 단순·선택·예비·병합관계, 경제적 이익 중첩, 부대청구, 목적물가액, 적용시점을 입력으로 쓴다. “병합청구=항상 합산” 같은 단일 문자열 rule은 금지한다. source는 [민사소송 등 인지규칙](https://law.go.kr/lsInfoP.do?lsId=005771)과 [민사소송 등 인지법 제2조](https://www.law.go.kr/LSW/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1020788181)를 포함하여 기준일 공식 원문으로 봉인한다. + +### 10.6 일부청구·채권자대위·당사자 completeness + +- 일부청구는 자동 최적화가 아니라 lawyer-reviewed option이다. `explicit_partial_claim`, `claimed_amount`, `reserved_remainder_amount_or_formula`, `reservation_text`, `limitation_effect`, `res_judicata_risk`, `cost_effect`, `enforcement_effect`, `lawyer_judgment_record_ref`를 기록한다. +- 채권자대위는 대위채권자의 권원, 피보전채권, 채무자의 권리, 보전 필요, 채무자의 불행사와 급부별 recipient를 분리한다. 금전 직접수령은 route authority가 있을 때만 허용한다. +- 고유필수적 공동소송 등 필수당사자 규칙은 `party_set_rule_id`와 등기·가족·조합 등 source completeness를 요구한다. 단순 BO 목록만으로 확정하지 않는다. + +### 10.7 공유물분할 method preference + +R06의 공유물분할 option은 `method_preferences[]`에 현물분할·대금분할·가격배상 등 법원에 제시할 비구속 선호안과 근거를 둔다. renderer는 선택된 청구형태에 맞는 하나의 주문 구조만 출력하고 다른 방법은 청구원인의 선호 근거 또는 worknote로 보존한다. 다른 분할방법을 주위·예비 주문으로 자동 변환하지 않으며 R06에는 가집행을 붙이지 않는다. + +### 10.8 대부계약 temporal branch + +대부업 관련 판단은 `contract_date`, `performance_dates`, creditor licensing/registration status, borrower status, principal, agreed-interest/delay terms, applicable effective-period ID와 transitional-rule ID를 분리한다. `SL` profile이 적용법·무효효과를 판단하고 CE-01은 승인된 `law_value_id`와 authority branch만 계산한다. 시행 경계 전·당일·후, 등록/미등록, 약정상한 초과, 원본·이자 청구 가능범위 mutation fixture를 두며, 날짜·지위가 없으면 현행법을 default하지 않고 `UNEVALUABLE`+review로 둔다. + +## 11. 사해행위취소 canonical ACTIO 계약 + +### 11.1 기본 법리 axis + +ACTIO claim은 E-13, CE-01, CE-03, CE-10, R06과 필요한 R01/R03 companion을 함께 사용한다. + +1. 피보전채권 성립·범위·기준시점 +2. 채무자의 무자력·공동담보 감소 +3. 사해행위·채무자 사해의사 +4. 수익자·전득자 role과 악의 판단시점·항변 +5. 민법 제406조 제2항 두 기간의 독립 disposition +6. 원물회복 가능성·route·급부 상대방 +7. 피보전채권·공동담보·피고 이익 3-cap + +수익자·전득자 선의/악의는 하나의 boolean으로 합치지 않는다. 각 row는 `knowledge_subject_role`, `knowledge_at`, `knowledge_status ∈ {SUPPORTED_BAD_FAITH, SUPPORTED_GOOD_FAITH, UNRESOLVED}`, `burden_rule_id`, `fact/evidence_refs`, `defense_id`, `rebuttal_slot_id`를 가진다. 판단시점과 증명책임은 route authority가 정하고 미해결 상태에서는 READY를 허용하지 않는다. + +### 11.2 6개 restoration route + +| route ID | 법률효과·급부 | 핵심 role | +|---|---|---| +| `ACTIO-CANCELLATION-ONLY` | 사해행위 취소의 형성 atom | 급부 recipient 없음 | +| `ACTIO-REAL-PROPERTY-CANCELLATION` | 소유권·근저당권 등 원상회복 말소 | 실체 귀속·등기권리자는 채무자; 주문상 절차이행 상대방은 별도 authority field | +| `ACTIO-TRUE-NAME-RESTORATION` | 진정명의회복형 이전등기 | 이전받는 자는 채무자 | +| `ACTIO-UNPAID-DIVIDEND-ASSIGNMENT` | 미지급 배당금채권 양도와 통지 | 양도수령인=채무자, 통지상대방=제3채무자 | +| `ACTIO-RECEIVED-PROCEEDS-PAYMENT` | 이미 수령한 배당금·환가대금 반환 | route authority가 정한 payment recipient; 원고 직접지급 branch는 근거 필수 | +| `ACTIO-VALUE-COMPENSATION` | 원물반환 불가능·현저히 곤란 시 가액배상 | payment recipient=취소채권자인 원고 | + +role schema는 다음을 분리한다. + +```yaml +obligor_party_id: PARTY-BENEFICIARY +substantive_restoration_holder_party_id: PARTY-DEBTOR +registration_right_holder_party_id: PARTY-DEBTOR +rendered_performance_counterparty_party_id: PARTY-DEBTOR +assignment_recipient_party_id: null +notice_addressee_party_id: null +payment_recipient_party_id: null +route_authority_id: AUTH-... +``` + +원물회복의 기본 귀속은 채무자 책임재산이고 가액배상 지급은 원고다. 대법원은 원상회복으로 사해행위 목적물을 채무자에게 반환한다고 판시하고, 미지급 배당금채권은 채무자에게 양도하고 제3채무자에게 통지하도록 한다. 다만 주문상 절차이행 상대방은 실체 귀속주체에서 기계적으로 복사하지 않고 route·등기구조·봉인된 authority로 결정한다. + +- [대법원 2017. 4. 27. 선고 2016다279206](https://www.law.go.kr/LSW/precInfoP.do?precSeq=184747) +- [대법원 2013. 9. 13. 선고 2013다34945](https://www.law.go.kr/LSW/precInfoP.do?precSeq=230413) + +기존 relief-rule 후보 문서의 검증되지 않은 “수익자는 원고에게 말소등기절차를 이행” 문형은 quarantine하고 authority review 전 canonical rule로 승격하지 않는다. + +ACTIO 가액배상 CE-01 branch는 일반 금전청구 branch를 사용하지 않는다. 대법원 2007다61618 및 2018다203715 명제를 A00가 봉인한 경우에만 `obligation_arises_at=avoidance_judgment_final_at`, `delay_start_at=next_day`, 민법상 법정이율 `law_value_id`, `litigation_promotion_rate_applicable=false`를 선택한다. 판결확정 event가 없으면 확정 지체일을 렌더링하지 않는다. + +- [대법원 2009. 1. 15. 선고 2007다61618](https://www.law.go.kr/LSW/precInfoP.do?precSeq=133423) +- [대법원 2019. 4. 11. 선고 2018다203715](https://www.law.go.kr/LSW/precInfoP.do?precSeq=208412) + +### 11.3 deadline·defendant·value cap + +```yaml +allowed_defendant_roles: [BENEFICIARY, SUBSEQUENT_TRANSFEREE] +debtor_role_for_actio_atom: NON_PARTY +deadline_rules: + - start_event: creditor_knew_avoidance_cause + duration_law_value_id: CIVIL_ACT_406_2_KNOWLEDGE_PERIOD + - start_event: fraudulent_act_date + duration_law_value_id: CIVIL_ACT_406_2_ACT_PERIOD +required_deadline_result: BOTH_WITHIN_PERIOD +``` + +채무자는 actio atom의 피고가 아니지만 같은 소송의 별도 피보전채권 이행청구 피고가 될 수 있다. 기간 하나라도 만료가 확인되면 해당 취소청구를 예비적으로 자동 승격하지 않는다. 사실 불명확이면 시효·제척 review issue와 필요한 증거를 남긴다. + +```text +selected_value_compensation = min( + preserved_claim_cap_at_close, + joint_collateral_cap_at_close, + beneficiary_or_transferee_gain_cap +) +``` + +담보 공제는 채권최고액 하나가 아니라 기준시점의 실제 우선변제 피담보채권액, 최고액 cap, 사후 발생·소멸, 공동담보 포함 여부를 구조화한다. 세 operand를 하나의 필드로 병합하지 않는다. + +`senior_encumbrance_deduction`은 `actual_secured_debt_at_close`와 `registered_max`를 별도 operand로 받고 `deduction_basis ∈ {ACTUAL_DEBT, REGISTERED_MAX_CAP, PROXY_UNVERIFIED}`를 기록한다. 실제 채무 대신 등기상 최고액만 proxy로 쓴 결과는 `CONDITIONAL`+review이며 clean relief READY가 아니다. `preserved_claim_cap_at_close`를 포함한 cap proposition도 A00 authority row가 `VERIFIED_AND_SEALED`가 되기 전에는 `UNVERIFIED_CAP_AUTHORITY`로 두고 계산 결과 READY를 금지한다. + +overlay 분할 기준은 닫혀 있다. `ACTIO-MORTGAGE`는 양도 목적물에 사해행위 전부터 존재한 담보와 공동담보·실제 피담보채무 공제를 다루고, `ACTIO-MORTGAGE-CREATION`은 문제된 처분행위 자체가 담보권 설정인 경우와 배당 route를 다룬다. 두 overlay의 module-manifest row는 scope predicate, required/produced fields, authority/dependency, incompatible overlay, physical hash를 각각 가진다. + +### 11.4 지정 migration source 10종 + +신규 runtime은 원본을 직접 읽지 않는다. 각 source에서 추출한 proposition을 공식 authority와 대조하고 canonical asset/fixture로 이관한다. + +exact migration source root는 `YAML_Prompts/2. Stage_2/사해행위취소소송관련기존자산/`다. receipt는 filesystem의 raw basename bytes와 NFC display name을 모두 기록하여 NFD/NFC 차이를 숨기지 않는다. + +| source | canonical target | +|---|---| +| `actio_pauliana_calc_v1.txt` | CE-10 rule·calculator fixture | +| `actio_pauliana_calc_v3_mini_v1.json` | ACTIO value-compensation schema·operand fixture | +| `actio_pauliana_case_type_determination.csv` | 6-route registry seed | +| `actio_pauliana_mortgage_actio_calc_both_v1.txt` | mortgage route conflict fixture | +| `actio_pauliana_mortgage_v1.txt` | `ACTIO-MORTGAGE` overlay | +| `mortgage_fraudulent_act_module_v1_mini_v1.json` | `ACTIO-MORTGAGE-CREATION` overlay | +| `부담부_부동산소유권이전_사해행위_가액배상_모듈.md` | `ACTIO-ENCUMBERED-TRANSFER` overlay | +| `사해행위취소_가액배상_최종화게이트_모듈.md` | ACTIO validator fixture | +| `사해행위취소_피보전채권번들_검증_모듈.md` | preserved-claim bundle overlay | +| `사해행위취소_항변통합_모듈.md` | ACTIO defense map overlay | + +`migration/actio_assets_receipt.json`은 exact source path, Unicode normalization, raw hash, extracted proposition, authority, change/drop reason, target hash와 reviewer를 가진다. 지정 10종 receipt는 Phase 0 필수다. 그 밖의 legacy 16종 전수 disposition은 비차단 audit이고 release scope의 독자 필수 명제가 확인될 때만 해당 row가 phase gate가 된다. + +## 12. machine invariants와 acceptance suite + +### 12.1 V01~V18 + +| ID | invariant | +|---|---| +| V01 | ingress allowlist의 path/hash/schema/producer가 실제 input과 일치 | +| V02 | BO↔LES↔Ledger↔signal↔evidence와 review universe conservation | +| V03 | 활성 `domain_config`·slot crosswalk·Stage 1/S2 namespace owner 완전성 | +| V04 | defense→opposing fact→rebuttal→evidence와 polarity/admission/presentation disposition 연결 보존 | +| V05 | cluster dependency·precondition·incompatibility와 wave verdict 정합 | +| V06 | 모든 atomic claim의 `binding_status`가 `BOUND`이면 exact `case_type_id`; `UNRESOLVED/CONFLICT`이면 closed `binding_issue_codes[]`가 존재하고 clean READY가 금지됨 | +| V07 | 계산값이 approved calculator receipt·operand·law-value에서만 유래 | +| V08 | 동일 recovery group 중복회복 0, claim relation·일부청구 disposition 적법 | +| V09 | relief atom의 당사자·목적물·금액·기간이 frozen plan·rule contract와 일치 | +| V10 | 비용·가집행·번호·별지·청구원인 순서와 closed-template scope 충족 | +| V11 | 청구취지·청구원인의 claim/party/amount/interest/counter-performance cross-match | +| V12 | corpus snapshot/hash/locator/approval·injection isolation·slot crosswalk 유효 | +| V13 | authority temporal scope·부칙·negative treatment·law-value·specialist receipt 해소 | +| V14 | candidate digest→validation→조건부 review request/외부 receipt→control status→외부 commit intent→atomic rename→외부 commit result의 비순환 hash 결속 | +| V15 | atom type별 허용 provenance만 사용; unsourced fact·dangling evidence 0 | +| V16 | 모든 option이 selected/alternative/excluded/deferred 중 정확히 하나에 존재 | +| V17 | party-set·title·liability·object specification·exhibit token 완전성 | +| V18 | closed AST/template·canonical re-render·frozen plan·calculator receipt 정합 | + +READY는 V01~V18 전부 PASS하고 `case_type_id`, authority, review policy와 기술상태가 해소된 경우에만 가능하다. V 실패가 있어도 일관된 draft가 가능하면 worknote와 review packet을 저장한다. + +### 12.2 필수 fixture family + +1. 물품대금·원채무자·보증/상호속용 책임 +2. 담보·등기·부당이득·변제충당 +3. ACTIO 6 route·두 기간·3-cap·수익자/전득자·recipient matrix +4. 유치권·인도·사용이익과 동시이행 +5. 임대차보증금·공제·사용이익·제공/수령거절 +6. 유류분 신·구법·경계일·renderer mutation +7. 공유물분할 방법·객관적 시가·확인의 이익 +8. 강제 사죄광고 forbidden mutation과 정정·반론 허용 branch +9. party/title/liability/client no-sue·채권양도 통지·절차상 의사표시 +10. 137종 case type zero/multi/alias/hash·rule/corpus coverage +11. 소가·인지·병합·부대청구·missing operand +12. state aggregation·single writer·external receipt digest mismatch·resume·atomic failure/commit result +13. 대부계약 시행 경계·등록상태·상한/무효효과와 adverse-fact polarity·자백위험 + +gold fixture는 전략 본문이나 general profile에 당사자·금액·날짜를 하드코딩하지 않는다. 외부 fixture file은 source locator, `EXPLICIT|DERIVED`, operand, calculator와 hash를 가진다. 당사자·금액·날짜가 runtime branch로 유입되지 않는 mutation을 필수로 둔다. + +### 12.3 금지규칙 + +1. Stage 1에 없는 사건 사실·증거 창작 금지. +2. 적용시점·부칙 미확정 상태에서 현행법 default 선택 금지. +3. 사건명·group·`case_type_id`에 의한 substantive claim 활성화 금지. +4. case type·rule document·corpus의 fuzzy fallback 금지. +5. binding 충돌을 새로운 청구로 자동 증식 금지. +6. 미확정 금액·날짜를 clean pleading의 확정값으로 기재 금지. +7. 의뢰인 no-sue를 법률상 청구권 부존재로 처리 금지. +8. 사해행위취소 자체의 채무자 피고화 금지. +9. route authority 없이 사해행위 원물회복 귀속 또는 주문상 상대방을 원고로 고정 금지. +10. 기간 만료 확인 취소청구의 예비적 자동 승격 금지. +11. 강제 사죄·사과광고 atom 금지. +12. 중복회복·claim-option silent loss 금지. +13. rule/corpus가 Stage 1 사실 또는 frozen ReliefPlan을 변경하는 것 금지. +14. 소장 송달 의사표시를 이미 발생한 사실로 취급 금지. +15. output-affecting 법정수치를 authority/version 없이 Markdown·prompt·Python에 고정 금지. +16. old Stage 2 YAML·v2-1 본문·legacy source의 runtime fallback 금지. +17. 법률 불확실성을 이유로 draft·worknote·packet을 전역 저장 금지하는 strict no-save 금지. +18. cache prefix에 사건 PII·동적 사실·증거를 포함하는 것 금지. + +## 13. manifest·coverage·release 계약 + +### 13.1 production oracle + +| canonical path | 역할 | +|---|---| +| `manifest/module_manifest.json` | workflow·profile·renderer·rule·schema·Python·validator의 physical path/hash/version/status | +| `manifest/case_type_coverage.json` | 137 row별 renderer·rule·corpus·profile·CE/SL·review와 sign-off | +| `manifest/authority_release.json` | authority registry·law-value·temporal rule dependency seal | +| `manifest/corpus_release.json` | Weaviate collection/schema/snapshot/chunk/approval/crosswalk seal | +| `manifest/stage2_release.json` | 위 manifest와 config·fixture·loader receipts를 묶는 유일 release oracle | + +directory 존재, 전략 문구 또는 static file count는 release 증거가 아니다. + +`module_manifest.json`의 각 row는 최소 `module_id`, `module_kind`, `scope_predicate`, `consumed_schema_ids`, `produced_schema_ids`, `authority_ids`, `dependency_module_ids`, `incompatible_module_ids`, physical `path`, raw `sha256`, `schema_version`, `asset_version`, `implementation_status`, `semantic_review_status`, owner를 가진다. dependency DAG cycle, orphan module, active profile의 missing IO/authority/hash는 release failure다. + +### 13.2 `FULL_137_PRODUCTION_READY` + +다음을 모두 만족해야 한다. + +1. `case_type_registry.yml`의 전체 `catalog_row_ids` 137개가 source catalog와 ordinal·label까지 exact equality +2. `claim_capable_case_type_ids`는 모든 `CLAIM` row와, 변호사 승인 closed predicate 및 `claim_capable_disposition=CLAIM_CAPABLE`을 가진 `GENERIC` row로만 구성되며 각 ID에는 exact structured relief rule, Markdown source hash, renderer branch와 required slot +3. `row_kind ∈ {DOCTRINE_TOPIC, GROUP}` 및 claim-capable 승인을 받지 않은 `GENERIC` row에는 `non_claim_disposition ∈ {COMPANION_ONLY, CLASSIFICATION_ONLY}`와 유효한 companion mapping이 있고 독립 청구취지 rule은 0 +4. claim-capable row마다 승인 corpus scope/snapshot/crosswalk 또는 법률가가 승인한 명시적 non-corpus policy +5. profile·calculator·special-law·schema·Python physical dependency가 `IMPLEMENTED_AND_VERIFIED` +6. 전체 137 row별 legal semantic disposition과 claim-capable fixture PASS, missing/unrouted/fuzzy fallback 0 +7. `release_scope_catalog_row_ids`가 정본 137개와 exact equality, `excluded_catalog_row_ids=[]`; 별도 `release_scope_claim_capable_ids`가 registry의 claim-capable subset과 exact equality +8. release operator가 legacy 16종의 `MIGRATE/REBUILD/DROP` disposition 16/16과 canonical target/drop reason을 봉인하고 runtime load 0을 확인 + +부분 개발·canary는 subset release로 허용하되 full-137로 보고하지 않는다. + +## 14. prompt caching·security·observability + +### 14.1 cache lane + +S2_10 cohort key: + +```text +model + effort ++ P00/P10/common-authority canonical hash ++ active-profile ordered set/hash +``` + +S2_30 cohort key: + +```text +model + effort ++ P00/P30/common-authority canonical hash ++ renderer ID/hash ++ selected relief-rule row + Markdown hash ++ corpus snapshot + selected chunk hashes +``` + +serializer는 Unicode·JSON ordering·whitespace·line ending을 canonicalize하고 actual prefix hash를 `bundle_plan.json`과 대조한다. prefix mismatch이면 cache를 쓰지 않고 diagnostic을 남긴다. 공식 GPT-5.6 API의 implicit/explicit breakpoint, `prompt_cache_key`, `prompt_cache_options.ttl` capability를 preflight하고 현재 provider contract를 release마다 재확인한다. [OpenAI Responses API reference](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) + +### 14.2 PII와 retrieval security + +- common prefix에는 이름·주민번호·주소·계좌·사건 고유 사실·증거를 넣지 않는다. +- dynamic tail은 최소 fact/evidence excerpt만 포함하고 run retention 정책을 기록한다. +- Weaviate chunk의 embedded instruction은 실행 불가 data다. +- rule/corpus/authority asset은 allowlist path와 hash로만 로드한다. +- prompt cache write/read/cached tokens, cache key hash, breakpoint hash, model/effort와 retry를 telemetry에 남긴다. +- cache telemetry 0이나 miss는 품질 실패가 아니라 운영 이슈지만 prefix drift·PII 혼입은 release blocker다. + +--- + +# [2] [1]을 실현할 단계별 작업 내역 + +## 15. Phase 0 — canonical contract·authority·migration lock + +### 15.1 작업 + +1. `Default_Agent/Stage_2_Clean/` version-free directory contract와 write ownership 확정 +2. 92개 YAML의 canonical filename·schema ID·logical/physical status lock +3. 137종 `case_type_registry.yml`과 `case_type_rule_registry.yml` 작성 +4. authority registry·law-value·refresh policy·temporal rule 작성 +5. 유류분·사죄광고·이율·CE-13·ACTIO 공식 source 검수 +6. 지정 ACTIO 10종 migration receipt와 canonical proposition 작성 +7. legacy 16종 비차단 disposition audit 시작 +8. module/case-type/authority/corpus/release manifest schema 작성 +9. v3→v4 retained/replaced/added traceability와 regression map 작성 + +### 15.2 산출물 + +- control YAML 24개 중 authority/case type/review/ACTIO/migration/cache/deployment 자산 +- `manifest/*.json` schema와 initial `PLANNED` manifests +- `authority/source_captures/.json`: 공식 원문 locator·retrieval 시각·원문 hash·temporal metadata를 가진 local capture; `manifest/authority_release.json`이 exact set/hash를 봉인 +- `migration/actio_assets_receipt.json` +- `tests/fixtures/regression_manifest.json` + +### 15.3 exit + +- 137 source rows의 canonical ID·row kind·source ordinal 유일성 PASS +- 지정 ACTIO 10종 receipt 10/10; old Stage 2 runtime edge 0 +- C-2 inheritance, M-5 apology, M-19 route·recipient, CE-13 authority review PASS +- 모든 planned asset에 owner·schema·status·path가 있고 path에 version segment 0 +- legacy 16종 audit 미완료는 Phase 0 exit를 막지 않되 migration owner·due phase를 manifest에 기록한다. 독자 필수 명제 발견 시 해당 row만 즉시 gate로 승격하고, 전체 disposition 16/16은 §13.2 full release 전 release operator가 닫는다. + +## 16. Phase 1 — deterministic spine + +### 16.1 고정 Python 구현 단위 + +| path | 책임 | +|---|---| +| `runtime/s2_00_ingress.py` | allowlist·schema/hash·conservation·context·cluster·bundle | +| `runtime/s2_20_reduce.py` | option reduce·dependency·group freeze·report orchestration | +| `runtime/s2_40_commit.py` | part reduce·V01~V18·status·seal·atomic commit | +| `runtime/c25_case_type_bind.py` | closed predicate exact binding | +| `runtime/c27_query_plan.py` | role·element별 deterministic query plan | +| `runtime/c28_weaviate_retrieve.py` | exact metadata filter와 retrieval receipt | +| `runtime/c29_pack_verify.py` | snapshot/hash/approval/crosswalk·injection 검증 | +| `runtime/c45_document_assembler.py` | closed AST/template document assembly | +| `runtime/calculators/registry_engine.py` | CE YAML dispatch·operand·law-value·receipt | +| `runtime/rendering/closed_renderer.py` | R01~R06 canonical render·normalization | +| `runtime/validation/invariant_runner.py` | V01~V18·mutation/property oracle | +| `runtime/authority/authority_preflight.py` | temporal/freshness/dependency seal | +| `runtime/llm/structured_runner.py` | S2_10/S2_30 structured call·schema repair 1회·usage part | + +Python은 run 결과에 맞춰 생성·수정되지 않는다. data-driven branch만 실행한다. YAML에 Python source를 넣지 않는다. + +top-level runtime task를 늘리지 않는 build/release 고정 구현 단위는 다음과 같다. + +| path | build/release 책임 | +|---|---| +| `offline_build/compile_case_type_registry.py` | 137 source catalog→canonical registry·ordinal/hash 검증 | +| `offline_build/compile_relief_rule_projection.py` | 법률가 승인 Markdown→structured relief row projection·diff | +| `offline_build/build_authority_law_value_release.py` | official capture·temporal authority·law-value dependency seal | +| `offline_build/build_corpus_snapshot.py` | raw corpus chunk·metadata·crosswalk·Weaviate snapshot manifest | +| `offline_build/build_release_manifests.py` | module/case-type/authority/corpus/release manifest 조립 | +| `release_ops/stage2_loader.py` | `stage2_loader_binding.yml`과 `stage2_release.json`만 읽는 version-free loader | +| `release_ops/release_validator.py` | physical hash·schema·dependency·semantic receipt·92 YAML coverage 검증 | +| `release_ops/canary_rollback.py` | subset canary·rollback digest·tamper test | + +| external owner | 단독 책임 | +|---|---| +| 대한민국 변호사/법률 semantic reviewer | authority proposition, 137 row disposition, relief rule, corpus crosswalk와 fixture 기대결과 승인 | +| corpus curator/Weaviate operator | 승인 raw source에서 snapshot을 만들고 collection/tenant/index digest 제공 | +| release operator | build receipt 확인, immutable release 서명, loader/canary/rollback 실행 | +| 사건 담당 변호사·필요한 specialist | candidate digest에 대한 review receipt와 filing decision 작성 | + +### 16.2 schema bundle + +```text +schemas/ingress.schema.json +schemas/context.schema.json +schemas/domain_verdict.schema.json +schemas/relief_plan.schema.json +schemas/binding_retrieval.schema.json +schemas/calculation.schema.json +schemas/draft_atoms.schema.json +schemas/review_status.schema.json +schemas/package.schema.json +schemas/deployment.schema.json +schemas/migration_regression.schema.json +``` + +각 physical output은 schema bundle의 named `$id/$defs` root와 manifest row를 가져야 한다. + +| schema path | mandatory `$defs` mapping | +|---|---| +| `schemas/ingress.schema.json` | Stage 1 input manifest, intake, ingress/diagnostic, exact handoff resolver | +| `schemas/context.schema.json` | case/evidence/object/party-title/slot/cluster/bundle context | +| `schemas/domain_verdict.schema.json` | DomainVerdict, claim option, typed provenance, impact scope | +| `schemas/relief_plan.schema.json` | option disposition, atomic claim, claim group, frozen ReliefPlan, plan ledger | +| `schemas/binding_retrieval.schema.json` | case-type/rule registry, signature/predicate/binding, query/result/receipt/pack, corpus scope·crosswalk | +| `schemas/calculation.schema.json` | CE input, operand, period row, law-value and receipt | +| `schemas/draft_atoms.schema.json` | relief/cause/declaration/worknote atom, polarity/admission/counter-performance | +| `schemas/review_status.schema.json` | issue ledger, review request/receipt, lawyer judgment, validation, status axes | +| `schemas/package.schema.json` | candidate manifest/digest, documents, review packet, stage2 package | +| `schemas/deployment.schema.json` | module/coverage/authority/corpus/release manifests, loader binding, commit intent/result | +| `schemas/migration_regression.schema.json` | migration disposition/receipt, finding map, fixture manifest/result | + +### 16.3 exit + +LLM을 schema-valid mock으로 대체한 E2E에서 다음을 통과한다. + +- V01~V18 및 producer single-writer property +- case type zero/multi/alias/hash mutation +- CE-01/03/08/10/13 boundary calculations +- retrieval replay·timeout·injection fixture +- renderer independent re-render와 atomic write failure +- candidate digest→validation→external receipt/resume→atomic rename→commit result non-cycle + +## 17. Phase 2 — LLM contracts와 우선 법리 + +### 17.1 prompt assets + +```text +prompts/P00_system_and_safety_contract.md +prompts/P10_legal_resolution_contract.md +prompts/P30_joint_drafting_contract.md +``` + +S2_10/S2_30 structured schema는 prompt 본문에 장문 복제하지 않고 API structured output와 schema registry를 사용한다. prompt는 role·범위·금지·판단 순서·source authority와 self-check만 둔다. + +### 17.2 우선 구현 profile + +우선순위는 E-02/03/04/08/09/10/11/13/15, EC-00, X1~X4, CE-01/02/03/04/07/08/10/13, R01~R06, ACTIO overlay, inheritance·counter-performance·procedural-declaration·forbidden-relief contract다. X4는 §4.4의 closed source contract를 따르며, 실제 상대방 서면이 없는 Stage 1 defense slot은 `ANTICIPATED_DEFENSE`로만 처리한다. + +### 17.3 exit + +- typed provenance removal mutation이 READY를 막고 review packet을 보존 +- option conservation·party/title/liability·procedural declaration PASS +- ACTIO·유류분·사죄광고·동시이행·이율·소가 fixture PASS +- representative cases의 변호사 blind review threshold 통과 +- model/effort binding은 품질 기준을 충족한 release config로만 확정 + +## 18. Phase 3 — case-specific rule·corpus·137 coverage + +### 18.1 청구취지 rule + +각 release 대상 중 모든 `CLAIM` row와, 변호사 승인 closed predicate 및 `claim_capable_disposition=CLAIM_CAPABLE`을 가진 `GENERIC` row인 claim-capable `case_type_id`에 다음을 만든다. + +- `rules/relief/.md`: 사람이 읽고 검수하는 청구취지작성규칙 +- `case_type_relief_rules.yml`의 exact structured row +- renderer/branch, required slots, companion type, counter-performance, costs/provisional-execution policy +- official authority/provenance, raw hash와 reviewer sign-off + +`DOCTRINE_TOPIC/GROUP` row에는 독립 relief-rule 문서를 만들지 않고 `COMPANION_ONLY/CLASSIFICATION_ONLY` disposition, 연결 claim-capable ID와 허용 용도만 봉인한다. + +### 18.2 요건사실 corpus + +raw source를 heading-aware chunk로 만들고 최소 metadata를 갖춘다. + +```text +source_doc_id, case_type_id, subtype_id, doctrine_role, +corpus_element_id, section_path, char_start, char_end, +authority_refs, as_of, approval_status, source_sha256 +``` + +법률가 승인 corpus↔Stage 1 slot crosswalk를 만들고 다음 version-free physical asset을 생성한다. + +```text +corpus/raw//.md +corpus/source_manifest.json +corpus/weaviate_collection.schema.json +corpus/chunk_manifest.jsonl +corpus/build_receipt.json +``` + +collection/tenant/index digest, snapshot ID/hash, selected chunk hash와 crosswalk section hash를 `manifest/corpus_release.json`에 봉인한다. 현재 소수 raw 문서는 seed일 뿐 137 coverage 증거가 아니다. + +### 18.3 exit + +- release subset의 claim-capable row에 exact rule·renderer·corpus/crosswalk·CE-13·review policy가 있고 non-claim row에는 closed disposition·companion mapping 존재 +- silently unrouted·fuzzy fallback·unapproved chunk 0 +- row별 semantic sign-off와 fixture PASS +- subset release는 scope와 gap을 공개하며 full-137로 표시하지 않음 + +## 19. Phase 4 — integrated regression·quality·security·cost + +### 19.1 실행 + +- current Stage 1 actual output contract test +- gold·boundary·mutation·metamorphic fixture 전수 +- model/effort별 법률정확성·누락·환각·청구취지/원인 정합성 blind review +- retrieval precision/recall·conflict·replay·injection test +- prompt cache prefix hash·PII·hit/write/read token·latency·cost telemetry +- 병렬 cluster/group 순서 변화에 대한 byte-equivalent deterministic output test +- canary failure·rollback·manifest tamper test + +### 19.2 exit + +법률가가 승인한 correctness threshold가 비용·cache 목표보다 우선한다. cache hit 상승이나 호출 수 감소가 legal quality 저하를 정당화하지 않는다. current Stage 1→Stage 2 live run, deterministic reproducibility, security, observability와 review packet usability가 모두 PASS해야 한다. + +## 20. Phase 5 — immutable release·canary·filing-decision workflow + +### 20.1 release + +1. module·case-type·authority·corpus·config manifest 동결 +2. `stage2_loader_binding.yml`로 5 workflow·entrypoint·model/effort·schema·IO root 결속 +3. signed/immutable `stage2_release.json` 생성 +4. subset canary와 rollback digest 시험 +5. monitoring·authority refresh·corpus supersession·cache anomaly alert 연결 +6. 자격 있는 대한민국 변호사의 complete-record filing decision 절차 연결 + +### 20.2 full release exit + +§13.2의 8개 조건을 모두 만족하고 loader가 `stage2_release.json`만 oracle로 읽을 때만 `FULL_137_PRODUCTION_READY`다. 정적 전략 PASS, file 존재, 137 이름 row 또는 subset canary는 이를 대체하지 않는다. + +## 21. v3 평가 finding의 v4 추적 + +### 21.1 CRITICAL·MAJOR + +| ID | v4 contract | acceptance | +|---|---|---| +| C-1 | §6.4 typed provenance, V15 | unsourced fact/evidence/authority/value mutation 차단 | +| C-2 | §10.2 inheritance temporal overlay, CE-08 | 시행 전·당일·후 및 R03 mutation | +| M-1 | §7.2 canonical `case_type_id` | 137 unique, old ID runtime 0 | +| M-2 | §9.3 closed review policy | trigger receipt 없으면 READY 불가, draft 보존 | +| M-3 | §10.1 temporal authority | effective/supersedes/negative treatment mutation | +| M-4 | §13 module manifest | profile scope·IO·authority·physical hash 완전성 | +| M-5 | §10.3 forbidden relief | 사죄광고 mutation 금지, 정정·반론 분리 | +| M-6 | §11.4·Phase 0 | 지정 10종 필수 receipt, legacy 16 비차단 audit | +| M-8 | §3.1·§5.3 | ALL read set·digest·review universe·affected READY | +| M-9 | §3.1·§5.2 | active domain config 누락=`UNEVALUABLE`+review | +| M-10 | §9.1·V18 | 정형부 closed AST와 independent re-render | +| M-11 | §7.1·V16 | option exact partition·silent loss 0 | +| M-12 | §3.1·§7.6 | evidence index/event·exhibit label 보존 | +| M-13 | §7.5·§10.4 | obligation별 rate timeline, 전역 max 금지 | +| M-14 | §7.5 | executable numeral만 law-value token | +| M-15 | §7.2 | closed predicate, zero/multi unresolved, claim 증식 0 | +| M-16 | §7.4·V12 | approved corpus-slot crosswalk | +| M-17 | §5.4·V17 | object registry와 subtype required slots | +| M-18 | §8.3·V11 | counter-performance·제공/거절 event | +| M-19 | §11 | 6 route·2 clock·3 cap·role-specific recipient | +| M-20 | §7.6·V17 | party-set rule·자료완전성 | +| M-21 | §5.4·§7.1 | title/liability/client/recovery와 deferred 분리 | +| M-22 | §9.4·§9.5 | single status producer·허용 상태조합 | +| M-23 | §8.3 | procedural declaration의 actor/service/effect status | + +### 21.2 MINOR 36 + +| ID | disposition | 구현 계약·phase | +|---|---|---| +| m-1 | CONTRACTED | `2020그42`·`2023다254519`·`2018다202774`·`2012다952`를 route-local `CANDIDATE_UNSEALED`로 열거하고 A00 official seal 전 사용 금지(§10.1·§11, Phase 0) | +| m-2 | CONTRACTED | 충돌 chunk 양쪽 provenance·temporal/hierarchy review 보존(§7.4) | +| m-3 | CONTRACTED | binding row·rule/corpus error code·generic review draft(§7.2) | +| m-4 | CONTRACTED | S2_10은 `RUN_WIDE/CLUSTER_LOCAL/OPTION_ONLY`, stable group ID 발급 뒤 S2_20/S2_30만 `GROUP_LOCAL` 사용(§6.3·§7.1) | +| m-5 | CONTRACTED | non-PII prefix·retention·cache telemetry(§14) | +| m-6 | CONTRACTED | finding→fixture→invariant는 regression manifest, runtime 법리 source 아님(§4.8·§12) | +| m-7 | CONTRACTED | ACTIO source root·raw basename/NFC·hash receipt(§11.4) | +| m-8 | CONTRACTED | loader binding·deployment schema·release-only oracle(§4.8·§13·Phase 5) | +| m-9 | CONTRACTED | Stage 1/S2 namespace owner·minting source hash(§5.1) | +| m-10 | CONTRACTED | 현행 Stage 1 handoff exact path·digest key resolver(§3.1) | +| m-11 | CONTRACTED | set·cardinality·multiset·순번 검증(§5.3) | +| m-12 | CONTRACTED | signal used/unused 독립 순회·합집합/교집합(§5.3) | +| m-13 | CONTRACTED | actual seal field·expected runnable/active profile 차이(§3.1·§5.3) | +| m-14 | UNVERIFIED_AUTHORITY | cap proposition은 A00 봉인 전 READY 불가; 사건번호 추정 금지(§11.3) | +| m-15 | CONTRACTED | contract date·당사자 지위·부칙·무효효과의 대부 temporal branch(§10.8) | +| m-16 | CONTRACTED | 비지배 option 보존·표시순서·digest-bound 변호사 override(§7.1) | +| m-17 | CONTRACTED | CE-03 limitation urgency·reversal condition(§7.5) | +| m-18 | CONTRACTED | candidate manifest/digest가 validation·receipt보다 선행(§9.5) | +| m-19 | CONTRACTED | base→plan→final ledger와 producer single writer(§3.4·§7.1) | +| m-20 | CONTRACTED | module manifest implementation/semantic status·dependency(§13.1) | +| m-21 | CONTRACTED | axis별 single state vocabulary와 aggregation(§9.4) | +| m-22 | CONTRACTED | R06 method preference·대안 worknote·예비주문/가집행 금지(§10.7) | +| m-23 | CONTRACTED | polarity·admission risk·선진술 승인·worknote 강등(§8.4) | +| m-24 | CONTRACTED | first real cohort owner·capability preflight·warm call 금지(§8.1·§14) | +| m-25 | CONTRACTED | legacy disposition reason·canonical target audit(§11.4·Phase 0/5) | +| m-26 | CONTRACTED | C40은 S2_40 내부 final reduce로만 정의(§2·§9) | +| m-27 | CONTRACTED | 수익자/전득자 role별 knowledge timing·burden·rebuttal(§11.1) | +| m-28 | CONTRACTED | ACTIO overlay별 scope·IO·authority·분할 기준 manifest(§11.3·§13.1) | +| m-29 | INTENTIONALLY_DEFERRED | 과거 round receipt erratum은 runtime 전략·release gate와 분리 | +| m-30 | INTENTIONALLY_DEFERRED | 과거 fixture rename 기록은 별도 audit hygiene | +| m-31 | CONTRACTED | gold 사실·금액이 runtime branch로 유입되지 않는 mutation(§12.2) | +| m-32 | CONTRACTED | `delay_start_at` missing event·항쟁 상당성 worknote(§10.4) | +| m-33 | CONTRACTED | gold는 external verified fixture manifest/hash로만 보존(§12.2) | +| m-34 | CONTRACTED | Markdown→human-approved CE-13→fixed calculator→receipt(§10.5) | +| m-35 | CONTRACTED | explicit partial claim·잔부·시효/기판력/비용 typed fields(§10.6) | +| m-36 | CONTRACTED | 대위권원·보전필요·불행사·급부별 recipient(§10.6) | + +### 21.3 LOST 15 대체 + +| LOST | v4 대체 계약 | +|---:|---| +| 1 | inheritance temporal overlay·CE-08·renderer restriction | +| 2 | canonical `case_type_id` registry·coverage manifest | +| 3 | source별 authority freshness·temporal schema | +| 4 | self-contained module manifest | +| 5 | forbidden relief invariant | +| 6 | legacy 16 비차단 disposition·선택 migration·runtime load 0 | +| 7 | 단일 ingress manifest와 ALL/review/digest 보존 | +| 8 | 정형부 closed AST/template·independent re-render | +| 9 | option conservation·excluded/deferred·filing metrics | +| 10 | 외부 gold fixture manifest/hash | +| 11 | route-local authority dependency | +| 12 | 최소 impact scope와 typed DomainVerdict envelope | +| 13 | non-PII prefix·retention·cache telemetry | +| 14 | regression-only finding→fixture→invariant map | +| 15 | loader binding·schema·legacy fallback 0 | + +## 22. 검증·완료·잔여 경계 + +### 22.1 전략서 검증 + +v4 초안은 독립 sub-agent 2개가 동시에 검증하고 finding만 증분 반영하는 과정을 정확히 2회 수행한다. 한 검증자는 법률·소장·authority·137종 일반성을, 다른 검증자는 DAG·IO·YAML·state·cache·asset completeness를 담당한다. validator는 전략서를 직접 수정하지 않는다. + +### 22.2 설계 완료의 의미 + +다음만을 뜻한다. + +- 5-task DAG, 상세 ASCII, 별도 SVG, IO, YAML catalog와 Phase 0~5가 상호 일치 +- takeaway의 C 2·M 22·m 36·LOST 15가 v4 contract로 추적됨 +- version-free runtime path, `case_type_id`, typed provenance, CE-13, corrected ACTIO와 V01~V18이 명시됨 +- old Stage 2 runtime dependency와 strict global no-save가 없음 + +### 22.3 아직 완료되지 않은 것 + +- 92개 YAML, Python, schema, prompt, registry, rule Markdown의 실제 구현·배포 +- 계획된 소가·인지 Markdown과 137종 case type/rule의 실제 내용·법률가 sign-off +- 요건사실 corpus 137 coverage와 Weaviate release +- current Stage 1 live output에 대한 contract·E2E 실행 +- GPT-5.6 Sol/ultra의 benchmark, cache 효과와 운영비용 +- 공식 authority 전수 seal, 법률가 semantic review와 실제 filing decision + +전략 PASS를 구현·배포·법률 정확성 100% 또는 실제 사건 제출 가능으로 표현하지 않는다. diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4_workflow.svg b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4_workflow.svg new file mode 100644 index 00000000..06d0d73a --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4_workflow.svg @@ -0,0 +1,179 @@ + + + Stage 2 v4 상세 실행 UML DAG + Stage 1 입력에서 시작하여 S2_00, S2_10, S2_20, S2_30, S2_40을 거쳐 변호사 제출판단 준비 또는 변호사 검토 필요 상태로 끝나는 다섯 작업 흐름도 + + + + + + + + + Stage 2 v4 — Five-task Clean-slate Execution DAG + 2 LLM reasoning tasks · 3 deterministic Python tasks · version-free canonical assets + + + Current Stage 1 outputs + BO · evidence index/events · LES · Fact Ledger · signals + review handoffs · client goal · active domain_config + canonical IDs and raw path/schema/hash are preserved + + + Canonical Stage 2 assets + authority/law values · profiles · case_type/rule registry + renderers · CE rules · approved corpus/release manifests + old Stage 2 YAML and legacy runtime fallback = 0 + + + + + + S2_00 — deterministic ingress, normalization and bundle compile + + C00 Input guard + allowlist · schema/hash + ALL read-set · review universe + + C05 Conservation + BO↔LES↔Ledger↔signal + evidence/event/gate joins + + C10 Context + party/title/object/evidence + slot crosswalk · issue base + + C15 Plan + co-cluster · dependency DAG + immutable slices · cache plan + + + + consistent case package + can be built? + + no — status-only path + + Diagnostic + TECHNICAL_INCOMPLETE only + when consistent artifact is impossible + + + S2_40 status-only entry + + + yes + + S2_10 — LLM dependency-wave legal resolution + + Wave cluster A · immutable part + claim/defense/remedy · typed provenance · signature + + Wave cluster B..n · immutable parts + prior verdict narrow slice · no shared write + + + + S2_20 — deterministic canonical ReliefPlan reducer + + C20–C21 Portfolio & parties + option conservation · stable preliminary group ID + party/title · then exact binding before CE-13 + + C25–C26 Exact drafting binding + claim signature → case_type_id → rule/renderer + zero/multi = UNRESOLVED_BINDING + + C22 Calculations after binding + CE-01..CE-R4 · law-value · receipts + CE-13 gets case type/rule/portfolio + + C27–C30 Retrieval & reports + verified retrieval · slot crosswalk · replay + exhibit/party/cost/gap · plan issue ledger + + C35 Freeze + canonical ReliefPlan · same claim group IDs + freeze selected narrow context · group slices + + + + S2_30 — LLM claim-group joint drafting + + Group A · immutable draft part + relief/cause/declaration/worknote atoms · exhibit tokens + + Group B..n · immutable parts + frozen plan · selected rule/corpus only · no calculation + + + + S2_40 — deterministic review, render, state, seal and commit + + C40 Reduce + parts · final issue ledger + single status writer + + C45 Render + closed AST/template + independent re-render + + C46 Validate + V01–V18 · receipts + rule/corpus/hash match + + C47–C48 Review & commit + candidate digest → receipt when required + rename → outside-seal commit result + + + + READY predicates + all pass? + + + all pass + + READY + FOR LAWYER FILING DECISION + not automatic filing approval + + + otherwise + + LAWYER REVIEW + resumable draft + issue packet + specialist receipt when triggered + + + Execution boundaries + case_type is downstream selector + LLM never calculates or commits + legal uncertainty keeps a draft + + + Token economy + PII-free static prefix + selected profile/rule/pack only + first real cache owner + telemetry + diff --git a/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/take_away_from_eval_v.3.md b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/take_away_from_eval_v.3.md new file mode 100644 index 00000000..aa80d422 --- /dev/null +++ b/Case_02_Comparison_Research/YAML_Prompts/2. Stage_2/take_away_from_eval_v.3.md @@ -0,0 +1,560 @@ +# `eval_stage_2_optimal_update_strategy_v.3.md` 취사선택 및 v.3 개정안 + +> 작성 기준일: 2026-08-28 +> +> 대상 전략서: `stage_2_optimal_update_strategy_v.3.md` +> +> 평가서: `eval_stage_2_optimal_update_strategy_v.3.md` +> +> 문서 성격: **v.3을 실제로 수정하기 위한 의사결정·개정 명세**. YAML, Python, registry, rule Markdown 또는 Weaviate corpus를 구현·배포했다는 보고서가 아니다. + +--- + +## 0. 결론 + +평가서의 결함 탐지는 대체로 타당하다. 특히 **청구원인 typed provenance, 유류분 신·구법 전환, claim-option 보존, Stage 1 ingress 보강, 증거·목적물·당사자 특정, 동시이행, 이율 timeline, 사해행위 route, 상태·seal 계약**은 v.3 개정에 반드시 반영해야 한다. + +그러나 평가서의 최종 처방인 “LOST 15건을 포함한 v2-1 조항을 대량 복원하고 CRITICAL·MAJOR를 모두 구현한 뒤에야 Phase 0에 착수한다”는 결론은 받아들이지 않는다. Phase 0은 바로 그 정본·schema·authority를 만드는 단계이므로, **v.3 문서를 먼저 최소·충분한 독립 계약으로 고친 뒤 Phase 0에 착수하고, 각 계약을 해당 phase exit에서 검증**하는 편이 맞다. + +최종 선택은 다음과 같다. + +- 기존 **5-task DAG와 2개 LLM task**는 유지한다. +- v2-1의 1,645행 또는 137행 부록을 normative dependency로 복원하지 않는다. +- CRITICAL 2건은 모두 **수정 수용**한다. +- MAJOR 22건은 취지를 모두 반영하되, 4건은 그대로 수용하고 18건은 더 안전하고 작은 계약으로 수정 수용한다. +- MINOR 36건은 16건 수용, 17건 수정 수용, 3건 별도 검증·감사 정비로 보류한다. +- 완전히 기각할 결함 진단은 없지만, 평가서의 **구체적 처방 8종**은 법률 오류·과잉복원·token economy 훼손 때문에 명시적으로 기각한다. + +### 0.1 독립 검토 ensemble + +세 독립 검토를 동시에 수행했다. + +| lens | 검토 초점 | ensemble에 반영한 핵심 | +|---|---|---| +| 대한민국 민사법·소송실무 | 청구취지·청구원인, temporal rule, 당사자·원상회복 상대방 | M-19(d) 오류 교정, 이율 단일 공식 금지, 동시이행·대위·일부청구의 법률가 검토 경계 | +| AI architecture·data contract | Stage 1→2 IO, deterministic/LLM 경계, registry, cache, seal | 예정 자산의 비충분성, `case_type_id` 단일화, Markdown→structured contract→fixed calculator | +| 적대적 refute·감사 | 과잉 심각도, 중복 finding, v2-1 회귀 위험 | 60개 finding을 8개 복합 결함군으로 축약, 5-task 유지, 감사 erratum 분리 | + +다수결로 정하지 않았다. 원문 locator, 현재 v.3의 등가 계약 존재 여부, 공식 법원, 사용자의 예정 자산 조건과 목적함수를 함께 보아 결정했다. + +### 0.2 해석 경계 + +사용자가 “저장해 둘 예정”이라고 한 다음 자산은 **계획이 확정된 production input**으로 취급하되, 현재 구현·법률가 검수·hash 봉인·loader 배포가 끝난 것으로 간주하지 않는다. + +1. `소가 산정 규칙.md` +2. `민사소송 등 인지규칙.md` +3. 대한민국 민사사건 137종의 canonical `case_type_id` registry + +이 예정 자산은 평가 finding을 일부 흡수하지만, 그 자체만으로 M-1·M-15·m-34를 닫지는 않는다. + +--- + +## 1. 사용자의 예정 자산을 v.3에 반영하는 방식 + +### 1.1 137종 `case_type_id` registry + +평가서 M-1의 과거 root hash와 v2-1 부록 A를 복원하지 않는다. 새 registry를 유일한 사건종류 정본으로 둔다. + +권장 배포 계약: + +```text +Default_Agent/Stage_2_Clean/v3/ + manifest/case_type_registry.v3.yml + manifest/case_type_rule_registry.v3.yml + schemas/case_type_registry.schema.json + schemas/case_type_rule_registry.schema.json +``` + +최소 row: + +```yaml +case_type_id: CT-001 +canonical_name: 대여금 청구 +source_catalog_ref: + path: case_kinds.md + ordinal: 1 + source_sha256: "..." +row_kind: CLAIM # CLAIM|DOCTRINE_TOPIC|GENERIC|GROUP +group_id: MONEY_CLAIM +classification_predicate: {} +allowed_renderer_ids: [R01] +allowed_companion_case_type_ids: [] +relief_rule_refs: [] +corpus_scope_refs: [] +review_policy_base: STANDARD_ATTORNEY_REVIEW +review_tags: [] +implementation_status: PLANNED +``` + +`case_type_id`는 v.3의 `case_kind_id`를 대체하는 **유일한 runtime ID**다. 과거 `case_kind_id`가 필요하면 one-time migration table의 `legacy_case_kind_id`로만 보존하고 runtime lookup·coverage key로 병존시키지 않는다. + +실행 위치는 반드시 다음과 같다. + +```text +Stage 1 domain/type/route/signal + -> S2_10: 청구권·구제수단의 실체법 판단 + -> normalized atomic claim signature + -> S2_20/C25: case_type_id exact classification + -> 해당 relief rule + corpus scope + CE-13 branch 선택 +``` + +즉 `case_type_id`는 **후단 drafting·retrieval·coverage selector**다. 사건명 또는 group으로 substantive profile을 활성화하거나 청구권 존부를 판단해서는 안 된다. zero/multi match는 nearest-name fallback이나 신규 청구 생성으로 처리하지 않고 `UNRESOLVED_BINDING`으로 보존한다. + +#### 1.1.1 `review_policy`의 closed contract + +모든 산출물은 최종 제출 전에 대한민국 변호사의 filing decision을 거친다. 아래 정책은 이를 대체하는 자동제출 등급이 아니라, **일반 변호사 검토에 더하여 전문 검토 receipt가 필요한지**를 결정하는 계약이다. + +| 필드 | closed 값·규칙 | +|---|---| +| `review_policy_base` | `STANDARD_ATTORNEY_REVIEW \| MANDATORY_SPECIALIST_REVIEW` | +| `review_tags[]` | `PUBLIC_LAW_NEXUS_REVIEW \| UNROUTED_ISSUE_REVIEW \| DOCUMENT_AUTHENTICITY_REVIEW \| PROCEDURAL_REMEDY_SPECIALIST_REVIEW` | +| `required_receipt_types[]` | base policy와 활성 tag의 mapping으로만 생성하며 임의 문자열 금지 | +| `ready_eligible` | 아래 도출식을 만족할 때만 `true`; filing 승인 자체를 뜻하지 않음 | + +| trigger | 추가 required receipt | +|---|---| +| base=`MANDATORY_SPECIALIST_REVIEW` | 해당 row의 `required_specialty_ids[]`에 대응하는 `SPECIALIST_LEGAL_REVIEW_RECEIPT` | +| `PUBLIC_LAW_NEXUS_REVIEW` | `PUBLIC_LAW_SPECIALIST_RECEIPT` | +| `UNROUTED_ISSUE_REVIEW` | `ROUTE_RESOLUTION_RECEIPT` | +| `DOCUMENT_AUTHENTICITY_REVIEW` | `DOCUMENT_AUTHENTICITY_RECEIPT` | +| `PROCEDURAL_REMEDY_SPECIALIST_REVIEW` | `PROCEDURAL_REMEDY_RECEIPT` | + +```text +ready_eligible = + V01..V18 모두 PASS + AND case_type_id·authority·state 계약 해소 + AND 모든 활성 trigger에 대응하는 receipt가 + 현재 package hash와 결속되어 VALID +``` + +runtime trigger는 base policy를 상향하거나 receipt를 추가할 수 있을 뿐 하향할 수 없다. receipt가 없더라도 draft·worknote·review packet은 저장하며, 상태만 `LAWYER_REVIEW_REQUIRED`로 둔다. + +### 1.2 `소가 산정 규칙`·`민사소송 등 인지규칙` Markdown + +두 Markdown은 법률가가 읽고 검수하는 설명 source다. runtime에서 Markdown을 파싱하거나 LLM이 산술하도록 만들지 않는다. + +권장 자산 구조: + +```text +Default_Agent/Stage_2_Clean/v3/ + procedural_rules/소가_산정_규칙.md + procedural_rules/민사소송_등_인지규칙.md + registry/calculations/CE-13_court_value_cost.yml + law_values/court_fee_values..yml + schemas/court_value_cost_contract.schema.json +``` + +처리 순서: + +1. 공식 법령·대법원규칙·판례를 포함한 Markdown을 법률가가 승인한다. +2. 승인된 명제를 `CE-13_court_value_cost.yml`의 branch·formula·temporal rule로 구조화한다. +3. 구조화 projection과 Markdown의 path, raw SHA-256, `as_of`, authority IDs를 한 manifest row에 봉인한다. +4. S2_20의 고정 Python calculator가 claim portfolio, 청구 병합관계, 주위·예비·선택 관계, object value, 부대청구 여부와 적용시점을 입력받아 계산한다. +5. 결과는 `filing_metrics.json`과 calculator receipt에 보존한다. S2_30에는 필요한 narrow excerpt만 제공한다. + +민사소송법 제27조의 “여러 청구의 값 합산”도 무조건 적용할 문자열이 아니다. 부대청구, 경제적 이익이 중첩되는 청구, 선택·예비적 병합과 개별 소가 규칙을 구조화해야 한다. 민사소송 등 인지규칙은 사해행위취소, 공유물분할, 등기·등록, 확인·형성의 소 등 case별 산정방식을 가진다. 따라서 예정 Markdown은 **필요하지만 executable contract의 대체물은 아니다**. + +--- + +## 2. 평가서에서 그대로 받아들이지 않을 처방 + +| 평가 권고 | 최종 판단 | 대체 전략 | +|---|---|---| +| LOST 15를 v2-1 조항으로 복원 | 기각 | 각 손실을 독립 schema·manifest·validator·fixture로 흡수 | +| 과거 `case_kinds.md` hash와 v2-1 137행 부록을 정본화 | 기각 | 신규 `case_type_id` registry를 정본화하고 source lineage만 보존 | +| 16개 legacy 자산 100% 재사용 | 기각 | 16개 모두 `MIGRATE\|REBUILD\|DROP` disposition, runtime load 0 | +| M-13 전역 `max(약정이율, 법정/소촉법 이율)` | 기각 | obligation별 authority-driven rate timeline | +| M-14 rule Markdown의 모든 numeral 금지 | 기각 | 실행값 숫자만 `law_value_id`; 인용·예시는 `NON_EXECUTABLE` 허용 | +| M-15 복수 exact match를 복수 atomic claim으로 생성 | 기각 | binding conflict로 보존; 청구권 생성은 S2_10 판단만 가능 | +| M-19(d) 말소등기·가액배상 모두 원고에게 | **법률 오류로 기각** | 원물회복=채무자 책임재산, 가액배상=취소채권자; 역할별 recipient 분리 | +| m-24 `max_tokens:0` cache warm call | 기각 | GPT-5.6 cache breakpoint/key/TTL + 첫 실제 cohort owner 직렬화 + telemetry | + +### 2.1 M-19(d)의 필수 교정 + +평가서 본문은 “말소등기·가액배상=원고”라고 적었으나 이는 받아들일 수 없다. 평가의 검증 원장 `evals/stage2_v3/eval_v3_verification_ledger.md:1171-1172,1189`도 본문과 반대로 원물회복=채무자, 가액배상=원고로 기록한다. 대법원은 원상회복으로 사해행위 목적물을 **채무자에게 반환**한다고 판시하고, 지급되지 않은 배당금채권도 **채무자에게 양도**하도록 한다. 반면 원물반환이 불가능한 가액배상은 취소채권자인 원고에게 지급한다. + +따라서 단일 `restoration_recipient ∈ {PLAINTIFF, DEBTOR_NONPARTY}`도 충분하지 않다. 다음 역할을 분리한다. + +```yaml +restoration_route: REAL_PROPERTY_CANCELLATION +obligor_party_id: PARTY-BENEFICIARY +substantive_restoration_holder_party_id: PARTY-DEBTOR +registration_right_holder_party_id: PARTY-DEBTOR +rendered_performance_counterparty_party_id: PARTY-DEBTOR +assignment_recipient_party_id: null +notice_addressee_party_id: null +payment_recipient_party_id: null +``` + +| route | 핵심 recipient 계약 | +|---|---| +| 법률행위 취소 | 취소 자체는 형성판결; 급부 recipient 없음 | +| 소유권이전·근저당권 등 말소 | 등기권리자·책임재산 귀속 주체는 채무자; 주문상 절차이행 상대방은 route·등기구조·공식 authority로 별도 결속하며 검증된 기본 route는 채무자 | +| 진정명의회복형 이전등기 | 이전받는 자는 채무자 | +| 미지급 배당금채권 양도 | assignment recipient=채무자, notice addressee=제3채무자 | +| 이미 수령한 배당금·가액배상 | payment recipient=취소채권자인 원고 | + +`rendered_performance_counterparty_party_id`는 실체 귀속주체에서 기계적으로 복사하지 않는다. route별 등기구조와 봉인된 공식 판례가 정한 주문 문형으로 결정하고, 근거 없이 원고로 바꾸는 것을 금지한다. 지정 migration source 10종과 별개인 기존 relief-rule 후보 문서 `청구취지작성규칙_사해행위취소청구.md`의 “수익자는 원고에게 … 말소등기절차를 이행” 문형은 일단 quarantine하고, 별도 authority 검수 전에는 canonical rule로 승격하지 않는다. + +### 2.2 지연손해금과 법정수치 + +CE-01은 단일 산술식이 아니라 다음 순차 판정표를 실행한다. + +```text +채무·청구 유형 + -> 이행기/최고/불법행위/수익/판결확정/반대급부 제공 event + -> 약정이자 또는 약정 지연배상률의 성립·효력 + -> 이자제한법·대부업법 등 상한·무효효과 + -> 민법·상법 법정이율 적용 가능성 + -> 피고별 소장 송달일과 소촉법 적용 + -> 소촉법 제3조 제2항 또는 ACTIO-01 등 배제 특칙 + -> 기간별 rate_law_value_id와 receipt +``` + +실행값으로 쓰이는 이율·기간·상한은 Markdown·prompt·Python literal에서 금지한다. 판례 선고일, 조문 번호, 역사적 예시 숫자는 `NON_EXECUTABLE` metadata로 허용한다. + +--- + +## 3. CRITICAL·MAJOR 취사선택표 + +`수정 수용`은 결함 자체는 인정하지만 평가서의 복원 방식·필드·공식·심각도 또는 phase 배치를 바꾼다는 뜻이다. + +| ID | 판정 | v.3 개정 내용 | 주된 위치 | +|---|---|---|---| +| C-1 | 수정 수용 | atom type별 provenance: 사실=`fact_id`, 증거=`evidence_id`, 당사자·목적물=`BO ref`, 법리=`authority/chunk`, 계산=`receipt`, 절차상 의사표시=`declaration ref`, glue=`template_id` | §3, §5.4, §13 | +| C-2 | 수정 수용 | `inheritance_opened_at` 기준 신·구 제1115조, 신법 R01 전용·R02/R03 금지, 권리자·부칙·시효·가액·이자 축과 fixture. 공식 원문을 기준일 재봉인 | §8.4 또는 별도 inheritance overlay, §12, §13 | +| M-1 | 수정 수용 | 예정 `case_type_id` registry를 유일 정본으로 사용. 과거 hash·부록 복원 금지 | §1.1, §6, §11.2 | +| M-2 | 수정 수용 | `review_policy_base`, runtime trigger, specialist tag를 분리. tag는 저장을 막지 않되 필요한 specialist receipt 전 READY 금지 | §6, §10 | +| M-3 | 수정 수용 | authority row에 effective period, transitional rule, supersedes, negative treatment, source별 refresh policy. 고정 24h/7d/30d 금지 | §12.1 | +| M-4 | 수정 수용 | module manifest에 profile별 scope·IO·authority·dependency·physical hash. X4는 출처를 확정하거나 E-13 defense map으로 흡수 | §11.3, §15 | +| M-5 | 수용 | 강제 사죄·사과광고 금지 invariant, 89헌마160 authority, 정정·반론 branch 분리 | §8.4, §13 | +| M-6 | 수정 수용 | legacy 16 source는 비차단 migration audit로 전수 disposition. 지정 ACTIO 10종과 release scope에 필요한 독자 명제만 Phase 0 receipt 대상; runtime dependency 0 | §9.2 인접 migration 절, §15 | +| M-8 | 수정 수용 | `ALL` read-set, digest/seal, review universe, P1/P4 gate를 ingress manifest 하나로 복원. 상류 finding은 affected READY만 제한 | §1.3, §3.3, §10.2 | +| M-9 | 수용 | 활성 profile의 `domain_config.json`을 slot 검증 input으로 명시. 누락 시 `UNEVALUABLE`+review, 전역 no-save 아님 | §1.3, §3.2 | +| M-10 | 수정 수용 | 정형 청구취지·비용·가집행에 closed template/AST·typed slots 적용. NFC·line-ending 정규화 후 독립 re-render 비교; 청구원인 자유서술 전체 byte-lock 금지 | §8, §13 | +| M-11 | 수용 | `all_option_ids = selected ∪ alternative ∪ excluded ∪ deferred`와 상호배타성, 제외·유보 사유·재검토조건·filing metrics 복원 | §4.3, §10, §13 | +| M-12 | 수정 수용 | 현행 Stage 1 `evidence_indexed.json`·`evidence_event_candidates.json`과 gate를 ingress에 추가. 내부 evidence ID와 외부 갑호증 label 분리, 기존 번호 보존 | §1.3, §8, §14 | +| M-13 | 수정 수용 | CE-01 obligation별 rate timeline과 피고별 송달·상한·배제 branch. 전역 `max()` 금지 | §11.3, §12, §13 | +| M-14 | 수정 수용 | output-affecting numeral만 `law_value_id` token 강제; 비실행 인용·예시는 허용하고 validator가 용도를 구분 | §6.3, §8, §13 | +| M-15 | 수정 수용 | `case_type_id` row에 closed predicate와 row kind. zero/multi match=`UNRESOLVED_BINDING`; 새 청구 자동 생성 금지 | §6 | +| M-16 | 수정 수용 | 법률가 승인 corpus↔Stage 1 slot crosswalk. 미매핑 chunk는 context-only이며 gap을 채우지 못함 | §7 | +| M-17 | 수정 수용 | `object_registry.json`, renderer/subtype별 `required_specification_slots`. 모든 R03에 동일 접수번호를 강제하지 않음 | §8, §14 | +| M-18 | 수정 수용 | `counter_performance`·상환이행 template·제공/수령거절 event와 CE-01 지체 연결 | §8, §11.3, §13 | +| M-19 | 수정 수용 | 담보 operand, 6 route, 기간 disposition, 전득자 악의, 역할별 recipient. 평가서 recipient 오류 교정 | §9 | +| M-20 | 수정 수용 | profile의 `party_set_rule_id`, required/present party set과 자료완전성. 미확정=review, 확인된 누락=READY 금지 | §5, §10, §13 | +| M-21 | 수정 수용 | 원고 title chain·책임형태·의뢰인 지시·회수정보. `exclude_now`는 법률상 EXCLUDED가 아니라 `DEFERRED_BY_CLIENT_INSTRUCTION` | §1.3, §4, §5 | +| M-22 | 수용 | 단일 상태 vocabulary와 scope→run aggregation. S2_00 abort도 S2_40 status-only short circuit가 최종 status 작성 | §10, §14 | +| M-23 | 수정 수용 | `procedural_declaration` atom, actor 권한·내용·예정 송달·도달 후 기간·효과조건. service 전 `PLANNED`, 이미 발생한 사실로 취급 금지 | §5.4, §8, §13 | + +### 3.1 심각도 재배치 + +평가서의 “MAJOR 22개 구현 전 Phase 0 착수 불가”는 다음처럼 바꾼다. + +- **전략 승인 전 필수:** C-1, C-2, M-19 recipient 교정, `case_type_id`와 소가·인지 자산의 역할 경계. +- **Phase 0 exit 필수:** canonical registry·authority·profile·schema lock, 지정 ACTIO 10종 receipt와 release scope에 필요한 독자 명제의 migration disposition. legacy 16종 전수 audit 자체는 비차단이다. +- **Phase 1 exit 필수:** ingress, option conservation, renderer/calculator, state/seal의 mock E2E. +- **Phase 2 exit 필수:** substantive overlays, typed LLM output, pleading 법률 contract. +- **FULL_137/filing readiness 필수:** 137종 row sign-off, corpus/rule coverage, CE-13, 모든 route fixture. + +--- + +## 4. MINOR 취사선택표 + +| ID | 판정 | 반영 방식 | +|---|---|---| +| m-1 | 수정 수용 | 판례 4건을 전역 prompt에 넣지 않고 해당 route authority dependency로만 A00 후보 등록 | +| m-2 | 수정 수용 | 충돌 chunk 양쪽 provenance 보존. 단순 최신성이 아니라 적용시점·법원 위계·후속 취급 우선 | +| m-3 | 수용 | binding schema에 claim/group/option/renderer/branch와 오류코드 추가 | +| m-4 | 수정 수용 | 미정의 `cluster_impact_manifest` 삭제 또는 작은 `impact_scope` enum만 정의; v2-1 DSL 전문 복원 금지 | +| m-5 | 수용 | 사건 PII를 static cache prefix에서 제외, retention 승인·cache telemetry 추가 | +| m-6 | 수정 수용 | DR/IR/IM을 외부 regression manifest의 finding→fixture→invariant mapping으로 유지; runtime 법리 source 금지 | +| m-7 | 수용 | 지정 migration source의 exact path/hash와 NFC/NFD 정규화 기록 | +| m-8 | 수용 | `stage2_loader_binding.yml`+schema, 5 workflow path/hash와 legacy fallback 0 | +| m-9 | 수용 | Stage 1 ID와 S2-minted ID의 namespace owner를 schema에 명시 | +| m-10 | 수용 | P1~P3 exact handoff filename과 digest key를 ingress에 봉인 | +| m-11 | 수용 | set 외 cardinality·multiset·F-ID 순번 검사 | +| m-12 | 수용 | used/unused를 독립 순회로 계산하여 항진식 제거 | +| m-13 | 수정 수용 | 실제 Stage 1 배포본 확인 후 seal field와 활성 profile 집합을 봉인 | +| m-14 | 보류 | 피보전채권 cap 명제는 필요하나 `2000다66416` 공식 원문·판시범위를 재검증한 후 authority ID 확정 | +| m-15 | 수정 수용 | 대부업법 개정 부칙·계약일 경계를 공식 원문으로 재봉인 | +| m-16 | 수정 수용 | 비지배 option을 보존하고 정렬 vector만 계산; 법률가 override·의뢰인 선호 허용 | +| m-17 | 수정 수용·우선순위 상향 | CE-03에 청구별 만료일·잔여일·중단/완성유예 event와 비차단 `URGENT_DEADLINE` | +| m-18 | 수용·P0 상향 | `package_manifest_draft -> validation -> final seal` 순서로 순환 제거 | +| m-19 | 수용·P0 상향 | 파일별 single writer와 `issue_ledger.base -> plan -> final` chain | +| m-20 | 수정 수용 | profile ID를 먼저 정리한 뒤 manifest에 phase·status 배정 | +| m-21 | 수용 | 상태 vocabulary 단일 정본 | +| m-22 | 수정 수용 | 공유물분할 방법은 R06 `method_preference`와 worknote; 주위·예비 주문처럼 렌더링 금지 | +| m-23 | 수정 수용 | 불리한 사실 자동 은폐 금지. polarity, 자백 위험, 명백한 항변 선진술·재항변을 함께 review | +| m-24 | 수정 수용 | first real cohort owner 직렬화, GPT-5.6 cache breakpoint/key/30m TTL, cached token telemetry; `max_tokens:0` 금지 | +| m-25 | 수용 | migration 폐기 사유를 실물 결함에 맞게 교정 | +| m-26 | 수용 | “old C40” 오기 교정 | +| m-27 | 수용 | ACTIO 항변 범위와 수익자·전득자 선의 판단시점 분리 | +| m-28 | 수정 수용 | ACTIO overlay 하나의 manifest/schema에 통합하고 mortgage 분할 기준 명시 | +| m-29 | 보류 | 기존 검증 receipt hash·locator erratum은 전략 runtime과 분리한 감사 정비 | +| m-30 | 보류 | 과거 fixture rename 기록은 round receipt erratum으로 별도 처리 | +| m-31 | 수용 | fixture의 당사자·금액·날짜가 runtime branch로 유입되지 않는 mutation test | +| m-32 | 수용 | `delay_start_at` 입력과 소촉법 항쟁 상당성 worknote | +| m-33 | 수정 수용 | 검증된 gold 값은 외부 fixture file/hash로 보존; 전략 본문·일반 profile에 복제 금지 | +| m-34 | 수정 수용 | 예정 Markdown + structured CE-13 + fixed calculator + versioned law-value + receipt | +| m-35 | 수정 수용 | 명시적 일부청구를 lawyer-reviewed option으로 제공하고 잔부 유보·시효·기판력 위험 기록 | +| m-36 | 수정 수용 | 채권자대위 요건과 급부별 recipient branch; 금전 직접수령은 authority에 결속 | + +--- + +## 5. LOST 15 처리 + +LOST 판정은 대부분 유효하지만 “이전 문장을 복원한다”는 의미로 받아들이지 않는다. + +| LOST | 판정 | v.3 대체 계약 | +|---:|---|---| +| 1 유류분 전환 | 수정 수용 | CE-08/E-15 temporal overlay + renderer 금지 + fixture | +| 2 137 blueprint/hash | 수정 수용 | 신규 `case_type_id` registry + coverage manifest | +| 3 authority freshness | 수정 수용 | source별 policy·temporal authority schema | +| 4 profile scope | 수정 수용 | self-contained module manifest | +| 5 사죄광고 금지 | 수용 | forbidden relief invariant | +| 6 legacy 16자산 | 수정 수용 | 비차단 100% disposition audit, 선택 migration, runtime dependency 0; 지정 ACTIO 10종은 별도 필수 receipt | +| 7 Stage 1 ingress | 수정 수용 | 단일 ingress manifest contract | +| 8 closed template | 수정 수용 | 정형부 closed AST/template + normalized independent conformance | +| 9 claim option 보존 | 수용 | option conservation + excluded/deferred + filing metrics | +| 10 gold fixture 값 | 수정 수용 | 외부 fixture manifest/hash | +| 11 판례 4건 | 수정 수용 | route-local authority dependencies | +| 12 impact/envelope | 수정 수용 | 최소 `impact_scope`와 typed S2_10 envelope | +| 13 PII/cache | 수용 | non-PII static prefix·retention·telemetry | +| 14 finding coverage | 수정 수용 | regression-only coverage manifest | +| 15 loader binding | 수용 | loader binding schema·legacy fallback 0 | + +--- + +## 6. v.3에 적용할 최소·충분 개정 패키지 + +### P-1. Typed ingress and provenance + +- Stage 1 current outputs에 `evidence_indexed.json`, `evidence_event_candidates.json`, B1/B2 gate, 활성 `domain_config.json`, `defendant_target_matrix`, `asset_status`를 명시한다. +- `ALL` read-set expansion, review universe, digest/seal chain을 하나의 ingress schema로 결속한다. +- atom type별 source contract를 도입하고 unsourced fact mutation을 READY에서 차단한다. +- 법률 불확실성은 draft+worknote+review packet으로 저장한다. 물리적 parse/renderer 실패만 affected scope `TECHNICAL_INCOMPLETE`다. + +### P-2. Canonical selector and authority + +- `case_type_id` 137종 registry와 `review_policy_base/review_tags`를 정본화한다. +- C25는 normalized claim signature의 후단 exact selector로 한정한다. +- authority release에 temporal scope·부칙·negative treatment·refresh trigger를 넣는다. +- 유류분, 사죄광고, 대부계약 temporal rule을 route-local overlay로 둔다. + +### P-3. Claim portfolio and pleading contracts + +- claim-option conservation과 법률상 제외, 증거상 유보, 의뢰인 지시 유보를 구분한다. +- party completeness, plaintiff title chain, liability form, client target와 회수정보를 ReliefPlan에 결속한다. +- `object_registry`, `exhibit_register`, `counter_performance`, `procedural_declaration`, explicit partial claim을 추가한다. +- 청구취지 특정 slot은 renderer와 subtype별로 관리한다. + +### P-4. Deterministic rendering and calculation + +- 청구취지·소송비용·가집행 등 정형부만 closed template/AST로 렌더한다. +- CE-01은 obligation별 rate timeline, CE-13은 소가·인지·송달비용을 계산한다. +- Markdown은 설명 source, YAML은 rule data, Python은 고정 executor, LLM은 법률판단·서술로 역할을 유지한다. +- S2_40은 canonical normalization 후 template 재전개·calculator receipt·frozen plan을 독립 대조한다. + +### P-5. ACTIO corrected route contract + +- 지정 10자산의 migration provenance를 유지하되 법적 명제와 fixture를 새 contract로 교정한다. +- 담보·우선권 operand, 제척기간 disposition, 전득자 악의, 6 route, 이미 받은 배당금과 미지급 배당금채권을 분리한다. +- 실체 귀속주체·등기권리자·주문상 절차이행 상대방·양도수령인·통지상대방·지급수령인을 역할별 필드로 분리한다. 원물회복의 기본 귀속은 채무자, 가액배상 지급은 원고로 하되, 주문상 절차이행 상대방은 route·등기구조·공식 authority로 별도 결속한다. +- 기존 relief-rule 후보 문서는 지정 10종 migration receipt와 분리하여 검수하고, 검증되지 않은 “말소등기=원고” 문형은 quarantine한다. + +### P-6. State, producer and seal + +- scope→run→artifact 상태 lattice와 single status producer를 확정한다. +- `package_manifest_draft -> deterministic validation -> lawyer review packet hash -> final seal -> atomic commit` 순서로 바꾼다. +- 모든 emitted file은 단일 producer·schema·hash owner를 갖는다. + +### P-7. Regression, security and cache + +- finding→invariant→fixture mapping을 runtime 밖 regression manifest로 둔다. +- PII-free static prefix, explicit cache breakpoint/key/TTL, cache telemetry를 사용한다. +- gold 사건 값과 legacy 문구가 일반 profile 또는 runtime 분기로 유입되지 않는 mutation을 추가한다. +- m-29·m-30은 별도 audit erratum으로 처리한다. + +--- + +## 7. 개정 후에도 유지할 5-task DAG + +```text +Stage 1 current outputs + | + v +S2_00 [deterministic] + ingress/review/digest conservation + + slot/evidence/object/party context + | + v +S2_10 [LLM] + substantive claim/relief options + + typed provenance + normalized signature + | + v +S2_20 [deterministic] + option reducer + dependency + + C25 case_type_id exact binding + + C27~C29 retrieval orchestration + + CE-01/CE-13 calculators + + exhibit/party/filing reports + | + v +S2_30 [LLM] + frozen plan + selected rule/corpus only + -> typed cause/relief/declaration atoms + | + v +S2_40 [deterministic] + V01~V18 + canonical re-render + + state/seal/atomic commit + | + +--> clean pleading + +--> attorney worknote/review packet + +--> validation/status/receipt +``` + +top-level task, 별도 C30 또는 제3 LLM reviewer를 추가하지 않는다. + +--- + +## 8. v.3 절별 수정 위치 + +| v.3 절 | 개정 내용 | +|---|---| +| §0·§16 | 이 문서의 disposition과 LOST 대체표를 요약하고 “v2-1 전문 승계 아님” 명시 | +| §1·§3 | current Stage 1 evidence/domain/review ingress, typed provenance, ID ownership | +| §4·§5 | option conservation, title/liability/client constraint, party completeness, procedural declaration | +| §6 | `case_kind_id`→`case_type_id` 단일화, row kind·predicate·review policy·binding conflict | +| §7 | corpus-slot crosswalk, conflict preservation, context-only unmapped chunk | +| §8 | closed template scope, object/exhibit registry, 동시이행, 특정 slot, 실행값 token | +| §9 | ACTIO route·operand·deadline·transferee·recipient 교정 | +| §10 | 상태 lattice, READY predicate, specialist review receipt | +| §11 | profile scope manifest, CE-01·CE-13, migration disposition | +| §12 | temporal authority, freshness, PII/cache contract | +| §13 | V15~V18 및 신규 boundary/mutation fixture | +| §14 | producer matrix, ledger chain, draft manifest와 final seal 순서 | +| §15 | Phase entry/exit 재배치와 full-137/filing readiness gate | + +--- + +## 9. 추가·보강할 핵심 IO + +| task | 추가 input/output | 목적 | +|---|---|---| +| S2_00 | `evidence_inventory.json`, `object_registry.json`, `party_and_title_context.json`, `slot_crosswalk.json`, 강화 `ingress_status.json` | 사실·증거·당사자·목적물·slot의 정본화 | +| S2_10 | typed claim options, `normalized_claim_signature`, typed provenance refs | 실체법 판단과 후단 사건종류 selector 분리 | +| S2_20 | `case_type_bindings.json`, `exhibit_register.json`, `filing_metrics.json`, `option_conservation_report.json`, `party_completeness_report.json` | deterministic reducer·계산·완전성 검증 | +| S2_30 | typed relief/cause atoms, `procedural_declaration` atoms, exhibit tokens | 자유서술과 정형 계약의 분리 | +| S2_40 | `package_manifest_draft.json`, `issue_ledger.final.json`, render comparison, final validation/status/seal | 독립 검증과 atomic commit | + +모든 파일은 schema, producer, consumer, ordering key, raw hash와 status vocabulary를 가져야 한다. + +--- + +## 10. machine invariants 개정 + +기존 V01~V14를 폐기하지 않고 다음을 보강한다. + +| invariant | 내용 | +|---|---| +| V01~V04 보강 | evidence/domain config/review universe/digest, Stage 1 ID와 S2 ID owner, independent conservation | +| `V15_TYPED_ATOM_PROVENANCE` | atom type별 허용 source ref만 사용; unsourced fact·증거 dangling 0 | +| `V16_CLAIM_OPTION_CONSERVATION` | 모든 option이 selected/alternative/excluded/deferred 중 정확히 하나에 존재 | +| `V17_PARTY_OBJECT_EVIDENCE_COMPLETENESS` | party-set, title, liability, required specification slot, exhibit token 완전성 | +| `V18_CLOSED_RENDER_AND_CALC_CONFORMANCE` | template/AST, frozen ReliefPlan, law-value, calculator receipt, counter-performance의 canonical 일치 | +| V13 보강 | temporal authority·부칙·freshness·negative treatment·specialist review dependency | +| V14 보강 | package draft manifest, validation, packet, final seal의 비순환 결속 | + +READY는 V01~V18 전부 PASS하고, `case_type_id` binding·authority·review policy가 해소되며, 기술상태가 일관된 경우에만 부여한다. 실패한 경우에도 법률적으로 가능한 대안, worknote와 review packet은 저장한다. + +--- + +## 11. Phase exit 개정 + +| phase | 개정 exit | +|---|---| +| Phase 0 | `case_type_id` 137 unique/schema/hash, authority·temporal policy, profile manifest, 지정 ACTIO 10종 source receipt, release scope의 독자 필수 명제 disposition, old YAML runtime edge 0. legacy 16종 전수 audit은 비차단 추적 | +| Phase 1 | mock LLM E2E에서 ingress·option·renderer·CE-01/CE-13·state·producer·seal property test PASS | +| Phase 2 | typed S2_10/S2_30, 유류분·사죄광고·동시이행·당사자/title/liability·procedural declaration·ACTIO fixture PASS | +| Phase 3 | release subset의 rule/corpus/crosswalk/case-type binding과 법률가 semantic sign-off; full-137 과장 금지 | +| Phase 4 | current Stage 1 live output, retrieval replay, cache telemetry, adversarial contamination, gold/mutation/metamorphic 전수 | +| Phase 5 | immutable release, loader binding, canary/rollback, 자격 있는 변호사 filing-decision workflow | + +`소가·인지` 계산이 불가능하면 청구권·청구취지·청구원인 draft 자체를 폐기하지 않는다. `filing_metrics=UNEVALUABLE`과 missing operand를 review packet에 남기고 filing-decision READY만 제한한다. + +--- + +## 12. 반드시 보존할 금지규칙 + +1. Stage 1에 없는 사건 사실·증거 창작 금지. +2. 적용시점·부칙 미확정 상태에서 현행법 default 선택 금지. +3. 사건명·group·`case_type_id`에 의한 substantive claim 활성화 금지. +4. case type·rule document fuzzy fallback 금지. +5. binding 충돌을 새로운 청구권으로 자동 증식 금지. +6. 미확정 금액·날짜를 clean pleading의 확정값으로 기재 금지. +7. 의뢰인 no-sue를 법률상 청구권 부존재와 혼동 금지. +8. 사해행위취소 자체의 채무자 피고화 금지. +9. route별 공식 authority 없이 사해행위 원물회복의 귀속주체 또는 주문상 절차이행 상대방을 원고로 고정하는 문형 금지. +10. 제척기간 만료가 확인된 취소청구의 예비적 승격 금지. +11. 강제 사죄·사과광고 atom 금지. +12. 중복회복·claim-option silent loss 금지. +13. rule/corpus가 Stage 1 사실 또는 frozen ReliefPlan을 변경하는 것 금지. +14. 소장 송달 의사표시를 이미 발생한 역사적 사실로 처리하는 것 금지. +15. 실행 가능한 법정수치를 authority/version 없이 Markdown·prompt·Python에 고정하는 것 금지. +16. v.0~v.3 YAML, v2-1 본문 또는 legacy migration asset을 runtime fallback으로 사용하는 것 금지. +17. 법률 불확실성을 이유로 review draft·worknote·packet의 저장을 전역 금지하는 strict no-save 회귀 금지. + +--- + +## 13. 검증 oracle + +최소 acceptance suite는 다음을 포함한다. + +- unsourced fact, 잘못된 evidence ID, 법리 chunk를 사건 사실로 사용한 mutation +- 유류분 신법·구법·형제자매·경계일·청구일/송달일 fixture +- 137 registry zero/multi match, doctrine-topic row, alias drift, hash 변조 +- 동시이행 전·이행제공 후·수령거절 후 지체 fixture +- 기존 호증 seed, 병렬 group 순서 변경, dangling/duplicate exhibit fixture +- 등기 말소·신규 이전·경정·인도·확인·사해행위별 목적물 특정 slot 제거 mutation +- 약정이율·상한·민/상이율·피고별 송달·소촉법 배제·ACTIO-01 기간분할 fixture +- 사해행위 원물회복 귀속=채무자, 가액배상 지급=원고, 배당금채권 양도=채무자, 통지=제3채무자, 주문상 절차이행 상대방의 authority-backed route matrix +- 공유자 1인 제거, 채권양도 통지/확정일자 제거, 책임형태 교환, client no-sue mutation +- 일부청구의 잔부 유보·시효 영향, 채권자대위 급부 recipient fixture +- state aggregation, S2_00 abort, single writer, seal 순환, atomic write failure property test +- cache prefix PII 오염, breakpoint drift, cached-token telemetry 0 회귀 test +- fixture 고유 값이 일반 profile branch로 들어간 mutation + +--- + +## 14. 공식 근거와 미확인 경계 + +이번 취사선택에서 직접 재확인한 핵심 공식 source는 다음과 같다. + +- [민법 제1115조 — 2026-03-17 시행 가액지급·청구일부터 이자](https://law.go.kr/LSW/lsLinkCommonInfo.do?lsJoLnkSeq=1031985365) +- [민법 제764조·헌법재판소 89헌마160 — 강제 사죄광고 위헌](https://www.law.go.kr/lsLinkCommonInfo.do?lsJoLnkSeq=1001851088) +- [민사소송법 — 소송목적의 값과 병합청구](https://www.law.go.kr/법령/민사소송법) +- [민사소송 등 인지규칙](https://law.go.kr/lsInfoP.do?lsId=005771) +- [민사소송 등 인지법 제2조](https://law.go.kr/LSW/lsLinkCommonInfo.do?chrClsCd=010202&lsJoLnkSeq=1020788181) +- [대법원 2017. 4. 27. 선고 2016다279206 — 원물반환은 채무자, 불능 시 가액배상](https://www.law.go.kr/LSW/precInfoP.do?precSeq=184747) +- [대법원 2013. 9. 13. 선고 2013다34945 — 미지급 배당금채권을 채무자에게 양도](https://www.law.go.kr/LSW/precInfoP.do?precSeq=230413) +- [대법원 2026. 5. 11. 자 2024마6174 — 인지규칙 제15조·제18조의2 해석](https://www.law.go.kr/LSW/precInfoP.do?precSeq=621983) +- [OpenAI API — GPT-5.6 prompt caching options·breakpoint·TTL](https://developers.openai.com/api/reference/cli/resources/responses/methods/create) + +다음은 v.3 실제 개정 또는 Phase 0 authority seal 전에 재확인해야 한다. + +1. `2000다66416`의 정확한 공식 판시범위. +2. 대부업법 법률 제20702호 부칙의 계약시점별 적용례. +3. 예정 소가·인지 Markdown의 실제 내용과 기준일 현행 법령·대법원규칙·판례 일치. +4. Stage 1 live output의 evidence/domain/party/object exact schema와 hash chain. +5. 예정 137 registry가 이름·group만 제공하는지 predicate·binding·review policy까지 제공하는지. +6. 137개 row의 법률가 semantic sign-off와 복합·generic·doctrine-topic 행의 정리. + +--- + +## 15. 최종 take-away + +v.3의 골격은 폐기할 필요가 없다. 필요한 것은 더 많은 top-level task나 v2-1 장문의 복원이 아니라, **(1) typed provenance, (2) canonical `case_type_id`, (3) authority-driven temporal·calculation contract, (4) 당사자·목적물·증거·동시이행·절차상 의사표시 계약, (5) 교정된 ACTIO route, (6) option/state/seal 보존, (7) 외부 regression·security·cache 계약**이다. + +이 개정은 단순성과 token economy를 유지하면서도, 대한민국 법률과 실무에 맞지 않는 문안이 `READY_FOR_LAWYER_FILING_DECISION`에 도달하는 경로를 줄인다. 다만 이는 전략 개정안이다. 신규 registry/YAML/Python/module 구현, live Stage 1→2 E2E, 137종 법률가 검수와 filing decision은 별도의 실행·검증 단계다. diff --git a/Case_02_Comparison_Research/plans/stage2-v4-strategy-and-assets.md b/Case_02_Comparison_Research/plans/stage2-v4-strategy-and-assets.md new file mode 100644 index 00000000..4cf99590 --- /dev/null +++ b/Case_02_Comparison_Research/plans/stage2-v4-strategy-and-assets.md @@ -0,0 +1,118 @@ +# Stage 2 v4 전략서와 자산 명세 작성 + +## Objective + +`take_away_from_eval_v.3.md`의 취사선택을 `stage_2_optimal_update_strategy_v.3.md`의 5-task clean-slate 구조에 완전히 흡수하여 v4 전략서·상세 UML SVG·version-free 자산/source 명세를 작성하고, 사용자 지정 횟수의 독립 검증과 증분 개정을 완료한다. + +## Deliverables + +- `YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md` +- `YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4_workflow.svg` +- `YAML_Prompts/2. Stage_2/assets_for_stage_2_v.4.md` +- `YAML_Prompts/2. Stage_2/MEMORY.md` 압축 갱신 + +## Scope and Non-Scope + +- 범위: v4의 전체·상세 DAG, IO, YAML 분류, 단계별 구현·검증 전략, 신규 자산/source inventory와 배포경로. +- 비범위: 실제 workflow YAML·Python engine·registry·rule Markdown·Weaviate collection 구현·배포, live LLM/E2E, 137종 법률가 sign-off, 법원 제출. + +## Known Inputs + +- `stage_2_optimal_update_strategy_v.3.md` +- `eval_stage_2_optimal_update_strategy_v.3.md` +- `take_away_from_eval_v.3.md` +- Stage 2 `MEMORY.md` +- 현행 Stage 1 v.8 산출물 계약과 지정 ACTIO migration source 10종 + +## Material Assumptions + +- 소가 산정 규칙·민사소송 등 인지규칙 Markdown과 137종 canonical `case_type_id` registry는 계획된 production input이며 현재 구현 완료로 간주하지 않는다. +- v4 runtime은 구 Stage 2 v.0~v.3 YAML이나 legacy 자산을 직접 load하지 않는다. +- `case_type_id`는 S2_10 이후 drafting/retrieval/coverage selector이고 substantive claim router가 아니다. +- 모든 배포경로는 version-free canonical path로 제시하며 version은 manifest field/hash/release seal로 관리한다. + +## Questions That Could Change the Outcome + +- v3의 유효한 계약이 v4로 누락 없이 승계되는가. +- takeaway의 2 CRITICAL·22 MAJOR·36 MINOR·15 LOST disposition이 실행 가능한 schema·task·invariant·phase exit에 결속되는가. +- 사용자 예정 자산이 설명 source와 executable contract로 올바르게 분리되는가. +- 자산 inventory가 v4의 모든 named file/source를 정확히 포괄하는가. + +## Workstreams and Dependencies + +1. v3·takeaway·eval·기존 SVG·asset inventory 대조. +2. v4 backbone 설계 및 Markdown/SVG 초안 작성. +3. 독립 sub-agent 2개 병렬 검증 → 증분 개정, 정확히 2회. +4. 최종 v4에서 named assets/sources 추출하여 inventory 초안 작성. +5. 독립 sub-agent 1개 검증 → 1회 증분 개정. +6. 정적 검증, MEMORY 갱신, 결과 기록. + +## Source and Tool Plan + +- 로컬 전략서·평가서·원장을 1차 source로 사용한다. +- 법률 명제는 국가법령정보센터·대한민국 법원의 공식 원문만 authority seal 후보로 사용한다. +- `rg`, `sed`, `wc`, `shasum`, XML parser와 이미지 렌더 검증으로 무결성을 확인한다. +- 모든 편집은 `apply_patch`로 수행한다. + +## Validation Plan + +- v4에 5 task와 정확히 2 LLM task·3 deterministic task가 명시되는지 확인. +- overview DAG, ASCII 상세 DAG, 별도 SVG UML, IO, YAML 표, 단계별 작업이 상호 일치하는지 확인. +- C 2·M 22·m 36·LOST 15의 채택 결과가 contract/validator/fixture/phase에 보존되는지 crosswalk 검증. +- old YAML runtime edge, case-type substantive routing, LLM 산술, strict global no-save, legacy fallback이 0인지 확인. +- asset inventory의 named asset/source coverage, 중복, producer/consumer, version-free path를 검증. +- UTF-8, Markdown fence, SVG XML/render, internal link, whitespace, hash를 검사. + +## Approval Boundaries + +- 요청된 문서·SVG·MEMORY·ExecPlan만 수정한다. +- 외부 DB·서비스·repository remote에는 쓰지 않는다. +- 구현·배포·commit은 수행하지 않는다. + +## Progress + +- [x] AGENTS·MEMORY·workflow·evidence 규칙 확인 +- [x] v3·takeaway·eval·기존 자산 구조 대조 +- [x] v4 Markdown·SVG 초안 작성 +- [x] 검증 round 1: sub-agent 2개 병렬 + 증분 개정 +- [x] 검증 round 2: 동일 2개 sub-agent 병렬 + 증분 개정 +- [x] assets v4 초안 작성 +- [x] asset 검증 1회 + 증분 개정 +- [x] 정적 검증·MEMORY 갱신 + +## Decision Log + +| Date/Stage | Decision | Basis | Consequence | +|---|---|---|---| +| 2026-08-28 / intake | v3를 새로 축약하지 않고 유효 계약을 유지하며 takeaway만 증분 통합 | 대폭 개정에 따른 LOST 15 회귀 경험 | v3→v4 retained/replaced/added ledger를 둔다 | +| 2026-08-28 / intake | SVG는 별도 file artifact로 생성하고 Markdown은 image link만 삽입 | 사용자 content structure | UML source code를 본문에 넣지 않는다 | +| 2026-08-28 / intake | version은 path가 아닌 manifest metadata로 관리 | 사용자 version-free 배포경로 조건 | 모든 신규 runtime path에서 `/v2`, `/v3`, `/v4` segment 제거 | +| 2026-08-28 / round 1 | 외부 review receipt는 S2_40 산출물이 아니라 digest-bound human input으로 분리 | 두 독립 검증자가 동일 도달불능·seal 선후 문제 확인 | S2_40 idempotent wait/resume, commit intent와 post-rename result 도입 | +| 2026-08-28 / round 1 | retrieval config·crosswalk는 새 YAML 2개가 아니라 기존 `requirement_fact_scope.yml`의 closed section으로 둠 | 단순화·token economy와 92 catalog 안정성 | config/snapshot/replay hash는 receipt에 완전 봉인 | +| 2026-08-28 / round 2 | group ID는 C20에서 stable mint하고 content 변경 receipt는 새 DAG attempt로 되돌림 | 두 검증자가 GROUP_LOCAL 시점·review resume의 불변 candidate 모순을 확인 | C35 freeze, SUPERSEDED candidate 보존, S2_20/S2_30 재진입 계약 추가 | +| 2026-08-28 / round 2 | 제1117조 기간 경과 추정과 generic case type을 자동 탈락·catch-all로 사용하지 않음 | 항변·중단/정지·포기·권리남용과 claim-capable predicate가 법률판단을 요구 | digest-bound lawyer disposition과 closed generic predicate를 READY 전제로 둠 | +| 2026-08-28 / asset audit | release 증적은 `stage2_release.json` 내부 signed object로 일원화하고 기존 source inventory를 보완 | 1회 독립 감사에서 Stage 1 logical input, legacy 16, regression source가 누락됨 | 고정 manifest/receipt 10, fixture 동적 family, source/runtime 경계가 명시됨 | + +## Evidence Ledger + +| Claim/Issue | Source or Test | Status | Notes | +|---|---|---|---| +| v3 현행 전략 | `stage_2_optimal_update_strategy_v.3.md` | VERIFIED | 5-task 경계·유효 계약을 v4 retained/replaced/added ledger와 대조 | +| v3 취사선택 | `take_away_from_eval_v.3.md` | VERIFIED | 560행, C2/M22/m36/LOST15 disposition | +| 평가 원장 | `eval_stage_2_optimal_update_strategy_v.3.md`, `evals/stage2_v3/eval_v3_verification_ledger.md` | VERIFIED | v4가 채택한 C·M·m·LOST 처분과 최소 계약 대조 | +| 공식 법률 authority | law.go.kr/scourt official source | VERIFIED_LIMITED | 유류분 전환·사해행위 recipient·사죄광고·인지/소가 source 후보를 공식 원문에서 확인; release 전 A00 재봉인 필요 | +| v4 SVG 렌더 | `stage_2_optimal_update_strategy_v.4_workflow.svg`, `xmllint`, headless Chrome 1600×1900 | VERIFIED | XML well-formed 및 전체 화면 무잘림 확인 | +| 전략 검증 2회 | `evals/stage2_v4/round_1.md`, `evals/stage2_v4/round_2.md` | VERIFIED | 각 회차 독립 법률·architecture sub-agent 2개 병렬 검증 후 incremental revision | +| asset 검증 1회 | 독립 `v4_assets_audit` 결과와 deterministic catalog diff | VERIFIED | 92 YAML·21 Python·12 schema 일치; ACTIO 10·legacy 16 source 수 대조 | + +## Risks and Failure Modes + +- v3의 working contract를 문서 재구성 과정에서 누락할 위험. +- 전략서에 구현 완료·137종 coverage·live E2E를 과장할 위험. +- 자산 logical unit, physical file, source document, run output을 혼동할 위험. +- SVG와 ASCII/IO/YAML 표가 서로 다른 DAG를 표현할 위험. +- version-free 경로 조건을 file versioning과 혼동할 위험. + +## Results and Residual Uncertainty + +완료. 최종 산출물은 전략서 1,507행/112,959 bytes(`6baac7bb…`), SVG 179행/12,859 bytes(`88f98feb…`), 자산 명세 471행/40,855 bytes(`48616d9d…`)다. YAML 92개는 전략서와 자산 명세에서 exact name/class가 일치하며 분류는 LLM-DIRECT 2, LLM-CONTEXT 45, DUAL-CONTRACT 6, NON-LLM-DETERMINISTIC 39다. Python 21개와 schema 12개도 set 차이 0, SVG XML·Markdown fence·UTF-8·trailing whitespace 검사를 통과했다. 이는 설계 완료이며 실제 자산 구현·배포·live E2E·법률가 sign-off 완료 증거는 아니다.