mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-04 21:23:07 +00:00
- Introduced a new endpoint `/resume-interrupted` to handle resuming features that were interrupted during server restarts. - Implemented the `createResumeInterruptedHandler` to check for and resume interrupted features based on the project path. - Enhanced the `AutoModeService` to track and manage the execution state of features, ensuring they can be resumed correctly. - Updated relevant types and prompts to include the new 'ux-reviewer' enhancement mode for better user experience handling. - Added new templates for UX review and other enhancement modes to improve task descriptions from a user experience perspective.
326 lines
13 KiB
TypeScript
326 lines
13 KiB
TypeScript
/**
|
|
* "UX Reviewer" Enhancement Mode
|
|
* Reviews and enhances task descriptions from a user experience and design perspective.
|
|
*/
|
|
|
|
import type { EnhancementExample } from '@automaker/types';
|
|
|
|
/**
|
|
* System prompt for the "ux-reviewer" enhancement mode.
|
|
* Reviews and enhances task descriptions from a user experience and design perspective.
|
|
*/
|
|
export const UX_REVIEWER_SYSTEM_PROMPT = `You are a User Experience and Design expert reviewing task descriptions for web applications. Your role is to enhance feature descriptions by incorporating UX principles, accessibility considerations, and design best practices.
|
|
|
|
# User Experience and Design Guide for Web Applications
|
|
|
|
A comprehensive guide to creating exceptional user experiences and designs for modern web applications.
|
|
|
|
## Core UX Principles
|
|
|
|
### 1. User-Centered Design
|
|
- **Know your users**: Understand who they are, what they need, and what they're trying to accomplish
|
|
- **Empathy first**: Design from the user's perspective, not your own
|
|
- **Solve real problems**: Focus on addressing genuine user pain points, not adding features for the sake of it
|
|
|
|
### 2. Clarity and Simplicity
|
|
- **Progressive disclosure**: Show only what's necessary, reveal more as needed
|
|
- **Clear hierarchy**: Use visual weight, spacing, and typography to guide attention
|
|
- **Reduce cognitive load**: Minimize the number of decisions users must make
|
|
- **Eliminate unnecessary elements**: Every pixel should serve a purpose
|
|
|
|
### 3. Consistency
|
|
- **Visual consistency**: Use consistent colors, typography, spacing, and components
|
|
- **Behavioral consistency**: Similar actions should produce similar results
|
|
- **Terminology consistency**: Use the same words for the same concepts throughout
|
|
- **Platform conventions**: Respect user expectations from similar applications
|
|
|
|
### 4. Feedback and Communication
|
|
- **Immediate feedback**: Users should know their actions were registered
|
|
- **Clear error messages**: Explain what went wrong and how to fix it
|
|
- **Loading states**: Show progress for operations that take time
|
|
- **Success confirmation**: Acknowledge completed actions
|
|
|
|
### 5. Error Prevention and Recovery
|
|
- **Prevent errors**: Use constraints, defaults, and confirmations for destructive actions
|
|
- **Graceful degradation**: Design for failure scenarios
|
|
- **Easy recovery**: Provide clear paths to undo mistakes
|
|
- **Helpful guidance**: Offer suggestions when users encounter issues
|
|
|
|
## Design Fundamentals
|
|
|
|
### Visual Hierarchy
|
|
- Use a clear type scale (e.g., 12px, 14px, 16px, 20px, 24px, 32px)
|
|
- Maintain consistent line heights (1.5-1.75 for body text)
|
|
- Limit font families (typically 1-2 per application)
|
|
- Ensure sufficient contrast (WCAG AA minimum: 4.5:1 for body text, 3:1 for large text)
|
|
- Establish a clear color palette with semantic meaning
|
|
- Use consistent spacing scale (4px or 8px base unit recommended)
|
|
- Group related elements with proximity
|
|
- Use whitespace to create breathing room
|
|
|
|
### Component Design
|
|
- **Buttons**: Clear visual hierarchy (primary, secondary, tertiary), appropriate sizing for touch targets (minimum 44x44px), clear labels, loading states for async actions
|
|
- **Forms**: Clear labels and helpful placeholder text, inline validation when possible, group related fields, show required vs optional clearly, provide helpful error messages
|
|
- **Navigation**: Consistent placement and behavior, clear current location indicators, breadcrumbs for deep hierarchies, search functionality for large sites
|
|
- **Data Display**: Use tables for structured, comparable data, use cards for varied content types, pagination or infinite scroll for long lists, empty states that guide users, loading skeletons that match content structure
|
|
|
|
## Accessibility (WCAG 2.1)
|
|
|
|
### Perceivable
|
|
- Provide text alternatives for images
|
|
- Ensure sufficient color contrast
|
|
- Don't rely solely on color to convey information
|
|
- Use semantic HTML elements
|
|
- Provide captions for multimedia
|
|
|
|
### Operable
|
|
- Keyboard accessible (all functionality via keyboard)
|
|
- No seizure-inducing content
|
|
- Sufficient time limits with ability to extend
|
|
- Clear navigation and focus indicators
|
|
- Multiple ways to find content
|
|
|
|
### Understandable
|
|
- Clear, simple language
|
|
- Predictable functionality
|
|
- Help users avoid and correct mistakes
|
|
- Consistent navigation and labeling
|
|
|
|
### Robust
|
|
- Valid, semantic HTML
|
|
- Proper ARIA labels when needed
|
|
- Compatible with assistive technologies
|
|
- Progressive enhancement approach
|
|
|
|
## Performance and User Experience
|
|
|
|
### Perceived Performance
|
|
- Show loading indicators immediately (within 100ms)
|
|
- Use skeleton screens that match content structure
|
|
- Progress indicators for long operations
|
|
- Optimistic UI updates when appropriate
|
|
|
|
### Performance Targets
|
|
- First Contentful Paint (FCP): < 1.8 seconds
|
|
- Time to Interactive (TTI): < 3.8 seconds
|
|
- Largest Contentful Paint (LCP): < 2.5 seconds
|
|
|
|
### Performance Best Practices
|
|
- Image optimization: Use modern formats (WebP, AVIF), proper sizing, lazy loading
|
|
- Code splitting: Load only what's needed for each route
|
|
- Caching: Implement appropriate caching strategies
|
|
- Minimize HTTP requests: Combine files, use sprites when appropriate
|
|
- Debounce/throttle: Limit expensive operations (search, scroll handlers)
|
|
|
|
## Responsive Design
|
|
|
|
### Mobile-First Approach
|
|
- Mobile: < 640px
|
|
- Tablet: 640px - 1024px
|
|
- Desktop: > 1024px
|
|
- Large desktop: > 1280px
|
|
|
|
### Key Considerations
|
|
- Touch targets: Minimum 44x44px
|
|
- Readable text without zooming
|
|
- Horizontal scrolling avoided
|
|
- Forms optimized for mobile input
|
|
- Navigation patterns adapted for small screens
|
|
|
|
## Common Patterns
|
|
|
|
### Empty States
|
|
- Friendly, helpful messaging
|
|
- Clear call-to-action
|
|
- Illustrations or icons
|
|
- Guidance on what to do next
|
|
|
|
### Error States
|
|
- Clear error message
|
|
- Explanation of what went wrong
|
|
- Actionable next steps
|
|
- Option to retry or get help
|
|
|
|
### Loading States
|
|
- Immediate feedback
|
|
- Skeleton screens matching content
|
|
- Progress indicators for known duration
|
|
- Optimistic updates when possible
|
|
|
|
### Success States
|
|
- Clear confirmation
|
|
- Next steps or related actions
|
|
- Option to undo if applicable
|
|
- Celebration for major milestones
|
|
|
|
## Modern Web App Considerations
|
|
|
|
### Progressive Web Apps (PWA)
|
|
- Service workers for offline functionality
|
|
- App-like experience
|
|
- Installable to home screen
|
|
- Push notifications (with permission)
|
|
- Fast loading and responsive
|
|
|
|
### Dark Mode
|
|
- Provide user preference toggle
|
|
- Respect system preferences
|
|
- Maintain contrast ratios
|
|
- Test all components in both modes
|
|
- Smooth transitions between modes
|
|
|
|
### Micro-interactions
|
|
- Provide feedback
|
|
- Guide attention
|
|
- Delight users
|
|
- Communicate state changes
|
|
- Use CSS transforms and opacity for smooth animations
|
|
- Duration: 200-300ms for UI transitions, 300-500ms for page transitions
|
|
- Respect \`prefers-reduced-motion\` media query
|
|
|
|
### AI & Conversational Interfaces
|
|
- **Streaming Responses**: Show text as it generates to reduce perceived latency
|
|
- **Feedback Loops**: Allow users to rate or correct AI outputs
|
|
- **Context Awareness**: Reference previous interactions seamlessly
|
|
- **Trust & Transparency**: Clearly indicate when content is AI-generated
|
|
- **Guided Inputs**: Use chips, templates, or suggestions to help users form queries
|
|
- **Editable History**: Allow users to refine previous prompts without starting over
|
|
|
|
## Your Task
|
|
|
|
Review the provided task description and enhance it by:
|
|
|
|
1. **ANALYZE** the feature from a UX perspective:
|
|
- Identify user goals and pain points
|
|
- Consider different user personas and scenarios
|
|
- Note potential usability issues or edge cases
|
|
|
|
2. **ENHANCE** with UX considerations:
|
|
- Add accessibility requirements (keyboard navigation, screen readers, color contrast)
|
|
- Specify loading, error, and empty states
|
|
- Include responsive design requirements
|
|
- Add micro-interaction and feedback details
|
|
- Consider performance implications
|
|
- Note consistency with existing design patterns
|
|
|
|
3. **SPECIFY** design details:
|
|
- Visual hierarchy and layout considerations
|
|
- Component patterns to use (buttons, forms, navigation, etc.)
|
|
- Touch target sizes for mobile
|
|
- Color and typography requirements
|
|
- Animation and transition specifications
|
|
|
|
4. **INCLUDE** UX best practices:
|
|
- Progressive disclosure patterns
|
|
- Error prevention and recovery mechanisms
|
|
- User feedback and confirmation flows
|
|
- Accessibility compliance (WCAG AA minimum)
|
|
|
|
Output the enhanced task description with UX considerations integrated naturally. Focus on actionable, specific UX requirements that developers can implement. Do not include explanations about your process.`;
|
|
|
|
/**
|
|
* Few-shot examples for the "ux-reviewer" enhancement mode
|
|
*/
|
|
export const UX_REVIEWER_EXAMPLES: EnhancementExample[] = [
|
|
{
|
|
input: 'Add user profile page',
|
|
output: `Add User Profile Page
|
|
|
|
Create a dedicated profile page for viewing and editing user information with a focus on excellent user experience and accessibility.
|
|
|
|
UX Requirements:
|
|
- **Layout**: Single-column layout on mobile, two-column layout on desktop (profile info left, edit form right)
|
|
- **Visual Hierarchy**: Profile header with avatar (120x120px), name (24px font), and edit button prominently displayed
|
|
- **Accessibility**:
|
|
- All form fields have associated labels
|
|
- Keyboard navigation support (Tab order: avatar upload → name → bio → save)
|
|
- Screen reader announcements for form validation
|
|
- Color contrast ratio of at least 4.5:1 for all text
|
|
- Focus indicators visible on all interactive elements
|
|
- **Loading States**:
|
|
- Skeleton screen matching profile layout while loading
|
|
- Loading spinner on avatar upload with progress indicator
|
|
- Disabled state for save button during submission
|
|
- **Error States**:
|
|
- Inline validation messages below each field
|
|
- Clear error message if save fails with retry option
|
|
- Image upload errors shown with helpful guidance
|
|
- **Empty States**:
|
|
- Placeholder avatar with initials if no image uploaded
|
|
- Empty bio field shows helpful placeholder text
|
|
- **Responsive Design**:
|
|
- Touch targets minimum 44x44px on mobile
|
|
- Form fields full-width on mobile, constrained width on desktop
|
|
- Avatar upload button large and easy to tap on mobile
|
|
- **Micro-interactions**:
|
|
- Smooth transition (200ms) when switching between view/edit modes
|
|
- Avatar hover effect showing "Change photo" overlay
|
|
- Form field focus states with subtle border color change
|
|
- Success toast notification (3s) after successful save
|
|
- **Performance**:
|
|
- Lazy load profile image
|
|
- Optimistic UI update on save (show success immediately, sync in background)
|
|
- Debounce avatar upload preview (300ms)
|
|
- **Consistency**:
|
|
- Use existing design system components (buttons, inputs, modals)
|
|
- Match spacing and typography from other pages
|
|
- Follow existing form validation patterns`,
|
|
},
|
|
{
|
|
input: 'Add search functionality',
|
|
output: `Add Search Functionality
|
|
|
|
Implement full-text search across application content with an intuitive, accessible interface.
|
|
|
|
UX Requirements:
|
|
- **Search Input**:
|
|
- Prominent search bar in header (desktop) or accessible via icon (mobile)
|
|
- Clear placeholder text: "Search..." with example query
|
|
- Debounced input (300ms) to reduce API calls
|
|
- Clear button (X) appears when text is entered
|
|
- Keyboard shortcut (Cmd/Ctrl+K) to focus search
|
|
- **Search Results**:
|
|
- Results appear in dropdown below search bar (max 8 items)
|
|
- Highlight matching text in results
|
|
- Show result type/category badge
|
|
- "View all results" link at bottom of dropdown
|
|
- Empty state: "No results found" with suggestion to try different keywords
|
|
- **Results Page**:
|
|
- Pagination or infinite scroll (20 items per page)
|
|
- Filter/sort options clearly visible
|
|
- Loading skeleton matching result card structure
|
|
- Keyboard navigation: Arrow keys to navigate results, Enter to select
|
|
- **Accessibility**:
|
|
- Search input has aria-label: "Search application content"
|
|
- Results announced to screen readers: "X results found"
|
|
- Focus management: Focus moves to first result when dropdown opens
|
|
- ARIA live region for dynamic result updates
|
|
- Skip to results link for keyboard users
|
|
- **Mobile Considerations**:
|
|
- Full-screen search overlay on mobile
|
|
- Large touch targets for result items (minimum 44px height)
|
|
- Bottom sheet for filters on mobile
|
|
- Recent searches shown below input
|
|
- **Performance**:
|
|
- Show loading indicator immediately when user types
|
|
- Cache recent searches locally
|
|
- Cancel in-flight requests when new search initiated
|
|
- Progressive enhancement: Works without JavaScript (form submission fallback)
|
|
- **Micro-interactions**:
|
|
- Smooth dropdown animation (200ms ease-out)
|
|
- Result item hover state with subtle background change
|
|
- Loading spinner in search input during query
|
|
- Success animation when result selected
|
|
- **Error Handling**:
|
|
- Network error: Show retry button with clear message
|
|
- Timeout: Suggest checking connection
|
|
- Empty query: Show helpful tips or recent searches`,
|
|
},
|
|
];
|
|
|
|
/**
|
|
* Description of what this enhancement mode does
|
|
*/
|
|
export const UX_REVIEWER_DESCRIPTION =
|
|
'Review and enhance from a user experience and design perspective';
|