skills/dev-goraebap/skills/screen-design-doc

screen-design-doc

SKILL.md

screen-design-doc

RFP, 기획문서, 요구사항 메모 등 어떤 형태의 원본 문서라도 받아서 IA(Information Architecture) 사이트맵화면별 설계서를 Mermaid + MD 형식으로 만든다. 화면을 직접 구현하기 전에 "어떤 화면이 있고 각 화면에 무엇이 들어가는가"를 빠르게 정리하는 것이 목적이다.


지원 입력 형식

형식 처리 방식
.pdf 내장 Node.js 스크립트로 텍스트 추출 후 분석
.txt 직접 읽어서 분석
.md 직접 읽어서 분석

그 외 파일 형식은 지원하지 않는다. 사용자에게 위 세 가지 중 하나로 변환해달라고 안내한다.


실행 절차

Step 0 — 모드 감지

워크스페이스 루트에 screen-design/ 폴더가 이미 존재하는지 확인한다.

  • screen-design/ 없음신규 생성 모드: Step 1부터 진행
  • screen-design/ 있음업데이트 모드: 아래 업데이트 모드 상세 절차로 건너뜀

Step 1 — 파일 확인

사용자가 제공한 파일 경로의 확장자를 확인한다.

  • .pdf/.txt/.md 이외 → 명확한 오류 메시지와 함께 종료
  • 파일이 존재하지 않으면 → 경로 재확인 요청

Step 2 — 텍스트 추출

PDF 입력일 때:

# 의존성 설치 (최초 1회)
cd ~/.claude/skills/screen-design-doc/scripts && npm install --silent

# 텍스트 추출 — 반드시 이 경로로 저장
node ~/.claude/skills/screen-design-doc/scripts/extract_pdf_text.js \
  <입력.pdf> -o <워크스페이스_루트>/screen-design/extracted/source.txt

추출된 파일은 반드시 screen-design/extracted/source.txt 경로에 저장한다.

TXT/MD 입력일 때: Read 도구로 직접 읽는다.

Step 3 — 요구사항 분석

텍스트에서 아래 항목을 식별한다:

  1. 요구사항 ID 감지: 원본 문서에 ID 패턴이 있는지 확인

    • 감지 패턴 예: REQ-001, FR-01, F-001, 요구사항번호
    • 없으면 → ID 추적 생략, SC ID만 부여
    • 있으면 → 각 화면 도출 시 해당 요구사항 ID를 함께 기록
  2. 사이트 판단: 멀티 사이트가 필요한지 판단한다

    • 멀티 사이트 기준 (아래 중 하나 이상 해당):
      • 사용자 역할이 다르고 화면 구성이 전혀 다름 (예: 관리자 vs 일반 사용자)
      • 대상 디바이스/플랫폼이 다름 (예: 데스크톱 웹 vs 모바일 웹)
      • 독립 배포가 필요함 (예: admin.example.com vs app.example.com)
    • 멀티 사이트 → 사이트 슬러그 결정 (소문자 영문, 예: admin, user, partner)
    • 단일 사이트 → 기존 플랫 구조 유지
  3. 화면 목록 도출: 기능 단위를 화면 단위로 묶는다

    • 동일 목적/맥락의 기능 → 한 화면
    • 화면 간 계층 관계 파악 (메인 → 서브 → 상세)
  4. 화면 그룹핑: IA 상위 카테고리 결정 (예: 인증, 대시보드, 설정)

    • 그룹 번호가 SC ID의 첫 번째 자리가 된다

분석 결과를 아래 형식으로 정리한 뒤 다음 단계로 진입한다:

단일 사이트:

[그룹 01: 인증]
  - SC-01-01: 로그인 화면 ← REQ-001, REQ-002
  - SC-01-02: 회원가입 화면 ← REQ-003
  - SC-01-03: 비밀번호 찾기 화면 ← REQ-004

