# K Law Assistant

> Real-time Korean law lookup skill using Beopmang API v4 (api.beopmang.org). Searches statutes, articles, court cases, and revision history. Converts everyday Korean to legal keywords via keyword-map, verifies legal claims, and falls back to web search for the latest or unsupported data. No API key required. Triggers on Korean law names (민법, 근로기준법, 형법, etc.), legal questions (합법이야, 해도 돼, 처벌, 권리), and statute citations.

- Skill: `rhino-ty/k-law-assistant` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add rhino-ty/k-law-assistant`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rhino-ty/k-law-assistant/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: MIT
- Author: rhino-ty (https://skillmd.com/u/rhino-ty)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rhino-ty/k-law-assistant

---


# Korean Law Skill

**법망 API v4**를 활용해 대한민국 현행 법령을 실시간 조회하는 스킬.

## Base URL
```
https://api.beopmang.org/api/v4/{endpoint}?action={action}&{params}
```

## 지원 법령 범위
| 유형 | 수 | API 지원 |
|------|-----|---------|
| 헌법 | 1 | ✅ |
| 법률 | 1,709 | ✅ |
| 대통령령 | 1,975 | ✅ |
| 총리령·부령 | 1,509 | ✅ |
| 국회 등 헌법기관 규칙 | 379 | ✅ |
| 행정규칙 | 23,829 | ✅ |
| 조약 | 3,596 | ✅ |
| **자치법규(조례)** | 18,842 | ⚠️ 아래 참고 |

---

## ⚠️ 자치법규(조례) 처리 워크플로우

조례 질문이 오면 다음 순서로 처리한다.

### Step 1 — API 지원 여부 먼저 확인
```
law?action=search&q={지역명}+{조례명 키워드}
```
- 결과에 `law_type`이 `조례` 또는 `자치법규`인 항목이 있으면 → **API 지원 시작된 것. 정상 워크플로우로 진행.**
- 결과가 0건이거나 법률/대통령령만 나오면 → Step 2로 이동.

### Step 2 — 웹검색으로 대체
API 미지원 확인 시 web_search 도구로 직접 조회:
```
검색 쿼리 예시:
"서울시 전동킥보드 조례 내용"
"[지역명] [주제] 조례 제N조"
"자치법규 정보시스템 [조례명]"
```

### Step 3 — 결과 안내
응답에 반드시 출처 명시:
- API로 찾은 경우: `법망 API (source_timestamp 날짜) 기준`
- 웹검색으로 찾은 경우: `[출처 사이트] 기준 — 자치법규 정보시스템(elis.go.kr)에서 최신본 확인 권장`
- 둘 다 못 찾은 경우: `자치법규 정보시스템(elis.go.kr)에서 직접 검색하세요.` 안내

---

## 엔드포인트 & 액션

### 1. 법령 검색 — `law?action=search`
| 파라미터 | 설명 |
|---------|------|
| `q` | 법령명 또는 법률 키워드 |
| `mode` | `keyword` (기본값, 항상 사용) |

> ⚠️ `mode=semantic`은 정확도 낮음. 자연어는 반드시 references/keyword-map.md 참고해 법률 키워드로 변환 후 검색.

### 2. 조문 조회 — `law?action=get`
| 파라미터 | 설명 |
|---------|------|
| `law_id` | 법령 ID (**grep 사용 시 필수**) |
| `name` | 법령명 (article 조회 시만 대체 가능) |
| `article` | 조문번호: `3`, `3-2`, `제3조` 모두 허용 |
| `grep` | 조문 텍스트 키워드 검색 — **반드시 `law_id`와 함께 사용** |
| `depth` | `0`=본법만(기본), `1`=시행령 포함, `2`=시행규칙까지 |

> ⚠️ **`grep` + `name` 조합 작동 안 함.** grep 전에 search로 `law_id` 먼저 확보.

> ⚠️ **`from`/`to` 단독 사용 시 overview 반환.** 조문 범위 필요하면 grep 또는 개별 article 호출로 대체.

> ⚠️ **`depth=1` 응답 구조**: 시행령 조문은 `data.enforcement[].articles`에 별도 담김.
```python
본법_조문   = data["articles"]
시행령_조문 = [a for enf in data.get("enforcement", []) for a in enf["articles"]]
```

### 3. 법령 개요 — `tools?action=overview`
법령 전체 구조, 상위 조문, 관련 판례, 계류 의안, 법령 간 인용 관계(xref) 반환.

| 파라미터 | `law_id` 또는 `name` |
|---------|------|

### 4. 판례 검색 — `case?action=search`
| 파라미터 | 설명 |
|---------|------|
| `q` | 법률 키워드 |
| `mode` | `keyword` 권장 (`hybrid` 사용 시 `total` 키 없을 수 있음) |
| `law_id` | 특정 법령 관련 판례만 |
| `article` | 특정 조문 관련 판례만 |

> ⚠️ 응답에 `total` 키 없을 수 있음 → `data.get("results", [])` 로 접근.

### 5. 판례 상세 — `case?action=get`
| 파라미터 | `id` (prec_id) |
|---------|------|

**응답**: `case_no`, `decision_date`, `summary`, `reasoning`, `ref_articles`, `ref_cases`

### 6. 조문 비교 — `tools?action=compare`
| 파라미터 | 설명 |
|---------|------|
| `law_ids` | 비교할 법령 ID (콤마 구분) |
| `articles` | 비교할 조문 (콤마 구분) |

> ⚠️ `regions` 파라미터(자치법규 비교)는 현재 결과 0건. 조례는 위의 조례 워크플로우 사용.

### 7. 개정 이력 — `law?action=history`
| 파라미터 | `q` (법령명 또는 law_id) |
|---------|------|

**응답**: `{law_id, law_name, total, revisions: [{type, new_date, old_date, changed}]}`

### 8. 인용 검증 — `tools?action=verify`
사용자가 말한 법적 주장이 실제 조문과 일치하는지 검증.

| 파라미터 | `q` (검증할 텍스트) |
|---------|------|

**활용**: "전입신고하면 당일부터 대항력" → `exists: false` → 실제 조문으로 교정

---

## 일반 워크플로우

### 기본: 법령명이 명확한 경우
```
1. law?action=search&q={키워드}         → law_id 확보
2. tools?action=overview&law_id={id}    → 구조 파악
3. law?action=get&law_id={id}&article={N}
```

### 키워드 질문: "광고 문자 보내도 돼?"
```
1. keyword-map.md → "광고성 정보", "정보통신망"
2. law?action=search&q=정보통신망
3. law?action=get&law_id={id}&grep=광고성+정보
4. 조문 원문 + 실무 해석
```

### 시행령까지 확인
```
law?action=get&law_id={id}&article={N}&depth=1
→ data.articles (본법) + data.enforcement[].articles (시행령) 분리 파싱
```

### 법적 주장 교정
```
tools?action=verify&q={주장}
→ exists=false → 실제 조문 조회 후 교정
```

---

## 이 스킬이 직접 답하기 어려운 영역

| 영역 | 이유 | 대안 |
|------|------|------|
| 교통사고 **과실비율** | 보험약관·손해보험협회 기준 | 손해보험협회 과실비율 인정기준 안내 |
| 세금 **실제 계산** | 개별 사안 변수 많음 | 조문 안내 후 세무사 상담 권장 |
| **행정해석·유권해석** | 법제처 질의회신 채널 | 법제처 법령해석 포털 안내 |
| 판례 경향 통계 | 개별 조회만 가능 | 개별 판례 요지 제공 |

---

## 응답 작성 규칙

1. 일상어 → references/keyword-map.md 참고, 법률 키워드 변환 후 검색
2. 조문 원문 인용 + 핵심 강조
3. 법령명 + 조문번호 항상 명시: `정보통신망법 제50조 제1항`
4. 실무 의미 함께 설명
5. 관련 판례 있으면 사건번호 + 요지 제시
6. 커버 안 되는 영역은 한계 명시 + 대안 안내
7. 마지막에: "이는 법적 자문이 아니며, 구체적 사안은 변호사 상담 권장"
8. 데이터 출처: `meta.source_timestamp` 날짜 표기

## 오류 처리

- grep은 `law_id` 필수 — name으로 대체 불가
- 검색 결과 없으면 keyword-map.md 참고해 더 짧은 키워드로 재검색
- `case?action=search` → `data.get("results", [])` 로 안전하게 접근
- `depth=1` → `data.enforcement[].articles` 별도 파싱

