> 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/phase09-session01-contracts-and-naming-baseline/tasks.md).

# Task Checklist

**Session ID**: `phase09-session01-contracts-and-naming-baseline` **Total Tasks**: 18 **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     | 5      | 5      | 0         |
| Implementation | 7      | 7      | 0         |
| Testing        | 3      | 3      | 0         |
| **Total**      | **18** | **18** | **0**     |

***

## Setup (3 tasks)

Initial configuration and environment preparation.

### packages/protocol

* [x] T001 \[S0901] Verify Phase 08 completion, Phase 09 Session 01 scope, and protocol package ownership before changing contracts (`packages/protocol/README_protocol.md`)
* [x] T002 \[S0901] Review current hero CLI, ingest event, alias, and compatibility exports for downstream import stability (`packages/protocol/src/index.ts`)
* [x] T003 \[S0901] Review existing protocol tests and identify Claude compatibility assertions that must remain unchanged (`packages/protocol/tests/ingest.test.ts`)

***

## Foundation (5 tasks)

Core structures and base implementations.

### packages/protocol

* [x] T004 \[S0901] \[P] Add `codex-cli` and exhaustive CLI display metadata helpers with exhaustive enum handling (`packages/protocol/src/heroes.ts`)
* [x] T005 \[S0901] \[P] Add provider-neutral hook event constants and deprecated Claude aliases without duplicating source arrays (`packages/protocol/src/ingest.ts`)
* [x] T006 \[S0901] Add Codex lifecycle names `SubagentStart`, `PreCompact`, and `PostCompact` to shared event-name guards with existing Claude names preserved (`packages/protocol/src/ingest.ts`)
* [x] T007 \[S0901] Add optional safe Codex metadata fields with types matching declared contract; exhaustive enum handling (`packages/protocol/src/ingest.ts`)
* [x] T008 \[S0901] Update package README protocol ownership notes without claiming Codex runtime installation or validation (`packages/protocol/README_protocol.md`)

***

## Implementation (7 tasks)

Main feature implementation.

### packages/protocol

* [x] T009 \[S0901] \[P] Create hero CLI tests for `codex-cli`, display labels, provider families, and metadata exhaustiveness (`packages/protocol/tests/heroes.test.ts`)
* [x] T010 \[S0901] Update ingest tests for provider-neutral event names, Codex lifecycle additions, and deprecated Claude alias compatibility (`packages/protocol/tests/ingest.test.ts`)
* [x] T011 \[S0901] Update ingest tests proving existing Claude hook payloads and type-only OpenClaw compatibility inputs still typecheck (`packages/protocol/tests/ingest.test.ts`)
* [x] T012 \[S0901] Add Codex payload fixtures with optional `turnId`, `permissionMode`, `hookEventName`, `agentId`, `agentType`, `toolName`, and compact `mcpToolName` fields (`packages/protocol/tests/ingest.test.ts`)
* [x] T013 \[S0901] Add negative privacy assertions that promoted payload fixtures exclude `transcript_path`, `transcriptPath`, raw patch, command output, MCP argument body, token, and credential fields (`packages/protocol/tests/ingest.test.ts`)
* [x] T014 \[S0901] Update provider-neutral source comments where Claude-only wording blocks future provider-neutral behavior (`packages/protocol/src/heroes.ts`)
* [x] T015 \[S0901] Update ingest source comments to explain transcript paths are local-only handler inputs, not promoted shared payload fields (`packages/protocol/src/ingest.ts`)

***

## Testing (3 tasks)

Verification and quality assurance.

### packages/protocol

* [x] T016 \[S0901] Run focused protocol Vitest coverage for hero and ingest contracts (`packages/protocol/tests/heroes.test.ts`, `packages/protocol/tests/ingest.test.ts`)
* [x] T017 \[S0901] Run protocol workspace typecheck and focused Biome check for touched package files (`packages/protocol/package.json`)
* [x] T018 \[S0901] Run ASCII, LF, `git diff --check`, and manual no-overclaim review for changed protocol files (`packages/protocol/README_protocol.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 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://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase09-session01-contracts-and-naming-baseline/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.
