Loading...
Loading...
Owns project and build-level work for Compose and Compose Multiplatform apps: bootstrapping a new project, adopting the kit in an existing project, adding or extracting a module, convention plugins in build-logic, the version catalog, and CI plus agent hooks. Use when starting a Compose Multiplatform app, adding a module, or editing settings.gradle.kts, build.gradle.kts, build-logic, libs.versions.toml, or packaging. Do NOT use for routing and architecture choices (compose-architecture), feature code (compose-feature), repositories and persistence (compose-data), composables or resources (compose-ui), or commonMain vs platform code (compose-platform).
npx skill4agent add meet-miyani/compose-skill compose-projectcompose-architecturegradle/libs.versions.tomltemplates/compose-architecturegradle/libs.versions.toml| Task | Use instead |
|---|---|
| Route first: decide the task path and files to read | the |
| Add, change or review a screen, destination or slice | the |
| Repositories, Ktor, Room, DataStore, Paging, offline-first | the |
| the |
| Composables, stability, resources | the |
## Project decisionscompose-architectureexisting-projects.md:feature:tags:androidApp:appandroid {}api().composekit.confrun-checks.shcompose-architecture:appgradle/libs.versions.tomlkotlin.collections.*compose-uiwhen-neededUI_MODEL=always.composekit.conf## Project decisionsrun-checks.shgradle/libs.versions.tomltemplates/project/gradle.propertiesgradle/libs.versions.tomlbuild-logic/:core:mvi:core:errorcompose-architecture:core:designsystem:feature:notes:composeApp:androidApp:app:data:<domain>bootstrap.mdinstall-guards.sh.composekit.confbootstrap.mdUI_MODELwhen-neededalways## Project decisionsAGENTS.mdCLAUDE.mdbootstrap.mdenforcement.mdcompose-featurescripts/audit-project.shadopt-existing.mdcompose-architecture## Project decisionsapi().composekit.confrun-checks.shscripts/composekit/run-checks.shinstall-guards.shenforcement.md| Need | Shape |
|---|---|
| Android, iOS, Desktop, Web from one codebase | CMP app: shared |
| Android only, now and for the foreseeable future | Android-only: |
| Shape |
|---|---|
| AGP 9 or newer | Shared module uses |
| AGP below 9 | Keep |
compose-architecture| Case | Plan |
|---|---|
| Case 1 (green field or kit-shaped) | The kit strictly, from the first module |
| Case 2 (coherent different architecture) | This change follows the project's pattern; kit migration is a separate task |
| Case 3 (incoherent, competing patterns) | New code follows the kit; name the incoherence; propose migration separately |
| Thought | Reality |
|---|---|
"I'll park the tags logic in | No. Rule 6: the root is a temporary scaffold, never a home. Say no first, then create the feature module. |
| "I'll skip the guard config; we will clean it up later." | No. Rule 4: unregistered means unguarded. Register before done. |
| "I'll do the full rewrite to the kit inside this change." | No. Rule 5: incremental, WARN mode first. A coherent project keeps its pattern for this change. |
| "I'll copy the target block into this module; it is only one module." | No. Rule 1: convention plugins own targets. One copy becomes fifty. |
"I'll use | No. Rule 2: |
| "I'll pin this version in the module file; the catalog is for libraries." | No. Rule 7: every version lives once in |
| "I'll call one guard script from CI; that covers it." | No. Rule 10: CI calls the registry. One script is a second registry that drifts. |
| "I'll write the hook into the user's config now; they will want it." | No. Print the snippet; never write it without consent. |
| "This plugin id looks right; I remember it." | Stop and verify now (stance item 1). An invented plugin id fails every module at sync time. |
scripts/composekit/run-checks.shscripts/run-checks.sh <project-root>scripts/audit-project.sh <project-root>rg -n "compileSdk|minSdk|targetSdk|jvmTarget|jvmToolchain" --glob '*.gradle.kts' <module-dirs>build-logic/libs.api(.composekit.conf.composekit.confAGENTS.mdCLAUDE.md## Project decisionsrun-checks.shlibs.versions.toml## Project decisions.composekit.confapiimplementationinstall-guards.sh