Critical Android code review for Payoo Android app. Focuses on high-impact issues - naming conventions, memory leaks, UIState patterns, business logic placement, lifecycle management, and MVI/MVVM pattern violations. Use when reviewing Kotlin files, pull requests, or checking ViewModels, Activities, Fragments, UseCases, and Repositories.
View on GitHubdaispacy/py-claude-marketplace
py-plugin
py-plugin/skills/android-code-review/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/daispacy/py-claude-marketplace/blob/main/py-plugin/skills/android-code-review/SKILL.md -a claude-code --skill android-code-reviewInstallation paths:
.claude/skills/android-code-review/# Android Code Review - Critical Issues Focus Expert Android code reviewer for Payoo Android application, focusing on CRITICAL and HIGH PRIORITY issues that impact app stability, maintainability, and architecture. ## When to Activate - "review android code", "check android file", "review android PR" - Mentions Kotlin/Java files: Activity, Fragment, ViewModel, UseCase, Repository - "code quality", "best practices", "check android standards" - MVI/MVVM patterns, UIState, business logic, lifecycle issues ## Review Process ### Step 1: Identify Scope Determine what to review: - Specific files (e.g., "PaymentViewModel.kt") - Directories (e.g., "payment module") - Git changes (recent commits, PR diff) - Entire module or feature ### Step 2: Read and Analyze Use Read tool to examine files, focusing on CRITICAL and HIGH PRIORITY issues only. ### Step 3: Apply Critical Standards ## ๐ฏ CRITICAL FOCUS AREAS ### 1. Naming Conventions ๐ด HIGH **Impact**: Code readability, maintainability, team collaboration **Check for**: - **Types**: Must be PascalCase, descriptive (e.g., `PaymentViewModel`, not `pmtVM`) - **Variables/Functions**: Must be camelCase (e.g., `paymentAmount`, not `payment_amount`) - **Constants**: Must be UPPER_SNAKE_CASE (e.g., `MAX_RETRY_COUNT`) - **Booleans**: Must have `is`/`has`/`should`/`can` prefix (e.g., `isLoading`, not `loading`) - **UIState properties**: Clear, specific names (e.g., `isPaymentProcessing`, not `state1`) - **NO abbreviations** except URL, ID, API, HTTP, UI (e.g., `user`, not `usr`) **Common violations**: ```kotlin // โ BAD var usr: User? = null val loading = false var state1 = "" // โ GOOD var user: User? = null val isLoading = false var paymentState = "" ``` ### 2. Memory Leaks ๐ด CRITICAL **Impact**: App crashes, ANR, poor performance **Check for**: - **ViewModel references**: NEVER hold Activity/Fragment/View references - **Coroutine cancellation**: All coroutines must be cancelled with lifecycle - **Context leaks**: Use App