stroke-grid-monogram
Strokes woven on an N×N point grid, mirrored for balance.
brand-kit-as-code
Byte-identical every run, because the logo geometry is computed — never drawn, never generated by a model. A brand that diffs like any other build output.
$ assay gen --config brand.config.json --out brand/ $ assay proof --config brand.config.json --out proof.png $ assay diff --config brand.config.json --against brand/ # exit 1 on any drift
Every mark, favicon and ratio above is read from a committed artifact or computed by
validateConfig() at build time. npm test re-generates all three
working kits and fails on a single changed byte.
measured contrast, shipgauge's real accent on its real ink
the minimum assay requires for non-text UI (WCAG SC 1.4.11)
artifacts written — the run exits 1 before anything is emitted
a test asserts the refusal still happens, with the same sentence
shipgauge is a real sibling project with a real dark palette, ingested from its live stylesheet rather than invented for a demo. Routing around the gate would have made assay a tool that ships inaccessible brands quietly. Refusing makes it a tool with a contract.
Read the full account, including the exact line of shipgauge's stylesheet each colour was taken from.
Strokes woven on an N×N point grid, mirrored for balance.
A core with one to three partial-arc orbit rings, each ending in a node.
A square with chamfered corners and an optional inner accent notch.
Every coordinate on a 4-unit lattice, every shape filled rather than stroked — so it rasterises to whole pixels at 16px instead of dissolving.
files per kit — four SVGs, eight PNGs, an ICO, tokens in CSS and JSON, the bundled font, BRAND.md. The console lists them by name.
tests across 16 files, including exact path-string assertions on every geometry family
geometry families, each a pure function of its params and a seed
image-model calls in the pipeline — geometry is computed, so it can be diffed
It does not judge whether a mark is good, and it will happily generate a forgettable one from a forgettable config. It checks contrast, determinism and 16px legibility — three things a machine can actually decide.
The full list is on the limitations page.