--- name: teleo-gcp-parity-ops description: Use for Teleo/Leo GCP parity, Cloud SQL/cutover readiness, account selection, non-interactive auth blockers, and separating GCP from VPS Telegram proof. --- # Teleo GCP Parity Ops ## Job Handle GCP parity as its own lane, with precise auth/account/project facts and no overclaiming from VPS or local proof. ## Trigger Phrases - "GCP parity" - "move Leo to GCP" - "Cloud SQL Teleo" - "teleo-501523" - "GCP blocker" - "VPS then GCP" ## Current Known Facts - Project: `teleo-501523` - Expected project-access account: `billy@livingip.xyz` - Retained blocker: selected account cannot refresh access token non-interactively. - Other locally available accounts refresh but lack access to `teleo-501523`. - Current artifact: `docs/reports/leo-working-state-20260709/gcp-db-parity-current-blocker-20260709.json` Always refresh if cheap before making a current claim. ## Status Split Never claim GCP complete from: - VPS service health, - Telegram group canaries, - local DB rehearsals, - GCP account selection alone. GCP parity needs its own: - auth readback, - project access readback, - Cloud SQL or target DB readback, - runtime/config parity readback, - Telegram or operator path proof if the target is GCP-hosted Leo. ## Safe Actions Allowed: - `gcloud config list` / account list readbacks, - non-secret auth status checks, - project access probes, - read-only SQL or service discovery where auth works, - blocker artifact updates. Stop for: - password/OTP/KYC, - raw secret requests, - irreversible cloud changes, - production cutover without explicit authorization. ## Blocker Format If auth is still blocked, retain: ```json { "current_canary": "gcloud account can read teleo-501523 and target DB metadata", "attempted_routes": [], "exact_gate": "", "clear_CTA": "", "next_non_user_action": "" } ``` The CTA must name the exact account and what the operator should do, not a vague "reauth needed."