Files
KArtSell.Aegis/evidence/AEG-X-009/versionset-resolver-boundary.md
T
kjh2064 3e6f609dda feat(governance): add source-approval + dataset-freeze contract schema (AEG-X-009, gated)
Source governance schema: append-only source_approval table enforcing approval
before ingestion. Dataset manifest hardened to support FROZEN state, requiring
approval timestamps. Boundaries tested (6/6 passing). Server-side resolver
(DapperApprovedModelContextReader) now guards both model and dataset approval.

P2–P6 deferred: Dataset freeze command, maker-checker review, evaluation/proposal
orchestration remain pending human decision package (source allow-list, license/SLA,
metric versions, roles). No source/model seeded per CLAUDE.md governance.

Migrations 0033–0034 idempotency verified fresh/upgrade/re-run on isolated test DB.

AGENTS.md: Maturity (contract-first); Necessity (governance prerequisite).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-07 13:32:25 +09:00

797 B

AEG-X-009 Server-side VersionSet Resolver

Traceability

  • WBS: AEG-X-009
  • Contract: src/KArtSell.BuildingBlocks/Versioning/VersionSet.cs
  • Implementation: src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.cs
  • Test evidence: evidence/AEG-X-009/versionset-resolver-boundary.trx

Change

The resolver now selects dataset manifests in APPROVED or FROZEN state only, requires dataset approval fields, and requires model registry approval fields. It continues to load all authoritative VersionSet values from the server-side database; client evidence/version values are not accepted.

Verification

Model Operations boundary tests: 6/6 passed

No dataset/model rows were seeded and no operation request or Shadow Run was created.