Design lint
tool-gates scans UI file write/edit bodies for generic, templated design patterns and missing UI-quality basics. It covers Claude Write/Edit and Codex apply_patch added lines on the PostToolUse path, the same path as the security-reminder nudges. Antigravity has no PostToolUse hook, so design-lint does not run there. Findings are a single tier: every match attaches a post-write nudge so the next action can self-correct. Nothing is blocked. The gate is opt-in (default off) and only scans UI extensions (.tsx, .jsx, .vue, .svelte, .astro, .html, .css, .scss, and similar).
Why it is opt-in
A design opinion you switch on per project.
Security reminders enforce a safety floor everywhere. These rules encode a house style for frontend output: avoid the patterns that read as generic or templated, and keep the accessibility basics. That is a deliberate choice a project opts into, so the gate defaults off. When enabled, each match attaches a <system-reminder> via additionalContext after the write lands. Raw color values inside a :root token definition are exempt: defining a brand token is legitimate; reaching for the same value in markup is what gets flagged.
Color
post-write nudge · PostToolUsecolor/cliche-gradientcolor/purple-gradientcolor/overused-palettecolor/default-indigocolor/hardcoded-palettecolor/raw-hexcolor/theme-accessorcolor/maxed-saturationTypography
post-write nudge · PostToolUsetypography/default-fonttypography/small-body-texttypography/script-fontContent
post-write nudge · PostToolUsecontent/placeholder-namecontent/fabricated-statcontent/filler-copycontent/dashcontent/emoji-decorationMotion
post-write nudge · PostToolUsemotion/transition-allmotion/scale-hoverStructure & accessibility
post-write nudge · PostToolUselayout/accent-stripebehavior/scroll-into-viewassets/hotlinked-imagea11y/focus-visibleConfigure
documented[features] design_lint = true [design_lint] disable_rules = ["color/default-indigo"]
Opt-in. Set design_lint = true under [features] to turn the gate on; it is off by default.
Disable individual rules by id (for example color/default-indigo or content/dash) when a project deliberately uses that pattern.
Only UI file extensions are scanned. CSS custom-property definitions in a :root block are exempt from the raw-color rules, so defining a brand token is never flagged, while the same value used in markup or inline styles still is.