형사 docKind 3 종 .docx 템플릿 작성 가이드 (Pack 6.8)
ADR 0045 Pack 6.8 — 사무소가 변호인 선임서·의견서·양형 자료 3 종 .docx 템플릿을 작성·업로드하여 형사 사건의 1-click 서류 생성을 활성화하는 절차.
대상 docKind
| docKind | 라벨 | 한국어 docType | 용도 |
|---|---|---|---|
criminal-defense-appointment | 변호인 선임서 | 변호인선임서 | 검찰·법원 제출 선임 서류 |
criminal-opinion | 변호인 의견서 (검찰) | 변호인의견서 | 검찰 단계 의견 진술 |
criminal-sentencing-materials | 양형 자료 | 양형자료 | 1심 공판 양형 자료 |
공용 기본 템플릿 (자동 생성)
Pack 6.11 부터 apps/web/public/docxTemplates/criminal-*.docx 3 종이 repo 동봉.
생성 스크립트:
NODE_PATH=apps/web/node_modules npx tsx scripts/generate-criminal-docx-templates.ts
스크립트 변경 후 위 명령으로 .docx 재생성. placeholder 명세 수정 시 buildCriminalDocxRenderData 와 양쪽 동시 수정 필요. 검증:
node /tmp/verify-criminal-templates.mjs # docx-templates createReport 로 sample data 렌더
업로드 위치 (Cloud Storage)
public/docxTemplates/{kind}.docx ← 공용 기본 템플릿
tenants/{tenantId}/docxTemplates/{kind}.docx ← 사무소 커스텀 (우선)
tenants/{tid}/docxTemplates/criminal-defense-appointment.docx 가 있으면 자동으로 공용 기본 대신 사용. 업로드 UI 는 사무소 설정 페이지 (owner 권한, 5 MB 한계, .docx MIME).
Placeholder 규약 — 3 docKind 공통
criminal-docgen-placeholders.ts 의 buildCriminalDocxRenderData 가 채우는 placeholder. {{변수명}} 형식.
공통 placeholder (3 docKind 모두 적용)
| placeholder | 의미 | 예시 값 |
|---|---|---|
{{filingDate}} | 작성일 (YYYY-MM-DD KST) | 2026-05-17 |
{{attorneyName}} | 변호인 이름·법무법인 명 | 법무법인 너홀로 |
{{attorneyAddress}} | 사무소 주소 | 서울특별시 서초구 서초대로 1234 |
{{attorneyNumber}} | 변호사 번호 (선택) | 12345 |
{{defendantName}} | 의뢰인(피의자·피고인) 이름 | 홍길동 |
{{defendantAddress}} | 의뢰인 주소 | 서울특별시 강남구 ... |
{{chargeName}} | 죄명 | 사기 / 특정경제범죄법위반(사기) |
{{caseNumber}} | 사건번호 | 2026고단123 / 2026형제45678 |
{{prosecutorOffice}} | 담당 검찰청 | 서울중앙지검 |
{{court}} | 담당 법원 | 서울중앙지법 |
{{phaseLabel}} | 9 단계 한국어 라벨 | 1심 공판 |
{{referralDate}} | 송치일 (YYYY-MM-DD) | 2025-12-01 |
{{indictmentDate}} | 기소일 (YYYY-MM-DD) | 2026-01-15 |
{{crimeEndDate}} | 범죄 행위 종료일 (공소시효 기산) | 2025-10-15 |
{{aggravatedLabel}} | 가중처벌 여부 라벨 | 예 (특경법 §3 가중) / 아니오 / 미입력 |
{{detainedLabel}} | 구속 여부 라벨 | 구속 / 불구속 / 미입력 |
{{coreFacts}} | 핵심 사실 (자유 기술) | 피해자 3명, 총 5,000만원 편취 |
{{note}} | 메모 | 동종 전과 없음, 합의 진행 중 |
변호인 선임서 (criminal-defense-appointment) 전용
| placeholder | 의미 | 예시 |
|---|---|---|
{{appointmentDate}} | 선임 일자 (= filingDate) | 2026-05-17 |
{{appointmentScope}} | 선임 범위 | 전 절차 (수사·기소·1심·항소·상고) |
변호인 의견서 (criminal-opinion) 전용
| placeholder | 의미 | 예시 |
|---|---|---|
{{opinionTitle}} | 표제 | 변호인 의견서 |
{{addresseeOffice}} | 수신 기관 (검찰청, 미입력 시 "수사 기관") | 서울중앙지검 |
양형 자료 (criminal-sentencing-materials) 전용
| placeholder | 의미 | 예시 |
|---|---|---|
{{sentencingHeading}} | 표제 | 양형 자료 |
{{mitigatingFactors}} | 양형 인자 (note 와 동일) | 동종 전과 없음, 합의 진행 중 |
템플릿 작성 예시 — 변호인 선임서
Word 에서 새 문서 작성 후 placeholder 를 그대로 본문에 삽입:
변 호 인 선 임 서
피의자(피고인): {{defendantName}}
주 소: {{defendantAddress}}
죄 명: {{chargeName}}
사 건 번 호: {{caseNumber}}
담 당 기 관: {{prosecutorOffice}} {{court}}
현 재 단 계: {{phaseLabel}}
위 사건에 관하여 다음과 같이 변호인을 선임합니다.
- 다 음 -
선 임 인 : {{defendantName}} (인)
변 호 인 : {{attorneyName}} (인)
사 무 소 명: {{attorneyName}}
사 무 소 주소: {{attorneyAddress}}
변 호 사 번호: {{attorneyNumber}}
선 임 일 자: {{appointmentDate}}
선 임 범 위: {{appointmentScope}}
{{filingDate}}
템플릿 검수 체크리스트
- placeholder 오타 검증 —
{{와}}짝 일치, 변수명 위 표 그대로 - 반복 블록 없음 — 형사 3 docKind 는 list/repeat 미사용 (민사 evidenceList 와 다름)
- PII 직접 삽입 금지 — 사건 데이터는 placeholder 로만. 템플릿 자체에 실명·주민번호 박지 말 것
- A4 1~2 페이지 — 변호인 의견서는 상세, 선임서·양형 자료는 1 페이지 권장
- 결재 인 위치 —
{{attorneyName}} (인)처럼 placeholder 옆에 (인) 명시
업로드 절차
apps/web의 사무소 설정 → 서식 템플릿 섹션- owner 권한 필요 (staff 는 disabled 표시)
- .docx 파일 선택 → 5 MB 이하, MIME
application/vnd.openxmlformats-officedocument.wordprocessingml.document - 업로드 성공 시 즉시 모든 구성원의 docgen 호출에 반영 (공용 기본 자동 폴백)
검수 후 실 사용 흐름
변호사
→ 사건 상세 → 서류 생성 → "변호인 선임서" 선택
→ generateDocxAction (weight 1)
→ buildCriminalDocxRenderData(CaseData + AttorneyInfo)
→ 템플릿 우선순위: tenants/{tid}/.docx → public/.docx
→ docx-templates 렌더 → Cloud Storage 저장 → signed URL 15분 만료
→ 변호사 다운로드 → 수기 확인 → 출력·제출
한계
- 변호인 선임서·의견서·양형 자료 외 후속 형사 docKind (구속집행정지 신청서 등) 은 별도 ADR 후 추가
- 양형 자료의 reference 첨부 (탄원서·합의서 등) 는 별도 attachment 업로드 흐름 (후속 Pack 6.9)
- 형사 사건 PII (피해자 이름·전과·구속 사실 등) 의 portal 노출 정책은 별도 ADR 필요
참고
- ADR 0045 — Pack 6 형사 사건 도메인 정의
- docgen 일반 가이드 — 민사 docKind 5 서면 템플릿 작성 패턴
buildCriminalDocxRenderData단위 테스트 —apps/web/app/(workspace)/docs/_lib/__tests__/criminal-docgen-placeholders.test.ts