Skip to content
android-agent-skills logo

Android Agent Skills

android-agent-skills

Production-ready Agent Skills framework for Android Kotlin development. Provides Clean Architecture patterns, Jetpack Compose best practices, validation DSL, MVI state management, error handling, and AI-powered code generation. Use when building Android apps with quality standards, generating Vie...

SKILL.md

Full skill instructions

Android Agent Skills

A production-ready Agent Skill framework for Android Kotlin development with Clean Architecture, Jetpack Compose, and AI-powered code generation.

When to use this skill

Use this skill when:

  • Building Android apps with Kotlin
  • Implementing Clean Architecture (ViewModel → UseCase → Repository)
  • Creating Jetpack Compose UIs with proper stability
  • Generating ViewModels, Repositories, UseCases, or Compose Screens
  • Writing Agent Skills (pure Kotlin modules)
  • Implementing validation, error handling, or state management
  • Reviewing code for architecture compliance

Quick Start

  1. Read context first: skills/​AI_CONTEXT.md
  2. Use generation commands: @gen-viewmodel, @gen-skill, @gen-screen
  3. Follow templates: skills/​templates/
  4. Check quality: @analyze-skill, @review

Available Commands

Code Generation

CommandDescription
@gen-viewmodel [name]Generate MVI ViewModel with StateFlow
@gen-skill [name]Generate pure Kotlin Agent Skill
@gen-screen [name]Generate Compose Screen (Route + Screen)
@gen-repository [name]Generate Repository with offline-first
@gen-usecase [name]Generate UseCase with Result<T>
@gen-pipeline [name]Generate skill pipeline
@gen-test [component]Generate tests (auto-detect type)

Analysis & Review

CommandDescription
@analyze-skillAnalyze skill quality (aim for 90+)
@review [file]Review code for rule compliance
@review-changesReview git changes for violations

Quick Access

CommandDescription
/​contextLoad AI_CONTEXT.md
/​summaryLoad AGENT_SUMMARY.md (core rules)
/​decisionPattern selection decision tree
/​validateValidation DSL patterns
/​helpShow all commands (English)
/​help-viHiển thị trợ giúp (Tiếng Việt)

Critical Rules (Never Break)

// 1. ALWAYS rethrow CancellationException
catch (e: CancellationException) { throw e }

// 2. State: private mutable, public immutable
private val _state = MutableStateFlow(UiState())
val state: StateFlow<UiState> = _state.asStateFlow()

// 3. Events use Channel, NOT SharedFlow
private val _events = Channel<Event>()

// 4. Mark all state classes @Immutable
@Immutable data class UiState(...)

// 5. Architecture: ViewModel → UseCase → Repository
// NEVER: ViewModel → Repository directly

Key References

Templates

Architecture Overview

┌─────────────────────────────────────────────────────┐
│                    UI Layer                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │
│  │   Screen    │  │   Route     │  │  ViewModel  │  │
│  │ (Stateless) │◄─│ (Stateful)  │◄─│   (MVI)     │  │
│  └─────────────┘  └─────────────┘  └──────┬──────┘  │
└───────────────────────────────────────────┼─────────┘
                                            │
┌───────────────────────────────────────────┼─────────┐
│                 Domain Layer              │         │
│  ┌─────────────┐  ┌─────────────┐  ┌──────▼──────┐  │
│  │   Skill     │  │  UseCase    │◄─│  Interface  │  │
│  │ (Pure Kotlin)│  │ invoke()   │  │ Repository  │  │
│  └─────────────┘  └─────────────┘  └──────┬──────┘  │
└───────────────────────────────────────────┼─────────┘
                                            │
┌───────────────────────────────────────────┼─────────┐
│                  Data Layer               │         │
│  ┌─────────────┐  ┌─────────────┐  ┌──────▼──────┐  │
│  │   Remote    │  │   Local     │  │  Repository │  │
│  │ DataSource  │  │ DataSource  │◄─│    Impl     │  │
│  └─────────────┘  └─────────────┘  └─────────────┘  │
└─────────────────────────────────────────────────────┘

Guides (35 available)

All guides in skills/​guides/:

GuideTopic
01-architecture.mdClean Architecture
02-coding-conventions.mdKotlin style
05-jetpack-compose.mdCompose basics
07-state-management.mdMVI, StateFlow
10-error-handling.mdResult pattern
11-testing.mdUnit/​UI tests
24-validation-rules.mdValidation DSL
30-skill-analysis.mdSkill quality
31-pipeline-patterns.mdSkill pipelines
32-modern-kotlin-features.mdKotlin 2.0+, K2 compiler
33-agent-feedback-loop.mdFeedback tracking, metrics
34-logging-analytics.mdTimber, analytics, crash reporting
35-gradle-optimization.mdBuild optimization, convention plugins

Validation Quick Reference

// Top 5 validation functions
requireNotBlank(input.name, "name")
requireValidEmail(input.email, "email")
requireInRange(input.age, 13..150, "age")
requireNotEmpty(input.items, "items")
require(a < b) { "a must be < b" }

File Structure

android-agent-skills/
├── SKILL.md                    # This file - entry point
├── skills/
│   ├── AI_CONTEXT.md           # Quick reference (read first)
│   ├── AGENT_SUMMARY.md        # Core rules & patterns
│   ├── AI_PROMPTS.md           # All @gen-* prompts
│   ├── guides/                 # 35 detailed guides
│   └── templates/              # Code templates & examples
├── *_CHEAT_SHEET.md            # Quick reference sheets
└── README.md                   # GitHub documentation