🌐 scrumia-kotlin-multiplatform-mobile
The Kotlin Multiplatform Mobile composition preset — six KMP-specific rule families and a single key that re-exports the satellites a KMP project runs.
slot · implementation
version · 0.2.0
What it is responsible for
Six refusals that shape a Kotlin Multiplatform Mobile project so the multiplatform rules apply where they apply and never leak where they don't. expect/actual stays in commonMain for the contract, in the platform source set for the implementation; source-set layout keeps platform code in its own source set; platform tests and shared dependencies live where they compile for every target; a Cocoapods pod is declared once across the KMP module and the iOS project; the target list is the one in the Gradle DSL, not the one an IDE invents; Gradle wiring goes through the Kotlin Multiplatform plugin's source-set DSL, not raw implementation(...). Ships a scrumia-kotlin-multiplatform-mobile reference skill and re-exports the six satellites (scrumia-kotlin, scrumia-gradle, scrumia-ktor, scrumia-material3, scrumia-effect, scrumia-functional-programming) by configuration.
What it refuses
An expect outside commonMain. An actual in commonMain. Android imports in commonMain, Swift bridges in commonMain, JVM-only APIs in iosMain. A platform test in commonTest. A shared dependency in commonMain that ships to a target with no API surface for it. A Cocoapods pod declared in both the KMP module and the iOS project's Podfile. A target the build does not compile for, or a target the IDE invents. A dependency in dependencies { implementation(...) } instead of dependencies { "commonMainImplementation"(...) }.
The assumption it makes
Assumes Kotlin Multiplatform Mobile is a distinct surface from a pure-JVM project, and that the rules on what crosses source sets and what doesn't are the rule set a KMP project is owed. The pivot is compose-only: it ships a reference, not a stack-membership; the satellites are dissociable; the pivot is the way to get the seven together rather than the way any one of them depends on another. Costs the friction of a satellite list to update when one is added, pays back in a single key that re-exports the rules a KMP project runs.
Its skills
scrumia-kotlin-multiplatform-mobile
What it plugs into
| Register | Direction | Module |
|---|---|---|
find-spec | contributes | scrumia-specs |
implement | contributes | scrumia-github-project |
review | contributes | scrumia-github-project |
Install it
/plugin install scrumia-kotlin-multiplatform-mobile@scrumia