Agent Skills: Interaction Design Skill

Master interaction design - patterns, micro-interactions, user flows, affordances, feedback

interaction-statesmicrointeractionsuser-flow-analysisaffordancesfeedback
uiID: pluginagentmarketplace/custom-plugin-ux-design/interaction-design

Skill Files

Browse the full folder contents for interaction-design.

Download Skill

Loading file tree…

skills/interaction-design/SKILL.md

Skill Metadata

Name
interaction-design
Description
Master interaction design - patterns, micro-interactions, user flows, affordances, feedback

Interaction Design Skill

Atomic Skill: Design intuitive interactions that guide users through seamless experiences

Purpose

This skill provides frameworks for designing responsive, accessible, and delightful user interactions.

Skill Invocation

Skill("custom-plugin-ux-design:interaction-design")

Parameter Schema

Input Parameters

interface InteractionDesignParams {
  // Required
  type: "pattern" | "microinteraction" | "flow" | "feedback" | "gesture";
  context: string;

  // Optional
  platform?: "web" | "mobile" | "desktop";
  interaction_model?: "touch" | "mouse" | "keyboard" | "voice" | "hybrid";
  accessibility?: {
    reduced_motion?: boolean;
    keyboard_only?: boolean;
  };
}

Validation Rules

type:
  type: enum
  required: true
  values: [pattern, microinteraction, flow, feedback, gesture]

context:
  type: string
  required: true
  min_length: 10

platform:
  type: enum
  default: "web"

Execution Flow

INTERACTION DESIGN EXECUTION
────────────────────────────────────────────

Step 1: UNDERSTAND USER GOALS
├── Identify user intent
├── Map expected outcomes
└── Define success criteria

Step 2: DESIGN TRIGGERS
├── Define interaction triggers
├── Specify input methods
└── Consider accessibility

Step 3: CREATE RESPONSE
├── Design visual feedback
├── Specify timing/easing
└── Add audio/haptic (optional)

Step 4: HANDLE STATES
├── Success state
├── Error state
├── Loading state
└── Empty state

Step 5: DOCUMENT & TEST
├── Create specifications
├── Prototype interactions
└── Validate with users

────────────────────────────────────────────

Retry Logic

retry_config:
  max_attempts: 3
  backoff_type: exponential
  initial_delay_ms: 500
  max_delay_ms: 5000
  retryable_errors:
    - ANIMATION_RENDER_FAILED
    - PROTOTYPE_SYNC_ERROR

Logging Hooks

interface InteractionLog {
  timestamp: string;
  event: "interaction_start" | "feedback_shown" | "complete" | "error";
  interaction_type: string;
  duration_ms: number;
  success: boolean;
}

Learning Modules

Module 1: Interaction Patterns

COMMON PATTERNS
├── Navigation
│   ├── Tab navigation
│   ├── Sidebar toggle
│   └── Breadcrumbs
├── Data Entry
│   ├── Form validation
│   ├── Autocomplete
│   └── Date pickers
├── Content
│   ├── Infinite scroll
│   ├── Pull to refresh
│   └── Expand/collapse
└── Actions
    ├── Drag and drop
    ├── Swipe actions
    └── Long press

Module 2: Micro-interactions

MICRO-INTERACTION ANATOMY
├── Trigger (user action)
├── Rules (what happens)
├── Feedback (visual response)
└── Loops/Modes (ongoing state)

TIMING GUIDELINES
├── Instant: 0-100ms (feedback)
├── Fast: 100-300ms (transitions)
├── Normal: 300-500ms (animations)
└── Slow: 500ms+ (complex sequences)

EASING CURVES
├── ease-out: Deceleration (entering)
├── ease-in: Acceleration (exiting)
├── ease-in-out: Smooth (moving)
└── spring: Natural (bouncy)

Module 3: User Flows

FLOW DESIGN PRINCIPLES
├── Minimize steps to goal
├── Provide clear progress
├── Allow easy recovery
├── Confirm destructive actions
└── Remember user state

FLOW COMPONENTS
├── Entry points
├── Decision points
├── Action points
├── Exit points
└── Error paths

Module 4: Affordances

AFFORDANCE TYPES
├── Explicit (buttons, links)
├── Pattern-based (icons, gestures)
├── Hidden (shortcuts, gestures)
└── Negative (disabled states)

SIGNIFIERS
├── Visual cues (icons, arrows)
├── Text labels
├── Cursor changes
├── Animation hints
└── Sound cues

Module 5: Feedback Systems

FEEDBACK TYPES
├── Visual (color, motion)
├── Auditory (sounds, voice)
├── Haptic (vibration)
└── Systemic (notifications)

FEEDBACK TIMING
├── Immediate: < 100ms
├── Responsive: 100-300ms
├── Perceived: 300-1000ms
└── Delayed: > 1000ms (show progress)

Error Handling

| Error Code | Description | Recovery | |------------|-------------|----------| | IX-001 | Missing feedback | Add visual response | | IX-002 | Gesture conflict | Redesign gesture | | IX-003 | Animation jank | Optimize performance | | IX-004 | Unclear affordance | Add signifiers | | IX-005 | Dead-end flow | Add escape routes |

Troubleshooting

Problem: Users miss interactions

Diagnosis:
├── Check: Affordance visibility
├── Check: Position in hierarchy
├── Check: Size and contrast
└── Solution: Enhance discoverability

Steps:
1. Conduct findability test
2. Increase visual prominence
3. Add onboarding hints
4. Consider progressive disclosure

Problem: Interactions feel slow

Diagnosis:
├── Check: Animation duration
├── Check: Easing curves
├── Check: Response delay
└── Solution: Optimize timing

Steps:
1. Measure time to feedback
2. Reduce to 100-300ms range
3. Use appropriate easing
4. Add immediate micro-feedback

Unit Test Templates

describe("InteractionDesignSkill", () => {
  describe("pattern validation", () => {
    it("should include trigger and feedback", async () => {
      const result = await invoke({
        type: "pattern",
        context: "form submission"
      });
      expect(result.pattern.trigger).toBeDefined();
      expect(result.pattern.feedback).toBeDefined();
    });
  });

  describe("microinteraction timing", () => {
    it("should stay within timing guidelines", async () => {
      const result = await invoke({
        type: "microinteraction",
        context: "button click"
      });
      expect(result.animation.duration_ms).toBeLessThanOrEqual(300);
    });
  });

  describe("accessibility", () => {
    it("should provide reduced motion alternative", async () => {
      const result = await invoke({
        type: "microinteraction",
        accessibility: { reduced_motion: true }
      });
      expect(result.animation.reduced_motion_fallback).toBeDefined();
    });
  });
});

Quality Metrics

| Metric | Target | Measurement | |--------|--------|-------------| | Task completion | > 95% | User success rate | | Time to feedback | < 100ms | Perceived responsiveness | | Animation FPS | 60fps | Frame rate | | Accessibility | 100% | Keyboard navigable |

Version History

| Version | Date | Changes | |---------|------|---------| | 1.0.0 | 2025-12-30 | Production-grade upgrade |