# Excalidraw Setup Prompt
**Agent micro-instruction for configuring Excalidraw during project initialization**
---
## When to Use
**Trigger:** During project initialization, after asking about sketching tool preference
**Context:** User has indicated they want to use Excalidraw for sketching
---
## Prompt Sequence
### **Step 1: Confirm Excalidraw**
```
You've chosen Excalidraw for sketching. Great choice!
Excalidraw is a free, open-source whiteboard tool that:
✓ Creates hand-drawn style wireframes
✓ Works in VS Code or web browser
✓ AI can generate and analyze sketches
✓ Version control friendly (JSON files)
Would you like me to configure Excalidraw for this project? (y/n)
```
**If no:** Skip Excalidraw configuration, set `sketching.tool: "other"` in config
**If yes:** Continue to Step 2
---
### **Step 2: Auto-Export Preference**
```
Excalidraw files (.excalidraw) don't display in GitHub by default.
They need to be exported to PNG/SVG for documentation.
Would you like automatic export enabled?
Options:
1. Manual export (you export when needed)
2. Auto-export (GitHub Actions exports automatically on save)
Your choice (1/2):
````
**Record:**
```yaml
excalidraw:
auto_export: true # if option 2
auto_export: false # if option 1
````
**Note:** If auto-export chosen, inform user that GitHub Actions setup will be needed
---
### **Step 3: Component Library**
```
WDS includes an Excalidraw component library with:
- Device frames (mobile, tablet, desktop)
- Common UI components (buttons, inputs, cards)
- Layout templates
Would you like to use the WDS component library? (y/n)
````
**Record:**
```yaml
excalidraw:
use_library: true # if yes
use_library: false # if no
````
---
### **Step 4: Grid Settings**
```
Excalidraw can snap elements to a grid for alignment.
WDS recommends 20px grid (matches spacing system).
Grid settings:
1. 20px grid with snap (recommended)
2. 10px grid with snap (finer control)
3. No grid (free-form)
Your choice (1/2/3):
````
**Record:**
```yaml
excalidraw:
grid_size: 20 # if option 1
grid_size: 10 # if option 2
grid_size: 0 # if option 3
snap_to_grid: true # if option 1 or 2
snap_to_grid: false # if option 3
````
---
### **Step 5: Theme Preference**
```
Choose default Excalidraw theme:
1. Light (better for screenshots and documentation)
2. Dark (easier on eyes for long sessions)
Your choice (1/2):
````
**Record:**
```yaml
excalidraw:
theme: "light" # if option 1
theme: "dark" # if option 2
````
---
### **Step 6: Installation Instructions**
---
## Configuration Output
**Update project-config.yaml:**
```yaml
sketching:
tool: excalidraw
excalidraw:
enabled: true
auto_export: {{USER_CHOICE}}
use_library: {{USER_CHOICE}}
grid_size: {{USER_CHOICE}}
snap_to_grid: {{USER_CHOICE}}
theme: {{USER_CHOICE}}
sketches_folder: "sketches"
````
---
## If User Declines Excalidraw
---
## Integration with Phase 4
**During Phase 4B (Sketch Interface):**
**If Excalidraw enabled:**
```
Agent: "I see you've configured Excalidraw for this project.
Would you like to:
1. Sketch manually in Excalidraw
2. Have me generate layout variations in Excalidraw
3. Use a different tool for this scenario
Your choice:"
```
**If Excalidraw not enabled:**
```
Agent: "Time to sketch the interface.
You can:
1. Sketch on paper (photograph/scan)
2. Use your preferred digital tool
3. Enable Excalidraw now (if you'd like)
Your choice:"
```
---
## Error Handling
### **If user unsure:**
### **If installation fails:**
---
## Post-Configuration
**Create folder structure:**
```
C-Scenarios/
└── [scenario-name]/
└── sketches/ ← Created automatically
```
**If use_library: true:**
- Verify wds-library.excalidrawlib exists
- Provide path for loading
**If auto_export: true:**
- Check if GitHub Actions can be configured
- Provide setup instructions
- Warn if not possible (e.g., not using GitHub)
---
## Success Criteria
**Configuration complete when:**
- ✓ User choice recorded in project-config.yaml
- ✓ Installation instructions provided
- ✓ Documentation links shared
- ✓ Folder structure created
- ✓ User knows next steps
---
**This prompt ensures smooth Excalidraw setup tailored to user preferences!** ⚙️✨
```