## Summary - retire remaining legacy tenant-panel runtime assumptions in the Filament admin runtime and route resolution paths - centralize canonical admin environment context handling for shared surfaces instead of relying on deprecated `tenant` panel behavior - harden guard coverage so legacy `/admin/t` and `/admin/tenants` route families cannot regress - update scoped navigation, drillthrough, reference-link, and global-search tests to use the admin panel environment runtime - add the Spec 304 package under `specs/304-tenant-panel-dead-code-retirement/` and document the rollout in the product ledger ## Test Coverage Updated - `AdminSharedSurfacePanelParityTest` - `NoActiveTenantResourceRoutesTest` - `NoLegacyTenantPanelRuntimeTest` - `AdminTenantResolverGuardTest` - `PolicyVersionResolvedReferenceLinksTest` - `EntraGroupGlobalSearchScopeTest` - `OperationsDashboardDrillthroughTest` ## Runtime Notes - remains compliant with Filament v5 on Livewire v4 - no provider registration changes; provider registration location remains `apps/platform/bootstrap/providers.php` - no new globally searchable resource was introduced; existing scoped search assertions were updated only - no destructive actions were added or changed - no asset registration changes; deploy posture for `cd apps/platform && php artisan filament:assets` is unchanged ## Validation - updated tests and docs/spec artifacts were committed in this branch - tests were not re-run in this turn Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #359
2.7 KiB
2.7 KiB
Specification Quality Checklist: Tenant Panel Dead-Code Retirement
Purpose: Validate specification completeness and readiness before implementation planning handoff Created: 2026-05-15 Feature: spec.md
Content Quality
- No unresolved placeholders remain.
- Focused on operator trust, route safety, workspace-first runtime clarity, and maintenance risk.
- Written as a cleanup and guardrail spec rather than a new product feature.
- All mandatory repository-specific sections are completed.
Requirement Completeness
- No
[NEEDS CLARIFICATION]markers remain. - Requirements are testable and unambiguous.
- Acceptance criteria are measurable through provider, route, navigation, search, link, and RBAC tests.
- Scope is clearly bounded.
- Dependencies and assumptions are identified.
- Historical documentation allowance is explicit.
- Compatibility aliases, redirects, and shims are explicitly forbidden.
Constitution And Guardrail Fit
- SPEC-GATE-001 candidate check is completed.
- Proportionality review is completed and confirms no new structure or persisted truth.
- TEST-GOV-001 lane and fixture impact is documented.
- Provider boundary and platform-core vocabulary risks are documented.
- Filament v5 and Livewire v4.0+ posture is documented.
- Provider registration location is documented as
apps/platform/bootstrap/providers.php. - Destructive action posture is documented as none added.
- Asset strategy is documented as unchanged.
Feature Readiness
- User scenarios cover provider retirement, route retirement, workspace/environment navigation preservation, and link/search safety.
- Functional requirements map to concrete implementation and validation tasks.
- Plan identifies likely affected repo surfaces and current repo truth.
- Tasks are ordered, verifiable, and avoid application implementation during preparation.
- Follow-up candidates are listed without being hidden inside scope.
Review Outcome
Review Outcome: acceptable-special-case
Workflow Outcome: keep
The spec is a bounded cleanup package. It should proceed to implementation only through the separate implementation loop and must not expand into ManagedEnvironment schema cutover, compatibility routing, or broad terminology cleanup.
Notes
- Preparation found the Tenant Panel provider and legacy route families already absent from active bootstrap and route collection. Implementation should therefore focus on verification, stale-test cleanup, link/search guardrails, and precise navigation contracts.
- Specs 301-303 are completed or reviewed context and must not be rewritten.