Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,9 @@ feature/* → develop → main
### 9.3 민감 설정 관리
See @rules/frontend/security.md

### 9.4 Git Worktree 워크플로우
See @rules/git-worktree.md

---

## 10. 테스트 전략
Expand All @@ -240,3 +243,32 @@ See @rules/frontend/test-strategy.md
### 10.3 MVP 제외 항목

- UI 테스트 / 스냅샷 테스트는 MVP에서 제외

---

## 11. 빌드 검증 규칙

### 11.1 작업 완료 후 필수 검증

작업이 완료되면 반드시 **xcodebuildmcp**로 빌드 검증을 수행한다.

1. `session_show_defaults` — 프로젝트/스킴/시뮬레이터 확인
2. `build_sim` — 빌드 검증 (DoriApp 스킴 기준)

### 11.2 검증 실패 시 재시도

- 빌드 실패 시 원인을 분석하고 수정 후 **최대 5회까지** 재시도한다
- 5회 초과 시 사용자에게 실패 원인을 보고하고 중단한다

### 11.4 검증 중 질문 금지

- 검증이 **모두 완료될 때까지** 사용자에게 질문하거나 진행 여부를 묻지 않는다
- 검증 결과를 모아서 완료 후 한 번에 보고한다

### 11.3 검증 대상 스킴

| 스킴 | 용도 |
|------|------|
| `DoriApp` | 전체 앱 빌드 (기본 검증) |
| `DoriDesignSystem` | 디자인 시스템 단독 검증 |
| `FeatureCalendar` / `FeatureHistory` 등 | Feature 단독 검증 |
87 changes: 87 additions & 0 deletions .claude/rules/git-worktree.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Git Worktree 워크플로우

## 구조 원칙

워크트리는 반드시 **메인 레포와 형제(sibling) 폴더**로 생성한다.

```
Dori-Workspace/ ← git 미관리 폴더 (절대 git init 금지)
Dori-iOS/ ← main worktree (git repo 본체)
Dori-iOS-develop/ ← worktree: develop
Dori-iOS-feature31/ ← worktree: feature/31-...
Dori-iOS-fix32/ ← worktree: fix/32-...
Dori-iOS-fix34/ ← worktree: fix/34-...
```

**핵심 규칙**: `Dori-iOS` 폴더 **내부**에 워크트리를 생성하지 않는다.

---

## 워크트리 추가

반드시 **`Dori-iOS` 디렉토리 안에서** 실행한다.

```bash
cd ~/Desktop/Dori-Workspace/Dori-iOS

# ../ 가 핵심 — 한 단계 위(Dori-Workspace)에 생성
git worktree add ../Dori-iOS-feature31 feature/31-custom-navigationBar
git worktree add ../Dori-iOS-fix32 fix/32-textfield-validation
git worktree add ../Dori-iOS-develop develop
```

### 생성 직후 필수 체크

- 새 worktree를 만든 직후 `Projects/App/Resources/Common.xcconfig` 파일 존재 여부를 확인한다.
- 파일이 없으면 `~/Desktop/Dori-Workspace/Security_Common/Common.xcconfig`를 복사해서 동일 경로에 둔다.
- 이 파일이 없으면 `Tuist generate`, 앱 런치, 네트워크 설정이 모두 깨질 수 있다.

### 네이밍 규칙

| 브랜치 | 워크트리 폴더명 |
|--------|----------------|
| `develop` | `Dori-iOS-develop` |
| `feature/{n}-{desc}` | `Dori-iOS-feature{n}` |
| `fix/{n}-{desc}` | `Dori-iOS-fix{n}` |

---

## 워크트리 제거

```bash
cd ~/Desktop/Dori-Workspace/Dori-iOS

# 1. 워크트리 제거 (폴더도 함께 삭제됨)
git worktree remove ../Dori-iOS-feature31

# 2. 고아 참조 정리
git worktree prune

# 3. (선택) 브랜치도 삭제
git branch -d feature/31-custom-navigationBar
```

### 강제 제거 (미커밋 변경사항이 있을 때)

```bash
git worktree remove --force ../Dori-iOS-feature31
```

---

## 현재 워크트리 확인

```bash
git worktree list
```

---

## 자주 하는 실수

| ❌ 잘못된 사용 | ✅ 올바른 사용 |
|---------------|---------------|
| `Dori-Workspace`에서 `git worktree add` 실행 | `Dori-iOS` 안에서 실행 |
| `git worktree add Dori-iOS-feature31 ...` (상대경로, `../` 없음) | `git worktree add ../Dori-iOS-feature31 ...` |
| `Dori-Workspace`에 `git init` | 절대 하지 않음 |
| 메인 레포 내부에 워크트리 생성 | 형제 폴더로 생성 |
Loading