Automated PR created by Codex via Gitea API. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #467
11 KiB
Tasks: Spec 396 - System Panel Branding and Productization Smoke Config v1
Input: Design documents from /specs/396-system-panel-branding/
Prerequisites: spec.md, plan.md
Branch: 396-system-panel-branding
Runtime constraint: No migrations, models, Graph calls, jobs, queues, schedulers, new dashboards, or production smoke-login bypass.
Task Format
[P]means the task can run in parallel with other[P]tasks in the same phase.- Every runtime behavior task must have focused Pest or Pest Browser proof.
- Do not rewrite completed Specs 376, 377, 391, or 395.
Phase 1: Inventory And Gate Setup
Purpose: Lock the exact /system scope before implementation.
- T001 Create
specs/396-system-panel-branding/implementation-report.mdwith sections for tests, browser proof, Livewire v4, provider registration, global search, destructive/high-impact actions, asset strategy, deployment impact, Product Surface result, no completed-spec rewrite assertion, and follow-up candidates. - T002 Record in
specs/396-system-panel-branding/implementation-report.mdthatdocs/product/standards/product-surface-contract.md,docs/ui/tenantpilot-enterprise-ui-standards.md,docs/filament-guidelines.md, anddocs/testing-guidelines.mdwere reviewed before runtime UI edits. - T003 [P] Inventory current visible branding and title copy in
apps/platform/app/Providers/Filament/SystemPanelProvider.php,apps/platform/app/Filament/System/Pages/Auth/Login.php,apps/platform/app/Filament/System/Pages/Dashboard.php, andapps/platform/lang/en/localization.php. - T004 [P] Inventory current German system-panel copy in
apps/platform/lang/de/localization.phpand record any terms that need canonical alignment. - T005 [P] Inventory current
/systemnavigation labels and page titles inapps/platform/app/Filament/System/Pages/Directory/*.php,apps/platform/app/Filament/System/Pages/RepairWorkspaceOwners.php,apps/platform/app/Filament/System/Pages/Security/AccessLogs.php, andapps/platform/app/Filament/System/Pages/Ops/*.php. - T006 [P] Inventory current system health/status vocabulary in
apps/platform/app/Filament/System/Widgets/ControlTowerHealthIndicator.php,apps/platform/app/Filament/System/Widgets/CustomerHealthKpis.php, andapps/platform/app/Support/Badges/Domains/SystemHealthBadge.php. - T007 [P] Inventory current smoke/debug suppression in
apps/platform/routes/web.php,apps/platform/app/Http/Middleware/SuppressDebugbarForSmokeRequests.php, andapps/platform/tests/Browser/Spec376BrowserAuditFixtureCoverageSmokeTest.php. - T008 Confirm the implementation will reuse existing platform guard/capability paths and record any proposed local/testing-only smoke helper decision in
implementation-report.md.
Phase 2: Tests First
Purpose: Establish failing or protective tests before behavior changes.
- T009 Update or add Pest feature coverage for canonical system health labels in
apps/platform/tests/Feature/Badges/SystemHealthBadgeSemanticsTest.php, covering existingok,warn,critical, andunknownsystem-health values. - T010 Add
apps/platform/tests/Feature/System/Spec396SystemPanelProductizationTest.phpto cover system panel access, productized title/label expectations, and absence of primary scaffold/default branding where server-rendered assertions are reliable. - T011 If a local/testing-only system smoke helper is added, cover environment gating, platform guard usage, tenant-session denial, and production-like unavailability in
apps/platform/tests/Feature/System/Spec396SystemPanelProductizationTest.php. N/A - no helper was added. - T012 Add or update action-posture tests for any touched break-glass or operational-control action so high-impact actions still require confirmation, server-side authorization, and audit logging. N/A - no high-impact actions were touched.
- T013 Add
apps/platform/tests/Browser/Spec396SystemPanelProductizationSmokeTest.phpto visit/system,/system/ops/runs, and one security/repair/control page as a platform user with the required capabilities. - T014 In
Spec396SystemPanelProductizationSmokeTest, assert no debugbar, Vite overlay, exception page, Livewire/Filament runtime errors, or console errors on the focused smoke path. - T015 If shared panel/provider branding can affect
/admin, add a focused/adminregression test or browser assertion in the narrowest existing admin smoke test file. N/A - only the system panel provider was changed.
Phase 3: System Branding And Navigation
Purpose: Make the existing system panel visibly TenantPilot-owned without expanding IA.
- T016 Update
apps/platform/app/Providers/Filament/SystemPanelProvider.phponly as needed to set explicit TenantPilot system branding while preservingid('system'),path('system'),authGuard('platform'), middleware, and provider registration location. - T017 Update
apps/platform/lang/en/localization.phpso/systemdashboard/login/navigation copy reads as TenantPilot system/platform-operator copy rather than genericSystem dashboardor framework default copy. - T018 Update
apps/platform/lang/de/localization.phpwith equivalent productized German labels where existing German system-panel labels are affected. - T019 Update
apps/platform/app/Filament/System/Pages/Auth/Login.phponly as needed to align the login page title/heading with TenantPilot system branding, without changing authentication semantics. - T020 Update
apps/platform/app/Filament/System/Pages/Dashboard.php, affectedapps/platform/app/Filament/System/Pages/Ops/*.php,apps/platform/app/Filament/System/Pages/Directory/*.php,apps/platform/app/Filament/System/Pages/Security/AccessLogs.php, andapps/platform/app/Filament/System/Pages/RepairWorkspaceOwners.phppage titles/navigation labels to use the canonical system-panel vocabulary. - T021 Verify no new navigation groups, cards, metrics, tables, or routes were added for branding-only changes.
Phase 4: Canonical Status Vocabulary
Purpose: Replace inconsistent health labels with existing-state canonical labels.
- T022 Update
apps/platform/app/Support/Badges/Domains/SystemHealthBadge.phpso existingok,warn,critical, andunknownstates render canonical labels (Ready,Needs attention,Critical,Unknown) without introducing a new status family. - T023 Update
apps/platform/app/Filament/System/Widgets/ControlTowerHealthIndicator.phpto use canonical system health labels and supporting copy. - T024 Update
apps/platform/app/Filament/System/Widgets/CustomerHealthKpis.phpto use canonical system health labels while preserving existing counts and queries. - T025 Search
apps/platform/app/Filament/System,apps/platform/app/Support/Badges,apps/platform/lang, and affected tests for old primary labels (OK,Warn,Healthy,Warning,Degraded,All systems healthy) and either replace them in active UI or document intentional technical/test-only usage inimplementation-report.md.
Phase 5: Smoke And Debug-Safe Proof
Purpose: Make focused /system proof deterministic and safe.
- T026 Reuse the existing Pest Browser platform-guard approach from
apps/platform/tests/Browser/Spec376BrowserAuditFixtureCoverageSmokeTest.phpunless manual in-app sanity requires a local/testing-only helper. - T027 If a smoke helper is required, add it in
apps/platform/routes/web.phpwith local/testing environment gating, platform guard/capability requirements, no product navigation entry, and no production availability. N/A - no helper was required. - T028 If a smoke helper is required, extend
apps/platform/app/Http/Middleware/SuppressDebugbarForSmokeRequests.phponly enough to suppress debugbar for that safe smoke context. N/A - no helper was required. - T029 Keep smoke fixture setup cheap by default; do not add expensive seeds, provider calls, queued work, or external network calls.
- T030 Capture focused browser proof outputs and record the result in
specs/396-system-panel-branding/implementation-report.md. - T031 Review browser screenshots, failure snapshots, logs, and debug HTML for secrets, provider tokens, raw credentials, debug pages, and unrelated artifacts; clean them or intentionally retain only spec-local evidence with a note in
implementation-report.md.
Phase 6: Safety, Formatting, And Close-Out
Purpose: Verify the narrow slice and document the product-surface outcome.
- T032 Run
cd apps/platform && ./vendor/bin/sail artisan test --filter=SystemHealthBadgeSemanticsTest. - T033 Run
cd apps/platform && ./vendor/bin/sail artisan test --filter=SystemPanelAuthTest. - T034 Run
cd apps/platform && ./vendor/bin/sail artisan test --filter=Spec396. - T035 Run the focused Pest Browser Spec 396 smoke command according to the repo's browser-test setup.
- T036 Run
cd apps/platform && ./vendor/bin/sail pint --dirty. - T037 Complete
specs/396-system-panel-branding/implementation-report.mdwith Product Surface Impact, UI Surface Impact, browser proof, Human Product Sanity result, visible complexity outcome, Livewire v4 compliance, provider registration location, global search posture, destructive/high-impact action posture, asset strategy, deployment impact, execution/rendered UI/smoke/auth/debug truth categories, known unrelated browser-suite failures, and no completed-spec rewrite assertion. - T038 Confirm no application changes added migrations, models, Graph calls, jobs, queues, schedulers, new persisted entities, new system features, or broad UI redesign.
- T039 Confirm completed specs were not edited and list any follow-up candidates in
implementation-report.md. - T040 Update
docs/ui-ux-enterprise-audit/route-inventory.mdwith the Spec 396/systemsurface coverage decision or append the minimal existing-surface update required by the local registry format. - T041 Update
docs/ui-ux-enterprise-audit/design-coverage-matrix.mdwith the Spec 396 System Admin / Technical Annex coverage decision or append the minimal existing-surface update required by the local registry format.
Dependencies
- T001-T008 must complete before runtime implementation.
- T009-T015 should be written before or alongside the corresponding behavior changes.
- T016-T021 depend on T003-T005.
- T022-T025 depend on T006 and T009.
- T026-T031 depend on T007-T008 and T013-T014.
- T032-T041 depend on all implementation tasks.
Parallel Execution Examples
T003, T004, T005, T006, and T007 can run in parallel during inventory.
T009 and T010 can run in parallel once the expected label vocabulary is locked.
T022, T023, and T024 can run in parallel if the shared vocabulary is agreed.
MVP Scope
The minimum acceptable implementation is: productized /system brand/title copy, canonical top-level health labels, focused /system browser smoke, no debug/runtime leaks, preserved platform auth/capability semantics, and completed implementation report.