TenantAtlas/specs/409-evaluation-procurement-rollout/tasks.md
ahmido 2e6504618c 409: add evaluation, procurement and rollout website surface (#408)
## Summary
- add the localized evaluation-readiness route pair at `/evaluierung` and `/en/evaluation` with a shared page component
- wire homepage, platform, trust, review-pack, use-case, footer, and locale-switcher discovery paths into the new evaluation surface
- add smoke coverage plus full Spec Kit artifacts for the evaluation, procurement, and rollout readiness feature

## Validation
- `corepack pnpm --filter @tenantatlas/website build`
- `WEBSITE_PORT=4322 corepack pnpm --filter @tenantatlas/website test tests/smoke/public-routes.spec.ts`
- `WEBSITE_PORT=4323 corepack pnpm --filter @tenantatlas/website test tests/smoke/interaction.spec.ts`

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #408
2026-05-30 18:09:16 +00:00

16 KiB

Tasks: Evaluation, Procurement & Rollout Readiness Website Surface

Input: Design documents from /specs/409-evaluation-procurement-rollout/
Prerequisites: plan.md (required), spec.md (required), research.md, data-model.md, quickstart.md, contracts/evaluation-readiness-routes.openapi.yaml

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

Test Governance Checklist

  • Lane assignment: Browser in browser, confidence remains the narrowest sufficient proof for this feature.
  • New or changed tests stay inside the existing public-website smoke family in apps/website/tests/smoke/.
  • Shared helpers and fixtures stay cheap by default; no new heavy helpers, factories, or setup layers are introduced.
  • Planned validation commands remain limited to build, public-routes.spec.ts, and interaction.spec.ts from apps/website/package.json.
  • Surface test profile stays public website, with document-in-feature as the escalation path recorded in specs/409-evaluation-procurement-rollout/plan.md.

Phase 1: Setup (Shared Infrastructure)

Purpose: Confirm repo contracts, current website conventions, and the exact public surfaces that the feature may touch.

  • T001 Confirm active feature scope, user stories, and selected route family in specs/409-evaluation-procurement-rollout/spec.md and specs/409-evaluation-procurement-rollout/plan.md
  • T002 Verify root workspace contracts remain unchanged in package.json and pnpm-workspace.yaml
  • T003 Verify website validation scripts and package contract in apps/website/package.json
  • T004 Map localized routing, canonical-path handling, and real CTA target rules in apps/website/src/i18n.ts, apps/website/src/pages/contact.astro, and apps/website/src/pages/en/contact.astro
  • T005 [P] Map current homepage, platform, trust, review-pack, and footer discovery surfaces in apps/website/src/components/pages/HomePage.astro, apps/website/src/components/pages/PlatformPage.astro, apps/website/src/components/pages/TrustPage.astro, apps/website/src/components/pages/ReviewPacksPage.astro, and apps/website/src/data_files/site-copy.ts
  • T006 [P] Map current use-case entry points and smoke helpers in apps/website/src/pages/use-cases/msp.astro, apps/website/src/pages/use-cases/mittelstand.astro, apps/website/src/pages/en/use-cases/msp.astro, apps/website/src/pages/en/use-cases/mittelstand.astro, apps/website/tests/smoke/public-routes.spec.ts, and apps/website/tests/smoke/smoke-helpers.ts

Phase 2: Foundational (Blocking Prerequisites)

Purpose: Establish the shared route, page scaffold, copy schema, and smoke hooks that every user story depends on.

Critical: No user story work should begin before this phase is complete.

  • T007 Create thin localized route shells in apps/website/src/pages/evaluierung.astro and apps/website/src/pages/en/evaluation.astro
  • T008 Create the shared evaluation page scaffold in apps/website/src/components/pages/EvaluationPage.astro
  • T009 Add localized evaluation copy schema, metadata, and CTA containers in apps/website/src/data_files/site-copy.ts
  • T010 Extend evaluation route inventory and public-claim helper coverage in apps/website/tests/smoke/smoke-helpers.ts
  • T011 Add baseline title and description assertions for /evaluierung and /en/evaluation in apps/website/tests/smoke/public-routes.spec.ts
  • T012 Keep the final route family and CTA-target contract aligned between specs/409-evaluation-procurement-rollout/plan.md and specs/409-evaluation-procurement-rollout/contracts/evaluation-readiness-routes.openapi.yaml

Checkpoint: Foundation is ready for story implementation.


Phase 3: User Story 1 - Buyers Understand The Evaluation Path (Priority: P1) 🎯 MVP

Goal: Deliver the core page framing so buyers understand the evaluation sequence from first walkthrough to focused pilot and next-step decision.

Independent Test: Open /evaluierung and /en/evaluation, then confirm the hero, evaluation-path section, example timeline, and CTA language explain a structured demo-to-pilot journey without implying instant self-service onboarding.

Tests for User Story 1

  • T013 [P] [US1] Add route title and description assertions for /evaluierung and /en/evaluation in apps/website/tests/smoke/public-routes.spec.ts
  • T014 [P] [US1] Add hero, evaluation-path, example-timeline, and CTA-boundary assertions in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 1

  • T015 [US1] Implement hero, evaluation-path steps, example timeline, and primary/final CTA copy in apps/website/src/data_files/site-copy.ts
  • T016 [US1] Render hero, evaluation-path, example timeline, and final CTA sections in apps/website/src/components/pages/EvaluationPage.astro
  • T017 [US1] Wire localized metadata and shared page props in apps/website/src/pages/evaluierung.astro and apps/website/src/pages/en/evaluation.astro

Checkpoint: User Story 1 is independently functional and demonstrable.


Phase 4: User Story 2 - Security And Procurement Stakeholders Know What To Prepare (Priority: P1)

Goal: Explain preparation needs, stakeholder involvement, security/privacy review, procurement questions, and buyer FAQ boundaries without fake legal or document promises.

Independent Test: Open the evaluation page and confirm the preparation, stakeholder, security/procurement, and FAQ sections identify who should be involved, what must be reviewed, and what is intentionally not overclaimed.

Tests for User Story 2

  • T018 [P] [US2] Add preparation, stakeholder, security/procurement, and FAQ assertions in apps/website/tests/smoke/interaction.spec.ts
  • T019 [P] [US2] Extend forbidden-claim and real trust/contact-target coverage for evaluation routes in apps/website/tests/smoke/smoke-helpers.ts

Implementation for User Story 2

  • T020 [US2] Implement preparation cards, stakeholder cards, security/procurement checklist items, and buyer FAQ copy in apps/website/src/data_files/site-copy.ts
  • T021 [US2] Render preparation, stakeholder, security/procurement, and FAQ sections in apps/website/src/components/pages/EvaluationPage.astro
  • T022 [US2] Keep trust and security-request CTA targets aligned between apps/website/src/data_files/site-copy.ts and specs/409-evaluation-procurement-rollout/contracts/evaluation-readiness-routes.openapi.yaml

Checkpoint: User Story 2 is independently functional and demonstrable.


Phase 5: User Story 3 - Technical Owners Understand Pilot Scope And Access Boundaries (Priority: P2)

Goal: Show what a realistic pilot can cover, how Microsoft 365 access is framed, and what the first evaluation explicitly does not require.

Independent Test: Open the evaluation page and verify the pilot-scenario, Microsoft 365 access, non-requirements, and related FAQ content explain scope-dependent access and controlled rollout without publishing an unverified permission matrix.

Tests for User Story 3

  • T023 [P] [US3] Add pilot-scenario, Microsoft 365 access, and non-requirement assertions in apps/website/tests/smoke/interaction.spec.ts
  • T024 [P] [US3] Add cautious access-language and rollout-boundary assertions for evaluation routes in apps/website/tests/smoke/public-routes.spec.ts
  • T025 [P] [US3] Extend banned permission-matrix and automation-overclaim coverage for evaluation routes in apps/website/tests/smoke/smoke-helpers.ts

Implementation for User Story 3

  • T026 [US3] Implement pilot scenario, Microsoft 365 access-principle, non-requirement, and access-adjacent FAQ copy in apps/website/src/data_files/site-copy.ts
  • T027 [US3] Render pilot-scenario, Microsoft 365 access, and non-requirement sections in apps/website/src/components/pages/EvaluationPage.astro
  • T028 [US3] Keep access-boundary wording aligned between apps/website/src/data_files/site-copy.ts and specs/409-evaluation-procurement-rollout/contracts/evaluation-readiness-routes.openapi.yaml

Checkpoint: User Story 3 is independently functional and demonstrable.


Phase 6: User Story 4 - Visitors Discover The Page Through Real IA Entry Points (Priority: P2)

Goal: Make the evaluation page reachable from current public-site entry points without broken links, placeholders, or a heavy IA rewrite.

Independent Test: Reach the page from the homepage, platform, review-pack, trust, use-case, and footer entry points that are implemented, then confirm the route stays readable on desktop and mobile.

Tests for User Story 4

  • T029 [P] [US4] Extend localized evaluation route inventory and allowed-discovery-link coverage in apps/website/tests/smoke/smoke-helpers.ts
  • T030 [P] [US4] Add discovery-link and placeholder-link assertions for evaluation entry points in apps/website/tests/smoke/public-routes.spec.ts
  • T031 [P] [US4] Add click-through and mobile-readability assertions for evaluation entry points in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 4

  • T032 [US4] Add homepage teaser copy and localized route mapping in apps/website/src/data_files/site-copy.ts and apps/website/src/components/pages/HomePage.astro
  • T033 [US4] Add compact platform and review-pack crosslinks in apps/website/src/data_files/site-copy.ts, apps/website/src/components/pages/PlatformPage.astro, and apps/website/src/components/pages/ReviewPacksPage.astro
  • T034 [US4] Add trust and use-case crosslinks in apps/website/src/data_files/site-copy.ts, apps/website/src/components/pages/TrustPage.astro, apps/website/src/pages/use-cases/msp.astro, apps/website/src/pages/use-cases/mittelstand.astro, apps/website/src/pages/en/use-cases/msp.astro, and apps/website/src/pages/en/use-cases/mittelstand.astro
  • T035 [US4] Add localized footer discovery links without a main-nav refactor in apps/website/src/data_files/site-copy.ts
  • T036 [US4] Record any intentionally omitted discovery surface and the final IA decision in specs/409-evaluation-procurement-rollout/plan.md

Checkpoint: User Story 4 is independently functional and demonstrable.


Phase 7: Polish & Cross-Cutting Concerns

Purpose: Run the required validation, record proof, and close out claim-boundary and scope checks.

  • T037 [P] Run formatting check via corepack pnpm --filter @tenantatlas/website format:check using apps/website/package.json
  • T038 Run static forbidden-term scans on apps/website/src and apps/website/public using the command set in specs/409-evaluation-procurement-rollout/plan.md
  • T039 [P] If apps/website/dist is regenerated, run static forbidden-term scans on apps/website/dist using the command set in specs/409-evaluation-procurement-rollout/plan.md
  • T040 Run build validation via corepack pnpm --filter @tenantatlas/website build using apps/website/package.json
  • T041 Run route smoke via corepack pnpm --filter @tenantatlas/website test tests/smoke/public-routes.spec.ts for apps/website/tests/smoke/public-routes.spec.ts
  • T042 Run interaction smoke via corepack pnpm --filter @tenantatlas/website test tests/smoke/interaction.spec.ts for apps/website/tests/smoke/interaction.spec.ts
  • T043 Perform timed comprehension checks on desktop/mobile for buyer (60 seconds), security/procurement (90 seconds), and technical-owner (60 seconds) reviewers on /evaluierung and /en/evaluation, then record pass/fail notes for SC-001 through SC-006 in specs/409-evaluation-procurement-rollout/plan.md
  • T044 Record validation commands, scan outcomes, Smoke Coverage close-out, omitted surfaces, and apps/platform/** scope confirmation in specs/409-evaluation-procurement-rollout/plan.md and specs/409-evaluation-procurement-rollout/checklists/requirements.md
  • T045 Run quickstart validation against specs/409-evaluation-procurement-rollout/quickstart.md and record any documentation drift in specs/409-evaluation-procurement-rollout/plan.md

Dependencies & Execution Order

Phase Dependencies

  • Setup (Phase 1): No dependencies; starts immediately.
  • Foundational (Phase 2): Depends on Setup completion and blocks all story work.
  • User Stories (Phases 3-6): Depend on Foundational completion.
  • 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; can overlap with US1 once the shared page scaffold exists.
  • US3 (P2): Depends on the core route and section structure from US1; can overlap late US2 copy work.
  • US4 (P2): Depends on the evaluation routes existing and at least one implemented discovery surface from US1-US3.

Within Each User Story

  • Route and smoke assertions should be added before or alongside implementation and must fail before final pass.
  • Shared page structure comes before route wiring and discovery-link integration.
  • Copy and section rendering complete before build and browser validation.

Parallel Opportunities

  • Setup tasks marked [P] can run in parallel.
  • Foundational smoke-hook work can run in parallel with shared page scaffolding after route selection is fixed.
  • US1 and US2 can proceed in parallel after Phase 2 if file ownership is coordinated.
  • US4 homepage, platform, trust, review-pack, and use-case discoverability tasks can be split across implementers once route copy is stable.
  • Phase 7 scan, build, and smoke tasks can be split once implementation is frozen.

Parallel Example: User Story 1

Task: "T013 [US1] Add route title and description assertions for /evaluierung and /en/evaluation in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T014 [US1] Add hero, evaluation-path, example-timeline, and CTA-boundary assertions in apps/website/tests/smoke/interaction.spec.ts"

Parallel Example: User Story 2

Task: "T018 [US2] Add preparation, stakeholder, security/procurement, and FAQ assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "T019 [US2] Extend forbidden-claim and real trust/contact-target coverage for evaluation routes in apps/website/tests/smoke/smoke-helpers.ts"

Parallel Example: User Story 3

Task: "T023 [US3] Add pilot-scenario, Microsoft 365 access, and non-requirement assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "T024 [US3] Add cautious access-language and rollout-boundary assertions for evaluation routes in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T025 [US3] Extend banned permission-matrix and automation-overclaim coverage for evaluation routes in apps/website/tests/smoke/smoke-helpers.ts"

Parallel Example: User Story 4

Task: "T029 [US4] Extend localized evaluation route inventory and allowed-discovery-link coverage in apps/website/tests/smoke/smoke-helpers.ts"
Task: "T030 [US4] Add discovery-link and placeholder-link assertions for evaluation entry points in apps/website/tests/smoke/public-routes.spec.ts"
Task: "T031 [US4] Add click-through and mobile-readability assertions for evaluation entry points in apps/website/tests/smoke/interaction.spec.ts"

Implementation Strategy

MVP First (P1 Slice: User Stories 1 and 2)

  1. Complete Phase 1 (Setup).
  2. Complete Phase 2 (Foundational).
  3. Complete Phase 3 (US1).
  4. Complete Phase 4 (US2).
  5. Validate the P1 slice independently with route metadata and browser smoke.
  6. Demo or ship the first buyer-facing slice.

Incremental Delivery

  1. Finish Setup plus Foundational once.
  2. Deliver US1 and US2 as the P1 slice, then validate them independently.
  3. Add US3 and validate technical-readiness framing.
  4. Add US4 and validate discovery plus mobile readability.
  5. Finish Phase 7 proof and close-out notes.

Parallel Team Strategy

  1. One implementer completes Setup plus Foundational.
  2. After Phase 2:
    • Implementer A: US1 core route story
    • Implementer B: US2 security/procurement and stakeholder story
    • Implementer C: US4 discoverability surfaces
  3. Fold US3 technical-readiness framing in after the shared route story stabilizes.
  4. Run Phase 7 validation together before merge.

Notes

  • [P] tasks touch different files or can be completed without waiting on another incomplete task in the same phase.
  • [US1] to [US4] labels map directly to the user stories in spec.md for traceability.
  • MVP scope is the P1 slice: User Stories 1 and 2. User Stories 3 and 4 layer on the same shared page once the core route story is stable.