All skills
hueyexe avatar

/ux-usability-foundations

@2841c07

Use when designing, critiquing, or improving an interface for usability, including affordances, feedback, constraints, error prevention, navigation clarity, or task flow.

Use this Skill: https://skilld.dev/gh/hueyexe/frontend-agent-skills/ux-usability-foundations

This session only. Nothing lands on disk.

referencesprinciple-cards.md

≈3.9k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Principle Cards — UX Usability Foundations

Principle: Start with the user goal

Rule:

  • Define the user’s goal, task, success condition, and risk before choosing layout, navigation, or controls.

Why it matters:

  • Interfaces fail when they express implementation structure or stakeholder feature lists rather than the user’s outcome.

Use when:

  • Creating or critiquing any flow, screen, form, or control set.

Do not use when:

  • The user only asks for cosmetic styling and the task model is already fixed; still note usability risks.

Default recommendation:

  • Optimize the most common successful task first.

Ask the user when:

  • The primary task, audience, or consequence of failure is unclear.

Question prompt:

question({
  question: "What is the primary task this interface must help users complete?",
  recommended_default: "Optimize for the most common successful task first, then make secondary actions available but visually quieter.",
  options: ["Complete one focused task", "Compare or monitor multiple items", "Explore choices", "Other / custom"]
})

Agent behavior:

  • Begin recommendations with the task and success condition. Remove or demote UI that does not support that task.

Principle: Remove question marks

Rule:

  • Users should not have to wonder what the page is, where to begin, what is clickable, what words mean, or what happened.

Why it matters:

  • Every unnecessary question adds cognitive load and reduces confidence.

Use when:

  • Reviewing labels, controls, landing screens, dashboards, forms, navigation, and calls to action.

Do not use when:

  • The interface is a game, puzzle, or deliberate learning environment where challenge is the point; even then controls should be understandable.

Default recommendation:

  • Make important UI self-evident; make novel or complex UI self-explanatory.

Ask the user when:

  • They request clever, branded, or intentionally mysterious wording.

Question prompt:

question({
  question: "Should clarity or brand personality win if users may not understand the label immediately?",
  recommended_default: "Use the clearest user-language label first and express brand personality in supporting copy or tone.",
  options: ["Prioritize clarity", "Balance clarity and brand", "Use required brand/domain wording", "Other / custom"]
})

Agent behavior:

  • Replace vague labels, hidden controls, and ambiguous icons with visible, descriptive cues.

Principle: Signify every possible action

Rule:

  • Controls must communicate what can be done and how to do it.

Why it matters:

  • A possible action is useless if users cannot discover it.

Use when:

  • Designing buttons, links, drawers, gestures, cards, menus, drag/drop, inputs, or custom components.

Do not use when:

  • Hiding an action is a safety mechanism; even then authorized users need discoverable paths.

Default recommendation:

  • Use standard labeled controls for important actions.

Ask the user when:

  • Space or brand constraints push toward hidden or icon-only actions.

Question prompt:

question({
  question: "Can this important action be shown with a visible label, or must it be hidden because of space or platform constraints?",
  recommended_default: "Show a visible label for primary and consequential actions; hide only secondary or infrequent actions.",
  options: ["Visible labeled control", "Icon with tooltip/accessible name", "Overflow/menu", "Other / custom"]
})

Agent behavior:

  • Identify all actions and ensure each has a visible cue, accessible name, and state.

Principle: Match mental models, not implementation models

Rule:

  • Organize concepts, names, and flows around how users understand the work.

Why it matters:

  • Users should not need to learn the database, architecture, file system, or org chart.

Use when:

  • Designing navigation, settings, object models, tables, dashboards, admin interfaces, and enterprise workflows.

Do not use when:

  • The users are technical operators whose task is to manipulate the implementation model itself.

Default recommendation:

  • Use user-visible nouns and verbs; hide implementation artifacts unless meaningful to the task.

Ask the user when:

  • The audience may be domain experts who expect specialized terms.

Question prompt:

question({
  question: "Are the users domain experts who expect technical terms, or should the interface translate them into plain user language?",
  recommended_default: "Use plain task language, with domain terms only where users already expect them.",
  options: ["Plain language", "Domain-expert terminology", "Dual labels/help text", "Other / custom"]
})

Agent behavior:

  • Rename and regroup features around user intent. Flag implementation leakage.

Principle: Design for scanning and satisficing

Rule:

  • Assume users scan for a plausible next step rather than reading everything and optimizing.

Why it matters:

  • Important content must be findable at a glance, or users will choose the first plausible path.

Use when:

  • Designing page structure, content hierarchy, tables, cards, menus, and help text.

Do not use when:

  • The product is a long-form reading environment; still provide navigation and summaries.

Default recommendation:

  • Use strong headings, meaningful grouping, visible primary actions, concise copy, and scannable lists.

Ask the user when:

  • The screen must support dense monitoring or complex comparison.

Question prompt:

question({
  question: "Does this screen need to support quick task completion or dense comparison/monitoring?",
  recommended_default: "Optimize for quick scanning and one clear next action unless comparison density is essential.",
  options: ["Quick task completion", "Dense comparison", "Real-time monitoring", "Other / custom"]
})

Agent behavior:

  • Reorder, group, and cut content so the likely next step appears quickly.

Principle: Prefer recognition over recall

Rule:

  • Put needed context, choices, examples, and state in the interface instead of requiring memory.

Why it matters:

  • Memory is fragile under distraction, stress, infrequent use, and complex tasks.

Use when:

  • Designing settings, forms, commands, filters, multi-step flows, dashboards, and shortcuts.

Do not use when:

  • Expert shortcuts are optional accelerators; still provide visible alternatives.

Default recommendation:

  • Provide visible options and context first; add shortcuts as accelerators.

Ask the user when:

  • The workflow is for trained experts and speed may justify denser memorized interaction.

Question prompt:

question({
  question: "Are users expected to use this frequently enough to learn shortcuts, or must the interface stay discoverable each time?",
  recommended_default: "Keep visible, recognizable paths and add shortcuts only as optional accelerators.",
  options: ["Infrequent/discoverable", "Frequent intermediates", "Trained experts", "Other / custom"]
})

Agent behavior:

  • Surface recent choices, examples, labels, current filters, and object context.

Principle: Minimize unnecessary choices

Rule:

  • Reduce the number and complexity of choices presented at one time.

Why it matters:

  • More choices increase decision time, perceived effort, and error probability.

Use when:

  • Designing menus, plans, settings, filters, onboarding, forms, and calls to action.

Do not use when:

  • Users need broad comparison or expert control; still group and prioritize.

Default recommendation:

  • Present common options first, group the rest, and hide rare advanced choices behind clear controls.

Ask the user when:

  • Business requirements demand many visible options.

Question prompt:

question({
  question: "Which choices are truly needed for the first decision, and which can be revealed after users choose a path?",
  recommended_default: "Show the common first-step choices and progressively disclose advanced or rare options.",
  options: ["Common choices only", "Grouped full list", "Search/filter first", "Other / custom"]
})

Agent behavior:

  • Consolidate options, add defaults, group by task, and remove redundant decisions.

Principle: Provide feedback that teaches system state

Rule:

  • Every consequential action should produce timely, informative, proportionate feedback.

Why it matters:

  • Without feedback, users retry, abandon, duplicate work, or lose trust.

Use when:

  • Designing submits, saves, uploads, deletes, async tasks, sync, loading, filters, and state changes.

Do not use when:

  • The action’s visible result is already immediate and obvious.

Default recommendation:

  • Use inline status for local actions, progress for delays, persistent status for long-running tasks, and interruption only for blocking issues.

Ask the user when:

  • The operation may take time, fail, or have delayed consequences.

Question prompt:

question({
  question: "How long can this operation take, and what should users be able to do while it runs?",
  recommended_default: "Show immediate receipt, progress for delays, and allow safe continuation when possible.",
  options: ["Instant", "A few seconds", "Long-running/background", "Other / custom"]
})

Agent behavior:

  • Specify state transitions and feedback copy/placement.

Principle: Constrain before correcting

Rule:

  • Prevent invalid or dangerous actions through constraints, defaults, input design, and sequencing before relying on error messages.

Why it matters:

  • Prevention is faster and less stressful than recovery.

Use when:

  • Designing forms, destructive actions, permissions, file uploads, scheduling, payments, medical/legal/financial data, and configuration.

Do not use when:

  • Over-constraining blocks valid user intent; provide escape hatches where needed.

Default recommendation:

  • Use safe defaults and clear constraints, with flexible input where possible.

Ask the user when:

  • Constraints may block legitimate expert or edge-case behavior.

Question prompt:

question({
  question: "Should this input be tightly constrained for safety, or flexible enough to handle edge cases?",
  recommended_default: "Constrain dangerous or invalid actions, but keep ordinary input flexible and correctable.",
  options: ["Tightly constrained", "Flexible with validation", "Expert override", "Other / custom"]
})

Agent behavior:

  • Add constraints, validation, previews, and disabled/hidden behavior with explanations.

Principle: Recover without blame

Rule:

  • Error handling should guide recovery, preserve work, and avoid blaming the user.

Why it matters:

  • Users blame themselves when interfaces fail. Good UI keeps them moving.

Use when:

  • Writing validation, failure, offline, permission, destructive, and empty-state messages.

