From android-skills
Guides declaring Kotlin symbols at the lowest possible visibility in multi-module Android projects, preventing accidental API surface expansion.
How this skill is triggered — by the user, by Claude, or both
Slash command
/android-skills:modularizationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Declare everything at the lowest visibility that still compiles.** Start `private`; widen to `internal` only when another file in the *same module* needs it; widen to `public` only when a *different module* actually consumes it. Kotlin defaults to `public`, and in a multi-module project that default is usually wrong — a `public` symbol joins the module's API surface: it leaks implementation a...
Declare everything at the lowest visibility that still compiles. Start private; widen to internal only when another file in the same module needs it; widen to public only when a different module actually consumes it. Kotlin defaults to public, and in a multi-module project that default is usually wrong — a public symbol joins the module's API surface: it leaks implementation across the boundary and you are then obliged to keep it stable.
public; its implementation class stays internal (DI-bound, never named from another module).internal (or private if a single file uses it). "Rendered by a composable in this module" does not require public — internal is visible to the whole module.private.Widening a symbol to public is a decision, not a default: confirm a real cross-module consumer first.
npx claudepluginhub rcosteira79/android-skills --plugin android-skillsProvides idiomatic Kotlin patterns and best practices for null safety, coroutines, sealed classes, extension functions, and type-safe DSL builders.
Provides baseline defaults and routing for Android and Kotlin Multiplatform (KMP) development. Covers DI, coroutines, networking, data layer, and cross-platform patterns.
Provides idiomatic Kotlin patterns for coroutines, Flow, KMP, Compose UI, Ktor, and type-safe DSLs. Use when building Kotlin apps requiring async, multiplatform, Android, or server-side Kotlin.