> 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/phase17-session01-protocol-notice-contract-parity/tasks.md).

# Task Checklist

**Session ID**: `phase17-session01-protocol-notice-contract-parity` **Total Tasks**: 22 **Estimated Duration**: 3-4 hours **Created**: 2026-06-05

***

## 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 | 10     | 10     | 0         |
| Testing        | 3      | 3      | 0         |
| **Total**      | **22** | **22** | **0**     |

***

## Setup (3 tasks)

Initial configuration and evidence review.

* [x] T001 \[S1701] Verify Phase 17 Session 01 prerequisites, protocol package guidance, and quarantined Notice Board evidence (`.spec_system/PRD/phase_17/session_01_protocol_notice_contract_parity.md`)
* [x] T002 \[S1701] Verify protocol package scripts, existing notice/event/rest source layout, and focused test entry points (`packages/protocol/package.json`)
* [x] T003 \[S1701] \[P] Create notice contract test scaffold for canonical and compatibility coverage (`packages/protocol/tests/notices.test.ts`)

***

## Foundation (6 tasks)

Core structures and base protocol helpers.

* [x] T004 \[S1701] Define notice type, priority, author type, and severity vocabularies with exhaustive enum handling (`packages/protocol/src/notices.ts`)
* [x] T005 \[S1701] Expand `Notice` to canonical fields plus `body`, `targets`, `postedAt`, and `severity` compatibility aliases (`packages/protocol/src/notices.ts`)
* [x] T006 \[S1701] Define Notice Board list, context, create, resolve, and compatibility REST contracts with bounded query and response shapes (`packages/protocol/src/notices.ts`)
* [x] T007 \[S1701] Add notice type, priority, author type, and severity guards with schema-validated input and explicit fail-closed results (`packages/protocol/src/notices.ts`)
* [x] T008 \[S1701] Add target session, tag, and related file array helpers with bounded length, deterministic ordering, and unsafe shape rejection (`packages/protocol/src/notices.ts`)
* [x] T009 \[S1701] Add severity derivation and canonical/compatibility alias normalization helpers with exhaustive enum handling (`packages/protocol/src/notices.ts`)

***

## Implementation (10 tasks)

Main protocol contract implementation.

* [x] T010 \[S1701] Update Notice Board server event interfaces for canonical `notice` and compatibility `message` payload keys (`packages/protocol/src/events.ts`)
* [x] T011 \[S1701] Update `ClientPostNotice` for expanded post fields while preserving `body`, `severity`, and `targets` compatibility (`packages/protocol/src/events.ts`)
* [x] T012 \[S1701] Update REST exports and compatibility `NoticeCreateRequest` to use the expanded Notice Board contracts (`packages/protocol/src/rest.ts`)
* [x] T013 \[S1701] Add notice type tests for canonical fields, compatibility aliases, and request/response contracts (`packages/protocol/tests/notices.test.ts`)
* [x] T014 \[S1701] Add guard and parser tests proving invalid types, priorities, author types, and severities fail closed (`packages/protocol/tests/notices.test.ts`)
* [x] T015 \[S1701] Add target, tag, and related file helper tests for bounds, duplicate handling, absolute paths, traversal, and malformed values (`packages/protocol/tests/notices.test.ts`)
* [x] T016 \[S1701] Add severity derivation and alias normalization tests for type and priority combinations (`packages/protocol/tests/notices.test.ts`)
* [x] T017 \[S1701] Update event tests for `notice_board_hydrate`, `notice_board_message`, `notice_resolved`, and expanded `post_notice` compatibility (`packages/protocol/tests/events.test.ts`)
* [x] T018 \[S1701] Update REST type tests for canonical `/notice-board` and compatibility `/notice` contracts (`packages/protocol/tests/rest.test.ts`)
* [x] T019 \[S1701] Update protocol README with Notice Board contract ownership, downstream package order, and privacy boundary notes (`packages/protocol/README_protocol.md`)

***

## Testing (3 tasks)

Verification and quality assurance.

* [x] T020 \[S1701] Run focused Vitest coverage for notice, event, and REST protocol contracts (`packages/protocol/tests/notices.test.ts`)
* [x] T021 \[S1701] Run protocol package typecheck and resolve any compile drift (`packages/protocol/package.json`)
* [x] T022 \[S1701] Validate ASCII and LF for touched files, then record implementation notes and validation evidence (`.spec_system/specs/phase17-session01-protocol-notice-contract-parity/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 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/phase17-session01-protocol-notice-contract-parity/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.
