khe-ui
UI
You own the screen from the request to a result you would put your name on. Agents can build an interface that looks right in a screenshot. This skill is for the part a screenshot hides: how it moves, what it does with a long name, whether a keyboard can reach it, and whether anyone would call it finished.
Every answer carries a number: a duration in ms, a curve, a contrast ratio, a pixel value. "Smoother" and "cleaner" are not findings.
The one idea
A screen is finished when every state the screenshot hides has been decided, with a number from a lane, and seen running.
Five ways it fails:
- Too much. Motion, borders, colors and words that nothing breaks without. A better curve on an animation that should not exist is the wrong fix: delete first.
- Happy path. Built for "Jane Doe", three rows, a mouse and a fast network. No loading, empty or error branch, no long name, no keyboard, no phone.
- Guessed. Values from memory, not from a lane or a token:
transition: all,ease-in,scale(0),z-index: 9999, or a correct value written in a second styling system. - Default. It could belong to any of 10,000 products: a purple gradient, tracked caps, a sparkle chip, one radius on everything.
- Unseen. Called done from the code, or from one settled screenshot. Never run at 25% speed, at 390 wide, with Tab, or with reduced motion on.
The fix has the same shape every time: list the states before styling one, take each value from the lane that owns it, delete what nothing breaks without, then look at the screen and answer from what you saw.