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.
| View | Rules | Responsibility |
|---|---|---|
| Parsing | 112 | Input normalization, layout, block and inline recognition, attributes, and lexical boundaries. |
| Resolution and rendering | 53 | Document-wide resolution, core semantic behavior, and HTML serialization. |
| AST interchange | 60 | The core serialized tree shape, source positions, and cross-implementation AST guarantees. |
| Canonical writing | 80 | Canonical Carve source, Markdown and plain-text targets, round trips, and escaping. |
| Imports, security, and extensions | 39 | Optional 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.
| Rule | Last title | Replacement |
|---|---|---|
CARVE-P9-028 | THE ENGINE'S OWN WORDS ARE A RENDER OPTION | CARVE-P9-063 |
CARVE-PRE-001 | THE EXECUTABLE ARTIFACTS DECIDE NOTHING | .github/CONTRIBUTING.md#what-settles-a-question |
CARVE-PRE-002 | A GOLDEN IS NORMATIVE ONCE COMMITTED, NOT ONCE GENERATED | .github/CONTRIBUTING.md#what-settles-a-question |
CARVE-PRE-003 | A CHECKER THAT DISAGREES WITH A COMMITTED GOLDEN IS WRONG UNTIL A CLAUSE SAYS OTHERWISE | .github/CONTRIBUTING.md#what-settles-a-question |
CARVE-P9-079 | A QUOTE'S DIRECTION IS DECIDED ON THE RENDERED TEXT | CARVE-P3-023 |
CARVE-P12-003 | TEXT COALESCING OCCURS DURING parse(x), NOT SERIALIZATION | CARVE-P12-002 |
CARVE-P0-016 | A REAL DIV IS A CONTAINER LIKE ANY OTHER | CARVE-P9-084 |
CARVE-P0-018 | DEFINITION BODIES FOLLOW THE SAME CONTAINER REACH RULE | CARVE-P9-083 |
CARVE-P2-017 | BELOW THE BODY'S COLUMN THE BODY ENDS | CARVE-P9-083 |
CARVE-P3-015 | INDENTATION IS COLUMNS, NOT CHARACTERS | CARVE-P9-083 |
CARVE-P0-004 | ONE AUTHORED BLOCK BASE | CARVE-P0-024 |
CARVE-P0-009 | A QUOTE'S LAST BLOCK MAY ITSELF BE A QUOTE | CARVE-P0-024 |
CARVE-P0-021 | A BLOCK OPENER IN THE BAND FOLDS ON THE SAME TERMS | CARVE-P0-024 |
CARVE-P0-022 | AN OPAQUE MARKER-LINE QUOTE PRESERVES THE BAND AS TEXT | CARVE-P0-024 |
CARVE-P2-028 | A TERM HAS NO CONTENT COLUMN | CARVE-P0-024 |
CARVE-P9-031 | CONTINUATION-MARKER REACHES ITS OWN COLUMN | CARVE-P0-024 |
CARVE-P9-032 | ONE IS A COUNT AND THE BOUNDARY IS NOT | CARVE-P0-024 |
CARVE-P9-033 | THE MARKER IS ONE OPERATION IN EVERY CONTAINER | CARVE-P0-024 |
CARVE-P9-053 | A COMMENT IS THE ONE EXCEPTION | CARVE-P0-024 |