# Ha Android Review

> Home Assistant Android code review guidance. Use when reviewing changes or a diff for correctness, style, and convention adherence, or checking security requirements.

- Skill: `home-assistant/ha-android-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add home-assistant/ha-android-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/home-assistant/ha-android-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: home-assistant (https://skillmd.com/u/home-assistant)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/home-assistant/ha-android-review

---


# 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.

