# Closing Migration Note: Shared Detail Micro-UI Contract

This file is the release-acceptance artifact for Spec 197. Update it as implementation closes so FR-197-015 and D-197-004 are satisfied without overloading `quickstart.md`.

## Migrated Hosts

### Verification Report family

- `OperationRunResource` verification detail surface via `VerificationReportViewer::surface(...)` and shared summary, issues, passed, diagnostics, and unavailable zones
- `ManagedTenantOnboardingWizard` verification step surface via the same shared verification-family core with onboarding-only assist, acknowledge, and technical-detail variations layered around it
- `TenantVerificationReport` widget surface via the same completed-state verification-family core while preserving widget-owned no-run and in-progress framing

### Normalized Settings family

- `PolicyResource` normalized settings surface via `NormalizedSettingsSurface::build(...)`
- `PolicyVersionResource` normalized settings surface via `NormalizedSettingsSurface::build(...)`
- `policy-settings-standard.blade.php` retained only as an include-only compatibility shim into the normalized-settings family wrapper
- `SettingsCatalogSettingsTable` retained as the settings-catalog subtype renderer inside the normalized-settings family

### Normalized Diff family

- `PolicyVersionResource` normalized diff surface via `NormalizedDiffSurface::build(...)` and the shared summary, grouped-rendering, and empty-state wrapper
- `FindingResource` normalized diff surface via `NormalizedDiffSurface::build(...)` for available, unavailable, and zero-diff states

## Intentionally Allowed Remaining Variations

- Onboarding-specific assist, acknowledge, and technical-details actions remain host-scoped variations.
- No-run and in-progress framing remain host-owned where the host genuinely owns that lifecycle state.
- `SettingsCatalogSettingsTable` remains the settings-catalog subtype renderer inside the normalized-settings family.
- Drift-specific surrounding context remains host-owned in `FindingResource` as long as the normalized diff family core stays shared.
- The compatibility view `policy-settings-standard.blade.php` remains as a thin include-only shim so existing callers/tests do not become a new fork point.

## Manual Smoke Evidence

- Reviewer: GitHub Copilot via the local integrated browser using the local smoke-login flow
- Review date: 2026-04-15
- SC-197-003 result: Pass. Operation detail `Operation #6655`, the onboarding verify-step host, and the tenant verification widget all exposed the same verification-family core with recognizable summary, issues, passed, diagnostics, and read-only zones. Onboarding kept its bounded host-owned assist and technical-detail behavior, while the tenant widget kept its widget-specific framing on the tenant management detail page.
- SC-197-004 result: Pass. Policy detail `Policy #233`, policy-version detail `Policy Version #270`, drift finding `#79`, and a temporary local-only unavailable drift finding clone all rendered family-consistent normalized settings or diff behavior. The available diff surface matched the policy-version grouped diff contract, and the unavailable diff surface rendered the same family-owned unavailable-state treatment instead of a host-local message.
- Notes: Local browser smoke used `/admin/local/smoke-login` against Phoenicon in workspace `wp`. The tenant verification widget evidence came from the tenant management detail page rather than the tenant dashboard, which is the current widget host. The local dev dataset did not include a resumable verify-step onboarding draft or a natural missing-version drift finding for this tenant family, so temporary local-only fixture records were created, exercised, and deleted after verification. `./vendor/bin/sail bin pint --dirty --format agent` and the focused Sail regression pack had already passed in this feature session.

## Out-of-Scope Follow-Ups

- Local dev seed data still lacks a reusable resumable verify-step onboarding draft and a natural missing-version drift finding for this tenant family; future smoke work will need either richer seed data or the same kind of ephemeral local fixtures.
- Shell-level refactors discovered during implementation remain intentionally out of scope.
- Monitoring page-state topics discovered during implementation remain intentionally out of scope.
- Any future shared-detail framework discussion beyond the two proven families remains intentionally out of scope.