Agent Native

better-interface

This skill orchestrates a cross-discipline interface review by delegating to specialized domain skills covering accessibility, layout, writing, typography…

by jakubkrehelCommunityNot reviewed

Community author

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
License
MIT (permissive)
Pin
d574cc8pinned Oct 9, 2026
Context cost
about 2,200 tokenswhen the skill loads
GitHub stars
7,577on jakubkrehel/skills
Scripts
None found

What it does

“Combines all of the `better-*` skills into a single review across accessibility, layout, writing, typography, color and UI polish.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill orchestrates a cross-discipline interface review by delegating to specialized domain skills covering accessibility, layout, writing, typography, color and UI polish, then consolidates their findings into a single ranked report. It inspects rendered interfaces against evidence-based rules and escalation triggers, producing findings scoped to complete flows with severity and fix guidance. The skill enforces scope clarity, investigates project conventions before judgment, and verifies claims against runtime behavior.

When to use it

  • Reviewing a complete interface screen, flow or feature across all disciplines
  • Auditing a pull request or branch for accessibility and usability regressions
  • Checking new interface work against project standards and escalation triggers
  • Consolidating findings from multiple review domains into one prioritized report

When not to

  • Reviewing only a subset of disciplines like color or typography alone
  • Making style preferences or taste-based critiques unlinked to evidence
  • Reviewing uncommitted changes or diffs directly without using interface-review

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add jakubkrehel/skills --skill better-interface

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install jakubkrehel/skills better-interface@d574cc8a576dc24256ad38268b8d03d86724a1b3

Installs the commit we checked (d574cc8).

Copy by hand

Download the folder at d574cc8 and put it in .claude/skills/better-interface for Claude Code and in .agents/skills/better-interface for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at d574cc8

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "better-interface" by jakubkrehel.

Source, pinned to commit d574cc8a576dc24256ad38268b8d03d86724a1b3:
https://github.com/jakubkrehel/skills/tree/d574cc8a576dc24256ad38268b8d03d86724a1b3/skills/better-interface

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/better-interface/ for Claude Code and .agents/skills/better-interface/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/jakubkrehel/better-interface

SKILL.md at the pin

---
name: better-interface
description: Combines all of the `better-*` skills into a single review across accessibility, layout, writing, typography, color and UI polish.
---

# Cross-discipline review

This skill runs a cross-discipline review. It routes the interface to each `better-*` skill, collects their evidence and consolidates one ranked verdict.

Orchestration is all it owns. Accessibility rules belong to `better-accessibility`, structure to `better-layout`, copy to `better-writing`, type to `better-typography`, color to `better-colors`, visual polish and motion to `better-ui`. Never duplicate or override their rules here.

Change-scoped review of uncommitted work, branches and pull requests belongs to `interface-review`.

## Evidence, not taste

Press hard on the escalation triggers and leave deliberate project choices alone. A trigger is a failure whatever the style guide says. A density, radius or voice you merely disagree with is not a finding.

The bar for reporting is evidence. The bar for `Approve` is that you inspected what you claim to have inspected.

## Core principles

### 1. Resolve the scope first

Infer the screen, flow, feature or repository scope from the request and current workspace. State the resolved scope in the output.

Cover all of it in every domain, including the empty, loading, error and narrow-width states where they exist.

When the scope is too large to inspect credibly, narrow it to one complete flow. Take the one the request centers on, or failing that the entry path every user must pass through. State the boundary and what it excluded. Never imply uninspected surfaces were reviewed.

### 2. Send a change to `interface-review`

A request naming a branch, pull request, commit range or uncommitted changes is a change review. Say so and ask the user to run `interface-review`, which is user-invoked and cannot be started from here. Never resolve a change scope yourself, because a guessed diff gives the report a scope nobody can check.

When `interface-review` hands a review back, apply everything below to it. The cap and the verdict cover `Introduced` and `Regression` findings only, so a change whose only findings are `Pre-existing` is an `Approve`.

### 3. Recon before judgment

Identify the framework, styling system, component library, design tokens, supported viewports and any preview or test command. Write every fix in the project's own idiom, never as a request to adopt a different stack.

Then read what the project has written about its own interface: `CONTRIBUTING.md`, `CODING_STANDARDS.md`, `AGENTS.md`, `CLAUDE.md`, a design-system doc, Storybook docs and interface ADRs. Name which you found, or that there are none.

A documented convention settles matters of taste but never excuses a trigger or a domain rule violation. What it changes is **where** you report. When a guideline or shared token is the cause, report it once against that source, with the components as its locations.

### 4. Use domain skills as the sources of truth

Load every owning skill below and complete each domain review before consolidation. Review in this order so foundational failures are not hidden by polish:

1. `better-accessibility`
2. `better-layout`
3. `better-writing`
4. `better-typography`
5. `better-colors`
6. `better-ui`

From each, take its principles, its references and its verification checks. Its severity ladder and its format are for standalone use; the ones in this file replace them.

If an owning skill is unavailable, mark that domain `Not reviewed`, name it and continue with the rest. Do not recreate its rules from memory, substitute a neighbour or claim holistic coverage.

When two skills appear to cover one issue, assign it to the owner of the underlying rule and note secondary effects in the **Why** cell.

