0470d500b2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
104 lines
6.2 KiB
Markdown
104 lines
6.2 KiB
Markdown
---
|
|
phase: 04-marketplace-portal-navigation
|
|
plan: 04
|
|
type: execute
|
|
wave: 3
|
|
depends_on: ["04-02", "04-03"]
|
|
files_modified: []
|
|
autonomous: false
|
|
requirements: [MRKT-01, MRKT-02, MRKT-03, MRKT-04, PRTAL-02, PRTAL-03, PRTAL-05]
|
|
must_haves:
|
|
truths:
|
|
- "A human confirms the marketplace, activation flows, tenant context switching, and sidebar navigation all work end-to-end in a running stack"
|
|
artifacts: []
|
|
key_links: []
|
|
---
|
|
|
|
<objective>
|
|
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).
|
|
</objective>
|
|
|
|
## 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>
|
|
|
|
<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
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Ensure the stack is running and the full test suite is green</name>
|
|
<read_first>
|
|
- 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
|
|
</read_first>
|
|
<action>
|
|
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.
|
|
</action>
|
|
<verify>
|
|
<automated>cd apps/web && pnpm vitest run 2>&1 | grep -qiE "passed" && pnpm type-check && echo SUITE_GREEN</automated>
|
|
</verify>
|
|
<acceptance_criteria>
|
|
- `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
|
|
</acceptance_criteria>
|
|
<done>Full suite green, type-check clean, portal running and reachable.</done>
|
|
</task>
|
|
|
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
<what-built>
|
|
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).
|
|
</what-built>
|
|
<how-to-verify>
|
|
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.
|
|
</how-to-verify>
|
|
<resume-signal>Type "approved" if all checks pass, or describe the specific issues observed (these feed `/gsd-plan-phase --gaps`).</resume-signal>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<artifacts_this_phase_produces>
|
|
No new symbols — verification-only plan.
|
|
</artifacts_this_phase_produces>
|
|
|
|
<verification>
|
|
- Full web suite green and type-check clean (Task 1)
|
|
- Human confirms all 12 verification steps (Task 2)
|
|
</verification>
|
|
|
|
<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>
|
|
|
|
<output>
|
|
Create `.planning/phases/04-marketplace-portal-navigation/04-04-SUMMARY.md` when done
|
|
</output>
|