legalcheck
install
source · Clone the upstream repo
git clone https://github.com/jeongsuho-lawyer/legalcheck
Claude Code · Install into ~/.claude/skills/
git clone --depth=1 https://github.com/jeongsuho-lawyer/legalcheck ~/.claude/skills/jeongsuho-lawyer-legalcheck-legalcheck
manifest:
SKILL.mdsource content
LegalCheck
Legal check for Korean vibe coders. 법무법인 르네상스 제공.
이 스킬이 제공하는 것
- 14개 전문자격사법의 구성요건·조문·판례를 체계화한 YAML 룰셋 (할루시네이션 없는 법적 근거)
- 프로젝트 전체를 빠짐없이 훑는 결정론적 스캐너 (매번 동일한 결과)
- 구성요건별 관련 규정 참고 (해당 조문의 구성요건에 관한 참고 사항)
실행 프로토콜
Step 1: 스캔 실행
python ${CLAUDE_SKILL_DIR}/scripts/scan.py $ARGUMENTS --output-format json --include-low
$ARGUMENTS가 비어 있으면 현재 작업 디렉토리를 스캔합니다.
의존성 미설치 시:
pip install pyyaml jsonschema tree-sitter tree-sitter-typescript tree-sitter-javascript
Step 2: .legalcheckrc 확인
프로젝트 루트에
.legalcheckrc 파일이 있으면 읽습니다:
# .legalcheckrc — 프로젝트 선언 operator: type: 법무법인 # 변호사, 의사, 세무사, 공인중개사, 수의사 등 name: 법무법인 XX skip_domains: - lawyer-act # 자격자 운영이므로 해당 직역 스킵
.legalcheckrc에 선언된 skip_domains의 finding은 "자격자 운영 확인됨"으로 제외합니다.
Step 3: 코드 검증 (이 단계가 핵심)
스캐너는 regex+AST 패턴 매칭이라 오탐이 있습니다. 각 finding에 대해 아래 검증을 수행합니다.
HIGH 판정 검증
각 HIGH finding의 evidence 파일을 실제로 Read하여 확인:
| 체크 | 방법 | 결과 |
|---|---|---|
| 서비스 로직인가? | 매칭 파일을 Read → API 라우트/컴포넌트/프롬프트인지 확인 | 학습데이터·테스트·주석이면 오탐 |
| 입력→출력 경로 존재? | 사용자 입력 폼 → LLM/로직 → 단정적 결론 출력 흐름이 실제 있는지 | 경로 없으면 오탐 |
| 자격자 운영인가? | README/package.json에 변호사·의사·세무사 등 자격 표시 | 자격자면 해당 직역 제외 |
| Type B(의료·수의·약사) 확인 | 무료여도 HIGH 유지. "면책고지만으로 면제 안 됨" 명시 | 면책고지 있어도 HIGH 유지 |
MEDIUM 판정 검증
| 체크 | 방법 |
|---|---|
| 유상성 추가 시 HIGH 가능? | 결제 모듈 미탐지이지만, 향후 유료화 시 위험 경고 |
| 실질적 서비스인가? | 학습 프로젝트/포트폴리오면 실제 위험도 낮음 (사용자에게 전달) |
검증 결과 표기
[스캐너: HIGH] [코드 검증: ✅ 확인됨 — src/api/diagnose.ts에서 증상→진단 경로 존재] [스캐너: HIGH] [코드 검증: ⚠️ 오탐 가능 — 매칭 파일이 테스트 코드] [스캐너: MEDIUM] [코드 검증: ⚠️ 유료화 시 HIGH — 현재 결제 없음]
Step 4: 리포트 작성
HIGH (확인됨) 리포트 형식
## ⚠️ [법령명] [조문] — [룰 이름] ### 적용 법령 **[법령] [조문]** — [형량] ### 구성요건 충족 여부 | 요건 | 충족 | 증거 | |------|------|------| | ... | ✅/❌ | 파일:라인 — 코드 스니펫 | ### 코드 검증 결과 [Read로 확인한 실제 코드 맥락 설명] ### 판례 근거 > [판례번호] — [판시 요지] ### 관련 규정 참고 1. [해당 조문의 구성요건에 관한 참고 사항] 2. [관련 판례·조문 참고] ### 참고 사항 - [파일:라인] — [참고 사항]
SAFE 리포트 형식
## ✅ [법령명] — 안전지대 확인 [왜 안전한지 근거] - [A-특례] 상담·자문은 업무제한 대상에서 명시적 제외 - 서류 작성·제출 대행 기능 미탐지
깨끗한 프로젝트
## ✅ 전문자격사법 위반 소지 없음 스캔 결과 14개 자격사법에 해당하는 패턴이 탐지되지 않았습니다.
Step 5: 대화형 확인 (필요 시)
스캐너 결과만으로 판단이 어려운 경우 사용자에게 질문합니다:
- "이 프로젝트의 운영자가 [변호사/의사/세무사] 자격이 있나요?"
- "src/billing.ts의 결제 기능이 실제로 활성화되어 있나요?"
- "이 프로젝트는 실제 서비스인가요, 학습용/포트폴리오인가요?"
답변에 따라 판정을 조정합니다. 조정 사항은 리포트에 명시합니다.
판정 등급
| 판정 | 의미 |
|---|---|
| HIGH | 처벌 구성요건 충족 소지 — 즉시 검토 필요 |
| MEDIUM | 일부 요건 충족 — 유료화·기능 확장 시 HIGH 가능 |
| LOW | 잠재 위험, 참고 수준 |
| SAFE | 안전지대 확인됨 (A-특례 등) |
절대 금지
- "적법하다" "위법하다" 확정 판단 금지 → "구성요건 충족 소지가 있다"
- 스캐너 JSON에 없는 판정을 새로 만들지 않음
- 코드 검증으로 오탐을 제거할 수는 있지만, 없던 위험을 추가하지 않음
면책 고지
모든 응답 말미에 반드시 삽입:
본 리포트는 LegalCheck의 패턴 매칭 + 코드 검증 결과이며, 법률자문이 아닙니다. 개별 사안의 적법성 판단은 변호사 상담이 필요합니다. 제공: 법무법인 르네상스 정수호 대표변호사 | shj@lawren.co.kr | https://lawren.co.kr