aiwg
Version:
Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.
686 lines (442 loc) • 19.2 kB
Markdown
# Wireframe/Interface Specification Template
## Purpose
Document interface design specifications to guide implementation. This template captures functional requirements, interaction patterns, content structure, and accessibility needs without prescribing pixel-perfect visual design.
## When to Use
- **Elaboration Phase**: Create wireframes for prioritized use cases to validate design direction
- **Construction Phase**: Detail wireframes for implementation; iterate based on usability testing
- **Transition Phase**: Validate implementation matches specifications; document final design
## Metadata
- ID: UI-{project}-{num} (e.g., UI-MYAPP-001)
- Owner: Product Designer
- Contributors: UX Lead, Software Implementer
- Reviewers: UX Lead, System Analyst
- Team: {team-name}
- Stakeholders: {end users, business stakeholders}
- Screen Type: Page | Modal | Panel | Component
- Status: draft | in-review | approved | implemented | deprecated
- Dates: created {YYYY-MM-DD} / updated {YYYY-MM-DD} / implemented {YYYY-MM-DD}
- Related: UC-{id}, US-{id}, PERSONA-{id}, J-{id}, COMP-{id}, TEST-{id}
- Links: {design-files, prototypes, implementation-code}
## Interface Overview
### Screen/Component Name
**{Descriptive Name}** (e.g., "Invoice Creation Form", "Search Results List", "User Profile Header")
### Purpose & User Goal
**What the user accomplishes on this interface**:
> "{User goal in one sentence}"
**Business Purpose**:
> "{Why this interface exists from business perspective}"
### Context
- **When User Arrives**: {navigation path, trigger event, deep link}
- **Where in Journey**: J-{id} Phase {n} - {journey phase name}
- **Frequency of Use**: {daily | weekly | occasional | rare}
- **User State**: {first-time | returning | expert | error-recovery}
## Layout & Structure
### Information Hierarchy
List content/components in priority order (top to bottom, left to right):
1. **{Component 1}**: {purpose}
2. **{Component 2}**: {purpose}
3. **{Component 3}**: {purpose}
### Wireframe Sketch
**Tool-Agnostic Reference**: Link to design file OR describe structure in text/ASCII.
**Example ASCII Wireframe**:
```
+------------------------------------------+
| [Logo] Navigation: Home | Products | Account |
+------------------------------------------+
| Page Title: {Screen Name} |
| |
| [Breadcrumb: Home > Section > Page] |
+------------------------------------------+
| |
| Primary Content Area: |
| [Component 1: Description] |
| [Component 2: Description] |
| |
| +-----------------------------------+ |
| | [Call-to-Action Button] | |
| +-----------------------------------+ |
| |
| Secondary Content: |
| [Component 3: Description] |
+------------------------------------------+
| Footer: Links | Help | Legal |
+------------------------------------------+
```
### Responsive Breakpoints
#### Desktop (>1024px)
- {Layout description}
#### Tablet (768px - 1023px)
- {Layout changes: stacked vs. side-by-side, hidden elements}
#### Mobile (<767px)
- {Layout changes: navigation collapse, touch-optimized spacing}
### Grid & Spacing
**Grid System**: {12-column | 8-column | custom} (reference design system if applicable)
**Spacing Units**: {reference design system spacing scale, e.g., 4px, 8px, 16px, 32px}
## Component Inventory
### Navigation Elements
#### Primary Navigation
- **Type**: {header bar | sidebar | tabs | breadcrumb}
- **Items**: {list navigation items}
- **Active State Indicator**: {underline | highlight | icon}
- **Behavior**: {sticky | scrolls | collapses on mobile}
#### Secondary Navigation
- {Sub-navigation or contextual links}
### Content Display
#### Headings & Text
- **Page Title**: {H1 text or pattern}
- **Section Headings**: {H2, H3 hierarchy}
- **Body Text**: {paragraphs, lists, emphasis}
- **Help Text**: {tooltips, inline help, placeholder text}
#### Data Display
##### Tables
- **Columns**: {column names, data types, sortable?}
- **Rows**: {typical row count, pagination, infinite scroll}
- **Actions**: {row-level actions: edit, delete, view}
- **Empty State**: {message when no data}
##### Lists
- **Item Structure**: {what each list item contains}
- **Ordering**: {sort options, default order}
- **Filtering**: {available filters}
##### Cards
- **Card Content**: {image, title, description, metadata, actions}
- **Grid Layout**: {cards per row by breakpoint}
#### Media
- **Images**: {purpose, aspect ratio, alt text requirements}
- **Icons**: {purpose, size, accessible labels}
- **Charts/Graphs**: {type, data source, interaction}
### Interactive Elements
#### Buttons & Calls-to-Action
| Button | Type | States | Action |
|--------|------|--------|--------|
| {Button label} | {primary/secondary/tertiary} | {default, hover, active, disabled, loading} | {what happens on click} |
| {Button label} | {type} | {states} | {action} |
**Button Hierarchy**:
- **Primary**: {most important action per screen - limit to 1-2}
- **Secondary**: {supporting actions}
- **Tertiary**: {low-priority actions: cancel, back}
#### Form Fields
| Field Label | Type | Required? | Validation Rules | Error Messages |
|-------------|------|-----------|------------------|----------------|
| {Label} | {text/email/password/select/checkbox/radio} | {Y/N} | {rules} | {message} |
| {Label} | {type} | {Y/N} | {rules} | {message} |
**Field Specifications**:
- **Placeholder Text**: {example values to guide input}
- **Help Text**: {additional guidance below field}
- **Character Limits**: {max length, display counter?}
- **Auto-fill Support**: {autocomplete attribute values}
- **Default Values**: {pre-populated when applicable}
#### Links
- **Text Links**: {where they appear, destination}
- **Link Styling**: {underline, color, hover state}
- **External Link Indicator**: {icon or text to indicate new window}
#### Tooltips & Popovers
- **Trigger**: {hover | click | focus}
- **Content**: {brief explanation or additional detail}
- **Placement**: {top | bottom | left | right}
### Feedback Elements
#### Messages
##### Success Messages
- **Trigger**: {when displayed}
- **Content**: "{Example success message}"
- **Dismiss**: {auto-dismiss after {n} seconds | manual close}
##### Error Messages
- **Trigger**: {validation failure, system error}
- **Content**: "{Example error message with actionable guidance}"
- **Placement**: {inline below field | top of form | modal}
##### Warning Messages
- **Trigger**: {potentially destructive action, important notice}
- **Content**: "{Example warning}"
##### Informational Messages
- **Trigger**: {helpful tips, status updates}
- **Content**: "{Example info message}"
#### Loading States
- **Full-Page Load**: {spinner, skeleton screen, progress bar}
- **Component Load**: {inline spinner, shimmer effect}
- **Button Load**: {spinner replacing button text, disabled state}
#### Progress Indicators
- **Type**: {stepped progression, progress bar, percentage}
- **Steps**: {step 1, step 2, step 3}
- **Current Step Indication**: {highlight, checkmark for completed}
## Interaction States
### Screen States
Document how interface changes based on data and user actions:
#### Initial Load
- {What user sees on first render}
- {Loading state if data fetch required}
#### Loaded with Data
- {Normal state with content displayed}
#### Empty State
- {What shows when no data available}
- **Message**: "{Helpful empty state message}"
- **Action**: {CTA to create first item or change filters}
#### Error State
- {What shows when data load fails}
- **Error Message**: "{User-friendly error with recovery guidance}"
- **Recovery Actions**: {retry, contact support, go back}
#### Success State
- {What shows after successful action}
- {Confirmation message, next steps}
### Component States
#### Interactive Component States
- **Default**: {initial appearance}
- **Hover**: {visual change on mouse hover}
- **Focus**: {keyboard focus indicator - must be distinct and visible}
- **Active**: {appearance while being clicked/tapped}
- **Disabled**: {when action not available - with explanation}
- **Selected**: {when item is chosen from set}
#### Form Field States
- **Empty**: {placeholder visible}
- **Filled**: {with user input}
- **Valid**: {passes validation - optional indicator}
- **Invalid**: {fails validation - error styling + message}
- **Read-Only**: {displays value but not editable}
## Navigation & Flow
### Entry Points
How users arrive at this interface:
1. **{Entry point 1}**: {navigation path or link source}
2. **{Entry point 2}**: {deep link, notification, search result}
### Exit Points
Where users go next:
1. **{Exit point 1}**: {next screen/action after primary CTA}
2. **{Exit point 2}**: {cancel or back action}
3. **{Exit point 3}**: {navigation away}
### Related Screens
- UI-{id}: {related screen name} - {relationship: parent, child, sibling}
- UI-{id}: {related screen name}
### Modals & Overlays
If this interface contains modals:
#### Modal: {Modal Name}
- **Trigger**: {button click, automatic on condition}
- **Content**: {form, confirmation, information}
- **Actions**: {primary action, cancel}
- **Dismiss**: {click outside, ESC key, close button}
- **Size**: {small | medium | large | full-screen}
## Accessibility Requirements
### WCAG Compliance Level
**Target**: {WCAG 2.1 Level A | AA | AAA}
### Keyboard Navigation
#### Tab Order
1. {First focusable element}
2. {Second focusable element}
3. {etc. - logical reading order}
#### Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
| {Key combo} | {action} |
| ESC | {dismiss modal, cancel action} |
| Enter | {submit form, activate button} |
#### Focus Management
- **Focus Indicators**: {all interactive elements have visible focus ring}
- **Focus Trap**: {modals trap focus until dismissed}
- **Skip Links**: {skip to main content link at top of page}
### Screen Reader Support
#### ARIA Labels
| Element | ARIA Attribute | Value/Purpose |
|---------|----------------|---------------|
| {Element} | {aria-label, aria-labelledby, aria-describedby} | {text or ID} |
| {Icon button} | aria-label | "{Descriptive label for icon-only button}" |
| {Form field} | aria-required | "true" |
#### ARIA Roles
- {Custom widget using role="{role}"}
#### Live Regions
- **Error Messages**: {aria-live="assertive" for critical errors}
- **Success Messages**: {aria-live="polite" for confirmations}
- **Loading States**: {aria-busy="true"}
### Visual Accessibility
#### Color Contrast
- **Normal Text**: {minimum 4.5:1 contrast ratio}
- **Large Text**: {minimum 3:1 contrast ratio}
- **Interactive Elements**: {non-color indicators for states}
#### Text Sizing
- **Zoom to 200%**: {layout does not break, content remains accessible}
- **Minimum Text Size**: {16px for body text, 14px minimum}
#### Motion & Animation
- **Respect prefers-reduced-motion**: {disable or reduce animations}
### Assistive Technology Testing
Plan to test with:
- **Screen Readers**: {NVDA, JAWS, VoiceOver, TalkBack}
- **Keyboard Only**: {all functionality accessible}
- **Voice Control**: {clickable targets labeled}
## Content Requirements
### Microcopy
#### Page Title
- **Text**: "{Page title}"
- **Context**: {when it changes based on state or data}
#### Section Headings
- {Heading 1}: {guidelines for when/how it's used}
- {Heading 2}
#### Button Labels
- **Primary CTA**: "{Action verb + object}"
- **Secondary Action**: "{Action verb + object}"
- **Avoid**: {vague labels like "Submit", "OK", "Click Here"}
#### Error Messages
| Error Condition | Message Template |
|-----------------|------------------|
| {Required field empty} | "{Field name} is required." |
| {Invalid format} | "{Field name} must be {format}. Example: {example}." |
| {System error} | "We couldn't {action}. Please try again or contact support." |
#### Help Text
- {Field 1 help text}: "{Guidance on what to enter and why}"
- {Field 2 help text}
#### Empty State Messages
- **No Data**: "{Helpful message explaining why empty and what to do}"
- **No Search Results**: "No results for '{query}'. Try different keywords or filters."
### Placeholder Text
| Field | Placeholder |
|-------|-------------|
| {Field name} | "{Example value or format guidance}" |
### Tone & Voice
- **Tone**: {formal | conversational | technical | friendly}
- **Active Voice**: {use "Create report" not "Report creation"}
- **User-Centric**: {use "your account" not "the account"}
## Validation Rules
### Client-Side Validation
#### Field-Level Validation
| Field | Rule | Error Message | When Validated |
|-------|------|---------------|----------------|
| {Field} | {required, format, min/max length, range} | {message} | {on blur, on submit} |
#### Form-Level Validation
- **Cross-Field Rules**: {e.g., end date must be after start date}
- **Business Rules**: {e.g., quantity cannot exceed inventory}
### Server-Side Validation
- {Validations that require server check: uniqueness, authorization}
### Error Prevention
- **Input Masks**: {format phone numbers, dates as user types}
- **Autocomplete**: {suggest valid values}
- **Constraints**: {disable invalid selections}
## Responsive Behavior
### Mobile Adaptations
#### Touch Targets
- **Minimum Size**: {44x44px for tappable elements}
- **Spacing**: {adequate spacing to prevent mis-taps}
#### Mobile-Specific Patterns
- **Navigation**: {hamburger menu, bottom nav, tab bar}
- **Forms**: {appropriate input types for mobile keyboards}
- **Tables**: {horizontal scroll, collapse to cards, priority columns}
#### Gestures
- **Swipe**: {actions triggered by swipe - with fallback buttons}
- **Pinch-to-Zoom**: {allowed on images, maps}
- **Pull-to-Refresh**: {if applicable}
### Tablet Adaptations
- {Hybrid patterns between mobile and desktop}
## Design System Integration
### Components Used
Reference design system components (if applicable):
- **Button**: {design system component name and variant}
- **Input**: {component name}
- **Card**: {component name}
If no design system exists, note custom components requiring creation.
### Design Tokens
- **Colors**: {reference design system color tokens}
- **Typography**: {text styles from design system}
- **Spacing**: {spacing scale from design system}
### Deviations from Design System
If this interface requires custom design:
- **{Custom element}**: {rationale for deviation}
## Data Requirements
### Data Sources
- **{Data 1}**: {API endpoint, database table, static content}
- **{Data 2}**: {source}
### Data Model
| Field | Type | Required? | Source | Display Format |
|-------|------|-----------|--------|----------------|
| {field} | {string/number/date/boolean} | {Y/N} | {API/user input} | {format} |
### Data Refresh
- **Real-Time**: {fields that update automatically}
- **On-Demand**: {refresh button, pull-to-refresh}
- **Polling**: {frequency if auto-refresh}
### Data Privacy
- **Sensitive Data**: {fields requiring masking, encryption, redaction}
- **User Consent**: {data collection requiring explicit permission}
## Performance Requirements
### Load Time
- **Target**: {page renders in <{n} seconds on {connection type}}
- **Progressive Enhancement**: {critical content loads first}
### Perceived Performance
- **Skeleton Screens**: {show layout while loading}
- **Optimistic UI**: {update interface immediately, sync later}
### Data Limits
- **Pagination**: {items per page}
- **Infinite Scroll**: {load {n} items at a time}
- **Caching**: {cache static content, data expiry}
## Traceability
### Use Cases Implemented
- UC-{id}: {use case title} - {steps implemented by this interface}
### User Stories Satisfied
- US-{id}: {user story title}
### Journey Phase
- J-{id} Phase {n}: {journey phase this interface supports}
### Personas Served
- PERSONA-{id}: {primary persona}
- PERSONA-{id}: {secondary persona}
### Components
- COMP-{id}: {backend component providing data/logic}
### Tests
- TEST-{id}: {unit tests for interface logic}
- TEST-{id}: {accessibility tests}
- TEST-{id}: {usability test plan}
## Notes & Open Questions
- {Design decisions requiring stakeholder input}
- {Technical constraints affecting design}
- {Assumptions requiring validation}
## Revision History
| Date | Change | Author |
|------|--------|--------|
| {YYYY-MM-DD} | Initial wireframe | {name} |
| {YYYY-MM-DD} | Updated based on {usability test/stakeholder feedback} | {name} |
| {YYYY-MM-DD} | Final spec for implementation | {name} |
---
## Wireframe Specification Guidance
### Wireframe Fidelity Levels
#### Low-Fidelity (Lo-Fi)
- **Purpose**: Early exploration, rapid iteration
- **Format**: Sketches, boxes-and-arrows, minimal detail
- **Use When**: Inception/Elaboration, validating concepts
#### Mid-Fidelity (Mid-Fi)
- **Purpose**: Defining structure, layout, interaction patterns
- **Format**: Grayscale, placeholder text, realistic content structure
- **Use When**: Elaboration/Construction, design handoff
- **This Template**: Designed for mid-fidelity specs
#### High-Fidelity (Hi-Fi)
- **Purpose**: Visual design, branding, polish
- **Format**: Full color, real images, branded styling
- **Use When**: Construction/Transition, marketing materials
- **Note**: This template focuses on functional specs, not visual design
### Wireframes vs. Prototypes
- **Wireframe**: Static representation of interface structure
- **Prototype**: Interactive simulation of workflow
Use wireframes to document specifications; prototypes to validate flows.
### Tool-Agnostic Approach
This template is intentionally tool-agnostic. Create wireframes in:
- Design tools (Figma, Sketch, Adobe XD)
- Diagramming tools (Lucidchart, Miro, Mural)
- Paper sketches (photograph and link)
- HTML mockups
- ASCII art (for simple layouts)
Link to visual assets but ensure this text specification is complete.
### Common Pitfalls
- **Pixel perfection too early**: Focus on structure and function before polish
- **Missing states**: Don't forget loading, error, empty states
- **Accessibility afterthought**: Design for keyboard and screen readers from start
- **No validation guidance**: Specify error handling and messaging
- **Vague content**: Use realistic content length, not "lorem ipsum"
### Validation & Handoff
#### Design Review Checklist
- [ ] All interactive states documented
- [ ] Accessibility requirements specified
- [ ] Error handling defined
- [ ] Responsive behavior described
- [ ] Content requirements clear
- [ ] Traceability to requirements established
#### Developer Handoff
- [ ] Wireframe specification complete
- [ ] Visual design (if applicable) finalized
- [ ] Assets exported and linked
- [ ] Design system components identified
- [ ] Open questions resolved
- [ ] Implementation notes documented
#### Testing Handoff
- [ ] Success criteria defined
- [ ] Usability test scenarios written
- [ ] Accessibility test plan created
- [ ] Acceptance criteria clear