Not in the top 1,000 by GitHub stars

marcosnovo/unslop-design

An agent skill (Claude Code, Codex, Cursor, Copilot, Gemini CLI...) that makes your app or site stop looking AI-generated: 64 numbered design fixes, scripts that score your UI from 0 to 100 (example: 26 → 100), and a before/after you approve.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → cc2bdb80c00d

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit cc2bdb80c00d9e3798b6b6b5ad6e87b716f1856f

14GitHub stars
Not availablestars in 7 days
1skill in this repository
14commits in 30 days

Heat

Insufficient history

Not enough history yet to measure heat. It appears after a few days of data.

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Nov 3, 2026Nov 5, 202614

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

unslop-design

When your agent uses it

Review and redesign an app or website UI to strip out the "slop" (decorative accent color, gradients, glows, noisy badges, emoji as icons, eyeballed spacing, greetings as titles, Title Case, flat hierarchy, repeated numbers) with a system (spacing, type, color roles, elevation) and an orchestrated process: inventory from recordings or screenshots, grayscale pass, parallel product-designer reviewers, a published winning proposal, devs per area, audits and a PR. Covers SwiftUI, Compose and web (dashboards, landing pages, Tailwind), with scripts that scan the code and measure the rendered page. Use it when asked to "review the design", "make it look less AI", "unslop", "polish this screen", "design review", "winning proposal", "audit this dashboard", or when given videos or screenshots of an app or site asking for feedback or a redesign. Also use it to start a design system (spacing, type, palette, shadow scales) or to audit tokens, contrast or consistency across screens.

What it loads into context

Frontmatter

262 tokens

Always available to the agent

SKILL.md

1,792 tokens

When the skill is activated

Reference documents

17,385 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Principles (non-negotiable)
  2. Any agent (Claude Code, Codex, Cursor, Copilot, Gemini…)
  3. Working agreement (defaults)
  4. Short flow
  5. If the project already has its own design skill

Scripts executed separately

  • install.sh
  • scripts/slop-scan.py
  • scripts/validate.py
  • scripts/web-audit.mjs

Files

  • .github/ISSUE_TEMPLATE/config.ymlasset27 bytes
  • .github/ISSUE_TEMPLATE/feedback.ymlasset537 bytes
  • .github/ISSUE_TEMPLATE/new-fix.ymlasset807 bytes
  • .gitignoreasset38 bytes
  • CHANGELOG.mddoc3,344 bytes
  • CONTRIBUTING.mddoc1,122 bytes
  • LICENSEasset1,068 bytes
  • README.mddoc17,184 bytes
  • SKILL.mdcore7,340 bytes
  • agents/openai.yamlasset360 bytes
  • assets/hero.pngasset912,783 bytes
  • assets/process.pngasset55,185 bytes
  • assets/process.svgasset2,153 bytes
  • assets/refil-mapa.gifasset1,094,315 bytes
  • assets/refil-perfil.gifasset1,244,618 bytes
  • assets/social-preview.pngasset234,643 bytes
  • assets/videos/refil-mapa.mp4asset1,115,116 bytes
  • assets/videos/refil-perfil.mp4asset1,181,755 bytes
  • assets/web-before-after.pngasset336,573 bytes
  • checklist.mddoc18,203 bytes
  • examples/dashboard-after.htmlasset11,446 bytes
  • examples/dashboard-before.htmlasset5,026 bytes
  • install.shruns3,850 bytes
  • platforms.mddoc3,636 bytes
  • process.mddoc8,001 bytes
  • references.mddoc7,029 bytes
  • scripts/slop-scan.pyruns7,783 bytes
  • scripts/validate.pyruns1,927 bytes
  • scripts/web-audit.mjsruns17,489 bytes
  • spec-card.mddoc1,923 bytes
  • web.mddoc6,523 bytes
Read SKILL.md

# Unslop design

Three parts: **what to fix** (`checklist.md`, each fix with its reason),
**how to orchestrate it** (`process.md`, rounds with reviewers and devs in
parallel) and **cases and sources** (`references.md`: the before/afters
that shaped this skill and a map of *Refactoring UI*). The spec card every
reviewer fills is in `spec-card.md`. Per-platform notes
(SwiftUI, Compose, web, widgets, watch, car) live in `platforms.md`; websites,
web apps and dashboards have their own playbook in `web.md`. Read the one
you need, not all of them.

Two scripts measure instead of guessing:
- `python3 scripts/slop-scan.py <paths>` — slop patterns in source (web,
  SwiftUI, Compose) with file, line and fix number. Standard library only.
