Skip to content
Agentmart
Submit a tool

screen-comparison

Granular side-by-side audit of a rendered screen vs its locked sample plate.

Skill by pilotso11

IndexedMIT
Write a review

Chalk Labs

Need help deploying screen-comparison?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/pilotso11-screen-comparison

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Granular side-by-side audit of a rendered screen vs its locked sample plate. Inventories every visual element (frame, layout, typography, controls, info presentation, iconography, characters, atmosphere, palette, game-system consistency), marks plate vs port match per property, and produces a categorised score + a prioritised fix list. Use when reviewing a screen port, when asked "how does this compare to the sample", or before declaring a screen "done".

Use cases: presentations, design, security

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/screen-comparison

What's inside

Skill name
screen-comparison
Description
Granular side-by-side audit of a rendered screen vs its locked sample plate. Inventories every visual element (frame, layout, typography, controls, info presentation, iconography, characters, atmosphere, palette, game-system consistency), marks plate vs port match per property, and produces a categorised score + a prioritised fix list. Use when reviewing a screen port, when asked "how does this compare to the sample", or before declaring a screen "done".
License
MIT
Instructions
371 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Screen Comparison

You are a UI critique specialist. The goal is **granular, structured audit** of a rendered screen against its locked sample plate. Generic "feels off" or impressionistic feedback is the failure mode this skill exists to prevent.

> **Note on examples.** Specific file paths (e.g. `app/src/screens/...`, `/kit/...`), token names (`palette.ox`, `slots.S0`), and asset filenames throughout this skill are illustrative — drawn from the project this skill was authored in. Substitute the equivalents from your codebase.

## Inputs

- **Plate path** — the LOCKED sample image, e.g. `docs/redesign/art-kit/plates/samples/<screen>__LOCKED.{jpg,png}`
- **Render path** — the latest Playwright screenshot, e.g. `app/test-results/<NN>-<screen>.png`
- **Source path** (optional) — the TS file backing the screen, e.g. `app/src/screens/<screen>.ts`. Read for control wiring detail when needed; the audit itself reads from the rendered pixels.

## Process

1. **Open both images** with the `Read` tool. Study the plate first, then the render. Do not write any output until both have been read.
2. **Build the spatial skeleton** — BEFORE the taxonomy walk, do a dedicated spatial-only pass on the plate. See *Spatial skeleton* below. This is mandatory and cannot be skipped.
3. **Diff the skeletons** — build the same spatial skeleton for the render, then produce an explicit side-by-side diff. Layout mismatches must surface here as numbers, not impressions.
4. **Inventory the plate** — walk every category in the taxonomy below and note what's in the plate (presence, style, size, count, position). Don't yet look at the render while doing this — the goal is to anchor the comparison in *what the design demands*, not in *what was built*.
5. **Inventory the render** against the same taxonomy.
6. **Produce the comparison table** — one row **per property** of each element, not one row per element. See *Property decomposition* below. Columns: Category / Element — Property / Plate / Port / Status / Notes. Status uses ✓ match, ~ partial, ✗ miss, + extra-not-in-plate.
7. **Score by category** — pass / minor / major / missing. Sum to an overall grade.
8. **Prioritised fix list** — one entry per failing property, ordered by visible-impact ÷ effort. Top item first. Each entry must name the exact property and the exact change needed.

---

## Spatial skeleton

This step exists because the taxonomy walk is category-driven and naturally reads screens semantically. Spatially implicit structure — column proportions, gutter widths, baseline grids, panel anchoring — is systematically skipped unless it is forced as its own pass. Do this pass first, in isolation, before touching any other category.

### How to build a skeleton

Describe the screen as a series of **regions and proportions only**. No semantic labels allowed in this pass — name regions by position and role, not by content. Use approximate percentages of screen width/height.

Required measurements:
- **Major regions** — list each major panel/column/rail with `x offset %`, `width %`, `y offset %`, `height %`
- **Gutter widths** — estimated % of screen width between each pair of adjacent columns
- **Header / footer bands** — height as % of screen height
- **Hero element** — its bounding box as % of its containing region
- **Vertical rhythm** — approximate equal-spacing unit between repeated rows or items (in px or % if estimable)
- **Alignment axis** — is there a clear left-edge or centre-axis that most elements lock to?

