What is normative

Draft protocolSource at 169cbd2 ↗Source SHA-256 7dea4d8…7a1

This directory holds the normative definition of the Makechain protocol, and nothing else.

A document belongs here if and only if two independent implementations must agree on it to agree on the chain: block validity, state transitions, proof verification, settlement validity, release activation, and the outputs a verifier re-derives from certified inputs, such as a finalized event batch. Plans, operations guidance, client behaviour, derived views, availability profiles, evidence, and rationale at length live under docs/ and are not normative.

There is a second normative category, deployment obligations: rules a conforming deployment MUST meet that do not affect whether two implementations agree on the chain, such as keeping history in two copies, running an exporter and its standby, and checking the store against certified headers. They are normative because a deployment that ignores them loses history that no rule of the first category can restore. Chapter 17 of SPECIFICATION.md is their home and names them as such; the few that sit elsewhere stay with the subject they constrain, such as share custody in chapter 13. The procedure for meeting any of them is in docs/operations.md.

Document Defines
SPECIFICATION.md The protocol: identity, authorization, commands, state, blocks, consensus, proofs, settlement, releases, parameters, and invariants. Read this first.
encoding.md The canonical wire contract: primitive encodings, tags, schemas, digest domains, and limits.
state-machine.md The application transition tables: per-command guards, record access, accounting, and effects.
settlement-interface.md The settlement source interface: contract layout, proof shape, and the values a credit import binds.

Where two documents overlap, SPECIFICATION.md states the rule and the companion states its exact bytes or table. A conflict between them is a defect in both until resolved. This file is the only non-normative file in the directory.