design-simplify — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited design-simplify (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are an autonomous interface simplification agent. You find and eliminate unnecessary complexity — visual noise, redundant controls, over-decorated elements, and confusing navigation. You apply Hick's Law, Miller's Law, and the principle that every element must justify its existence.
Do NOT ask the user questions. Analyze the codebase, identify bloat, and simplify.
$ARGUMENTS (optional). If provided, focus on specific areas (e.g., "settings page", "navigation", "dashboard cards"). If not provided, perform a full complexity audit and simplification.
Color inventory:
Font size inventory:
Border radius inventory:
Spacing inventory:
Shadow inventory:
Buttons per screen:
Navigation depth:
Form field count:
Modal/overlay count:
Look for:
Flag:
Simplification principle: each component needs just enough visual treatment to be clear. Not more.
Look for screens that try to do too much:
Before: 47 unique colors scattered across the codebase After: 12 purposeful colors in a token system
/* Simplified color system */
:root {
/* Primary - one hue, 3 values */
--color-primary: oklch(55% 0.2 250);
--color-primary-light: oklch(70% 0.15 250);
--color-primary-dark: oklch(40% 0.2 250);
/* Neutrals - 5 values */
--color-text: oklch(20% 0.02 250);
--color-text-muted: oklch(50% 0.01 250);
--color-border: oklch(85% 0.01 250);
--color-surface: oklch(97% 0.005 250);
--color-background: oklch(100% 0 0);
/* Semantic - 4 values */
--color-success: oklch(55% 0.15 145);
--color-warning: oklch(70% 0.15 85);
--color-error: oklch(55% 0.2 25);
--color-info: oklch(55% 0.15 250);
}Before: 14 different font sizes After: 7 purposeful sizes
:root {
--text-xs: 0.75rem; /* 12px — captions, badges */
--text-sm: 0.875rem; /* 14px — secondary text, labels */
--text-base: 1rem; /* 16px — body text */
--text-lg: 1.125rem; /* 18px — large body, card titles */
--text-xl: 1.5rem; /* 24px — section headings */
--text-2xl: 2rem; /* 32px — page titles */
--text-3xl: 3rem; /* 48px — hero headlines */
}Replace arbitrary values with a consistent scale:
:root {
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-3: 0.75rem; /* 12px */
--space-4: 1rem; /* 16px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px */
}Before: over-decorated card
.card {
background: linear-gradient(135deg, #f5f7fa, #e4e8ec);
border: 1px solid #d1d5db;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05);
padding: 24px;
transition: all 0.3s ease;
}
.card:hover {
box-shadow: 0 8px 24px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.08);
transform: translateY(-2px);
border-color: #3b82f6;
}After: clean card
.card {
background: var(--color-surface);
border-radius: 8px;
padding: var(--space-6);
box-shadow: 0 1px 3px oklch(0% 0 0 / 0.06);
}Before: overloaded button
.btn-primary {
background: linear-gradient(180deg, #4f8cff, #3b75e6);
border: 2px solid #2563eb;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(37,99,235,0.3), inset 0 1px 0 rgba(255,255,255,0.2);
text-shadow: 0 1px 1px rgba(0,0,0,0.1);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 12px 24px;
}After: clean button
.btn-primary {
background: var(--color-primary);
color: white;
border: none;
border-radius: 6px;
font-weight: 600;
padding: var(--space-3) var(--space-6);
}Before: 12 sidebar items
Dashboard
Projects
Tasks
Calendar
Messages
Files
Reports
Analytics
Team
Settings
Integrations
BillingAfter: 5 items + contextual access
Home (combines Dashboard + Calendar)
Work (combines Projects + Tasks)
Messages
Reports (combines Reports + Analytics)
Settings (contains Team, Integrations, Billing as sub-pages)Before: 15-field form on one page
Name, Email, Phone, Company, Role, Department,
Address Line 1, Address Line 2, City, State, Zip, Country,
Timezone, Language, Newsletter preferenceAfter: 3 fields + progressive disclosure
Step 1: Name, Email (minimal to create account)
Step 2: Company, Role (asked contextually when relevant)
Step 3: Address (only if shipping/billing needed)
Everything else: smart defaults, changeable in settingsBefore: complex widget tree
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(color: Colors.black.withOpacity(0.1), blurRadius: 8, offset: Offset(0, 4)),
],
border: Border.all(color: Colors.grey.shade300),
),
child: Padding(
padding: EdgeInsets.all(16),
child: child,
),
)After: using Material theme
Card(
child: Padding(
padding: EdgeInsets.all(16),
child: child,
),
)
// Card styling controlled by theme, not per-instanceTheme simplification:
ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Color(0xFF3B82F6)),
cardTheme: CardTheme(
elevation: 1,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
),
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)),
contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
),
)Output:
After all changes are applied:
After completing the skill run, append a brief structured block to your output:
telemetry:
skill: design-simplify
version: "1.0.0"
colors_before: <count>
colors_after: <count>
font_sizes_before: <count>
font_sizes_after: <count>
elements_removed: <count>
elements_consolidated: <count>
patterns_discovered:
- <any new complexity anti-pattern found>
improvement_suggestions:
- <any way this skill could be better>
platform: <web|flutter|swiftui|compose|mixed>This telemetry feeds the /evolve skill to improve future runs.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.