TenantAtlas/specs/410-public-docs-ia/tasks.md
ahmido af5fa30341 410: add public docs information architecture (#412)
Implements website feature branch `410-public-docs-ia`.

Target branch: `website-dev`.

Validation:
- `corepack pnpm --filter @tenantatlas/website build`
- Playwright smoke coverage for public routes and docs interactions
- Static claim scans for `apps/website/src`, `apps/website/public`, and `apps/website/dist`

Follow-up integration path after merge:

`website-dev` -> `dev`.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #412
2026-05-31 21:11:07 +00:00

20 KiB

Tasks: Public Docs & Knowledge Base IA

Input: Design documents from /specs/410-public-docs-ia/
Prerequisites: plan.md (required), spec.md (required), research.md, data-model.md, quickstart.md, contracts/public-docs-routes.openapi.yaml

Tests: Runtime behavior changes are in scope for apps/website, so browser smoke, route and metadata assertions, legacy-route continuity checks, 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/410-public-docs-ia/plan.md.

Phase 1: Setup (Shared Infrastructure)

Purpose: Confirm repo contracts, current Starlight ownership, and the exact public surfaces that the docs IA may touch.

  • T001 Confirm active feature scope, user stories, docs route family, and legacy URL continuity decisions in specs/410-public-docs-ia/spec.md and specs/410-public-docs-ia/plan.md
  • T002 Verify root workspace contracts remain unchanged in package.json and pnpm-workspace.yaml
  • T003 Verify website validation scripts and docs stack packages in apps/website/package.json and apps/website/astro.config.mjs
  • T004 Map current docs collection, starter docs files, Starlight ownership, and existing metadata/canonical handling in apps/website/src/content.config.ts, apps/website/src/content/docs/, apps/website/astro.config.mjs, and apps/website/src/pages/
  • T005 [P] Map global docs entry-point ownership in apps/website/src/data_files/site-copy.ts, apps/website/src/components/sections/navbar&footer/Navbar.astro, apps/website/src/components/sections/navbar&footer/FooterSection.astro, and apps/website/src/i18n.ts
  • T006 [P] Map current docs smoke coverage, legacy docs routes, and discovery assertions in apps/website/tests/smoke/smoke-helpers.ts, apps/website/tests/smoke/public-routes.spec.ts, and apps/website/tests/smoke/interaction.spec.ts

Phase 2: Foundational (Blocking Prerequisites)

Purpose: Establish the shared docs base route, route inventory, and content skeleton that every story depends on.

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

  • T007 Move the Starlight docs base route to /docs and replace starter sidebar autogeneration with the explicit topic IA in apps/website/astro.config.mjs
  • T008 Create the localized docs landing and child-page scaffolds in apps/website/src/content/docs/index.mdx, apps/website/src/content/docs/getting-started.mdx, apps/website/src/content/docs/microsoft-365-provider.mdx, apps/website/src/content/docs/permissions-data-access.mdx, apps/website/src/content/docs/data-processing-trust.mdx, apps/website/src/content/docs/policy-evidence.mdx, apps/website/src/content/docs/drift-detection.mdx, apps/website/src/content/docs/backups-versioning-recovery.mdx, apps/website/src/content/docs/findings-exceptions-accepted-risk.mdx, apps/website/src/content/docs/review-packs-decisions.mdx, apps/website/src/content/docs/evaluation-pilot.mdx, apps/website/src/content/docs/known-limitations.mdx, apps/website/src/content/docs/faq.mdx, and matching files under apps/website/src/content/docs/en/
  • T009 Add baseline docs route inventory, docs-route metadata hooks, canonical-metadata reuse coverage, and localized docs coverage in apps/website/tests/smoke/smoke-helpers.ts and apps/website/tests/smoke/public-routes.spec.ts
  • T010 Configure legacy docs URL continuity for /welcome-to-docs/, /guides/*, and /platform/evidence-review/ in apps/website/astro.config.mjs
  • T011 Confirm the planned docs route matrix, child-page shape, and legacy alias mapping remain aligned between specs/410-public-docs-ia/plan.md and specs/410-public-docs-ia/contracts/public-docs-routes.openapi.yaml

Checkpoint: Foundation is ready for story implementation.


Phase 3: User Story 1 - Evaluators Find A Coherent Docs Hub (Priority: P1) 🎯 MVP

Goal: Deliver the core docs landing experience and the first entry page so evaluators can understand the IA and begin with the right concepts.

Independent Test: Open /docs/, /en/docs/, /docs/getting-started/, and /en/docs/getting-started/, then confirm the hero, category structure, category links, and getting-started content make the docs understandable without any other page first.

Tests for User Story 1

  • T012 [P] [US1] Add route title and description assertions for /docs/, /en/docs/, /docs/getting-started/, and /en/docs/getting-started/ in apps/website/tests/smoke/public-routes.spec.ts
  • T013 [P] [US1] Add docs landing IA, category-card, related-link, and getting-started readability assertions in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 1

  • T014 [US1] Author the localized docs landing page content, category summaries, and related public handoffs in apps/website/src/content/docs/index.mdx and apps/website/src/content/docs/en/index.mdx
  • T015 [US1] Author the localized getting-started page content in apps/website/src/content/docs/getting-started.mdx and apps/website/src/content/docs/en/getting-started.mdx
  • T016 [US1] Keep the sidebar labels and docs-home category ordering aligned with the landing-page IA in apps/website/astro.config.mjs, apps/website/src/content/docs/index.mdx, and apps/website/src/content/docs/en/index.mdx

Checkpoint: User Story 1 is independently functional and demonstrable.


Phase 4: User Story 2 - Security, Datenschutz, And Procurement Reviewers Get Bounded Answers (Priority: P1)

Goal: Explain permissions, data processing, trust context, review-pack framing, evaluation readiness, limitations, and FAQ boundaries without fake legal or product claims.

Independent Test: Open the reviewer-oriented docs pages and confirm they answer security, Datenschutz, procurement, and trust-readiness questions without overclaiming permissions, compliance, hosting, downloads, or automation.

Tests for User Story 2

  • T017 [P] [US2] Add route title and description assertions for /docs/permissions-data-access/, /docs/data-processing-trust/, /docs/review-packs-decisions/, /docs/evaluation-pilot/, /docs/known-limitations/, /docs/faq/, and English counterparts in apps/website/tests/smoke/public-routes.spec.ts
  • T018 [P] [US2] Add permissions, trust, evaluation, limitations, and FAQ content assertions in apps/website/tests/smoke/interaction.spec.ts
  • T019 [P] [US2] Extend forbidden-claim and real-related-link coverage for reviewer docs pages in apps/website/tests/smoke/smoke-helpers.ts

Implementation for User Story 2

  • T020 [P] [US2] Author the localized permissions and data-processing pages in apps/website/src/content/docs/permissions-data-access.mdx, apps/website/src/content/docs/data-processing-trust.mdx, apps/website/src/content/docs/en/permissions-data-access.mdx, and apps/website/src/content/docs/en/data-processing-trust.mdx
  • T021 [P] [US2] Author the localized review-packs and evaluation-pilot pages in apps/website/src/content/docs/review-packs-decisions.mdx, apps/website/src/content/docs/evaluation-pilot.mdx, apps/website/src/content/docs/en/review-packs-decisions.mdx, and apps/website/src/content/docs/en/evaluation-pilot.mdx
  • T022 [P] [US2] Author the localized known-limitations and FAQ pages in apps/website/src/content/docs/known-limitations.mdx, apps/website/src/content/docs/faq.mdx, apps/website/src/content/docs/en/known-limitations.mdx, and apps/website/src/content/docs/en/faq.mdx

Checkpoint: User Story 2 is independently functional and demonstrable.


Phase 5: User Story 3 - Technical Buyers Understand Provider, Evidence, Drift, And Recovery Concepts (Priority: P2)

Goal: Explain provider connection, evidence, drift, recovery context, and findings concepts in public language without leaking internal architecture or unsupported automation claims.

Independent Test: Open the technical concept pages and verify they explain practical meaning, boundaries, and related links for provider access, evidence, drift, findings, and recovery without publishing an unverified permission matrix or one-click restore promise.

Tests for User Story 3

  • T023 [P] [US3] Add route title and description assertions for /docs/microsoft-365-provider/, /docs/policy-evidence/, /docs/drift-detection/, /docs/backups-versioning-recovery/, /docs/findings-exceptions-accepted-risk/, and English counterparts in apps/website/tests/smoke/public-routes.spec.ts
  • T024 [P] [US3] Add provider, evidence, drift, findings, and recovery content assertions in apps/website/tests/smoke/interaction.spec.ts
  • T025 [P] [US3] Extend provider-boundary, automation-overclaim, and recovery-boundary coverage for technical docs pages in apps/website/tests/smoke/smoke-helpers.ts

Implementation for User Story 3

  • T026 [P] [US3] Author the localized provider and policy-evidence pages in apps/website/src/content/docs/microsoft-365-provider.mdx, apps/website/src/content/docs/policy-evidence.mdx, apps/website/src/content/docs/en/microsoft-365-provider.mdx, and apps/website/src/content/docs/en/policy-evidence.mdx
  • T027 [P] [US3] Author the localized drift and recovery pages in apps/website/src/content/docs/drift-detection.mdx, apps/website/src/content/docs/backups-versioning-recovery.mdx, apps/website/src/content/docs/en/drift-detection.mdx, and apps/website/src/content/docs/en/backups-versioning-recovery.mdx
  • T028 [P] [US3] Author the localized findings and accepted-risk page in apps/website/src/content/docs/findings-exceptions-accepted-risk.mdx and apps/website/src/content/docs/en/findings-exceptions-accepted-risk.mdx

Checkpoint: User Story 3 is independently functional and demonstrable.


Phase 6: User Story 4 - Visitors Reach Docs Through Real Information Architecture (Priority: P2)

Goal: Make the new docs IA discoverable through the current public website without broken links, placeholder links, or silent regressions in the previous starter docs URLs.

Independent Test: Reach /docs/ and selected child pages from nav, footer, homepage, platform, trust, evaluation, and any shipped review-packs or use-case crosslinks, then confirm the legacy starter docs URLs resolve intentionally.

Tests for User Story 4

  • T029 [P] [US4] Extend localized docs route inventory and legacy docs URL coverage in apps/website/tests/smoke/smoke-helpers.ts
  • T030 [P] [US4] Add nav, footer, homepage, platform, trust, evaluation, and legacy starter-route docs assertions in apps/website/tests/smoke/public-routes.spec.ts
  • T031 [P] [US4] Add mobile navigation, keyboard reachability, click-through, and docs-entry readability assertions in apps/website/tests/smoke/interaction.spec.ts

Implementation for User Story 4

  • T032 [US4] Retarget the global docs entry points from /welcome-to-docs/ to /docs/ in apps/website/src/data_files/site-copy.ts, apps/website/src/components/sections/navbar&footer/Navbar.astro, and apps/website/src/components/sections/navbar&footer/FooterSection.astro
  • T033 [US4] Add homepage, platform, trust, and evaluation docs discovery content in apps/website/src/data_files/site-copy.ts, apps/website/src/components/pages/HomePage.astro, apps/website/src/components/pages/PlatformPage.astro, apps/website/src/components/pages/TrustPage.astro, and apps/website/src/components/pages/EvaluationPage.astro
  • T034 [US4] Add review-packs and use-case docs discovery content only when the destination route exists and the page can reuse an existing teaser or card slot without adding a new section or displacing its primary CTA in apps/website/src/data_files/site-copy.ts, apps/website/src/components/pages/ReviewPacksPage.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] Reconcile the shipped discovery surfaces, final docs route matrix, and legacy alias mappings between specs/410-public-docs-ia/plan.md and specs/410-public-docs-ia/contracts/public-docs-routes.openapi.yaml

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.

  • T036 [P] Run static forbidden-term scans on apps/website/src and apps/website/public using the command set in specs/410-public-docs-ia/plan.md
  • T037 [P] If apps/website/dist is regenerated, run static forbidden-term scans on apps/website/dist using the command set in specs/410-public-docs-ia/plan.md
  • T038 Run build validation via corepack pnpm --filter @tenantatlas/website build using apps/website/package.json
  • T039 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
  • T040 Run interaction smoke via corepack pnpm --filter @tenantatlas/website test tests/smoke/interaction.spec.ts for apps/website/tests/smoke/interaction.spec.ts
  • T041 Perform desktop and mobile docs IA smoke checks for /docs/, /en/docs/, selected child pages, nav/footer links, contextual crosslinks, and legacy starter routes, then record SC-001 through SC-006 proof notes in specs/410-public-docs-ia/plan.md
  • T042 Record validation commands, the final docs route matrix, whether the implementation shipped child pages or a section-only fallback, canonical-metadata reuse status, static scan outcomes, shipped discovery surfaces, legacy alias behavior, Smoke Coverage close-out, and apps/platform/** scope confirmation in specs/410-public-docs-ia/plan.md and specs/410-public-docs-ia/checklists/requirements.md
  • T043 Run quickstart validation against specs/410-public-docs-ia/quickstart.md and record any documentation drift in specs/410-public-docs-ia/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 docs route, sidebar, and content scaffold exist.
  • US3 (P2): Starts after Phase 2; can overlap with US2 because the technical concept pages live in separate MDX files.
  • US4 (P2): Depends on the docs routes and at least one implemented docs landing/topic surface from US1-US3.

Within Each User Story

  • Smoke assertions should be added before or alongside implementation and must fail before final pass.
  • Shared route migration and sidebar ordering complete before full page authoring begins.
  • Content authoring completes before discovery-link rollout and final build/smoke validation.

Parallel Opportunities

  • Setup tasks marked [P] can run in parallel.
  • US2 and US3 content-authoring tasks marked [P] can run in parallel after the foundational route move is complete.
  • Phase 7 scan and validation tasks marked [P] can be split once implementation is frozen.

Parallel Example: User Story 1

Task: "Add route title and description assertions for the docs landing and getting-started routes in apps/website/tests/smoke/public-routes.spec.ts"
Task: "Add docs landing IA, category-card, related-link, and getting-started readability assertions in apps/website/tests/smoke/interaction.spec.ts"

Parallel Example: User Story 2

Task: "Add route title and description assertions for the reviewer docs pages in apps/website/tests/smoke/public-routes.spec.ts"
Task: "Add permissions, trust, evaluation, limitations, and FAQ content assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "Extend forbidden-claim and real-related-link coverage for reviewer docs pages in apps/website/tests/smoke/smoke-helpers.ts"
Task: "Author the localized permissions and data-processing pages in apps/website/src/content/docs/*.mdx and apps/website/src/content/docs/en/*.mdx"
Task: "Author the localized review-packs and evaluation-pilot pages in apps/website/src/content/docs/*.mdx and apps/website/src/content/docs/en/*.mdx"
Task: "Author the localized known-limitations and FAQ pages in apps/website/src/content/docs/*.mdx and apps/website/src/content/docs/en/*.mdx"

Parallel Example: User Story 3

Task: "Add route title and description assertions for the technical concept docs pages in apps/website/tests/smoke/public-routes.spec.ts"
Task: "Add provider, evidence, drift, findings, and recovery content assertions in apps/website/tests/smoke/interaction.spec.ts"
Task: "Extend provider-boundary, automation-overclaim, and recovery-boundary coverage for technical docs pages in apps/website/tests/smoke/smoke-helpers.ts"
Task: "Author the localized provider and policy-evidence pages in apps/website/src/content/docs/*.mdx and apps/website/src/content/docs/en/*.mdx"
Task: "Author the localized drift and recovery pages in apps/website/src/content/docs/*.mdx and apps/website/src/content/docs/en/*.mdx"
Task: "Author the localized findings and accepted-risk page in apps/website/src/content/docs/findings-exceptions-accepted-risk.mdx and apps/website/src/content/docs/en/findings-exceptions-accepted-risk.mdx"

Parallel Example: User Story 4

Task: "Extend localized docs route inventory and legacy docs URL coverage in apps/website/tests/smoke/smoke-helpers.ts"
Task: "Add nav, footer, homepage, platform, trust, evaluation, and legacy starter-route docs assertions in apps/website/tests/smoke/public-routes.spec.ts"
Task: "Add mobile navigation, keyboard reachability, click-through, and docs-entry readability assertions 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, interaction smoke, and static claim scans.
  6. Demo or ship the first evaluator- and reviewer-facing docs 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 the technical concept pages.
  4. Add US4 and validate discovery plus legacy-route continuity.
  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 docs landing and getting-started
    • Implementer B: US2 reviewer and trust-oriented pages
    • Implementer C: US3 technical concept pages
  3. Fold US4 discoverability and IA integration in after the docs route family is stable.
  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 route family once the core docs IA is stable.