Mode 01

A total nobody can trace

A figure sitting above the rows it claims to summarise, written as a literal. It looks calculated, so nobody checks it until a customer does.

As generated
Assessed payable · by month
$268,500.00
90k45k0
Credit notes were never applied. The last three months are overstated, and the header is typed.
With the rules
Assessed payable · by month
$256,482.00
90k45k0
Credit notes applied — the tail turns down. The header is the sum of the series drawn.
The rule that closes it

Every figure names the data it comes from. Filter the set and the figure moves, because it was never independent.

Mode 02

A list that does not execute its own title

The heading says Overdue invoices. The list is every invoice, sorted by date. The title was written as a label rather than as a filter.

As generated
Overdue invoices
InvoiceCustomerStatus
INV-4468Sable & VossOverdue
INV-4452Kestrel PharmaOverdue
INV-4463Ostara Glassworks
One of these is not overdue.
With the rules
Overdue invoices
InvoiceCustomerStatus
INV-4468Sable & VossOverdue
INV-4452Kestrel PharmaOverdue
The title is the filter. The rows are what it returned.
The rule that closes it

A titled list is a query. The title states the filter, and the rows are what the filter returned — never a superset of it.

Mode 03

A count that counts the wrong thing

A filter reading All statuses (11), where 11 was the number of records. It looks like a count, so it is never questioned.

As generated
Search claimsAll statuses (11) 11 results
Eleven was the number of records, not of statuses.
With the rules
Search claimsAll statuses (6) 19 results
Six values in the enum; nineteen rows drawn.
The rule that closes it

A count names its set. If it cannot say which array it counted, it does not render.

Mode 04

A summary whose worst rows are invisible

Sorted by recency, because recency is what the data had. The claim that expired last week is on page four, below three that are not urgent at all.

As generated
Claims by status
Awaiting documents34
Awaiting survey28
Ready for decision24
Time-barred6
Alphabetical. The six that expired are last and unmarked.
With the rules
Claims by status
Time-barred6
Ready for decision24
Awaiting survey28
Awaiting documents34
Severity leads. Volume is the tiebreak.
The rule that closes it

Severity orders an operational list; recency is a tiebreak. The screen leads on what the operator must act on first.

Mode 05

A counter padded past its own data

A footer reading Page 1 / 2 on a set of one, because the page count was rounded rather than derived. Page two is blank.

As generated
Results
InvoiceCustomerAmount
INV-4471Vondel Machinery$24,100.00
Showing 1–1 of 112
Page two is empty. The count was rounded, not derived.
With the rules
Results
InvoiceCustomerAmount
INV-4471Vondel Machinery$24,100.00
Showing 1–1 of 11
One page, because there is one page of data.
The rule that closes it

This one is compiled rather than stated. Pagination derives its range and its total from the real set, so there is nowhere to type a number.

Mode 06

A control that lies about when it applies

A confirmation offering to void an invoice the data settled fourteen minutes earlier. The row looked like every other row.

As generated
INV-4463 · Ostara Glassworks
Status
Voiding is offered on a record the data settled.
With the rules
INV-4463 · Ostara Glassworks
Status
The menu is read from the record, not from the row.
The rule that closes it

Status is data; derived state is not status. The action is read from the record, and the count above stops calling it actionable.

Mode 07

A screen with no way out

A second-factor prompt with no recovery link, no support route and no way back to sign-in. Correct for the person who has their phone, and a dead end for everybody else.

As generated
Two-factor
••••••
Verify
No recovery, no support, no way back to sign-in.
With the rules
Two-factor
••••••
VerifyUse a backup codeBack to sign-in
Every screen states its exits, including this one.
The rule that closes it

Every screen states its exits. A surface that can trap somebody is not finished, however well the happy path renders.

Mode 08

Breadcrumbs that lead nowhere

A trail rendered from the URL rather than from real routes. Half the segments resolve to nothing — and it is always the one you wanted.

As generated
Claim detail
Home/Claims/2026/CLM-2026-0121
Two of those segments are not routes. Both 404.
With the rules
Claim detail
Every segment is a route. The current page is text.
The rule that closes it

Breadcrumbs are navigation, not decoration. Every segment is a route that exists, and the current page is text rather than a link.

Mode 09

A collapsed navigation that empties the screen

The shell hides its own content when the sidebar collapses, because the layout assumed a fixed width. Nothing is wrong with the data. The screen is simply blank.

As generated
Sidebar collapsed
Nothing rendered
The data is intact. The layout assumed a fixed width.
With the rules
Sidebar collapsed
Collapsed is a state of the shell, and it is verified.
The rule that closes it

A shell is a component with states. Expanded, collapsed and every width between are verified, from phone width to wide desktop.

Mode 10

A menu clipped at the edge of a scrolling table

The last row’s actions open inside an overflow container and are cut in half. The action exists, and cannot be reached.

As generated
Claims · scrolling
CLM-2026-0118
CLM-2026-0119
CLM-2026-0120
CLM-2026-0121
The last row’s menu is cut by its own container.
With the rules
Claims · scrolling
CLM-2026-0118
CLM-2026-0119
CLM-2026-0120
CLM-2026-0121
Portalled out of the scroll region, and flipped to fit.
The rule that closes it

Overlays are portalled out of scrolling regions, and flipped when they would otherwise leave the viewport.

QuestionsAnswered plainly

Straight answers.

The questions a sceptical lead asks before they will put an unfamiliar file in front of their team.

11Back to the top →
Answer 01

No.

It ships components and tokens, but that is not what you are buying. The product is the rules layer that decides what gets computed, what gets shown and what gets refused — plus the machinery that makes those rules checkable.

Answer 02

If it reads a rules file, yes.

It is built for Claude Design users generating business UI. Because the layer is plain markdown loaded as project instructions, anything else that reads a rules file will use it too. There is nothing proprietary to integrate.

Answer 03

No. The judgement, yes.

The tokens are yours to set and brand fit is a config change. The judgement rules are not configurable, because that is the product. If you want a different opinion about derivation, you want a different product.

Answer 04

Nothing breaks.

The rules are written against behaviour rather than internals, so upstream releases move underneath them. Where a rule does need to change, it changes in one file you can read in an afternoon.

Answer 05

Once. Then faster.

Marginally slower on the first generation. Considerably faster by the fourth, because you are not re-prompting it to fix a total that never tied.

Reckon

A plausible number
is worse than none.

None of this is styling. It is the part a design or development team has to undo before they can build on what came out.

Built for Claude Design · plain markdown · nothing to run