"Redesign an existing UI without breaking it: declare a mode (greenfield / preserve / overhaul), audit the current surface before any edit, apply modernisation levers in priority order, and never silently change routes, nav labels, form fields, shortcuts or data-testid hooks. Triggers: \"redesign this page\", \"modernise this UI\", \"refresh the look\", \"mockup an existing surface\"."
Install
npx skillscat add blackbelttechnology/pi-agent-dashboard/anti-slop-redesign Install via the SkillsCat registry.
anti-slop-redesign
Most UI work changes a surface that already ships. Misclassifying the mode is
the biggest source of bad redesign output: a "refresh" that renames routes,
breaks e2e selectors and drops keyboard shortcuts is a regression, however
good it looks. This skill makes the mode, the audit and the protected list
explicit before anything is touched.
Authority: advisory. Findings feed the frontend-mockup-loop FIX step and
never override a WCAG-AA or severity gate. When a recommendation conflicts
with a gate result, the gate result stands and the recommendation is recorded
as overridden. The tell catalog itself lives in anti-slop-frontend; this
skill decides what may change and in which order.
When to Use
- A request to redesign, modernise, refresh or de-template an existing surface.
- Before
frontend-mockup-loopMOCKUP on any surface that already ships. - Not for a site with no shipped design: that is
new-site→greenfield.
Procedure
1. Declare the mode (before any edit)
State the anti-slop-frontend Design Read, then one of three modes:
| Mode | Means |
|---|---|
greenfield |
no existing design, or a full rebuild was explicitly approved |
preserve |
modernise without breaking brand, IA, copy voice or hooks |
overhaul |
new visual language on the existing content and IA |
Defaults per surface profile:
| Profile | Default mode |
|---|---|
product-ui |
preserve |
marketing |
preserve |
new-site |
greenfield |
overhaulrequires explicit user confirmation before proceeding. Ask once
(ask_userwhen available); without a yes, stay inpreserve.- Pick
overhaulonly when the visual debt is structural (no design system,
broken mobile, broken IA). Sound IA and content →preserve.
2. Audit before edit
Produce the audit before touching any file. A redesign whose first artifact is
a diff fails Verification.
- Screenshot of the current surface (both modes if the project ships both).
- Brand tokens in use: colour tokens, type stack, radius scale, logo.
- Tells found: run the
anti-slop-frontendchecklist for the declared
profile; list each hit with its rule id (A3, B2, ...). - Missing states: loading / empty / error that do not exist yet.
- Protected inventory: list the items from "Never change silently" that
the surface contains (routes, nav labels, field names, shortcuts,data-testidvalues). - Dial reading of the existing surface. That is the starting point, not a
baseline.
3. Levers in priority order
Apply in order; stop as soon as the brief is satisfied. Each lever is a
separate, reviewable step.
- Typography - family, scale, weight hierarchy. Biggest lift per risk.
- Colour - unify neutrals, one accent, tokens only (
anti-slop-frontendA1, T1). - Spacing and rhythm - consistent scale, section padding, max-width.
- States - hover / active / focus, then loading / empty / error.
- Motion - only motivated motion at the declared MOTION dial (A7).
- Layout - recompose a section only when levers 1-5 cannot fix it; full
block replacement only for an unsalvageable block.
In preserve, levers 1-4 are the default scope; 5-6 need a reason in the
audit.
4. Verify the protected list
Diff the result against the protected inventory from step 2. Every changed
protected item must be listed and confirmed (see below), or reverted.
Never change silently
In preserve and overhaul, these do not change unless the change is listed
explicitly and the user confirms it:
- routes / URLs and anchor ids
- nav labels
- form field names (and their order)
- brand wordmark and logo
- legal copy (consent, cookie, terms)
- keyboard shortcuts
data-testidattributes (e2e suites select on them)
Also preserve, unless asked: copy voice, existing accessibility wins (focus
states, alt text, keyboard nav, contrast), and analytics event names.
Rules
- Work with the existing stack. No framework or styling-library migration.
- Check the dependency file before importing anything new.
- Do not break existing behaviour; run the project's tests after each lever.
- Small, reviewable changes over one big rewrite.
Pitfalls
- Do NOT start editing before the mode and audit exist.
- Do NOT treat "make it modern" as approval for
overhaul. - Do NOT rename a
data-testidto match a new component name; the e2e suite
breaks silently in CI, not locally. - Do NOT use a tell from the audit to justify violating a WCAG-AA gate.
Verification
- A mode was declared before the first edit;
overhaulhas a recorded
confirmation. - The audit (screenshot, tokens, tells, missing states, protected inventory)
predates the first diff. - Levers were applied in priority order; skipped levers are named.
- Every protected item that changed is listed with its confirmation; all
others are byte-identical.