Checks
Every write checks what it asked for and reports what it could not do. Each warning names the layer, what it asked, what it got and the fix. The app shows the same warnings as badges on the canvas.
- Verification. Sizes and text a node asked for are compared with what was built (
NOT_APPLIED). - Layout audit. Content a fixed frame clips (
LAYOUT_OVERFLOW) and content an edge-pinned layer covers (LAYOUT_OCCLUDED)."overflow": "hidden"marks clipping as intended. - Text. A text box its content outgrows (
TEXT_TRUNCATED), a font that had to be substituted (FONT_SUBSTITUTED).
The Result codes page lists every code.
A design system's rules are a separate check: facet --doc f.facet call lint lists every layer that breaks the DESIGN.md beside the file. With no DESIGN.md it checks nothing, and says exists: false.
Saying what must hold: expect
expect on any node states what must be true after layout. A miss is an EXPECT_FAILED warning, so a build can be trusted without a screenshot.
{
"name": "Headline",
"width": 240,
"padding": 16,
"fill": "#FFFFFF",
"column": [
{
"text": "Checkout errors rose on Saturday after the release",
"font": "Inter 18/24 700",
"width": "fill",
"expect": {"lines": 1}
}
]
}

The headline is meant to fit on one line in a 240 px card. It takes three, and the build says so.
- EXPECT_FAILED: schema.children.0: "Checkout errors rose on Saturday after t" has 3 line(s); expected 1
| Key | Holds when |
|---|---|
lines | a text has exactly this many lines |
maxLines | a text has at most this many |
fits | nothing in the layer is clipped or cut short |
width, height | the layer is this size, or within {"min", "max"} |
noOverlap | the children in a container's flow do not overlap |
Previews
--preview out.png on any write renders what that call wrote: each top-level layer it built or synced, whole, or the layer it modified, not the page (a component set shows every variant). facet shot NODE -o out.png --scale 2 renders any layer at any time. Previews draw in layer order, so scrims and sheets cover what is under them, as on the canvas.