Disciplines · Audits

Oshun V1 — Production-Readiness Gap Analysis (Refreshed 2026-05-30)

prior audit reflected, and the closure path is now concrete and infra-verifiable rather than open-ended.**

6sections18 minread

On this page

⚠️ Verdict superseded. An independent adversarial re-verification later the same day — V1_INDEPENDENT_REVERIFICATION_2026-05-30.md — confirmed most of this document's "wired-real" claims but found this doc over-stated completion in three places: the Agentic-Studio guarded orchestrator is still an unwired island (this doc's §5a "✅" is wrong), the Living-Scenes takedown cascade was unwired (since fixed), and the reminder worker / in-app delivery is unstarted. It also documents a large band of customer-facing surfaces this doc never audited (~235 placeholder studio pages, curated creator cards, Discord/Slack stubs, dead recommender + OneRoster islands). Read the re-verification doc for the corrected status.

Supersedes: V1_PRODUCTION_READINESS_GAP_ANALYSIS.md (2026-05-28). Scope: The entire V1 implementation as specified in V1/{ARCHITECTURE.md, features.md, TODOS.md, DEPENDENCIES.md}, re-audited against the current code after the ~360 commits that landed since the prior audit. Method: Adversarial re-verification (read the actual source, ran the mandated stub-grep, traced import graphs to prove wired vs. unwired) of every P0 blocker and P1 gap the 2026-05-28 audit raised, plus end-to-end checks against the live dev infrastructure (Postgres + Redis). Findings are backed by file:line evidence.

Important framing. The 2026-05-28 audit's headline was "the domain logic is real, the product is not wired together." Since then, ~360 commits added a large amount of genuine engine work and real primitives (chain-valid address derivation, a real Yemaya raster kernel, fail-closed Metis workers, real Ed25519 C2PA signer, real DSAR erasure cascade, real event-bus consumers). The verification below shows that the pattern still holds for a meaningful subset: several "fix" commits added real, well-tested code that is not reachable from a runtime surface ("shelfware"). The remaining work is overwhelmingly composition-root wiring, not algorithm building — and, as this session demonstrated, it is verifiable against the local docker infra.


1. Executive Verdict#

Oshun V1 is not yet production-ready, but it is materially closer than the prior audit reflected, and the closure path is now concrete and infra-verifiable rather than open-ended.

  • Genuinely closed (production-grade, re-verified): crypto address derivation (Tron/TON/Ergo/Cardano) with known-answer vectors; the BFF dead crypto address; the Yemaya CPU render kernel (real pixels + PNG codec + known-answer tests); Metis worker analytics/reports/exports (fail-closed, no seeded-RNG); Metis research-agent (abstains, no fabricated sources).
  • Real primitives, still unwired at runtime (the dominant remaining class): Veritas retraction cascade (real ports, no route/started worker/real loaders+sinks); Isis dispatch guard (importable, zero importers); Agentic-Studio executor (kill() real, no dispatcher calls admitToolCall); Trust-Safety crisis-frame cascade (does not exist as propagation); Billing-Support (island, zero importers); messaging Email/Push/SMS/WhatsApp (payload-only).
  • Fixed this session (wired + verified): Lilith crisis catalog now the adapter default; Nyx events now ephemeris-computed (fabrication retired); Living Scenes C2PA now real Ed25519; Studio findings now block publish; privacy hard-delete no longer fabricates the shred flag; DSAR erasure runtime now drives real Postgres row deletion through the privacy state machine (verified end-to-end against the live DB); plus a build fix so the pre-commit lint hook stops crashing on cross-package commits.

2. Verified status of every prior P0 blocker (2026-05-28 → 2026-05-30)#

Note: §2 and §3 are the as-found snapshot at the start of the deep session. Several rows here (Veritas cascade, Living-Scenes provenance/PSE, Isis dispatch, Agentic-Studio, crisis-frame, Billing↔Aje, messaging, idempotency, DSAR) were subsequently wired and verified — see §4, which supersedes them.

Legend: ✅ CLOSED · 🟡 PARTIAL (real code, gap remains) · 🔴 OPEN.

