> For the complete documentation index, see [llms.txt](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/sessions/phase31-session06-demo-qa-and-privacy-verification/tasks.md).

# Task Checklist

**Session ID**: `phase31-session06-demo-qa-and-privacy-verification` **Total Tasks**: 20 **Estimated Duration**: 3-4 hours **Created**: 2026-06-24

***

Legend: `[x]` completed; `[ ]` pending; `[P]` parallelizable; `[SNNMM]` session ref; `TNNN` task ID.

***

## Setup (3 tasks)

* [x] T001 \[S3106] Verify Session 06 prerequisites, completed Sessions 03-05, and authoritative route matrix inputs (`.spec_system/PRD/phase_31/session_06_demo_qa_and_privacy_verification.md`)
* [x] T002 \[S3106] Run the Pages build once and confirm generated static artifact roots exist before scan planning (`bun run demo:build:pages`)
* [x] T003 \[S3106] Review existing public demo scan and route-test helpers before adding new automation (`scripts/lib/pages-demo-snapshot.ts`)

***

## Foundation (6 tasks)

* [x] T004 \[S3106] Create a shared Pages demo route matrix with unique absolute paths, route IDs, surface labels, and deterministic ordering (`scripts/lib/pages-demo-routes.ts`)
* [x] T005 \[S3106] Add route matrix unit coverage for required host, agent, Trend Finder, Knowledge Graph, and AI Rogue routes (`scripts/lib/__tests__/pages-demo-routes.test.ts`)
* [x] T006 \[S3106] Replace local snapshot route coverage with the shared route matrix so metadata and smoke tests share one source (`scripts/lib/pages-demo-snapshot.ts`)
* [x] T007 \[S3106] Implement committed-fixture and generated-dist privacy scan helpers with bounded traversal, validated roots, deterministic ordering, file-size limits, and explicit error mapping (`scripts/lib/pages-demo-privacy-scan.ts`)
* [x] T008 \[S3106] Add scan unit coverage for pass cases, local paths, bridge URLs, token-shaped strings, text assets, missing generated output, and deterministic issue ordering (`scripts/lib/__tests__/pages-demo-privacy-scan.test.ts`)
* [x] T009 \[S3106] Add a Pages demo scan CLI with validated options, JSON/text output, and non-zero exits for privacy or missing-output failures (`scripts/demo/scan-pages-demo.ts`)

***

## Implementation (6 tasks)

* [x] T010 \[S3106] Wire a rerunnable package script for fixture and generated-output privacy scans without invoking `demo:snapshot` (`package.json`)
* [x] T011 \[S3106] Create the Playwright static-demo smoke harness with per-route navigation, request collection, `/__*` failure detection, and `/demo/*` allowance (`tests/e2e/pages-demo-routes.spec.ts`)
* [x] T012 \[S3106] Add route-specific readiness assertions so each host, agent, Trend Finder, Knowledge Graph, and AI Rogue route proves a real product surface rendered (`tests/e2e/pages-demo-routes.spec.ts`)
* [x] T013 \[S3106] Add static output shape checks for `index.html`, `_redirects`, `_headers`, and `/demo/*` assets to the scan path (`scripts/lib/pages-demo-privacy-scan.ts`)
* [x] T014 \[S3106] Keep the normal Vite Playwright webserver path unchanged and record the static-preview invocation required for this smoke suite (`.spec_system/specs/phase31-session06-demo-qa-and-privacy-verification/implementation-notes.md`)
* [x] T015 \[S3106] Record any unsafe route, scan finding, or preview failure with concrete path and command evidence instead of changing release-polish scope (`.spec_system/specs/phase31-session06-demo-qa-and-privacy-verification/implementation-notes.md`)

***

## Testing (5 tasks)

* [x] T016 \[S3106] Run focused Vitest coverage for routes, scans, snapshot metadata, and public-demo route helpers (`bun run test -- scripts/lib/__tests__/pages-demo-routes.test.ts scripts/lib/__tests__/pages-demo-privacy-scan.test.ts scripts/lib/__tests__/pages-demo-snapshot.test.ts src/routes/__tests__/public-demo-routes.test.ts`)
* [x] T017 \[S3106] Run TypeScript verification after adding scripts and tests (`bun run typecheck`)
* [x] T018 \[S3106] Run Pages build and the new privacy scan against committed fixtures plus generated output (`bun run demo:build:pages && bun run demo:scan:pages`)
* [x] T019 \[S3106] Run static preview route smoke coverage with an explicit Pages preview base URL (`bunx playwright test tests/e2e/pages-demo-routes.spec.ts`)
* [x] T020 \[S3106] Validate ASCII/LF requirements and update implementation notes with final command results (`.spec_system/specs/phase31-session06-demo-qa-and-privacy-verification/implementation-notes.md`)

***

## Completion Checklist

* [x] All tasks marked `[x]`
* [x] All tests and checks passing
* [x] All files ASCII-encoded with LF line endings
* [x] implementation-notes.md updated
* [x] Ready for `creview` to continue the implement -> creview -> validate sequence

***

## Next Steps

Run the `creview` workflow step.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/sessions/phase31-session06-demo-qa-and-privacy-verification/tasks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
