Morphology-Enhanced Korean Argumentation
한국 법률 실무의 관습적인 어휘, 문장 구성과 논리 전개를 재현하는 AI 글쓰기 스킬입니다. AI가 구조를 구상하고 작성·퇴고하며, Python 스크립트가 형태소 기반 문체 측정과 최종 문서 대조를 맡습니다.
AI가 작성하는 법률문서는 미묘하게 실제 법조인이 작성하는 글과 느낌이 다르게 느껴집니다. 사실 실제 법조인들도 그 이유를 설명하기는 정말 어렵습니다.
애초에 법조문부터 실생활에서 쓰는 언어와 오랜시간을 거쳐 멀어져왔고, 법조문의 문장 그 자체도 법의 요소가 되어버려 바꾸기 어려운 문제가 있습니다. 더불어 대부분의 법조인들은 사법연수원 등과 같은 공통적인 교육기관을 거치고 선배들도 같은 교육과정을 거치며 어느정도의 공통적인 글쓰기 관습을 체득합니다.
AI의 한국법 능력은 2026년 현재 그다지 나쁘지않지만 여전히 어색한 이유는 특유의 주장에 대한 균형을 맞추려는 편향에 대한 안전장치, 마치 논리를 설명하듯 설교하는 논리 전개방식, 더불어 영어권 특유의 묘사방식과 비유, 수동태나 나열방식 등에서 나타나는 번역체는 특히나 한국법률과 관련된 문서를 작성할때 약점을 드러내게 만듭니다.
이에 여러 연구에서의 아이디어와 실제 판례에서의 형태소 데이터, 논리 전개방식의 추상화를 통해 한국 고유의 법적사고력, Legalmind를 적어도 표현방법에서는 구현하려 해당 스킬을 작성하였습니다.
더불어 제 첫 법학의 입문을 안내한 민법총칙의 저자이신 곽윤직 교수님을 법학적 사고방식의 정수라고 생각하여, 존경을 담아 해당 스킬의 이름에 참고하였습니다.
제 서재 한켠을 차지하는 노랗게 낡아버린 민법강의 시리즈는, 그 모습과는 반대로 AI시대에 지향해야 할 목표라고 생각하기 때문입니다.
- 쟁점에 맞는 논리 전개 구조를 구상합니다.
- 구조에 따라 내용을 작성하고 의미 단위로 문단을 나눕니다.
- 법리의 근거 판례 원문과 적용 범위를 확인합니다. 근거 확보가 필요한 논리는 검색·확인 후 다시 작성합니다.
- 문체를 측정하고 실무 예문을 참고해 퇴고한 뒤 재측정합니다.
- 서식·첨부·본문을 대조하고 최종 페이지를 확인하여 사용자에게 제출 결정을 요청합니다.
문체 수치는 참고 집단의 분포 안에서 현재 글의 위치를 보여줍니다. AI는 문맥과 의미 보존을 함께 판단하여 수정하거나 유지할 부분을 선택합니다.
같은 사안(부동산 매매계약 해제, 판결문형 판단 부분)을 두고 스킬 없이 작성한 AI 초안과 스킬을 적용하여 퇴고한 글입니다. 설명을 위해 만든 예시이며 판례 근거 확인 단계는 생략했습니다. 문체 재현 효과의 통계적 입증은 아닙니다.
스킬 없음
원고와 피고는 2024년 3월 5일 이 사건 아파트에 대한 매매계약을 체결하였다. 계약에 따르면 피고는 잔금 지급일인 2024년 5월 31일에 소유권이전등기에 필요한 서류를 원고에게 제공해야 했다. 그러나 원고가 잔금을 준비했음에도 불구하고, 피고는 서류를 제공하지 않았다. 원고는 6월 10일에 내용증명을 보내서 7일 이내에 이행할 것을 요구했지만, 피고는 이에 응답하지 않았다.
이러한 상황에서 원고는 계약을 해제할 수 있다. 민법 제544조는 채무자가 이행을 하지 않는 경우, 채권자가 상당한 기간을 정하여 최고한 후 계약을 해제할 수 있다고 규정하고 있기 때문이다. 물론 피고에게 이행하지 못한 정당한 이유가 있었을 가능성도 배제할 수는 없다. 하지만 피고는 지금까지 그러한 사유를 전혀 제시하지 않았다. 따라서 원고의 해제는 유효한 것으로 판단되며, 피고는 원고에게 이미 지급된 계약금과 중도금을 반환하고 그로 인해 발생한 손해를 배상할 책임이 있다고 볼 수 있다.
스킬 적용
살피건대, 원고와 피고 사이에 2024. 3. 5. 이 사건 아파트에 관하여 매매대금을 5억 원, 잔금 지급기일을 2024. 5. 31.로 정한 매매계약이 체결된 사실, 원고가 위 잔금 지급기일에 잔금을 지급할 준비를 마치고 피고에게 소유권이전등기에 필요한 서류의 교부를 요구하였음에도 피고가 이에 응하지 아니한 사실, 원고가 2024. 6. 10. 피고에게 2024. 6. 17.까지 위 서류를 교부할 것을 최고하는 내용증명우편을 발송하여 그 무렵 피고에게 도달하였으나 피고가 위 기간이 경과하도록 이를 이행하지 아니한 사실은 갑 제1 내지 4호증의 각 기재에 의하여 이를 인정할 수 있다. 부동산 매매계약에서 매도인의 소유권이전등기의무와 매수인의 잔금지급의무는 동시이행의 관계에 있으므로, 매수인이 자기 채무의 이행을 제공하고 상당한 기간을 정하여 그 이행을 최고하였음에도 매도인이 이를 이행하지 아니한 때에는 매수인은 민법 제544조에 따라 매매계약을 해제할 수 있다 할 것인바, 원고가 2024. 7. 1.자 준비서면의 송달로써 이 사건 매매계약을 해제한다는 의사를 표시한 이상 이 사건 매매계약은 같은 날 적법하게 해제되었다고 할 것이다.
피고는 이에 대하여 아무런 주장·입증을 하지 아니하고 있다. 그렇다면 피고는 원고에게 민법 제548조에 따른 원상회복으로서 원고로부터 지급받은 계약금 및 중도금 합계 2억 원과 이에 대하여 각 지급받은 날부터의 법정이자를 반환하고, 아울러 민법 제551조에 따라 위 해제로 인하여 원고가 입은 손해를 배상할 의무가 있다.
달라진 점은 다음과 같습니다.
- 전개: 사실 인정 → 법리 → 포섭 → 결론의 순서(P01 요건별 포섭)로 고정했습니다. "물론 ~ 가능성도 배제할 수 없다"처럼 양쪽 균형을 맞추는 문장과 "~하기 때문이다"의 설명조를 없애고, 상대방 주장의 부재는 "아무런 주장·입증을 하지 아니하고 있다"로 처리했습니다.
- 문장: 인정 사실을 "~한 사실, ~한 사실은 … 인정할 수 있다"로 병렬 연결하고 증거 표시(갑 제1 내지 4호증)를 붙였습니다. 법리와 포섭은 "~할 것인바, ~한 이상 ~할 것이다"의 복문으로 잇습니다.
- 어휘: "이행하지 않았다 → 이행하지 아니한", "요구 → 최고", "반환 → 원상회복", "2024년 3월 5일 → 2024. 3. 5."처럼 실무 관습에 맞췄습니다.
style_check.py로 두 글을 민사 참고 분포와 대조한 결과입니다. 괄호 안은 참고 집단 안에서의 위치(백분위)입니다.
| 지표 | 참고 중간값 (중간 절반 범위) | 스킬 없음 | 스킬 적용 |
|---|---|---|---|
| 문장당 글자 수 | 220 (158~252) | 53 (0%) | 191 (38%) |
| 문장당 연결어미 | 7.2 (4.5~9.3) | 1.9 (0%) | 6.8 (41%) |
| 문장당 쉼표 | 2.3 (1.2~3.0) | 0.4 (0%) | 1.8 (41%) |
스킬 적용본의 첫 초안은 판단 부분 전체가 한 문장(383자, 95% 위치)이어서 측정 신호에 따라 두 문장으로 나눈 뒤 재측정한 결과입니다. 반복 비율은 이 정도 길이의 짧은 글에서는 의미가 없어 표에서 제외했습니다.
실제 사건에 적용한 결과는 examples/real-case-complaint.md에 있습니다. 작성자 본인 사건의 소장(주식명의개서절차이행청구)과 스킬 적용본을 날짜·수량·기관명까지 모두 지운 재구성본으로 문단별로 나란히 놓고, 판례 근거 게이트·문체 측정·형식 게이트를 거친 과정과 남은 확인 항목을 기록했습니다. 원 소장에 빠져 있던 요건사실(회사 성립 후 6개월 경과)과 증거 연결이 어떻게 보충되었는지 볼 수 있습니다.
Claude Code의 개인 스킬 폴더에 설치합니다.
git clone https://github.com/EESIZ/meka_gwak.git ~/.claude/skills/meka-gwak프로젝트에서만 사용할 때는 대상 프로젝트의 .claude/skills/meka-gwak에 복제합니다. Codex에서는 ~/.codex/skills/meka-gwak을 사용합니다.
Python 3.10 이상이 필요합니다. 사용자 작업 폴더에 가상환경을 만들고 설치된 스킬의 requirements.txt로 의존성을 설치합니다. 운영체제별 실행 경로와 명령은 실행 방법에 있습니다.
Claude Code에서는 /meka-gwak과 함께 사건 자료, 문서 종류, 제출처와 확보한 판례를 전달합니다. Codex에서는 $meka-gwak을 지정합니다.
형태소 분석기 설치 없이 스크립트만 쓰려면 GitHub Packages의 이미지를 사용합니다. 본문 파일이 있는 폴더를 /work에 연결하면 결과 파일도 그 폴더에 저장됩니다.
docker run --rm -v "$PWD:/work" ghcr.io/eesiz/meka_gwak style check draft.txt --domain civil --document-type judgment --output style-before.json
docker run --rm -v "$PWD:/work" ghcr.io/eesiz/meka_gwak style examples --domain civil --document-type judgment --query "요건 사실 판단" --limit 2
docker run --rm -v "$PWD:/work" ghcr.io/eesiz/meka_gwak format final.docx --body body.txt --form form.json --output format.json
docker run --rm ghcr.io/eesiz/meka_gwak testLinux에서 결과 파일의 소유자를 현재 사용자로 두려면 --user "$(id -u):$(id -g)"를 붙입니다. 이미지는 main 브랜치에 스크립트·데이터 변경이 올라올 때 워크플로가 다시 만들어 latest 태그로 올립니다. 작성 지침(SKILL.md)과 AI 판단 단계는 이미지에 포함되지 않으며, 이미지는 도구 실행만 담당합니다.
| 경로 | 역할 |
|---|---|
| SKILL.md | 작성 순서와 AI 판단 지침 |
| references/logic.md | 논리 전개 방식과 적용 범위 |
| references/format.md | 서식 및 첨부 확인 방법 |
scripts/style_check.py |
형태소·문장 특성 측정, 예문 검색, 수정 전후 대조 |
scripts/format_check.py |
필수 항목·첨부·최종 본문 대조 |
data/ |
문체 참고 분포와 예문 |
| sources/ | 데이터 출처와 구축 범위 |
tests/ |
스크립트 회귀 테스트 |
| Dockerfile | 도구 실행용 컨테이너 이미지 정의 |
| examples/ | 적용 사례(재구성·비식별) |
수치 분포는 분야별 법률문서의 공통 참고값입니다. 판결문·소장·준비서면·의견서에 같은 분야의 분포를 적용합니다. 종결어미 자체는 측정하지 않지만, 경어체 전환은 문장 길이 등 측정값에 영향을 줄 수 있습니다. 문장당 글자 수는 측정·참고 위치는 유지하되 우선 퇴고 신호에서는 제외되는 약한 참조이며, 길이 자체를 이유로 문장을 나누거나 합치지 않습니다. 현재 분포는 민사·행정 판결문에서 계산했고, 형사처럼 분야 분포가 없는 경우에는 모든 분야를 합산한 분포를 사용합니다. 어휘 참고에서 당사자·기관 지칭과 상고심 전용 관용구는 제외했으며, 분야별 용어 차이의 반영은 이후 과제입니다.
스크립트는 문체 측정과 기계적 대조를 담당합니다. 판례 검색·법리 검토, 의미 보존 확인과 최종 페이지 검토는 AI 및 사용자가 수행합니다. 문체 재현 효과는 별도 사건과 일반 AI 대조군을 이용한 실험으로 평가할 대상입니다.
의존성을 설치한 Python으로 저장소 루트에서 실행합니다.
python -m unittest discover -s tests -v배포 준비 과정에서 Windows / Python 3.12 환경의 56개 테스트(분야 공통 참고값·어휘 제외·길이 참조 조정 후 62개)와 실제 DOCX·PDF 대조를 확인했습니다. 이 결과는 도구 동작의 검증이며, 법률적 정확성이나 문체 재현 효과의 통계적 입증은 별도 평가 범위입니다.
코드는 MIT 라이선스를 따릅니다. 예문과 참고값의 출처는 출처 기록에서 확인할 수 있습니다. 이 이름은 독립 프로젝트의 명칭입니다.