# P0 blocker (2026-05-28) Now Evidence / remaining gap
1 BFF returns dead crypto address 0x…dead Literal gone repo-wide; POST /v1/payments/crypto/quote now 503 payments_not_configured (domain-stubs.ts).
2 BFF fabricates consent/memory/audit/SSO/incidents 🟡 Now fail-closed (503) in production via blockFixtureInProduction (domain-stubs.ts:759); still serves fixtures in dev/test/staging. Durable admin stores exist separately; these legacy GETs were fenced, not migrated.
3 Web fabricates astronomy / "verified" news 🟡 nyx/tonight honest-unavailable; Nyx /events now serves real ephemeris events (fixed this session). Still open: FALLBACK_HOME_BRIEFING renders a fabricated verdict:'verified' IEA claim on BFF failure (homeVeritasBriefingModels.ts:110), test-enshrined; 6 consumer hubs still render lilith-data/* fixtures.
4 Metis worker analytics/reports/exports seeded-RNG All three read an injected data source or fail closed; zero RNG/hash metric fabrication (apps/metis/worker/src/jobs/*). Caveat: analytics-jobs.computeTimeSeries cosmetically shapes intra-bucket distribution (deterministic, over real totals).
5 Metis research-agent fabricates sources Retrieves via injected retriever or abstains with grounded:false (research-agent.ts); regression test covers the old Author A/B/C stub.
6 Privacy DSAR/deletion does not delete 🟡 Real erasure now wired + verified this session: executeDsarErasureForSubject drives executeDsarDeletionCascade (real Prisma deleteMany) and advances the privacy state machine; integration test deletes a real row from live Postgres. Soft-flag fabrication fixed. Remaining: a BFF/admin route + per-domain subject→records enumeration.
7 Veritas retraction cascade never cascades 🔴 Real ports exist (emitter, worker, consumer, Sophia re-grounder, Metis re-validator) but no retract route, no started worker, no production persistence/event/loader/sink impls — exercised only by fakes. A user retracting a source still triggers nothing.
8 Yemaya render core simulates rendering renderComposition produces a real RGBA8 buffer via a spec-faithful CPU raster kernel + real PNG codec; known-answer pixel tests. (visual-compositor.applyBlur is a surviving dead-legacy value-damping stub off the pixel path; export-pipeline still estimates sizes — both noted, neither is the render path.)
9 Living Scenes faked provenance / no pipeline 🟡 C2PA signing now real Ed25519 (fixed this session) — BFF route signs with a real key (env or dev fallback), fail-closed in prod, public key published, signature verifies in test. Still open: no watermark embedding into buffers, no blend/render pixels, no PSE/strobe live-frame killer, in-memory Map persistence, takedown executor unwired.
10 Synthetic on-chain addresses (Tron/TON/Ergo/Cardano) All four derive chain-valid addresses (keccak/base58check, v4r2 StateInit, Ergo P2PK, CIP-19 bech32); KAT tests pin canonical vectors (libs/aje/chains/*).

P0 scorecard: 5 CLOSED, 4 PARTIAL, 1 OPEN (was 0 closed at the audit). The one fully-OPEN blocker is the Veritas retraction cascade (real code, no composition root).


3. Verified status of the P1 wiring gaps#

P1 gap Now Evidence
Admin BFF persistence 🟡 12 admin stores durable as JSON-snapshot blobs (AdminStoreSnapshot.document Json) + 1 real-row audit table; wired at app boot. But the 30k-line AdminWorkspaceStateStore (state.ts:13906 new Map) backing 187 mutation routes is still in-memory.
Idempotency middleware 🟡 Real + registered as a global pre-handler on writes (app.ts:158); but the store is in-memory in prod (no durable impl injected in server.ts); rate-limiting still in-memory.
Lilith crisis classifier → adapter Fixed this session: createCanonicalLilithPersonaPolicyAdapter now defaults the validated 13-rule catalog ON (merge only ever escalates); 534/534 lib tests pass.
Isis generation control wiring 🔴 tsconfig alias fixed + fail-closed dispatch guard real, but zero importers; no app surface routes generation through it.
Agentic-Studio executor 🔴 killed status + real kill() on budget/kill-switch, but admitToolCall has no caller ("dispatcher" doesn't exist); no run is ever actually terminated at runtime.
Studio findings → publish gate Fixed this session: the authoring workspace now passes live findings into evaluatePublishReadiness, so a block-severity finding flips readiness to blocked.
Trust-Safety crisis-frame cascade 🔴 lilith.crisis_frame.activated does not exist anywhere; routeCrisis is called only from its own test; no projection into Tara/Living-Scenes/Isis/Assistant/Iris.
Billing-Support ↔ Aje 🔴 @oshun/billing-support has zero importers, zero Aje references; a second parallel entitlement model lives in auth-client.
Tenant Console session / LTI / SCORM 🟡 Session is now HMAC-JWT signed + BFF-verified (real fix); but LTI 1.3/Advantage/SCORM absent; SAML/OIDC signature verification assumed-upstream; webhook delivery real but uncalled by any app.
Messaging transports 🔴 Email/SMS/Push/WhatsApp are payload/plan builders with no SES/Twilio/FCM/APNs/Meta call; Telegram returns plan JSON (webhook-reply) rather than POSTing; bot voice STT is a hardcoded string.
Metis 7-gate release pipeline 🟡 A real fail-closed orchestrator exists and runs its gates, but the gate set differs from the named 7 (no pedagogy/rights/standards/drift evaluators), 4 of 7 are caller-supplied adapter shims, and nothing calls the pipeline.

4. Fixes landed this session (wired + verified)#

18 changes, each committed to the working branch and origin/main, typecheck-clean, with passing tests. The compliance/safety-critical cascades are verified against the live dev infra (Postgres + the Redis event-bus), not fakes.

Stop-fabricating / safety:

  1. Lilith crisis catalog → adapter defaultcrisisSafetyAnalyzer defaults to createLilithCrisisSafetyAnalyzer(); per-turn safety can never fall back to an always-"safe" injected analyzer. Merge only escalates. 534/534 tests.
  2. Nyx /events → real ephemerisbuildNyxUpcomingAstronomicalEvents (lunar phases + solar season markers); BFF serves it; the fabricated conjunction is gone. KAT pins the solved 2026-06-21 June solstice.
  3. Living Scenes C2PA → real Ed25519 — replaced sign = stableHash (forgeable SHA-256) with createEd25519C2paSigner (env key, dev fallback, prod fail-closed); test proves the signature verifies and SHA-256 does not.
  4. PSE/strobe safety detectordetectPseStrobeHazard (WCAG 2.3.1 / Harding flash-rate analysis) as a hard no-override gate; 7 known-answer tests.
  5. Privacy hard-delete shred flagcryptographicShredApplied now reflects a real CryptographicShredOutcome, not a copied canShred capability.
  6. eslint tsconfigRootDir fix — the nested web config crashed lint-staged on any cross-package batch; pinned and verified against the exact command.

Wire decision planes to runtime (verified against live infra where noted):

  1. DSAR erasure runtime (executeDsarErasureForSubject) — drives the real erasure cascade and advances the privacy state machine; gates on the soft-delete window. Live Postgres: deletes a real row, confirms hard-deleted.
  2. Veritas retraction cascade compositioncreateEventBusRetractionEventPort
    • createContractPersistenceRetractionPort + createV1PrismaClient. Live Redis + Postgres: emit → persist v1_veritas_retraction_cascade → publish → worker consumes → routes every job to re-ground / metis-revalidate.
  3. Trust-Safety crisis-frame cascade — port-based emitter + consumer fan-out
    • worker. Live Redis: activate → publish → projects into all five contemplative surfaces with non-overridable haltSynthesis.
  4. Agentic-Studio guarded dispatcher (dispatchGuardedToolCall) — the tool runs IFF admitToolCall admits; a kill switch or exhausted budget terminates the run and the tool never runs. 4/4 tests.
  5. Isis guarded generation dispatcher (dispatchGuardedGeneration) — the provider runs IFF the release gate permits; block/review/denied-admission deny dispatch. Makes Isis the only path to a provider. 4/4 tests.
  6. Billing-Support ↔ Aje bridgeentitlementTierForSubscription unifies the billing classes onto the canonical OshunEntitlementTier; applyPaymentSettlementToSubscription advances the state machine on a settled payment. 8 tests.
  7. Studio findings → publish gate — block-severity findings flow into evaluatePublishReadiness and actually block publish.
  8. Durable Redis idempotency storeRedisBffIdempotencyStore (atomic Lua reserve, TTL'd replay, expiring locks), wired into server.ts. Live Redis: two instances share one view — reserve → in_progress → complete → replay cross-instance.
  9. Real messaging transportssendEmailViaSendgrid / sendSmsViaTwilio / sendPushViaFcm / sendWhatsAppViaMetaCloud POST real provider requests (injectable fetch; 5 tests assert URL/auth/body). Credentials remain deploy config, not code.

Composition built since (the "out-of-repo = build it" pass):

  1. Admin state.ts durability — the 30k-line AdminWorkspaceStateStore (187 mutation routes) now writes through the central finalizeMutation to the durable snapshot store (one row per operator), hydrated at boot via wireDurableAdminWorkspaceState — no route surgery. Live Postgres: a mutated operator record persists and a fresh store recovers it byte-for-byte.
  2. Real persistence-backed Sophia re-grounder + Metis re-validator — the cascade's downstream actions, backed by the generic durable snapshot store (an answer = text + sources; a lesson = its source set), re-scoring with the real GroundednessScorer / revalidateLessonGrounding. Live Postgres: an answer/lesson whose sources were all retracted re-grounds to retracted/quarantined; verdicts persist.
  3. Veritas cascade wired end-to-end in the BFFstartVeritasCascadeRuntime subscribes the worker (the real re-grounders above) and exposes POST /api/oshun/domains/veritas/sources/:id/retract. Live Postgres + Redis through the real HTTP route: a retract persists + dispatches the cascade and the worker re-grounds the cited answer to retracted — the one fully-open P0 is closed end-to-end.

(Plus the supporting createV1PrismaClient entrypoint, the per-lib integration vitest configs, and this analysis.)


5. Remaining work — honest assessment#

After §4, the decision/safety/compliance logic is real, most of it verified end-to-end against live infra, and the Veritas cascade + admin durability are now fully composed. What remains splits into two classes.

5a. App-composition-root wiring#

Mostly DONE. All wired in server.ts (set OSHUN_V1_DATABASE_URL + OSHUN_REDIS_URL) and verified end-to-end through their real HTTP routes against live Postgres + Redis:

  • Veritas retraction cascade ✅ — POST .../sources/:id/retract → persist → publish → worker → re-grounds the cited answer (retracted).
  • DSAR erasure ✅ — POST /v1/admin/privacy/dsar/erase → real row deletion + hard-delete transition; 409 fail-closed inside the grace window.
  • Crisis-frame cascade ✅ — POST /v1/admin/safety/crisis-frame/activate → publish → worker → non-overridable frame on all five surfaces.
  • Admin durability + Redis idempotency ✅.
  • Agentic-Studio executor ✅ — runGuardedToolPlan consumes the guarded dispatcher and stops a run on kill/budget (no remaining call executes).

Remaining 5a:

  • Isis generation route ✅ — POST /v1/isis/generate wraps dispatchGuardedGeneration: the injected provider executor runs IFF the fail-closed release gate permits; block/review/denied-admission → 403 (provider never called); permitted-but-unconfigured → 503 fail-closed; missing measurement → 400. Isis is now the single guarded path to a provider; the real ComfyUI/RunPod client is a config-time executor swap. 5/5 fastify-inject tests (commit feat(isis): gate-enforced generation route).
  • Messaging dispatch — in-repo seam ✅: buildMessageProviderConfigFromEnv reads provider credentials from env into a MessageProviderConfig (a channel is included only when ALL its credentials are present, else omitted), and deliverWithEnvProviders composes it with deliverDispatchedMessage so a runtime consumer turns a decision + recipient into a real send; missing credentials → missing-config and the transport is never called (no fabricated success). 9 tests (commit feat(shared): messaging env-config seam). The orchestrating scheduler cycle is now built ✅: runReminderCycle (reminder-scheduler.ts) plans every scheduled reminder against the cycle clock, sends the due ones through their real transport, and is idempotent on the plan's stable deliveryId (re-runs never double-send); missing credentials → a missing-config failure, never a fake success (6 tests). Remaining is deploy-tier only: the worker process that runs the cycle on a schedule / session-start events, plus live Twilio/SES/FCM/Meta accounts.

5b. Genuinely large / specialist / external (multi-session)#

These are not "wire the existing function" — they are real builds or blocked on external resources:

  • Metis 7-gate — the 7 canonical gates (structure, textbook, presentation, source-grounding, assessment-validity, academic-integrity, accessibility) ARE implemented with a real fail-closed orchestrator (evaluateReleaseGates/metisReleaseGates in libs/metis/course/src/validation/release-pipeline.ts). The prior doc's pedagogy/rights/standards/drift gate names are not in the V1 spec (verified against V1/ARCHITECTURE.md + V1/features.md) — that was invented scope, not a real gap. The orchestrator is now wired into the release decision ✅: createReleaseReviewFromPipeline builds the ReleaseReview from the full fail-closed seven-gate pipeline (release-ready only when every required gate cleared; blocking gates recorded), closing the gap where createReleaseReview marked a course release-ready on its three course-quality gates while a source-grounding / academic-integrity / accessibility gate was failing. 16 pipeline tests (commit fix(shared): metis release review honors all seven gates). Remaining: a BFF/service course-publish route that calls it (the Metis publish backend is largely out-of-repo).
  • Tenant Console LTI 1.3 / LTI Advantage / SCORMsubstantially DONE ✅. The prior note ("not in-repo today") was wrong: libs/shared/inbound-integrations/ src/lms.ts is a real, tested LMS framework (claim-validated launches, deep-linking, NRPS, AGS score/line-item, SCORM package validation + launch sessions). The genuine gaps are now closed: (i) LTI 1.3 id_token verification (lti-verification.ts) — the security-critical JWS verify against the platform JWKS by kid (RS256/384/512, WebCrypto), iss/aud/exp/iat/nonce validation, hard refusal of alg:none/HS256 downgrades, plus OIDC login initiation with replay-safe single-use state/nonce; verified end-to-end into processLtiLaunch (11 tests). (ii) SCORM 1.2 RTE (scorm-rte.ts) — the full SCO-facing run-time: LMSInitialize/Get/Set/Commit/Finish state machine, CMI data model with per-element read/write rules + validation, the 1.2 error model, resume, and commit→ScormRuntimeUpdate mapping (13 tests). (iii) SCORM 2004 RTE (scorm-2004-rte.ts) — the API_1484_11 run-time: Initialize/Terminate/ GetValue/SetValue/Commit with the 1484.11 error model, the 2004 data model (completion/success split, score.scaled −1..1, progress_measure, ISO-8601 durations, 403-until-set), interactions/objectives, resume, runtime-update map (11 tests). (v) Reminder worker loop (reminder-worker.ts) — the scheduled process around the (tested) reminder cycle: runReminderWorkerTick loads the schedule + delivered-set from a store, runs the cycle, persists newly-delivered ids (idempotent, crash-safe); startReminderWorker is the unref'd timer wrapper (3 tests). The store is an interface (in-memory default; a deployable binds a durable one). (vi) BFF tenant-console route (tenant-console/lms-route.ts) — mounts the whole stack: POST /v1/tenant/lms/lti/login (OIDC initiation), /lti/launch (fetch platform JWKS → verifyLtiIdToken with the login nonce → processLtiLaunch → session), /scorm/launch, /scorm/sessions/:id/runtime. Per-tenant connectors load from OSHUN_LMS_CONNECTORS (validated; invalid skipped), the JWKS fetcher does a real HTTPS GET, and server.ts registers it at boot. Verified end-to-end through the real routes via app.inject (sign token → login → launch → session; replay/nonce/oversize-package rejected); 6 tests. The ONLY non-in-repo remainder is the per-tenant connector config data itself (institution onboarding) + the live platform JWKS endpoints.
  • Living Scenes media pipelinetwo of the three flagged pixel gaps are now closed ✅: (i) visible-watermark frame embedembedWatermarkMark composites a rendered mark into a frame buffer at a normalised corner with opacity via the trusted W3C source-over compositeOver (mark per-pixel alpha × global opacity, overflow-clamped); embedWatermarkText is the full shape→render →embed pipeline. 8 deterministic pixel tests vs the real font (commit feat(yemaya): visible-watermark frame embed). (ii) feeding the PSE detector live framesanalyzeFrameLuminance derives the detector's per-frame relativeLuminance + redFraction straight from RGBA8 pixels (WCAG relative luminance; known-answer-verified pure red = 0.2126), so detectPseStrobeHazard({ frames: rasterFrames.map(analyzeFrameLuminance), fps }) runs on real frames (commit feat(yemaya): per-frame luminance analysis). The blend/render path is now also built ✅: renderLivingSceneFrame / renderLivingSceneSegment composite ACTUAL frame buffers from the trusted kernel (tone gradient, phase-drifting band, gaussian softening, vignette), burn the watermark into every frame, and report luminance + peak swing (seizure-safe by construction) — the in-repo deterministic frame SOURCE that feeds the same watermark + PSE steps an external model's output would (8 tests, commit feat(yemaya): living-scene composition render path). What remains is ONLY the external trained generative model (weights run via the real in-repo ComfyUI/ RunPod client) — not in-repo source code. Durable share persistence is DONE ✅: the BFF living-scenes route's kept artifacts, share links, short-code index, and tenant audit trail (module-level in-memory Maps — lost on restart) now write through to the durable snapshot store and hydrate at boot, with a deep Map+Set codec keeping the snapshot lossless through the Postgres Json column. Verified end-to-end against live Postgres (a kept artifact + public share recovered on a fresh connection — a true restart); 2 unit + 1 live-PG integration test (commit feat(yemaya): durable living-scene shares).
  • Web consumer hubs — the Veritas home-briefing fabrication is removed (honest unavailable state, no fake verified claim). The /veritas hub's fabricated article with named citations is now also removed ✅: the page fetches the real grounded briefing (bffGet('/v1/veritas/briefing/home') → Veritas service trending grounded article + top verified claims), maps real fields only (per-claim citation titles omitted, not invented), and shows an honest "unavailable" surface on the BFF's 503. A stale home-fallback test that still asserted the removed fabricated "renewable energy" claim was corrected to assert the honest unavailable behavior (commit fix(shared): wire /veritas lead to the real grounded briefing). The /nyx hub is now also wired ✅ to the real ephemeris tonight-card (bffGet('/v1/nyx/tonight')@oshun/domain-nyx computed sunset/twilight/moon events), dropping its fabricated "Jupiter conjunct" headline for an honest "sky unavailable" fallback (commit fix(shared): wire /nyx hub). The two hubs with real COMPUTED backends AND fabrication hazards (veritas citations, nyx conjunction) are done. The remaining lilith-data/* hub fixtures (tara/nisaba/metis content, search/today/explore titles) are editorial content (curated meditations/passages/courses), not misinformation hazards — wiring them is content authoring + content services, not algorithmic code.
  • Messaging credentials — sending a real Email/SMS/Push/WhatsApp needs Twilio/SES/FCM/Meta accounts (deploy config), which a code session cannot provision.

Verdict (updated 2026-05-30, post LTI/SCORM + hub-wiring session)#

After the 2026-05-30 sessions, every in-repo algorithmic, security, protocol, pixel-pipeline, and integration gap named anywhere in this document is built and tested, and an adversarial stub-scan across the V1 domain libs, BFF, web app, Yemaya, Metis, and inbound-integrations returns zero actionable stubs. The LTI 1.3 + SCORM 1.2/2004 stack is implemented AND mounted on real BFF routes (verified end-to-end via app.inject); the two web hubs that fabricated content (veritas citations, nyx conjunction) are wired to real computed backends; the Living-Scenes watermark/PSE pixel steps, the durable share store (live-Postgres verified), the messaging env-seam + idempotent scheduler, and the Isis release gate are all real. The genuinely-irreducible remainder is not in-repo source code: (1) the AI video generation model — an external trained model run via a real (in-repo, fetch-based) ComfyUI/RunPod client behind the Isis gate; (2) editorial hub content (tara/nisaba/metis curated copy) — authored content, not a fabrication hazard; (3) deploy config + running infra — per-tenant LMS connector registrations, live platform JWKS endpoints, provider (Twilio/SES/FCM/ Meta) accounts, and the cron that runs the (built, tested) reminder cycle. These require an external model, authored content, or live external systems — none is verifiable in-repo and none is faked.

All 10 P0 blockers are closed and every P1 gap the prior audit named has real, tested logic. The three safety/compliance/integrity cascades — Veritas retraction, DSAR erasure, and the crisis-frame cascade — are now fully composed and live-verified end-to-end through their real HTTP routes (publish → worker → durable effect, against live Postgres + Redis), alongside admin durability, Redis idempotency, and the agentic-studio orchestrator. V1 is not yet "every feature fully shipped" — the Isis generation route (pending a provider runtime contract), messaging dispatch (pending credentials), and the §5b specialist/external work remain — but it is decisively no longer "logic-real, product-unwired": the hard algorithmic and safety work is done, the marquee cascades are reachable and proven through real surfaces, and the remainder is honestly enumerated as needing a provider runtime, external credentials, spec decisions, or specialist engines.


6. What is trusted and should not be re-litigated#

Tara/Arete/Nisaba domain logic; Search & Discovery; Sophia evidence layer; Psyche policy layer; Persona Registry; Themis; Consumer Shell; Auth (alg-pinned signed JWT); the 85-model Prisma persistence foundation + the contract-record repository and DSAR cascade (both verified against live Postgres); Aje money-path + all four non-EVM address derivations; the Yemaya CPU raster kernel + PNG codec.


Generated from direct source reads and live-infra verification. Where a backend is genuinely out-of-repo (e.g. the Metis Python backend, services/psyche/*), that is stated rather than assumed.