<!-- Android mobile verification is ENABLED for this project. -->

## Android Mode (when `android.verifyPatterns` matches an edited file)

> **Precondition: the project must actually target Android.** If there is no `android/` directory or `AndroidManifest.xml`, this section does NOT apply — `MCP:adt_*` tools require a connected Android device or emulator. Just do browser verification.

If the project has android verification enabled (`ironbee android enable` once at setup) and your edits touch matching paths, the stop hook also enforces an Android cycle. The same `verification-start` covers both cycles; one platform-agnostic verdict covers both.

### Mode behavior (android cycle)
- **default** (no arg or `default`): exercise only the UI flows / code paths your diff touched.
- **full**: exercise every Android code path reachable from files matching `android.verifyPatterns`.
- `visual` / `functional`: browser-only modes; android cycle behaves as `default` when they are passed.

### Steps (run within step 3 of the Universal steps above)
1. **If `recording.enable` is on, start a screen recording first**: `MCP:adt_content_start-recording` — the gate blocks every other android tool until it runs.
2. **Connect to a running device or emulator**: `MCP:adt_device_connect`.
3. **Launch the app** (or bring it to the relevant screen): `MCP:adt_device_launch-app`.
4. **Pick an evidence path** for the changed code:
   - **Device-evidence** (proves the change is visible / functional): drive UI (`MCP:adt_interaction_tap` / `MCP:adt_interaction_input-text` / `MCP:adt_interaction_swipe`) → screenshot (`MCP:adt_content_take-screenshot`) → UI snapshot (`MCP:adt_a11y_take-ui-snapshot`). **STOP and visually analyze the screenshot** — readability, layout, cut-off content, expected state rendered; the snapshot reports structure, the screenshot shows what the user actually sees. Both are MANDATORY on this path.
   - **Log-evidence** (proves the changed code path executed): `MCP:adt_o11y_log-read` or `MCP:adt_o11y_log-follow`. Confirm expected log lines present AND no FATAL/crash from the app package.
   - **Network-evidence** (proves a network/API change behaved correctly): `MCP:adt_o11y_get-http-requests` — forward-looking, so start capture, drive the app to trigger traffic, then read again; confirm the expected request(s)/status. Auxiliary (NOT gate evidence): `MCP:adt_o11y_new-trace-id` pins a correlation root; `MCP:adt_stub_*` mocks/intercepts responses for setup.
5. **If recording was started, stop it now** — `MCP:adt_content_stop-recording`. submit-verdict rejects with `"recording is still active"` when this step is skipped.
6. **Submit verdict** — platform-agnostic, just status + checks (+ issues/fixes).

### Verdict (platform-agnostic)
```json
{
  "session_id": "...",
  "status": "pass",
  "checks": ["LoginActivity renders after auth refactor", "no crash in Logcat"]
}
```

For a multi-cycle pass, both browser and android pass criteria must hold.

---

## Default Mode (android cycle)

Focus on the UI flows or code paths your diff touched — not the entire app.

### 1. Study the changes
1. Run `git diff --name-only` and `git diff --name-only HEAD~1`
2. **Ignore `.ironbee/`, `.claude/`, `.cursor/`** — tool config, not application code
3. **Read the full diff** for every Android file in scope — note new UI elements, changed layouts, new logic branches, changed Logcat tags
4. Before connecting, identify: which Activity / Fragment / Composable is affected? Which UI actions exercise it? Which Logcat tags emit on that path?

### 2. Verify against the running device
- **Connect + launch the app** on the device/emulator
- **Drive the affected UI flow** — tap/type/swipe to reach the changed screen
- **Take a screenshot + a UI snapshot** — the screenshot must show the expected UI state after your change; the UI snapshot must show the expected view hierarchy / labels
- **Check Logcat** for the relevant tag(s) — expected log lines must appear; no FATAL or unhandled exception from the app package

---

## Full Mode (`/ironbee-verify full`, android cycle)

Verify every Android code path reachable from files matching `android.verifyPatterns`, not just the changed files. Do NOT run `git diff` or scope to recent changes.

- Launch every Activity / Fragment / screen in scope
- Drive at least one happy-path flow AND one error-path flow per screen
- Screenshot + UI snapshot each screen; no FATAL entries in Logcat
