## Summary - replace the remaining workspace overview tenant-first copy with environment-first wording in the builder, Blade view, and focused feature assertions - add the Spec 299 workspace overview browser smoke and the final cutover audit documenting fixed copy, clean runtime scans, and allowed internal/provider/regression-guard `Tenant` references - add the Spec 299 spec package (`spec.md`, `plan.md`, `tasks.md`, checklist, audit) to close the managed-environment cutover with an explicit final seal decision ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewContentTest.php tests/Feature/Filament/AdminHomeRedirectsToChooseTenantWhenWorkspaceSelectedTest.php tests/Feature/Filament/WorkspaceOverviewEmptyStatesTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Guards/NoLegacyTenantPanelRuntimeTest.php tests/Feature/Guards/NoActiveTenantResourceRoutesTest.php tests/Feature/Guards/ManagedEnvironmentCanonicalRouteContractTest.php tests/Feature/Filament/PanelNavigationSegregationTest.php tests/Feature/Workspaces/WorkspaceIntendedUrlLegacyRejectionTest.php tests/Feature/ProviderConnections/LegacyRedirectTest.php tests/Feature/ManagedEnvironment/LegacyTenantCoreGuardTest.php tests/Feature/Spec080WorkspaceManagedTenantAdminMigrationTest.php tests/Feature/Filament/ManagedEnvironmentAccessScopeManagementTest.php tests/Feature/Rbac/ProviderConnectionWorkspaceFirstPolicyTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Guards` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Workspaces` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/ProviderConnections` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/RequiredPermissions` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec299WorkspaceOverviewCutoverSealSmokeTest.php` - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - `git diff --check` ## Notes - Filament remains on Livewire v4. - Provider registration remains in `apps/platform/bootstrap/providers.php`. - No new panel provider or asset-strategy changes are included. - Remaining technical `Tenant` references are documented in `specs/299-managed-environment-cutover-final-seal/final-cutover-audit.md`. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #354
69 lines
4.8 KiB
Markdown
69 lines
4.8 KiB
Markdown
# Requirements Checklist: Managed Environment Cutover Final Seal & Regression Guard Pack
|
|
|
|
**Purpose**: Validate that Spec 299 is bounded, implementation-ready, and constitution-aligned as the final managed-environment cutover seal.
|
|
**Created**: 2026-05-13
|
|
**Feature**: [spec.md](/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/299-managed-environment-cutover-final-seal/spec.md)
|
|
|
|
## Applicability And Final-Seal Gate
|
|
|
|
- [x] CHK001 The change explicitly affects operator-facing navigation/copy plus route/helper/test/audit guardrails.
|
|
- [x] CHK002 The spec, plan, and tasks carry the same closure-only scope and do not reopen a new feature lane.
|
|
- [x] CHK003 The dependency/start-condition boundary is explicit: Spec 298 must be committed/merged or cleanly isolated before 299 runtime work begins.
|
|
|
|
## Native, Shared-Family, And State Ownership
|
|
|
|
- [x] CHK004 The scope keeps existing Laravel/Filament/Blade surfaces and does not introduce a new custom UI system.
|
|
- [x] CHK005 Route ownership, intended URL handling, navigation registration, workspace overview copy, and audit/allowlist tracking are named as separate state layers.
|
|
- [x] CHK006 Existing action hierarchy and inspect/open models remain unchanged unless a touched route or label needs a cutover fix.
|
|
|
|
## Shared Pattern Reuse
|
|
|
|
- [x] CHK007 The cross-cutting interaction classes are explicit: canonical links, intended URLs, navigation registration, workspace summary copy, guard tests, and browser anchors.
|
|
- [x] CHK008 The existing shared paths are named: `ManagedEnvironmentLinks`, `WorkspaceIntendedUrl`, `WorkspaceRedirectResolver`, `OperationRunLinks`, `setAdminEnvironmentContext()`, and current route-scope navigation owners.
|
|
- [x] CHK009 No parallel navigation, terminology, or cutover framework is introduced.
|
|
|
|
## OperationRun Start UX Contract
|
|
|
|
- [x] CHK010 The spec states that no new `OperationRun` start/completion behavior is introduced.
|
|
- [x] CHK011 Existing workspace operations link ownership remains shared and canonical if touched.
|
|
- [x] CHK012 No queued DB notification or terminal notification policy changes are planned.
|
|
|
|
## Provider Boundary And Vocabulary
|
|
|
|
- [x] CHK013 Provider-owned terms such as Microsoft tenant ID, Entra tenant ID, and target tenant scope are allowed only when the external provider is the subject.
|
|
- [x] CHK014 Generic platform/operator vocabulary is required to stay workspace/environment-first.
|
|
|
|
## Signals, Exceptions, And Test Depth
|
|
|
|
- [x] CHK015 Repository signals are classified as review-mandatory: final scans, navigation proof, helper retirement, browser selector changes, and allowlist decisions.
|
|
- [x] CHK016 Every remaining `Tenant` reference must be documented in `final-cutover-audit.md` with an explicit category.
|
|
- [x] CHK017 Required surface test profiles are explicit: `standard-native-filament`, `global-context-shell`, and targeted `browser-smoke` only when touched.
|
|
- [x] CHK018 The chosen test lanes are focused and do not require a raw full-suite repair loop.
|
|
|
|
## Audience-Aware Disclosure And Decision Hierarchy
|
|
|
|
- [x] CHK019 Workspace routes keep default-visible content workspace-first while environment drill-down stays explicit and secondary.
|
|
- [x] CHK020 Canonical environment routes remain the place where environment-owned navigation and diagnostics appear.
|
|
- [x] CHK021 The spec adds no new primary actions; it only seals current scope truth and touched copy.
|
|
- [x] CHK022 Duplicate or contradictory workspace/environment/tenant wording is treated as drift to fix or document.
|
|
|
|
## Filament v5 Contract
|
|
|
|
- [x] CHK023 Filament v5 / Livewire v4.0+ compliance is explicit.
|
|
- [x] CHK024 Laravel 12 panel provider registration remains in `apps/platform/bootstrap/providers.php`.
|
|
- [x] CHK025 Globally searchable resource handling is called out for any remaining technical `TenantResource` use.
|
|
- [x] CHK026 Destructive actions that are touched must retain `->action(...)`, `->requiresConfirmation()`, and authorization.
|
|
- [x] CHK027 Asset strategy is unchanged unless implementation unexpectedly registers assets, in which case `filament:assets` is required in deployment notes.
|
|
- [x] CHK028 The testing plan names affected guard tests, navigation tests, workspaces tests, provider/required-permissions lanes, Filament lane, and browser anchors.
|
|
|
|
## Review Outcome
|
|
|
|
- [x] CHK029 Review outcome class: `documentation-required-exception`.
|
|
- [x] CHK030 Workflow outcome: `keep`.
|
|
- [x] CHK031 Final note location: active feature PR close-out entry `Guardrail / Final Cutover Seal / Smoke Coverage`.
|
|
|
|
## Notes
|
|
|
|
- This is the final cutover seal package, not a new runtime feature spec.
|
|
- Remaining provider/internal/historical/guard-only `Tenant` references are allowed only when categorized in `final-cutover-audit.md`.
|
|
- The only explicit exception is the start-condition dependency on Spec 298 landing or clean isolation. |