#Human-facing review checklist
A designer or founder should be able to use this section without reading the agent schema.
#Visual decisions
- Can I explain why this palette belongs to this product?
- Can I explain why this type system belongs to this product?
- Do repeated components share a real semantic role?
- Are cards creating useful boundaries?
- Does color encode something consistent?
- Does every decorative accent have a reason?
- Is whitespace shaping hierarchy or merely making the page look expensive?
- Does the interface still feel coherent with real content lengths?
- Are the loading and error states designed to the same standard as the happy path?
- Does motion explain state or simply animate the page?
#Copy decisions
- Does the first sentence add information beyond the heading?
- Does helper text add a constraint, consequence, instruction, or recovery path?
- Can a paragraph be replaced with a concrete fact?
- Are claims specific to this product?
- Does the copy contain staged introductions before simple information?
- Are there repeated rhetorical patterns that make several sections sound identical?
- Does the copy repeat the visible state?
- Does an identity or page label add context beyond the nearby logo, title, or navigation?
- Are headings descriptive enough to support scanning?
- Would removing this sentence change the user's understanding or decision?
#Product specificity
- Could the page belong to an unrelated SaaS after changing the logo?
- Are screenshots and examples real enough to reveal the product's actual structure?
- Do the primary actions reflect the real user goal?
- Does the design system have decisions beyond starter defaults?
- Are original product concepts visible in the interface?
#Before and after examples
#Example 1: generic AI landing hero
#Slop
Unlock seamless collaboration, automate repetitive tasks, and empower your team to achieve more.
#Correction
Run the same rules locally and in pull requests. Each finding includes its component, evidence, severity, and proposed correction.
The correction uses concrete behavior. The visual treatment can then follow Layr's actual design system.
#Example 2: card accent with no semantics
#Slop
Get started in just minutes.
The blue stripe does not represent category or state. The description adds little information.
#Correction
Install the CLI, point Layr at the repository, and run `layr review`.
Or keep the stripe if it has a defined meaning:
- blue
- design-system rule
- amber
- accessibility warning
- red
- destructive interaction risk
Once color carries semantics, the accent earns its place.
#Example 3: pseudo-technical copy
#Slop
Initialize the future of intelligent design infrastructure.
#Correction
Tokens, typography, spacing, color, motion, and component rules used by Layr.
If 0.1 is a real version, keep it and make it useful:
Version 0.1 · Updated Sep 15, 2026 · View changes
#Example 4: overexplained settings
#Slop
Customize the appearance of your interface by choosing the visual theme that best fits your preferences.
Theme
Select the theme you would like to use for the application.
#Correction
Theme
The options explain the choice.
#Example 5: necessary explanatory copy
#Keep the detail
This permanently deletes 18 projects and their uploaded files. Members will lose access immediately. This action cannot be undone.
Type ACME to continue.The copy carries consequence, scope, and irreversibility. Removing it would reduce informed action.
#Example 6: common font used intentionally
#Acceptable
- Typeface
- Inter
- Reason
- full language coverage required by the product, stable numeric alignment, existing four-year brand usage, and shared typography across web and native apps.
Layr should not flag the font because a real design decision exists.
#Example 7: bento layout
A bento grid is a weak signal on its own.
If the layout communicates different object sizes, priority, or media types clearly, it may be appropriate. The 2026 Reddit-mined dataset found bento-grid complaints near the bottom of the measured signals.
Layr should inspect hierarchy and semantics before creating a finding about the pattern.
#Example 8: an anti-slop headline with no clear promise
#Slop
AI slop starts with the choices you didn't make.
The line sounds like a conclusion, but it does not tell the reader whether this page helps prevent, find, or remove AI slop. The ID and canonical law name add a second title before the point.
#Correction
Every visible decision should support meaning, action, identity, accessibility, or comprehension.
The headline names the outcome. The following sentence gives the reader a criterion for reviewing the interface. LAYR-001 and The Intentionality Law remain in the citation and source representation, where they help identify the rule.
#Example 9: navigation that leads back to the same place
#Slop
- Header
- Reference current
- Reference index breadcrumb
- Reference
- Rule page
- Canonical URL ↗ opens this same rule page
#Correction
- Header
- Reference current
- Reference index
- no breadcrumb needed
- Rule page
- Copy URL copies the current address
- View source Markdown opens the Markdown representation
The correction keeps navigation to real destinations and gives the current URL a useful action. On deeper pages, a breadcrumb to the parent category can still help.
#Example 10: filler in a type specimen and agent description
#Slop
- Type specimen
- Functional clarity. Editorial clarity.
- Agent description
- An open reference connecting established design knowledge with practical instructions for people and software agents.
#Correction
- Type specimen
- Perception & Visual Hierarchy. The Intentionality Law.
- Agent description
- Each rule combines source-backed guidance, a visual study and practical examples. Agents can read its Markdown representation.
Real page titles reveal how the type behaves at useful lengths. The agent description states what the reference contains and where agents can read it.
#Example 11: a list row that moves on hover
#Slop
.category-row > a:hover {
padding-left: var(--space-2);
color: var(--color-accent-text);
}
#Correction
.category-row > a:hover { color: var(--color-accent-text); }
.category-row > a:focus-visible { outline: 2px solid var(--color-focus); }
The row still responds to pointer and keyboard interaction. Its content stays in place because shifting it communicates no additional state. A motion cue with a real purpose should be judged in its own context.