- 📁 assets/
- 📁 references/
- 📄 SKILL.md
REST 및 GraphQL API 설계 원칙 가이드. 새로운 API 설계, API 스펙 리뷰, API 설계 표준 수립 시 활용. 트리거: "API 설계", "REST", "GraphQL", "엔드포인트 설계", "API versioning", "API 패턴" 안티-트리거: "프론트엔드 UI", "데이터베이스 스키마만", "CSS/스타일링", "배포/인프라"
- 📁 .cursor/
- 📁 .github/
- 📁 agents/
- 📄 LICENSE
- 📄 README.md
- 📄 SKILL.md
Build, refactor, and review apps with Jetpack Compose and Compose Multiplatform (KMP/CMP) using MVI architecture. Covers coroutines, StateFlow, SharedFlow, Channel, ViewModels, state modeling, recomposition, Navigation 3/2, Koin/Hilt DI, Ktor networking, Paging 3, Room, DataStore, animations, Coil, accessibility, multiplatform resources, iOS/Swift interop, Gradle/AGP configuration, CI/CD, and desktop distribution. Use when working with @Composable, ViewModel, StateFlow, Flow, KMP, Ktor, Koin, Hilt, DataStore, Room, PagingData, recomposition, Xcode/iOS interop, Gradle build config, performance, testing, cross-platform, or code review. --- # Jetpack Compose & Compose Multiplatform This skill covers the full Compose app development lifecycle — from architecture and state management through UI, networking, persistence, performance, accessibility, cross-platform sharing, build configuration, and distribution. Jetpack Compose and Compose Multiplatform share the same core APIs and mental model. **Not all Jetpack libraries work in `commonMain`** — many remain Android-only. A subset of AndroidX libraries now publish multiplatform artifacts (e.g., `lifecycle-viewmodel`, `lifecycle-runtime-compose`, `datastore-preferences`), but availability and API surface vary by version. **Before adding any Jetpack/AndroidX dependency to `commonMain`, verify the artifact is published for all required targets by checking Maven Central or the library's official documentation.** CMP uses `expect/actual` or interfaces for platform-specific code. MVI (Model-View-Intent) is the recommended architecture, but the skill adapts to existing project conventions. ## Existing Project Policy **Do not force migration.** If a project already follows MVI with its own conventions (different base class, different naming, different file layout), respect that. Adapt to the project's existing patterns. The architecture pattern — unidirectional data flow with Event, State, and Effect — is what matters, not a speci