Files

6.2 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
phase plan type wave depends_on files_modified autonomous requirements must_haves
04-marketplace-portal-navigation 04 execute 3
04-02
04-03
false
MRKT-01
MRKT-02
MRKT-03
MRKT-04
PRTAL-02
PRTAL-03
PRTAL-05
truths artifacts key_links
A human confirms the marketplace, activation flows, tenant context switching, and sidebar navigation all work end-to-end in a running stack
Human visual + functional verification of the complete Phase 4 experience: marketplace browsing/filtering, module activation/deactivation (admin + Super-Admin tenant context), module detail page, and sidebar navigation with search and live refresh.

Purpose: Phase gate. Confirms the implemented slices satisfy the phase success criteria before the phase is marked complete. Output: Human sign-off (or a list of issues to feed gap-closure planning).

Phase Goal

As a Tessera user, I want to browse and activate modules in a marketplace and navigate to them from the sidebar, so that the platform's module experience is usable end-to-end.

<execution_context> @$HOME/.claude/gsd-core/workflows/execute-plan.md @$HOME/.claude/gsd-core/templates/summary.md </execution_context>

@.planning/phases/04-marketplace-portal-navigation/04-UI-SPEC.md @.planning/phases/04-marketplace-portal-navigation/04-01-SUMMARY.md @.planning/phases/04-marketplace-portal-navigation/04-02-SUMMARY.md @.planning/phases/04-marketplace-portal-navigation/04-03-SUMMARY.md Task 1: Ensure the stack is running and the full test suite is green - apps/web/package.json (test + dev scripts) - .planning/phases/04-marketplace-portal-navigation/04-01-SUMMARY.md - .planning/phases/04-marketplace-portal-navigation/04-02-SUMMARY.md - .planning/phases/04-marketplace-portal-navigation/04-03-SUMMARY.md Run the full web unit suite (`cd apps/web && pnpm vitest run`) and `pnpm type-check`. Ensure the Docker Compose stack (or local dev servers) is up so the portal is reachable for human verification — start it if it is not already running. Confirm the API is serving `/modules`, `/modules/active`, and `/tenants`. Report the portal URL for the human verifier. cd apps/web && pnpm vitest run 2>&1 | grep -qiE "passed" && pnpm type-check && echo SUITE_GREEN - `cd apps/web && pnpm vitest run` exits 0 - `cd apps/web && pnpm type-check` exits 0 - Portal is reachable and the marketplace route loads without console errors Full suite green, type-check clean, portal running and reachable. Phase 4 marketplace + portal navigation: `/marketplace` card grid with search/status/category filters, immediate activation with toast + confirm-dialog deactivation, Super-Admin tenant-context selector, `/marketplace/[slug]` detail page, and an enhanced sidebar (Next.js Link, usePathname active state, per-module links, search, live refresh). 1. Log in as a regular Admin. Visit `/marketplace`. CONFIRM: a responsive card grid of all modules appears, each card shows icon, name, description, a category badge, and a status badge (MRKT-01, MRKT-04). 2. Type part of a module name in the marketplace search. CONFIRM: the grid live-filters (debounced). Clear it with the X button. 3. Click the status tabs "Aktiviert" / "Verfuegbar" and a category chip. CONFIRM: the grid filters correctly and filters compose. With an impossible filter combo, CONFIRM the "Keine Ergebnisse" filtered-empty state appears. 4. On an available module, click "Modul aktivieren". CONFIRM: button becomes "Deaktivieren", status badge turns green "Aktiviert", and a success toast appears bottom-right (MRKT-02). 5. Look at the left sidebar WITHOUT reloading the page. CONFIRM: the just-activated module now appears under its category as a clickable link (MRKT-03, PRTAL-02, live refresh). 6. Click that module link in the sidebar. CONFIRM: it navigates client-side (no full-page flash), opens in the main content area, and the sidebar highlights it as active (PRTAL-03). 7. Type in the sidebar search field. CONFIRM: modules/categories filter; non-matching categories hide; "Keine Module gefunden" shows when nothing matches; clearing the search keeps previously expanded categories open (PRTAL-05). 8. Click "Deaktivieren" on an activated module in the marketplace. CONFIRM: a confirmation dialog appears with the module name; Abbrechen cancels with no change; Deaktivieren removes it (badge + sidebar update) with a toast. 9. Open a module detail page by navigating to `/marketplace/{slug}`. CONFIRM: full (untruncated) description, version, status, and a working activate/deactivate control; the "Zurueck zum Marktplatz" back link works. 10. Log in as a Super-Admin. Visit `/marketplace`. CONFIRM: a "Mandanten-Kontext" dropdown appears above the title. Switch to a different tenant. CONFIRM: card activation states refresh for that tenant; activating a module affects ONLY the selected tenant (verify by switching back). 11. Switch language DE/EN. CONFIRM: all marketplace and sidebar strings translate (no raw keys, no `[object Object]` descriptions). 12. Toggle light/dark theme. CONFIRM: cards, badges, toasts, and dialog all render correctly in both modes. Type "approved" if all checks pass, or describe the specific issues observed (these feed `/gsd-plan-phase --gaps`).

<artifacts_this_phase_produces> No new symbols — verification-only plan. </artifacts_this_phase_produces>

- Full web suite green and type-check clean (Task 1) - Human confirms all 12 verification steps (Task 2)

<success_criteria>

  • All phase success criteria from ROADMAP Phase 4 confirmed by a human in a running stack
  • Any defects captured for gap-closure planning </success_criteria>
Create `.planning/phases/04-marketplace-portal-navigation/04-04-SUMMARY.md` when done