Agent skill

Ha Android E2E Debugging

by home-assistant in home-assistant/android

Home Assistant Android end-to-end (Maestro) failure triage. An agent skill from home-assistant/android.

Apache-2.0Auto-check passedTesting & QA

Install Ha Android E2E Debugging

skills CLI
$ npx skills add home-assistant/android --skill ha-android-e2e-debugging -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install home-assistant/android ha-android-e2e-debugging --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/home-assistant/android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ha-android-e2e-debugging .claude/skills/ha-android-e2e-debugging && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ha-android-e2e-debugging
GitHub stars
4k
Token cost
~1.5k tokens
SKILL.md length
706 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Home Assistant Android end-to-end (Maestro) failure triage. An agent skill from home-assistant/android.

  • Works in 3 steps: Collect the artifacts → Sources → Report
  • The E2E workflow fails
  • SKILL.md covers 1. Collect the artifacts, 2. Sources and 3. Report
  • Calls gh, jq and docker

What it does

Ha Android E2E Debugging is an agent skill from home-assistant/android. Home Assistant Android end-to-end (Maestro) failure triage. Use when the E2E workflow fails, when reading its artifacts (Maestro report, logcat, Home Assistant logs), or when deciding whether a failure comes from the app, from Home Assistant, or from flakiness.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Mobile testing and debugging and End-to-end testing. It works with Home Assistant and Android. The repository describes itself as: Home Assistant Companion for Android. The licence is Apache-2.0.

When your agent uses it

  • The E2E workflow fails
  • Reading its artifacts (Maestro report
  • Home Assistant logs)
  • Deciding whether a failure comes from the app

Example prompts

  • “/ha-android-e2e-debugging”

Requirements

  • Docker

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Collect the artifacts
  2. Sources
  3. Report

What it can do on your machine

Read from SKILL.md and the folder at commit eaa2122. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • jq
    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ha Android E2E Debugging loads about 1.5k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 706 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from home-assistant/android at commit eaa2122, republished under its Apache-2.0 licence (© home-assistant). 706 words, ~1,528 tokens.

Download SKILL.mdSave it as .claude/skills/ha-android-e2e-debugging/SKILL.md (or your agent's skills folder).
name
ha-android-e2e-debugging
description
Home Assistant Android end-to-end (Maestro) failure triage. Use when the E2E workflow fails, when reading its artifacts (Maestro report, logcat, Home Assistant logs), or when deciding whether a failure comes from the app, from Home Assistant, or from flakiness.

HA Android E2E Debugging

The E2E workflow (.github/workflows/e2e.yml) runs the .maestro/onboarding.yaml flow every night at 05:00 UTC. It starts a Home Assistant container (the dev image unless the run overrides it), boots one emulator per API level from 29 up to androidSdk-target, installs app-full-debug.apk on each, and shards the same flow across all of them. Every shard talks to that one container.

Read the sources in section 2 in order and stop at the first one that explains the failure, then always write the report in section 3. Once a source explains it, skip the rest.

1. Collect the artifacts

bash
gh run download <run-id> --name e2e-artifacts --dir e2e-artifacts
PathContent
maestro-results/<timestamp>/onboarding-shard-<N>/One directory per shard: commands.json trace, logs/maestro.log, logs/device-logcat.txt, and screenshots/step-*.png with screen-hierarchy/step-*.json captured at each tap and at the failure
logcat-api<N>-<serial>.txtFull device logcat, one file per emulator, named by API level
homeassistant.logTimestamped container log
homeassistant-config.json/api/config response: Home Assistant version, loaded components
homeassistant-container.jsondocker inspect of the container: image digest and labels

2. Sources

2.1 Maestro report

Find the failed command and its shard in one pass:

bash
jq -c 'to_entries[] | select(.value.metadata.status == "FAILED") | {shard: input_filename, step: (.key + 1), command: .value.command, error: .value.metadata.error.message}' \
  e2e-artifacts/maestro-results/*/onboarding-shard-*/commands.json

step is the zero-padded number in that shard's screenshots/step-<step>-*.png and screen-hierarchy/step-<step>-*.json; open both. An element visible in the screenshot but absent from the hierarchy never reached the accessibility tree; a broken screen shows in the screenshot itself.

2.2 logcat

Only when 2.1 explains nothing. Shard numbers are not API levels. The shard's logs/device-logcat.txt is the same device as one logcat-api<N>-*.txt in another format, so match them on a message: take an early line of the shard's logcat, strip everything up to the first ): , and grep -l -F the rest across logcat-api*.txt. Useful filters on the matched file:

