법령검토 · git:20261019.b4e6045 · 2026-10-19 · sha256 1797eb6808b570fd
법령검토 git:20261019.b4e6045B
Immutable. This exact content never changes and is served at /api/v1/blob/1797eb6808b570fd.
---
name: 법령검토
description: 한국 법령(세법, 민법, 상법, 외감법, 자본시장법, 주택법 등)과 고시·판례·해석례를 조회해 근거 조문을 확정할 때 쓴다. 세법은 TaxDoctor 와 korean-law 두 곳의 원문이 같을 때, 다른 법은 korean-law 원문과 law.go.kr 링크가 있을 때 ★★★ 근거로 쓴다. "법령검토", "조문 찾아줘", "근거 조문", "법령 조회", "법령 리서치", "민법 몇 조", "상법 조문", "판례 찾아줘", "법령해석례", "부칙 확인", "시행일", "적용례", "위임 조문", "시행령 몇 조", "고시 확인", "TaxDoctor 보완", "최신화 점검", "최신 개정 반영됐나", "개정안 확인"이 언급되면 쓴다. 다른 스킬(양도소득세 등)이 법령을 조회할 때도 이 방법을 따른다.
---
# 법령검토: 근거 조문을 원문으로 확인한다
예전 이름은 법령조회다(2026-10-19 에 바꿨다). 예전 주소 `skills/법령조회` 에는 이 폴더로 가는 안내만 남아 있다.
모든 한국 법령의 조문을 찾아 원문으로 확인하는 방법을 다룬다. 세법뿐 아니라 민법·상법 같은 법도 같은 순서로 본다. 무엇을 검토할지(쟁점, 회신 양식)는 사용자나 부르는 스킬이 정한다.
이 스킬은 **다른 판·다른 법의 조문을 근거로 쓰는 실수**, **조회하지 못한 것을 없는 것으로 적는 실수**, **기준일에 맞지 않는 판을 쓰는 실수**를 막는다.
## 준비 (처음 한 번)
연결 확인에서 도구가 없으면 조회를 멈추고 이 절을 사용자에게 보여 준다.
| 필요한 것 | 언제 | 없으면 |
|---|---|---|
| korean-law 법령 서버(법제처 OPEN API 인증값 OC 필요) | 늘 | 조회할 수 없다 |
| TaxDoctor 커넥터 | 세법을 볼 때 | 세법 조문이 ★★☆ 까지만 된다 |
| Node.js 18 이상 | korean-law 서버 | 서버가 뜨지 않는다 |
| 파이썬 3.10 이상 | 최신화 점검 스크립트 | 판 목록 대조와 국회 의안 검색을 못 한다 |
1. **설치 스크립트.** 스킬 폴더와 korean-law 서버(`~/.claude/mcp/korean-law`)를 함께 넣는다. 윈도우 PowerShell 은 `irm https://raw.githubusercontent.com/hany202507/finance-ai-skills/main/install.ps1 | iex`, 맥·리눅스는 `curl -fsSL https://raw.githubusercontent.com/hany202507/finance-ai-skills/main/install.sh | sh`
2. **법제처 OPEN API 인증값(OC).** `open.law.go.kr` 회원가입 → 「OPEN API 신청」에서 활용신청을 한다. 승인까지 하루 이틀 걸린다. OC 는 가입 아이디다(이메일이 `hong@gmail.com` 이면 `hong`)
- 신청 화면에서 법령 본문·부칙, 행정규칙, 판례·법령해석례·헌재결정례, 별표·서식, 조세심판원 결정례를 모두 체크한다. 좁게 신청하면 오류 없이 0건이 나온다
- IP 칸이 있으면 쓰는 PC 의 공인 IP 를 넣는다. 2026-07 법제처 답변으로는 아이디로 호출한다고 하니 신청 화면 안내를 따른다. 문의는 02-2109-6446
3. **korean-law 등록.** 경로는 절대경로로 적는다. `~` 를 쓰면 연결이 안 된다
```bash
claude mcp add -s user korean-law -e LAW_OC=<본인OC> -- node "<홈 폴더 절대경로>/.claude/mcp/korean-law/index.js"
```
데스크톱 앱만 써서 `claude` 명령이 없으면 홈 폴더의 `.claude.json` 파일 `mcpServers` 에 넣는다.
```json
"korean-law": {
"type": "stdio",
"command": "node",
"args": ["<홈 폴더 절대경로>/.claude/mcp/korean-law/index.js"],
"env": { "LAW_OC": "<본인OC>" }
}
```
4. **TaxDoctor(세법을 볼 때).** `taxdoctorai.com` 에서 무료 가입한 뒤 클로드 설정 → 커넥터 → 커스텀 커넥터 추가에 `https://mcp.taxdoctorai.com/mcp` 를 넣는다. 터미널에서는 `claude mcp add --transport http taxdoctor https://mcp.taxdoctorai.com/mcp`
5. **확인.** 앱을 껐다 켜고 「민법 제162조 원문 찾아줘」를 묻는다. 법령명·시행일·`law.go.kr` 링크가 나오면 된다
## 빨리 끝내는 원칙
- 결론에 쓸 조문만 연다. 법 전체를 읽지 않는다(`get_law_text` 에 `article` 을 준다)
- 응답이 긴 도구는 좁혀 부른다. `get_addenda` 는 `since`, `amendment_track` 은 `display`, 판례 검색은 `display` 3~5
- 서로 기다리지 않는 조회(두 출처의 같은 조문, 여러 법령의 판 목록)는 한 메시지에서 함께 부른다
- 정해진 사이트는 스크립트로 부른다(판 목록 `freshness_check.py`, 국회 의안 `bill_search.py`). 웹 검색은 나머지(입법예고, 고시 첨부)에만 몇 번 안에서 쓴다
## 출처
| 법 | 원문 1차 | 대조 | 해석 |
|---|---|---|---|
| 세법 | TaxDoctor `get_article` | korean-law `get_law_text` 같은 판 | 조세심판원·국세청 예규(korean-law `search_rulings`), 판례(TaxDoctor `search_cases`) |
| 세법이 아닌 법(민법, 상법 등) | korean-law `get_law_text` | 법제처API(위가 실패할 때) | 판례·법제처 해석례·헌재 결정(korean-law `search_decisions` → `get_decision`) |
| 고시·공고 | 법제처 행정규칙 연혁 | 관보 `gwanbo.go.kr` | 소관 부처 공고 |
- TaxDoctor 는 세법 90개만 싣는다. 민법·상법·주택법 등은 없다
- 법제처API 는 `mcp.gomdori.app/law`(`get_law_text`, `get_annexes`)다. 별표 표(HTML)와 행정규칙 첨부도 여기서 본다
- 웹은 법령 원문을 대신하지 않는다
첫 조회가 응답하면 연결 확인으로 친다. ToolSearch 로 korean-law 도구를 찾지 못하면 위 「준비」 절을 안내하고 멈춘다. 첫 조회가 실패하면 korean-law `search_law(법령명)`, TaxDoctor `list_laws` 로 서버가 살아 있는지 본다. 둘 다 응답하지 않으면 웹으로 잠정 조사하고 결과 첫 줄에 「법령 원문 미검증」을 적는다. TaxDoctor 가 없는 사용자는 세법도 korean-law 가 1차다.
도구 이름이 `mcp__<id>__get_article` 꼴이고 세션마다 id 가 다르다. ToolSearch 로 `get_article search_tax`, `korean-law` 를 검색해 이름을 확인한다.
## 질문별 도구
| 알고 싶은 것 | 먼저 | 이어서 | 주의 |
|---|---|---|---|
| 이 조문의 원문 | 위 「출처」 표의 원문 1차 | 세법은 korean-law 같은 판 | 머리줄 법령명이 요청과 정확히 같은지 본다 |
| 내용으로 조문 찾기 | korean-law `scan_articles` | 세법은 TaxDoctor `search_tax` | `search_law` 는 법령명 전용이라 내용 키워드로 찾으면 0건이 나온다 |
| 언제부터 적용되나 | korean-law `get_addenda(keywords=["적용례","경과조치"], since=…)` | 세법은 TaxDoctor `search_tax` 의 `as_of` | 적용 시기는 부칙에만 적혀 있다. 결과가 비어도 「부칙 없음」으로 적지 않는다 |
| 위임 받은 하위 조문 | korean-law `trace_references` | 세법은 TaxDoctor `get_article` 위임 목록과 합친다 | TaxDoctor 위임 목록에서 조문이 빠질 때가 있다(소득세법 제95조 → 시행령 제159조의4) |
| 과거·미래 시점 조문 | korean-law `get_law_text(effective_date)` | 세법은 TaxDoctor `search_tax(as_of)` | 그 날 시행 중인 판을 읽는다. 기준일이 오늘 뒤면 시행예정 판이 나온다 |
| 판 목록·시행예정 개정 | korean-law `amendment_track` | 세법은 TaxDoctor `list_upcoming` | TaxDoctor 시행예정 본문은 약 2,000자에서 잘린다. 참고로만 쓴다 |
| 판례·해석례(세법이 아닌 법) | korean-law `search_decisions(domain="prec"·"expc"·"detc")` | `get_decision` | 제목(사건명·판시 한 줄)만 검색되고 최신순이다. 사건번호를 알면 사건번호로 찾는다. 병합 사건은 한 번호로만 걸릴 때가 있다(「2016다244224, 244231」은 「2016다244231」로만 나왔다). 모르면 웹 검색 한 번으로 사건번호를 찾고 본문은 `get_decision` 으로 읽는다. 「자기주식」 같은 넓은 낱말은 세무 사건이 앞에 깔린다 |
| 세법 해석·쟁점 | korean-law `search_rulings` → `get_ruling(source="tribunal")` | TaxDoctor `search_interpretations`·`search_cases` | 심판례는 본문이 온다. 예규는 목록만 오므로 국세법령정보시스템 링크를 열어 본문을 읽은 것만 인용한다 |
| 별표·서식 | TaxDoctor `get_annex`(세법) | 법제처API `get_annexes`, korean-law `search_forms` | 서식 란 번호는 원본 PDF·HWP 로 확인한다 |
| 고시·공고 | 법제처 행정규칙 연혁 | 관보 검색 | 지역 목록은 첨부 PDF 에만 있다 |
## 대조 규칙과 등급
| 등급 | 조건 |
|---|---|
| ★★★ | 세법 조문: 원문을 TaxDoctor 와 korean-law 두 곳에서 읽었고 같은 판이다. 세법이 아닌 법의 조문과 부칙: korean-law 원문을 읽고 law.go.kr 링크를 받았다 |
| ★★☆ | 세법 조문을 한 곳에서만 읽었다. 또는 2차 자료(보도자료, 해설)로만 확인했다 |
| ☆ | 확인하지 못했다 |
- 판례·심판례·해석례는 `get_decision`·`get_ruling` 으로 본문을 읽고 사건번호·선고일을 적었으면 ★★★, 목록·제목만 봤으면 ★★☆ 다. 도구가 링크를 주지 않으면 URL 에 「도구가 주지 않음」을 적고 링크를 만들지 않는다. 예규는 본문 링크를 열어 읽은 것만 ★★★ 다
- 결론에 쓰는 조문은 ★★★ 이어야 한다. ★★☆ 나 ☆ 가 하나라도 있으면 그 등급을 결론 옆에 적는다
- 두 곳이 같은 판인지는 `MST@시행일` 로 본다. TaxDoctor 원천 스냅샷 `moleg-eflaw:<MST>@<시행일>` 이 korean-law 머리줄의 `MST`·`시행일` 과 같아야 한다
- 기준일이 오늘 뒤면 TaxDoctor 는 시행예정 판 본문을 다 주지 않는다. 두 곳 대조는 오늘 판으로 하고, 기준일 판은 korean-law 로 읽어 결론 조문이 오늘 판과 같은지 본다. 같으면 ★★★, 다르면 기준일 판 문장은 ★★☆ 다
- 원문이 다르면 쓰지 않고 그 사실을 보고한다. 어느 쪽이 맞는지 추측하지 않는다
- URL 은 도구가 준 것을 그대로 옮긴다. 직접 만들지 않는다
## 절차
1. **연결 확인.** 위 「출처」 표 아래 문단대로 한다
2. **조문 특정.** 질문이나 부르는 스킬이 조문을 이미 댔으면 건너뛴다. 모르면 쟁점 키워드로 `scan_articles` 를 돌린다. 그 법의 법률·시행령·시행규칙을 함께 넣고, 세법이면 조세특례제한법도 넣는다. 「훑기 실패」가 나온 법령은 「확인 불가」로 적는다
3. **원문.** 기준일에 시행 중인 판을 읽는다. 기준일은 사건 날짜(양도일, 계약일 등)다. 과세기간·사업연도를 물으면 그 기간 끝 날, 둘 다 없으면 오늘이다. 세법은 같은 판을 TaxDoctor 와 korean-law 에서 읽는다. 항·호·목까지 좁혀 인용한다
4. **조문 끝까지 읽기.** 단서, 괄호, 「다만」, 「각 호의 어느 하나」, 표 안의 목을 빼지 않는다. 같은 조 안에서 놓치는 일이 가장 잦다
5. **부칙.** 결론 조문이 기준일 1년 안에 개정됐거나, 쓴 판이 오늘 판과 다르면 `get_addenda(since=…)` 로 적용례·경과조치를 본다. 둘 다 아니면 건너뛴다. 조문의 판정 기준일과 부칙의 적용 기준일은 다를 수 있다
6. **위임.** 결론의 숫자·요건이 하위 조문에서 정해질 때만 연다(예: 「대통령령으로 정하는 요건」이 결론을 가를 때). `trace_references` 로 찾고, 세법은 TaxDoctor 위임 목록과 합친다. 「풀지 못한 모호참조 N건」으로 보고된 참조는 본문을 직접 읽는다. 열지 않았으면 보고에 「위임 조문 미확인: 시행령 제N조」 한 줄을 적는다
7. **인용된 조문.** 결론 문장의 뜻이 인용된 조문에서 정해질 때만 연다. 같은 법 안의 조문도 마찬가지다(예: 상법 제341조의 배당가능이익은 제462조제1항). 다른 법은 korean-law 에서 연다. 부르는 스킬에 `법령별칭.json` 이 있으면 그것부터 본다. 머리줄에 「옛 이름이다」가 붙거나 「개칭·폐지됐을 수 있다」로 실패하면 별칭 파일에 더할 항목으로 보고한다
8. **해석.** 세법은 조세심판원부터 보고, 예규는 과세관청 입장 확인에 쓴다. 세법이 아닌 법은 대법원 판례와 법제처 법령해석례를 본다. 조문과 어긋나면 `[불일치]` 로 남긴다
9. **최신화 점검.** 아래 「최신화 점검」대로 한다
10. **인용 전수검증.** 결과에 쓴 조문번호·사건번호를 전부 뽑는다. 모두 이번 조회에서 도구 응답으로 읽은 것이고 넷 이하면, 반환 형식의 발췌가 도구 응답 문장과 같은지 직접 대조하고 끝낸다. 다섯 이상이거나 도구로 읽지 않고 적은 인용이 있으면, 초안을 보지 않은 서브에이전트에게 번호와 「이 취지로 인용했다」 한 줄만 주고 원문과 맞는지 판정받는다. 판정은 `일치` / `불일치(무엇이)` / `존재하지 않음`. 존재하지 않는 인용은 지운다
## 최신화 점검
두 곳 대조는 문구가 같은지만 본다. 기준일에 맞는 판인지와 개정안이 있는지는 따로 본다. 몇 분 안에 끝낸다.
1. **판 목록 대조(늘 한다).** 결론에 쓴 법령마다 korean-law `amendment_track` 을 함께 부르고, 쓴 판과 판 목록을 `기준.json` 에 적어 돌린다. 몇십 초면 끝난다
```bash
python scripts/freshness_check.py --기준 기준.json --출력 최신화점검.json
```
기준일에 시행 중인 판을 썼는지(아니면 「판 다시 고르기」), 기준일 뒤에 시행될 판이 있는지(「기준일 뒤 시행」) 나온다
2. **개정안 조사(조건부).** 기준일이 오늘 뒤이거나 사용자가 개정 소식을 물었을 때만 한다
- 국회: 의안 검색 스크립트로 결론 조문을 고치는 계류·통과 법안을 모은다. 10초 안팎이다
```bash
python scripts/bill_search.py --대상 "소득세법:제89조" --키워드 "1세대 1주택" --출력 국회.json
```
의안 요약은 주된 조문만 「안 제N조 등」으로 적는다. 조문 번호만으로는 빠지니 조문 제목의 낱말을 `--키워드` 로 함께 준다
- 입법예고·정부안: 서브에이전트 하나가 웹 검색 3번 안에서 시행령·시행규칙 입법예고와 정부안을 찾는다. 판 목록을 함께 줘서 이미 공포된 안은 빼게 한다
- 두 파일을 `--조사 국회.json 개정안.json` 으로 넘긴다
3. **처리.** 「판 다시 고르기」는 그 판으로 3~5번을 다시 한다. 「기준일 뒤 시행」이 나오고 결론을 그 뒤에도 쓸 수 있으면, 결론 조문만 그 시행일로 한 번 열어(`get_law_text(effective_date)`) 바뀌는지 보고 바뀌면 결론 옆에 「YYYY-MM-DD 부터 바뀜」을 적는다. 「확인 불가」·「불일치」는 처리하거나 결론 옆에 적는다. 개정안은 적용하지 않고 단계와 예정 시행일을 결론 옆에 적는다
관보 공포 조사는 공포 소식이 있는데 `amendment_track` 에 그 판이 없을 때만 한다. 2026-10-19 실행에서 관보 공포 11건은 모두 판 목록에 있었다. 파일 모양과 서브에이전트에게 주는 글은 `references/최신화점검.md` 에 있다.
## 사용자에게 답할 때
사용자가 직접 물으면 이 순서로 답한다. 다른 스킬이 불렀으면 아래 「반환 형식」으로 넘기고, 답변 양식은 그 스킬을 따른다.
1. **결론.** 2~3줄. ★★★ 가 아닌 근거에 기댄 문장은 옆에 등급을 적는다. 최신화 점검이 「경고」나 「조치 필요」면 한 줄 붙인다
2. **쟁점.** 결론을 가르는 지점 1~3개. 지점마다 무엇에 따라 답이 갈리는지 한 줄로 적는다
3. **실무해설.** 적용할 때 확인할 사실, 기준일과 부칙 적용례, 기준일 뒤 개정과 계류 개정안, 건너뛴 위임·인용 조문을 적는다. 결론을 바꾸지 않는 해설은 쓰지 않는다
4. **관련 근거.** 결론에 쓴 조문·판례만 한 줄씩 적는다
```text
- 소득세법 시행령 제155조 제1항 (290841@20261001) ★★★ https://www.law.go.kr/법령/소득세법%20시행령/제155조
- 대법원 2020. 7. 9. 선고 2016다244224, 244231 판결 ★★★ (링크: 도구가 주지 않음)
```
## 반환 형식
다른 스킬에 넘길 때는 이 형식을 쓴다.
```json
{
"법령": "소득세법 시행령",
"조항": "제155조 제1항 제1호",
"시행일": "2026-10-01",
"판": "290841@20261001",
"발췌": "도구가 준 문장 그대로. 줄인 곳은 … 로 표시",
"URL": "korean-law 가 준 law.go.kr 링크",
"출처": ["TaxDoctor get_article", "korean-law get_law_text"],
"등급": "★★★",
"최신화": {"점검일": "2026-10-19", "기준일": "2026-10-19", "결과": "변경 없음", "개정안조사": "안 함"}
}
```
`최신화.결과` 는 `변경 없음` / `경고` / `조치 필요` / `미점검` 중 하나다. `미점검` 이면 결론 옆에 「최신화 미확인」을 적는다. `개정안조사` 는 `함` / `안 함` 이다.
판례·심판례·해석례는 이 형식으로 넘긴다.
```json
{
"판례": "대법원 2020. 7. 9. 선고 2016다244224, 244231 판결",
"사건번호": "2016다244224, 244231",
"선고일": "2020-07-09",
"판례정보일련번호": "211709",
"발췌": "도구가 준 판시사항·판결요지 문장 그대로",
"URL": "도구가 준 링크. 없으면 「도구가 주지 않음」",
"출처": ["korean-law search_decisions", "korean-law get_decision"],
"등급": "★★★"
}
```
## 법령 목록과 누락 검사
주제마다 필요한 법령을 목록으로 고정하고, 그 목록의 법령이 모두 조회되는지 `coverage_check.py` 로 확인한다. 목록은 그 주제 스킬이 갖는다(예: `양도소득세/rules/법령목록.json`, `법령별칭.json`).
```bash
python scripts/coverage_check.py --목록 <주제스킬>/rules/법령목록.json --별칭 <주제스킬>/rules/법령별칭.json --출력 <주제스킬>/rules/누락검사.json
```
- 법령마다 이름이 정확히 같은 현행 판(MST·시행일)을 법제처에서 찾는다. 세법은 TaxDoctor 수록 여부도 적는다
- 옛 이름은 별칭의 현행 이름으로 찾는다. 법령이 아닌 것(협약 등)은 근거가 적혀 있으면 `해소` 로 표시한다
- 고시 중 행정규칙ID 가 있는 것은 법제처 행정규칙에서 그 ID 를 찾는다. 부동산마다 따로 확인하는 사실은 확인처가 적혀 있어야 한다
- `해소` 가 아닌 항목이 하나라도 있으면 종료코드 1 이다. OC(법제처 OPEN API 인증값)는 환경변수 `LAW_OC` 또는 `claude mcp get korean-law` 에서 읽고 출력하지 않는다
## 틀리기 쉬운 판단
| 떠오른 생각 | 실제 |
|---|---|
| "TaxDoctor 에 나왔으니 됐다" | 세법은 한 곳이면 ★★☆ 다. korean-law 로 같은 판을 열어 대조한다 |
| "검색했더니 비슷한 법이 나왔다" | 이름이 정확히 같은지 본다. 「주택법」 조회에 민간임대주택법이 나온 적이 있다 |
| "날짜를 안 줬으니 현행이다" | 기준일이 오늘이 아니면 그 날짜를 준다. 머리줄의 `시행일` 이 기준일 이전인지 본다 |
| "인용된 이름으로 조회해 판이 나왔으니 됐다" | 개칭 전 이름일 수 있다. 머리줄에 「옛 이름이다」가 붙었는지 본다(절차 7) |
| "위임 목록에 없으니 하위 조문이 없다" | TaxDoctor 위임 목록에서 조문이 빠질 때가 있다. `trace_references` 를 같이 돌린다 |
| "부칙 조회가 비었으니 적용례가 없다" | 원문을 직접 열거나 「부칙 미확인」으로 남긴다 |
| "판례 검색이 0건이니 판례가 없다" | 제목만 검색된다. 사건번호로 찾거나, 웹 검색 한 번으로 사건번호를 먼저 찾는다 |
| "조문을 아는데 절차를 다 밟아야 한다" | 조문을 이미 알면 2번을 건너뛰고, 위임·인용 조문은 결론을 가를 때만 연다. 건너뛴 것은 보고에 한 줄 적는다 |
| "세법이 아니니 조회하지 않아도 된다" | 인용된 법령은 판정에 쓰인다. korean-law 로 연다 |
| "웹에 잘 정리돼 있다" | 법령 원문을 웹으로 대신하지 않는다. 웹은 ★★☆ 다 |
| "링크는 이렇게 생겼을 것" | 도구가 준 URL 만 쓴다 |
| "두 곳이 같으니 최신이다" | 둘 다 법제처 DB 를 읽는다. 국회 개정안은 둘 다에 없다. 기준일이 오늘 뒤면 개정안 조사를 한다 |
| "개정 소식이 있으니 반영한다" | 공포 전 개정안은 적용하지 않는다. 결론 옆에 단계와 예정 시행일을 적는다 |
| "꼼꼼히 하려면 다 찾아야 한다" | 결론에 쓸 조문만 연다. 조사 범위를 넓히면 시간만 늘고 결론은 그대로다 |
출처별 결함과 대응은 `references/출처별결함.md`, 최신화 점검 세부는 `references/최신화점검.md` 에 있다.