DEV Community

KURSYWA PRESS
KURSYWA PRESS

Posted on

We had an AI build two storefronts. Its self-review passed. Its browser QA caught 4 bugs.

We had an AI agent build two fictional storefronts one afternoon: a Warsaw watch manufacture and a tiny type foundry. It wrote the pages, ran them in a browser, declared its own work clean. Then we did what most AI-generated work never gets — we graded it.

We call it an acceptance gate: a fixed pass/fail checklist executed against the live page at three breakpoints. Not "make it look premium" — a rubric the model can't charm.

It caught four things the same model had already signed off on:

  1. A hero where a table belonged. The watch page opened with a big emotional statement. What a visitor needed at that moment was a spec table: movement, case size, price. The page looked great and answered nothing.
  2. A buy bar that broke at 375px. The price floated off-screen on mobile. One viewport had been reviewed; the layout was secretly built for exactly that one.
  3. A reduced-motion fallback that wasn't static. prefers-reduced-motion was honored — with a frozen frame that was actually half a rotation mid-spin. A visitor sensitive to motion sees a broken still, not a calm one.
  4. Auto-scaled type that only fit short inputs. The foundry's signage renderer fit its demo word beautifully. Real names overflowed the container. The happy path shipped.

None of this is "AI can't design." All of it is "nobody ran QA on what AI shipped" — and an AI's own review is a rubber stamp, because it grades intentions, not artifacts.

The ten tells

The exercise pushed us to write down what repeats in AI-built UI. Poker logic — tells are the things you do when nobody's watching:

  • reflex indigo gradients
  • equal feature tiles, always three
  • glassmorphism nobody specified
  • a hero that says nothing at full opacity
  • copy that's almost-real ("revolutionize your workflow")
  • the single, centered, impossible-to-miss CTA
  • emoji bullets wearing a design system's clothes
  • pricing tables with numbers nobody committed to
  • states that only exist on the happy path
  • a layout correct at exactly one viewport

Here is the part that actually matters: the expensive tells are structural, not visual. Indigo is cheap — one line of prompt kills it before code exists, which is also why classifiers trained on visual tells chase a moving target. "Shipping a hero on a screen that needs a table" survives every color change. That is the class worth putting on a checklist.

What we did with it

Two artifacts, boring on purpose:

  • a ~1KB pre-prompt of constraints that kills the visual tells at generation time
  • a pass/fail browser gate at 3 breakpoints whose failure screenshots get saved as receipts — the teardowns in our playbook are exactly this, bugs included, because the bugs are the product

We publish as KURSYWA PRESS. Disclosure, since this is a shop: the full doctrine is a $29 PDF; the 2-page extract is free → https://aiclub1.gumroad.com/l/tmamtm

Curious what the gate flagged on your AI-built page? Drop a screenshot description in the comments — worst structural tell wins a review.

Top comments (0)