> 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/prd/phase_25/session_01_ceremony_registry_and_test_harness.md).

# Session 01: Ceremony Registry And Test Harness

**Session ID**: `phase25-session01-ceremony-registry-and-test-harness` **Package**: apps/web **Status**: Not Started **Estimated Tasks**: \~12-25 **Estimated Duration**: 2-4 hours

***

## Objective

Create the pure Phase 25 verb ceremony registry and prove every supported verb has a complete, privacy-safe presentation contract before any React surface consumes it.

***

## Scope

### In Scope (MVP)

* Add `apps/web/src/lib/verbCeremony.ts`
* Add `apps/web/tests/verbCeremony.test.ts`
* Encode all 13 Phase 4 verb IDs and the tone vocabulary
* Implement the `VerbCeremonySpec` field contract, selector helper list, and safety helper list from `PRD_phase_25.md`
* Add selector helpers for toast, quest, plan, permission, alert focus, notice, scroll, War Room, channel command, hero state, and scan inputs
* Add data-attribute helpers and ID guards
* Add text safety helpers for bounded titles, labels, and summaries
* Test completeness, unknown ID rejection, data attributes, accessibility copy, and privacy filtering

### Out of Scope

* React component rendering
* CSS ceremony classes
* Audio playback hooks
* Runtime media promotion
* Any protocol, server, storage, reward, or progression behavior

***

## Prerequisites

* [ ] Phase 25 PRD and session stubs exist
* [ ] Phase 24 projection, alert-focus, and world-cue helper contracts are available

***

## Deliverables

1. Pure `verbCeremony.ts` registry with all verb specs and selectors
2. Focused registry tests covering completeness, safety, and mapping behavior
3. Stable data-attribute contract ready for component sessions

***

## Success Criteria

* [ ] `verbCeremony.test.ts` passes
* [ ] No React component has been changed in this session
* [ ] Registry exports can be imported without React, DOM, Zustand, timers, or browser-state reads
* [ ] Selectors do not emit raw command text, prompt text, file contents, broad paths, tokens, secrets, provider payloads, diffs, terminal output, or raw channel bodies
* [ ] Every verb has labels, aria copy, screen-reader summary, tone, surface, static class, motion class, privacy level, and data attributes


---

# 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/prd/phase_25/session_01_ceremony_registry_and_test_harness.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.
