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

277 lines
16 KiB
Markdown

# 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
- [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 is explicit.
- [x] Shared helpers and fixtures stay cheap by default; any widening is isolated or documented.
- [x] Planned validation commands cover the change without unrelated lane cost.
- [x] Surface test profile is explicit (`Browser`, `public website`).
- [x] 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.
- [x] T001 Confirm active feature branch and clean target scope in `specs/407-msp-mittelstand-use-case-pages/spec.md`
- [x] T002 Verify root workspace contracts in `package.json`
- [x] T003 Verify workspace package contracts in `apps/website/package.json`
- [x] T004 Map current route and locale entrypoints in `apps/website/src/pages/index.astro` and `apps/website/src/pages/en/index.astro`
- [x] T005 [P] Map homepage composition surface in `apps/website/src/components/pages/HomePage.astro`
- [x] 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.
- [x] T007 Decide and document route family in `specs/407-msp-mittelstand-use-case-pages/plan.md` (selected: `/use-cases/...`)
- [x] T008 Add use-case copy schema for DE locale in `apps/website/src/data_files/site-copy.ts`
- [x] T009 [P] Add use-case copy schema for EN locale in `apps/website/src/data_files/site-copy.ts`
- [x] T010 Add nav/footer link slots for use-case discoverability in `apps/website/src/data_files/site-copy.ts`
- [x] T011 [P] Extend route smoke inventory for new pages in `apps/website/tests/smoke/smoke-helpers.ts`
- [x] T012 Add baseline route metadata placeholders for new pages in `apps/website/tests/smoke/public-routes.spec.ts`
- [x] 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
- [x] T014 [P] [US1] Add MSP route title/description assertions in `apps/website/tests/smoke/public-routes.spec.ts`
- [x] T015 [P] [US1] Add MSP content-intent assertions in `apps/website/tests/smoke/interaction.spec.ts`
### Implementation for User Story 1
- [x] T016 [US1] Create MSP route page in `apps/website/src/pages/use-cases/msp.astro`
- [x] T017 [US1] Create EN MSP route page in `apps/website/src/pages/en/use-cases/msp.astro`
- [x] T018 [US1] Implement MSP hero copy and primary CTAs in `apps/website/src/data_files/site-copy.ts`
- [x] T019 [US1] Implement MSP pain section cards in `apps/website/src/data_files/site-copy.ts`
- [x] T020 [US1] Implement MSP outcomes section in `apps/website/src/data_files/site-copy.ts`
- [x] T021 [US1] Implement MSP workflow steps in `apps/website/src/data_files/site-copy.ts`
- [x] T022 [US1] Implement MSP capability cards and PSA boundary copy in `apps/website/src/data_files/site-copy.ts`
- [x] T023 [US1] Implement MSP trust teaser and final CTA with real destinations in `apps/website/src/data_files/site-copy.ts`
- [x] 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
- [x] T025 [P] [US2] Add Mittelstand route title/description assertions in `apps/website/tests/smoke/public-routes.spec.ts`
- [x] T026 [P] [US2] Add Mittelstand content-intent assertions in `apps/website/tests/smoke/interaction.spec.ts`
### Implementation for User Story 2
- [x] T027 [US2] Create Mittelstand route page in `apps/website/src/pages/use-cases/mittelstand.astro`
- [x] T028 [US2] Create EN Mittelstand route page in `apps/website/src/pages/en/use-cases/mittelstand.astro`
- [x] T029 [US2] Implement Mittelstand hero copy and CTAs in `apps/website/src/data_files/site-copy.ts`
- [x] T030 [US2] Implement Mittelstand pain section cards in `apps/website/src/data_files/site-copy.ts`
- [x] T031 [US2] Implement Mittelstand outcomes section in `apps/website/src/data_files/site-copy.ts`
- [x] T032 [US2] Implement stakeholder cards (IT Ops, Security, IT-Leitung, Audit/Datenschutz) in `apps/website/src/data_files/site-copy.ts`
- [x] T033 [US2] Implement Mittelstand workflow steps in `apps/website/src/data_files/site-copy.ts`
- [x] T034 [US2] Implement differentiation and trust teaser copy in `apps/website/src/data_files/site-copy.ts`
- [x] 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
- [x] T036 [P] [US3] Add homepage teaser-link assertions in `apps/website/tests/smoke/interaction.spec.ts`
- [x] 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
- [x] T038 [US3] Add homepage use-case teaser section structure in `apps/website/src/components/pages/HomePage.astro`
- [x] T039 [US3] Add homepage MSP teaser copy and route mapping in `apps/website/src/data_files/site-copy.ts`
- [x] T040 [US3] Add homepage Mittelstand teaser copy and route mapping in `apps/website/src/data_files/site-copy.ts`
- [x] T041 [US3] Add DE navigation links for use cases in `apps/website/src/data_files/site-copy.ts`
- [x] T042 [US3] Add EN navigation links for use cases in `apps/website/src/data_files/site-copy.ts`
- [x] T043 [US3] Add DE footer links for use cases in `apps/website/src/data_files/site-copy.ts`
- [x] T044 [US3] Add EN footer links for use cases in `apps/website/src/data_files/site-copy.ts`
- [x] T045 [US3] Ensure localized href handling for new routes in `apps/website/src/i18n.ts`
- [x] T046 [US3] Validate no `href="#"` is introduced in use-case entrypoints by scanning `apps/website/src`
- [x] 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`
- [x] 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
- [x] T047 [P] [US4] Add forbidden-claim assertions for use-case routes in `apps/website/tests/smoke/public-routes.spec.ts`
- [x] T048 [P] [US4] Extend reusable forbidden-claim patterns if needed in `apps/website/tests/smoke/smoke-helpers.ts`
### Implementation for User Story 4
- [x] T049 [US4] Add DE metadata title/description strings for MSP and Mittelstand in `apps/website/src/data_files/site-copy.ts`
- [x] T050 [US4] Add EN metadata title/description strings for MSP and Mittelstand in `apps/website/src/data_files/site-copy.ts`
- [x] T051 [US4] Remove weak/internal phrasing from new copy sections in `apps/website/src/data_files/site-copy.ts`
- [x] T052 [US4] Enforce MSP boundary claims in route content at `apps/website/src/pages/use-cases/msp.astro`
- [x] T053 [US4] Enforce Mittelstand boundary claims in route content at `apps/website/src/pages/use-cases/mittelstand.astro`
- [x] T054 [US4] Run static forbidden-term scans on `apps/website/src` and `apps/website/public`
- [x] T055 [US4] If `apps/website/dist` is updated, run forbidden-term scans on `apps/website/dist`
- [x] T056 [US4] Document any intentional scan hit rationale in `specs/407-msp-mittelstand-use-case-pages/plan.md`
- [x] T057 [US4] Confirm no fake proof artifacts were added by reviewing `apps/website/public` and `apps/website/src/images`
- [x] 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`
- [x] 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`
- [x] 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.
- [x] T059 [P] Run formatting check using scripts in `apps/website/package.json` via `pnpm --filter @tenantatlas/website format:check`
- [x] T060 Run Astro/build validation for routes under `apps/website/src/pages` via `pnpm --filter @tenantatlas/website build`
- [x] T061 Run smoke suite defined in `apps/website/playwright.config.ts` via `pnpm --filter @tenantatlas/website test -- --grep smoke`
- [x] 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`
- [x] T063 Perform desktop browser smoke for `/use-cases/msp` and `/use-cases/mittelstand` in `apps/website/tests/smoke/interaction.spec.ts`
- [x] T064 Perform mobile viewport smoke for `/use-cases/msp` and `/use-cases/mittelstand` in `apps/website/tests/smoke/interaction.spec.ts`
- [x] T065 Confirm changed-file scope excludes `apps/platform/**` by reviewing `specs/407-msp-mittelstand-use-case-pages/tasks.md` against `git status --short`
- [x] T066 Record command results, route decision, and residual follow-ups in `specs/407-msp-mittelstand-use-case-pages/plan.md`
- [x] 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
```bash
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
```bash
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
```bash
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
```bash
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.