Disciplines · Proposals

Proposal §29 Repository Evidence — Link Validation and Symbol-Level Record (YSD-0102)

All 30 links resolve — 5 ADRs (§29.1), 10 domain docs (§29.2), 15 implementation primitives (§29.3).

3sections5 minread

On this page

Validated 2026-07-18 at commit 0808b8cb5b (working tree). Every link in proposal Section 29 was resolved from docs/proposals/ and every §29.3 primitive was opened and its exact export surface recorded, replacing directory-level claims with named symbols.

All 30 links resolve — 5 ADRs (§29.1), 10 domain docs (§29.2), 15 implementation primitives (§29.3). No stale paths; no replacements required. Re-run the check with the command recorded in the evidence log (YSD-0102 entry).

§29.3 exact reusable symbols, services, and contracts#

Aja reference-video (apps/aja/svc-reference-video/src/)#

  • types.ts — 87 exports. Branded IDs + generators: VideoId, SegmentId, AnnotationId, ClipId, CategoryId, TagId, WorkspaceId, UserId, CommentId, ReviewId, AssignmentId, VersionId, EmbeddingId with generate*Id() factories. Media identity: VideoCodec, AudioCodec, ContainerFormat, ColorSpace, PixelFormat, VideoStreamMetadata, AudioStreamMetadata, VideoMetadata, VideoRendition, ThumbnailSprite, Video, VideoSourceType, VideoStatus. Analysis: DetectedScene, SceneDetectionAlgorithm, SceneTransitionType, SceneDetectionConfig, SceneDetectionResult, DetectedPerson, ActivityClassification, SkeletonJoint, SkeletonPose, BoundingBox, PolygonPoint. Study objects: Segment, SegmentType, Annotation, AnnotationType, Clip, Category, Tag, VideoEmbedding, EmbeddingType, SearchQuery, SearchResult. Collaboration: Workspace, WorkspaceRole, WorkspaceMember, Comment, Review, ReviewStatus, Assignment, Version. Upload: UploadRequest, BatchUploadRequest, UploadProgress. Errors: ReferenceVideoErrorCode, ReferenceVideoError. Reuse posture: the type vocabulary is a strong starting shape for YSD-2020–2052 contracts, but IDs are service-local (no tenant scoping), rights are absent, and review states do not match the YSD-2005 vocabulary — treat as input, not as the shared contract.
  • scene-detection.tsSceneDetectionService, MotionSegmentationService, HSVColor, FrameStats, FrameDifference, configs (DEFAULT_SCENE_CONFIG, CONTENT_AWARE_CONFIG, ADAPTIVE_CONFIG, THRESHOLD_CONFIG), factories createSceneDetectionService, createMotionSegmentationService, detectScenes. Caveat: frame statistics and scene changes are simulated (generateSimulatedFrameStats/generateSimulatedSceneChanges, lines 271–334); the algorithmic scaffolding (HSV histogram diffing, threshold configs) is real but has no real frame source. Per YSD-1007 wrap behind the Aja adapter as unsupported/unavailable until real decoding exists.
  • metadata-extraction.tsMetadataExtractor, ThumbnailGenerator, MetadataExtractionConfig, ThumbnailConfig, defaults, factories, extractVideoMetadata. Caveat: FFprobe execution is simulated from the filename (getSimulatedFFprobeOutput, lines 259–282/508–511; marked stub:legitimate V2-deferred per V1-P2-0331). Same adapter posture as above.

