Field Notes

What we're learning while building the judgment layer.

Patterns we keep seeing, calls we keep making, and the working theory of why agents ship UI that's technically correct and experientially wrong. Updated as we learn.

Start here
Concepts

The component library was the right answer to a problem agents no longer have

Component libraries exist because building UI was expensive and inconsistency was hard to prevent. AI agents changed the cost equation. The case for building unencumbered — and what you need instead.

5 min read →
Anti-patterns

The dashboard default: why agents build viewers when the job is deciding

Four KPI cards, a table, a date filter. The dashboard is the agent's lowest-effort answer to 'build me a tool for this data.' It's also wrong most of the time.

4 min read →
Workflow

Adding design review to your agent: what the workflow looks like

How to add a design judgment step to Claude Code, Cursor, or any agent that builds UI. What to call, when to call it, how to read the response, and what the loop looks like across multiple builds.

5 min read
Patterns

Affordance density: how much belongs on a row before it stops being readable

Agents solve row density in one of two ways: everything visible (unreadable) or almost nothing visible and everything behind a click (high-ceremony). The right answer is a calibrated three-tier model.

5 min read
Concepts

Cognitive load is three things, not one

Most design principles treat cognitive load as a single dial to turn down. It isn't. CLT has three sources that behave differently — and reducing the wrong one makes a screen worse.

6 min read
Concepts

Component grammar: when shadcn defaults stop being neutral

Shadcn's defaults are a position, not a blank slate. When agents apply them unchanged, the result reads as AI-built before the user consciously registers why.

5 min read
Anti-patterns

Confirm everything: why agents wrap routine actions in "Are you sure?"

The confirmation dialog is the agent's safety net. Applied to every action, not just destructive ones, it creates an interrupt-heavy experience that slows down every workflow it was meant to protect.

4 min read
Concepts

Day-shape: why one persona has many jobs, and your UI needs to know which one is loaded

Most users don't have one job — they have several, and they shift between them across the workday. Designing for 'the user' without day-shape means designing for the average of all their jobs, which usually fits none of them well.

5 min read
Patterns

Decision surfaces: putting the action where the eye already is

A decision surface is a layout where each row is a unit of decision and the action is on the record. It's what agents should build when the job is deciding, not watching.

5 min read
Concepts

Why order fulfillment punishes friction harder than financial review

Extraneous load is near-fatal in warehouse operations and tolerable in loan underwriting. Good UX isn't universal — the same pattern can be right in one domain and wrong in another.

5 min read
Concepts

JTBD lives in three places: corpus, project profile, and score

Jobs-to-be-Done isn't a single lookup. In TheDesignAgent it shows up in three distinct places — and the evaluation only makes sense when all three are in play.

5 min read
Anti-patterns

Modals all the way down: why agents bury decisions you'd put on the row

The modal reflex is one of the most consistent patterns in agent-built UI. A button opens a dialog. The action lives in the dialog. Save closes it. It compounds in batch workflows.

4 min read
Patterns

Outputs that update as you decide: the summary is a side-effect, not a dashboard

Decision surfaces need a running total. Not a KPI strip showing system state — a summary that reflects what the user has decided so far. These are different numbers, and agents build the wrong one.

4 min read
Patterns

Progress rails: layouts that mirror the sequence of work, not its categories

A progress rail is the shape that emerges when a sequential job gets the interface it needs. Not a wizard, not a stepper, not tabs — something closer to a spatial map of the work already done and the work still ahead.

5 min read
Workflow

Reading the score trajectory: why convergence beats absolute fit

A single fit score tells you where a build is. A score trajectory tells you whether it's getting better, plateaued, or regressing — and which dimensions are moving. The second question is usually the more important one.

5 min read
Concepts

The component library was the right answer to a problem agents no longer have

Component libraries exist because building UI was expensive and inconsistency was hard to prevent. AI agents changed the cost equation. The case for building unencumbered — and what you need instead.

5 min read
Anti-patterns

The 8-field form: why agents collect what the schema has, not what the job needs

Agents build forms from data models. A schema with twelve fields produces a form with twelve fields. The job usually requires three. This is how to close that gap.

4 min read
Anti-patterns

The filter buffet: every column gets a filter, none of them get used

Agents build filters from columns. A table with ten columns gets ten filter controls. The user's actual filtering question involves two of them. The rest is noise that teaches the interface to be ignored.

4 min read
Workflow

The first call is discovery: why the init prompt sets the frame for everything after

The first time a build agent calls TheDesignAgent with no prior context, something different happens. Not just a score — an inference of domain, persona, jobs, and day-shape. Every evaluation that follows is calibrated to what was learned here.

5 min read
Workflow

The full design process, end to end: what an evaluation actually looks at

TheDesignAgent doesn't evaluate one thing. It runs through the same process a skilled human design reviewer would — JTBD, cognitive patterns, visual craft, visual cognitive load, component grammar, accessibility — encoded as a rubric an agent can call mid-build.

6 min read
Concepts

The missing design layer: why AI coding agents ship UI without a judgment step

The AI coding stack has linters, test runners, type checkers, and deployment gates. It has no design review step. This isn't an oversight — it's a hard problem. Here's why it's still unsolved and what solving it actually requires.

6 min read
Concepts

The tools agents reach for (and the design tool that isn't there)

Claude Code and Cursor have access to dozens of MCP tools covering code, data, deployment, and communication. The design judgment tool is missing from every list. This is what agents actually have available, and what the gap looks like from the inside.

5 min read
Case studies

Visual cognitive load on a financial review screen: when the data was right but the layout fought the eye

The JTBD was correct. The workflow was sound. The screen still felt like work to look at. A visual lens evaluation on a loan review tool where the problem wasn't structure — it was parse cost.

6 min read
Concepts

Visual cognitive load: when a screen is well-designed and still hard to look at

A screen can be JTBD-aligned, cognitively appropriate for the job, and still be hard to parse. Visual cognitive load is the mental cost of reading the layout itself — paid before any task thinking starts.

6 min read
Concepts

What Figma access gives agents — and what it doesn't

Agents can now read Figma files, extract components, and pull design tokens. This is useful for implementation fidelity. It doesn't solve design judgment. Here's why the gap between 'access to designs' and 'understanding of design intent' is still wide.

5 min read
Concepts

Why there's no UX linter (and what it would take to build one)

ESLint catches code that violates rules. There's no equivalent for UI that violates design principles. The reason isn't that nobody tried — it's that design correctness isn't rule-shaped.

5 min read
Concepts

Two lenses, one pipeline: why UX and visual review are different jobs

A single rubric kept producing the same shape of answer regardless of what the agent was actually getting wrong. Splitting it in two fixed that.

5 min read
Anti-patterns

The dashboard default: why agents build viewers when the job is deciding

Four KPI cards, a table, a date filter. The dashboard is the agent's lowest-effort answer to 'build me a tool for this data.' It's also wrong most of the time.

4 min read