Rules Overview
CognitiveLint ships 17 rules across 6 UX dimensions. Each rule is grounded in published UX research and outputs findings with a confidence score that modulates the severity deduction.
Cognitive Load — 30% weight
Rules that detect interfaces overwhelming working memory.
cognitive-load/excessive-primary-actions
Too many primary call-to-action buttons on a single view overwhelms users with choice paralysis (Hick's Law).
Default severity: High
Default threshold: 2 primary actions
Option: maxPrimaryActions (default: 2)
cognitive-load/long-forms
Forms with too many fields exceed working memory limits (Miller's Law: 7±2 items).
Default severity: Medium
Default threshold: 7 fields
Option: maxFields (default: 7)
cognitive-load/filter-overload
Too many filter controls create decision paralysis and obscure the core content.
Default severity: Medium
Default threshold: 5 filters
Option: maxFilters (default: 5)
cognitive-load/dense-tables
Wide tables with excessive columns force horizontal scrolling and make scanning impossible.
Default severity: Medium
Default threshold: 8 columns
Option: maxColumns (default: 8)
Trust & Confidence — 20% weight
Rules that catch UI undermining user trust.
trust/unexplained-disabled
Disabled UI elements without visible explanation violate Nielsen's Heuristic #1 (Visibility of System Status). Users can't tell if it's a bug or intentional.
Default severity: High
trust/ownership-ambiguity
UI that doesn't clearly indicate which user or entity owns displayed data creates anxiety, especially in multi-tenant products.
Default severity: Medium
trust/missing-ownership
Data tables and lists that show records without an owner indicator make it impossible to distinguish "mine" from "shared" or "theirs".
Default severity: Low
Feedback — 15% weight
Rules that catch missing system status signals.
feedback/missing-loading-state
Async operations (useQuery, useSWR, fetch, await) without a loading state leave users wondering if their action registered.
Default severity: High
Detects: isLoading, loading, isPending, isFetching patterns
feedback/missing-empty-state
Data containers without an empty-state message leave users staring at a blank screen with no explanation.
Default severity: Medium
feedback/missing-success-feedback
Mutations (useMutation, form submissions) without visible success confirmation leave users unsure if their action worked.
Default severity: Medium
Detects: toast, notification, snackbar, onSuccess, alert patterns
feedback/no-progress-indicator
Long operations without progress indicators violate Heuristic #1 — users can't estimate how long to wait.
Default severity: Low
Discoverability — 15% weight
Rules that find hidden or inaccessible features.
discoverability/missing-search
Data-heavy views (tables, lists) without a search or filter mechanism force users to scroll through potentially hundreds of records.
Default severity: Medium
discoverability/hidden-primary-action
The most important action buried inside a dropdown or overflow menu violates Heuristic #4 (Consistency and Standards) — primary actions should always be visible.
Default severity: High
discoverability/empty-navigation
Navigation items that are empty or have no content create dead ends in the user journey.
Default severity: Low
Consistency — 10% weight
Rules that catch terminology inconsistency.
consistency/inconsistent-button-labels
Submit actions labeled differently across forms (Save, Submit, Confirm, Apply) violate Heuristic #4 (Consistency and Standards) and increase cognitive friction.
Default severity: Medium
Error Prevention — 10% weight
Rules that flag dangerous UX patterns.
error-prevention/destructive-no-confirm
Delete, remove, or irreversible actions without a confirmation dialog violate Heuristic #5 (Error Prevention). One misclick can cause data loss.
Default severity: Critical
error-prevention/no-undo
Destructive operations without an undo mechanism leave users with no recovery path.
Default severity: High
error-prevention/modal-nesting
Modals opened from within other modals create confusing navigation stacks. Users lose orientation and the back button breaks.
Default severity: High
Known limitation: May false-positive on Radix UI, Headless UI, or PatternFly component library patterns
error-prevention/confirmation-fatigue
Excessive confirmation dialogs throughout a single flow cause users to click through without reading (the "click OK" reflex), defeating their purpose.
Default severity: Medium
Disabling rules
In your config file:
export default {
rules: {
'error-prevention/modal-nesting': 'off',
'trust/missing-ownership': 'off',
},
};