### 5. Require evidence

Every finding cites `path/to/file:line` and shows the current implementation. When runtime behavior determines the result, source alone cannot support a visual finding and a screenshot alone cannot support a code finding.

### 6. Rank by user impact

Use one shared severity scale:

- `HIGH`: blocks a task, misleads the user, hides content or controls, causes data-loss risk or creates a repeated systemic failure.
- `MEDIUM`: meaningfully harms comprehension, efficiency, adaptability or consistency.
- `LOW`: isolated polish with limited task impact.

Within a severity, rank by how many places the finding reaches and how much one fix buys. A token or shared-component fix outranks the same symptom in one leaf.

**Escalation triggers.** Once the owning skill confirms one of these, it is `HIGH` on sight, never averaged down because the surface is minor:

- An interactive control with no accessible name.
- A keyboard-reachable control with no visible focus indicator.
- A control or path reachable by pointer but not by keyboard.
- Motion or auto-playing content that ignores `prefers-reduced-motion`.
- Content or a control clipped, overlapped or unreachable at 320px width or 200% zoom.
- Body or control text whose rendered contrast pair fails its required ratio.
- State or meaning carried by color alone.
- A destructive action with no confirmation, undo or distinct treatment.
- Truncated content with no way to reach the full value.
- Content or a control reachable only past a scroll edge or behind a disclosure that has no visible cue.
- An error that names no way to recover from it.
- A semantic color used against its meaning, such as the danger hue on a non-destructive action.
- A state change carried by motion alone, with no color, icon or label left behind when the animation does not run.

Triggers rank above every other finding. When more fire than the cap allows, list them first and say how many the cap excluded. A cap may shorten a report; it may never be why a blocker went unreported.

These set severity, not new rules. The owning skill decides whether the symptom is present; this list decides what it costs.

### 7. Prefer the cheaper fix

Severity says how bad a finding is; this says which fix to propose. When more than one would work, take the earliest that does:

1. **Delete.** A separator that space would carry, an animation on a high-frequency interaction, an ARIA attribute a native element makes redundant, a ramp nothing imports.
2. **Use the platform.** The native element, the native control or the browser's own focus ring, in place of a custom rebuild.
3. **Reuse what the project has.** An existing token, spacing step or motion curve, before any new value.
4. **Correct the value.** The wrong easing, radius, gap or contrast pair, using the exact value the owning skill gives.
5. **Add.** A new token, a wrapper, a media query, an ARIA attribute the platform cannot supply.

When the code under review adds what **Delete** would fix, that is a finding, and its **After** is the deletion.

### 8. Consolidate systemic findings

One root cause is one finding, with every confirmed location in the same row. Report at most 15 findings. Never pad toward the cap; a short review or no findings is a valid result.

### 9. Verify what can be verified

Run the safe, relevant checks the project offers. Inspect the rendered interface when runtime behavior or visual judgment matters, and report the exact command or interaction and its result. A check you cannot run is **Not verified**, never a finding.

### 10. Review without mutating by default

Treat a review request as read-only. Do not edit source unless the user also asks you to implement the findings. When they do, keep the consolidated report as the change scope and re-run the relevant verification afterward.

## Before you finish

| Mistake | Fix |
| --- | --- |
| A separate findings section per domain | Merge them into one table ranked by severity, then reach |
| A rendering claim whose only evidence is source | Inspect the rendered state, or mark it **Not verified** |
| A missing accessible name or focus ring rated `MEDIUM` because the surface is minor | Triggers are `HIGH` on sight |
| A coverage row whose evidence cell names no file, component or check | Inspect that domain, or mark it `Not reviewed` with the reason |
| A domain marked `Clear` although its skill never loaded | Mark it `Not reviewed` and name the skill |
| The same symptom in several rows, one per component | One row against the shared token or component, listing every location |
| An **After** that adds a wrapper, token or ARIA attribute | Check whether a deletion or the native element fixes it first |
| A fix written in a library or styling system the project does not use | Rewrite it in the project's own idiom |

## Review output format

The format lives in [review-format.md](review-format.md): scope and coverage, the findings table, verification and the verdict. A review is not finished until its findings are reported there.

From jakubkrehel/skills at d574cc8, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at d574cc8

Files

3 files, 11 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at d574cc8
All 2 skills from jakubkrehel

More from jakubkrehel

  • make-interfaces-feel-better

    This skill guides the agent to apply design engineering principles when building or reviewing UI components, focusing on typography, shadows, animations…

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

  • next-bundle-optimizer

    Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago

  • next-cache-components-optimizer

    Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago

  • next-partial-prefetching-adoption

    Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago

  • remotion-interactivity

    This skill teaches how to structure Remotion code so the Studio IDE recognizes and makes it interactive.

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago

  • remotion-interactivity

    This skill teaches how to structure Remotion video components to unlock Studio interactivity features like click selection, drag-and-drop, resizing, rotation…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago

  • remotion-maps

    This skill enables creating map-based animations with Remotion using four different mapping libraries: Mapbox, MapLibre, MapTiler, or CesiumJS.

    by RemotionOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 240 tokens · pinned 6 days ago

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use