Example skeleton output (abbreviated):

```
PLATE SKELETON
- Left column: x=0%, w=34%, full height
- Right column: x=36%, w=64%, full height
- Gutter: ~2% between columns
- Header band: y=0%, h=11%
- Hero card: within right column, y=14%, h=72%
- Footer strip: y=90%, h=10%
- Vertical rhythm (list rows): ~9% height each, ~1.5% gap
- Primary alignment axis: left edge at x=5% (both columns)
```

### Skeleton diff

After building both skeletons, produce a table:

| Region | Plate | Port | Delta | Layout status |
|---|---|---|---|---|
| Left column width | 34% | 25% | −9pp | ✗ |
| Right column width | 64% | 73% | +9pp | ✗ |
| Header height | 11% | 11% | 0 | ✓ |
| Hero card top | 14% | 18% | +4pp | ~ |
| Row rhythm | ~9% | ~12% | +3pp | ~ |

**Layout grading rules** (applied to skeleton diff, independent of category scores):
- Any region delta ≥10 percentage points → automatic **major** on Composition, regardless of how it looks at a glance.
- Any region delta 5–9 pp → **minor** on Composition unless every other category passes, in which case it stays minor.
- Delta <5 pp → acceptable; does not penalise Composition on its own.
- A missing region (present in plate, absent in port) → automatic **missing** on Composition.
- Vertical rhythm off by >25% of the plate rhythm unit → **minor**; off by >50% → **major**.

These rules are **hard overrides**. If the skeleton diff shows a ≥10pp delta, the Composition score cannot be `pass` no matter how good the rest of the screen looks. The skeleton numbers take precedence over visual impression.

### Grading discipline on layout specifically

Layout proportion deviations are **not a matter of taste**. Do not soften a layout finding because:
- The screen "looks balanced" despite the deviation — the plate IS the balance spec.
- The delta seems small in absolute pixels — use the percentage rules above.
- The content fills the space "well enough" — fill quality is irrelevant to proportion fidelity.

If you find yourself writing "~ partial" on a layout region, ask: *is the delta actually under 5pp?* If not, it is `✗`.

---

## Property decomposition

This is the key discipline that prevents coarse rows from hiding real failures.

**The rule:** `~ partial` is not a permitted status on a multi-property element. If you're tempted to write `~ partial` for "Primary CTA", stop — break the CTA into its constituent properties and mark each one individually. Partial match on what, exactly?

Every complex element must be decomposed into atomic property rows. The format is `Element — property`. Examples:

```
| Controls | Primary CTA — shape        | pill      | pill         | ✓ |                    |
| Controls | Primary CTA — fill         | oxblood   | oxblood      | ✓ |                    |
| Controls | Primary CTA — gilt stroke  | present   | absent       | ✗ | missing inset ring |
| Controls | Primary CTA — width        | ~240 px   | ~200 px      | ~ | 17% too narrow     |
| Controls | Primary CTA — label caps   | ALL CAPS  | Title Case   | ✗ | wrong register     |
| Controls | Primary CTA — position     | x=58%     | x=58%        | ✓ |                    |
```

### Property sets per element type

Use these as the minimum property set. Add rows for any additional properties visible in the plate.

**Button (primary or secondary):** shape, fill, border/stroke, label register, label text, size (w×h), position (x%, y%)

**Card / dialog:** outer fill, outer border stroke+colour, drop shadow, inner inset stroke, corner ornaments, header band

**Typography element:** font role (script/block/body), size, colour, case, tracking, anchor (left/centre/right), position (x%, y%), visible/clipped

**Character figure:** which pose, facing direction, scale (% of column height), crop tightness, x-position in column

**Data tile / plaque:** background fill, top stripe colour, border, value text size+colour, label text size+colour, icon present/absent

**Backdrop:** type (SVG/Graphics/none), saturation (screened back / full), linen overlay present/absent, coverage (full-bleed / card-only)

From pilotso11/pilotso11-skills, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
May 23, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from pilotso11

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get screen-comparison running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying screen-comparison?

CallGet help
Cite this page

screen-comparison skill. Agent Mart. https://agentmart.dev/skills/pilotso11-screen-comparison (last updated 2026-10-24)