Form Contract

A specification nodes conform to by declaring conforms_to::[[X Form Contract]] in their identity predicate block. A Form Contract names a node shape ([[Gloss Form Contract]], [[Decision Form Contract]], [[Reference Form Contract]]) and makes the shape's requirements explicit enough that a validator — a build-time script, a curation-time agent, or a human reviewer — can check a candidate node against them. The requirements use RFC 2119 keywords (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY) so the obligation level of each clause is unambiguous.

Form Contracts form a shallow inheritance tree. [[Markdown Node Contract]] is the root: every node conforms to it, and it specifies file-form basics every other contract assumes. A specializing contract declares extends_contract::[[Parent Contract]] and adds requirements on top of the parent's without silently overriding them. A conforming node satisfies the parent's requirements and the child's requirements. Contracts themselves are Markdown Nodes, and every Contract declares conforms_to::[[Contract Form Contract]] — the meta-contract — which makes the Contract form self-describing.

The reason for conformance rather than identity (is_a::[[X]]) is pluralism. A single node may conform to multiple Form Contracts when its role bridges forms — a case-study-shaped decision, a gloss that also functions as a reference stub. Conformance is additive; identity is exclusive. Conformance is revisable when the contract evolves; identity becomes entangled with the node's meaning. The graph accommodates the first; the second forces premature commitment every time a form's definition shifts.

Relations