Three conventions a linter could not express

Stylelint enforcing what it can, and three rules that stayed as prose.

  1  a component must not set margin on itself.
     spacing is the parent's decision.
     — expressible as a rule, and it produces false
       positives on utilities, which are a component
       in the rule's eyes.

  2  a layout primitive takes exactly one variable.
     — not expressible. it is about the shape of the
       abstraction rather than about syntax.

  3  a colour must come from the palette OR be
     documented as an optical exception.
     — the first half is enforced. the second is a
       comment convention nobody can check.

The first one is the interesting failure: a rule exists, it works, and its false positive rate on the utility layer made it unusable. Scoping it to the components layer would fix that and requires the linter to know about cascade layers, which it does not.