> 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/phase13-session04-content-collections-and-publishing-templates/tasks.md).

# Task Checklist

**Session ID**: `phase13-session04-content-collections-and-publishing-templates` **Total Tasks**: 24 **Estimated Duration**: 3-4 hours **Created**: 2026-06-01

***

## Legend

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

***

## Progress Summary

| Category       | Total  | Done   | Remaining |
| -------------- | ------ | ------ | --------- |
| Setup          | 3      | 3      | 0         |
| Foundation     | 7      | 7      | 0         |
| Implementation | 10     | 10     | 0         |
| Testing        | 4      | 4      | 0         |
| **Total**      | **24** | **24** | **0**     |

***

## Setup (3 tasks)

Initial configuration and environment preparation.

* [x] T001 \[S1304] Verify Phase 13 prerequisites, completed Sessions 01-03 deliverables, Node 26.2.0+ PATH, and current Astro content API assumptions (`.spec_system/specs/phase13-session04-content-collections-and-publishing-templates/implementation-notes.md`)
* [x] T002 \[S1304] Inspect current public website package, RSS scaffold, SEO helpers, and static sitemap posture before editing (`public-website/package.json`)
* [x] T003 \[S1304] Create publishing directories for collection config, reusable content components, blog content, news content, and blog/news routes (`public-website/src/content.config.ts`)

***

## Foundation (7 tasks)

Core structures and base implementations.

* [x] T004 \[S1304] \[P] Create typed `blog` and `news` content collections with schema-validated frontmatter, optional image support, draft defaults, and news category validation (`public-website/src/content.config.ts`)
* [x] T005 \[S1304] \[P] Create shared content helpers for draft filtering, deterministic sorting, bounded related entries, reading-time metadata, and absolute URL generation with validated filters (`public-website/src/lib/content.ts`)
* [x] T006 \[S1304] \[P] Create collection hero component with accessible headings, item counts, and explicit empty-state copy (`public-website/src/components/content/CollectionHero.astro`)
* [x] T007 \[S1304] \[P] Create post metadata component with optional author/category/version fields, date semantics, reading time, and accessible labels (`public-website/src/components/content/PostMeta.astro`)
* [x] T008 \[S1304] \[P] Create tag list component with deterministic tag rendering, empty-list suppression, wrapping behavior, and accessible labels (`public-website/src/components/content/TagList.astro`)
* [x] T009 \[S1304] \[P] Create post card component with article/link semantics, visible focus states, tag support, and no broken layout when metadata is absent (`public-website/src/components/content/PostCard.astro`)
* [x] T010 \[S1304] Create shared post layout with SEO metadata, article structured data inputs, development-only draft badge, responsive prose, and safe metadata fallbacks (`public-website/src/layouts/PostLayout.astro`)

***

## Implementation (10 tasks)

Main feature implementation.

* [x] T011 \[S1304] \[P] Add seed blog entry introducing FactionOS with local-first mission-control copy and no hosted-service overclaims (`public-website/src/content/blog/introducing-factionos.md`)
* [x] T012 \[S1304] \[P] Add seed blog entry about local-first agent observability with privacy boundaries and no analytics or data-transfer claims (`public-website/src/content/blog/local-first-agent-observability.md`)
* [x] T013 \[S1304] \[P] Add seed blog entry about why agent work needs a cockpit with concrete battlefield/cockpit concepts and no executor overclaims (`public-website/src/content/blog/why-agent-work-needs-a-cockpit.md`)
* [x] T014 \[S1304] \[P] Add seed news entry for the initial public website foundation with release/changelog metadata and conservative launch wording (`public-website/src/content/news/initial-public-website.md`)
* [x] T015 \[S1304] \[P] Add seed news entry for the public demo destination with explicit external-link boundaries and no production-hosted validation claim (`public-website/src/content/news/public-demo-available.md`)
* [x] T016 \[S1304] Implement blog index route with production draft exclusion, deterministic newest-first ordering, accessible cards, tag display, and explicit empty state (`public-website/src/pages/blog/index.astro`)
* [x] T017 \[S1304] Implement blog dynamic detail route with static paths, collection rendering, article metadata, draft exclusion in production, and bounded related posts (`public-website/src/pages/blog/[...slug].astro`)
* [x] T018 \[S1304] Implement news index route with production draft exclusion, category/version metadata, deterministic ordering, accessible cards, and explicit empty state (`public-website/src/pages/news/index.astro`)
* [x] T019 \[S1304] Implement news dynamic detail route with static paths, NewsArticle metadata, exhaustive category handling, production draft exclusion, and bounded related posts (`public-website/src/pages/news/[...slug].astro`)
* [x] T020 \[S1304] Wire RSS endpoint to combined non-draft blog/news entries with absolute links, concise descriptions, bounded output, and deterministic ordering (`public-website/src/pages/rss.xml.js`)

***

## Testing (4 tasks)

Verification and quality assurance.

* [x] T021 \[S1304] Run public website typecheck and fix collection schema, route prop, and Astro content typing issues with the Node 26.2.0+ toolchain (`public-website/tsconfig.json`)
* [x] T022 \[S1304] Run public website build and inspect generated blog, news, RSS, sitemap, and draft-exclusion output (`public-website/dist/rss.xml`)
* [x] T023 \[S1304] Run focused Biome lint/format checks for content config, helpers, components, routes, seed content, and session artifacts (`public-website/src/content.config.ts`)
* [x] T024 \[S1304] Validate ASCII/LF encoding and record publishing-template verification notes, residual risks, and no-overclaim review (`.spec_system/specs/phase13-session04-content-collections-and-publishing-templates/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 implement workflow step to begin AI-led implementation.


---

# 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/phase13-session04-content-collections-and-publishing-templates/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.
