Skip to content
Ali Sadeghi edited this page Jan 6, 2026 · 7 revisions

Skills

Skills activate automatically based on context—no manual invocation needed.

creating-kmp-feature

Auto-activates when: User mentions "create feature", "new module", "add feature"

Complete Feature Generation Workflow:

Phase 0: Context Discovery (AUTO)

  • Detect PKG_PREFIX from feature/*/build.gradle.kts
  • Find initKoin.kt path (contains startKoin)
  • Find BaseAppNavHost.kt path (contains NavHost)
  • Detect core module packages

Phase 1: PRD Generation

  • Analyze user prompt
  • Generate Product Requirements Document
  • Save to .claude/docs/{feature}/prd.txt
  • ⏸️ Wait for user approval

Phase 2: Task Generation

  • Break PRD into implementation tasks
  • Assign tasks to agents (data, ui, integration)
  • Save to .claude/docs/{feature}/tasks.md
  • ⏸️ Wait for user approval

Phase 3: Implementation (Parallel)

  • 🔧 data-layer-agent (runs in parallel)
    • Create models with @Serializable
    • Create Ktor Resources (type-safe routes)
    • Implement RemoteDataSource (interface + impl)
    • Implement Repository (interface + impl)
    • Validate build
  • 🎨 ui-layer-agent (runs in parallel)
    • Create UiModel (presentation models)
    • Implement ViewModel with 4-state pattern
    • Create Composable Screens with X-components
    • Setup Navigation with type-safe routes
    • Validate build
  • 🔗 integration-agent (runs after data + ui)
    • Create DI module with Koin
    • Add to settings.gradle.kts
    • Add dependency to composeApp
    • Register in initKoin.kt
    • Wire navigation in BaseAppNavHost.kt
    • Generate living specification
    • Validate full build

Phase 4: Cleanup

  • Verify spec.md exists
  • Remove prd.txt (ephemeral)
  • Remove tasks.md (ephemeral)
  • Remove task-*.md files (ephemeral)

modifying-kmp-feature

Auto-activates when: User mentions "change feature", "modify feature", "update feature", "add to feature"

Spec-First Modification Workflow:

Phase 0: Context Discovery (AUTO)

  • Detect project structure

Phase 1: Load Specification

  • Check for .claude/docs/{feature}/spec/*.md
  • If missing: Generate spec using /generate-spec
  • Load spec into context

Phase 2: Understand Current Implementation

  • Parse spec for architecture patterns
  • Identify data models, API contracts
  • Understand state management
  • Map navigation structure

Phase 3: Plan Changes

  • Determine affected layers (data/ui/integration)
  • Load relevant architecture references
  • Plan implementation approach
  • Identify files to modify

Phase 4: Implement Changes

  • Apply changes following established patterns
  • Maintain consistency with existing code
  • Follow 10 critical rules

Phase 5: Validate

  • Run incremental build
  • Run ktlintFormat
  • Fix any errors

Phase 6: Update Specification

  • Regenerate spec from implementation
  • Add changelog entry at top
  • Preserve previous changelog entries

using-design-system

Auto-activates when: Working in feature/*/ui/ directories, creating Composables, mentions "UI", "screen", "component"

Design System Enforcement:

Ensures X-components are used instead of Material3, preventing design drift.

Component Mappings:

  • Scaffold → XScaffold
  • Button → XButton
  • OutlinedButton → XOutlinedButton
  • TextButton → XTextButton
  • Text → XText
  • TextField → XTextField
  • OutlinedTextField → XOutlinedTextField
  • Card → XCard
  • Icon → XIcon
  • IconButton → XIconButton
  • Switch → XSwitch
  • Checkbox → XCheckbox
  • RadioButton → XRadioButton
  • Divider → XDivider
  • CircularProgressIndicator → XLoadingIndicator

bridging-swift-kotlin

Auto-activates when: User mentions "Swift bridge", "iOS integration", "native SDK"

Swift-to-Kotlin Integration Patterns:

Uses interface injection to integrate iOS-specific SDKs while maintaining Clean Architecture.

Pattern:

  1. Define Kotlin interface (commonMain)
  2. Implement in Kotlin (androidMain) - usually stub
  3. Implement in Swift (iosMain via expect/actual)
  4. Inject via Koin DI

Clone this wiki locally