TenantAtlas/specs/407-msp-mittelstand-use-case-pages/tasks.md
ahmido 94cff6ca03 feat: add MSP and internal IT use-case pages (#402)
Implements website feature branch `407-msp-mittelstand-use-case-pages` into `website-dev`.

Summary:
- add German and English MSP and internal IT use-case landing pages
- expose localized buyer-path teasers from the homepage and platform page
- extend smoke coverage for the new routes, navigation links, metadata, and conservative claim checks
- include the aligned Spec Kit artifacts under `specs/407-msp-mittelstand-use-case-pages`

Validation:
- `cd apps/website && corepack pnpm build`
- `cd apps/website && corepack pnpm test -- tests/smoke/public-routes.spec.ts tests/smoke/interaction.spec.ts`

Follow-up integration path after merge:

`website-dev` -> `dev`.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #402
2026-05-27 22:02:42 +00:00

16 KiB

Tasks: MSP & Mittelstand Use-Case Pages

Input: Design documents from /specs/407-msp-mittelstand-use-case-pages/
Prerequisites: plan.md (required), spec.md (required)

Tests: Runtime behavior changes are in scope for apps/website, so browser smoke and route/metadata assertions are required.

Test Governance Checklist

  • Lane assignment is named and is the narrowest sufficient proof for the changed behavior.
  • New or changed tests stay in the smallest honest family, and any browser addition is explicit.
  • Shared helpers and fixtures stay cheap by default; any widening is isolated or documented.
  • Planned validation commands cover the change without unrelated lane cost.
  • Surface test profile is explicit (Browser, public website).
  • Any escalation or follow-up spec decision is documented in the PR notes.

Phase 1: Setup (Shared Infrastructure)

Purpose: Confirm repository contracts, discover concrete website integration points, and define scope-safe implementation boundaries.

  • T001 Confirm active feature branch and clean target scope in specs/407-msp-mittelstand-use-case-pages/spec.md
  • T002 Verify root workspace contracts in package.json
  • T003 Verify workspace package contracts in apps/website/package.json
  • T004 Map current route and locale entrypoints in apps/website/src/pages/index.astro and apps/website/src/pages/en/index.astro
  • T005 [P] Map homepage composition surface in apps/website/src/components/pages/HomePage.astro
  • T006 [P] Map navigation/footer source of truth in apps/website/src/data_files/site-copy.ts and apps/website/src/utils/navigation.ts

Phase 2: Foundational (Blocking Prerequisites)

Purpose: Establish IA decision, shared copy scaffolding, and smoke-test hooks used by all user stories.

⚠️ CRITICAL: No user story work should begin before this phase is complete.

  • T007 Decide and document route family in specs/407-msp-mittelstand-use-case-pages/plan.md (selected: /use-cases/...)
  • T008 Add use-case copy schema for DE locale in apps/website/src/data_files/site-copy.ts
  • T009 [P] Add use-case copy schema for EN locale in apps/website/src/data_files/site-copy.ts
  • T010 Add nav/footer link slots for use-case discoverability in apps/website/src/data_files/site-copy.ts
  • T011 [P] Extend route smoke inventory for new pages in apps/website/tests/smoke/smoke-helpers.ts
  • T012 Add baseline route metadata placeholders for new pages in apps/website/tests/smoke/public-routes.spec.ts
  • T013 Capture static-claim scan command set in specs/407-msp-mittelstand-use-case-pages/plan.md

Checkpoint: Foundation is ready for story implementation.


Phase 3: User Story 1 - MSP Buyer Self-Qualifies Fast (Priority: P1) 🎯 MVP

Goal: Deliver an MSP-specific page that clearly sells repeatable Microsoft 365 governance services and boundaries.

Independent Test: Open /use-cases/msp, verify hero/pain/outcomes/workflow/capabilities/boundary/final CTA, and confirm real links plus no unsupported claims.

Tests for User Story 1

  • T014 [P] [US1] Add MSP route title/description assertions in apps/website/tests/smoke/public-routes.spec.ts
  • T015 [P] [US1] Add MSP content-intent assertions in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 1

  • T016 [US1] Create MSP route page in apps/website/src/pages/use-cases/msp.astro
  • T017 [US1] Create EN MSP route page in apps/website/src/pages/en/use-cases/msp.astro
  • T018 [US1] Implement MSP hero copy and primary CTAs in apps/website/src/data_files/site-copy.ts
  • T019 [US1] Implement MSP pain section cards in apps/website/src/data_files/site-copy.ts
  • T020 [US1] Implement MSP outcomes section in apps/website/src/data_files/site-copy.ts
  • T021 [US1] Implement MSP workflow steps in apps/website/src/data_files/site-copy.ts
  • T022 [US1] Implement MSP capability cards and PSA boundary copy in apps/website/src/data_files/site-copy.ts
  • T023 [US1] Implement MSP trust teaser and final CTA with real destinations in apps/website/src/data_files/site-copy.ts
  • T024 [US1] Complete MSP page section rendering directly in apps/website/src/pages/use-cases/msp.astro

Checkpoint: User Story 1 is independently functional and demonstrable.


Phase 4: User Story 2 - Internal IT Buyer Understands Control Value (Priority: P1)

Goal: Deliver a Mittelstand/Enterprise IT page focused on internal control, auditability, drift visibility, and recovery context.

Independent Test: Open /use-cases/mittelstand, verify stakeholder-specific value framing and differentiation from admin-center/helpdesk/automation tools.

Tests for User Story 2

  • T025 [P] [US2] Add Mittelstand route title/description assertions in apps/website/tests/smoke/public-routes.spec.ts
  • T026 [P] [US2] Add Mittelstand content-intent assertions in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 2

  • T027 [US2] Create Mittelstand route page in apps/website/src/pages/use-cases/mittelstand.astro
  • T028 [US2] Create EN Mittelstand route page in apps/website/src/pages/en/use-cases/mittelstand.astro
  • T029 [US2] Implement Mittelstand hero copy and CTAs in apps/website/src/data_files/site-copy.ts
  • T030 [US2] Implement Mittelstand pain section cards in apps/website/src/data_files/site-copy.ts
  • T031 [US2] Implement Mittelstand outcomes section in apps/website/src/data_files/site-copy.ts
  • T032 [US2] Implement stakeholder cards (IT Ops, Security, IT-Leitung, Audit/Datenschutz) in apps/website/src/data_files/site-copy.ts
  • T033 [US2] Implement Mittelstand workflow steps in apps/website/src/data_files/site-copy.ts
  • T034 [US2] Implement differentiation and trust teaser copy in apps/website/src/data_files/site-copy.ts
  • T035 [US2] Implement Mittelstand final CTA with real destinations in apps/website/src/data_files/site-copy.ts

Checkpoint: User Story 2 is independently functional and demonstrable.


Phase 5: User Story 3 - Public Visitors Reach Both Buyer Paths (Priority: P2)

Goal: Ensure both use-case pages are discoverable through homepage and existing IA without placeholder links.

Independent Test: From homepage plus nav/footer entry points, both use-case routes are reachable on desktop/mobile and all links resolve intentionally.

Tests for User Story 3

  • T036 [P] [US3] Add homepage teaser-link assertions in apps/website/tests/smoke/interaction.spec.ts
  • T037 [P] [US3] Add navigation/footer intentional-link assertions for use-case routes in apps/website/tests/smoke/public-routes.spec.ts

Implementation for User Story 3

  • T038 [US3] Add homepage use-case teaser section structure in apps/website/src/components/pages/HomePage.astro
  • T039 [US3] Add homepage MSP teaser copy and route mapping in apps/website/src/data_files/site-copy.ts
  • T040 [US3] Add homepage Mittelstand teaser copy and route mapping in apps/website/src/data_files/site-copy.ts
  • T041 [US3] Add DE navigation links for use cases in apps/website/src/data_files/site-copy.ts
  • T042 [US3] Add EN navigation links for use cases in apps/website/src/data_files/site-copy.ts
  • T043 [US3] Add DE footer links for use cases in apps/website/src/data_files/site-copy.ts
  • T044 [US3] Add EN footer links for use cases in apps/website/src/data_files/site-copy.ts
  • T045 [US3] Ensure localized href handling for new routes in apps/website/src/i18n.ts
  • T046 [US3] Validate no href="#" is introduced in use-case entrypoints by scanning apps/website/src
  • T068 [US3] Decide whether to add a compact platform teaser for use cases and record decision for FR-030 in specs/407-msp-mittelstand-use-case-pages/plan.md
  • T069 [US3] If platform teaser is enabled, add concise MSP/Enterprise links in apps/website/src/components/pages/PlatformPage.astro without duplicating full use-case copy

Checkpoint: User Story 3 is independently functional and demonstrable.


Phase 6: User Story 4 - Buyers See Safe Claim Boundaries (Priority: P2)

Goal: Enforce copy and metadata guardrails so pages remain commercial but do not overclaim.

Independent Test: Source and rendered pages pass forbidden-term scans and metadata/title checks for both use-case routes.

Tests for User Story 4

  • T047 [P] [US4] Add forbidden-claim assertions for use-case routes in apps/website/tests/smoke/public-routes.spec.ts
  • T048 [P] [US4] Extend reusable forbidden-claim patterns if needed in apps/website/tests/smoke/smoke-helpers.ts

Implementation for User Story 4

  • T049 [US4] Add DE metadata title/description strings for MSP and Mittelstand in apps/website/src/data_files/site-copy.ts
  • T050 [US4] Add EN metadata title/description strings for MSP and Mittelstand in apps/website/src/data_files/site-copy.ts
  • T051 [US4] Remove weak/internal phrasing from new copy sections in apps/website/src/data_files/site-copy.ts
  • T052 [US4] Enforce MSP boundary claims in route content at apps/website/src/pages/use-cases/msp.astro
  • T053 [US4] Enforce Mittelstand boundary claims in route content at apps/website/src/pages/use-cases/mittelstand.astro
  • T054 [US4] Run static forbidden-term scans on apps/website/src and apps/website/public
  • T055 [US4] If apps/website/dist is updated, run forbidden-term scans on apps/website/dist
  • T056 [US4] Document any intentional scan hit rationale in specs/407-msp-mittelstand-use-case-pages/plan.md
  • T057 [US4] Confirm no fake proof artifacts were added by reviewing apps/website/public and apps/website/src/images
  • T058 [US4] Confirm Intune remains first strong domain but not full category story in new use-case copy within apps/website/src/data_files/site-copy.ts
  • T070 [US4] Execute a 60-second MSP comprehension check (SC-001) and record pass/fail notes in specs/407-msp-mittelstand-use-case-pages/plan.md
  • T071 [US4] Execute a 60-second Enterprise IT comprehension check (SC-002) and record pass/fail notes in specs/407-msp-mittelstand-use-case-pages/plan.md

Checkpoint: User Story 4 is independently functional and demonstrable.


Phase 7: Polish & Cross-Cutting Concerns

Purpose: Final validation, formatting, build/test execution, and close-out reporting.

  • T059 [P] Run formatting check using scripts in apps/website/package.json via pnpm --filter @tenantatlas/website format:check
  • T060 Run Astro/build validation for routes under apps/website/src/pages via pnpm --filter @tenantatlas/website build
  • T061 Run smoke suite defined in apps/website/playwright.config.ts via pnpm --filter @tenantatlas/website test -- --grep smoke
  • T062 Run route-level smoke in apps/website/tests/smoke/public-routes.spec.ts via pnpm --filter @tenantatlas/website test tests/smoke/public-routes.spec.ts
  • T063 Perform desktop browser smoke for /use-cases/msp and /use-cases/mittelstand in apps/website/tests/smoke/interaction.spec.ts
  • T064 Perform mobile viewport smoke for /use-cases/msp and /use-cases/mittelstand in apps/website/tests/smoke/interaction.spec.ts
  • T065 Confirm changed-file scope excludes apps/platform/** by reviewing specs/407-msp-mittelstand-use-case-pages/tasks.md against git status --short
  • T066 Record command results, route decision, and residual follow-ups in specs/407-msp-mittelstand-use-case-pages/plan.md
  • T067 Record active feature close-out summary in specs/407-msp-mittelstand-use-case-pages/checklists/requirements.md

Dependencies & Execution Order

Phase Dependencies

  • Setup (Phase 1): No dependencies, starts immediately.
  • Foundational (Phase 2): Depends on Setup completion and blocks story work.
  • User Stories (Phases 3-6): Depend on Foundational completion; US1 and US2 can run in parallel, then US3 and US4.
  • Polish (Phase 7): Depends on all selected user stories being complete.

User Story Dependencies

  • US1 (P1): Starts after Phase 2, no dependency on other stories.
  • US2 (P1): Starts after Phase 2, no dependency on other stories.
  • US3 (P2): Depends on US1 and US2 routes existing.
  • US4 (P2): Depends on US1 and US2 content existing; can overlap with late US3 work.

Within Each User Story

  • Tests/tasks defining assertions are created before or alongside implementation and must fail before final pass.
  • Route files and copy schema come before link wiring.
  • Implementation completes before build/smoke validation.

Parallel Opportunities

  • Setup tasks marked [P] can run in parallel.
  • Foundational test-hook and locale-copy tasks marked [P] can run in parallel.
  • US1 and US2 can be developed in parallel once foundational tasks complete.
  • US3 nav and footer link tasks can run in parallel across locales.
  • US4 metadata and forbidden-term scan tasks marked [P] can run in parallel.

Parallel Example: User Story 1

Task: "T014 [US1] Add MSP route title/description assertions in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T015 [US1] Add MSP content-intent assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "T016 [US1] Create MSP route page in apps/website/src/pages/use-cases/msp.astro"
Task: "T017 [US1] Create EN MSP route page in apps/website/src/pages/en/use-cases/msp.astro"

Parallel Example: User Story 2

Task: "T025 [US2] Add Mittelstand route title/description assertions in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T026 [US2] Add Mittelstand content-intent assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "T027 [US2] Create Mittelstand route page in apps/website/src/pages/use-cases/mittelstand.astro"
Task: "T028 [US2] Create EN Mittelstand route page in apps/website/src/pages/en/use-cases/mittelstand.astro"

Parallel Example: User Story 3

Task: "T041 [US3] Add DE navigation links for use cases in apps/website/src/data_files/site-copy.ts"
Task: "T042 [US3] Add EN navigation links for use cases in apps/website/src/data_files/site-copy.ts"
Task: "T043 [US3] Add DE footer links for use cases in apps/website/src/data_files/site-copy.ts"
Task: "T044 [US3] Add EN footer links for use cases in apps/website/src/data_files/site-copy.ts"

Parallel Example: User Story 4

Task: "T047 [US4] Add forbidden-claim assertions for use-case routes in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T048 [US4] Extend reusable forbidden-claim patterns if needed in apps/website/tests/smoke/smoke-helpers.ts"
Task: "T049 [US4] Add DE metadata title/description strings for MSP and Mittelstand in apps/website/src/data_files/site-copy.ts"
Task: "T050 [US4] Add EN metadata title/description strings for MSP and Mittelstand in apps/website/src/data_files/site-copy.ts"

Implementation Strategy

MVP First (US1 Only)

  1. Complete Phase 1 (Setup).
  2. Complete Phase 2 (Foundational).
  3. Complete Phase 3 (US1).
  4. Validate US1 independently with route metadata plus smoke assertions.
  5. Demo/deploy MVP slice if desired.

Incremental Delivery

  1. Finish Setup + Foundational once.
  2. Deliver US1 (MSP page), validate, and ship.
  3. Deliver US2 (Mittelstand page), validate, and ship.
  4. Deliver US3 (discoverability), validate, and ship.
  5. Deliver US4 (claim boundaries), validate, and ship.

Suggested MVP Scope

  • MVP: User Story 1 only (MSP use-case page), because it delivers a complete buyer-facing value slice with independent validation.

Notes

  • [P] tasks touch different files and can run in parallel.
  • [USx] tags map every story-phase task to a specific user story.
  • All file paths target apps/website or specs/407-msp-mittelstand-use-case-pages to preserve scope.
  • No task introduces apps/platform runtime changes or root workspace contract changes.