# Phase 1 VersionSet Automation Slice ## WBS / Scope - WBS: `PHASE-1-SHADOW-RUN` - Slice: server-side model identity to approved VersionSet resolution - Requirement: `REQ-EXEC-001` - Scope: resolve VersionSet by approved `model_id`, `scope_key`, and PIT cutoff before JobRun/enqueue. - Out of scope: automatic model promotion, threshold mutation, order/KIS submission, and production seed data. ## Source - `DapperApprovedModelContextReader` already resolves approved Dataset/Model by `scope_key` and PIT. - `InitiateShadowRunHandler` currently generates RunId/IdempotencyKey but does not resolve VersionSet or create JobRun. - `governance.model_version_registry` has no model identity column, so the endpoint cannot safely bind `modelId` to an approved model version. - `AGENTS.md` requires server-side PIT evidence and forbids trusting client-supplied evidence. ## Assumption - `model_id` is the stable server-side identity for the requested Shadow model. - Existing registry rows, if any, remain valid with nullable `model_id` until explicitly backfilled and approved. ## Unknown - Production model registry contains no approved rows today; this Slice does not invent or seed them. - JobRun persistence is already available but is not yet wired into the ShadowRun handler. ## Decision Required - DBA/Model Owner must approve model registry backfill before any production Shadow enqueue. ## Acceptance Evidence - Migration adds the model identity mapping without modifying prior migrations. - Reader requires `model_id`, `scope_key`, and PIT cutoff and returns only approved server-side context. - No context returns no enqueue path. - Existing automatic order/KIS capabilities remain OFF.