usecase-diagram-gen
usecase-diagram-gen
기획 문서, RFP, 메모 등 어떤 형태의 원본 문서라도 받아서 도메인 경계 기반 유즈케이스 다이어그램을 Mermaid 형식의 MD 파일로 만든다. Mermaid에는 UML 유즈케이스 다이어그램 타입이 없으므로 flowchart + subgraph 조합으로 근사한다.
지원 입력 형식
| 형식 | 처리 방식 |
|---|---|
.pdf |
내장 Node.js 스크립트로 텍스트 추출 후 분석 |
.txt |
직접 읽어서 분석 |
.md |
직접 읽어서 분석 |
그 외 파일 형식은 지원하지 않는다. 사용자에게 위 세 가지 중 하나로 변환해달라고 안내한다.
실행 절차
Step 0 — 모드 감지
실행 시작 시 워크스페이스 루트에 usecase/ 폴더가 이미 존재하는지 확인한다.
usecase/없음 → 신규 생성 모드: Step 1부터 순서대로 진행usecase/있음 → 업데이트 모드: 아래 업데이트 모드 상세 절차로 건너뜀
Step 1 — 파일 확인
사용자가 제공한 파일 경로의 확장자를 확인한다.
.pdf/.txt/.md이외 → 명확한 오류 메시지와 함께 종료- 파일이 존재하지 않으면 → 경로 재확인 요청
Step 2 — 텍스트 추출
PDF 입력일 때:
# 의존성 설치 (최초 1회)
cd ~/.claude/skills/usecase-diagram-gen/scripts && npm install --silent
# 텍스트 추출
node ~/.claude/skills/usecase-diagram-gen/scripts/extract_pdf_text.js \
<입력.pdf> -o /tmp/usecase-source.txt
추출된 /tmp/usecase-source.txt를 Read 도구로 읽어 분석에 사용한다.
TXT/MD 입력일 때: Read 도구로 직접 읽는다.
Step 3 — 도메인 분석
텍스트에서 아래 항목을 식별한다:
- 액터(Actor): 시스템을 사용하는 역할 (예: 일반 사용자, 관리자, 외부 시스템)
- 도메인(Domain): 기능적으로 유사한 유즈케이스의 집합 (예: 인증, 결제, 콘텐츠 관리)
- 유즈케이스(Use Case): 각 도메인 내 구체적인 사용자 행동
도메인은 4-8개 수준으로 나누는 것이 가독성에 좋다. 너무 세분화하거나 하나로 합치지 않도록 균형을 잡는다.
분석 결과를 먼저 텍스트로 정리해두면 다이어그램 작성이 수월하다:
[도메인: 인증]
- 액터: 일반 사용자
- 유즈케이스: 회원가입, 로그인, 비밀번호 찾기, 소셜 로그인
[도메인: 결제]
- 액터: 일반 사용자, 관리자
- 유즈케이스: 결제 수단 등록, 주문 결제, 환불 요청, 결제 내역 조회
Step 4 — Mermaid 다이어그램 작성
references/mermaid-usecase.md를 참고해 다이어그램을 작성한다.
기본 구조:
flowchart LR
actor1[👤 일반 사용자]
actor2[🔧 관리자]
subgraph 인증
uc1((회원가입))
uc2((로그인))
uc3((비밀번호 찾기))
end
subgraph 결제
uc4((결제 수단 등록))
uc5((주문 결제))
uc6((환불 요청))
end
actor1 --> uc1
actor1 --> uc2
actor1 --> uc3
actor1 --> uc4
actor1 --> uc5
actor2 --> uc6
- 전체 overview 다이어그램 1개 + 도메인별 상세 다이어그램 생성
- 도메인이 5개 이상이면 overview는 각 도메인의 핵심 유즈케이스 2-3개만 표시해 가독성 유지
Step 5 — 결과물 저장
워크스페이스 루트(사용자가 현재 작업 중인 프로젝트 루트)에 아래 구조로 저장:
usecase/
├── README.md ← 도메인 목록, 액터 설명, 파일 링크
├── overview.md ← 전체 도메인 overview Mermaid 다이어그램
├── [도메인명]-usecase.md ← 도메인별 상세 Mermaid 다이어그램
└── extracted/ ← PDF 입력 시만 생성
└── source.txt ← PDF에서 추출한 원본 텍스트
파일명은 한국어 도메인명이라도 영문으로 변환해서 사용한다 (예: authentication-usecase.md).
저장 완료 후 생성된 파일 목록과 식별된 도메인/액터 요약을 사용자에게 보고한다.
업데이트 모드 상세 절차
워크스페이스에 이미 usecase/ 폴더가 있을 때 사용하는 플로우다. 기존 다이어그램을 유지하면서 변경사항만 반영한다.
U-Step 1 — 현황 파악
기존 파일을 모두 읽어 현재 상태를 파악한다:
usecase/README.md— 도메인 목록, 액터 목록usecase/overview.md— 전체 구조usecase/[도메인명]-usecase.md— 각 도메인 상세
머릿속에 "현재 도메인 N개, 각 도메인별 유즈케이스 목록, 액터 목록"을 정리해둔다.
U-Step 2 — 변경 내용 파악
사용자로부터 무엇이 바뀌었는지 파악한다:
- 새 문서가 있는 경우: Step 1~3(파일 확인 → 텍스트 추출 → 도메인 분석)을 수행한 뒤, 기존 현황과 비교
- 구두 지시만 있는 경우: 사용자 설명에서 직접 변경사항 도출
변경 유형을 분류한다:
[추가] 새 도메인, 새 유즈케이스, 새 액터
[수정] 유즈케이스 이름 변경, 관계 변경, 액터 연결 변경
[삭제] 유즈케이스 제거, 도메인 통합/제거
애매한 부분이 있으면 작업 전에 사용자에게 확인한다.
U-Step 3 — 선택적 수정
변경이 있는 파일만 수정한다. 영향을 받지 않는 도메인 파일은 건드리지 않는다.
| 변경 유형 | 수정 대상 파일 |
|---|---|
| 특정 도메인 내 유즈케이스 추가/수정/삭제 | 해당 도메인 .md + overview.md (핵심 UC가 바뀐 경우) + README.md |
| 새 도메인 추가 | 새 도메인 .md 생성 + overview.md + README.md |
| 도메인 삭제/통합 | 해당 .md 삭제 + overview.md + README.md |
| 액터 추가/변경 | 영향받는 도메인 .md + overview.md + README.md |
U-Step 4 — 변경 요약 보고
작업 완료 후 사용자에게 변경 내용을 요약 보고한다:
✅ 업데이트 완료
[수정된 파일]
- authentication-usecase.md: 소셜 로그인 유즈케이스 추가
- overview.md: 결제 도메인 핵심 UC 반영
[추가된 파일]
- notification-usecase.md: 알림 도메인 신규 추가
[변경 없는 파일]
- content-usecase.md, user-management-usecase.md (변경 없음)
참고 파일
references/mermaid-usecase.md— Mermaid 유즈케이스 다이어그램 패턴,include/extend표현, 규모별 분리 전략
More from dev-goraebap/skills
claude-hook-notify-setup
>
23media-storage
파일 업로드·저장소·첨부 관리 패턴. Actions: 파일 업로드, 이미지 업로드, 파일 처리, 저장소 연동, 썸네일 첨부, 색상 추출, file upload, image upload, storage, attachment, thumbnail. Patterns: Active Storage, blobs 테이블, attachments 테이블, 다형적 첨부, 중복 파일 감지. Storage: Cloudflare R2, AWS S3, @aws-sdk/client-s3, UUID key, 2-level 디렉토리, CDN URL, presigned URL. DB: Drizzle ORM, blob, checksum, MD5, metadata JSON, MIME, byte_size. Color: 지배적 색상 추출, dominant color, Gemini API, hex, blobs.metadata. Query: 썸네일 조회, 서브쿼리, leftJoin, view-model, CDN URL 변환.
22sveltekit-progressive-architecture
SvelteKit 프로젝트 아키텍처·코드 규칙. Actions: 작성, 구현, 리뷰, 리팩터, 검토, 추가, 설계, 수정, write, implement, review, refactor, fix. Base Rules: 컴포넌트 재사용, $lib, 라우트 배치, 인라인 타입 금지, interface, type, script 섹션, 주석, 가독성, code style, TypeScript. Server Architecture: 서버 아키텍처, Active Record, Query Service, REST API, Drizzle, +server.ts, +page.server.ts, server/domain, server/infra, 뷰모델, view-model, form actions, ORM, schema, 레이어 분리, CUD, load.
18agent-wiki
>
15html-prototype
>
12mvp-preview
아이디어나 기능을 빠르게 만들어 링크로 공유하는 MVP 워크플로우. 사용자가 '프로토타입 만들어줘', '데모 페이지 필요해', '빠르게 만들어줘', '클라이언트한테 보여줄 거 만들어줘', '아이디어 구체화해줘', '링크 공유해야 해', '배포해줘', 'MVP 만들기', '기획 검토용 화면'처럼 말하면 반드시 이 스킬을 사용한다. 아이디어가 막연해도 괜찮다. 토론으로 범위를 좁히고, 최소 코드로 가치를 증명하고, 링크 하나로 전달하는 전 과정을 다룬다.
12