> 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/phase08-session02-unified-erasure-contract-and-inventory/tasks.md).

# Task Checklist

**Session ID**: `phase08-session02-unified-erasure-contract-and-inventory` **Total Tasks**: 24 **Estimated Duration**: 3-4 hours **Created**: 2026-05-31

***

## 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     | 6      | 6      | 0         |
| Implementation | 11     | 11     | 0         |
| Testing        | 4      | 4      | 0         |
| **Total**      | **24** | **24** | **0**     |

***

## Setup (3 tasks)

Initial configuration and environment preparation.

### Cross-cutting

* [x] T001 \[S0802] Verify analyzer state, completed Session 01 prerequisite, Phase 08 routing, and cross-package package context before implementation (`.spec_system/PRD/phase_08/session_02_unified_erasure_contract_and_inventory.md`)
* [x] T002 \[S0802] Review storage, cleanup, reset, leave, recovery, export, archive, memory, backup, log, browser, Worker, hosted placeholder, and workspace boundaries without treating any cleanup flow as trusted erasure (`docs/privacy-and-security.md`)
* [x] T003 \[S0802] Create implementation note scaffold and confirm no destructive deletion, purge, reset, or end-user erasure control will be introduced in this session (`.spec_system/specs/phase08-session02-unified-erasure-contract-and-inventory/implementation-notes.md`)

***

## Foundation (6 tasks)

Core structures and base implementations.

### packages/protocol

* [x] T004 \[S0802] \[P] Create protocol erasure vocabulary, types, docs paths, and unsupported-claim labels with exhaustive enum handling (`packages/protocol/src/erasure.ts`)
* [x] T005 \[S0802] Add release-scoped storage-boundary inventory rows with owner, status, authority, dry-run, verification, audit, docs, and no-overclaim metadata (`packages/protocol/src/erasure.ts`)
* [x] T006 \[S0802] Add deterministic inventory summary builders, lookup helpers, guards, and negative-claim helpers with bounded sanitized output (`packages/protocol/src/erasure.ts`)
* [x] T007 \[S0802] Export the erasure contract from the protocol package barrel with types matching declared contract (`packages/protocol/src/index.ts`)

### apps/server

* [x] T008 \[S0802] \[P] Create read-only local/server erasure inventory mapper for archives, memory, settings, lifecycle, logs, backups, spool, exports, diagnostics, scans, and runtime memory with no filesystem mutation (`apps/server/src/lib/erasureInventory.ts`)

### apps/warroom

* [x] T009 \[S0802] \[P] Create read-only Worker erasure inventory mapper for Durable Object participants, recent events, authority hashes, idempotency records, room revisions, and browser-hint adjacency with no raw token or room payload output (`apps/warroom/src/erasureInventory.ts`)

***

## Implementation (11 tasks)

Main feature implementation.

### packages/protocol

* [x] T010 \[S0802] \[P] Write protocol tests for erasure vocabulary uniqueness, guard functions, docs paths, blocked payload labels, and unsupported claims (`packages/protocol/tests/erasure.test.ts`)
* [x] T011 \[S0802] Write protocol tests proving inventory completeness for archives, memory, settings, lifecycle files, browser state, Worker state, replay/export buffers, diagnostics, logs, backups, valid spool state, workspace files, and future hosted placeholders (`packages/protocol/tests/erasure.test.ts`)
* [x] T012 \[S0802] Write protocol tests proving reset, cleanup, uninstall, diagnostics recovery, Worker leave, one-boundary deletion, and manual removal cannot be classified as trusted unified erasure (`packages/protocol/tests/erasure.test.ts`)

### apps/server

* [x] T013 \[S0802] \[P] Write server inventory tests for FactionOS home, session archives, memory, settings, lifecycle, project-root, logs, backups, valid and malformed spool posture, exports, diagnostics, scans, and runtime memory with sanitized summaries (`apps/server/tests/erasureInventory.test.ts`)

### apps/warroom

* [x] T014 \[S0802] \[P] Write Worker inventory tests for Durable Object participants, recent events, authority hash metadata, idempotency metadata, stale authority state, duplicate decision metadata, and no raw room payload or token output (`apps/warroom/tests/erasureInventory.test.ts`)

### Cross-cutting docs

* [x] T015 \[S0802] Create the unified erasure inventory artifact with every release-scoped boundary, owner, status, authority model, dry-run expectation, verification plan, audit expectation, and Session 03/04 handoff (`.spec_system/PRD/phase_08/unified_erasure_inventory.md`)
* [x] T016 \[S0802] Update privacy and security documentation with the inventory reference, open erasure finding status, personal-data boundary coverage, and cleanup-vs-erasure distinction (`docs/privacy-and-security.md`)
* [x] T017 \[S0802] Update release documentation with Session 02 erasure contract evidence and continued no-claim wording until runtime deletion and Worker gates validate (`docs/release.md`)
* [x] T018 \[S0802] Update API documentation to distinguish current export, archive, diagnostics, recovery, reset, leave, and uninstall behavior from future trusted erasure contracts (`docs/api/README_api.md`)
* [x] T019 \[S0802] Update protocol package documentation with erasure contract ownership, protocol-first consumption rules, blocked payload categories, and future Session 03/04 handoff (`packages/protocol/README_protocol.md`)
* [x] T020 \[S0802] Update server and Worker package documentation with read-only inventory helper boundaries and no destructive erasure behavior (`apps/server/README_server.md`, `apps/warroom/README_warroom.md`)

***

## Testing (4 tasks)

Verification and quality assurance.

### Cross-cutting

* [x] T021 \[S0802] Run focused Vitest coverage for protocol, server, and Worker erasure inventory contracts (`packages/protocol/tests/erasure.test.ts`, `apps/server/tests/erasureInventory.test.ts`, `apps/warroom/tests/erasureInventory.test.ts`)
* [x] T022 \[S0802] Run affected TypeScript typechecks for protocol, server, and Worker workspaces (`packages/protocol/package.json`, `apps/server/package.json`, `apps/warroom/package.json`)
* [x] T023 \[S0802] Run docs/no-overclaim review plus whitespace, ASCII, LF, and `git diff --check` validation for created and touched files (`.spec_system/PRD/phase_08/unified_erasure_inventory.md`)
* [x] T024 \[S0802] Record command outcomes, changed files, residual risks, and Session 03/04 handoff notes without marking trusted erasure as shipped (`.spec_system/specs/phase08-session02-unified-erasure-contract-and-inventory/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/phase08-session02-unified-erasure-contract-and-inventory/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.
