By litun
Implement production Decompose navigation and components in Kotlin Multiplatform projects: detect project structure across Android/iOS/Desktop/Web, generate components with state/lifecycle/back handling, configure Stack/Slot/Pages/Panels models, and integrate with Jetpack/Multiplatform Compose UI via guided skills and commands.
npx claudepluginhub litun/decomposeclaudeplugin --plugin decomposeThis skill should be used when the user is creating or modifying a Decompose component, mentions "ComponentContext", "retainedInstance", "stateKeeper", "instanceKeeper", "InstanceKeeper", "MutableValue", "Value<", component lifecycle, state preservation, instance retaining, back button handling in a component, or when writing a class that implements or extends a Decompose component interface. Also applies when the user asks how to structure a component, how to keep state across config changes, how to implement a ViewModel equivalent with Decompose, or how to handle the back button in a component.
This skill should be used when the user is integrating Decompose with Jetpack or Multiplatform Compose UI, mentions "subscribeAsState", the "Children" composable from Decompose, "stackAnimation", "predictiveBackAnimation", "ChildPages" composable, "ChildPanels" composable, rendering a ChildSlot in Compose, tab navigation with a bottom bar using Decompose, "LifecycleController" for desktop, Compose previews for Decompose components, or back handling in Compose using Decompose's BackHandler.
This skill should be used when the user is implementing navigation with Decompose, mentions "ChildStack", "ChildSlot", "ChildPages", "ChildPanels", "ChildItems", "StackNavigation", "SlotNavigation", "PagesNavigation", "PanelsNavigation", "childStack", "childSlot", "childPages", "childPanels", asks which navigation model to use, asks about push/pop navigation, dialog navigation, pager navigation, tab navigation, master-detail layout, deep linking with Decompose, navigation configuration classes, or "bringToFront".
A Claude Code plugin that provides production best practices for Decompose — the Kotlin Multiplatform library for navigation and component lifecycle management.
CLAUDE.md template to paste into any Decompose project for always-on guidanceIn a Claude Code session, run:
/plugin marketplace add Litun/DecomposeClaudePlugin
/plugin install decompose@Litun-DecomposeClaudePlugin
Or browse via /plugin → Discover and install from there.
Copy the contents of CLAUDE.md into your project's CLAUDE.md. This gives Claude baseline Decompose context in every conversation — no skill invocation needed.
Invoke any command when you need deep guidance on a specific topic:
/decompose:setup
Claude detects Decompose context and loads the right skill automatically. For example:
class DefaultXxxComponent(componentContext: ComponentContext) → decompose-component activatesdecompose-navigation activatesdecompose-compose activatesdecompose-componentinterface + DefaultXxxComponent patternComponentContext by componentContext delegationValue<T> / MutableValue<T> observable stateretainedInstance { } — ViewModel equivalentsaveable(serializer = ...) — process death survivaldoOnStart, doOnStop, doOnDestroy)decompose-navigation@Serializable, immutable, size limits)ChildStack example with push, pop, bringToFront, popTo, result deliveryChildSlot for dialogs/modalsChildPages for pagersChildPanels for responsive master-detailinitialStackdecompose-composesubscribeAsState() — Value<T> → Compose State<T>Children() composable with stackAnimation(fade() + scale())predictiveBackAnimation() for Android 13+ChildPages() composableChildPanels() with HorizontalChildPanelsLayoutLifecycleController for DesktopBackCallback (vs Jetpack BackHandler)Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Share bugs, ideas, or general feedback.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.