Instruction file imported from zowskyy/frontier-syntax (
.cursor/rules/android-debug-audit-loop.mdc). Copyright stays with the author.
Android debug audit loop — AUTOMATIC
Always on when debugging, changing, or shipping Android/APK work. Combines artifact audits with UI/runtime discipline per Google Android Developer Fundamentals and Android Studio debug tools.
Full reference: docs/ANDROID_DEBUG_AUDIT_LOOP.md
Before claiming APK/mobile work is done
- Static audit —
python3 scripts/audit_apk_launch_ready.py→LAUNCH_READY(includes APK-008 UI layout check). - Layout vs content — if bootstrap strings, assets, or layouts changed, verify primary actions (e.g. copy button) remain visible on small screens.
- Document the loop — append to
evidence/mobile/android/debug_audit_log.jsonl(action, order, outcome, device/emulator if run).
Core loop rules (mandatory)
| Rule | Requirement |
|---|---|
| Document | Record what you did, step order, result (success/crash/unexpected) |
| One change | Change one variable at a time; re-run after each change |
| Check details | Log device model, API level, permissions, build variant, network |
| Reproduce | Same environment each run; note intermittent failures |
| Timestamp | Correlate actions with Logcat / audit log timestamps |
| Close loop | After fix: re-run full audit; confirm no regression; update docs |
Tools (use when runtime available)
- Logcat — capture before/after each change
- Layout Inspector — verify views visible in hierarchy (copy button not off-screen)
- Debugger — breakpoints, step through, inspect variables, call stack
- ADB —
adb install,adb logcat,adb shell dumpsys - Layout XML review — when no device: ScrollView + pinned critical buttons
Forbidden
- ❌
LAUNCH_READYfrom static checks only when user reports UI failure — treat as open loop - ❌ Changing bootstrap/assets without checking
activity_main.xmlscroll/pin constraints - ❌ Skipping documentation because "it was a small fix"
- ❌ Multiple simultaneous changes without recording which caused the fix
Response footer (Android work shipped)
Android audit loop: PASS (static + layout check)
device_runtime: UNEXECUTED | VERIFIED — <how>
