> 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/phase16-session03-data-layer-demo-fixtures/tasks.md).

# Task Checklist

**Session ID**: `phase16-session03-data-layer-demo-fixtures` **Total Tasks**: 21 **Estimated Duration**: 3-4 hours **Created**: 2026-06-02

***

## 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          | 2      | 2      | 0         |
| Foundation     | 5      | 5      | 0         |
| Implementation | 9      | 9      | 0         |
| Testing        | 5      | 5      | 0         |
| **Total**      | **21** | **21** | **0**     |

***

## Setup (2 tasks)

Initial verification and scope alignment.

* [x] T001 \[S1603] Verify Session 02 read/write endpoint prerequisites and payload contracts (`scripts/lib/hermes-dev-bridge.ts`)
* [x] T002 \[S1603] Map v2.3 demo payload anchors to AI OS data-layer fixture needs (`src/lib/hermes-demo-data.ts`)

***

## Foundation (5 tasks)

Core payload types, parsers, and fixture structure.

* [x] T003 \[S1603] \[P] Define read payload interfaces for connections, profiles, templates, session detail, missions, documents, and trash (`src/lib/hermes-types.ts`)
* [x] T004 \[S1603] Implement read response parsers for the new endpoint payloads with schema-validated input and explicit error mapping (`src/lib/hermes-types.ts`)
* [x] T005 \[S1603] \[P] Define admin write request and response interfaces for image, mission, sync, document, and Obsidian actions (`src/lib/hermes-admin-types.ts`)
* [x] T006 \[S1603] Implement admin response parsers for the new write payloads with exhaustive error-code handling (`src/lib/hermes-admin-types.ts`)
* [x] T007 \[S1603] Prepare expanded demo fixture constants with bounded demo-only labels and no private path leakage (`src/lib/hermes-demo-data.ts`)

***

## Implementation (9 tasks)

Read hook, admin mutation, and demo data integration.

* [x] T008 \[S1603] Extend Hermes query keys, hook options, and result fields for expanded reads (`src/hooks/use-hermes.ts`)
* [x] T009 \[S1603] Add non-sensitive connections, templates, missions, documents, and trash queries with explicit loading, empty, error, and offline states (`src/hooks/use-hermes.ts`)
* [x] T010 \[S1603] Add token-gated profiles and session-detail queries with token-failure, idle, and setup-required handling (`src/hooks/use-hermes.ts`)
* [x] T011 \[S1603] Add a document file access helper with encoded names and explicit failure-path handling (`src/hooks/use-hermes.ts`)
* [x] T012 \[S1603] Add image upload and mission create/optimize/tick/clear mutations with duplicate-trigger prevention while in-flight (`src/hooks/use-hermes-admin.ts`)
* [x] T013 \[S1603] Add Pantheon sync and Obsidian bridge mutations with confirmation payloads, duplicate-trigger prevention, and denied/restricted error handling (`src/hooks/use-hermes-admin.ts`)
* [x] T014 \[S1603] Add document delete/restore/purge mutations with confirmation payloads, duplicate-trigger prevention, and deterministic ordering after refresh (`src/hooks/use-hermes-admin.ts`)
* [x] T015 \[S1603] Wire success-only query invalidation for mission, document, Pantheon, and profile-affecting writes without optimistic cache mutation (`src/hooks/use-hermes-admin.ts`)
* [x] T016 \[S1603] Export expanded Hermes demo data for all new read domains and chat thread detail (`src/lib/hermes-demo-data.ts`)

***

## Testing (5 tasks)

Verification and quality assurance.

* [x] T017 \[S1603] \[P] Write read parser and demo fixture tests for valid, empty, and malformed payloads (`src/lib/__tests__/hermes-types.test.ts`)
* [x] T018 \[S1603] \[P] Extend admin parser tests for new write response shapes and malformed payload rejection (`src/lib/__tests__/hermes-admin-types.test.ts`)
* [x] T019 \[S1603] Extend read hook tests for query gating, offline state, token failure, empty state, and endpoint errors (`src/hooks/__tests__/use-hermes.test.tsx`)
* [x] T020 \[S1603] Extend admin hook tests for duplicate prevention, disabled/token/offline states, and success-only invalidation (`src/hooks/__tests__/use-hermes-admin.test.tsx`)
* [x] T021 \[S1603] Run focused Vitest, typecheck, lint, and ASCII validation for session files (`package.json`)

***

## 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://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/sessions/phase16-session03-data-layer-demo-fixtures/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.
