Translates English patents to Korean with 4-agent collaboration. Use when: patent translation, specification translation, claims translation, En-Ko technical document localization, 특허 번역, 영한 번역. Features: analyze→translate→review→learn loop, dynamic term base, 95-point quality threshold, 2-stage review (mechanical + semantic).
버전: 1.0.0 작성일: 2026-01-10
영문 특허를 한국어로 번역하는 4-에이전트 협업 시스템입니다.
시스템 훅에서 다음 메시지가 출력되면 반드시 해당 동작을 수행해야 합니다. 이 규칙을 무시하면 워크플로우 위반으로 간주됩니다.
섹션 파일 생성 시 validate-translation.py 스크립트가 자동 실행됩니다.
섹션 번역 파일 생성 후 출력됩니다.
translation-final.md 생성 후 출력됩니다.
번역 품질 보장을 위해 기계적 검토와 의미적 검토를 분리합니다.
scripts/validate-translation.py가 자동 실행됩니다.
| 검사 항목 | 설명 |
|---|---|
| 참조부호 형식 | 명사(10) (O), 명사 (10) (X) |
| 청구항 구조 | 번호 연속성, 마침표 종결 |
| 서수 형식 | 제1, 제2 (첫째, 둘째 X) |
| 전환구 일관성 | comprising → 포함하는 |
| 기본 상기 검사 | 재등장 시 상기 누락 여부 |
| 약어 형식 | 첫 등장 시 풀이 여부 |
| 숫자-단위 공백 | 10 mL (O), 10mL (X) |
기계적 검토 통과 후 에이전트가 수행합니다.
| 검사 항목 | 설명 |
|---|---|
| 정확성 | 의미 왜곡, 누락, 첨가 |
| 유창성 | 자연스러운 한국어 표현 |
| 문맥 판단 | 복잡한 상기 판단, 도메인 적합성 |
| 스타일 | 청구항 어미, 전문 용어 선택 |
┌─────────────────────────────────────────────────────────────┐
│ 사용자 입력 (원문) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ [1] Source Analyzer │
│ - 용어 추출 + 도메인 식별 │
│ - 원문 오류 검출 │
│ - project-tb.md 초기화 (섹션 1) │
│ │
│ 출력: terminology-analysis.md, source-error-report.md │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ [2] Patent Translator │
│ - 스타일 가이드 기반 번역 │
│ - 용어 일관성 유지 (project-tb.md 참조) │
│ - 원문 오류 주석 처리 │
│ │
│ 출력: section-XX-[name].md │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ [3] Translation Reviewer │
│ - 품질 평가 (100점 만점) │
│ - 상기/용어/스타일 검사 │
│ - 95점 미만 → [2]로 반환 │
│ │
│ 출력: review-report-section-XX.md │
└─────────────────────────────────────────────────────────────┘
│
┌────────┴────────┐
│ │
95점 미만 95점 이상
│ │
▼ ▼
[2]로 반환 다음 섹션 진행
│
▼
┌─────────────────────────────────────────────────────────────┐
│ [4] Feedback Learner (섹션 완료 후 또는 사용자 피드백 시) │
│ - project-tb.md 업데이트 │
│ - terminology-db.md / error-patterns.md 업데이트 │
│ - feedback-log.md 기록 │
└─────────────────────────────────────────────────────────────┘
│
▼
[모든 섹션 완료 시]
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 파일 통합 + 워드 변환 │
│ - sections/*.md → translation-final.md │
│ - translation-final.md → translation-final.docx │
└─────────────────────────────────────────────────────────────┘
사용자: "특허 번역해줘" + 원문 파일 제공
시스템:
1. 프로젝트 폴더 생성: output/[project-name]/
2. sections/ 하위 폴더 생성
3. 원문 섹션 분할 (자동 또는 사용자 지정)
| 순서 | 섹션 | 영문명 | 처리 방식 |
|---|---|---|---|
| 1 | 발명의 명칭 + 요약 + 청구범위 | Title + Abstract + Claims | 한 번에 처리 (핵심 용어 확립) |
| 2 | 배경기술 | Background | 2,500단어 초과 시 분할 |
| 3 | 발명의 내용 | Summary | 2,500단어 초과 시 분할 |
| 4 | 도면의 간단한 설명 | Brief Description of Drawings | 단독 처리 |
| 5 | 상세 설명 | Detailed Description | 2,500단어 단위 분할 |
각 단계는 Task 도구로 서브에이전트를 호출하여 실행합니다.
Step 1: Source Analyzer
Task(subagent_type="source-analyzer", prompt="프로젝트: [name], 원문: [path]")
→ terminology-analysis.md, source-error-report.md, project-tb.md
Step 2: Patent Translator
Task(subagent_type="patent-translator", prompt="프로젝트: [name], 섹션: [N]")
→ section-NN-[name].md
→ [훅 트리거: validate-translation.py + FEEDBACK_REQUIRED]
Step 3: Translation Reviewer
Task(subagent_type="translation-reviewer", prompt="검토: section-NN.md")
→ 95점 미만: Step 2 재호출 (최대 3회)
→ 95점 이상: 통과
Step 4: 피드백 수집 (AskUserQuestion)
사용자 피드백 요청 → 피드백 있을 경우:
Task(subagent_type="feedback-learner", prompt="피드백: [내용]")
→ project-tb.md, terminology-db.md 업데이트
→ 섹션 N+1로 진행
주의: 아래 TOKEN LIMIT GUARD 규칙을 반드시 준수해야 합니다.
모든 섹션 완료
│
▼
Python 스크립트로 병합 (Claude 직접 병합 금지)
│
▼
메타데이터 검증 (파일 내용 읽지 않음)
│
▼
워드 변환
│
▼
사용자에게 결과 보고 (메타데이터만)
대용량 특허 문서 번역 시 토큰 제한 문제를 방지하기 위한 필수 규칙입니다.
Claude는 다음 행위를 절대 수행하지 않습니다:
| 금지 | 설명 |
|---|---|
| 모든 섹션 읽기 후 Write | 섹션 파일들을 모두 읽어서 하나의 파일로 직접 작성 |
| translation-final.md 읽기 | 병합된 파일의 전체 내용을 Read 도구로 읽기 |
| 수동 연결 | 섹션 내용을 복사-붙여넣기로 연결 |
| 허용 | 설명 |
|---|---|
| Python 스크립트 실행 | merge-sections.py, verify-merge.py, convert-to-docx.py |
| 메타데이터 확인 | 스크립트 출력의 JSON/텍스트 리포트 확인 |
| 개별 섹션 읽기 | 특정 섹션 수정/검토 시 해당 파일만 읽기 |
# Step 1: 섹션 병합 (Python)
python scripts/merge-sections.py output/[project] --json
# Step 2: 병합 검증 (Python)
python scripts/verify-merge.py output/[project]/translation-final.md
# Step 3: 워드 변환 (Python)
python scripts/convert-to-docx.py output/[project]/translation-final.md
병합 완료 시 Claude가 사용자에게 보고하는 내용 (메타데이터만):
번역 병합이 완료되었습니다.
병합 결과:
- 섹션 수: 6개
- 총 라인 수: 310줄
- 파일 크기: 76,234 bytes
출력 파일:
- translation-final.md (마크다운)
- translation-final.docx (Word)
모든 섹션이 정상적으로 포함되었습니다.
output/[project-name]/
├── sections/
│ ├── section-01-title-abstract-claims.md
│ ├── section-02-background.md
│ ├── section-03-summary.md
│ ├── section-04-drawings.md
│ ├── section-05a-detailed-part1.md (분할 시)
│ ├── section-05b-detailed-part2.md
│ └── section-05c-detailed-part3.md
├── project-tb.md # 동적 TB (실시간 누적)
├── chunk-context.md # 청크 간 컨텍스트 (작업 기억)
├── terminology-analysis.md # 용어 분석 결과
├── source-error-report.md # 원문 오류 보고서
├── review-report-section-XX.md # 검토 보고서
├── translation-final.md # 통합 마크다운
└── translation-final.docx # 최종 워드 파일
data/
├── style-guide.md # 스타일 가이드
├── terminology-db.md # 기본 용어집
├── error-patterns.md # 번역 오류 패턴
├── source-error-patterns.md # 원문 오류 패턴
├── feedback-log.md # 피드백 로그
├── samples/ # 번역 샘플
└── approved-translations/ # 승인된 번역
특허는 법적 문서로서 높은 정확도를 요구합니다.
| 항목 | 배점 | 비고 |
|---|---|---|
| 정확성 | 50점 | 의미 정확성, 누락/첨가 |
| 용어 일관성 | 25점 | 상기 누락, TB 미준수 |
| 스타일 준수 | 15점 | 청구항 구조, 구두점 |
| 유창성 | 10점 | 자연스러운 한국어 |
# Project Term Base
**프로젝트**: [project-name]
**최종 업데이트**: [날짜] (섹션 1 완료 후)
## 핵심 용어 (Title/Abstract/Claims에서 확립)
| English | Korean | 첫 등장 | 비고 |
|---------|--------|---------|------|
| antibody drug conjugate | 항체-약물 접합체 | Claims 1 | ADC |
## [섹션명] 추가 용어 (섹션 N)
| English | Korean | 첫 등장 | 비고 |
|---------|--------|---------|------|
| prior art | 선행 기술 | [0003] | |
긴 섹션을 분할 번역할 때 참조부호 일관성과 상기 추적을 유지하기 위한 작업 기억 파일입니다.
| 파일 | 용도 | 지속성 |
|---|---|---|
| project-tb.md | 확정 용어집 (프로젝트 전체) | 영구 |
| chunk-context.md | 청크 간 임시 컨텍스트 | 번역 중만 |
# 청크 간 컨텍스트
## 참조부호 매핑
| 번호 | 영문 | 한글 | 첫 등장 |
|------|------|------|---------|
| 10 | housing | 하우징 | [0012] |
| 20 | base | 베이스 | [0012] |
| 100 | memory subsystem | 메모리 서브시스템 | Claim 1 |
## 핵심 명사 상기 상태
| 명사 | 첫 등장 | 상기 필요 |
|------|---------|-----------|
| 메모리 서브시스템 | Claim 1 | O |
| 호스트 시스템 | Claim 1 | O |
## 이전 청크 마지막 문단 (오버랩용)
> [0045] 상기 컨트롤러(30)는 상기 메모리 컴포넌트와 통신한다.
[청크 N 번역 시작]
│
├→ chunk-context.md 로드 (이전 상태)
├→ project-tb.md 로드 (확정 용어)
│
▼
Patent Translator 번역 수행
│
▼
chunk-context.md 업데이트
├→ 새 참조부호 추가
├→ 새 핵심 명사 추가
└→ 마지막 문단 갱신
│
▼
[청크 N+1로 진행]
scripts/convert-to-docx.py 사용
python scripts/convert-to-docx.py output/[project]/translation-final.md
특허 번역해줘 + 원문 파일 경로 제공Claims 부분만 먼저 번역해줘"substrate"는 "기재"로 번역해줘 → terminology-db.md 자동 업데이트상세 예시:
data/translation-examples.md참조
핵심 처리 포인트:
a/an + 명사 → 부정형 (첫 등장)the + 명사 → 상기 + 명사 (재등장)comprising → 포함하는/포함하고 (개방형)영문 풀이 (ABBR) → 한글 풀이 (ABBR)Source Analyzer가 검출한 오류에 대해:
[원문 오류] 주석 삽입번역 완료 → 사용자 피드백 → Feedback Learner
│
├→ terminology-db.md 업데이트
├→ error-patterns.md 업데이트
└→ source-error-patterns.md 업데이트
│
▼
다음 번역 시 업데이트된 데이터 참조
git add .claude/skills/patent-translator/data/
git commit -m "Update: terminology and feedback from [project]"
품질 게이트(95점)를 통과하지 못한 경우의 에스컬레이션 로직입니다.
재번역 시도 1회차
│
└→ 95점 미달 → Patent Translator 재호출 (피드백 포함)
│
재번역 시도 2회차
│
└→ 95점 미달 → Patent Translator 재호출 (누적 피드백)
│
재번역 시도 3회차 (최종)
│
└→ 95점 미달 → **사용자 에스컬레이션** (자동 재번역 중단)
3회 재번역 후에도 95점 미달인 경우:
메시지: "3회 재번역 후에도 95점 미달입니다. 수동 검토가 필요합니다."
옵션:
- 현재 상태로 승인 (점수 표시: XX점)
- 특정 부분 직접 수정 후 진행
- 전체 재번역 (다른 접근 방식 요청)
- 번역 중단, 원문 확인 필요
각 재번역 시도 시 이전 리뷰 피드백을 누적하여 Patent Translator에게 전달:
Task(subagent_type="patent-translator", prompt="""
프로젝트: [name]
섹션: [N]
재번역 시도: [2/3]
[이전 피드백]
- 1회차: 상기 누락 5건, 참조부호 형식 오류 2건
- 2회차: 상기 누락 2건
집중 개선 항목: 상기 누락 (잔여 2건)
""")
검토자가 Word에서 Track Changes로 피드백을 남기면, 이를 자동으로 추출하여 학습 데이터에 반영할 수 있습니다.
.docx 파일을 검토자에게 전달.docx 파일 수신/import-feedback-docx로 피드백 추출/apply-feedback-docx로 데이터 파일 업데이트| 명령 | 설명 |
|---|---|
/import-feedback-docx <docx> [project] | Track Changes/Comments 추출 및 보고서 생성 |
/apply-feedback-docx <project> | 승인된 피드백을 데이터 파일에 반영 |
| 유형 | 분류 기준 | 대상 파일 |
|---|---|---|
| terminology | 용어 대체, 단어 수준 변경 | terminology-db.md, project-tb.md |
| error | 상기 누락, 참조부호 오류 | error-patterns.md |
| style | 표현 개선, 자연스러움 | feedback-log.md |
| other | 기타 피드백 | feedback-log.md |
reviewed.docx (Track Changes ON)
│
▼
/import-feedback-docx
│
├→ Track Changes 추출 (w:ins, w:del)
├→ Comments 추출 (w:comment)
├→ 자동 분류 (terminology, error, style, other)
│
▼
feedback-review-report.md (체크박스 승인)
│
▼
/apply-feedback-docx
│
├→ terminology-db.md 업데이트
├→ error-patterns.md 업데이트
├→ project-tb.md 업데이트
└→ feedback-log.md 로깅
| 파일 | 설명 |
|---|---|
feedback-extracted.json | 추출된 원시 데이터 |
feedback-classified.json | 분류된 피드백 데이터 |
feedback-review-report.md | 체크박스 기반 승인 보고서 |
[ ]를 [x]로 변경해야 반영됩니다.# 피드백 추출
python scripts/docx_feedback_cli.py import <docx-path> --project <name>
# 피드백 적용
python scripts/docx_feedback_cli.py apply <project-name>
# 상태 확인
python scripts/docx_feedback_cli.py status <project-name>