Status: living document. Created 2026-06-12 to close the gap identified in
V1_V7_PLAN_SET_AUDIT_2026-06-12.md §6.1(5) and §6.2 (V1). Companion documents:
CAPACITY_MODEL.md,
CRYPTO_REGULATORY_REVIEW.md,
CHILD_SAFETY_COMPLIANCE.md,
SLO_AND_DR.md, LAUNCH_TIMELINE.md.
Rating scales#
Likelihood (L), per launch-year horizon
| L | Meaning |
|---|---|
| 1 | < 5 % chance |
| 2 | 5–20 % |
| 3 | 20–50 % |
| 4 | 50–80 % |
| 5 | > 80 % / near-certain |
Impact (I)
| I | Meaning |
|---|---|
| 1 | Negligible; absorbed inside error budget |
| 2 | Minor: SLO dent, < $10k unplanned cost, single-surface degradation < 1 day |
| 3 | Material: multi-day degradation, $10k–$100k, single-tenant data issue, launch-feature gating |
| 4 | Severe: launch slip ≥ 30 days, multi-tenant incident, regulatory inquiry, $100k–$1M |
| 5 | Existential-class: payments shutdown by regulator, child-safety incident, physical-harm event, > $1M |
Score = L × I. ≥ 12 = RED (mitigation mandatory before GA, reviewed at every launch-gate meeting). 6–11 = AMBER (quarterly review, mitigation funded). ≤ 5 = GREEN (monitor).
Owners are roles, not names; the Launch Director maintains the role→person map.
Register#
R-01 — RunPod GPU unavailability at launch — VENDOR — L4 × I4 = 16 RED#
Living Scenes' only V1 backend is chained-clip generation on GPU workers
(V1/features.md:4427-4432); RunPod is the only GPU cloud named
(V1/DEPENDENCIES.md:255,559). H100 spot/secure capacity is routinely
oversubscribed at exactly the moment a launch needs to scale.
- Mitigation (concrete failover):
- Committed primary capacity: reserve 60 % of the modeled design-point
fleet (78 of 130 H100,
CAPACITY_MODEL.md§3) as RunPod Secure Cloud committed instances for launch quarter; remainder on-demand. - Alternate provider = AWS EC2 P5 (H100) — AWS is already the primary
cloud with IAM/VPC/S3/Secrets paths in place (
V1/DEPENDENCIES.md§20), so no new vendor integration is needed. Hold 20 % of modeled peak (26 GPUs) as warm capacity via an EC2 Capacity Block spanning launch week: images pre-pulled, workers registered in the Conductor worker pool indrainedstate, promoted by one config flip. - The carry-state protocol is node-portable by spec (no node-bound latents,
V1/features.md:3728-3732) and provider failover is per-segment and user-transparent (V1/features.md:3740-3742), so failover requires no session migration logic beyond what the spec already mandates. Failover is drilled in load test LT-5 (CAPACITY_MODEL §7). - Determinism constraint: failover nodes must run the identical SKU/driver/CUDA/container digest (see R-08).
- Committed primary capacity: reserve 60 % of the modeled design-point
fleet (78 of 130 H100,
- Trigger indicators: RunPod API error rate > 2 % over 10 min; pod-provision p95 > 120 s; realized fleet < 90 % of target for 15 min; RunPod status-page incident.
- Owner: SRE Lead (infrastructure) + Generation Platform Lead (Yemaya).
R-02 — ElevenLabs / ASR vendor outage — VENDOR — L3 × I3 = 9 AMBER#
ElevenLabs is the named voice-synthesis provider for Tara teachers, Metis
tutors, and Living Scenes narration (V1/DEPENDENCIES.md:260); Psyche's voice
budgets (V1/features.md:2218-2228) cannot be met without a live TTS/ASR path.
- Mitigation — Psyche degradation ladder (instantiates the spec'd fallback
chain avatar+voice → voice → text,
V1/features.md:2239-2246):- Stage 0 (normal): ElevenLabs primary TTS via the provider adapter
(
libs/isis/ai-providers/.../elevenlabs-provider.ts). - Stage 1 (provider failover, no mode change): route TTS to the secondary
provider (OpenAI speech APIs, authorized per
V1/DEPENDENCIES.md:235) through the voice-provider abstraction (libs/oshun/persona-registry/src/voice-provider-abstraction.ts). Entry: 2 consecutive synth failures on a session, or fleet-wide first-chunk p951.5 s for 5 min.
- Stage 2 (voice → text): spec fallback with user-visible disclosure and
"thinking" indicator within 200 ms (
V1/features.md:2226-2228). Entry: both TTS providers failing, or ASR unavailable. - ASR leg: failover to self-hosted Whisper-class ASR (large-v3 on 2 warm GPUs borrowed from the render fleet — planning assumption adopted 2026-06-12; sized at 2 GPUs because ASR fallback only needs to cover text-upgrade-eligible sessions, not full fleet concurrency) at degraded latency, else text-input mode.
- Stage 3 (recovery): automatic upgrade attempt after stable interval per
spec (
V1/features.md:2245-2246). - Contracted ElevenLabs concurrency ≥ 1.5× modeled peak voice sessions (CAPACITY_MODEL §4) so a partial brownout is absorbed before the ladder engages.
- Stage 0 (normal): ElevenLabs primary TTS via the provider adapter
(
- Trigger indicators: provider 5xx > 1 % over 5 min; synth first-chunk p95 breach; ElevenLabs concurrency utilization > 85 % of contract.
- Owner: Realtime Lead (Psyche).
R-03 — Anthropic / model-provider price or availability shock — VENDOR — L3 × I4 = 12 RED#
Anthropic is the primary LLM for assistant, Sophia synthesis, Metis tutoring,
Lilith policy guards, and agentic AI (V1/DEPENDENCIES.md:234) — a single
vendor under five load-bearing surfaces. Shock scenarios: ≥ 50 % effective price
increase, deprecation of the pinned model, capacity rationing (429/529), or
regional restriction.
- Mitigation:
- The Isis provider abstraction (
libs/isis/ai-providers/) already isolates the vendor; keep evaluated fallback routes warm: OpenAI alternate endpoint (V1/DEPENDENCIES.md:235), Azure OpenAI swap-in (:561), Vertex AI supplemental (:560). "Warm" = monthly gold-set parity runs per surface so switching is a config change with a known quality delta, not a leap. - Per-surface token budgets and metered billing caps
(
V1/features.md:5408-5411) bound runaway cost exposure to one billing cycle. - Commercial: negotiate committed-use pricing with ≥ 90-day price-change notice before GA; treat absence of such terms as an open launch risk at the go/no-go gate.
- Safety decoupling: hard safety paths must not share the vendor failure domain (see R-18).
- The Isis provider abstraction (
- Trigger indicators: provider pricing/deprecation announcement; modeled LLM cost per DAU > 1.3× plan for 2 consecutive weeks; 429/529 rate > 0.5 %.
- Owner: Governance Lead (Isis) + Finance Lead.
R-04 — Living Scenes GPU cost blowout — OPERATIONAL/FINANCIAL — L3 × I4 = 12 RED#
Modeled cost is ≈ $0.12 per paid 8-min scene and ≈ $0.03 per free 90-s scene at
H100 $2.99/GPU-hr (CAPACITY_MODEL §5). Blowout vectors: missing the ≤ 6 s p50
segment budget (cost scales linearly with gen time), cache-hit shortfall,
higher-than-modeled attach, and Live-Direction dwell loops (linger/recall
extending sessions).
- Mitigation:
- Tier caps are already spec'd (free ≤ 6 segments/≤ 90 s; paid ≤ 24
segments/≤ 8 min,
V1/features.md:3803-3808) — enforce at the Conductor, not just the UI. - Per-user daily render budget: free 5 scenes/day, paid 40/day (planning assumption adopted 2026-06-12; derived as ~6× the median expected daily sessions so genuine users never hit it).
- Cache enforcement: Nyx tonight-briefing materializes once per
location-bucket (
V1/features.md:4072-4074); kept-artifact MP4s cached 30 days post-share (V1/features.md:4196-4199); replays must never re-render when a valid cache exists. - $/session-by-template dashboard with weekly Finance review.
- Kill criterion: blended GPU cost per active-Living-Scenes user-month
$1.80 (3× model) for 2 consecutive weeks → free tier degrades to the reduced-motion offering (still-carousel + narration,
V1/features.md:4444-4448) until unit economics recover; paid tier unaffected.
- Tier caps are already spec'd (free ≤ 6 segments/≤ 90 s; paid ≤ 24
segments/≤ 8 min,
- Trigger indicators: GPU-hours per 1k sessions > 1.5× model; fleet utilization < 50 % (waste) or queue-red state > 1 h/day (under-provisioning masking as cost control).
- Owner: Generation Platform Lead (Yemaya) + Finance Lead.
R-05 — Crypto regulatory action — LEGAL — L3 × I5 = 15 RED#
V1 is crypto-primary, non-custodial, no-KYC at the payment layer
(V1/features.md:5421-5427) with Monero in the catalog
(V1/features.md:5497-5509). Scenarios: a state money-transmitter inquiry, an
EU AMLR interpretation hostile to merchant privacy-coin acceptance, an exchange
refusing swept funds, an OFAC enforcement action on a missed screen.
- Mitigation: full analysis and per-region go/no-go gates in
CRYPTO_REGULATORY_REVIEW.md. Headlines: per-region rail gating config (any rail disableable per region within 24 h); outside-counsel memo per launch region before that region's gate opens; sanctions screening at invoice issuance, payment confirmation, and sweep; blocked-property procedure for SDN hits; Monero disabled at launch for JP/IL/AE-resident billing. - Trigger indicators: regulator contact in any launch region; counsel advisory; off-ramp exchange refusing swept funds; any sanctioned-address screening hit.
- Owner: General Counsel + Payments Lead.
R-06 — Metis institutional data incident — LEGAL/OPERATIONAL — L2 × I5 = 10 AMBER#
Metis carries rosters, gradebooks, integrity verdicts with evidence packs, and
guardian roles (V1/features.md:1553-1578, :1246-1252) — education records
under FERPA and state student-privacy laws. A cross-tenant leak or BYOM
exfiltration is a company-defining incident.
- Mitigation: tenant-isolation suite is launch-gating
(
tests/security/tenant-isolation/,V1/ARCHITECTURE.md:1237-1239); BYOM per-tenant sandbox with kill-switch effective ≤ 5 s (V1/features.md:1532-1546,:1590-1591); KMS encryption at rest (V1/DEPENDENCIES.md§24); evidence-pack access scoped to operators with the right scope (V1/features.md:1573-1575); breach-notification runbook with the state-by-state timeline matrix inCHILD_SAFETY_COMPLIANCE.md§8. - Trigger indicators: any cross-tenant test failure in CI (treat as Sev-1); BYOM abuse-pattern monitor quarantine event; anomalous bulk-export volume on a school tenant.
- Owner: Metis Product Lead + Privacy Lead (DPO).
R-07 — BFF overload at launch — TECHNICAL — L4 × I3 = 12 RED#
A single BFF fronts every Oshun-side domain (V1/ARCHITECTURE.md:292) — the
one chokepoint every launch-day request crosses.
- Mitigation: HPA 4 → 16 pods at 800 RPS/pod design capacity
(CAPACITY_MODEL §6); per-client rate limiting already spec'd at the BFF
(
V1/ARCHITECTURE.md:1069-1071); signup throttle is structural via the canary ramp (LAUNCH_TIMELINE Phase 3); waiting-room page engages at > 85 % saturation; load-shed order: experiments → recommendation candidates → nothing else (entitlement, auth, and safety paths are never shed). k6 spike test at 5× modeled peak is a beta-exit gate (LT-2, CAPACITY_MODEL §7). - Trigger indicators: BFF p99 > 800 ms for 5 min; pod CPU > 75 %; 5xx
0.5 %.
- Owner: Platform/BFF Lead.
R-08 — Determinism release gate unachievable on a mixed GPU fleet — TECHNICAL — L3 × I3 = 9 AMBER#
Pixel-equivalence within tolerance "on any approved GPU node" is a release gate
(V1/features.md:3669-3672, :4193-4194). Cross-SKU kernels, driver and CUDA
drift, and nondeterministic attention implementations are well-known
reproducibility breakers.
- Mitigation: define "approved node" narrowly — one SKU + driver + CUDA +
container image digest per workflow class; nightly determinism eval renders
the same Score+Envelope on N = 3 nodes (per spec eval,
V1/features.md:4209-4212); failover capacity (R-01) must run the identical image on the identical SKU; tolerance pinned in Isis as per-frame SSIM ≥ 0.995 (planning assumption adopted 2026-06-12; chosen as the tightest threshold distilled video models reliably meet across same-SKU nodes — validated, and revised only via Isis gate review). - Trigger indicators: any nightly determinism eval failure; any driver or base-image change without a gate re-run.
- Owner: Generation Platform Lead (Yemaya).
R-09 — Watermark channel-survival gate blocks share launch — PRODUCT — L3 × I2 = 6 AMBER#
Release of each share path requires 100 % recovery of at least one provenance
signal per channel (V1/features.md:4231-4236), and the C2PA mint/verify SDK
is explicitly an unclosed launch-readiness gap (V1/DEPENDENCIES.md §19).
- Mitigation: the four-channel redundancy (visible mark, audio watermark, C2PA, attestation page) is the design defense; treat the attestation-page short-code as the guaranteed-recoverable floor; close the C2PA SDK gap before dogfood starts (LAUNCH_TIMELINE Phase 1 entry); run the channel-robustness eval weekly against current channel encoder behavior (WhatsApp/Telegram re-encodes change without notice).
- Trigger indicators: any channel survival < 100 % in the weekly eval; a share-channel announces media-pipeline changes.
- Owner: Provenance/Media Lead (Yemaya).
R-10 — Stablecoin issuer freeze of receiving addresses — VENDOR/FINANCIAL — L2 × I3 = 6 AMBER#
USDC and USDT issuers hold freeze authority, documented on the invoice surface
(V1/features.md:5479-5481).
- Mitigation: per-invoice addresses bind one customer payment each (blast
radius = one invoice); sweep cadence at least daily above threshold keeps
hot-address balances under ~2 days of revenue; DAI remains the no-freeze
stablecoin alternative on every EVM rail (
V1/DEPENDENCIES.md:427); incident path: re-invoice the affected customer on an alternate rail and grant the entitlement manually with audit. - Trigger indicators: any freeze event touching an Oshun address; issuer policy/blacklist-criteria update.
- Owner: Payments Lead.
R-11 — iOS App Store rejection of the crypto paywall — PRODUCT/VENDOR — L4 × I3 = 12 RED#
Mobile paywalls render per-invoice crypto addresses/QRs and never redirect to a
custodial processor (V1/features.md:5391-5394). Apple guideline 3.1.1
requires IAP for digital goods; an in-app crypto invoice for entitlements is a
canonical rejection.
- Mitigation: iOS build ships entitlement display only; purchase happens
on web (reader-app pattern) or via the Telegram bot invoice surface
(
V1/features.md:5444); no purchase links or invoice rendering inside the iOS binary; App Review dry-run submission during private beta wave 2 with full reviewer notes; contingency: ship iOS with account-based entitlement sync only. - Trigger indicators: App Review rejection or guideline revision; Google Play policy drift (same mitigation applies).
- Owner: Mobile Lead + Payments Lead.
R-12 — Air-gapped signing-station loss / keyholder dependency — OPERATIONAL — L2 × I4 = 8 AMBER#
Refunds and sweeps require cold signing through the air-gapped station with
2-of-3 multisig vaults per chain family (V1/DEPENDENCIES.md:433).
- Mitigation: three keyholders across two physical sites plus one bank-safe-deposit backup share; quarterly signing drill that includes one simulated keyholder absence (must still complete a refund within SLA); recovery runbook versioned beside the payments-bridge code; customer-facing refund SLA of ≤ 5 business days holds even in a one-key-lost state.
- Trigger indicators: failed or skipped quarterly drill; keyholder departure/role change; any vault descriptor mismatch at audit.
- Owner: Payments Lead + Security Lead.
R-13 — Self-hosted node fleet sync failure at launch — TECHNICAL/OPERATIONAL — L4 × I2 = 8 AMBER#
V1 self-hosts eight chains' nodes (bitcoind, litecoind, monerod, Erigon,
cardano-node, ergo-node, java-tron, TON; V1/DEPENDENCIES.md:394-419). Sync
lag silently delays payment confirmation and therefore entitlement grants.
- Mitigation: chain-tip lag monitor per chain (alert at > 2 blocks or
2× nominal block time); weekly chain-data snapshots to S3 so a corrupted node restores in < 6 h instead of a multi-day resync (Erigon and cardano-node initial syncs are multi-day); multi-RPC N-of-M consensus fallback where the trust tier allows it (Tier B/C and Ethereum L1,
V1/DEPENDENCIES.md:399,403-419); per-chain row on the public status page; invoice surface shows honest "confirmation pending" state rather than guessing. - Trigger indicators: tip-lag alert; N-of-M provider divergence; node process restart loops.
- Owner: Payments Infrastructure Engineer.
R-14 — PSE/strobe or crisis-detector miss in continuous video — PRODUCT/SAFETY — L2 × I5 = 10 AMBER#
The rhythmic-pattern + strobe hard-kill is the physical-safety floor for Living
Scenes (V1/features.md:4165-4169); a miss is a physical-harm event.
- Mitigation: two independent detector implementations (ITU-R BT.1702-2
analyzer and a WCAG-2.x flash-threshold heuristic) — frames pass only if
both pass; fail-closed: detector unavailability fades the stream to still;
red-team fixture suite of known PSE-triggering clips runs per release; zero
tolerance — any miss blocks release, consistent with safety regression
blocking (
V1/features.md:5367-5369). - Trigger indicators: any detector disagreement in production (one fires, one doesn't); any user report tagged photosensitivity; fixture-suite miss.
- Owner: Safety Lead (Lilith).
R-15 — Locale-parity slip across the 8 launch locales — PRODUCT — L3 × I2 = 6 AMBER#
Launch locales are en-US, es-US, fr-FR, de-DE, ar, he, ja-JP, pt-BR
(V1/features.md:2679-2680), with cue-policy semantic parity required across
all of them (V1/features.md:3708-3711) and two RTL locales.
- Mitigation: locale-parity evals sit inside workflow-class release gates (already spec'd); translation freeze at dogfood start; explicit decision point at beta wave 2 — a locale failing parity launches dark (locale gated off, features intact) by Product decision, never by silent descope.
- Trigger indicators: parity eval failure for any locale; > 10 % of strings untranslated at T-30 before canary.
- Owner: Localization Lead + Product Lead.
R-16 — Cloned-voice abuse / persona-rights incident — LEGAL/PRODUCT — L2 × I4 = 8 AMBER#
Cloned-voice abuse is a named adversarial eval class
(V1/features.md:5363-5364); ElevenLabs-class cloning makes this cheap for
attackers.
- Mitigation: strict Lilith voice-abuse policy (
V1/DEPENDENCIES.md:260); per-voice-profile consent records with share-out grants (V1/features.md:4318-4323); takedown cascade mutes retired voices across kept and shared artifacts with re-render offers (V1/features.md:4340-4343); audio watermarking on all outputs (V1/features.md:4222-4224). - Trigger indicators: voice-abuse report; adversarial-suite regression; rights-holder complaint.
- Owner: Safety Lead (Lilith) + Rights Lead.
R-17 — Per-domain database provisioning gap — TECHNICAL — L4 × I2 = 8 AMBER#
V1/DEPENDENCIES.md §21 flags that ARETE_DATABASE_URL,
VERITAS_DATABASE_URL, NYX_DATABASE_URL, and METIS_DATABASE_URL are not in
.env.example. If these domains silently share oshun_dev in production, the
DR data-class mapping (SLO_AND_DR.md §4) and isolation
assumptions are wrong.
- Mitigation: resolve before dogfood entry: provision per-domain databases
- PgBouncer fronting (
V1/ARCHITECTURE.md:1210-1211), document URLs in.env.example; add a CI check asserting every BFF-routed domain declares a database URL (or an explicit, documented shared-DB decision).
- PgBouncer fronting (
- Trigger indicators: the CI check failing; any prod service connecting to
oshun_devoutside the documented allowlist. - Owner: Platform Lead.
R-18 — Correlated failure of product and safety layer on one LLM vendor — TECHNICAL/SAFETY — L3 × I4 = 12 RED#
Lilith policy guards run on the same primary vendor as the product surfaces
(V1/DEPENDENCIES.md:234). A vendor outage that takes down both generation
and its safety checks invites "ship unchecked" pressure at the worst moment.
- Mitigation: the hard safety paths — crisis-signal classification, cue
pre-screen, PSE-adjacent checks — run on a locally hosted classifier tier
(small model served from the render fleet; planning assumption adopted
2026-06-12 — sized at 2 inference replicas because cue/crisis classification
is lightweight relative to video generation). Vendor outage may degrade
quality, never safety. Fail-closed: if a policy check is unavailable,
the cue is rejected / the generation refuses (consistent with the
fail-closed norms across the spec, e.g.
V1/features.md:4382-4383). - Trigger indicators: vendor-outage game day showing any hard safety path blocked on the external vendor; latency of local classifier tier > cue budget share.
- Owner: Safety Lead (Lilith).
Summary heat map#
| Score band | Risks |
|---|---|
| RED ≥ 12 | R-01, R-03, R-04, R-05, R-07, R-11, R-18 |
| AMBER 6–11 | R-02, R-06, R-08, R-09, R-10, R-12, R-13, R-14, R-15, R-16, R-17 |
| GREEN ≤ 5 | (none at register creation) |
Maintenance#
- Register reviewed at every launch-gate decision (LAUNCH_TIMELINE) and monthly thereafter; RED risks additionally reviewed at each canary promotion.
- Every Sev-1/Sev-2 incident postmortem must either map to an existing risk (update L/I from observed reality) or add a new row.
- Likelihood/impact re-scored with observed beta data at Phase 2 exit; assumptions labeled above are replaced with measurements as they land.