<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu" -->

---
title: Eval-Driven Design Systems (Part 2) | daily.dev
description: Gusto&#x27;s Builder Enablement team shares how they operationalized AI-legible design system schemas using an eval-driven approach on Braintrust. They built three...
canonical: https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Eval-Driven Design Systems (Part 2) | daily.dev
og:description: Gusto&#x27;s Builder Enablement team shares how they operationalized AI-legible design system schemas using an eval-driven approach on Braintrust. They built three...
og:url: https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu
og:image: https://api.daily.dev/og/posts/bXCEu42YU.png
og:image:alt: Eval-Driven Design Systems (Part 2)
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Eval-Driven Design Systems (Part 2)

**[RUBYLAND](https://daily.dev/sources/rubyla)** · 6 min read · 3 upvotes · 1 comments

## Summary

Gusto's Builder Enablement team shares how they operationalized AI-legible design system schemas using an eval-driven approach on Braintrust. They built three deterministic scorers — prop-validity, enum-validity, and import-match — to check AI-generated JSX against component schemas rather than golden answers. Human ratings for 'intent' and 'idiom' catch failures that static analysis misses, like button labels violating content guidelines. A key insight: production traffic from real engineer requests is captured verbatim and fed back into the eval pipeline, allowing the dataset to grow from actual usage rather than hand-written prompts. The post closes with a practical 7-step guide for any design system team wanting to make their components machine-readable and measurable.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://engineering.gusto.com/eval-driven-design-systems-part-2-5b989d492281>

## Questions this post answers

### How can I test whether an AI coding assistant is correctly using my design system's component schemas?

Build deterministic scorers that check generated JSX against the schema itself rather than a golden answer: prop-validity checks every prop exists on the schema (fractional scoring, not pass/fail), enum-validity checks enum prop values are legal, and import-match verifies the import statement matches exactly to prevent broken builds. Layer human ratings for intent and idiom to catch failures like content-guideline violations that compile fine but aren't idiomatic.

_Developers wiring evals into their own design systems can find similar deep dives on daily.dev._

### Why does a component prop-validity scorer still fail even when the JSX compiles successfully?

A prop can exist syntactically in JSX yet still be invalid because it was never defined on the component's schema, such as passing an intent prop to a Button that only supports variant. The compiler doesn't catch this since JSX allows arbitrary attributes, but a schema-aware scorer flags it below 1.0, and models that actually read the schema stop reaching for the prop.

_Teams debugging AI-generated UI code mismatches often track these edge cases via daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@agustinbarrientos** · 0 upvotes

> Feeding real engineer requests back into the eval set seems far more useful than inventing a perfect prompt suite in a room.

## Similar posts on daily.dev

- [AI Evals for Solo Developers 2026: A Practical Guide](https://daily.dev/posts/ai-evals-for-solo-developers-2026-a-practical-guide-ms6ijzdsf) · Alex CloudStar · 0 upvotes · 0 comments
- [AI Design Systems: How to Build for Automation, Not Just Aesthetics](https://daily.dev/posts/ai-design-systems-how-to-build-for-automation-not-just-aesthetics-rfpcmkjoy) · Netguru · 0 upvotes · 0 comments
- [AI makes design system guardrails mandatory; this framework delivers them—Martian Chronicles, Evil Martians’ team blog](https://daily.dev/posts/ai-makes-design-system-guardrails-mandatory-this-framework-delivers-them-martian-chronicles-evil-m-mgzf8vfre) · Martian Chronicles · 0 upvotes · 1 comments
- [Teaching AI to speak our design language](https://daily.dev/posts/teaching-ai-to-speak-our-design-language-qcj2tdmqh) · Atlassian · 0 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#ai-coding](https://daily.dev/tags/ai-coding), [#design-systems](https://daily.dev/tags/design-systems), [#zod](https://daily.dev/tags/zod)

[View this post on daily.dev](https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Eval-Driven Design Systems (Part 2)","url":"https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu"},"datePublished":"2026-08-03T18:56:14.119Z","dateModified":"2026-09-14T06:52:43.545Z","description":"Gusto's Builder Enablement team shares how they operationalized AI-legible design system schemas using an eval-driven approach on Braintrust. They built three...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/603ef06a0c9184c2614598a8c78f9d0d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/603ef06a0c9184c2614598a8c78f9d0d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"RUBYLAND","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"RUBYLAND","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla","url":"https://daily.dev/sources/rubyla"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"llm,ai-coding,design-systems,zod","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":3,"name":"Eval-Driven Design Systems (Part 2)"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu","comment":[{"@type":"Comment","text":"Feeding real engineer requests back into the eval set seems far more useful than inventing a perfect prompt suite in a room.","datePublished":"2026-08-04T17:22:55.061Z","url":"https://daily.dev/posts/bXCEu42YU#c-Bsxk9bu2h","author":{"@type":"Person","name":"Agustin Barrientos","url":"https://daily.dev/agustinbarrientos","image":"https://media.daily.dev/image/upload/s--5ayxQnqn--/f_auto/v1788281802/avatars/avatar_wQYYVe5Tbj0NJ7C7qPoa8?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/eval-driven-design-systems-part-2--bxceu42yu#faq","mainEntity":[{"@type":"Question","name":"How can I test whether an AI coding assistant is correctly using my design system's component schemas?","acceptedAnswer":{"@type":"Answer","text":"Build deterministic scorers that check generated JSX against the schema itself rather than a golden answer: prop-validity checks every prop exists on the schema (fractional scoring, not pass/fail), enum-validity checks enum prop values are legal, and import-match verifies the import statement matches exactly to prevent broken builds. Layer human ratings for intent and idiom to catch failures like content-guideline violations that compile fine but aren't idiomatic. Developers wiring evals into their own design systems can find similar deep dives on daily.dev."}},{"@type":"Question","name":"Why does a component prop-validity scorer still fail even when the JSX compiles successfully?","acceptedAnswer":{"@type":"Answer","text":"A prop can exist syntactically in JSX yet still be invalid because it was never defined on the component's schema, such as passing an intent prop to a Button that only supports variant. The compiler doesn't catch this since JSX allows arbitrary attributes, but a schema-aware scorer flags it below 1.0, and models that actually read the schema stop reaching for the prop. Teams debugging AI-generated UI code mismatches often track these edge cases via daily.dev."}}]}
```

