<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>UI Craft</title><description>Measured writing on why AI-generated UI looks the same, the anti-slop rules that catch it, and how to make a build fail on design quality.</description><link>https://skills.smoothui.dev</link><language>en</language><item><title>Every design rule measures absence. Here is one that measures presence</title><link>https://skills.smoothui.dev/blog/commitment-metric-measuring-presence</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/commitment-metric-measuring-presence</guid><description>Thirty-eight rules can tell you nothing is wrong and still not tell you the page is any good. A blank page scores perfect. So we built the mirror.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><category>measurement</category></item><item><title>The type ladder is the tell: what four world-class landings have in common</title><link>https://skills.smoothui.dev/blog/type-ladder-is-the-tell</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/type-ladder-is-the-tell</guid><description>We measured Linear, Vercel, ElevenLabs and Medusa with the same probe we point at our own pages. Four to nine font sizes each. Ours had twenty-four.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><category>measurement</category></item><item><title>A bare agent versus the same agent with a design skill: seven pairs, measured</title><link>https://skills.smoothui.dev/blog/bare-agent-vs-skill-loaded</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/bare-agent-vs-skill-loaded</guid><description>Same prompt, same model, one pass each. The only variable is whether the agent read a design skill first. Ninety-four findings against zero.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate><category>measurement</category></item><item><title>What a Craft Score of 71 actually means</title><link>https://skills.smoothui.dev/blog/what-a-craft-score-of-71-means</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/what-a-craft-score-of-71-means</guid><description>The score is not a vibe. It is a weighted count of deterministic findings across a fixed rule set, and here is exactly how it is computed.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>measurement</category></item><item><title>Fail a build on taste: wiring a design gate into CI</title><link>https://skills.smoothui.dev/blog/fail-a-build-on-taste</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/fail-a-build-on-taste</guid><description>A design review that runs on every pull request, exits non-zero, and needs no model call. Here is the whole setup, including what not to gate.</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate><category>ci</category></item><item><title>Six accessibility defects coding agents ship by default</title><link>https://skills.smoothui.dev/blog/accessibility-defects-agents-ship</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/accessibility-defects-agents-ship</guid><description>Hover with no focus, contrast under the bar, tables that break at 320px, headings that skip levels. All six are static and all six are catchable.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><category>accessibility</category></item><item><title>The anti-slop rules, one by one, and what each is actually for</title><link>https://skills.smoothui.dev/blog/thirty-eight-anti-slop-rules</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/thirty-eight-anti-slop-rules</guid><description>Thirty-eight deterministic checks that read source and report what a design reviewer would catch. Here is the reasoning behind the ones that fire most.</description><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate><category>anti-slop</category></item><item><title>Seven tells that a page was generated</title><link>https://skills.smoothui.dev/blog/gradient-text-and-other-tells</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/gradient-text-and-other-tells</guid><description>The specific patterns that make an interface legible as AI output: the gradient headline, the emoji icon row, the pill badge, the uniform card grid, and three more.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><category>anti-slop</category></item><item><title>Why AI-generated UI all looks the same</title><link>https://skills.smoothui.dev/blog/why-ai-generated-ui-looks-the-same</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/why-ai-generated-ui-looks-the-same</guid><description>Every coding agent converges on the same indigo gradient, the same 8px radius and the same three-card row. Here is the mechanism behind it, and what it costs you.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>anti-slop</category></item><item><title>How a skill changes what a coding agent writes</title><link>https://skills.smoothui.dev/blog/how-claude-code-skills-work</link><guid isPermaLink="true">https://skills.smoothui.dev/blog/how-claude-code-skills-work</guid><description>A skill is a file the agent reads before it answers. Here is what that does to the output, why it beats prompting, and how the loading actually works.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><category>workflow</category></item></channel></rss>