From domain-book-builder
특정 도메인에 대해 엔티티 속성·관계·생명주기·권한·제약·비즈니스 룰 6가지 카테고리로 상세 인터뷰하여 모든 모호함을 제거한다. 배치(최대 4개)씩 질문하고 답변마다 SESSION.md를 즉시 업데이트한다.
How this skill is triggered — by the user, by Claude, or both
Slash command
/domain-book-builder:2-interview-domainThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
특정 도메인에 대한 **모든 모호함을 제거**하고 완전한 정의 확립
특정 도메인에 대한 모든 모호함을 제거하고 완전한 정의 확립
| 카테고리 | 질문 예시 |
|---|---|
| 엔티티 속성 | "User는 어떤 필드를 가지나요?" |
| 관계 | "User와 Translation의 관계는?" |
| 생명주기 | "회원 탈퇴 시 데이터는 어떻게 처리되나요?" |
| 권한 | "프로필 수정은 누가 할 수 있나요?" |
| 제약 | "Email 중복은 허용되나요?" |
| 비즈니스 룰 | "번역 결과는 얼마나 보관하나요?" |
SESSION.md에서 해당 도메인 정보를 읽고, 위 6가지 카테고리별로 아직 정의되지 않은 항목을 목록화한다:
도메인: users
미정의 항목:
1. 엔티티 속성 (high): User의 정확한 필드 목록?
2. 관계 (high): User와 Translation의 관계?
3. 권한 (medium): 프로필 수정은 누가?
4. 제약 (medium): Email 중복 허용 여부?
5. 생명주기 (medium): 탈퇴 시 데이터 처리?
6. 비즈니스 룰 (low): 특별한 정책이 있는지?
우선순위 순으로 최대 4개를 선택해 AskUserQuestion으로 질문한다.
답변을 받으면 즉시 SESSION.md의 해당 도메인 섹션을 Edit으로 업데이트한다.
답변에서 새로운 용어나 개념이 등장하면 추가 모호함을 생성한다:
6가지 카테고리가 모두 정의될 때까지 반복한다.
| 상황 | 배치 크기 | 이유 |
|---|---|---|
| 초기 인터뷰 | 3-4개 | 기본 구조 파악 |
| 상세 인터뷰 | 2-3개 | 깊이 있는 질문 |
| 마무리 | 1-2개 | 마지막 모호함 제거 |
→ 개념적 정의만! 구현 세부사항은 나중에.
도메인 인터뷰가 완료되려면 아래 6가지가 모두 정의되어야 한다:
도메인: users
초기 정보: "회원 관리 도메인"
완료된 항목: []
{
"questions": [
{
"question": "User 엔티티는 어떤 속성을 가지나요?",
"header": "User 속성",
"multiSelect": True,
"options": [
{
"label": "ID (고유 식별자)",
"description": "필수 - 시스템 자동 생성"
},
{
"label": "Email (이메일)",
"description": "로그인 및 연락용"
},
{
"label": "DisplayName (표시 이름)",
"description": "사용자 닉네임"
},
{
"label": "ProfileImage (프로필 사진)",
"description": "선택적"
}
]
},
{
"question": "User와 Translation의 관계는?",
"header": "관계 정의",
"multiSelect": False,
"options": [
{
"label": "1:N (한 사용자가 여러 번역 기록)",
"description": "가장 일반적"
},
{
"label": "1:1 (한 사용자당 하나의 번역만)",
"description": "제한적"
}
]
},
{
"question": "프로필 수정은 누가 할 수 있나요?",
"header": "권한",
"multiSelect": False,
"options": [
{
"label": "본인만",
"description": "일반적인 권한 구조"
},
{
"label": "본인 + 관리자",
"description": "관리자 개입 가능"
}
]
}
]
}
#### 배치 1 (완료 ✅)
| 항목 | 결정 |
|------|------|
| User 속성 | ID, Email, DisplayName, ProfileImage |
| User-Translation 관계 | 1:N (한 사용자가 여러 번역 기록) |
| 프로필 수정 권한 | 본인만 |
**새로운 모호함 발견**:
- ProfileImage는 어떤 형식으로 저장?
- Email 중복 허용 여부?
- DisplayName 길이 제한?
> 배치 2 질문 준비 중...
{
"questions": [
{
"question": "ProfileImage는 어떤 형식으로 저장하나요?",
"header": "이미지 저장",
"multiSelect": False,
"options": [
{
"label": "URL (외부 저장소)",
"description": "이미지는 외부에, 경로만 저장"
},
{
"label": "Base64 인코딩",
"description": "문자열로 직접 저장"
}
]
},
{
"question": "Email 중복은 허용되나요?",
"header": "Email 제약",
"multiSelect": False,
"options": [
{
"label": "허용",
"description": "같은 이메일로 여러 계정"
},
{
"label": "불허 (Unique)",
"description": "이메일당 하나의 계정"
}
]
}
]
}
#### 배치 2 (완료 ✅)
| 항목 | 결정 |
|------|------|
| ProfileImage 형식 | URL (외부 저장소 경로) |
| Email 중복 | 불허 (Unique 제약) |
**새로운 모호함**: 없음 ✅
### users 도메인 완료 ✅
**최종 정의**:
- 엔티티: User (4개 속성)
- 관계: Translation (1:N)
- 권한: 본인 수정만
- 제약: Email Unique, ProfileImage 선택적
좋은 설명:
| 도메인 | 상태 | 배치 수 |
|--------|------|------------|
| users | ✅ 완료 | 2 |
| translations | 🚧 진행 중 | 1 |
| missions | ⏳ 대기 | 0 |
| phrases | ⏳ 대기 | 0 |
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub ureca-corp/claude --plugin domain-book-builder