SpeakTrue

Android Play Release Evidence Template

Status: PENDING

Use this template only after Play Console and live-provider checks run. Keep evidence redacted and paste only command names, exit codes, pass/fail summaries, Play Console screen names, version identifiers, and non-secret artifact fingerprints. Do not commit passwords, Supabase JWTs, auth tokens, provider keys, upload keystore passwords, private emails, request text, transcripts, generated audio URLs, or screenshots containing private content.

Until the live smoke command passes with real deployed services, keep this marker:

NO_LIVE_SUCCESS_CLAIMED

Evidence Rules

Required Evidence

Evidence item Status Redacted proof to fill after execution
Upload-key signed AAB built PENDING Command: ./gradlew bundleReleaseArtifact; Verify: python3 scripts/verify_android_release_bundle.py --require-signed android/app/build/outputs/bundle/release/app-release.aab; Expected package/version: com.speaktrue.app / 1.2 / 15; Exit code: [fill]; Artifact: android/app/build/outputs/bundle/release/app-release.aab; SHA-256: [fill]; Signing verification summary: [fill no password]; 64-bit ABI summary: [fill]; 16 KB page-size summary: [fill]
Internal testing upload PENDING Play Console track: internal testing; Package: com.speaktrue.app; Version name/code: 1.2 / 15; Upload result: [fill]
Store listing completed PENDING Source copy: docs/ops/ANDROID_PLAY_STORE_LISTING.md; Privacy URL: https://haddadios.github.io/SpeakTrue/privacy-policy; Terms URL: https://haddadios.github.io/SpeakTrue/terms-of-use; Command: python3 scripts/verify_android_play_assets.py; Icon and feature graphic result: [fill]; App name: SpeakTrue; Short/full description length check: [fill]; Contact email replaced in Console: [yes/no, no address]
Android screenshots captured PENDING Command: bash android/scripts/capture-play-screenshots.sh; Verify: python3 scripts/verify_android_play_screenshots.py /private/tmp/speaktrue-android-play-screenshots --labels tts,stt,sts,soundboard,voice-clone,settings; Source build: signed/internal-test Android build; Screens: TTS, STT, STS, Soundboard, Voice Clone, Settings; Format/size summary: [JPEG or 24-bit PNG, max 8MB, no private content]; Asset storage location: [external/sanitized path only]
Android full unit test suite passed PENDING Command: ./android/gradlew -p android :app:testDebugUnitTest; Exit code: [fill]; Summary: [fill redacted pass/fail]; Report path: android/app/build/reports/tests/testDebugUnitTest/index.html
Android lint passed PENDING Command: ./android/gradlew -p android :app:lintDebug; Exit code: [fill]; Summary: [fill redacted pass/fail]; Report path: android/app/build/reports/lint-results-debug.html
Android emulator smoke passed PENDING Command: bash android/scripts/run-instrumented-smoke.sh; Device: [fill redacted device/emulator name]; Exit code: [fill]; Summary: [fill redacted pass/fail]; Report path: android/app/build/reports/androidTests/connected/debug/index.html
App content and Data safety completed PENDING Data safety source: docs/privacy-policy.md and docs/ops/ANDROID_PLAY_RELEASE_CHECKLIST.md; Tracking answer: no tracking; Completion result: [fill]
Account deletion web link configured PENDING URL: https://haddadios.github.io/SpeakTrue/account-deletion; Verify: python3 scripts/verify_android_play_policy_urls.py --live; Play Console data deletion field result: [fill]
App access instructions configured PENDING Source text: docs/ops/ANDROID_PLAY_RELEASE_CHECKLIST.md; Disposable account configured in Play Console: [yes/no, no credentials]
IAP/subscription declarations disabled PENDING Console result: no subscriptions or in-app products enabled for Android free/open-access baseline
Live provider/storage smoke passed PENDING Command: python3 scripts/verify_android_play_release_smoke.py; Exit code: [fill]; Summary: [fill redacted pass/fail]
Android release blocker report clear PENDING Command: python3 scripts/verify_android_play_release_blockers.py --include-live-policy; Exit code: [fill]; Summary: [fill redacted pass/fail]

Final Gate

Only replace NO_LIVE_SUCCESS_CLAIMED with LIVE_SMOKE_PASSED_REDACTED after python3 scripts/verify_android_play_release_smoke.py runs against deployed Supabase/ElevenLabs/storage with a disposable account and exits successfully without unsafe output.

After every row is filled and marked COMPLETE, run:

python3 scripts/verify_android_play_release_evidence.py --require-complete docs/ops/ANDROID_PLAY_RELEASE_EVIDENCE_TEMPLATE.md

This strict mode must fail while any PENDING, placeholder, or NO_LIVE_SUCCESS_CLAIMED marker remains.