Last updated: 2026-06-29
Use this file when you need to do real work quickly without re-deriving the blast radius. If this guide says “edit here,” treat it as a mandatory minimum set unless your specific change is isolated to one file.
For every change:
docs/reference/repository-extremely-detailed-engineer-guide.mddocs/reference/repository-full-deep-reference.mddocs/reference/repository-operator-manual.mddocs/contracts/native-speech-parity-anchor.mddocs/contracts/speech-workflow-contract.mddocs/reference or docs/contracts if behavior or contract changed.docs/reference/ios-file-inventory.mddocs/reference/android-file-inventory.mddocs/reference/web-file-inventory.mddocs/reference/backend-functions-deep-dive.mddocs/reference/backend-functions-detailed-map.mdThese inventories are the authoritative per-file maps for this repo.
ios/SpeakTrueTests../gradlew -p android :app:compileDebugKotlin./gradlew -p android :app:testDebugUnitTest./gradlew -p android :app:lintDebug./gradlew -p android :app:bundleRelease when preparing release.bash scripts/coverage_backend_contracts.shbash scripts/regression_migration_paths.shpython3 -m pytest web/python-web-app/testsweb/python-web-app/venv/bin/gunicorn --chdir web/python-web-app --bind 127.0.0.1:5055 wsgi:appweb/marketing render path (waitlist + OAuth callback flows) and
deploy via Cloudflare Pages checklist.Use this as your first edit map for common “I need to change X” tasks.
backend/supabase/functions/voices-listbackend/supabase/functions/models-listbackend/supabase/functions/tts-generatebackend/supabase/functions/style-presetsios/SpeakTrue/TTSViewModel.swiftios/SpeakTrue/TextToSpeechView.swiftios/SpeakTrue/AIProxyService.swiftios/SpeakTrue/TTSCatSelectView.swiftios/SpeakTrue/VoiceModelSelectionView.swiftandroid/app/src/main/java/com/speaktrue/features/tts/data/*android/app/src/main/java/com/speaktrue/features/tts/presentation/TTSViewModel.ktandroid/app/src/main/java/com/speaktrue/features/tts/ui/TTSScreen.ktweb/python-web-app/src/services/tts_service.pyweb/python-web-app/src/services/speech_service.pyweb/python-web-app/src/routes/tts.pybackend/supabase/functions/stt-transcribebackend/supabase/functions/sts-realtime-sessionbackend/supabase/functions/sts-near-realtime-sessionbackend/supabase/functions/sts-realtime-finalizebackend/supabase/functions/sts-live-voice-tts-sessionios/SpeakTrue/STTViewModel.swiftios/SpeakTrue/STSViewModel.swiftios/SpeakTrue/SpeechToSpeechView.swiftios/SpeakTrue/RealtimeSTTService.swiftios/SpeakTrue/LiveVoiceSTSService.swiftandroid/app/src/main/java/com/speaktrue/features/stt/*android/app/src/main/java/com/speaktrue/features/sts/data/*android/app/src/main/java/com/speaktrue/features/sts/presentation/STSViewModel.ktweb/python-web-app/src/routes/stt.pyweb/python-web-app/static/js/index_stt.jsweb/python-web-app/static/js/index_sts_live_voice.jsweb/python-web-app/tests/js/sts_*.mjsios/SpeakTrueTests/*STS*, Android STS contract tests.backend/supabase/functions/soundboard-save-generatedbackend/supabase/functions/soundboard-deletebackend/supabase/functions/clip-order-batchios/SpeakTrue/SoundboardView.swiftios/SpeakTrue/SoundboardViewModel.swiftios/SpeakTrue/SoundboardCacheManager.swiftios/SpeakTrue/SoundboardCacheIndex.swiftandroid/app/src/main/java/com/speaktrue/features/soundboard/ui/SoundboardScreen.ktandroid/app/src/main/java/com/speaktrue/features/soundboard/presentation/SoundboardViewModel.ktandroid/app/src/main/java/com/speaktrue/features/soundboard/data/*web/python-web-app/src/routes/soundboard.pyweb/python-web-app/src/services/soundboard_service.pyweb/python-web-app/static/js/index_soundboard.jsbackend/supabase/functions/voice-clone-preflightbackend/supabase/functions/voice-clone-createbackend/supabase/functions/voice-clone-deletebackend/supabase/functions/byok-resolvebackend/supabase/functions/byok-upsertios/SpeakTrue/VoiceCloneTabView.swiftios/SpeakTrue/VoiceCloneViewModel.swiftios/SpeakTrue/AIDataSharingAgreementService.swiftios/SpeakTrue/AIDataSharingConsentGateView.swiftandroid/app/src/main/java/com/speaktrue/features/voiceclone/presentation/VoiceCloneViewModel.ktandroid/app/src/main/java/com/speaktrue/features/voiceclone/ui/VoiceCloneScreen.ktandroid/app/src/main/java/com/speaktrue/features/voiceclone/data/VoiceCloneRepository.ktweb/python-web-app/src/routes/voice_clone.pyweb/python-web-app/src/services/voice_clone_service.pybackend/supabase/functions/user-settings-getbackend/supabase/functions/user-settings-updatebackend/supabase/functions/quota-statusbackend/supabase/functions/pronunciation-dictionary (pronunciation settings in some payloads)backend/supabase/migrationsios/SpeakTrue/UserSettings.swiftios/SpeakTrue/UserSettingsSyncService.swiftios/SpeakTrue/SettingsTabView.swiftios/SpeakTrue/SettingsView.swiftandroid/app/src/main/java/com/speaktrue/features/settings/data/SettingsStore.ktandroid/app/src/main/java/com/speaktrue/features/settings/data/SettingsRepository.ktandroid/app/src/main/java/com/speaktrue/features/settings/presentation/SettingsViewModel.ktandroid/app/src/main/java/com/speaktrue/features/settings/ui/SettingsScreen.ktweb/python-web-app/src/routes/settings.pyweb/python-web-app/src/services/user_settings_service.pyweb/python-web-app/templates/partials/index_slow/settings.htmlbackend/supabase/functions/billing-apple-syncbackend/supabase/functions/billing-apple-notificationsbackend/supabase/functions/billing-google-play-syncbackend/supabase/functions/billing-stripe-webhookbackend/supabase/functions/_shared/subscription-gating-config.tsbackend/supabase/functions/_shared/entitlements.tsbackend/supabase/functions/_shared/billing-entitlement-policy.tsios/SpeakTrue/AuthService.swiftios/SpeakTrue/AuthState.swiftios/SpeakTrue/SupabaseClientProvider.swiftios/SpeakTrue/SpeakTrueApp.swiftandroid/app/src/main/java/com/speaktrue/core/auth/*android/app/src/main/java/com/speaktrue/app/SpeakTrueApp.ktandroid/app/src/main/java/com/speaktrue/app/MainActivity.ktweb/python-web-app/src/legacy_runtime.pyweb/python-web-app/src/routes/legacy.py and web/python-web-app/src/services/auth_service.pyweb/python-web-app/src/services/supabase_edge_client.pybackend/supabase/functions/pronunciation-dictionarybackend/supabase/functions/language-recommendios/SpeakTrue/PronunciationGlossaryView.swiftios/SpeakTrue/PronunciationGlossaryViewModel.swiftandroid/app/src/main/java/com/speaktrue/features/dictionary/ui/PronunciationDictionaryScreen.ktandroid/app/src/main/java/com/speaktrue/features/dictionary/presentation/PronunciationDictionaryViewModel.ktandroid/app/src/main/java/com/speaktrue/features/dictionary/data/PronunciationRepository.ktweb/python-web-app/src/routes/stt.py and
web/python-web-app/src/services/speech_service.py when used in UI parity.If any one layer is skipped, the project will regress on one surface even when local tests pass.
ios/Config/App.Debug.xcconfigios/Config/App.Release.xcconfigios/SpeakTrue/SpeakTrueApp.swiftandroid/build.gradle.ktsandroid/settings.gradle.ktsandroid/app/build.gradle.ktsandroid/gradle/libs.versions.tomldocs/ops/ANDROID_PLAY_RELEASE_CHECKLIST.mdbackend/supabase/config.tomlbackend/supabase/functions/<name>/backend/supabase/migrations/web/python-web-app/src/app.py, wsgi.py, requirements.txtweb/marketing/index.html, scripts/styles, deploy notes.When uncertain, use this quick method:
docs/reference/ios-file-inventory.mddocs/reference/android-file-inventory.mddocs/reference/web-file-inventory.mdbackend/supabase/functions/<function>/docs/reference/backend-functions-detailed-map.md