# 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. - [X] 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` - [X] T002 Verify root workspace contracts remain unchanged in `package.json` and `pnpm-workspace.yaml` - [X] T003 Verify website validation scripts and package contract in `apps/website/package.json` - [X] 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` - [X] 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` - [X] 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. - [X] T007 Create thin localized route shells in `apps/website/src/pages/evaluierung.astro` and `apps/website/src/pages/en/evaluation.astro` - [X] T008 Create the shared evaluation page scaffold in `apps/website/src/components/pages/EvaluationPage.astro` - [X] T009 Add localized `evaluation` copy schema, metadata, and CTA containers in `apps/website/src/data_files/site-copy.ts` - [X] T010 Extend evaluation route inventory and public-claim helper coverage in `apps/website/tests/smoke/smoke-helpers.ts` - [X] T011 Add baseline title and description assertions for `/evaluierung` and `/en/evaluation` in `apps/website/tests/smoke/public-routes.spec.ts` - [X] 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 - [X] T013 [P] [US1] Add route title and description assertions for `/evaluierung` and `/en/evaluation` in `apps/website/tests/smoke/public-routes.spec.ts` - [X] 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 - [X] T015 [US1] Implement hero, evaluation-path steps, example timeline, and primary/final CTA copy in `apps/website/src/data_files/site-copy.ts` - [X] T016 [US1] Render hero, evaluation-path, example timeline, and final CTA sections in `apps/website/src/components/pages/EvaluationPage.astro` - [X] 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 - [X] T018 [P] [US2] Add preparation, stakeholder, security/procurement, and FAQ assertions in `apps/website/tests/smoke/interaction.spec.ts` - [X] 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 - [X] T020 [US2] Implement preparation cards, stakeholder cards, security/procurement checklist items, and buyer FAQ copy in `apps/website/src/data_files/site-copy.ts` - [X] T021 [US2] Render preparation, stakeholder, security/procurement, and FAQ sections in `apps/website/src/components/pages/EvaluationPage.astro` - [X] 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 - [X] T023 [P] [US3] Add pilot-scenario, Microsoft 365 access, and non-requirement assertions in `apps/website/tests/smoke/interaction.spec.ts` - [X] T024 [P] [US3] Add cautious access-language and rollout-boundary assertions for evaluation routes in `apps/website/tests/smoke/public-routes.spec.ts` - [X] 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 - [X] 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` - [X] T027 [US3] Render pilot-scenario, Microsoft 365 access, and non-requirement sections in `apps/website/src/components/pages/EvaluationPage.astro` - [X] 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 - [X] T029 [P] [US4] Extend localized evaluation route inventory and allowed-discovery-link coverage in `apps/website/tests/smoke/smoke-helpers.ts` - [X] T030 [P] [US4] Add discovery-link and placeholder-link assertions for evaluation entry points in `apps/website/tests/smoke/public-routes.spec.ts` - [X] 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 - [X] 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` - [X] 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` - [X] 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` - [X] T035 [US4] Add localized footer discovery links without a main-nav refactor in `apps/website/src/data_files/site-copy.ts` - [X] 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. - [X] T037 [P] Run formatting check via `corepack pnpm --filter @tenantatlas/website format:check` using `apps/website/package.json` - [X] 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` - [X] 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` - [X] T040 Run build validation via `corepack pnpm --filter @tenantatlas/website build` using `apps/website/package.json` - [X] 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` - [X] T042 Run interaction smoke via `corepack pnpm --filter @tenantatlas/website test tests/smoke/interaction.spec.ts` for `apps/website/tests/smoke/interaction.spec.ts` - [X] 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` - [X] 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` - [X] 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 ```bash 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 ```bash 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 ```bash 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 ```bash 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.