-
Notifications
You must be signed in to change notification settings - Fork 0
Complete Feature Creation
Ali Sadeghi edited this page May 28, 2026
·
4 revisions
End-to-end workflow for building a new feature with the creating-kmp-feature skill.
> Create product catalog feature with list, search, and detail screens
Phase 0: Context Discovery (auto)
✓ PKG_PREFIX: thisissadeghi
✓ INIT_KOIN_PATH: composeApp/src/commonMain/kotlin/thisissadeghi/kmpilot/initKoin.kt
✓ NAV_HOST_PATH: composeApp/src/commonMain/kotlin/thisissadeghi/kmpilot/BaseAppNavHost.kt
Phase 1: Design Artifact Detection
✓ No blueprint for "productcatalog" → normal mode
Phase 2: PRD Generation
✓ Generated: .claude/docs/productcatalog/prd.md
→ user approval required
Phase 3: Task Generation
✓ Generated: .claude/docs/productcatalog/tasks.md
→ user approval required
Activate hook marker: touch /tmp/.claude-kmpilot-skill-active
Phase 4: Implementation (parallel)
✓ data-layer-agent complete (12 files created)
✓ ui-layer-agent complete (8 files created)
✓ integration-agent complete (spec + 4 integration points)
Phase 5: Cleanup
✓ Removed prd.md, tasks.md, task-*.md
✓ Kept spec: .claude/docs/productcatalog/spec.md
Remove hook marker: rm -f /tmp/.claude-kmpilot-skill-active
✅ Feature Complete
Next: navController.navigate(ProductCatalogRoute)
feature/productcatalog/build.gradle.kts
feature/productcatalog/src/commonMain/kotlin/{pkg}/productcatalog/
├── data/
│ ├── model/Product.kt # @Serializable DTO
│ ├── remote/ProductResources.kt # Ktor Resources
│ ├── datasource/
│ │ ├── ProductRemoteDataSource.kt # interface
│ │ └── ProductRemoteDataSourceImpl.kt
│ └── repository/
│ ├── ProductRepository.kt # interface
│ └── ProductRepositoryImpl.kt
feature/productcatalog/src/commonMain/kotlin/{pkg}/productcatalog/
├── presentation/
│ ├── ProductCatalogUiModel.kt
│ ├── ProductCatalogViewModel.kt # uses setState { copy() }
│ ├── ui/
│ │ ├── ProductCatalogScreen.kt # Screen + ScreenRoot + state routing
│ │ └── components/ # self-contained units
│ └── navigation/
│ └── ProductCatalogNavigation.kt # Route + NavGraphBuilder extension
feature/productcatalog/src/commonMain/kotlin/{pkg}/productcatalog/
└── di/ProductCatalogModules.kt # object : BaseFeature
Modified:
settings.gradle.ktscomposeApp/build.gradle.kts-
initKoin.kt(addsProductCatalogModules.initialize()) -
BaseAppNavHost.kt(addsproductcatalog(...)call)
Living spec:
.claude/docs/productcatalog/spec.md
If a Stitch design blueprint exists at .claude/docs/productcatalog/designs/productcatalog_blueprint.md with blueprintConsumed: false:
Phase 1: Design Artifact Detection
✓ Blueprint found → entering design-aware mode
Phase 4:
✓ XTheme updated (missing M3 roles added to both schemes)
✓ X-Component Constraint Check completed
✓ UI implemented from blueprint Component Tree
✓ Post-Implementation Checklist verified
Phase 5:
✓ blueprintConsumed set to true in stitch-project.json
See Design-Pipeline for the full design → implement → verify flow.
- Creating-KMP-Feature — full skill detail
- Feature-Modification — for changing an existing feature
- Project-Requirements — patterns every generated file follows
Back to Workflows