# Training App Review

Use this when reviewing the current Games, Coach, Report, and Android wrapper batch.

## What Changed

- Games now has a guided loop instead of only a catalog.
- App Home Preview acts as the Android-facing practice home.
- Android WebView seeds a stable local device id, `android-webview` app-shell marker, last URL, network state, last-seen timestamp, app version, build channel, and launch source for app-local practice state.
- Training Coach recommends daily, pack, role, focus-lane, and milestone paths.
- Practice Packs group existing scenarios into role-first routes.
- Mini-Game Player records local game, daily, and pack progress, including started pack routes before a run is fully finished.
- Game Progress shows local games, packs, badges, daily challenge, export, import, and reset.
- Training Report turns local progress into readable text, JSON, print output, and trust-boundary cards.
- Scenario Library lets maintainers inspect game content and expected answers.
- Android WebView starts at App Home Preview, exposes a native status strip, separates practice routes from review/actions across two horizontal rails, supports launcher shortcuts into Coach, Daily, Progress, and Report, and includes native Share, Copy, and Browser actions for the current page.
- Android WebView now persists the last successful internal URL in Android preferences and exposes native recovery, rail-model, last-status, and last-error markers to App Home and Diagnostics.

## Review Path

1. Open `pages/mini-game-app-home.html`.
2. In Android WebView, confirm the App Shell card reads `android-webview`; in a normal browser it should read `browser`.
3. Confirm App Home shows Network and Last Seen cards after a completed WebView page load.
4. Confirm App Home and Diagnostics show App Build, Launch Source, and the Android user-agent suffix marker.
5. Confirm App Home and Diagnostics show Native Recovery, Rail Model, Last Status, and Last Error markers after a refresh, offline retry, and restore test.
6. Open Training Coach and save a local role/time/goal profile.
7. Start a Practice Pack and confirm the Player shows pack route position and a next-pack-case action.
8. Finish at least one player run.
9. Return to Progress and confirm local game and pack history changed.
10. Open Training Report and copy readable text plus JSON.
11. Open Scenario Library and confirm scenario quality/coverage cards.
12. Open Runbook Index and confirm the Training or app review path points to App Home, Coach, Packs, Scenario QA, Progress, and Report.
13. Open Daily Workflow and confirm the practice warmup card starts with Coach, Packs, and Report.
14. Open Android Studio and verify the wrapper builds, launches App Home Preview, updates the native status strip, separates practice and review/action rails, opens launcher shortcuts, opens Status and Diagnostics from the review rail, shares the current page, copies the current page URL, opens the current page externally, and restores the last successful page after an offline retry and app restart.

## Cloudflare API Checks

Open these on the deployed origin:

```text
/api/app-home
/api/games
/api/games/coach
/api/games/packs
/api/games/scenarios
/api/games/daily
/api/health
```

Confirm responses are JSON, do not expose secrets, and use fallback/degraded wording when D1 is unavailable.

## Trust Boundary

- The training report proves only local practice activity in the current browser or WebView.
- It does not prove identity, certification, compliance, or real-world security skill.
- The game scenarios are fictional and defensive.
- The player does not scan, exploit, or touch real systems.

## Android Notes

- Local automated checks here do not replace Android Studio.
- Validate Kotlin compilation, WebView behavior, native status strip updates, offline retry, restore-last-page behavior, pull-to-refresh, external-link handling, local storage persistence, and print behavior inside Android Studio.
- Confirm WebView local storage persists between app launches so Coach, Packs, Progress, and Report share the same local practice state.
- Confirm Android preferences persist the last successful internal URL so Restore Last Page works after closing and reopening the app.
- Confirm the native practice rail includes Home, Coach, Report, Packs, Arcade, Daily, Progress, and Scenarios.
- Confirm the native review/action rail includes Status, Diagnostics, Share, Copy, and Browser.
- Confirm launcher shortcuts and allowed-host deep links open Coach, Daily, Progress, and Report inside the same WebView activity.
- Keep long articles and reference pages in WebView until native screens exist for Home, Coach, Packs, Progress, and Report.
