ordering rule
ordering.canonical-order
Keep harmony operands, state scales, pattern axes, and Formation slots in their Canon-authored semantic order.
- product: error
- marketing: error
- public: warning
- docs: warning
Rationale
No separate rationale is authored; the rule statement above is authoritative.
Guidance
No separate guidance is authored. The rule's authored examples and fix policies follow below.
Checker behavior
Message
Use canonical Canon order for {captured}.
Applies in
- heading
- body
- blockquote
- list item
- table cell
- json key
- glossary term
- notation token
Detection
- composition ids
- compose.harmony
- compose.pattern
- compose.single-formation
- compose.dyad-formation
- kind
- ordering
- state order
- under
- centered
- over
Authored examples and fix policies
- subtypes
[ { "examples": { "correct": [ { "check_input": { "kind": "document" }, "format": "text", "id": "harmony-capacity-first", "profile": "general-prose", "surface": "docs", "text": "Focus × Mental" } ], "incorrect": [ { "captured": "Mental × Focus", "check_input": { "kind": "document" }, "format": "text", "id": "harmony-domain-first", "outcome_id": "violation", "profile": "general-prose", "suggested": "Focus × Mental", "surface": "docs", "text": "Mental × Focus" } ] }, "id": "harmony-operands", "outcomes": [ { "disposition": "structural", "fix": { "interactive": "auto", "unattended": "retry" }, "id": "violation" } ], "supersedes": [] }, { "examples": { "correct": [ { "check_input": { "kind": "document" }, "format": "text", "id": "state-scale-canonical", "profile": "general-prose", "surface": "docs", "text": "Under → Centered → Over" } ], "incorrect": [ { "captured": "Over → Centered → Under", "check_input": { "kind": "document" }, "format": "text", "id": "state-scale-reversed", "outcome_id": "violation", "profile": "general-prose", "surface": "docs", "text": "Over → Centered → Under" } ] }, "id": "state-scale", "outcomes": [ { "disposition": "structural", "fix": { "interactive": "retry", "unattended": "retry" }, "id": "violation" } ], "supersedes": [] }, { "examples": { "correct": [ { "check_input": { "expectation": { "attempt": { "axes": [ { "axis": "axis.open", "state": "under" }, { "axis": "axis.focus", "state": "over" } ], "composition_id": "compose.pattern" }, "components": [ { "end": 4, "role": "axes", "start": 0 } ], "kind": "composition-attempt" }, "kind": "typed-value", "node": "notation_token" }, "format": "text", "id": "pattern-axis-order", "profile": "patterns", "surface": "docs", "text": "O-F+" } ], "incorrect": [ { "captured": "F+O-", "check_input": { "expectation": { "attempt": { "axes": [ { "axis": "axis.focus", "state": "over" }, { "axis": "axis.open", "state": "under" } ], "composition_id": "compose.pattern" }, "components": [ { "end": 4, "role": "axes", "start": 0 } ], "kind": "composition-attempt" }, "kind": "typed-value", "node": "notation_token" }, "format": "text", "id": "pattern-axis-reordered", "outcome_id": "violation", "profile": "patterns", "surface": "docs", "text": "F+O-" } ] }, "id": "pattern-axes", "outcomes": [ { "disposition": "structural", "fix": { "interactive": "suggest", "unattended": "retry" }, "id": "violation" } ], "supersedes": [ { "rule_id": "composition.pattern", "subtype_id": "member" } ] }, { "examples": { "correct": [ { "check_input": { "kind": "document" }, "format": "text", "id": "single-formation-slot-order", "profile": "general-prose", "surface": "docs", "text": "Single Formation: Level Capacity Under" } ], "incorrect": [ { "captured": "Single Formation: Capacity Level Under", "check_input": { "kind": "document" }, "format": "text", "id": "single-formation-slot-reordered", "outcome_id": "violation", "profile": "general-prose", "surface": "docs", "text": "Single Formation: Capacity Level Under" } ] }, "id": "formation-slots", "outcomes": [ { "disposition": "structural", "fix": { "interactive": "retry", "unattended": "retry" }, "id": "violation" } ], "supersedes": [] } ]