> For the complete documentation index, see [llms.txt](https://docs.trueopen.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.trueopen.ai/protocol/v1/conventions.md).

# Protocol Conventions

Normative language, sources of authority, versioning, and failure behavior in TrueOpen V1.

This documentation describes consensus and participant behavior for TrueOpen V1. Versioned rule pages are authoritative. Design explanations, operator guides, and the numbered Task stage walkthroughs illustrate those rules; their location within a protocol version does not make them separate sources of requirements. If a walkthrough differs from its linked governing rules, the rules take precedence.

## Normative language

The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, **SHOULD NOT**, and **MAY** indicate requirement strength when written in uppercase:

* **MUST**, **MUST NOT**, and **REQUIRED** define behavior necessary for protocol compatibility or safety.
* **SHOULD** and **SHOULD NOT** describe the expected behavior unless a documented reason justifies a different implementation choice.
* **MAY** identifies optional behavior that must not change consensus results or another participant's obligations.

Descriptive present-tense statements in the governing rule pages define V1 behavior even when those keywords are not repeated in every sentence.

## Sources of authority

Accepted on-chain state is authoritative for identity, assignment, deadlines, commitments, balances, settlement, and finality. Chain events are notifications that trigger a query; an event alone is not a substitute for current state.

Builder, Nexus, Cortex, adapter, indexer, and user-interface observations are off-chain information. They can transport data or initiate a protocol action, but cannot independently create an assignment, verdict, payment, or penalty.

## Determinism

All validators must derive the same result from the same accepted state and transaction. Consensus behavior must not depend on local time, floating-point arithmetic, map iteration order, network arrival order, private scoring, external API results, or implementation-specific defaults.

Canonical encodings, hashes, integer arithmetic, domain separators, and frozen version selectors are part of the protocol input where specified.

## Versioning and snapshots

An accepted Task keeps the Profile, order, candidate, parameter, encoding, and rule versions frozen for it. Later configuration or governance changes affect only the explicitly defined future boundary and do not reinterpret historical signatures or state.

An implementation that does not support a required version must reject the action or stop processing that path. It must not silently interpret the material under a newer or older version.

## Fail closed

Unknown versions, invalid signatures, inconsistent commitments, missing required randomness, arithmetic overflow, and violated invariants fail closed. A failure path may produce a defined timeout, refund, or unavailable-data outcome; it must not invent missing protocol facts.


---

# 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://docs.trueopen.ai/protocol/v1/conventions.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.
