Back to list
shoheikawano

android-compose-creator

by shoheikawano

3🍴 0📅 Jan 19, 2026

SKILL.md


name: android-compose-creator description: | Generate Android/Kotlin Multiplatform code using Jetpack Compose and Compose Multiplatform (CMP). Use when: (1) Creating new Compose UI components, (2) Building screens with Compose, (3) Implementing state management in Compose, (4) Writing Compose Multiplatform shared UI, (5) Reviewing or refactoring Compose code, (6) Any Android/KMP UI development task. Triggers: "compose", "android ui", "kotlin multiplatform", "CMP", "jetpack compose", "composable", "@Composable", "Material3", "screen", "component". context: fork agent: general-purpose user-invocable: true allowed-tools:

  • Read
  • Write
  • Edit
  • Glob
  • Grep
  • Bash
  • Skill

Android Compose Creator

Orchestrator for Compose Multiplatform code generation. Can delegate to specialized sub-skills.

Coding Standards

MANDATORY: This skill follows kotlin-compose-standards. All generated code MUST comply with these standards:

  • Trailing comma EXCEPT for Modifier arguments
  • Parameter order: required → Modifier → optional
  • Modifier passed last when calling composables
  • Each Modifier method on its own line
  • New line at end of file

Sub-Skills

SkillWhen to Delegate
/compose-state-generatorViewModel, UiState, StateFlow patterns
/compose-test-generatorUI tests, screenshot tests

Workflow

  1. Analyze request - UI only? Needs ViewModel? Needs tests?
  2. Check existing code - Match project patterns
  3. Generate/delegate:
    • Simple UI component → generate inline
    • Screen with state → invoke /compose-state-generator then generate UI
    • Tests requested → invoke /compose-test-generator
  4. Verify - Run build if requested

Quick Reference

Composable Function Naming

// DO: PascalCase for UI-emitting composables
@Composable
fun ProfileCard(user: User, modifier: Modifier = Modifier) { }

// DO: camelCase for value-returning composables
@Composable
fun rememberProfileState(): ProfileState { }

Standard Parameter Order

@Composable
fun Component(
    // 1. Required parameters
    title: String,
    onClick: () -> Unit,
    // 2. Modifier parameter
    modifier: Modifier = Modifier,
    // 3. Optional parameters with defaults
    enabled: Boolean = true,
) { }

State Hoisting Pattern

// Stateless (preferred for reusability)
@Composable
fun Counter(
    count: Int,
    onIncrement: () -> Unit,
    modifier: Modifier = Modifier,
) { }

// Stateful wrapper
@Composable
fun Counter(modifier: Modifier = Modifier) {
    var count by remember { mutableStateOf(0) }
    Counter(
        count = count,
        onIncrement = { count++ },
        modifier = modifier  // Modifier last when calling, no trailing comma
    )
}

References

Load these based on the task:

FileWhen to Read
composables.mdWriting any composable function
state-management.mdState, remember, side effects
architecture.mdScreen architecture, ViewModel integration
performance.mdOptimizing recomposition, lazy lists
multiplatform.mdCMP expect/actual, platform-specific code
testing.mdWriting UI tests for composables

Core Principles

  1. Unidirectional Data Flow - State flows down, events flow up
  2. Single Source of Truth - One owner for each piece of state
  3. Composition over Inheritance - Small, focused composables
  4. Modifier as Last Parameter - Always accept and apply Modifier
  5. Stateless by Default - Hoist state to callers when possible

Score

Total Score

40/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon