Scaffold Android features with Clean Architecture, MVI, Jetpack Compose, Hilt, and Kotlin
npx claudepluginhub cure-consulting-group/productengineeringskillsThis skill uses the workspace's default tool permissions.
Generates complete, production-ready Android feature scaffolding using Clean Architecture, MVI, Jetpack Compose, Hilt, and Kotlin Coroutines/Flow.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Generates complete, production-ready Android feature scaffolding using Clean Architecture, MVI, Jetpack Compose, Hilt, and Kotlin Coroutines/Flow.
:feature:[name]/
├── domain/
│ ├── model/ [FeatureName].kt ← Domain model (pure Kotlin)
│ └── usecase/ Get[FeatureName]UseCase.kt ← UseCase(s)
├── data/
│ ├── dto/ [FeatureName]Dto.kt ← Firestore/API DTO + mapper
│ ├── source/ [FeatureName]DataSource.kt ← Remote/local data source
│ └── repository/ [FeatureName]RepositoryImpl.kt ← Repository implementation
├── presentation/
│ ├── [FeatureName]ViewModel.kt ← MVI ViewModel
│ ├── [FeatureName]Screen.kt ← Compose screen
│ ├── [FeatureName]UiState.kt ← Sealed UI state
│ └── components/ [FeatureName]*.kt ← Extracted composables
└── di/
└── [FeatureName]Module.kt ← Hilt module
Before starting, gather project context silently:
PORTFOLIO.md if it exists in the project root or parent directories for product/team contextcat package.json 2>/dev/null || cat build.gradle.kts 2>/dev/null || cat Podfile 2>/dev/null to detect stackgit log --oneline -5 2>/dev/null for recent changesls src/ app/ lib/ functions/ 2>/dev/null to understand project structureAsk if not clear:
Generate code following Clean Architecture patterns with full separation between domain, data, and presentation layers. For a full feature scaffold, generate ALL layers before outputting.
Every feature follows this exact state pattern:
// [Feature]UiState.kt
sealed interface [Feature]UiState {
data object Loading : [Feature]UiState
data class Success(val data: [Feature]Data) : [Feature]UiState
data class Error(val message: String) : [Feature]UiState
data object Empty : [Feature]UiState
}
// [Feature]UiEvent.kt (one-shot events)
sealed interface [Feature]UiEvent {
data class ShowSnackbar(val message: String) : [Feature]UiEvent
data class NavigateTo(val route: String) : [Feature]UiEvent
data object NavigateBack : [Feature]UiEvent
}
// [Feature]UiAction.kt (user intents → ViewModel)
sealed interface [Feature]UiAction {
data object Refresh : [Feature]UiAction
data class OnItemClick(val id: String) : [Feature]UiAction
data object OnBackClick : [Feature]UiAction
}
strings.xmldimens.xml or Compose tokensrunCatching or Result@Preview (light + dark)contentDescriptionGenerate code in this order:
After code generation, output a summary table:
| File | Layer | Status |
|------|-------|--------|
| PlayerProfile.kt | Domain | Generated |
| PlayerProfileDto.kt | Data | Generated |
...
language: Kotlin
ui: Jetpack Compose
architecture: MVI + Clean Architecture
di: Hilt
async: Coroutines + StateFlow
testing: JUnit5 + MockK + Turbine
You MUST generate actual code files, not just describe patterns. Use the Write tool to create:
domain/model/{Feature}.kt, domain/usecase/{Feature}UseCase.ktdata/dto/{Feature}Dto.kt, data/repository/{Feature}RepositoryImpl.kt, data/mapper/{Feature}Mapper.ktpresentation/{feature}/{Feature}ViewModel.kt, presentation/{feature}/{Feature}Screen.kt, presentation/{feature}/{Feature}Contract.kt (MVI state/event/effect)di/{Feature}Module.kt (Hilt)test/{feature}/{Feature}ViewModelTest.kt, test/{feature}/{Feature}UseCaseTest.ktBefore generating, use Glob to find existing feature modules and match their package structure and naming conventions.
/database-architect — for Room schema design and migration strategies when local persistence is needed/testing-strategy — for test pyramid standards and coverage rules/ci-cd-pipeline — for Android build and distribution workflows/accessibility-audit — for Compose accessibility and content description standards