# Create Wireframe - Workflow Instructions
```xml
The workflow execution engine is governed by: {project_root}/.bmad/core/tasks/workflow.xml
You MUST have already loaded and processed: {installed_path}/workflow.yaml
This workflow creates website or app wireframes in Excalidraw format.
Review user's request and extract: wireframe type, fidelity level, screen count, device type, save location
Skip to Step 5
Ask: "What type of wireframe do you need?"
Present options:
1. Website (Desktop)
2. Mobile App (iOS/Android)
3. Web App (Responsive)
4. Tablet App
5. Multi-platform
WAIT for selection
Ask fidelity level (Low/Medium/High)
Ask screen count (Single/Few 2-3/Multiple 4-6/Many 7+)
Ask device dimensions or use standard
Ask save location
Check for existing theme.json, ask to use if exists
Ask: "Choose a wireframe style:"
Present numbered options:
1. Classic Wireframe
- Background: #ffffff (white)
- Container: #f5f5f5 (light gray)
- Border: #9e9e9e (gray)
- Text: #424242 (dark gray)
2. High Contrast
- Background: #ffffff (white)
- Container: #eeeeee (light gray)
- Border: #212121 (black)
- Text: #000000 (black)
3. Blueprint Style
- Background: #1a237e (dark blue)
- Container: #3949ab (blue)
- Border: #7986cb (light blue)
- Text: #ffffff (white)
4. Custom - Define your own colors
WAIT for selection
Create theme.json based on selection
Confirm with user
List all screens and their purposes
Map navigation flow between screens
Identify key UI elements for each screen
Show planned structure, confirm with user
Load {{templates}} and extract `wireframe` section
Load {{library}}
Load theme.json
Load {{helpers}}
Follow {{helpers}} for proper element creation
For Each Screen:
- Create container/frame
- Add header section
- Add content areas
- Add navigation elements
- Add interactive elements (buttons, inputs)
- Add labels and annotations
Build Order:
1. Screen containers
2. Layout sections (header, content, footer)
3. Navigation elements
4. Content blocks
5. Interactive elements
6. Labels and annotations
7. Flow indicators (if multi-screen)
Fidelity Guidelines:
- Low: Basic shapes, minimal detail, placeholder text
- Medium: More defined elements, some styling, representative content
- High: Detailed elements, realistic sizing, actual content examples
Strip unused elements and elements with isDeleted: true
Save to {{default_output_file}}
NEVER delete the file if validation fails - always fix syntax errors
Run: node -e "JSON.parse(require('fs').readFileSync('{{default_output_file}}', 'utf8')); console.log('✓ Valid JSON')"
Read the error message carefully - it shows the syntax error and position
Open the file and navigate to the error location
Fix the syntax error (add missing comma, bracket, or quote as indicated)
Save the file
Re-run validation with the same command
Repeat until validation passes
Once validation passes, confirm with user
Validate against {{validation}}
```