Skip to content

Normative rule index ​

Carve has one normative language contract. These views filter that contract by implementation responsibility; they do not define conformance profiles or make any rule optional.

ViewRulesResponsibility
Parsing112Input normalization, layout, block and inline recognition, attributes, and lexical boundaries.
Resolution and rendering53Document-wide resolution, core semantic behavior, and HTML serialization.
AST interchange60The core serialized tree shape, source positions, and cross-implementation AST guarantees.
Canonical writing80Canonical Carve source, Markdown and plain-text targets, round trips, and escaping.
Imports, security, and extensions39Optional and host-facing behavior, importer contracts, security limits, diagnostics, and extension surfaces.

Together the views cover all 344 active rules exactly once. The source metadata lives in resources/spec/rules.json.

Retired rule IDs ​

Retired IDs are never reused. Their replacement points to the document that now owns the contract.

RuleLast titleReplacement
CARVE-P9-028THE ENGINE'S OWN WORDS ARE A RENDER OPTIONCARVE-P9-063
CARVE-PRE-001THE EXECUTABLE ARTIFACTS DECIDE NOTHING.github/CONTRIBUTING.md#what-settles-a-question
CARVE-PRE-002A GOLDEN IS NORMATIVE ONCE COMMITTED, NOT ONCE GENERATED.github/CONTRIBUTING.md#what-settles-a-question
CARVE-PRE-003A CHECKER THAT DISAGREES WITH A COMMITTED GOLDEN IS WRONG UNTIL A CLAUSE SAYS OTHERWISE.github/CONTRIBUTING.md#what-settles-a-question
CARVE-P9-079A QUOTE'S DIRECTION IS DECIDED ON THE RENDERED TEXTCARVE-P3-023
CARVE-P12-003TEXT COALESCING OCCURS DURING parse(x), NOT SERIALIZATIONCARVE-P12-002
CARVE-P0-016A REAL DIV IS A CONTAINER LIKE ANY OTHERCARVE-P9-084
CARVE-P0-018DEFINITION BODIES FOLLOW THE SAME CONTAINER REACH RULECARVE-P9-083
CARVE-P2-017BELOW THE BODY'S COLUMN THE BODY ENDSCARVE-P9-083
CARVE-P3-015INDENTATION IS COLUMNS, NOT CHARACTERSCARVE-P9-083
CARVE-P0-004ONE AUTHORED BLOCK BASECARVE-P0-024
CARVE-P0-009A QUOTE'S LAST BLOCK MAY ITSELF BE A QUOTECARVE-P0-024
CARVE-P0-021A BLOCK OPENER IN THE BAND FOLDS ON THE SAME TERMSCARVE-P0-024
CARVE-P0-022AN OPAQUE MARKER-LINE QUOTE PRESERVES THE BAND AS TEXTCARVE-P0-024
CARVE-P2-028A TERM HAS NO CONTENT COLUMNCARVE-P0-024
CARVE-P9-031CONTINUATION-MARKER REACHES ITS OWN COLUMNCARVE-P0-024
CARVE-P9-032ONE IS A COUNT AND THE BOUNDARY IS NOTCARVE-P0-024
CARVE-P9-033THE MARKER IS ONE OPERATION IN EVERY CONTAINERCARVE-P0-024
CARVE-P9-053A COMMENT IS THE ONE EXCEPTIONCARVE-P0-024

Released under the MIT License.