Compiled 2026-07-18 at working-tree commit d099eb67e1. Method: one sequential
repository sweep (Explore agent) across the 12 schema families named by
YSD-0104, followed by main-session spot-verification of ten load-bearing claims
by reading the cited files (all confirmed: aja dual annotation models with
divergent enums, sophia Notebook:935 / EvidencePack:971 / RightsStatus:72,
CanonicalPlatformAuditEventSchema:160, metis dual MasteryLevel
(analytics.ts:19–27 vs profiling/types.ts:30–38), dual model AuditLog
(sophia:1331, yemaya:1118), oshun NisabaAnnotation:2017 /
NisabaNotebook:2111, bellona REMOTE_REPLAY_BUNDLE_VERSION:66, live-media
PlaybackGrantClaimsSchema:44).
Paths are repo-relative. Types listed are the load-bearing few, not exhaustive.
1. Media#
apps/aja/svc-reference-video/src/types.ts— aja. Branded IDsVideoId/SegmentId/ClipId/EmbeddingId(vid_…brands,Math.randomgenerators). Core:Video,VideoMetadata,VideoStreamMetadata,AudioStreamMetadata,VideoRendition,ThumbnailSprite,VideoEmbedding,Clip.libs/shared/live-media/src/media-publication.ts+identifiers.ts— shared/live-media. ZodMediaPublicationRecordSchema,MediaObjectPathSchema,mediaPublicationObjectPrefix(); UUID-brandedMediaPublicationIdSchema,LiveStreamIdSchema,TenantIdSchema; HLS/DASH renditions ashlsMasterKey/dashManifestKey.libs/yemaya/database/prisma/schema.prisma(419–490) — yemaya.model Asset(storageKey,mimeType,checksum,metadata Json), enumsAssetType(IMAGE/VIDEO/AUDIO/MODEL_3D/…),AssetStatus; plusAssetTag,AssetUsage; FK-free cross-domain refsisisGenerationId,bellonaAssetId.libs/yemaya/assets/drizzle/0000_yemaya_lfs_quota_initial.sql— yemaya/assets. Drizzleyemaya_lfs_*quota tables (Git-LFS media storage).libs/euterpe/distribution/src/metadata/index.ts,libs/euterpe/lyria/src/prompting-assets/types.ts— euterpe (music distribution / prompt-asset metadata; distinct from the video model).
2. Annotation#
apps/aja/svc-reference-video/src/types.ts(582–696) — aja.interface Annotation,AnnotationType = point|bounding_box|polygon|polyline|skeleton|label|text|timestamp|correction; brandedAnnotationId; alsoSegment,Comment.apps/aja/svc-reference-video/src/annotation.ts(34–660) — aja (same app, second model).VideoAnnotationdiscriminated union (Timestamp|Segment|Skeleton|BoundingBox|Keypoint|Polygon|Label|Note|Action|Quality); differentAnnotationType(addsnote/action/quality/keypoint);AnnotationStatus = draft|submitted|approved|rejected|archived;AnnotationTrack,AnnotationLayer, classAnnotationService.libs/nisaba/core/src/types/annotations.ts— nisaba. W3C Web-Annotation flavored:AnnotationTypeValue,AnnotationMotivation, selectorsTextQuoteSelector,TextPositionSelector,FragmentSelector,XPathSelector, unionAnnotationSelector.libs/nisaba/database/prisma/schema.prisma(110–541) — nisaba.model Annotation(cuid id,targetUri,targetSelector Json,motivation),model AnnotationLayer; enumsAnnotationType,AnnotationStatus (ACTIVE…).libs/oshun/persistence/prisma/schema.prisma:2017— oshun.model NisabaAnnotation→v1_nisaba_annotationcontract projection (target Json,citationIds,linkedNotebookIds,contractSchema/contractVersion/payloadHash, tombstones).
3. Notebook#
libs/nisaba/workspace/src/research-environment.ts— nisaba.ResearchProject,ProjectTask,Milestone,ProjectResource, enumsProjectStatus/ProjectRole/ResearchType/TaskStatus;PROJECT_TEMPLATES; plusweb-reading-workspace.ts,scholar-mode/scholar-profile.ts.libs/nisaba/database/prisma/schema.prisma— nisaba.model CriticalEdition(+EditionStatus),PersonalLibraryItem,Bookmark,ResearchProject,Passage,CanonicalReference.libs/nisaba/canon/src/*— nisaba. Corpus/canon definitions (hebrew-bible.ts,septuagint.ts,pali-canon.ts,quranic-canon.ts,canonical-uri.ts,cts-cite.ts,versification-mapping.ts).libs/sophia/database/prisma/schema.prisma:935— sophia.model Notebook(research notebook backing EvidencePacks).libs/oshun/persistence/prisma/schema.prisma:2111— oshun.model NisabaNotebook(v1_nisaba_notebook:annotationIds,citationIds,conceptNodeIds,passageIds,items Json), plusNisabaStudyPlan.
4. Evidence#
libs/sophia/schemas/src/claim.ts— sophia. ZodClaimTypeSchema,ClaimOriginSchema,ExtractedClaimSchema,CitationNeededFlagSchema,ClaimSourceMatchSchema,CitationSeveritySchema.libs/sophia/schemas/src/citation.ts— sophia.SourceSchema,InlineCitationSchema,CitationStyleSchema,ReliabilityScoringSchema,TextPositionSchema.libs/sophia/schemas/src/ids.ts— sophia. BrandedClaimId,CitationId,DocumentId,EntityId,RelationId,SourceId,KnowledgePackId.libs/sophia/database/prisma/schema.prisma— sophia.model EvidencePack(971:claims/sources/excerpts/citations/ retrievalTrace/rationale Json,notebookId,provenanceBundleId),Citation,CanonicalCitation,CitationTrail,GroundedAnswer,GroundedReport,SourceSet.libs/oshun/persistence/prisma/schema.prisma— oshun.VeritasClaim(1131),VeritasEvidencePack(1196),MetisAssessmentEvidencePack(2514),CrossCuttingEvidencePack(2885) — projections.
5. Rights#
libs/shared/live-media/src/playback-grant.ts— shared/live-media. ZodPlaybackGrantRequestSchema,PlaybackGrantClaimsSchema,PlaybackGrantDescriptorSchema,PlaybackEntitlementDecisionSchema; HMAC-signed grants;PLAYBACK_GRANT_ERROR_CODES; siblingpublisher-grant.ts; capability strings inscope.ts(live-media:stream:view…).libs/yemaya/agents/src/creative/performance-reference-library.ts:36— yemaya. Inline literal'owned'|'licensed'|'fair-use-reference'| 'internal'(not a shared schema).libs/sophia/database/prisma/schema.prisma:72— sophia.enum RightsStatuson documents (separate vocabulary).libs/shared/audit-platform/src/rights-report.ts,model-license-review.ts,voice-likeness-consent.ts— shared/audit-platform (rights reporting / license review / likeness consent).libs/oshun/persistence/prisma/schema.prisma— oshun.CrossCuttingConsentRecord(2791),OriPresenceConsentEvent(134); pluslibs/oshun/memory-iris/src/consent-ledger.ts,data-rights.ts.
6. Search#
apps/aja/svc-reference-video/src/types.ts(858–935) — aja.SearchQuery(text/image/video/motion; modetext|visual|motion|hybrid),SearchResult,SearchResultItem.apps/sophia/search-api/src/types.ts— sophia. A differentSearchQuery,SearchFilters,SearchOptions,SearchResponse,HybridSearchConfig,BM25Config,RerankingConfig; brandedQueryId,ResultId,ChunkId,CitationId.libs/sophia/semantic-search/src/types.ts— sophia.SearchType,SimilarityMetric,RankingFactor,FilterOperator,CollectionType,SearchFilter(s),RankingWeights; brandedSearchResultId,SearchSessionId.
7. Graph#
libs/sophia/knowledge-graph/src/types.ts— sophia. BrandedNodeId/EdgeId/ConceptGraphId; constEntityType,RelationType,ConceptRelationship;GraphNode,GraphEdge,ConceptNode,ConceptEdge,Subgraph,TraversalResult,CentralityScores.libs/sophia/schemas/src/relation.ts+entity.ts— sophia. ZodRelationSchema,RelationTypeSchema,RelationDirectionSchema,RelationEvidenceSchema;EntityTypeSchema+ per-kind property schemas.libs/sophia/citation-graph/src/types.ts— sophia. Citation-graph node/edge types.libs/yemaya/canon-graph/src/types.ts— yemaya.CanonNode,CanonEdge,CanonRelation,CanonNodeKind,CanonSnapshot.libs/nisaba/database/prisma/schema.prisma— nisaba.InfluenceEdge,ConceptMapping,MotifAttestation; oshun projectionNisabaConceptGraphNode.
8. Learning#
libs/metis/core/src/types/types.ts— metis. BrandedCourseId/LessonId/QuestionId;Course,CourseModule,Lesson,Question,CourseProgress,LessonProgress,QuestionResult(extendAuditFields); enums incore/src/enums/enums.ts.libs/metis/adaptive/src/path/fsrs.ts—FSRSCard,FSRSConfig,FSRSState, classFSRS.path/bkt.ts—BKTParams,TraceResult,BayesianKnowledgeTracing.path/spaced-repetition.ts—ReviewResult,SchedulerStats,SpacedRepetitionScheduler.path/types.ts—ReviewCard,MasteryGate,MasteryMilestone,LearningPath,SM2QualityRating,CardState.path/mastery-progression.ts—MasteryProgressionConfig,MasteryProgression.libs/metis/tutoring/src/loop/mastery-updaters.ts(MasteryBands),tutoring/src/analytics/analytics.ts(MasteryLevel),adaptive/src/profiling/types.ts(anotherMasteryLevel).libs/metis/database-types/src/schema/schema.ts— metis (drizzle-style schema module); metis persistence materialized in oshun (MetisLessonAssetBundle:2333,MetisAssessmentEvidencePack:2514).
9. Replay#
libs/aphrodite/game-runtime/src/replay/replay-system.ts— aphrodite.ReplayFileMagic='OSHRPLY',ReplayFileVersion=1;ReplayFile,ReplayFileHeader,CompressedInputFrame,ReplayRecordingFrame,ReconstructedReplayState,ReplayKillCam,ReplayHighlight,ReplayClipExportJob,ReplayShareManifest,ReplayAntiCheatFinding;input-recorder.ts(InputRecorder),state-snapshotter.ts.libs/bellona/remote-protocol/src/replay-bundle.ts— bellona. ZodRemoteReplayBundleSchema,RemoteReplayBundleManifestSchema,RemoteReplayTimelineEntrySchema, screenshot/keyframe/stream-segment/ redaction/command/approval schemas;REMOTE_REPLAY_BUNDLE_VERSION='1'.libs/bellona/remote-protocol/src/replay-export.ts— bellona.RemoteReplayExport,RemoteReplayComplianceSummarySchema,RemoteAuditChainExport,ReimportedAuditChainVerification; formatscanonical-json|jsonl.
10. Telemetry#
apps/v2/telemetry-schema-migrations/src/telemetry-schema-migrations.ts— v2.TelemetryEventSchemaDefinition,TelemetrySchemaVersion,TelemetrySchemaMigration(Plan),TelemetrySchemaCompatibility='additive'|'breaking',TelemetrySchemaStability.apps/v2/player-behavior-heatmaps/src/player-behavior-heatmaps.ts— v2. Heatmap/behavior aggregation; sibling appstelemetry-event-replay,telemetry-session-reconstruction,telemetry-privacy-compliance,telemetry-rate-limiting,telemetry-data-export-api,telemetry-bi-export-connectors.libs/bellona/remote-adapters/src/telemetry-hooks.ts,libs/bellona/cross-dcc-consistency/src/telemetry-health.ts— bellona (DCC/agent telemetry).
11. Signing#
libs/shared/content-signing/src/index.ts— shared/content-signing.ED25519_ALGORITHM,sha256Hex,generateEd25519SigningKeyPair,ed25519Sign/Verify(Base64),ClaimSigner/ClaimVerifier,Ed25519ClaimSigner/Ed25519ClaimVerifier.libs/shared/content-security/src/provenance.ts— shared/content-security.AIContentProvenanceManifest,C2PAIngredient,C2PAAction,C2PAAssertion,C2PAContentCredentialRequest,C2PASignerBinding,AIContentOrigin='human-created'|'ai-assisted'|'ai-generated'|'mixed'.libs/shared/audit-platform/src/provenance-attachment.ts,provenance-badges.ts,watermark-verification.ts; pluslibs/oshun/c2pa-export/.
12. Audit#
libs/contracts/src/common/canonical-audit-event.ts:160— contracts (platform-canonical).CanonicalPlatformAuditEventSchema,CanonicalAuditActorSchema,CanonicalAuditTargetSchema,CanonicalAuditEvidenceSchema,CanonicalAuditOutcomeSchema,CanonicalAuditSeveritySchema (info|warning|error|critical),IngestCanonicalAuditEventRequestSchema.libs/shared/audit-platform/src/hash-chain.ts+index.ts— shared/audit-platform.AuditChainEntry,AuditChainVerificationResult,HashChainedAuditEventStore,hashEvent(),chainHashStep(),InMemoryCanonicalAuditEventStore,AuditEventIngestService.libs/sophia/database/prisma/schema.prisma:1331— sophia.model AuditLog(action/entityType/entityId/previousState/newState/ userId/ipAddress).libs/yemaya/database/prisma/schema.prisma:1118— yemaya. A separatemodel AuditLog.libs/oshun/persistence/prisma/schema.prisma— oshun.AdminAuditEvent(247),OshunV1TombstoneAuditEvent(48),RailRingOptInAuditEvent(119);libs/oshun/memory-iris/src/ memory-audit.ts,consent-ledger.ts.libs/isis/database/src/generated/client/models/CanonicalAuditEvent.ts— isis (generated Prisma materialization of the canonical event).libs/bellona/remote-protocol/src/replay-export.ts—RemoteAuditChainExport(a second hash-chain implementation, replay-tied).
Migration / schema directories#
- nisaba —
libs/nisaba/database/prisma/schema.prisma(+migrations/20260528000000_nisaba_initial/):Manuscript,CollationProject,VariantUnit,CriticalEdition,Annotation,AnnotationLayer,ConceptMapping,MotifAttestation,InfluenceEdge,CanonicalReference,Passage,PersonalLibraryItem,Bookmark. - sophia —
libs/sophia/database/prisma/schema.prisma(+migrations/20260412175956_initial_schema/):Document,DocumentChunk,Citation,Entity,Relation,KnowledgePack,Source,Concept,Notebook,EvidencePack,GroundedAnswer,CanonicalCitation,CitationTrail,GroundedReport,IngestionJob,AuditLog. - yemaya —
libs/yemaya/database/prisma/schema.prisma(+migrations):User,Organization,Project,Asset,AssetTag,Collection,Comment,Subscription,Invoice,Plugin,AuditLog; plus drizzlelibs/yemaya/assets/drizzle/. - oshun —
libs/oshun/persistence/prisma/schema.prisma(~30 dated migrations): canonical projectionsNisabaAnnotation,NisabaNotebook,NisabaStudyPlan,NisabaConceptGraphNode,VeritasClaim,VeritasEvidencePack,MetisLessonAssetBundle,MetisAssessmentEvidencePack,CrossCuttingConsentRecord,CrossCuttingEvidencePack,AdminAuditEvent,OshunV1TombstoneAuditEvent,RailRingOptInAuditEvent,OriPresenceConsentEvent. - metis — no own Prisma schema;
libs/metis/database-types/src/schema/ schema.ts(drizzle-style), persistence materialized in oshun.
Incompatible identities and duplicated semantics#
These are the conflicts the Section 2 shared contracts must resolve; each carries the resolution obligation noted.
- Annotation — five competing models, three ID conventions. aja
types.ts:653(AnnotationTypewithpoint/polyline/text/correction) vs ajaannotation.ts:34(AnnotationTypewithnote/action/quality/keypoint;AnnotationStatusat :49) — two divergent systems inside one app. nisaba W3C selector model (core/src/types/annotations.ts) vs nisaba prismaAnnotation(cuid) vs oshunNisabaAnnotation(tenant-scoped opaque id,@@unique([tenantId,contractSchema,sourceRecordId])). ID schemes: aja brandedann_…, nisabacuid(), oshun opaque.AnnotationLayerdefined twice with unrelated fields (ajaannotation.ts:641, nisaba prisma). → YSD-2028/2029 must define the shared shape; adapters map, no direct adoption. - Notebook — same name, unrelated entities. sophia
model Notebook:935 vs oshunNisabaNotebook:2111; no shared key. → YSD-2044 must pick Nisaba canonical identity and make sophia's a distinct concept or an adapter target. - EvidencePack — four tables, three domains. sophia
EvidencePack:971 (source of truth) vs oshunVeritasEvidencePack:1196,MetisAssessmentEvidencePack:2514,CrossCuttingEvidencePack:2885; no shared schema import binds them. → Sophia adapter (YSD-0153) must be the single evidence authority for the workspace. - EntityType/RelationType — three encodings inside sophia. zod
(
schemas/src/entity.ts:24,relation.ts:25) vs TS const (knowledge-graph/src/types.ts:43,67) vs prisma enums (schema.prisma:109,137); drift-prone. → workspace consumes exactly one through the Sophia adapter. - Citation — five surfaces, duplicate
CitationIdbrands. sophiaschemas/ids.tsbrand vsapps/sophia/search-api/src/types.tsbrand of the same name; plus prismaCitation/CanonicalCitation/CitationTrail,citation-graph, and nisaba CTS citations. → YSD-2001 branded-ID registry must dedupe. - SearchQuery — same identifier, disjoint shapes. aja
types.ts:860(visual/motion modes) vs sophiasearch-api/types.ts:59(document retrieval) vssemantic-searchvocabulary. → Section 13 query contract must be new and adapter-mapped. - Rights — four incompatible vocabularies, none sufficient. live-media HMAC
playback grants (closest primitive: per-action entitlement decision + error
codes) vs yemaya 4-value literal vs sophia
RightsStatusvs audit-platform consent/likeness schemas + oshun consent records. → Section 4.1 RightsGrant/resolver is new; live-media grant flow is the pattern to generalize; all four existing vocabularies become adapter inputs, not the model. - Audit — canonical contract bypassed by domain tables; two hash chains.
CanonicalPlatformAuditEventSchemaexists (contracts) with an ingest service (audit-platform), but sophiaAuditLog:1331, yemayaAuditLog:1118, and oshun's three audit models have divergent shapes; hash-chain implemented in bothshared/audit-platform/src/hash-chain.tsandbellona/remote-protocol/src/replay-export.ts. → YSD-3060 ledger must ingest the canonical contract; workspace must not add a fourth local audit table shape. - Mastery — two
MasteryLevelenums plus a band vocabulary; FSRS and SM-2 card states coexist.tutoring/analytics.ts:19vsadaptive/profiling/types.ts:30;MasteryBandthird;FSRSCardvsReviewCard/SM2QualityRating. → YSD-2047/2048 must name which Metis vocabulary is contract-visible (and record scheduler version). - Replay — two "version 1" containers. aphrodite binary
OSHRPLYvs bellona zodRemoteReplayBundleSchema('1'), each with its own share manifest. → YSD-0158/YSD-2077 study contract must reference, not merge, both; session identity lives in the new contract. - Media/Asset — three unrelated metadata models, inconsistent ID typing.
aja
Video/VideoRenditionvs live-mediaMediaPublicationRecord(HLS/DASH keys) vs yemayaAsset(metadata Json);WorkspaceId/UserIdbranded in aja but plain cuid in yemaya. → YSD-2023/2025 SourceEdition/SourceAsset must be the shared identity; existing models map through adapters. - Concept graph — three node models, three relation vocabularies. sophia
ConceptNode/RelationTypevs nisabaConceptMapping/InfluenceEdgevs yemayaCanonNode/CanonRelation. → Section 2.6 typed-relationship contracts define workspace semantics; domain graphs remain authoritative for their own domains (YSD-0014). - Provenance/C2PA — split across three shared libs plus oshun.
content-signing(ed25519) vscontent-security/provenance.ts(C2PA types) vsaudit-platformprovenance attachments vsoshun/c2pa-export; partial re-declaration instead of one owner. → YSD-4120–4127 must pick the C2PA type owner and import it everywhere.