agentleFS
TresnandaTresnanda/kybern/.cursor/skills/variant/SKILL.md

variant

Skill83 starsChanged 59 days agoMITView on GitHub

Builds multiple variants of a component you're working on and helps you iterate and pick one.

7 other projects use a version of this, 5 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. 1 is common, 1 is distinctive, and 3 are very specific to this project.

  • 1

    Common

    Most of the 5 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every other skill here judges.

    line 11
  2. Very specific:

    Before a variant enters the picker it clears better-interface's escalation triggers.

    line 35
  3. Distinctive:

    Default to three variants.

    line 58
  4. Very specific:

    Write the set down first, a name and an axis position each.

    line 60
  5. Common:

    Never mark a favourite in the table.

    line 89

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Variants

This skill takes one described piece of UI and builds three versions that differ on purpose. They go behind a picker in the real page, so you can flip between them and choose.

Every other skill here judges. This one produces candidates and hands the decision back. Reviewing existing UI is interface-review and better-interface, and it does not pick the winner.

Different answers, not different tints

Three variants that differ in accent color teach nothing. You flip between them, see no real choice and the run is wasted.

So each variant is a different answer to the same brief, on an axis this collection owns:

AxisOwnerWhat varies
Structurebetter-layoutGrouping, order, column count, what collapses
Densitybetter-layoutSpacing scale, hit areas, how much fits
Emphasisbetter-colorsWhere filled color goes, what recedes
Typebetter-typographyScale steps, weight contrast, measure
Voicebetter-writingLabels, tone, how much copy

Pick one primary axis and give each variant a different position on it. Secondary choices follow from it rather than varying on their own. A dense variant may need a smaller type step, and that is coherence, not a second axis.

Varying every axis at once produces three unattributable results. You learn which you liked, not what made it work, so the next piece starts from nothing.

The floor every variant clears

A variant that wins on looks and fails an escalation trigger is not a candidate. It is a bug with a nice surface.

Before a variant enters the picker it clears better-interface's escalation triggers. Every control has an accessible name, keyboard reaches everything a pointer does, focus is visible, nothing clips at 320px and no meaning rides on color alone.

That floor is identical across variants. It is not an axis and never trades against one. Where a direction can only work by breaking it, say so and drop the direction.

1. Scope one piece

One piece of UI per run. "The dashboard" is not a piece; the metric card is. Where the brief spans several, name the one the others hang off, say why and offer the rest as later runs.

Restate the brief in one sentence: what the thing is, where it renders, what it has to do.

2. Learn the ground

Variants have to look like they could ship tomorrow, so read what they stand on:

  • The styling system, the component library and any motion library.
  • The tokens: color, spacing, radius, type scale, easing.
  • The product's density and voice. A dense professional tool bounds how far the boldest variant may go.
  • Where the piece renders: against what background, beside which neighbours, at which widths.

With no project to read, use neutral grays, one accent and the system font stack, and say that is what you did.

3. Name the axis before writing code

Default to three variants. Go to five only when asked, or when the space is genuinely wide. Past five nobody compares, they scroll.

Write the set down first, a name and an axis position each. Names say what the direction is, so Quiet, Editorial, Dense, never Option A.

This step is done when no two variants share a position and you can state each one's axis in a phrase.

4. Build it into the real page

A variant looks fine in isolation, which is why isolation is the wrong place to judge it. Host the variants on the page that will actually contain the piece, with the real chrome, the real neighbours and realistic data.

Select with a URL search param (?variant=quiet), so every variant is a link you can send someone. A floating control sets it; picker.md holds the spec.

Render one variant at a time, full size. Thumbnails distort spacing and scale, and spacing is usually the thing you are choosing between.

Where no page can host it, build one self-contained HTML file and keep the same picker.

Give every variant real content: product-shaped copy, plausible names and the number of items the page will really carry. Lorem ipsum and three rows make every structure look good.

5. Present the tradeoffs and stop

Flip through every variant yourself first. Each one renders, each interaction responds, the console is clean.

Then hand the decision over:

VariantAxis positionRight whenCosts
QuietLowest visual weightThe page is used dailyLeast memorable
EditorialLargest type, most spaceThe moment deserves weightEats vertical space

Say where the picker is running, which key flips it and which width you judged at. The answer can change between 375px and 1440px.

Never mark a favourite in the table. Asked directly, answer from how often the piece is seen and from the product's personality, not from which one you enjoyed building.

6. Promote one, delete the rest

On a choice: build that variant properly where it belongs, following the project's own conventions, then delete the others and the harness.

Asked for another round instead, keep the harness and run step 3 again, taking new positions around the direction you leaned toward.

Until promotion, the harness never imports from production and production never imports from the harness.

Before you finish

MistakeFix
Variants differ only in accent color or copyMove one to a different position on the primary axis, or cut it
Every axis varies at onceVary one; let the rest follow from it
Judged on a blank routeHost them on the page that will contain the piece
Lorem ipsum, three rows, "Jane Doe"Real copy and the item count the page will really carry
The boldest variant skips keyboard or focusClear the floor or drop the direction
A favourite marked in the tableState each variant's cost and let the user choose
Picker restyled with the project's tokensKeep it visibly outside the design system
Harness left behind after promotionDelete it unless asked to keep it

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.