Skip to content

Commit 0593024

Browse files
committed
CLAUDE.md 업데이트
- orbit을 레거시로 인지하도록 내용 수정 - 작업 완료, 파일 수정 권한 요청, 기타 질문 등 시점에 알림을 보내도록 수정
1 parent 581fd6e commit 0593024

1 file changed

Lines changed: 59 additions & 4 deletions

File tree

CLAUDE.md

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ app → presentation → domain ← data
3939
- `customview/`: Custom views
4040
- `extension/`: Extension functions
4141
- `model/`: Presentation models
42-
- Uses Orbit MVI for state management
42+
- **State Management**: Gradually migrating away from Orbit MVI (legacy)
4343

4444
- **app**: Application module
4545
- `di/`: Application-level Hilt modules
@@ -109,7 +109,7 @@ o_auth_web_client_id="..."
109109
### Key Libraries
110110
- **DI**: Hilt 2.48 with KAPT
111111
- **Networking**: Retrofit 2.9.0, OkHttp logging interceptor
112-
- **State Management**: Orbit MVI 6.0.0
112+
- **State Management**: Orbit MVI 6.0.0 (LEGACY - being phased out)
113113
- **Navigation**: Navigation Component 2.7.4 with SafeArgs
114114
- **Async**: Coroutines 1.7.3
115115
- **Database**: Room 2.5.2 with KSP for annotation processing
@@ -125,12 +125,19 @@ o_auth_web_client_id="..."
125125
Note: Project uses both KAPT (for Hilt, Glide) and KSP (for Room) for annotation processing.
126126

127127
### Architecture Patterns
128-
- **MVI**: Orbit for unidirectional data flow
128+
129+
- **MVI**: Orbit for unidirectional data flow (LEGACY - being phased out)
129130
- **Repository Pattern**: Domain defines interfaces, data implements them
130131
- **Use Cases**: Single responsibility business logic
131132
- **Custom Result Type**: Network calls return `Result<T>` using custom `ResultCallAdapter`
132133

133-
## State Management with Orbit MVI
134+
## State Management with Orbit MVI (LEGACY)
135+
136+
**⚠️ DEPRECATION NOTICE**: Orbit MVI is being gradually phased out from this project. When working
137+
on new features or refactoring existing code, prefer alternative state management approaches instead
138+
of Orbit.
139+
140+
### Legacy Orbit Pattern (Still in use, but avoid for new features)
134141

135142
ViewModels extend `BaseViewModel<STATE, SIDE_EFFECT>` which implements:
136143
- `ContainerHost` from Orbit
@@ -150,6 +157,12 @@ class SomeViewModel @Inject constructor(
150157
}
151158
```
152159

160+
### Migration Strategy
161+
162+
- **For new features**: Do NOT use Orbit MVI
163+
- **For existing features**: Gradually remove Orbit when refactoring
164+
- **When in doubt**: Ask the user for guidance on state management approach
165+
153166
## Fragment Base Classes
154167

155168
- **NewBaseFragment**: Basic fragment with View Binding
@@ -297,3 +310,45 @@ The project follows a Git Flow-based branching strategy:
297310

298311
### Current Branch
299312
You are on: `feature/NR-122`
313+
314+
## User Notifications
315+
316+
**IMPORTANT**: Always send notifications to the user using `terminal-notifier` in the following
317+
scenarios:
318+
319+
### 1. Task Completion
320+
321+
After completing ANY task, send a notification:
322+
323+
```bash
324+
terminal-notifier -title "Claude Code" -message "[Task description]" -sound default
325+
```
326+
327+
Examples:
328+
329+
- File creation:
330+
`terminal-notifier -title "Claude Code" -message "Created Color.kt and Type.kt files" -sound default`
331+
- Build completion:
332+
`terminal-notifier -title "Claude Code" -message "Build completed successfully" -sound default`
333+
- Error fixes:
334+
`terminal-notifier -title "Claude Code" -message "Fixed 5 type errors" -sound default`
335+
336+
### 2. User Input Required
337+
338+
When asking the user a question (using AskUserQuestion tool or otherwise), send a notification
339+
BEFORE asking:
340+
341+
```bash
342+
terminal-notifier -title "Claude Code" -message "질문이 있습니다" -sound default
343+
```
344+
345+
This applies to:
346+
347+
- Clarification questions about implementation approaches
348+
- Choices between multiple options
349+
- Requests for additional information
350+
- **Permission to modify files**: When asking which files can be modified or if a specific file can
351+
be edited
352+
- Any situation requiring user input to proceed
353+
354+
The notification helps the user know when their attention is needed.

0 commit comments

Comments
 (0)