bash
grep -nE 'AndroidRuntime|FATAL' e2e-artifacts/logcat-api<N>-*.txt | tail -40
grep -nE 'io\.homeassistant|chromium|WebSocket|okhttp' e2e-artifacts/logcat-api<N>-*.txt | tail -40

Look for a crash or ANR at the failure timestamp, TLS or DNS errors reaching homeassistant.internal, WebSocket disconnects, and chromium renderer errors.

2.3 Home Assistant logs

Only when 2.1 and 2.2 explain nothing.

bash
grep -nE ' (ERROR|WARNING) ' e2e-artifacts/homeassistant.log | tail -40
jq -c '{version, mobile_app: (.components | index("mobile_app") != null)}' e2e-artifacts/homeassistant-config.json
jq -r '.[0].Config.Image' e2e-artifacts/homeassistant-container.json

Read the errors around the failure time, and confirm mobile_app is loaded: the workflow verifies it at startup, but a later integration failure can still break onboarding. An error that the same grep also finds in e2e-artifacts-last-green/homeassistant.log did not break this run. The frontend.js.* logger name carries the frontend build date, useful for the next step.

2.4 Upstream: core and frontend

Only when 2.1 to 2.3 explain nothing. A typical upstream symptom is a clean split by API level: every shard below some API level fails at the same step while every shard above it passes. The frontend ships one bundle to all WebViews, so a change that relies on a newer web feature breaks the older WebViews together.

The dev image moves every night, so the useful comparison is against the last run that passed. The triage workflow downloads it into e2e-artifacts-last-green/ before the agent starts; only when working locally, fetch it yourself:

bash
gh run list --workflow=e2e.yml --status success --limit 1 --json databaseId,createdAt
gh run download <green-run-id> --name e2e-artifacts --dir e2e-artifacts-last-green

Diff the two homeassistant-config.json files to get the Home Assistant versions on either side of the break, then look at what landed between those dates:

Show full SKILL.md (223 more words)Show less

3. Report

Everything lands in the e2e-failure issue in this repository: a comment when one is already open, a new issue otherwise. Never open anything on another repository; an upstream finding goes in the same comment for a maintainer to carry over.

Write:

  1. Verdict — Say how confident you are and what would confirm it.
  2. Evidence — the failing Maestro command, the logcat and Home Assistant log lines the verdict rests on, and the Home Assistant versions of the failed and the last green run, read from the two homeassistant-config.json files. Quote the lines, don't paraphrase them.
  3. Culprit commit — only when you went through 2.4. Give it as owner/repo@sha with its title and date, and say what in it explains the failure. When you only narrowed it to a range, give the range and say it is a range. When you stopped before 2.4, say so in one line.
  4. Proposed fix — a concrete patch: name the file and the change, whether here, in core, or in the frontend, so a maintainer can apply or forward it. When the right answer is to adapt the Maestro flow to an intentional upstream change, say that.
  5. A link to the failed run.

Say plainly when the evidence supports no verdict, and list what you checked. A short honest report beats a confident guess.

© home-assistant, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/ha-android-e2e-debugging of home-assistant/android.

Open the folder on GitHubat commit eaa2122

Compare with similar skills

Ha Android E2E Debugging next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ha Android E2E Debugging compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ha Android E2E Debugging this skillhome-assistant/android4k—~1.5kAutomated safety check: PassApache-2.0
MAUI UI Test Writerdotnet/maui23k—~3kAutomated safety check: PassMIT
Android E2E Testerbrim-borium/spotify_sdk166—~284Automated safety check: NotesApache-2.0
Simulator Audio E2Ehyochan/react-native-nitro-sound961—~1.1kAutomated safety check: PassMIT
SoloPi AI Controlalipay/SoloPi6.3k—~3.6kAutomated safety check: PassApache-2.0
E2Egronxb/hot-updater1.8k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Official

    Writes UI tests that reproduce a GitHub issue in .NET MAUI and keeps iterating until the tests actually fail, proving they catch the bug.

    23k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed
  • Android E2E Tester

    brim-borium/spotify_sdk

    Run autonomous Android E2E tests on example app via ADB MCP with Logcat verification.

    166 GitHub stars~284 tokensUpdated today
    Testing & QAAuto-check: notes
  • Simulator Audio E2E

    hyochan/react-native-nitro-sound

    Build and run repeatable react-native-nitro-sound recorder/player regression tests on an iOS Simulator or Android emulator, with explicit virtual-device selection, microphone permission, Maestro…

    961 GitHub stars~1.1k tokensUpdated 7 days ago
    MobileAuto-check passed
  • SoloPi AI Control

    alipay/SoloPi

    Drives Android devices through SoloPi's typed command line to record, replay and verify app behavior, with device pools and signed on-device decision models.

    6.3k GitHub stars~3.6k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • E2E

    gronxb/hot-updater

    Run end-to-end OTA verification for examples/v0.85.0 with agent-device.

    1.8k GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Mesh Lab

    permissionlesstech/bitchat-android

    Run, diagnose, and extend bitchat Android Mesh Lab physical-device tests.

    7.7k GitHub stars~2.9k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from home-assistant/android

