The upload execution policy stopped an agent at upload: App Review submission and rollout each needed their own explicit authorization, so a request to ship a release ended with an artifact sitting in App Store Connect and a question back to the user. That contradicted the harness standard in documentation/standards/react-native.md, which has always authorized the full pipeline, and it is the wrong default: every step from here is recoverable. A submission can be cancelled while it waits for review, a phased release paused, a staged rollout halted. A release request now authorizes build, verification, upload, App Review submission, and rollout for the platforms it names. What still needs its own authorization is anything that is not part of shipping the requested release: widening TestFlight distribution to new groups, and re-uploading after an ambiguous upload result. The existing automatic-TestFlight-distribution check before an iOS upload is unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sauci
Sauci is a couples connection product built as a full-stack npm/Turborepo workspace.
Applications
| Path | Surface |
|---|---|
apps/mobile |
Expo React Native customer app |
apps/admin |
Vite/React administration app |
apps/web |
Next.js marketing and redemption app |
apps/supabase |
database, auth, realtime, storage, and Edge Functions |
apps/mcp |
authenticated internal MCP service |
packages/shared |
shared TypeScript contracts |
Bootstrap and run
Use Node 20.10.0 from .nvmrc, Docker-compatible containers, and tmux.
npm ci
scripts/dev-local.sh reset
scripts/dev-local.sh up
The launcher starts local Supabase, Edge Functions, web, admin, MCP, and Expo in one tmux session. See local stack documentation for ports, logs, native launch commands, and troubleshooting.
Verify
npm run verify:fast # lint, typecheck, unit/contract tests
npm run verify:full # fast checks, builds, Supabase integration
npm run verify:e2e # running-stack Playwright journeys
npm run verify # complete pre-PR gate
Native black-box flows use npm run test:mobile:e2e. Pull requests run static
and full-stack gates and retain browser traces/screenshots/videos on failure.
Agent harness
Start with AGENTS.md and the documentation index.
Task/risk agent routing lives in docs/agents/routing.md,
repository skills live under .codex/skills, and verified lessons follow the
learning promotion lifecycle.
Database schema changes must use committed files in apps/supabase/migrations.
Remote migration tools and DDL through MCP SQL execution are forbidden.