agentleFS
KyaniteLabsKyaniteLabs/tastecheck/skills/tasteroll/SKILL.md

tasteroll

Skill12 starsChanged 11 days agoMITView on GitHub

Rapid prototyping through constrained randomness. Audits what exists, fixes what is broken, generates fresh design candidates from context, then rolls the dice between valid alternatives. Lock what works, re-roll what doesn't, converge on a direction. Use for design exploration, rapid prototyping, or when a user wants surprise within guardrails.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 7 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Spacing: no scale, arbitrary margins with no token system

    line 35
  2. Distinctive:

    If Chance (kyanitelabs/chance) is available via MCP, prefer it for multi-source entropy mixing and reproducible audit trails.

    line 85
  3. Distinctive:

    Readable: start with body ≥ 1rem, measure 58–75ch, and line-height ≥ 1.5.

    line 104
  4. Distinctive:

    Self-contained: no external requests in exports

    line 107
  5. Distinctive:

    Inert: no scripts in exported HTML

    line 108
  6. Distinctive:

    Keyboard-reachable: all interactive elements focusable with visible focus

    line 109
  7. Distinctive:

    v0 / LLM generators: no seed, audit, rules, reproducibility

    line 124
  8. Very specific:

    Stop / handoff: Stop when the output will be a shipped public surface — escalate to tastecheck-pass strict gate (+1 in contract.json).

    line 159

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Tasteroll (roll for taste, keep what sticks)

Tasteroll audits what exists, asks at most three questions, fixes what is broken, then rolls valid alternatives. Lock what works; re-roll what does not. Project constraints produce taste even when choices are random.

The pipeline

1. AUDIT     → scan what exists → mandatory findings (craft-only)
2. INTAKE    → infer from context/repo OR 3-question mini-interview
3. FIX       → resolve all findings (seed-independent, non-negotiable)
4. GENERATE  → fresh candidates for open dimensions (context-aware)
5. ROLL      → seeded pick between valid alternatives
6. LOCK      → keep what works, re-roll what doesn't, converge
7. GATE      → relaxed gate (readable + WCAG AA + self-contained + inert)

1. Audit (mandatory fixes)

Scan rendered surfaces, source CSS, repo files, and content. Resolve every non-negotiable craft finding before rolling:

  • Contrast: body < 4.5:1 or UI < 3:1 on actual surfaces
  • Spacing: no scale, arbitrary margins with no token system
  • States: interactive elements missing hover/focus/active/disabled
  • Tells: named AI slop patterns present (gradient, centered hero, 3 cards)
  • Accessibility: missing alt, unlabeled controls, broken heading order
  • Structure: missing main landmark, no skip link, no focus-visible

Flag findings outside craft scope (bad copy, content gaps, broken features) and hand them off; tasteroll does not fix them.

A single-word "preserve" overrides an intentional low-contrast or missing-state choice; otherwise resolve every finding.

For greenfield, scan brief/content for contradictions, missing scope, and vague direction.

2. Intake

Choose by available signal:

Infer (default): read the conversation and scan repo files (README, CSS, package.json, content). Skip questions when product and audience are clear.

Mini-interview (fallback): ask three questions when inference is thin:

  1. What are you building? → unlocks structure, density, IA
  2. Who is it for? → unlocks personality, accessibility posture, complexity
  3. One word for how it should feel? → unlocks aesthetic, accent direction

Three answers cover the brief without the full 11-field design-system-interview.

3. Fix (deterministic)

Resolve every finding here. Separate seed-independent "resolved findings" from random "rolled choices" in the output.

4. Generate

For each open dimension (personality, aesthetic, type, color_mode, density, rhythm, signature, imagery, motion, accent), generate 2–5 candidate options from audit/intake context at roll time; no static list.

Candidates must satisfy compatibility rules in assets/design-rails.json: compact density/metronomic rhythm, airy/syncopated, brutalist/restrained motion, etc. No conflicts.

Respect locked dimensions from previous rolls.

5. Roll (seeded pick)

The PRNG (assets/tasteroll-engine.js) picks one candidate per open dimension. Same seed

  • candidates → same roll, always; seeds make rolls reproducible/shareable.

If Chance (kyanitelabs/chance) is available via MCP, prefer it for multi-source entropy mixing and reproducible audit trails; the inline engine is the fallback.

6. Lock and re-roll

Mode:

  • One-shot: roll once; take it or re-roll from scratch.
  • Iterative: roll → review → lock working dimensions → re-roll unlocked only → converge. Each re-roll increments the seed and excludes shown directions.
  • Shotgun: roll N seeds → compare side by side → pick one to develop.

Locked dimensions and resolved findings persist; only open dimensions vary.

7. Gate

Tasteroll output is a personal artifact/prototype, not shipped; use a lighter gate than tastecheck-pass:

  • Readable: start with body ≥ 1rem, measure 58–75ch, and line-height ≥ 1.5; a brief may justify another measure with rendered evidence
  • WCAG AA: body ≥ 4.5:1, UI ≥ 3:1 (verified on the rolled surfaces)
  • Self-contained: no external requests in exports
  • Inert: no scripts in exported HTML
  • Keyboard-reachable: all interactive elements focusable with visible focus

Escalate shipped public surfaces to tastecheck-pass.

Invariants

Invariant floors and brief defaults live in assets/design-rails.json. Contrast, keyboard reachability, self-containment, and truthful findings stay invariant. Briefs may override measure, line-height, weight, density, texture, radius, accent count, and section rhythm only with reasons and rendered proof.

Rails contain no option lists; generate options fresh.

Difference

  • v0 / LLM generators: no seed, audit, rules, reproducibility
  • Coolors: random colors, no system, structure, gate
  • Tasteroll: audit fixes + context-aware candidates + seeded pick + lock/reroll + complete design system + quality gate

References

  • assets/design-rails.json — dimensions, floors, defaults, scope, questions, rules.
  • assets/tasteroll-engine.js — pasteable xoshiro128++ PRNG with lock, reroll, shotgun, and exclude operations.

How to deliver

Deliver seed, deterministic findings, seed-dependent choices, DESIGN-SYSTEM.md, gate evidence, and design-system-interview handoff fields.

"Roll again" increments the seed; never silently reuse it with different answers.

Evidence

StatusReasonRemediationEvidenceProvenance
audit — findings and their resolution status
intake — inference result or mini-interview answers
fixes — resolved findings (seed-independent)
roll — seed, locked dimensions, rolled choices
gate — relaxed-gate contrast, readability, self-containment
<!-- contract:v1:start -->

Contract (generated)

Canonical detail: contract.json.

  • Route: Rapid design exploration or surprise direction without a full interview (+2 in contract.json); avoid: The user wants to commit to a specific direction by hand (+2 in contract.json)
  • Exclude: Do not roll outside the design rails or bypass the audit findings (+3 in contract.json)
  • Stop / handoff: Stop when the output will be a shipped public surface — escalate to tastecheck-pass strict gate (+1 in contract.json); receives [design-system-interview, improve-existing-website] -> sends [color-system, web-typography, spacing-system, theming, responsive-layout, art-direction, micro-motion, component-states, data-viz, empty-states, form-ux, humanize-copy]
  • Output: A seeded DESIGN-SYSTEM.md with resolved findings, rolled choices, and gate evidence
  • Evidence: table_with_evidence with status, reason, remediation, evidence, provenance.
<!-- contract:v1:end -->

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.