| name | ha-android-review |
| description | Home Assistant Android code review guidance. Use when reviewing changes or a diff for correctness, style, and convention adherence, or checking security requirements. |
HA Android Review
Use this skill when reviewing Home Assistant Android changes. For finalizing your own change — format, tests, changelog, branch, and PR — use the ha-android-committing skill.
Review Checklist
Load the skill covering each dimension the change touches and review against its rules — the rules live in the skills, not here, so this list stays a router:
- Kotlin style: constants, strong types, immutability, visibility, KDoc —
ha-android-kotlin-style.
- Coroutines and threading: scopes, dispatchers, shared state, blocking calls —
ha-android-concurrency.
- Logging and errors: catch blocks,
CancellationException, sensitive data, FailFast — ha-android-logging-errors.
- UI: Compose, HATheme, ViewState, navigation, widgets —
ha-android-ui.
- Structure: modules, layers, ViewModels, repositories, server-version gating, DI, storage —
ha-android-architecture.
- Tests: unit, Turbine, Robolectric, screenshot and interaction tests —
ha-android-testing.
One review point that has no other home: reuse before rewrite — check whether the logic already exists (pickers, url handling, shared utils) and extract shared code instead of duplicating it.
Engineering Values
- Mechanism over reminder: when the same review comment keeps coming back, encode it instead of repeating it — a custom lint rule in
:lint, a KTLint override in .editorconfig, a FailFast check, a module-wide test listener, or an update to these skills. A convention that relies on people remembering it will keep being violated.
- Root cause before fix: a bug fix must state the actual cause and how to reproduce it. Don't patch symptoms; if the cause is external (platform, WebView, library), document the evidence and the repro steps rather than adding speculative workarounds.
Review Tone
Be kind and respectful. Give hints instead of orders, and use examples to explain issues.
Security
- GitHub Actions: use the most restrictive permissions — don't request write when read (or none) suffices.
- Never commit tokens or secrets; use GitHub Secrets for CI/CD.
- Use well-known, maintained libraries or stick to the Android SDK.