Yemaya creative agents (libs/yemaya/agents/src/creative/)#

  • performance-reference-library.tsPerformanceReferenceLibrary (class), createPerformanceReferenceLibrary, PerformanceReferenceClip, BenchmarkPerformance, StyleExemplar, PerformanceDimension (facial / vocal / timing / chemistry / intention / subtext dimensions), PerformanceDimensionScores, PerformanceReferenceSearch, PerformanceCalibrationProfile, PerformanceComparisonInput/Result. Caveats: storage is in-memory Maps (lines 183–185); rights are a four-value enum (line 36). The dimension vocabulary is the reusable part.
  • Study-relevant analyzers (each a .ts module with a primary class): facial-expression-analyzer, vocal-performance-analyzer, timing-rhythm-analyzer, chemistry-analyzer, body-language-evaluator, scene-intention-analyzer, subtext-analysis-communication-engine, emotional-arc-tracker, emotional-mapping-engine, take-comparison-matrix, comparative-take-analyzer, take-ranking-system, best-segment-extractor, performance-highlight-extractor, segment-boundary-detector, continuity-violation-detector, timing-rhythm-analyzer. Caveat: these analyzers largely consume pre-extracted features; none owns reliable media extraction (proposal §5.2).
  • Prohibited-inference risk (flag for YSD-4052/YSD-9 lens work): eye-contact-gaze-monitor, fatigue-stress-detector, engagement-authenticity-scorer, actor-response-detection-system infer real internal states (gaze, fatigue/stress, authenticity). Reusing them as-is in the study workspace would violate the proposal's prohibition on real-state emotion inference and biometric-truth claims; they require behavior-observation reframing or exclusion, decided per-lens during Section 9 work — do not import them via a blanket adapter.
  • The directory also contains ~60 production-direction modules (ai-director-*, drone display, scheduling, reshoot workflow, writers' agents) that are out of study-workspace scope.

Sophia transcript ingestion (libs/sophia/ingestion/src/adapters/video-transcript.ts)#

  • VideoTranscriptAdapter implements SourceAdapter, VideoTranscriber (interface seam for real ASR), VideoTranscriptEnvelope, VideoSegment, VideoAdapterOptions, VIDEO_ADAPTER_VERSION = '1.0.0'. Reuse posture: the proposal's cited timestamp-anchored evidence pattern; the SourceAdapter contract it implements is the integration point for YSD-2029 anchors.

Metis learning (libs/metis/adaptive/src/)#

  • profiling/knowledge-tracker.tsKnowledgeTracker (Bayesian mastery over a prerequisite graph), KnowledgeObservation, PrerequisiteEdge, KnowledgeTrackerConfig, factories createKnowledgeTracker, createKnowledgeTrackerWithDecay, createStrictKnowledgeTracker. Maps to YSD-2047 MasteryRecord and YSD-14xxx mastery flows.
  • path/fsrs.tsFSRS (FSRS-5 scheduler), FSRSCard, FSRSConfig, FSRSRating, FSRSState, FSRS5_DEFAULT_WEIGHTS, DECAY, FACTOR, factories createFSRS, createHighRetentionFSRS, createRelaxedFSRS. Direct fit for YSD-2048 SpacedReviewItem scheduling (scheduler version = FSRS-5 weights vector).

Shared content signing (libs/shared/content-signing/src/)#

  • index.tsED25519_ALGORITHM, sha256Hex, generateEd25519SigningKeyPair, ed25519Sign, ed25519Verify, ed25519SignBase64, ed25519VerifyBase64, ClaimSigner, ClaimVerifier (interfaces), Ed25519ClaimSigner, Ed25519ClaimVerifier; browser.ts provides the browser-side verifier. Fit for YSD-4125/4126 signed study packs and YSD-5008 signed session manifests.

Nisaba standards (libs/nisaba/standards/src/reference-linked-data.ts)#

  • CTS/citation machinery: CTSUrn, CTSTextGroup, CTSWork, CTSEdition, CTSTranslation, CTSPassage, CTS_NAMESPACE_REGISTRY, parseCTSUrn, formatCTSUrn, validateCTSUrn, buildGetPassageRequest, buildGetValidReffRequest, buildGetCapabilitiesRequest, parseCTSResponse; bibliography contracts BibTeXEntry(+Type/Database), RISRecord, CSLName/CSLDate/CSLItemType. Caveat (YSD-0113): the edition model here is philology-shaped (critical editions of texts, CTS URNs); it proves Nisaba's durable-citation competence but is not a media cut/build model. The bibliography/citation exports are directly reusable for YSD-15xxx citation formats.

Aphrodite game replay (libs/aphrodite/game-runtime/src/replay/)#

  • input-recorder.tsInputRecorder, createInputRecorder{,30fps,120fps}.
  • replay-player.tsReplayPlayer, createReplayPlayer/createSlowMotionPlayer/createFastForwardPlayer.
  • state-snapshotter.tsStateSnapshotter, computeDiff, applyDiff, createStateSnapshotter/createFrequentSnapshotter/createSparseSnapshotter.
  • replay-system.tsReplayFile, ReplayFileHeader, ReplayFileMagic = 'OSHRPLY', ReplayFileVersion = 1, CompressedInputFrame, ReplayCameraMode, ReplayFindingSeverity.
  • replay-exporter.tsReplayExporter. Reuse posture: deterministic input-replay + snapshot/diff primitives for YSD-2077 replay identity and Section 12 Tier B/C study; product-specific (aphrodite), so consumed via the Bellona/product-runtime adapter boundary (YSD-0158), not imported directly.

V2 player-behavior heatmaps (apps/v2/player-behavior-heatmaps/src/)#

  • buildV2PlayerBehaviorHeatmapsSurface, V2PlayerBehaviorHeatmapsSurface, V2PlayerBehaviorHeatmapMap/Cell/Voxel, V2PlayerBehaviorPositionSample, V2PlayerBehaviorHeatmapEventKind = 'movement' | 'death' | 'linger', binding/policy IDs (v2.telemetry.player-behavior-heatmaps, v2-player-behavior-heatmaps-v1). Telemetry-aggregation shape for Section 12 instrumented study; per-title, so again adapter-mediated.

Fixture-backed Studio/product surfaces (interaction concepts only)#

  • apps/oshun/web/src/components/studio/StudioHathorDirectorPerformanceReplaySystemPanel.tsx — fixture-driven replay/readiness panel; reusable as interaction reference for Section 8, not as a primitive.
  • apps/yemaya/studio-web/src/pages/AnimationLearningPage.tsx — hard-coded learning material.
  • apps/yemaya/studio-web/src/pages/DailiesReviewPage.tsx — fixture-backed review interaction.

Notes feeding later items#

  • The YSD-4052 conflict list above (gaze/fatigue/authenticity analyzers) must be carried into the Section 4.4 safeguards and the Section 9 lens decisions.
  • The reuse-versus-wrap-versus-replace decision per primitive is YSD-0103's ledger, which builds on this record.