> 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/phases/phase_22/session_08_erasure_docs_and_validation.md).

# Session 08: Erasure Docs And Validation

**Session ID**: `phase22-session08-erasure-docs-and-validation` **Package**: apps/web **Status**: Not Started **Estimated Tasks**: \~12-25 **Estimated Duration**: 2-4 hours

***

## Objective

Complete local erasure coverage, reconcile docs only where implementation decisions diverged, and run the Phase 22 validation set.

***

## Scope

### In Scope (MVP)

* Add `factionos-game-v1` to the browser-local erasure storage cleanup inventory in `apps/web/src/lib/localErasure.ts`.
* Update `apps/web/tests/localErasure.test.ts` to prove browser local erasure clears the projection key.
* Review implementation comments and owning docs for any divergence from this brief, especially `suggestion_update` camp reconciliation, Command Center gate handling, persisted pending alert refs, and camp-link dormancy.
* Run the minimum validation commands from this brief, then broaden to replay, Quest Board, orchestration, or Command Center tests if touched code warrants it.
* Keep the final change set free of new battlefield rendering, new UI ceremony, new protocol events, hosted persistence, audio/SFX, and extra state authorities.

### Out of Scope

* Follow the explicit out-of-scope and deferred-work boundaries in the Dependencies / Notes section below.
* Do not add rendering, audio, hosted persistence, protocol changes, or a second game state authority unless this session explicitly lists that work as in scope.

***

## Dependencies / Notes

* Depends on Session 07.
* Out of scope: implementing the deferred product tuning questions or Phase A rendering work.
* Minimum validation commands are `npm test -- apps/web/tests/gameProjection.test.ts`, `npm test -- apps/web/tests/replayPersist.test.ts apps/web/tests/localErasure.test.ts`, and `npm --workspace @factionos/web run typecheck`.

***

## Prerequisites

* [ ] Session 07 completed and validated.

***

## Deliverables

1. Browser erasure coverage for the projection storage key.
2. Any necessary documentation or change-log alignment for implementation choices made during Sessions 01-07.
3. Final validation results for the implementation window.

***

## Success Criteria

* [ ] Browser local erasure and `resetToSeed()` both clear `localStorage["factionos-game-v1"]`.
* [ ] Documentation reflects any Phase 22 implementation choices that differ from this brief instead of leaving stale guidance.
* [ ] Minimum validation passes, or any failures are captured with concrete file/test names and the remaining blocker.
* [ ] The implementation still has exactly one projection state authority and no new rendering surface.


---

# 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/phases/phase_22/session_08_erasure_docs_and_validation.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.
