
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@puenteworks/tastecheck
Advanced tools
Frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality.
TasteCheck is a frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality.
Release inventory: v1.7.0 · 20 skills · 20 canonical commands · 1 alias · 21 command files · 8 gallery systems.
Release status: PASS — current source-bound release receipts cover the asserted browser and accessibility checks. Effectiveness status: BLOCKED — historical evidence did not clear its release threshold.
| Fact | Current release truth |
|---|---|
| Version | v1.6.0 |
| Skills | 20 frontend craft skills |
| Commands | 20 canonical Claude Code slash commands |
| Alias | 1 approved alias: /darkmode for /theming |
| Command files | 21 total command files |
| Gallery | 8 committed browser-rendered design systems |
| Video | v1.5.0: the battery also gates video artifacts — reading-hold, motion-law, readability-960x540, audio-presence (silent cuts never pass) |
| License | MIT; see LICENSE |
| npm package | @puenteworks/tastecheck (the registry rejected the bare name as typosquat-adjacent to fast-check) |
| Install | git clone https://github.com/KyaniteLabs/tastecheck && ./tastecheck/install.sh |
TasteCheck is a frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who need evidence-backed UI quality before shipping. It turns a brief or an existing site into an explicit design direction, carries that direction through checkable craft skills, and reports the evidence needed for a ship or hold decision.
TasteCheck skills are plain Markdown, readable by any coding agent — no SDK or install required. The ship-gate adds optional dependency-free Node and browser scripts; the installer also creates the canonical ~/.agents/skills/ path and mirrors skills into detected agent homes.
TasteCheck addresses a common failure mode in agent-built interfaces: when hierarchy, density, type, color, and structure remain implicit, familiar defaults accumulate. The interview or existing-site audit makes those decisions explicit before implementation.
The retrofit makes the release gate account for the evidence it records. These behaviors describe scoped release decisions; they do not turn subjective design judgment into an objective guarantee.
| Capability | Public behavior |
|---|---|
| Evidence-derived verdicts | Gate statuses are derived from recorded observations. Missing or contradictory observations produce HOLD; declared status alone is not trusted. |
| Review binding | Human and independent reviews bind to the check ID, rubric, artifact digest, and complete-evidence digest. A transplanted approval produces HOLD. |
| Dependency-manifest capture | File and directory captures hash the entry plus linked local CSS, JavaScript, and font assets. A changed dependency with an unchanged entry produces HOLD. |
| Subject-inventory reconciliation | Browser checks reconcile route × state × viewport members from an authoritative manifest and its gate-computed Cartesian universe; a claimant cannot shrink that scope. Control checks reconcile control × state members. |
| Complete-capture hashing | Lossy, truncated, depth-limited, or marker-bearing evidence is non-passing. Sanitization is presentation-only; complete evidence is what gets hashed. |
| Verifier/consumer ROOT SPLIT | The CLI and API separate the pinned verifier root from the explicit target-project root, and record both root identities. |
| Craft floors and style policies | Invariant craft requirements are separate from brief-dependent defaults. Spacing and tasteroll rails are defaults that can be overridden with evidence. |
| Scoped authority claims | Subjective checks remain accountable human judgment, not an objective design guarantee. GEO copy keeps claims scoped to the recorded evidence. |
| Release finalization | npm run finalize performs receipt refresh, receipt pins, public status projection, and verify-chain validation together. |
| Measured error rates | A labeled regression corpus (evals/corpus/, every case citing the desk of record it was harvested from) measures false-positive/false-negative rates per run: npm run calibrate emits dated reports; the current measured state lives in evals/calibration/. |
| Dogfood law — the tool gates itself | This repository's own CI runs the corpus calibration (npm run calibrate:check) and fails any change that worsens the measured FP/FN counts against the recorded baseline, so a release cannot ship with a worse measured rate than the last one. |
| ASTRA review closure | The external ASTRA adversarial review found 8 findings, including 5 SEV-1 findings; the closure is recorded in ASTRA-REVIEW.md and ASTRA-FIX-REPORT.md. |
Clone the repository and run the installer:
git clone https://github.com/KyaniteLabs/tastecheck
./tastecheck/install.sh
Then ask your coding agent to read the relevant SKILL.md, or point it at the canonical ~/.agents/skills/ directory.
| Skill | What it checks |
|---|---|
| design-system-interview | Design direction for vague or generic frontend requests, including type, color, density, and tokens. |
| tasteroll | Context-aware design exploration that audits broken work, rolls valid candidates, and locks the direction that works. |
| improve-existing-website | Existing-site evidence, recognizable identity, scope, and redesign risk before changes. |
| color-system | OKLCH palettes, ramps, semantic tokens, theme colors, and contrast. |
| web-typography | Contextual type systems, resilient font loading, multilingual glyphs, wrapping, and readable hierarchy. |
| spacing-system | Layout rhythm, density, gaps, spacing scales, and deliberate exceptions. |
| theming | Semantic mappings across light, dark, forced-colors, saved preferences, contrast, and no-flash behavior. |
| responsive-layout | Narrow containers, long or translated content, zoom, reflow, and overflow without device-specific breakpoints. |
| component-states | Interactive state matrices for controls, keyboard behavior, and ARIA. |
| form-ux | Forms, field labels, autocomplete, validation, mobile input behavior, errors, and disabled submits. |
| empty-states | Empty, loading, error, retry, first-run, offline, permission, and layout-stability states. |
| micro-motion | Purposeful feedback and transitions without jank, interruption bugs, or hidden no-JS content, including reduced motion. |
| data-viz | Honest, accessible, themed charts, metrics, direct labels, and data tables. |
| art-direction | Imagery, illustration, iconography, hero images, favicons, OG cards, and generic AI imagery. |
| a11y-pass | WCAG 2.2 AA fixes for web UI, including keyboard, screen readers, contrast, labels, focus, landmarks, target size, reduced motion, and ARIA. |
| cognitive-a11y | Readability and predictability for ADHD, autism, dyslexia, and neurodivergent users. |
| i18n-ready | Locale expansion, language attributes, logical properties, RTL, formats, bilingual copy, and language toggles. |
| deslop-ui | Generated-UI tells such as purple gradients, pill CTAs, default type, centered heroes, card grids, glassmorphism, and template sameness. |
| humanize-copy | Landing, docs, README, UI, release, and social copy for LLM tells and robotic prose. |
| tastecheck-pass | Evidence-backed ship or hold decisions, fail-closed release gates, and actionable cross-skill verification reports. |
TasteCheck carries design intent through a shared pipeline: establish or infer the design system, check foundations, check structure and behavior, check surface decisions, run accessibility and language checks, remove visual and copy tells, and finish with tastecheck-pass.
Since v1.6.0, tastecheck-pass runs in two lanes and leads with its verdict. The fast lane (one agent, minutes) loads the real rendered artifact cold, runs named probes (cold-load state, console errors, keyboard-only, 320px/400% zoom, tap targets, measured contrast, reduced motion, link/asset resolution, leaks, template-slop tells, shadow roots and iframes included), and reports SHIP or HOLD with one evidence line per probe. The deep lane runs a one-row-per-check hashed ledger through the deterministic runner, with independent review on subjective rows. Three laws govern both lanes: checkmarks are not execution evidence; the verdict leads and fails closed; n/a means the subject is absent, never "not tested".
The current public release status is projected from source-bound receipts (see the badge above); historical effectiveness is BLOCKED.
Run the repository’s repeatable engineering checks with npm test. Those checks cover repository contracts, installation, links, authored demo surfaces, and verification plumbing; they are not a universal effectiveness claim.
v1.7.0 lands the measurement backbone and the decision-view output.
Measured error rates (the headline change). A labeled regression corpus (evals/corpus/) harvests real org defect findings — every case cites the desk of record it came from — and npm run calibrate runs the checker over it, emitting dated JSON/Markdown reports with measured false-positive and false-negative counts and rates (evals/calibration/). Measured at the v1.7.0 source (real run, 2026-09-25): 17 cases — 12 true positives, 1 false negative, 4 true negatives, 0 false positives; FPR 0 (0/4 clean), FNR 0.0769 (1/13 bad). The one miss is a documented known-open floor, not a surprise: a falsified-but-internally-consistent structured observation cannot be caught offline, and the consume-don't-inspect browser/audio lane owns that class. Scope is the offline subset (verdict engine + markup-visible probes); tells that need a rendered surface stay in the browser lane. CI gates every change against the recorded baseline (npm run calibrate:check), so a release cannot ship with a worse measured rate than the last one.
Decision cards. Every release-gate report now carries a decision_card: one-word verdict first, the evidence-cited lines that produced it (check IDs, row evidence, structural boundary errors), and the flip conditions — the exact repair-and-rerun that would reverse the verdict. With --out the CLI prints the compact card to the terminal. Consumers gate on the verdict; humans and agents read the card.
Gestalt-first. The fast lane verdicts the WHOLE product in one look before any element check; when the gestalt verdict and the element results disagree, that divergence is its own finding — the soullessness detector — and blocks SHIP until judged against the named basis. The deep lane encodes it as the required direction:gestalt-first catalog check.
Also in this release. The loved-corpus v0: a journal of 20 quote-backed CEO product verdicts with extracted principles (evals/corpus/loved/) — ground truth for the calibration loop, since the tool's real error rate is disagreement with those verdicts, not internal rubric agreement. What is still not claimed: no cross-model or inter-reviewer agreement score; subjective rows remain accountable judgment; effectiveness status stays BLOCKED.
tastecheck-pass: what changed, what is not claimedv1.6.0 lands the first-principles rewrite of tastecheck-pass (2026-09-19 war-room order) and moves the npm package to @puenteworks/tastecheck.
What changed in checking behavior. The rewrite tightens what counts as evidence so a pass cannot be minted from claims: a check counts only when the checker ran it and can cite what was seen (selector, URL, number, console line); a required check that fails, could not run, or lacks evidence is HOLD; URL evidence stays HOLD until bound to a hashable artifact; an optional n/a needs hashed proof the subject is absent; reviewer disagreement on subjective rows stays HOLD until adjudicated; deterministic rows never accept reviewer judgment. Verdicts are reported verdict-first with scope (lane, checks run, date, artifact revision).
What is recorded. Each deep-lane ledger row carries skill, check ID, status, reason, remediation, evidence, and provenance, with repo-relative artifacts hashed by the runner. Release receipts (browser, e2e, mechanical, security, clean-clone, context-budget) bind to a source-tree digest and are reprojected together by npm run finalize.
What was not claimed at v1.6.0. No false-positive or false-negative rate was published then — no labeled regression corpus existed yet (it was staged on the roadmap, not shipped; v1.7.0 delivers it and publishes measured rates above). No cross-model or inter-reviewer agreement score exists. Subjective rows remain accountable human or agent judgment bound to a rubric and an independent review, not an objective design guarantee. A fast-lane SHIP is a scoped verdict at one revision, not a warranty. Effectiveness status stays BLOCKED: historical evidence did not clear its release threshold.
The gallery contains 8 committed browser-rendered design systems for the same product story and core information architecture. It demonstrates variance, not a menu to copy: derive a new direction from the user’s answers.
| System | Territory | Signature structure |
|---|---|---|
| Copper | dark, warm, geological | irregular tessellated bento with structural basalt columns |
| Swiss | light, austere, exact | exposed column grid carrying the content |
| Maximal | loud, kinetic | display word bleeding into a magenta block with sticker-wall collage |
| Concrete | raw, mechanical, monochrome | ruled spec sheet with a dense ledger table and hazard accent |
| Clay | warm, soft, humanist | alternating zig-zag card flow with organic pebble shapes |
| Dispatch | dark, operational, emerald | reverse-chronological release timeline |
| Verge | cool, clinical, measured | hypothesis-to-verdict evidence cards |
| Seed | warm, procedural, annotated | seeded specimen card with rolled dimensions |
Open the live landing page, live gallery, or secondary integration harness.
The one-line install path is:
git clone https://github.com/KyaniteLabs/tastecheck && ./tastecheck/install.sh
The npm package is @puenteworks/tastecheck (published from this repo; the registry rejected the bare tastecheck name as typosquat-adjacent to fast-check):
npm install @puenteworks/tastecheck
npx tastecheck --help
The installer creates canonical links in ~/.agents/skills/ and mirrors them into detected agent skill directories. Claude Code can also link all 21 command wrappers (20 canonical + the /darkmode alias) into ~/.claude/commands/.
TasteCheck is a frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality before shipping. It fails closed on generic/sloppy UI and organizes evidence for scoped ship-quality decisions; it does not turn those subjective calls into objective guarantees.
TasteCheck is for frontend engineers and AI coding agents that need to turn design intent into checkable frontend work.
TasteCheck checks design direction, typography, color, spacing, theming, layout, states, forms, empty states, motion, visualization, art direction, accessibility, cognitive accessibility, internationalization, copy, and the final release gate.
TasteCheck makes design decisions explicit before implementation and checks the resulting frontend against those decisions instead of relying on subjective polish.
Yes; TasteCheck is open source under the MIT license in LICENSE.
Clone the repository and run ./tastecheck/install.sh.
The current public release status is projected from source-bound receipts (see the badge at the top); historical effectiveness is BLOCKED.
TasteCheck is MIT licensed; the authoritative terms are in LICENSE.
TasteCheck is a frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality before shipping. It helps them fail closed on generic/sloppy UI and organize evidence for scoped ship-quality decisions; subjective checks remain accountable human judgments rather than objective guarantees.
| Product | TasteCheck |
| Category | frontend taste and ship-gate toolkit |
| Best for | AI coding agents and frontend engineers |
| Not | a design Figma plugin |
| Source | Forgejo · GitHub |
| Keywords | UI taste check, anti-slop frontend gate, design QA |
TasteCheck is a frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality before shipping. It fails closed on generic/sloppy UI and organizes evidence for scoped ship-quality decisions; it does not turn those subjective calls into objective guarantees.
Frontend engineers and AI coding agents that need to turn design intent into checkable frontend work.
Unlike subjective design opinions alone, TasteCheck is a fail-closed ship gate that organizes evidence and records accountable human review where judgment is required; it does not turn that review into an objective quality guarantee.
Treat the README status and release tags as source of truth for maturity. Validate against your own requirements before production use.
AGENTS.md if presentllms.txt) when the repo ships oneIssues and PRs welcome on the canonical remote. Keep public docs free of secrets and machine-local paths.
See LICENSE in this repository (or package metadata if license is package-only).
FAQs
Frontend taste and ship-gate toolkit for AI coding agents and frontend engineers who want evidence-backed UI quality.
The npm package @puenteworks/tastecheck receives a total of 23 weekly downloads. As such, @puenteworks/tastecheck popularity was classified as not popular.
We found that @puenteworks/tastecheck demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.