> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase16-session04-cloudflare-pages-deployment-path/tasks.md).

# Task Checklist

**Session ID**: `phase16-session04-cloudflare-pages-deployment-path` **Total Tasks**: 20 **Estimated Duration**: 3-4 hours **Created**: 2026-06-02

***

## Legend

* `[x]` = Completed
* `[ ]` = Pending
* `[P]` = Parallelizable (can run with other \[P] tasks)
* `[S1604]` = Session reference (16=phase number, 04=session number)
* `TNNN` = Task ID

***

## Progress Summary

| Category       | Total  | Done   | Remaining |
| -------------- | ------ | ------ | --------- |
| Setup          | 3      | 3      | 0         |
| Foundation     | 5      | 5      | 0         |
| Implementation | 8      | 8      | 0         |
| Testing        | 4      | 4      | 0         |
| **Total**      | **20** | **20** | **0**     |

***

## Setup (3 tasks)

Initial configuration and environment preparation.

* [x] T001 \[S1604] Verify Session 04 prerequisites, completed Session 03, Node/npm baseline, package context, and Cloudflare Pages project assumptions (`.spec_system/PRD/phase_16/session_04_cloudflare_pages_deployment_path.md`)
* [x] T002 \[S1604] Create implementation notes with deployment assumptions, command evidence matrix, credential status labels, live deploy status, and no-claim boundaries (`.spec_system/specs/phase16-session04-cloudflare-pages-deployment-path/implementation-notes.md`)
* [x] T003 \[S1604] Inspect existing deploy workflow patterns for credential-safe skips, concurrency, package-scoped gates, Wrangler usage, and smoke behavior (`.github/workflows/public-demo-deploy.yml`)

***

## Foundation (5 tasks)

Core structures and base implementations.

* [x] T004 \[S1604] Define website-specific Cloudflare Pages settings, project variable names, production URL variable names, and no-demo-coupling rules (`public-website/README_public-website.md`)
* [x] T005 \[S1604] \[P] Update deployment docs with website production status, Pages settings, manual deploy command, credential prerequisites, smoke expectations, and demo/docs independence (`docs/deployment.md`)
* [x] T006 \[S1604] \[P] Update release docs with the public website pre-deploy static gate, live deploy evidence states, and production-hosted claim boundaries (`docs/release.md`)
* [x] T007 \[S1604] \[P] Update workflow docs with the dedicated public website deploy workflow purpose, triggers, credentials, and no-secret rule (`.github/workflows/README_workflows.md`)
* [x] T008 \[S1604] \[P] Update spec conventions operations and infrastructure tables for the main website Cloudflare Pages deploy posture (`.spec_system/CONVENTIONS.md`)

***

## Implementation (8 tasks)

Main feature implementation.

* [x] T009 \[S1604] Create a dedicated public website Cloudflare Pages workflow with push/manual triggers, concurrency, Node setup, install, package typecheck, package build, and static checker gates (`.github/workflows/public-website-deploy.yml`)
* [x] T010 \[S1604] Add a credential availability gate for `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_API_TOKEN`, and `CLOUDFLARE_PUBLIC_WEBSITE_PAGES_PROJECT_NAME` with duplicate-trigger prevention while in-flight and no raw secret output (`.github/workflows/public-website-deploy.yml`)
* [x] T011 \[S1604] Add the Wrangler Pages deploy step targeting `public-website/dist` with branch, commit hash, commit message, default project `factionos-public-website`, and no `public-demo` artifact paths (`.github/workflows/public-website-deploy.yml`)
* [x] T012 \[S1604] Add a bounded post-deploy homepage smoke for `FACTIONOS_PUBLIC_WEBSITE_URL` with HTTPS validation, timeout, retry/backoff, and sanitized failure-path handling (`.github/workflows/public-website-deploy.yml`)
* [x] T013 \[S1604] Tune workflow path filters so website deploys react to `public-website/**`, workflow, package, lockfile, and checker changes without triggering from demo-only changes (`.github/workflows/public-website-deploy.yml`)
* [x] T014 \[S1604] Update the public website README deployment section with final CI command shape, manual deploy command, dashboard settings, no-adapter warning, and unchanged demo/docs URLs (`public-website/README_public-website.md`)
* [x] T015 \[S1604] Update deployment docs workflow table, production status row, manual fallback, credentials, and remaining no-production-host language for unrelated app surfaces (`docs/deployment.md`)
* [x] T016 \[S1604] Update release docs with launch gate wording requiring typecheck, build, static checker, deploy result, and claim-scoped hosted evidence (`docs/release.md`)

***

## Testing (4 tasks)

Verification and quality assurance.

* [x] T017 \[S1604] \[P] Run website typecheck and resolve issues without adding `@astrojs/cloudflare`, `@astrojs/check`, server rendering, analytics, forms, auth, or CMS behavior (`public-website/package.json`)
* [x] T018 \[S1604] \[P] Run website build and static checker to verify `public-website/dist`, sitemap/RSS/robots, approved URLs, metadata, no analytics, no hosted forms, and no runtime network code (`public-website/package.json`)
* [x] T019 \[S1604] Run root format, lint, and tracked secret scan for workflow and docs changes, fixing any ASCII, YAML, lint, or secret-scan failures (`package.json`)
* [x] T020 \[S1604] Record final validation, credential or live-deploy blockers, ASCII/LF checks, demo/docs independence, and Session 05 launch handoff notes (`.spec_system/specs/phase16-session04-cloudflare-pages-deployment-path/implementation-notes.md`)

***

## Completion Checklist

Before marking session complete:

* [x] All tasks marked `[x]`
* [x] All tests passing
* [x] All files ASCII-encoded
* [x] implementation-notes.md updated
* [x] Ready for the validate workflow step

***

## Next Steps

Run the validate workflow step to verify session completeness.


---

# 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://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase16-session04-cloudflare-pages-deployment-path/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.
