# 요건사실론 1차 드래프트 배치 4 — 10개 사건종류 병렬 생성 ## Objective `요건사실론_1차드래프트_생성_프롬프트_opus_v.3.txt`를 주입 프롬프트로 삼아, 지정된 10개 사건종류 각각에 대해 요건사실론 문서 1차 드래프트를 독립 병렬로 생성한다. ## Deliverables 사건종류_요건사실론문서/ 아래 10개 파일: 요건사실론_분양대금청구_v1.md / 요건사실론_사용료청구_v1.md / 요건사실론_선급금선수금청구_v1.md / 요건사실론_소유권이외의권리설정등기및이전등기청구_v1.md / 요건사실론_소유물방해제거방해예방청구_v1.md / 요건사실론_약속어음금청구_v1.md / 요건사실론_약정금청구_v1.md / 요건사실론_양도약정담보계약해지이관을원인으로한소유권이전등기_v1.md / 요건사실론_양도채권금양수금청구_v1.md / 요건사실론_예금예치금예탁금인출금청구_v1.md 부수: MEMORY.md 사건별 교훈 10건 추가, tmp/rf_draft// 스크래치. ## Scope and Non-Scope - Scope: 파이프라인 2단계(1차 드래프트)만. 10개 사건종류만. - Non-Scope: 자료조사(1단계) 재수행, 평가(3단계), 2차 드래프트(4단계), case_kinds.md의 나머지 127개 leaf, 기존 30개 문서의 개정. ## Known Inputs (preflight 실측) | 사건종류 | case_kind_id | 자료 파일 | 청구취지작성규칙 | |---|---|---|---| | 분양대금 청구 | PROV-022 | _1 | 있음 | | 사용료 청구 | PROV-023 | _1 | 있음 | | 선급금・선수금 청구 | PROV-024 | _1 | 있음 | | 소유권 이외의 권리 설정등기 및 이전등기 청구 | PROV-079 | _1 | 있음 | | 소유물방해제거·방해예방청구 | PROV-097 | _1 | 있음 | | 약속어음금 청구 | PROV-040 | _1 | 있음 | | 약정금 청구 | PROV-041 | _1 | 있음 | | 양도약정・담보계약해지・이관을 원인으로 한 소유권이전등기 | PROV-073 | _1 | 있음 | | 양도채권금・양수금 청구 | PROV-042 | _1 | 있음 | | 예금(예치금・예탁금・인출금) 청구 | PROV-043 | _1 | 있음 | 10건 모두 leaf 137 assert·서수 검산 5건 통과, 매칭 1건 유일. 10건 모두 자료 파일은 _1(gpt) 단일 출처 → v.3 "자료 파일 부분 존재" 경로. ## Material Assumptions - 세션 cwd = prompt_updates_sequential/요건사실론/. - tmp/rf_draft/leaf_id.py는 v.3 코드블록에서 그대로 추출해 배치 시작 전에 배치했다. 각 에이전트는 이 파일을 덮어쓰지 않고 실행만 한다(동시 쓰기 경합 제거). - 사건종류_요건사실론문서/ 는 이미 존재한다(기존 30개 문서 보유). ## Questions That Could Change the Outcome - 단일 출처(_1) 자료만 있으므로 앙상블 병합 검증이 약하다 → 채택 근거를 decisions.md에 남기고 §12.7에 단일 출처 사실을 기록한다. - 외부 조회 상한 (a)60/(b)20에 닿으면 미확정분은 UNKNOWN/UNVERIFIED로 남긴다. 라운드를 늘리지 않는다. ## Workstreams and Dependencies 10개 워크스트림 전부 상호 독립. 스테이지 간 배리어 없음. 공유 자원: MEMORY.md(append-only), tmp/rf_draft/leaf_id.py(읽기 전용), 13판 PDF·골격 v2·case_kinds.md(읽기 전용). ## Source and Tool Plan Workflow tool로 10개 에이전트 동시 기동. 각 에이전트는 v.3 전문을 읽고 실행한다. 각 에이전트의 하위 에이전트 spawn은 금지(v.3 2). ## Validation Plan - 배치 전: leaf ID 10건 검산, 자료·규칙 파일 실재 확인 (완료). - 배치 후: 파일 10개 존재·크기, front matter `---` 짝, §0~§12 절 존재, verification_status 값, MEMORY.md 항목 10건 반영 여부를 오케스트레이터가 직접 확인. - 에이전트 자체 검증: 게이트 S1~S14 + 린트 스크립트, R1~R6 blind 자기심사, 최대 2라운드. ## Approval Boundaries 파일 생성은 사건종류_요건사실론문서/ 와 tmp/rf_draft/ 로 한정. MEMORY.md는 append만. 기존 문서·프롬프트·골격 v2는 수정하지 않는다. ## Progress - [x] v.3 존재 확인, 섹션 구조 파악 - [x] leaf ID·slug 10건 도출·검산 - [x] 자료·규칙 파일 실재 확인 10/10 - [x] ExecPlan 작성 - [x] 10개 에이전트 병렬 실행 (10/10 완료, 에러 0, 약 56분) - [x] 산출물 검증 (파일 10/10, §1~§12 누락 0, MEMORY.md 10/10) - [x] 사용자 보고 ## Decision Log | Date/Stage | Decision | Basis | Consequence | | 2026-09-02 / preflight | leaf_id.py를 배치 전에 1회 생성하고 에이전트는 실행만 | 10개 동시 쓰기 시 파일 truncate 경합 | Stage 0.4(1) 의도(assert 검산)는 유지 | | 2026-09-02 / preflight | MEMORY.md는 `>>` append만 허용, Write/Edit 금지 | Edit는 read-modify-write라 동시 실행 시 유실 | 에이전트가 사본을 tmp에 남겨 사후 복구 가능 | | 2026-09-02 / preflight | worktree isolation 미사용 | 리포에 700MB+ PDF, worktree 10개면 디스크·경로 파탄 | 동일 트리에서 병렬, 충돌은 경로 분리로 회피 | | 2026-09-02 / preflight | 배치 ExecPlan 1개만 작성 | docs/PLANS.md "subagents will be used" 트리거는 오케스트레이터에 걸림. v.3 제약 20은 실행 에이전트에만 적용 | plans/에 사건종류별 문서를 만들지 않음 | ## Evidence Ledger | Claim/Issue | Source or Test | Status | Notes | | leaf ID 10건 유일 매칭 | tmp/rf_draft/leaf_id.py 10회 실행 | 확인 | 전건 assert 통과 | | 자료 파일 10/10 존재 | 사건종류_요건사실론문서자료/ NFC 정규화 대조 | 확인 | 전건 _1 단일 | | 규칙 문서 10/10 존재 | 같은 폴더 NFC 정규화 대조 | 확인 | special_modes 7 미발동 | ## Risks and Failure Modes - MEMORY.md 동시 append 유실 → append-only + tmp 사본 이중화, 사후 대조. - 13판 PDF 동시 pdftotext로 I/O 포화 → 동시 실행 슬롯이 하드웨어 코어 수로 제한되므로 수용. - 에이전트가 하위 에이전트를 spawn → 프롬프트에 하드 금지 명시, 보고에 준수 여부 기재. - 상한 도달로 UNVERIFIED 잔여 → 정상 종료 경로. §12.7에 집계되고 보고에 드러난다. ## Outcome (2026-09-02) 10/10 completed=true, verification_status 전건 QUALIFIED, 수정 라운드 전건 1회(2라운드 미발동), 하위 에이전트 spawn 0건. 산출물 116~187KB, 청구경로 4~7, §6 항변 블록 11~15, 권위 레지스트리 T1 17~63 / T2 13~32, 13판 정독 55~200 표시면(상한 200). 오케스트레이터 직접 검증: 파일 10/10 존재, §1~§12 누락 0, front matter `---` 짝 정상, 코드펜스 짝 정상, MEMORY.md 항목 10/10 반영(111KB→161KB), plans/ 오염 0, leaf_id.py 무변경. ### 상한 초과 2건 (에이전트 자진 보고) - 약속어음금 청구: 일반 조회 61/60 (판례 일련번호 일괄 조회 배치에서 1회 초과) - 양도약정・담보계약해지・이관: 일반 조회 약 66/60 (사건번호 46건 조회에 검색 API 55회) 둘 다 도달 후 조회를 중단하고 잔여를 UNKNOWN으로 §12.7에 남겨 처리 규칙 자체는 준수. ### 교차 수렴 결함 — 골격 v2·게이트 정의 패치 후보 독립 실행된 에이전트 다수가 같은 것을 발견했으므로 우연이 아니다. 남은 97개 사건종류에서 반복된다. 1. **10/10** 골격 v2 제1부 원칙 8(59행)의 "학설 대립은 §12.5에 격리한다"가 제2부 §12 목록(12.5=웹 자료, 12.6=학설)과 모순. 전건이 제2부를 적용. → 원칙 8의 "§12.5"를 "§12.6"으로 정정. 2. **6/10** S9 사건번호 정규식이 조문 표기를 오탐(제202조의2, 제39조의2, 100분의 40). → 한글부가 조·항·호·분·년인 토큰의 배제 규칙을 명문화. 3. **5/10** S10 상호참조 괄호 제목 검사가 헤딩 줄과 §7 총괄표 '소속 절' 셀을 계수. → 헤딩 줄 제외 + 총괄표 셀을 처음부터 '§5(경로별 분기 요건사실)' 형태로 찍는 규약. 4. **4/10** L-c의 13판 표제 대조가 골격 고정 항 제목(3.1 당사자적격, 3.2 확인의 이익)과 H1 문서 제목을 오탐. → 고정 절·항 제목과 H1을 예외 처리. 5. **3/10** S3 빈 항 판정이 하위 헤딩만 가진 컨테이너 항을 빈 항으로 오판. → 다음 헤딩이 하위 레벨이면 내용 있음으로 처리. 6. **2/10** L-b의 이율 검사가 §4.4 기계판독 문언 줄에 걸려 S11(§2.2와 바이트 동일 요구)과 충돌. → 문언 줄을 L-b 대상에서 빼거나, 문언 줄에 이율 수치 대신 법적 명칭 슬롯만 쓰도록 명문화. 7. **S2 사양 모호**: front matter만으로 §0을 만족하는지, `## §0.` 헤딩이 별도로 필요한지 v2가 정하지 않음. 실제로 분양대금청구 1건이 H1+`## §0.` 뒤에 front matter를 두어 `---`가 5행에서 시작(나머지 9건은 1행). 기존 30개 문서에도 같은 변이가 9건 있어 코퍼스 전체(40건 중 10건)에 걸친 문제다. Weaviate 적재(v2 제5부)는 `---`가 파일 첫 바이트일 것을 요구하므로 v2가 위치를 못박아야 한다. ### 각 에이전트가 게이트 스크립트를 매번 새로 고쳐 쓴 사실 10건 모두 초회 게이트 실행에서 다수 FAIL이 났고 그 대부분이 위 2~6의 오탐이었다. 에이전트가 스크립트를 고쳐 재실행하는 데 라운드 1의 상당 부분이 소모됐다. 게이트 스크립트를 v.4에 표준본으로 박아 넣으면 사건종류당 런타임이 눈에 띄게 줄어든다.