TenantAtlas/specs/197-shared-detail-contract/migration-note.md

4.4 KiB

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.