jevcrates.git / jev-ui / src / CLAUDE.md
1@README.md
2
3- `preview::Preview::tags` refuses what a scraper would reject. Do not add a way
4  around it (a `new_unchecked`, a path that skips `Origin`): a bad card that
5  cannot be built is the point. A new constraint is a new `Refused` and a test.
6- `preview::required` is held to what `tags` writes by a test. A tag added to one
7  and not the other fails it.
8- `card::Chrome` is lmjtfy's 600 by 315 sheet times a whole unit. Keep its measures
9  lmjtfy's, so a site's card and lmjtfy's `packages/card` agree.
10- `wire::json` may add whitespace and nothing else: no reordered keys, no dropped or summarised fields (lmjtfy's rule). Its test parses the printed text back.
11- `flow::spine` draws only the rows it is given. A site builds them from the code it describes; do not give it a way to add decoration that is not a row.
12- `shell::Attr::new` panics on a name that could end the tag. That is deliberate:
13  names are a site's constants and the failure is at the first render.