All 10 skills in this repo
  • Ha Android Architecture

    home-assistant/android

    Home Assistant Android module and layer architecture. An agent skill from home-assistant/android.

    4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Ha Android Concurrency

    home-assistant/android

    Home Assistant Android coroutine and threading guidance. An agent skill from home-assistant/android.

    4k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Ha Android Kotlin Style

    home-assistant/android

    Home Assistant Android Kotlin style. An agent skill from home-assistant/android.

    4k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Ha Android Logging Errors

    home-assistant/android

    Home Assistant Android logging and error handling. An agent skill from home-assistant/android.

    4k GitHub stars~845 tokensUpdated today
    Auto-check passed
  • Ha Android Testing

    home-assistant/android

    Home Assistant Android testing guidance. An agent skill from home-assistant/android.

    4k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Ha Android UI

    home-assistant/android

    Home Assistant Android UI guidance. An agent skill from home-assistant/android.

    4k GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Questions about Ha Android E2E Debugging

What does Ha Android E2E Debugging do?

Home Assistant Android end-to-end (Maestro) failure triage. An agent skill from home-assistant/android. Ha Android E2E Debugging is an agent skill from home-assistant/android. Home Assistant Android end-to-end (Maestro) failure triage.

When should I use Ha Android E2E Debugging?

Ha Android E2E Debugging fits situations like: the E2E workflow fails; reading its artifacts (Maestro report; home Assistant logs); deciding whether a failure comes from the app.

How do I install Ha Android E2E Debugging in Claude Code?

Run `npx skills add home-assistant/android --skill ha-android-e2e-debugging -a claude-code`. Or copy the skill folder (.agents/skills/ha-android-e2e-debugging in home-assistant/android) into .claude/skills/ha-android-e2e-debugging in your project. Claude Code loads it when a task matches its description.

How do I install Ha Android E2E Debugging in Codex?

Run `npx skills add home-assistant/android --skill ha-android-e2e-debugging -a codex`. Or copy the skill folder (.agents/skills/ha-android-e2e-debugging in home-assistant/android) into .agents/skills/ha-android-e2e-debugging in your project. Codex loads it when a task matches its description.

Can I use Ha Android E2E Debugging in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add home-assistant/android --skill ha-android-e2e-debugging -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ha-android-e2e-debugging, .gemini/skills/ha-android-e2e-debugging, .github/skills/ha-android-e2e-debugging and .opencode/skills/ha-android-e2e-debugging in your project.

What does Ha Android E2E Debugging need to run?

Going by SKILL.md and its folder, Ha Android E2E Debugging needs the command-line tools its instructions call (gh, jq and docker). Our summary lists: Docker.

Does Ha Android E2E Debugging access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Ha Android E2E Debugging safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ha Android E2E Debugging use?

Ha Android E2E Debugging is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ha Android E2E Debugging use?

About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ha Android E2E Debugging?

Skills that share tags, products or a category with Ha Android E2E Debugging: MAUI UI Test Writer (dotnet/maui, 23k stars), Android E2E Tester (brim-borium/spotify_sdk, 166 stars), Simulator Audio E2E (hyochan/react-native-nitro-sound, 961 stars) and SoloPi AI Control (alipay/SoloPi, 6.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ha Android E2E Debugging?

home-assistant (a GitHub organization) maintains it in home-assistant/android, which has 3,951 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 6, 2026.

Source: home-assistant/android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.