TenantAtlas/specs/401-tenantial-platform-page/tasks.md
ahmido 2000c17f33 feat: transition website product page to platform (#391)
## Summary
- rename the website product page to `/platform`
- add a redirect from `/product` to `/platform` and update navigation/content links
- refresh footer/layout metadata and align smoke tests with the new route
- add spec artifacts for 401-tenantial-platform-page

## Testing
- not run in this step

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

256 lines
22 KiB
Markdown

# Tasks: Tenantial Platform Page
**Input**: Design documents from `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/`
**Prerequisites**: `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/plan.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/spec.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/research.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/data-model.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/contracts/public-routes.openapi.yaml`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/quickstart.md`
**Tests**: Required. Spec 401 changes the public website runtime route and test surface; use focused Playwright smoke coverage in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke`.
**Scope Boundary**: Work is limited to `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website` plus this spec directory. Do not modify `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform`.
**Constitution Gate**: Finalization includes the repository-wide targeted Pest and Pint close-out commands documented in `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/plan.md` without treating Laravel behavior as the feature proof.
## Phase 1: Setup (Shared Infrastructure)
**Purpose**: Confirm website-only implementation boundaries and the existing route/content patterns before changing code.
- [X] T001 Review existing public page patterns in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/product.astro`, `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/product.ts`, `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/lib/site.ts`, and `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T002 [P] Confirm no dependency or script changes are needed in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/package.json` and `/Users/ahmeddarrazi/Documents/projects/wt-website/package.json`
- [X] T003 [P] Confirm Tailwind v4 styling conventions and existing surface classes in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/styles/tokens.css`, `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/styles/global.css`, and `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/sections/PageHero.astro`
---
## Phase 2: Foundational (Blocking Prerequisites)
**Purpose**: Add route-level foundation needed before user-story implementation can compile and be tested.
**Critical**: No user-story implementation should start until `/platform` exists in route metadata and typed site definitions, and T007 confirms the repository-wide quality-gate commands are explicit.
- [X] T004 Add `/platform` to `SitePath`, `PageRole`, route unions, and related public website route typing in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/types/site.ts`
- [X] T005 Add `/platform` page definition, canonical route membership, sitemap inclusion, and `/product` redirect compatibility classification in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/lib/site.ts`
- [X] T006 Update smoke helper route constants to recognize `/platform` and preserve `/product` redirect compatibility expectations in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts`
- [X] T007 Confirm the repository-wide targeted Pest and Pint close-out commands are explicit in `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/plan.md`
**Checkpoint**: Website route metadata is ready; user story implementation can proceed.
---
## Phase 3: User Story 1 - Understand The Platform Model (Priority: P1) MVP
**Goal**: A first-time buyer or stakeholder opens `/platform` and understands Tenantial as an evidence-first governance platform for Microsoft tenant environments.
**Independent Test**: Open `/platform` and verify the first viewport shows Tenantial Platform positioning, Microsoft tenant context, a governance headline, static product-oriented visual, "Book a demo", and "See the governance loop".
### Tests for User Story 1
- [X] T008 [US1] Add failing `/platform` hero smoke test titled "platform hero explains Tenantial governance model" for shell, one `h1`, "TENANTIAL PLATFORM", governance headline, primary CTA, secondary CTA, and static visual in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T009 [US1] Add failing `/platform` metadata smoke test titled "platform metadata is Tenantial clean" for title, description, canonical URL, and absence of stale public-brand terms in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
### Implementation for User Story 1
- [X] T010 [US1] Create Platform page static hero, SEO, CTA, and first-viewport visual content exports in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`
- [X] T011 [US1] Create canonical Platform page route using `PageShell`, existing section primitives, hero content, and static visual markup in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T012 [US1] Ensure `/platform` uses Tenantial-specific metadata, canonical `/platform`, exactly one primary heading, keyboard-accessible CTAs, and no live tenant-data language in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T013 [US1] Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke --grep "platform hero|platform metadata"` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
**Checkpoint**: `/platform` is usable as the MVP public Platform page with a clear first-viewport product model.
---
## Phase 4: User Story 2 - See How Governance Work Flows (Priority: P2)
**Goal**: A stakeholder understands how raw tenant change becomes reviewable governance evidence.
**Independent Test**: Review the operating model and governance loop sections and verify required steps, operator-led language, evidence preservation, and no automatic remediation or guaranteed recovery claims.
### Tests for User Story 2
- [X] T014 [US2] Add failing `/platform` smoke test titled "platform governance flow explains reviewable evidence" for operating model steps, governance loop labels, operator review wording, evidence preservation wording, and auditability wording in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T015 [US2] Add failing `/platform` smoke test titled "platform governance flow avoids automation guarantees" that does not imply automatic remediation, guaranteed recovery, live device actions, or real-time tenant operations in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
### Implementation for User Story 2
- [X] T016 [US2] Add ordered operating model and governance loop content arrays to `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`
- [X] T017 [US2] Render the operating model overview with the required sequence in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T018 [US2] Render the governance loop section with accessible text equivalents and mobile-stacking behavior in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T019 [US2] Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke --grep "platform governance flow"` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
**Checkpoint**: The Platform page explains the governance flow independently of later capability and navigation cleanup work.
---
## Phase 5: User Story 3 - Evaluate Capabilities And Boundaries (Priority: P3)
**Goal**: A stakeholder can evaluate Tenantial's core capabilities and distinguish them from helpdesk, SIEM, device-action, or Microsoft admin center replacement promises.
**Independent Test**: Review `/platform` for all eight capabilities, truth-layer or workflow explanation, boundary language, and absence of unsupported customer, certification, partnership, uptime, recovery, security, or compliance claims.
### Tests for User Story 3
- [X] T020 [US3] Add failing `/platform` smoke test titled "platform capabilities cover governance primitives" for Backup, Restore, Drift Detection, Findings, Evidence, Audit Trail, Exceptions, and Governance Reviews in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T021 [US3] Add failing `/platform` smoke test titled "platform boundaries keep claims conservative" for platform boundary copy and unsupported-claim absence on `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T022 [US3] Add failing `/platform` mobile smoke test titled "platform mobile layout stays readable without overflow" for readable capability cards, boundary content, no color-only meaning, and no body-level horizontal overflow in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
### Implementation for User Story 3
- [X] T023 [US3] Add capability, truth-layer, operator-workflow, platform-boundary, and final CTA content exports to `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`
- [X] T024 [US3] Render the capability grid using existing website primitives and lucide-compatible icon names in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T025 [US3] Render truth-layer and operator-workflow sections with concise public copy in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T026 [US3] Render platform boundary and final CTA sections with conservative claim language and working `/contact` demo CTA in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T027 [US3] Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke --grep "platform capabilities|platform boundaries|platform mobile"` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
**Checkpoint**: Stakeholders can evaluate the platform capabilities and boundaries without unsupported claims.
---
## Phase 6: User Story 4 - Navigate A Brand-Clean Public Site (Priority: P4)
**Goal**: Website owners can confirm that homepage, header, footer, metadata, and `/product` compatibility all support `/platform` without stale brand or template residue.
**Independent Test**: Follow homepage "Explore the platform", header Platform, footer Platform, and `/product`; verify they resolve to canonical `/platform` behavior, with `/product` redirecting to `/platform`.
### Tests for User Story 4
- [X] T028 [US4] Update homepage hero route-target smoke assertions from `/product` to `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T029 [US4] Update primary navigation, footer navigation, and onward-route smoke expectations for Platform links to `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts`
- [X] T030 [US4] Add `/product` compatibility smoke test titled "product redirects to platform" for redirect-to-`/platform` behavior and absence of stale public copy in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
### Implementation for User Story 4
- [X] T031 [US4] Update homepage "Explore the platform" CTA and final CTA destinations to `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/home.ts`
- [X] T032 [US4] Update primary navigation and footer Platform link destinations to `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/lib/site.ts`
- [X] T033 [US4] Convert `/product` to a redirect-only compatibility route pointing to `/platform` in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/product.astro`
- [X] T034 [US4] Retire stale product content usage so `/product` no longer imports or renders conflicting public copy from `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/product.ts`
- [X] T035 [US4] Update sitemap and canonical route behavior for `/platform` and `/product` redirect compatibility in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/lib/site.ts`
- [X] T036 [US4] Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke --grep "homepage.*platform|primary navigation|footer|product redirects"` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
**Checkpoint**: The public site journey consistently routes Platform intent to `/platform`.
---
## Phase 7: Polish & Cross-Cutting Concerns
**Purpose**: Validate quality, accessibility, claim safety, and repo boundaries after all user stories are complete.
- [X] T037 [P] Run `corepack pnpm build:website` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T038 [P] Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T039 [P] Run `git diff --check` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T040 Review `/platform` at mobile, tablet, desktop, and wide desktop sizes for no body-level horizontal overflow in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T041 Review visible copy and metadata for forbidden public-brand residue and unsupported claims in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`
- [X] T042 Confirm no files under `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform` were changed for this website-only feature
- [X] T043 Run `cd /Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform && ./vendor/bin/sail bin pint --dirty` from `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform`
- [X] T044 Run `cd /Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform && ./vendor/bin/sail artisan test --compact tests/Deprecation/IsPlatformSuperadminDeprecationTest.php` from `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform`
- [X] T045 Confirm no Playwright helper change introduces platform, database, auth, provider, session, workspace, or tenant setup in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/smoke-helpers.ts`
- [X] T046 Confirm no unrelated Laravel, Filament, or Livewire product test family is introduced solely for Spec 401 website smoke proof in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke`
- [X] T047 Confirm final validation commands include `corepack pnpm build:website`, `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke`, `git diff --check`, and the constitution close-out commands from T043/T044 in `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/tasks.md`
- [X] T048 Review static website files for no third-party tracking scripts, backend fetches, platform API calls, auth/session coupling, or live tenant-data dependencies in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`, `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`, and `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/lib/site.ts`
---
## Phase 8: Mockup-Aligned Visual Refactor Follow-Up
**Purpose**: Apply the follow-up visual refactor request so `/platform` is much closer to the supplied mockup target rather than the initial card-heavy implementation.
- [X] T049 Update Spec 401 artifacts for the follow-up visual target in `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/spec.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/plan.md`, `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/data-model.md`, and `/Users/ahmeddarrazi/Documents/projects/wt-website/specs/401-tenantial-platform-page/quickstart.md`
- [X] T050 Replace `/platform` static content with mockup-aligned hero trust signals, six-step operating model, governance loop diagram copy, asymmetric capability content, truth layers, workflows, boundaries, and focused CTA in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`
- [X] T051 Refactor `/platform` page composition into split dashboard hero, compact Operating Model flow, central Governance Loop diagram, asymmetric Capabilities, Truth Layers visual, warmer Operator Workflows, Boundaries band, and focused CTA in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro`
- [X] T052 Add quiet footer behavior for `/platform` so the final CTA and footer are not two equally heavy closing sections in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/components/layout/Footer.astro`
- [X] T053 Update website smoke coverage for the new visual structure, grouped capabilities, truth-layer visual, boundaries wording, and quiet footer in `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts`
- [X] T054 Run `corepack pnpm build:website` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T055 Run `WEBSITE_PORT=4321 corepack pnpm --filter @tenantatlas/website test:smoke` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T056 Run `git diff --check` from `/Users/ahmeddarrazi/Documents/projects/wt-website`
- [X] T057 Review desktop and mobile `/platform` screenshots for mockup proximity, no body-level horizontal overflow, and no incoherent text overlap
- [X] T058 Confirm the visual refactor remains limited to `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website` and Spec 401 artifacts, with no `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/platform` changes
---
## Dependencies & Execution Order
### Phase Dependencies
- Phase 1 must complete before Phase 2.
- Phase 2 must complete before any user story implementation.
- US1 is the MVP and should complete before US2, US3, and US4 because it creates the canonical `/platform` route.
- US2 can proceed after US1 because it expands the same page with operating model and governance loop sections.
- US3 can proceed after US1 and can run in parallel with US2 if file-level coordination is handled for `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/pages/platform.astro` and `/Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/src/content/pages/platform.ts`.
- US4 should complete after US1 because homepage/header/footer links need a real canonical route target.
- Phase 7 runs after all selected user stories.
### User Story Dependency Graph
```text
Setup -> Foundation -> US1 (MVP)
|-> US2
|-> US3
`-> US4
US2 + US3 + US4 -> Polish
```
### Story Completion Order
1. US1 - Understand The Platform Model
2. US2 - See How Governance Work Flows
3. US3 - Evaluate Capabilities And Boundaries
4. US4 - Navigate A Brand-Clean Public Site
## Parallel Execution Examples
### Setup / Foundation
```text
T002 can run alongside T003 after T001 starts.
T004 and T005 should be coordinated because both affect route typing and route definitions.
T006 can run after T004/T005 interfaces are known.
```
### User Story 1
```text
T008 and T009 both edit /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts, so coordinate them in one test-edit pass.
T010 and T011 should be sequential because the page route imports the content module.
```
### User Story 2
```text
T014 and T015 can be drafted together in /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts before implementation.
T016 should complete before T017 and T018 render the new content.
```
### User Story 3
```text
T020, T021, and T022 can be drafted in one test-edit pass.
T023 can proceed before T024, T025, and T026 render the new sections.
```
### User Story 4
```text
T028 and T030 both edit /Users/ahmeddarrazi/Documents/projects/wt-website/apps/website/tests/smoke/home-product.spec.ts and should be coordinated.
T031 can run in parallel with T032 because they edit different files.
T033 and T034 should be coordinated because both define /product compatibility behavior.
```
### Final Validation
```text
T037, T038, and T039 are independent validation commands and can run in parallel if local resources allow.
T040, T041, T042, T045, T046, and T048 can run after validation commands finish.
T043 and T044 close the repository-wide constitution gates and should finish before T047.
```
## Implementation Strategy
### MVP First
Deliver US1 first. This creates the canonical `/platform` page with Tenantial Platform metadata, first-viewport positioning, static product-oriented visual, and primary/secondary CTA hierarchy. At that point the feature has a usable public destination even before deeper sections and compatibility cleanup land.
### Incremental Delivery
1. Complete Setup and Foundational phases.
2. Complete US1 and verify `/platform` independently.
3. Add US2 to explain the operating model and governance loop.
4. Add US3 to cover capabilities, truth layers, workflows, boundaries, and claim safety.
5. Add US4 to align homepage/header/footer navigation and redirect `/product` to `/platform`.
6. Run Phase 7 validation and record smoke coverage close-out.