Do not use when:

  • Security requires withholding details; still provide safe, non-blaming next steps.

Default recommendation:

  • Explain the issue, show the affected item, preserve input, and provide a direct fix.

Ask the user when:

  • Error details are sensitive, regulated, or security-relevant.

Question prompt:

question({
  question: "Can the error message safely explain the exact problem, or must details be limited for security/compliance?",
  recommended_default: "Give specific recovery guidance unless revealing details creates risk.",
  options: ["Specific recovery guidance", "Limited details", "Contact/support handoff", "Other / custom"]
})

Agent behavior:

  • Rewrite errors as recovery instructions and specify where fixes happen.

Principle: Prefer undo over confirmation for reversible actions

Rule:

  • If an action is reversible, let users do it and offer undo rather than interrupting with confirmation.

Why it matters:

  • Repeated confirmations become noise and train users to click through.

Use when:

  • Archiving, moving, hiding, dismissing, sorting, lightweight deletion, and changes that can be restored.

Do not use when:

  • The action is irreversible, legally binding, costly, dangerous, or affects others irreversibly.

Default recommendation:

  • Use undo for reversible actions and confirmation/review for irreversible or high-risk actions.

Ask the user when:

  • Reversibility is unclear.

Question prompt:

question({
  question: "Is this action fully reversible, and for how long?",
  recommended_default: "Use undo for reversible actions; reserve confirmation for irreversible or high-risk actions.",
  options: ["Fully reversible", "Reversible for limited time", "Not reversible", "Other / custom"]
})

Agent behavior:

  • Specify undo duration, placement, copy, and state restoration.

Principle: Keep users oriented

Rule:

  • Users should know where they are, how they got there, where they can go, and what will happen next.

Why it matters:

  • Disorientation causes backtracking, abandonment, and errors.

Use when:

  • Designing navigation, breadcrumbs, app shells, multi-step flows, dashboards, and deep content.

Do not use when:

  • A narrow wizard intentionally limits movement; still show progress and exit rules.

Default recommendation:

  • Show current section, object, step, and major routes.

Ask the user when:

  • Free navigation conflicts with completion requirements.

Question prompt:

question({
  question: "Should users be able to move freely, or must this flow keep them in a guided sequence?",
  recommended_default: "Allow free orientation and safe backtracking unless the task requires a controlled sequence.",
  options: ["Free navigation", "Guided sequence", "Hybrid", "Other / custom"]
})

Agent behavior:

  • Add current states, progress indicators, breadcrumbs, back paths, and stable navigation.

Principle: Use conventions unless there is a task reason not to

Rule:

  • Prefer familiar patterns when they support the task.

Why it matters:

  • Familiar patterns let users transfer learning from other products.

Use when:

  • Choosing navigation, dialogs, forms, menus, gestures, filtering, search, and selection patterns.

Do not use when:

  • Existing conventions are harmful, inaccessible, or mismatched to the task.

Default recommendation:

  • Use standard components and patterns; customize content and behavior where the task demands.

Ask the user when:

  • A nonstandard interaction is requested.

Question prompt:

question({
  question: "What user problem does the nonstandard pattern solve better than the familiar convention?",
  recommended_default: "Use the familiar convention unless the alternative is measurably clearer or faster for this task.",
  options: ["Use standard pattern", "Use nonstandard pattern with explanation", "Prototype/test both", "Other / custom"]
})

Agent behavior:

  • Challenge novelty that increases learning cost without task benefit.

Principle: Make accessibility structural

Rule:

  • Accessibility is built through perceivable structure, operable controls, understandable language, forgiving flows, and robust implementation.

Why it matters:

  • Accessibility failures are usability failures.

Use when:

  • Designing or implementing any UI.

Do not use when:

  • Never. Accessibility basics are non-optional.

Default recommendation:

  • Use semantic controls and labels, keyboard support, focus visibility, non-color cues, and accessible feedback.

Ask the user when:

  • Compliance level or procurement requirements are unknown in regulated/public products.

Question prompt:

question({
  question: "Does this product have a required accessibility standard or procurement target?",
  recommended_default: "Meet core WCAG-oriented basics by default; confirm stricter targets for regulated, public-sector, education, healthcare, or enterprise contexts.",
  options: ["WCAG AA target", "Internal baseline only", "Regulated/procurement requirement", "Other / custom"]
})

Agent behavior:

  • Include accessibility behavior in the spec, not as an afterthought.

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill provides a comprehensive framework for UX usability design and critique. It contains only informational guidelines, checklists, and principle cards. There are no executable scripts, network requests, or sensitive data access operations.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 2841c07. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Steadyupdated 2 months ago
metadata
{
  "author": "hueyexe"
}

README badge

README badge for hueyexe/frontend-agent-skills/ux-usability-foundations