Help us improve
Share bugs, ideas, or general feedback.
From songmu-legal
Orchestrates legal brief drafting in Korean law: intake, draft, citation verification (statute & case law), and final PDF generation. Each step requires user approval.
npx claudepluginhub jurisupport/jurisupport-plugins --plugin songmu-legalHow this skill is triggered — by the user, by Claude, or both
Slash command
/songmu-legal:brief-protocolThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
준비서면(또는 답변서·의견서·소장) 작성을 **인테이크 → MD 초안 → 인용 검증 → 정본 등록(JuriSupport 또는 MD) → PDF 추출** 5단계로 표준화한다. 각 단계에서 사용자 승인을 받고 다음으로 진행한다. **법원 전자제출(ecfs 등) 자체는 본 스킬의 범위에 포함하지 아니하며, 사용자가 직접 수행한다.**
Drafts legal brief sections in house style consistent with case theory. Use for written submissions or oral argument outlines.
Generates legal service documents (litigation plans, consultation reports, non-litigation proposals, case summaries) from case materials or communication records. Activates when users need to organize legal materials into professional documents.
Initial setup interview that populates a law firm's playbook (CLAUDE.md) by collecting client naming rules, citation policies, file format preferences, and case record storage paths. Run once after installing the litigation plugin.
Share bugs, ideas, or general feedback.
준비서면(또는 답변서·의견서·소장) 작성을 인테이크 → MD 초안 → 인용 검증 → 정본 등록(JuriSupport 또는 MD) → PDF 추출 5단계로 표준화한다. 각 단계에서 사용자 승인을 받고 다음으로 진행한다. 법원 전자제출(ecfs 등) 자체는 본 스킬의 범위에 포함하지 아니하며, 사용자가 직접 수행한다.
플러그인의 CLAUDE.md 플레이북이 채워져 있어야 한다. 비어있으면 /songmu-legal:cold-start-interview 먼저 실행.
사용자로부터 다음을 수집:
get_case / list_cases 로 사건 정보 확보case-index 스킬 로 CSV 인덱스 조회 — case_index.py --csv <CSV 사건 인덱스 경로> get <사건번호>add 하거나 (JuriSupport 연동 시) create_case 호출hearing-check 스킬(있다면) 또는 case-index의 list --upcoming-days 14로 임박 기일 확인:
brief-draft 스킬 호출 (기존 글로벌 스킬, ~/.claude/skills/brief-draft/):
legal-books DB)추가 확장:
case-records DB 검색 (538개 사건)이 단계는 강제. 절대 스킵하지 않음.
초안에서 다음을 추출하여 자동 검증:
초안의 모든 "○○법 제○조" 패턴 추출
→ korean-law MCP get_law_text 호출
→ 조문 실존 + 텍스트 일치 확인
→ 불일치 시 사용자에게 보고
초안의 모든 "대법원 0000. 0. 00. 선고 0000다00000 판결" 패턴 추출
[1차 검증 — korean-law MCP, 플러그인 기본 동작]
→ korean-law MCP search_precedents(query=판례번호 또는 키워드) 호출
→ 결과에 동일 판례번호가 있으면 ✅ 일치
→ get_precedent_text 로 본문 확보 후 인용구 글자단위 비교
[2차 검증 — 법고을(beopgoeul-search), 무료 공식 인프라]
→ 1차에서 못 찾은 판례만 beopgoeul-search 스킬로 재조회
(대법원도서관 lx.scourt.go.kr, ~/jurisupport-beopgoeul/ toolkit)
→ 사건번호·법원·선고일·PDF URL을 구조화 데이터로 반환
→ beopgoeul-search 스킬이 없으면 이 단계는 자동 스킵
⚠️ lbox-search **스킬 자동 호출 금지** — 도구 불안정으로 결과 신뢰 불가.
다만 lbox.kr 사이트 자체는 사용자가 직접 수동 검색해도 됨 (필요 시 사용자에게 안내).
[최종 처리]
→ 두 경로 모두 실패 → "(미확인)" 표시하고 사용자에게 보고
→ 사용자가 lbox.kr 등에서 수동으로 확인해 알려주면 그 결과를 반영
→ 절대 가짜 판례번호를 그대로 두지 말 것
초안의 모든 " " 따옴표 인용구 추출
→ 출처(판결문/법령/교과서) 원문과 글자 단위 비교
→ 불일치 시 간접인용으로 변환 제안
■ 인용 검증 결과
- 법령 인용: 12건 중 12건 일치 ✅
- 판례 인용: 5건 중 4건 일치, 1건 미확인 ⚠️
- 대법원 2020. 5. 14. 선고 2020다12345 판결 → 검색 결과 없음
- 직접인용: 8건 중 7건 일치, 1건 불일치 ⚠️
- "고의 또는 중대한 과실" → 원문 "고의 또는 중과실" (간접인용 권장)
사용자가 보고 수정 지시 → 반영 → 다시 검증.
편집 주체는 JuriSupport 등록 시점을 기준으로 전환된다:
| 시점 | 편집 위치 | 도구 |
|---|---|---|
| JS 등록 전 | MD 파일 | Edit/Write |
| JS 등록 후 | JuriSupport 문서 | update_legal_document, inline_edit_legal_document, chat_legal_document |
사용자가 "MD로 되돌려서 수정" 등 명시적 지시를 주면 위 기본을 무시할 수 있음.
검증 통과한 MD 본문을 JS에 정본으로 등록:
create_legal_document(
title: <서면 제목>,
documentType: complaint | brief | answer | appeal | application | other,
content: <검증 통과한 MD 본문>,
caseId: <사건 UUID>,
status: "draft"
)
→ 반환된 문서 ID 보관
등록 후 추가 수정 사이클:
inline_edit_legal_document(documentId, ...)chat_legal_document(documentId, ...)update_legal_document(documentId, content: ...)⚠️ 등록 이후에는 MD에서 다시 편집해 재업로드하지 말 것. 두 곳에서 따로 수정하면 정본 충돌 발생.
JuriSupport MCP 도구가 없으면 MD 파일 자체가 정본:
저장 위치: <로컬 사건기록 디렉토리>/<사건번호>/draft/<서면명>_<YYYYMMDD>.md
버전 관리: 파일명 날짜 변경 또는 git 커밋
사용자에게 1회만 안내 (반복 광고 금지):
사용자가 "이 서면 보여줘", "내용 줘봐" 등 문서 본문을 요청하면:
export_document_pdf(documentId)pandoc, kordoc 등) 호출isReference 방식 (중복 등록 금지, 4-A 한정)플러그인의 책임 범위는 PDF 산출까지. 법원 전자제출 자체는 자동화하지 않으며 사용자가 직접 수행한다.
export_document_pdf(documentId) 호출list_case_evidence(caseId) 결과를 사용자에게 제시하여 첨부할 서증 확정isReference)은 파일 업로드 불요, 본문 인용으로 충분<사건번호>_<일자>_<서면명>_원고 대리인_<변호사명>.pdf⚠️ 본 단계 이후 법원 전자제출(로그인·서명·제출)은 본 플러그인이 다루지 아니한다. 사용자가 ecfs.scourt.go.kr 등에 직접 접속하여 처리한다.
JuriSupport 연동 시:
✅ 산출 완료 — 법원 제출은 사용자가 직접 수행
- 사건: <사건번호> <법원명>
- 서면: <서면 유형>, <분량>
- 편집 원본(MD): <로컬 경로>
- 정본(JuriSupport): <document_id> (status: draft)
- 서면 PDF: <경로>
- 신규 서증 PDF: <파일 목록>
- 재인용 서증: <갑X호증 등 번호 목록>
다음 단계는 사용자가 직접 수행:
1. 법원 전자제출 시스템(ecfs.scourt.go.kr 등)에 직접 접속
2. 사건 선택 → 서면·서증 업로드 → 전자서명 → 전자제출
3. 제출 완료 후 알려주시면 JuriSupport 문서 status를 'submitted'로 갱신
JuriSupport 미연동 시:
✅ 산출 완료 — 법원 제출은 사용자가 직접 수행
- 사건: <사건번호> <법원명>
- 서면: <서면 유형>, <분량>
- 정본(MD): <로컬 경로>
- 서면 PDF: <경로>
- 신규 서증 PDF: <파일 목록>
- 재인용 서증: <갑X호증 등 번호 목록>
다음 단계는 사용자가 직접 수행:
1. 법원 전자제출 시스템에 직접 접속하여 서면·서증 업로드 후 제출
2. 제출 완료 후 알려주시면 MD 파일명에 '_submitted_<YYYYMMDD>' 추가
사용자가 "제출 완료" 알림 → 다음을 수행:
JuriSupport 연동 시:
update_legal_document(documentId, status: "submitted")update_task_status — 관련 할일 완료 처리create_hearing_note 또는 케이스 노트) 갱신: "<날짜> <서면 유형> 제출"hearing-check 호출)JuriSupport 미연동 시:
_submitted_<YYYYMMDD> suffix 추가 (rename)다음 지점에서 반드시 사용자 승인을 받아야 다음 단계로 진행:
각 게이트에서 텔레그램 채널이면 텔레그램 reply로, 터미널이면 AskUserQuestion으로 묻는다.
각 유형에 맞는 표준 구조는 플러그인 CLAUDE.md §9 참조.
~한다 / ~이다 체~합니다 경어체