공용 .docx 템플릿 업로드 플레이북
ADR 0012 S1 · Chair 수동 업로드 절차. 너홀로프로 전 tenant 가 기본으로 사용할
5 서식의 초안 템플릿을 Cloud Storage public/docxTemplates/{kind}.docx 에
업로드한다.
1. 준비 체크리스트
- 5 DocKind 별 초안
.docx파일 작성payment-order.docx— 지급명령 신청서 (2천만원 이하)complaint.docx— 소장 (통상·소액 공용)answer-brief.docx— 답변서 (피고 대응)demand-notice.docx— 내용증명preparatory-brief.docx— 준비서면
- 법무 자문 1회 (변호사 1명 검토 서명)
- docx-templates placeholder 규약 확인 (아래 §3)
- 파일 크기 ≤ 5MB 확인 (
MAX_DOCX_SIZE_BYTES)
2. 업로드 절차
2.1 Firebase Console 경유 (권장)
- Firebase Console → Storage → 버킷 선택
public/docxTemplates/경로 생성 (없으면)- 각
.docx업로드 (파일명 정확히 일치 — 확장자.docx) - 메타데이터
uploadedByUid = chair수동 설정 (감사 추적)
2.2 스크립트 경유 (대안)
NODE_PATH=apps/web/node_modules npx tsx scripts/upload-public-templates.ts \
--dir ./templates-drafts \
--dry-run # 미리보기
NODE_PATH=apps/web/node_modules npx tsx scripts/upload-public-templates.ts \
--dir ./templates-drafts
노트
upload-public-templates.ts 는 아직 미구현 — 본 플레이북 확정 후 후속 PR.
3. Placeholder 규약
docx-templates 기반. 템플릿 본문에 {{fieldName}} 토큰을 사용.
3.1 공통 필드 (6 유형 전수)
{{caseNumber}}— 법원 사건번호{{client}}/{{clientAddress}}— 원고{{opponent}}/{{opponentAddress}}— 피고{{court}}— 관할 법원{{claimKind}}— 청구 유형 라벨 (대여금·공사대금·…){{principalAmount}}— 원금 (포맷 완료 문자열){{interestStartDate}}— 이자 기산일{{interestKind}}— 이자 종류 (법정이자·지연손해금·약정이자)
3.2 list repetition (복수 행)
{{#payments}}
{{date}}: {{amount}}원
{{/payments}}
3.3 금지 사항
{{#each}}/{{#if}}등 handlebars 문법 사용 금지 (docx-templates 미지원)- 중첩 placeholder
{{obj.field}}불가 — adapter 에서 평탄화 필요
4. 배포 후 검증
-
generateDocxAction테스트 케이스 1건 실행 (e.g. 지급명령) - Signed URL 15분 유효성 확인
-
docgenEventsFirestore 기록 확인 (outcome: "success") - 5 DocKind 전수 1건씩 실제 생성 후 Word 로 열어 서식 깨짐 없음 확인
5. 롤백
사고 발생 시:
- 즉시
config/appMetadata.features.ai.docGeneration: false플립 (Firebase Console) - 문제 파일 delete 또는 이전 버전 덮어쓰기
- 변호사 대상 공지 (메시지 채널)
6. 향후 버전 관리
public/docxTemplates/archive/{kind}-v{N}.docx로 이전 버전 보존DOCGEN_ENGINE_VERSIONbump 트리거 (현docgen-1.0→docgen-1.1등)- 텔레메트리
docgenEvents.engineVersion으로 버전 이행 관찰