Audit Android Ui
audit_android_uiAudit an Android project directory for Material 3 and Android app design compliance. It reads AndroidManifest.xml, resource XML, and Kotlin sources, runs six rules, and returns prioritized findings with fixes.
Instructions
Audit an Android app's UI against Material 3 and android-app-design: point it at the project (or module) directory and it reads AndroidManifest.xml, resource XML and Kotlin, infers whether the folder is an Android project from those plus Compose/Android imports, and runs six rules. Configuration: windowOptOutEdgeToEdgeEnforcement="true" (deprecated and ignored on Android 16), enableOnBackInvokedCallback="false" (the predictive-back opt-out), and a values/themes.xml or values/colors.xml with no values-night/ file among the surfaces read. Compose: a Color(0x…) literal, fontSize = N.sp, and an androidx.compose.material.Button-style Material 2 import (not material3, not material.icons). Every configuration rule stays silent when no Android signal was found, and the report says whether the platform was inferred and from what, so a silence can be read as the gate rather than as a result. It reads source and does not measure anything: it builds nothing, starts no emulator, takes no screenshot, and no finding is or can be a rendered-output, contrast, TalkBack or Play review result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line — configuration findings carry no line, since a manifest attribute has no useful source position), a severity summary, a scan block saying how much was actually read, and a machine-readable notVisible list of what it structurally could not check, every entry of it derived from a run. Directory only — there is no snippet mode, because configuration is the backbone of this audit and a snippet carries none of it. A missing path, a path that is a file, or a code argument is returned as an error result, not as an empty audit. Pair with get_design_doc("material-3") and get_design_doc("android-app-design") for the guidance behind the rules.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Not supported by this tool, and rejected with an explanation if passed. There is no snippet mode: the platform verdict and half the rules are read from AndroidManifest.xml and resource XML, and a pasted snippet carries none of them. Pass `path` instead. | |
| path | No | The Android project or module directory to audit — the folder holding `AndroidManifest.xml`, `res/` and Kotlin sources. Required. Absolute paths are strongly preferred: a relative path is resolved against the server's working directory, which is usually not your project folder. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scan | Yes | What the scan reached. Read it before trusting any absence claim: a capped scan looked at part of the project, and the configuration rules are gated on Android signals this scan may never have opened. | |
| summary | Yes | Counts by severity. Always agrees with `findings` — it is derived from the same list. | |
| findings | Yes | Every finding, in the order the markdown report lists them. | |
| notVisible | Yes | What this audit structurally could not check, one limitation per entry. Read it as a peer of `findings`: silence on a subject named here is this tool's reach, not a clean result. Nothing any of these tools reports is measured. |