## Summary - sync platform-dev back into dev with the latest integrated feature and spec work - include the customer review workspace productization flow and its related review, review-pack, evidence, audit, and test updates - carry forward the recent governance and roadmap/spec updates already merged on platform-dev ## Included highlights - customer review workspace productization and customer-safe released-review drilldown - governance decision convergence work - cross-tenant compare and promotion work - external support desk handoff work - product, roadmap, permissions, and spec artifact updates ## Validation context - platform-dev currently contains the already-validated feature work from the merged branch PRs - latest customer review workspace batch included focused Pest suites, one bounded browser smoke, and Pint ## Notes - this is an integration PR from platform-dev into dev - no separate provider-registration or asset-strategy expansion is introduced by the customer review workspace slice Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #311
28 KiB
| description |
|---|
| Task list for Customer Review Workspace Productization v1 |
Tasks: Customer Review Workspace Productization v1
Input: Design documents from /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/
Prerequisites: /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/plan.md (required), /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/spec.md (required), /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/checklists/requirements.md (required), /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/research.md, /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/data-model.md, /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/contracts/customer-review-productization.openapi.yaml, /Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/quickstart.md
Tests: Required (Pest) for runtime behavior changes. Keep proof in the narrow confidence lane plus one bounded browser smoke only because this slice changes customer-safe wording, disclosure order, and safe action hierarchy on existing workspace and detail surfaces.
Operations: No new OperationRun, queue, remote call, publication flow, remediation flow, or background processing is introduced. Auditability stays on the current shared audit pipeline only.
RBAC: Workspace membership remains the first boundary. Non-members or out-of-scope tenant targets remain 404; in-scope actors missing an optional capability get explicit unavailability or 403 only on the gated secondary path. Reuse /Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/Auth/RoleCapabilityMap.php and /Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Auth/Capabilities.php; do not add raw capability strings or role-string checks.
Shared Pattern Reuse: Reuse /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/Pages/ViewTenantReview.php, /Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/ArtifactTruthPresenter.php, /Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/SurfaceCompressionContext.php, existing review-pack and evidence resources, and the shared audit logger rather than creating a new customer shell, presenter family, or persistence layer.
Organization: Tasks are grouped by user story so workspace productization, released-review detail hardening, and packaged-proof access remain independently testable after shared seams are settled.
Test Governance Notes
- Lane assignment:
confidenceplus one explicitbrowsersmoke remain the narrowest sufficient proof for capability-first RBAC, workspace and tenant isolation, calmer disclosure hierarchy, explicit unavailable states, and auditable pack or proof consumption. - Keep new coverage inside
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspace*.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/TenantReviewUiContractTest.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/TenantReviewExplanationSurfaceTest.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/ReviewPack/ReviewPackDownloadTest.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Evidence/EvidenceSnapshotResourceTest.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Evidence/EvidenceSnapshotAuditLogTest.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Browser/Reviews/CustomerReviewWorkspaceSmokeTest.php; do not widen this slice into a new browser family or a broader cross-tenant workboard suite. - Reuse existing workspace membership, entitled-tenant, released review, finding exception, evidence snapshot, review pack, localization, and audit fixtures; any helper added during implementation must stay explicit and cheap by default.
- If implementation finds that workspace-open or proof-open auditing is already fully covered, close the corresponding audit tasks as reuse-only and record the outcome as
document-in-featureinstead of adding new action IDs.
Phase 1: Setup (Shared Context)
Purpose: Lock the bounded productization delta, current proof lanes, and exact repo anchors before runtime edits begin.
- T001 Review the bounded slice, non-goals, guardrail outcomes, and required customer-safe behaviors in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/spec.md,/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/plan.md, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/checklists/requirements.md - T002 [P] Review route reuse, derived disclosure states, audit expectations, and no-new-persistence constraints in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/research.md,/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/data-model.md, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/contracts/customer-review-productization.openapi.yaml - T003 [P] Confirm the focused Sail/Pest commands, the single bounded browser-smoke requirement, and the existing review test family in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/quickstart.md,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Browser/Reviews/
Phase 2: Foundational (Blocking Prerequisites)
Purpose: Settle the shared RBAC, isolation, audit, presenter, and localization seams that every user story depends on.
⚠️ CRITICAL: No user story work should begin until this phase is complete.
- T004 [P] Add shared authorization coverage for workspace membership, entitled-tenant omission, deny-as-not-found tenant targeting, and in-scope optional-capability denial in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspaceAuthorizationTest.php - T005 Reuse or minimally tighten capability-first workspace and tenant isolation 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/Pages/ViewTenantReview.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Services/TenantReviews/TenantReviewRegisterService.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Auth/Capabilities.php, and existing capability maps so later summary, proof, and pack work stays on one existing seam - T006 [P] Verify and extend the shared audit pipeline only where required in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Audit/AuditActionId.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/TenantReviewResource/Pages/ViewTenantReview.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource/Pages/ViewEvidenceSnapshot.phpfor workspace entry, review open, proof open, and pack download moments - T007 [P] Confirm the shared customer-safe truth presentation seams to reuse in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/ArtifactTruthPresenter.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/SurfaceCompressionContext.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/ReviewPackResource.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.phpbefore story-specific disclosure changes begin - T008 [P] Inventory the bounded copy, localization, and tenant-safe global-search seams for calmer wording, customer-safe disclosure hierarchy, explicit access-state labels, and unchanged review/evidence discoverability in
/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/resources/views/filament/pages/reviews/customer-review-workspace.blade.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/Filament/Resources/ReviewPackResource.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.php
Checkpoint: Shared RBAC, isolation, audit, presenter, and localization seams are fixed before workspace or detail productization begins.
Phase 3: User Story 1 - Understand The Latest Released Review At A Glance (Priority: P1) 🎯 MVP
Goal: Let an entitled customer reviewer, customer admin, or auditor open one existing workspace route and immediately understand the current released governance record per entitled tenant.
Independent Test: Open /admin/reviews/workspace as an entitled actor and confirm each visible tenant shows only released review truth, customer-safe summary wording, one dominant Open released review action, and explicit absence or unavailable states without leaking internal review lifecycle.
Tests for User Story 1
- T009 [P] [US1] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspacePageTest.phpfor latest released review-only rows, calmer at-a-glance summaries, accepted-risk accountability visibility, evidence or pack availability summaries, and truthful no-released-review states - T010 [P] [US1] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspaceLaunchLinksTest.phpfor launches into/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpfrom existing review, evidence, and review-pack detail paths with safe tenant prefilter and no broadened tenant discovery
Implementation for User Story 1
- T011 [US1] Compose one workspace entry per entitled tenant from released review truth only in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpand the existing tenant-review register query seam, reusing existingTenantReview, current pack, and evidence relationships without draft or internal fallback - T012 [US1] Reuse or minimally tighten launch and prefilter handoffs in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.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/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpso review, evidence, and review-pack detail paths enter the workspace with preserved tenant context and no new shell - T013 [US1] Rework the default-visible workspace disclosure hierarchy in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpso outcome, key findings, accepted-risk accountability, evidence availability, and review-pack state appear as decision-first content with exactly one dominantOpen released reviewaction - T014 [US1] Implement explicit workspace absence, unavailable, partial, expired, and redaction-safe messaging in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpwithout introducing a new persisted state family - T015 [US1] Update calmer workspace wording and DE or EN localization keys in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/en/localization.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/lang/de/localization.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.phpso operator-led language is removed from the customer-safe entry surface
Checkpoint: User Story 1 is independently functional when the workspace truthfully shows only released review summaries for entitled tenants with clear customer-safe wording and explicit access-state handling.
Phase 4: User Story 2 - Understand Why The Review Says What It Says (Priority: P1)
Goal: Let the same actor open the released review detail from the workspace and understand findings, accepted-risk accountability, and proof context without seeing operator or mutation residue.
Independent Test: Open a released review from the workspace and confirm the detail stays read-only, keeps customer-safe disclosure first, preserves tenant and workspace context, and makes optional proof or pack unavailability explicit instead of hiding or leaking content.
Tests for User Story 2
- T016 [P] [US2] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspaceNavigationContextTest.phpfor workspace-to-review handoff, preserved tenant context, safe return semantics, and deny-as-not-found behavior whencustomer_workspace=1targets an out-of-scope tenant or review - T017 [P] [US2] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/TenantReviewUiContractTest.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/ReviewPack/ReviewPackResourceTest.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Evidence/EvidenceSnapshotResourceTest.phpfor customer-workspace read-only mode, one dominant safe action, hidden publish or remediation controls, explicit unavailable states for optional secondary actions, and preserved tenant-safe global-search posture across the touched review/evidence/pack resources - T018 [P] [US2] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/TenantReview/TenantReviewExplanationSurfaceTest.phpfor calmer findings language, accepted-risk accountability framing, evidence summary ordering, and hidden raw or support detail by default when the detail is launched from the workspace - T019 [P] [US2] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Browser/Reviews/CustomerReviewWorkspaceSmokeTest.phpfor the calm workspace-to-detail handoff, one dominant primary action, and truthful optional-action unavailable states while keeping browser proof bounded to this single smoke slice
Implementation for User Story 2
- T020 [US2] Tighten the existing customer-workspace detail mode in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.phpand/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/TenantReviewResource.phpso the released review remains read-only, capability-aware, and context-preserving without creating a second detail surface - T021 [US2] Reuse
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/ArtifactTruthPresenter.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Ui/GovernanceArtifactTruth/SurfaceCompressionContext.php, and the current review and finding-exception relationships to present calmer findings, accepted-risk accountability, and evidence-summary disclosure on the existing released-review detail surface - T022 [US2] Reuse the related detail surfaces in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource/Pages/ViewReviewPack.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource/Pages/ViewEvidenceSnapshot.phpso secondary pack and proof paths preserve customer-safe wording, source context, and explicit unavailable messaging after drilldown - T023 [US2] Update customer-safe detail, pack, and proof copy in
/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/Resources/TenantReviewResource/Pages/ViewTenantReview.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.phpso calmer wording and the customer-safe disclosure hierarchy stay aligned across the flow
Checkpoint: User Story 2 is independently functional when the released review detail deepens understanding without exposing operator controls, duplicate summaries, or raw support detail by default.
Phase 5: User Story 3 - Safely Consume Packaged Proof And Understand Unavailable States (Priority: P2)
Goal: Let the actor access the current review pack or proof route when entitled, or understand exactly why it is unavailable, expired, absent, or redacted.
Independent Test: From the workspace and released-review detail, verify that current review-pack download and proof routes stay capability-gated, explicit when unavailable, auditable, and never trigger generation, regeneration, publication, or remediation behavior.
Tests for User Story 3
- T024 [P] [US3] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Reviews/CustomerReviewWorkspacePackAccessTest.phpfor available, unavailable, expired, absent, and redacted pack or proof states plus explicit customer-safe messaging on the workspace and released-review detail surfaces - T025 [P] [US3] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/ReviewPack/ReviewPackDownloadTest.phpfor signed current-pack download reuse,source_surface=customer_review_workspaceaudit metadata, and the absence of generate, regenerate, or publication behavior on this path - T026 [P] [US3] Extend
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Evidence/EvidenceSnapshotResourceTest.phpand/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/tests/Feature/Evidence/EvidenceSnapshotAuditLogTest.phpfor proof-route capability gating, explicit unavailable or redacted handling, and shared audit logging when proof is opened from the customer review flow
Implementation for User Story 3
- T027 [US3] Reuse
/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, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource/Pages/ViewReviewPack.phpso current-pack access stays capability-first, signed, auditable, and explicit when absent, unavailable, expired, or redacted - T028 [US3] Reuse
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.phpand/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource/Pages/ViewEvidenceSnapshot.phpso proof pointers remain customer-safe, capability-gated, and explicit when proof is absent, unavailable, or redacted instead of silently omitted - T029 [US3] Finalize shared audit wiring in
/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Support/Audit/AuditActionId.phpfor workspace entry, review open, proof open, and pack download only where T006 confirmed a real gap, preserving stable tenant, workspace, andsource_surfacemetadata on the existing pipeline - T030 [US3] Align pack and proof access wording in
/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/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.php,/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/ReviewPackResource.php, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/apps/platform/app/Filament/Resources/EvidenceSnapshotResource.phpso access, absence, unavailable, expired, and redacted states stay distinct and customer-safe
Checkpoint: User Story 3 is independently functional when current pack and proof access remain bounded, auditable, and explicit under all supported access states.
Phase 6: Polish & Cross-Cutting Concerns
Purpose: Run the narrow validation set, keep formatting clean, and record bounded reviewer outcomes without widening scope.
- T031 Run
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Reviews/CustomerReviewWorkspacePageTest.php tests/Feature/Reviews/CustomerReviewWorkspaceAuthorizationTest.php tests/Feature/Reviews/CustomerReviewWorkspaceLaunchLinksTest.php - T032 Run
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Reviews/CustomerReviewWorkspaceNavigationContextTest.php tests/Feature/TenantReview/TenantReviewUiContractTest.php tests/Feature/TenantReview/TenantReviewExplanationSurfaceTest.php tests/Feature/Reviews/CustomerReviewWorkspacePackAccessTest.php tests/Feature/ReviewPack/ReviewPackDownloadTest.php tests/Feature/ReviewPack/ReviewPackResourceTest.php tests/Feature/Evidence/EvidenceSnapshotResourceTest.php tests/Feature/Evidence/EvidenceSnapshotAuditLogTest.php - T033 Run
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Reviews/CustomerReviewWorkspaceSmokeTest.php - T034 Run
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent - T035 Record the final
Guardrail / Smoke Coverageclose-out, lane results, audit-gap outcome (reuse-onlyvs bounded additive action IDs), localization or copy scope outcome, global-search safety outcome, and anydocument-in-featureorfollow-up-specdecision in/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/plan.md,/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/quickstart.md, and/Users/ahmeddarrazi/Documents/projects/wt-plattform/specs/258-customer-review-productization/checklists/requirements.md
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 RBAC, isolation, audit, presenter, and localization seams are settled.
- Phase 3 (US1): depends on Phase 2 and delivers the MVP workspace productization slice.
- Phase 4 (US2): depends on Phase 2 and should follow US1 because it deepens the same review-consumption flow on shared surfaces.
- Phase 5 (US3): depends on Phase 2 and is safest after US1 or US2 because pack and proof actions build on the same workspace and detail context.
- Phase 6 (Polish): depends on all implemented stories.
User Story Dependencies
- US1 (P1): first independently shippable increment once Phase 2 is complete.
- US2 (P1): independently testable after Phase 2, but should merge after US1 because the same workspace and detail surfaces are shared hotspots.
- US3 (P2): independently testable after Phase 2, but should merge after US1 because explicit access-state handling depends on the final workspace and detail wording contract.
Within Each User Story
- Write the listed Pest coverage first and make it fail for the intended gap before runtime implementation.
- Reuse shared RBAC, audit, presenter, and localization seams before introducing any local helper or new copy mapping.
- Re-run the narrowest relevant proof 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, T006, T007, and T008 can run in parallel while T005 settles the shared capability-first control path.
User Story 1
- T009 and T010 can run in parallel before runtime edits begin.
- After T011 settles row composition, T012 can proceed before T013 through T015 finalize disclosure, states, and copy.
User Story 2
- T016, T017, T018, and T019 can run in parallel because they cover different proof surfaces in the same flow.
- After the tests exist, T020 through T023 should land in order because they touch the same released-review detail family.
User Story 3
- T024, T025, and T026 can run in parallel.
- After the tests exist, T027 and T028 can proceed in parallel before T029 and T030 finalize audit and wording alignment.
Implementation Strategy
Suggested MVP Scope
- MVP = Phase 2 + User Story 1 only. That delivers the calmer customer-safe workspace entry surface, capability-first tenant isolation, explicit access-state handling, and safe launch continuity without yet deepening the released-review detail surface.
Incremental Delivery
- Complete Phase 1 and Phase 2.
- Deliver US1 and validate the workspace productization contract.
- Deliver US2 and validate the released-review detail follow-through.
- Deliver US3 and validate packaged-proof access, unavailable states, and audit reuse.
- Finish with Phase 6 validation, formatting, and reviewer close-out notes.
Team Strategy
- Settle the shared capability, audit, presenter, and localization seams first.
- Parallelize test authoring inside each story before converging on the shared workspace and detail files.
- 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.phpbecause they are the primary conflict hotspots for this slice.