| name | setup-project-context |
| description | 프로젝트 전용 플레이스홀더가 있는 파일들을 인터뷰 방식으로 채우는 스킬. 대상 파일은 `.claude/CLAUDE.md`, `docs/PRD.md`, `docs/backend/README.md`, `docs/frontend/README.md`이며, 비어 있는 항목만 선택적으로 채운다. 새 프로젝트를 처음 세팅하거나, CLAUDE.md·PRD.md에 {프로젝트명}·{비즈니스 목표}·{배경 및 해결하려는 문제} 같은 미완성 플레이스홀더가 남아 있을 때 사용한다. "프로젝트 설정", "CLAUDE.md 채워줘", "PRD.md 채워줘", "프로젝트 초기화", "문서 설정해줘" 같은 요청에도 이 스킬을 사용한다. |
| model | opus |
프로젝트 컨텍스트 설정
목적
프로젝트 전용 플레이스홀더가 있는 파일들을 실제 프로젝트 정보로 채운다.
대상 파일:
| 파일 | 채워야 할 플레이스홀더 |
|---|
.claude/CLAUDE.md | {프로젝트명} · {프로젝트 한 줄 설명} · {비즈니스 목표 및 핵심 기능 설명} · {사용자 유형 · 인터페이스 · 진입점} · {디렉토리 구조 및 각 디렉토리 역할} |
docs/backend/README.md | {프로젝트명} |
docs/frontend/README.md | {프로젝트명} |
docs/PRD.md | {PRD 한 줄 요약} · {배경 및 해결하려는 문제} · {비즈니스 목표 목록} · {핵심 성과 지표(KPI) 목록} · {이번 범위에서 제외하는 항목} · {사용자 유형} · {인터페이스명} · {진입점} · {기능별 요구사항 목록} · {성능, 보안, 가용성 등 비기능 요구사항} · {기술적·비즈니스적 제약} · {주요 마일스톤 및 일정} |
Step 1. 현재 상태 파악
작업 전 아래 파일들을 읽어 어떤 플레이스홀더가 아직 비어 있는지 확인한다.
이미 채워진 항목은 건너뛴다.
.claude/CLAUDE.md
docs/backend/README.md
docs/frontend/README.md
docs/PRD.md
Step 2. 인터뷰
비어 있는 플레이스홀더에 대해서만 질문한다. 한 번에 모든 질문을 던지지 않고, 항목별로 하나씩 묻되 사용자가 여러 정보를 한꺼번에 제공했다면 해당 항목들을 묶어서 처리한다.
질문 순서
-
프로젝트명 · 한 줄 설명
"프로젝트 이름과 한 줄 설명을 알려주세요."
-
비즈니스 목표
"핵심 기능이나 비즈니스 목표를 bullet point로 나열해 주세요."
-
사용자 · 인터페이스 · 진입점
"사용자 유형과 각 인터페이스, 진입점(모듈명, URL 등)을 알려주세요."
예시: "샵 방문 고객 / Storefront / :app:storefront"
-
디렉토리 구조
"주요 디렉토리 구조를 알려주세요. 모르면 생략해도 됩니다."
사용자가 생략하거나 "알아서 해줘"라고 하면, 탐색보다 먼저 아래 질문을 한다:
"기존 코드베이스가 있는 프로젝트인가요, 아니면 새로 시작하는 프로젝트인가요?"
- 기존 코드베이스 있음:
ls · find로 실제 프로젝트 최상위 디렉토리를 탐색하고, 발견한 구조를 사용자에게 보여준 뒤 확인 후 사용한다.
- 새 프로젝트: 프로젝트 성격(백엔드 API, 풀스택, 프론트엔드 전용 등)을 파악하여 아래 기본 템플릿 중 적합한 것을 제안하고, 사용자가 수락하면 그대로 사용한다.
| 성격 | 제안 구조 |
|---|
| 백엔드 API | backend/ docs/ sql/ |
| 풀스택 | backend/ frontend/ sql/ docs/ |
| 프론트엔드 전용 | src/ public/ docs/ |
| 모노레포 | apps/ packages/ docs/ |
-
PRD — 배경 및 문제 정의 (docs/PRD.md에 비어 있을 때)
"이 제품이 해결하려는 문제나 배경을 설명해 주세요."
-
PRD — 성공 지표 · Non-Goals (docs/PRD.md에 비어 있을 때)
"핵심 성과 지표(KPI)와 이번 범위에서 제외할 항목(Non-Goals)을 알려주세요."
-
PRD — 기능 요구사항 (docs/PRD.md에 비어 있을 때)
"주요 기능 요구사항을 항목별로 나열해 주세요."
-
PRD — 비기능 요구사항 · 제약 · 타임라인 (docs/PRD.md에 비어 있을 때)
"성능·보안 등 비기능 요구사항, 기술적 제약, 주요 마일스톤을 알려주세요. 없으면 생략해도 됩니다."
Step 3. 파일 작성
수집한 정보를 아래 포맷에 맞게 변환하여 각 파일의 플레이스홀더를 교체한다.
CLAUDE.md 포맷
비즈니스 목표 ({비즈니스 목표 및 핵심 기능 설명} 자리):
- {목표 1}
- {목표 2}
...
사용자와 인터페이스 ({사용자 유형 · 인터페이스 · 진입점} 자리):
| 사용자 | 인터페이스 | 진입점 |
|--------|-----------|--------|
| {사용자 유형} | {인터페이스명} | {진입점} |
프로젝트 구조:
```
{디렉토리}/ # {역할 설명}
{디렉토리}/ # {역할 설명}
...
```
docs/backend/README.md · docs/frontend/README.md
{프로젝트명} 플레이스홀더를 CLAUDE.md에서 수집한 프로젝트명으로 교체한다.
docs/PRD.md 포맷
- 사용자 테이블: CLAUDE.md의
사용자 · 인터페이스 · 진입점과 동일한 내용으로 채운다.
- 비즈니스 목표 목록: CLAUDE.md의 비즈니스 목표와 동일한 내용을 재사용한다.
- 나머지 항목은 인터뷰에서 수집한 내용을 그대로 사용한다.
Step 4. 완료 확인
모든 파일 수정 후, 변경된 섹션만 사용자에게 보여주고 내용이 맞는지 확인을 요청한다.
수정이 필요하면 해당 항목만 다시 받아 교체한다.