[그룹 02: 대시보드]
  - SC-02-01: 메인 대시보드 ← REQ-010, REQ-011
  - SC-02-02: 알림 목록 ← REQ-012

멀티 사이트:

[사이트: admin — 관리자 / 웹 데스크톱 / 사이드바]
  [그룹 01: 인증]
    - SC-ADMIN-01-01: 로그인 화면 ← REQ-001
  [그룹 02: 대시보드]
    - SC-ADMIN-02-01: 대시보드 ← REQ-010
    - SC-ADMIN-02-02: 회원 관리 ← REQ-011

[사이트: user — 일반 사용자 / 모바일 웹 / 하단탭]
  [그룹 01: 온보딩]
    - SC-USER-01-01: 온보딩 ← REQ-020
  [그룹 02: 홈]
    - SC-USER-02-01: 홈 화면 ← REQ-030

Step 4 — IA 사이트맵 생성

references/screen-design-guide.md의 IA 패턴을 참고해 전체 화면 계층을 Mermaid로 표현한다.

모든 ia-sitemap.md 상단에 메타 테이블을 포함한다:

| 항목 ||
|------|-----|
| 사이트 | default |
| 대상 | 전체 사용자 |
| 플랫폼 | 모바일 웹 |
| 레이아웃 | 하단탭 |

단일 사이트:

flowchart TD
    root[🖥️ 시스템명]

    root --> g01[인증]
    root --> g02[대시보드]

    g01 --> sc0101["SC-01-01\n로그인"]
    g01 --> sc0102["SC-01-02\n회원가입"]

    g02 --> sc0201["SC-02-01\n메인 대시보드"]

screen-design/ia-sitemap.md에 저장한다.

멀티 사이트:

각 사이트별로 별도의 ia-sitemap.md를 생성한다. SC ID에 사이트 슬러그가 포함된다.

  • screen-design/admin/ia-sitemap.md — 관리자 사이트 IA
  • screen-design/user/ia-sitemap.md — 사용자 사이트 IA

Step 5 — 화면설계서 생성

화면별로 넘버링된 MD 파일을 생성한다. references/screen-design-guide.md의 화면설계서 템플릿을 기준으로 작성한다.

화면 ID 체계:

  • 단일 사이트: SC-[그룹번호]-[순번] (예: SC-01-01, SC-02-03)
  • 멀티 사이트: SC-[SITE]-[그룹번호]-[순번] (예: SC-ADMIN-01-01, SC-USER-02-03) 파일명: 전체 순번 2자리 + 영문명 (예: 01-login.md, 04-dashboard.md)

각 화면설계서 파일 구성:

  • 화면 기본 정보 (ID, 화면명, 목적, 진입 경로, 이전/다음 화면)
  • 주요 영역/섹션
  • 컴포넌트 목록 (영역별 UI 요소)
  • 사용자 액션 → 화면 전환 테이블
  • 요구사항 추적 테이블 (요구사항 ID가 있는 경우)

파일 넘버링은 그룹 순서대로 전체 화면을 이어서 붙인다:

01-login.md           (SC-01-01)
02-signup.md          (SC-01-02)
03-forgot-password.md (SC-01-03)
04-dashboard.md       (SC-02-01)

Step 6 — 결과물 저장 및 보고

워크스페이스 루트 screen-design/ 폴더:

단일 사이트 (기존 플랫 구조 유지, ia-sitemap.md에 메타 테이블만 추가):

screen-design/
├── README.md               ← 화면 그룹 목록, SC ID 인덱스, 파일 링크
├── ia-sitemap.md           ← 메타 테이블 + 전체 화면 계층 Mermaid
├── 01-login.md             ← 화면설계서
├── 02-signup.md
├── ...
└── extracted/              ← PDF 입력 시만
    └── source.txt

멀티 사이트:

screen-design/
├── README.md               ← 전체 사이트 개요, 사이트별 링크
├── admin/
│   ├── ia-sitemap.md       ← 메타 테이블 + 관리자 IA Mermaid
│   ├── 01-login.md
│   ├── 02-dashboard.md
│   └── ...
├── user/
│   ├── ia-sitemap.md       ← 메타 테이블 + 사용자 IA Mermaid
│   ├── 01-onboarding.md
│   ├── 02-home.md
│   └── ...
└── extracted/              ← PDF 입력 시만
    └── source.txt

저장 완료 후 생성된 화면 수, 그룹 구조, 파일 목록을 사용자에게 보고한다.


업데이트 모드 상세 절차

워크스페이스에 이미 screen-design/ 폴더가 있을 때 사용하는 플로우다.

U-Step 1 — 현황 파악

기존 파일을 모두 읽어 현재 상태를 파악한다:

  • screen-design/README.md — 화면 목록, 그룹 구조
  • 단일 사이트: screen-design/ia-sitemap.md — 현재 IA 구조
  • 멀티 사이트: screen-design/[사이트]/ia-sitemap.md — 사이트별 IA 구조
  • screen-design/[번호]-[화면명].md 또는 screen-design/[사이트]/[번호]-[화면명].md — 각 화면설계서

현재 SC ID 마지막 번호, 그룹 구조, 화면 수를 파악해둔다.

U-Step 2 — 변경 내용 파악

  • 새 문서가 있는 경우: Step 1~3을 수행한 뒤 기존 현황과 비교
  • 구두 지시만 있는 경우: 사용자 설명에서 직접 변경사항 도출

변경 유형 분류:

[추가] 새 화면, 새 그룹, 새 컴포넌트, 새 사이트
[수정] 화면명 변경, 컴포넌트 변경, 액션 변경
[삭제] 화면 제거, 그룹 통합, 사이트 제거

애매한 부분이 있으면 작업 전에 사용자에게 확인한다.

U-Step 3 — 선택적 수정

변경이 있는 파일만 수정한다.

변경 유형 수정 대상 파일
특정 화면 내용 변경 해당 화면 .md + ia-sitemap.md (구조 변경 시) + README.md
새 화면 추가 새 화면 .md 생성 + ia-sitemap.md + README.md
화면 삭제 해당 .md 삭제 + ia-sitemap.md + README.md
새 그룹 추가 해당 그룹 화면 .md + ia-sitemap.md + README.md
새 사이트 추가 사이트 폴더 생성 + ia-sitemap.md + 화면 .md + README.md
사이트 제거 사이트 폴더 삭제 + README.md

SC ID 처리:

  • 기존 SC ID는 절대 변경하지 않는다 (추적 이력 보존)
  • 새 화면은 해당 그룹의 마지막 SC 순번 다음을 이어서 부여한다
  • 새 그룹은 기존 마지막 그룹 번호 다음을 이어서 부여한다
  • 삭제된 SC의 ID는 재사용하지 않는다

파일 넘버링:

  • 새 파일은 마지막 전체 순번 다음을 이어서 붙인다
  • 중간 삽입이 필요한 경우 이후 파일 번호 재조정 + README.md 링크 업데이트

U-Step 4 — 변경 요약 보고

✅ 업데이트 완료

[수정된 파일]
- 03-product-list.md: 필터 컴포넌트 추가
- ia-sitemap.md: 결제 그룹 화면 반영

[추가된 파일]
- 07-payment.md: 결제 화면 신규 추가 (SC-03-01)

[변경 없는 파일]
- 01-login.md, 02-signup.md (변경 없음)

참고 파일

  • references/screen-design-guide.md — IA 사이트맵 Mermaid 패턴, 화면설계서 템플릿, SC ID 체계, 요구사항 추적 테이블 형식
Weekly Installs
9
First Seen
7 days ago
Installed on
opencode9
claude-code9
github-copilot9
codex9
amp9
cline9