View the complete source on GitHub

Skills included

  • unslop-design

Repository facts

License
MIT
Created
Nov 3, 2026
Last pushed
Nov 5, 2026
Forks
0
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Show all 45 signals by file

README.md

  • Network accessline 22
    <p align="center"><sub>Real screenshots of <a href="https://refil.app">Refil</a>, same screen and city, before and after running the skill.</sub></p>
  • Network accessline 24
    <p align="center">   <img alt="Claude Code skill" src="https://img.shields.io/badge/Claude%20Code-skill-111111">
  • Network accessline 25
    <img alt="Claude Code skill" src="https://img.shields.io/badge/Claude%20Code-skill-111111">
  • Network accessline 26
    <img alt="Codex skill" src="https://img.shields.io/badge/Codex-skill-111111">
  • Network accessline 27
    <img alt="Agent Skills standard" src="https://img.shields.io/badge/Agent%20Skills-SKILL.md-111111">
  • Network accessline 28
    <img alt="SwiftUI · Compose · Web" src="https://img.shields.io/badge/SwiftUI%20·%20Compose%20·%20Web-111111">
  • Network accessline 29
    <img alt="MIT license" src="https://img.shields.io/badge/license-MIT-111111">
  • Dangerous shell operationline 67
    curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash
  • Network accessline 67
    curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash
  • Network accessline 94
    git clone https://github.com/marcosnovo/unslop-design ~/.claude/skills/unslop-design
  • Network accessline 105
    Kiro: `.kiro/skills/`) and commit it, so your team and cloud sessions get   it too. - **[skills CLI](https://github.com/vercel-labs/skills):**
  • Network accessline 106
    it too. - **[skills CLI](https://github.com/vercel-labs/skills):**   `npx skills add marcosnovo/unslop-design -g`.
  • Network accessline 107
    - **[skills CLI](https://github.com/vercel-labs/skills):**   `npx skills add marcosnovo/unslop-design -g`. - **claude.ai, Claude desktop or ChatGPT:** download `unslop-design.zip`
  • Network accessline 108
    `npx skills add marcosnovo/unslop-design -g`. - **claude.ai, Claude desktop or ChatGPT:** download `unslop-design.zip`   from the [latest release](https://github.com/marcosnovo/unslop-design/releases/latest)
  • Network accessline 109
    - **claude.ai, Claude desktop or ChatGPT:** download `unslop-design.zip`   from the [latest release](https://github.com/marcosnovo/unslop-design/releases/latest)   and upload it as a skill (Claude: Settings → Capabilities → Skills).
  • Network accessline 110
    from the [latest release](https://github.com/marcosnovo/unslop-design/releases/latest)
  • Network accessline 128
    python3 scripts/slop-scan.py src/                      # gradients, glows, emoji, arbitrary values, raw colors… with file:line and fix # node scripts/web-audit.mjs http://localhost:3000       # the rendered page at 390/768/1280 px
  • Network accessline 129
    node scripts/web-audit.mjs http://localhost:3000       # the rendered page at 390/768/1280 px
  • Network accessline 304
    Nothing in the rules: all of them read the same `SKILL.md` (the open [Agent Skills](https://agentskills.io) format); Codex also reads
  • Network accessline 305
    [Agent Skills](https://agentskills.io) format); Codex also reads
  • Network accessline 348
    - *[Refactoring UI](https://www.refactoringui.com/)* by Adam Wathan and
  • Network accessline 349
    Steve Schoger, the source of many of the system rules. - Built while redesigning [Refil](https://refil.app), a fuel price app for   iOS and Android.
  • Network accessline 350
    - Built while redesigning [Refil](https://refil.app), a fuel price app for

SKILL.md

  • Network accessline 6
    author: marcosnovo   version: "1.5.0"   homepage: https://github.com/marcosnovo/unslop-design
  • Network accessline 7
    version: "1.5.0"   homepage: https://github.com/marcosnovo/unslop-design ---
  • Network accessline 8
    homepage: https://github.com/marcosnovo/unslop-design

assets/process.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="210" viewBox="0 0 1200 210" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Helvetica, Arial, sans-serif">

install.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 2
    # Install unslop-design for every coding agent found on this machine. # #   curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash
  • Network accessline 3
    # #   curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash #
  • Dangerous shell operationline 4
    #   curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash
  • Network accessline 4
    #   curl -fsSL https://raw.githubusercontent.com/marcosnovo/unslop-design/main/install.sh | bash
  • Network accessline 15
    NAME=unslop-design REPO=${UNSLOP_REPO:-https://github.com/marcosnovo/unslop-design}
  • Network accessline 16
    REPO=${UNSLOP_REPO:-https://github.com/marcosnovo/unslop-design}
  • Dangerous shell operationline 63
    if ours "$target"; then echo "  $agent: $target"; run rm -rf "$target"
  • Dangerous shell operationline 67
    if ours "$MAIN"; then echo "  main copy: $MAIN"; run rm -rf "$MAIN"
  • Network accessline 80
    echo "  cloning into $MAIN  (Codex, Cline, Zed)"   run mkdir -p "$(dirname "$MAIN")"   run git clone --quiet --depth 1 "$REPO" "$MAIN"
  • Network accessline 81
    run mkdir -p "$(dirname "$MAIN")"   run git clone --quiet --depth 1 "$REPO" "$MAIN"   [ "$DRY" = 1 ] || touch "$MAIN/$MARK"
  • Network accessline 82
    run git clone --quiet --depth 1 "$REPO" "$MAIN"

scripts/slop-scan.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/validate.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/web-audit.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

web.md

  • Network accessline 41
    npm i -D playwright            # once, if the project doesn't have it node scripts/web-audit.mjs http://localhost:3000/dashboard --out unslop-audit
  • Network accessline 42
    node scripts/web-audit.mjs http://localhost:3000/dashboard --out unslop-audit
  • Network accessline 43
    node scripts/web-audit.mjs http://localhost:3000/dashboard --dark --widths 1280

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 44 facts
  • Network access in prose of documentationREADME.md:22Low confidence
  • Network access in prose of documentationREADME.md:24Low confidence
  • Network access in prose of documentationREADME.md:25Low confidence
  • Network access in prose of documentationREADME.md:26Low confidence
  • Network access in prose of documentationREADME.md:27Low confidence
  • Network access in prose of documentationREADME.md:28Low confidence
  • Network access in prose of documentationREADME.md:29Low confidence
  • Dangerous shell operation in code of documentationREADME.md:67Low confidence
  • Network access in code of documentationREADME.md:67Low confidence
  • Network access in code of documentationREADME.md:94Low confidence
  • Network access in prose of documentationREADME.md:105Low confidence
  • Network access in prose of documentationREADME.md:106Low confidence
  • Network access in prose of documentationREADME.md:107Low confidence
  • Network access in prose of documentationREADME.md:108Low confidence
  • Network access in prose of documentationREADME.md:109Low confidence
  • Network access in prose of documentationREADME.md:110Low confidence
  • Network access in code of documentationREADME.md:128Low confidence
  • Network access in code of documentationREADME.md:129Low confidence
  • Network access in prose of documentationREADME.md:304Low confidence
  • Network access in prose of documentationREADME.md:305Low confidence
  • Network access in prose of documentationREADME.md:348Low confidence
  • Network access in prose of documentationREADME.md:349Low confidence
  • Network access in prose of documentationREADME.md:350Low confidence
  • Network access in the frontmatter of the SKILL.mdSKILL.md:6Low confidence
  • Network access in the frontmatter of the SKILL.mdSKILL.md:7Low confidence
  • Network access in the frontmatter of the SKILL.mdSKILL.md:8Low confidence
  • Executable script in code of a file that runsinstall.sh:1High confidence
  • Network access in a comment of a file that runsinstall.sh:2Low confidence
  • Network access in a comment of a file that runsinstall.sh:3Low confidence
  • Dangerous shell operation in a comment of a file that runsinstall.sh:4Low confidence
  • Network access in a comment of a file that runsinstall.sh:4Low confidence
  • Network access in code of a file that runsinstall.sh:15High confidence
  • Network access in code of a file that runsinstall.sh:16High confidence
  • Dangerous shell operation in code of a file that runsinstall.sh:63High confidence
  • Dangerous shell operation in code of a file that runsinstall.sh:67High confidence
  • Network access in code of a file that runsinstall.sh:80High confidence
  • Network access in code of a file that runsinstall.sh:81High confidence
  • Network access in code of a file that runsinstall.sh:82High confidence
  • Executable script in code of a file that runsscripts/slop-scan.py:1High confidence
  • Executable script in code of a file that runsscripts/validate.py:1High confidence
  • Executable script in code of a file that runsscripts/web-audit.mjs:1High confidence
  • Network access in code of documentationweb.md:41Low confidence
  • Network access in code of documentationweb.md:42Low confidence
  • Network access in code of documentationweb.md:43Low confidence

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.