--- description: "Task list for Customer-Facing Localization Adoption v1" --- # Tasks: Customer-Facing Localization Adoption v1 **Input**: Design documents from `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/` **Prerequisites**: `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/plan.md` (required), `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/spec.md` (required), `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/checklists/requirements.md` (required), `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/research.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/data-model.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/contracts/customer-facing-localization-adoption.openapi.yaml`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/quickstart.md` **Review Artifact**: `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/checklists/requirements.md` is the outcome-of-record for the review outcome class, workflow outcome, and test-governance outcome. If implementation widens into website localization, export or audit localization, a new locale framework, or a new panel or auth plane, update that artifact before continuing. **Tests**: Required (Pest) for runtime behavior changes. Keep proof in the existing `confidence` lane plus one bounded `browser` smoke only because this slice changes rendered customer-facing copy, glossary consistency, locale feedback, and dominant-action clarity on existing review surfaces. **Operations**: No new `OperationRun`, queue, remote call, publication flow, or background processing is introduced. Audit and machine-readable truth remain on the current shared paths only. **RBAC**: Workspace membership remains the first `404` boundary; tenant or review scope mismatches remain `404`; in-scope actors missing an optional secondary capability keep inherited `403` or explicit unavailable-state behavior. Reuse `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Auth/Capabilities.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Auth/RoleCapabilityMap.php`; do not introduce raw capability strings or role-name checks. **Shared Pattern Reuse**: Reuse `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Localization/LocaleResolver.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/resources/views/filament/pages/reviews/customer-review-workspace.blade.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/ReviewPackDownloadController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.php`, and the existing `localization.review.*` catalogs in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php`. Do not add a new locale framework, panel, provider, auth plane, or customer-facing shell. **Filament / Panel Guardrails**: Filament remains v5 on Livewire v4. Provider registration remains unchanged in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/bootstrap/providers.php`. No new globally searchable resource, no new panel, no destructive action, and no asset-strategy change are allowed in this slice. **Organization**: Tasks are grouped by user story so glossary completion, workspace adoption, released-review detail adoption, and localized feedback or invariance protection remain independently testable after shared seams are settled. **Review Outcome**: `acceptable-special-case` **Workflow Outcome**: `keep` **Test-governance Outcome**: `keep` ## Test Governance Checklist - [x] Lane assignment is named and is the narrowest sufficient proof for the changed behavior. - [x] New or changed tests stay in the smallest honest family, and any browser addition remains explicit and bounded. - [x] Shared helpers, fixtures, memberships, released reviews, review packs, and locale defaults stay cheap by default. - [x] Planned validation commands cover the change without pulling in unrelated lane cost. - [x] Surface test profile stays explicit: `standard-native-filament` for the workspace page and `shared-detail-family` for the customer-workspace review detail. - [x] Any material budget, baseline, trend, or escalation note is recorded in the active feature package or PR close-out. ## Phase 1: Setup (Shared Context) **Purpose**: Lock the bounded productization slice, glossary scope, and proving lanes before runtime edits begin. - [x] T001 Review the bounded slice, explicit non-goals, completed-spec guardrails, and repo-fit outcome in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/spec.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/plan.md`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/checklists/requirements.md` - [x] T002 [P] Review locale-precedence reuse, glossary boundary, customer-workspace route reuse, and machine-artifact invariance in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/research.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/data-model.md`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/contracts/customer-facing-localization-adoption.openapi.yaml` - [x] T003 [P] Confirm the focused Sail/Pest validation commands, existing localization or review test families, and one bounded browser smoke in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/quickstart.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Browser/Reviews/` --- ## Phase 2: Foundational (Blocking Prerequisites) **Purpose**: Settle the shared glossary inventory, fallback and invariance guardrails, and reuse seams that every user story depends on. **Critical**: No user-story work should begin until this phase is complete. - [x] T004 [P] Inventory and map the canonical `localization.review.*` glossary coverage across `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/resources/views/filament/pages/reviews/customer-review-workspace.blade.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php` so later story work reuses one approved customer-facing glossary only - [x] T005 [P] Add or extend shared guard coverage for English fallback, no raw translation-key leakage, localized locale-feedback reuse, and unchanged machine-artifact truth in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/CustomerReviewSurfaceLocalizationTest.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/LocalePreferenceFlowTest.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php` - [x] T006 Reuse or minimally tighten the existing locale-resolution and customer-workspace seams in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Localization/LocaleResolver.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/routes/web.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/ReviewPackDownloadController.php` so story work stays on one locale source, one read-only detail route, and unchanged artifact/download behavior **Checkpoint**: Shared glossary ownership, fallback safety, and invariance boundaries are fixed before workspace or detail adoption begins. --- ## Phase 3: User Story 1 - Read the customer review workspace in the chosen language (Priority: P1) **Goal**: Let an entitled customer-safe reader use the existing locale choice on `/admin/reviews/workspace` without mixed-language labels or broken tenant context. **Independent Test**: Resolve English or German through the existing locale foundation, open `/admin/reviews/workspace`, and verify the heading, intro, disclosure copy, package and proof states, next-step wording, empty state, and `Open review` label render with the approved glossary while the current tenant filter stays intact. ### Tests for User Story 1 - [x] T007 [P] [US1] Extend `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/CustomerReviewSurfaceLocalizationTest.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspacePageTest.php` for EN or DE workspace headings, intro or disclosure copy, accepted-risk accountability summary, package or proof labels including partial states, next-step wording, empty-state copy, `Open review`, and locale-switch filter continuity ### Implementation for User Story 1 - [x] T008 [US1] Complete the workspace glossary entries and missing EN or DE copy in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php` for workspace headings, intro or disclosure copy, accepted-risk accountability summaries, package or proof states including partial, next-step guidance, empty states, and `Open review` - [x] T009 [US1] Apply the canonical glossary to `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/resources/views/filament/pages/reviews/customer-review-workspace.blade.php` so the existing workspace page renders localized customer-facing copy, accepted-risk accountability summary, and existing package or proof states without adding a new action family or row behavior - [x] T010 [US1] Preserve tenant and workspace filter continuity during locale changes by tightening `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/routes/web.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php` without introducing page-local locale logic **Checkpoint**: User Story 1 is independently functional when the workspace is readable in English or German with unchanged filter and row-action behavior. --- ## Phase 4: User Story 2 - Consume released review detail with one consistent customer-safe glossary (Priority: P1) **Goal**: Let the same reader open the released review detail from the workspace and see the same customer-facing terminology on package and proof states. **Independent Test**: Open a released review from `/admin/reviews/workspace` in both supported locales and verify the section labels, helper copy, dominant `Download governance package` action, and localized package or proof access reasons match the workspace glossary while the detail stays read-only in customer-workspace mode. ### Tests for User Story 2 - [x] T011 [P] [US2] Extend `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/CustomerReviewSurfaceLocalizationTest.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/TenantReviewUiContractTest.php` for customer-workspace detail section labels, accepted-risk status, helper copy, localized package or proof reasons including partial states, dominant `Download governance package` wording, and glossary continuity with the workspace surface - [x] T012 [P] [US2] Extend `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Browser/Reviews/CustomerReviewWorkspaceSmokeTest.php` for the bounded workspace-to-detail handoff, localized dominant action, secondary proof-path visibility, and the absence of raw translation keys while keeping browser proof inside the existing smoke family only ### Implementation for User Story 2 - [x] T013 [US2] Complete the released-review detail glossary entries and missing EN or DE copy in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php` for section labels, accepted-risk status wording, helper text, governance-package wording, proof-access wording, and localized partial or unavailable or blocked or expired reasons - [x] T014 [US2] Apply the shared glossary to `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php` so the existing customer-workspace detail flow stays read-only, explanatory, and centered on one dominant `Download governance package` action - [x] T015 [US2] Reuse current package and proof truth in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/ReviewPackDownloadController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php` so localized labels and reasons, including partial package or proof states, stay truthful without changing signed downloads, proof gating, or customer-workspace read-only mode **Checkpoint**: User Story 2 is independently functional when the released-review detail uses the same glossary as the workspace and keeps the one-action customer-workspace contract. --- ## Phase 5: User Story 3 - Receive truthful localized access-state and locale-feedback messaging (Priority: P2) **Goal**: Keep locale feedback, blocked or unavailable messaging, and fallback behavior localized without changing authorization or machine-readable artifact truth. **Independent Test**: Trigger locale preference or override feedback and in-scope unavailable, blocked, or expired package or proof states, then verify the messages render in the effective locale with English fallback only and with unchanged `404` or `403`, download, and machine-artifact behavior. ### Tests for User Story 3 - [x] T016 [P] [US3] Extend `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/LocalePreferenceFlowTest.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Localization/CustomerReviewSurfaceLocalizationTest.php` for localized override or preference feedback, localized partial or unavailable or blocked or expired messaging, controlled English fallback, no raw-key leakage, and unchanged artifact-truth assertions on the in-scope customer-safe flow ### Implementation for User Story 3 - [x] T017 [US3] Finalize locale-feedback copy and supported fallback behavior in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Localization/LocaleResolver.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php` so override or preference responses render in the effective locale without a new notification or locale framework - [x] T018 [US3] Keep package or proof availability messaging, including partial or unavailable or blocked or expired states, `404` or `403` semantics, and machine-readable artifact invariance unchanged while localized reasons render in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/ReviewPackDownloadController.php` without localizing review-pack bytes, raw JSON, audit payloads, or identifiers **Checkpoint**: User Story 3 is independently functional when feedback and access-state messaging stay localized and truthful without altering artifact or authorization truth. --- ## Phase 6: Polish & Cross-Cutting Validation **Purpose**: Run the canonical proof commands, format touched files, and keep any discovered spillover explicit instead of absorbing it into this slice. - [x] T019 Run `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Localization/LocalePreferenceFlowTest.php tests/Feature/Localization/LocalizedNotificationFormattingTest.php tests/Feature/Localization/CustomerReviewSurfaceLocalizationTest.php tests/Feature/Reviews/CustomerReviewWorkspacePageTest.php tests/Feature/TenantReview/TenantReviewUiContractTest.php` exactly as recorded in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/plan.md` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/quickstart.md` - [x] T020 Run `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Reviews/CustomerReviewWorkspaceSmokeTest.php` exactly as recorded in `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/plan.md` and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/quickstart.md` - [x] T021 Run `export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` for all touched platform files - [x] T022 Review `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Localization/LocaleResolver.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Http/Controllers/LocalizationController.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/plan.md`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/quickstart.md`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/275-customer-facing-localization-adoption/checklists/requirements.md` to confirm no website localization, no export or JSON or audit-artifact localization, no new panel or provider or auth plane, no locale framework, and explicit `follow-up-spec` recording for any spillover discovered during implementation --- ## Dependencies & Execution Order ### Phase Dependencies - **Phase 1 (Setup)**: no dependencies; start immediately. - **Phase 2 (Foundational)**: depends on Phase 1 and blocks all user stories until glossary inventory, fallback safety, and reuse seams are settled. - **Phase 3 (US1)**: depends on Phase 2 and delivers the first customer-facing localization increment on the workspace landing surface. - **Phase 4 (US2)**: depends on Phase 2 and should follow US1 because it deepens the same workspace-led review flow on shared files and copy. - **Phase 5 (US3)**: depends on Phase 2 and is safest after US1 and US2 because feedback, fallback, and invariance hardening rely on the final glossary contract. - **Phase 6 (Polish)**: depends on all implemented stories. ### User Story Dependencies - **US1 (P1)**: first independently testable increment once the glossary inventory and fallback guardrails exist. - **US2 (P1)**: independently testable after Phase 2, but should merge after US1 because the workspace and detail must share one glossary and one dominant-action contract. - **US3 (P2)**: independently testable after Phase 2, but should merge after US1 and US2 because it hardens the localized feedback and invariance behavior of the same flow. ### Within Each User Story - Write the listed Pest coverage first and make it fail for the intended gap before runtime implementation. - Reuse the existing locale, review, package, and proof seams before adding any new helper or translation mapping. - Re-run the narrowest relevant validation command after each story checkpoint before moving to the next story. --- ## Parallel Execution Examples ### Phase 1 - T002 and T003 can run in parallel after T001 confirms the bounded slice. ### Phase 2 - T004 and T005 can run in parallel while T006 settles the shared reuse seam. ### User Story 1 - T007 can run in parallel with any last Phase 2 cleanup. - After the missing glossary terms are identified, T008 and T010 can proceed in parallel before T009 finalizes the workspace copy wiring. ### User Story 2 - T011 and T012 can run in parallel because they cover feature and browser proof separately. - After the missing glossary terms are identified, T013 and T015 can proceed in parallel before T014 finalizes the shared detail surface wording. ### User Story 3 - T016 can run in parallel with late US2 verification. - T017 and T018 can proceed in parallel once the feedback and invariance gaps are proven. --- ## Implementation Strategy ### Suggested MVP Scope - MVP = **Phase 2 + US1 + US2**. The package becomes product-meaningful once the existing workspace and released-review detail both render one customer-facing EN or DE glossary on the current review flow. ### Incremental Delivery 1. Complete Phase 1 and Phase 2. 2. Deliver US1 and validate the localized workspace surface. 3. Deliver US2 and validate the localized released-review detail plus the bounded browser smoke. 4. Deliver US3 and validate localized feedback, fallback safety, and invariance protection. 5. Finish with Phase 6 validation, formatting, and explicit spillover review. ### Team Strategy 1. Settle the glossary inventory and fallback guardrails before changing multiple shared surfaces. 2. Parallelize test authoring inside each story before converging on the shared localization files. 3. Serialize merges around `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php`, `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/resources/views/filament/pages/reviews/customer-review-workspace.blade.php`, and `/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php` because they are the main conflict hotspots for this slice. --- ## Explicit Follow-Ups / Out of Scope - Broader operator-wide localization outside the existing customer-review workspace, released-review detail, and locale-feedback surfaces remains a separate follow-up spec. - Website localization remains out of scope and must not be folded into this task list. - Localized export review-pack contents, raw JSON, audit payloads, or other machine-readable artifacts remain out of scope and must not be folded into this task list. - Any new locale or plugin framework, new panel, provider-registration change, new auth plane, or customer portal shell remains out of scope and must be split into a separate follow-up spec if later required. - Any spillover discovered during implementation that cannot be contained to the in-scope customer-facing review flow must resolve as explicit `follow-up-spec`, not as an implicit expansion of this feature.