# Interactive Prototypes - Getting Started Guide

**Version**: 1.0  
**Last Updated**: December 10, 2025  
**For**: WDS Agents (Freya, Saga)

---

## 🎯 Overview

This system creates **production-ready, self-contained interactive prototypes** using:

✅ **Tailwind CSS** - No separate CSS files  
✅ **Vanilla JavaScript** - Components in shared folders  
✅ **Section-by-section** - Approval gates prevent errors  
✅ **Just-in-time stories** - Created as needed, not all upfront  
✅ **Demo data auto-loading** - Works immediately  
✅ **Self-contained** - Zip & share, works anywhere

---

## 📁 Folder Structure (Per Scenario)

```
[Scenario]/Prototype/
│
├── [Page-1].html                    ← HTML in ROOT (double-click to open)
├── [Page-2].html                    ← HTML in ROOT
├── [Page-3].html                    ← HTML in ROOT
│
├── shared/                          ← Shared code (ONE COPY)
│   ├── prototype-api.js
│   ├── init.js
│   └── utils.js
│
├── components/                      ← Reusable components (ONE COPY)
│   ├── image-crop.js
│   ├── toast.js
│   ├── modal.js
│   └── form-validation.js
│
├── pages/                           ← Page-specific scripts (only if >150 lines)
│   ├── [complex-page].js
│   └── [another-complex-page].js
│
├── data/                            ← Demo data (auto-loads)
│   ├── demo-data.json
│   └── [additional-data].json
│
├── assets/                          ← Images, icons (optional)
│   ├── images/
│   └── icons/
│
├── stories/                         ← Section dev files (created just-in-time)
│   ├── [Page].1-[section].md
│   ├── [Page].2-[section].md
│   └── ...
│
├── work/                            ← Planning files (created at start)
│   ├── [Page]-Work.yaml
│   └── ...
│
└── PROTOTYPE-ROADMAP.md             ← ONE document with everything
```

---

## 🔄 Complete Workflow

### Phase 1: INITIATION & PLANNING

1. **User requests** prototype for [Page]
2. **Agent asks** about device compatibility
3. **Agent creates** `work/[Page]-Work.yaml` (complete plan)
4. **User reviews** and approves plan
5. **Ready to implement** section-by-section

### Phase 2: SECTION-BY-SECTION IMPLEMENTATION

**For each section (1-N)**:

1. **Agent announces** section
2. **Agent creates** story file (just-in-time)
3. **Agent implements** in HTML (root location from start)
4. **Agent presents** for testing
5. **User tests** and gives feedback
6. **Agent fixes** any issues (loop until approved)
7. **User approves** → Move to next section

### Phase 3: FINALIZATION

1. **All sections complete**
2. **Final integration test**
3. **User approves**
4. **Prototype complete** (already in final location)

---

## 📄 Templates Available

### In `templates/` folder:

1. **`work-file-template.yaml`**
   - Complete planning document
   - Created ONCE at start
   - High-level section breakdown

2. **`story-file-template.md`**
   - Detailed section implementation guide
   - Created JUST-IN-TIME before each section
   - Documents what was actually built

3. **`page-template.html`**
   - Complete HTML page with Tailwind
   - Inline JavaScript examples
   - All common patterns included

4. **`PROTOTYPE-ROADMAP-template.md`**
   - Scenario overview document
   - One per scenario Prototype folder

5. **`demo-data-template.json`**
   - Demo data structure
   - Auto-loads on first page open

---

## 🎨 Key Principles

### 1. Tailwind First
- Use Tailwind CDN
- Inline config for project colors
- Custom CSS only for what Tailwind can't do
- No separate CSS files

### 2. Pages in Root
- All HTML files in Prototype root
- Easy to find and open
- Simple relative paths
- No nested page folders

### 3. ONE COPY of Shared Code
- `shared/` contains ONE copy of each utility
- `components/` contains ONE copy of each component
- Update once → affects all pages
- Zero duplication

### 4. Self-Contained
- Zip entire Prototype folder
- Works on any computer
- No server needed
- No setup needed

### 5. Section-by-Section
- Break page into 4-8 sections
- Build one section at a time
- Test after each section
- Approval gate before next section
- Prevents errors from compounding

### 6. Just-in-Time Stories
- Create story file RIGHT BEFORE implementing each section
- Not all at once upfront
- Allows flexibility to adjust based on feedback
- Documents exactly what was built (including changes)

### 7. Build in Final Location
- No temp folder
- Create file in root from start
- Add sections incrementally
- Use "🚧" placeholders for upcoming sections
- File grows organically

---

## 🛠️ Tools & Technologies

**Required**:
- Tailwind CSS (via CDN)
- Vanilla JavaScript (no frameworks)
- SessionStorage (for demo data)

**Optional**:
- Google Fonts (Inter recommended)
- Custom fonts in `assets/fonts/`

**Not Needed**:
- Node.js / npm
- Build process
- CSS preprocessors
- Bundlers

---

## 📚 For Agents

### Freya (UX/UI Designer)
**Primary role**: Create interactive prototypes

**Read**:
1. `FREYA-WORKFLOW-INSTRUCTIONS.md` (complete step-by-step)
2. `templates/` (use these for all work)
3. Dog Week examples (reference implementations)

**Create**:
1. Work files (planning)
2. Story files (just-in-time)
3. HTML pages (section-by-section)
4. Demo data (if new data entities)

---

### Saga (Analyst)
**Role in prototypes**: Provide specifications, validate requirements

**Read**:
1. Work files (understand planned sections)
2. Story files (review implementation details)
3. Completed prototypes (validate against requirements)

**Create**:
1. Page specifications (source for work files)
2. User flow documentation
3. Success criteria definitions

---

---

## 🎓 Learning Path

### Week 1: Understand the System
- Read this guide
- Read `FREYA-WORKFLOW-INSTRUCTIONS.md`
- Open Dog Week prototypes
- Test in browser
- Check console logs

### Week 2: Study Examples
- Read 1.2-Sign-In.html (simple)
- Read 1.6-Add-Dog.html (medium)
- Read 3.1-Calendar.html (complex)
- Compare to their work files
- Review story files

### Week 3: Modify Example
- Copy existing prototype
- Change fields, text, colors
- Test modifications
- Understand file relationships

### Week 4: Create New Prototype
- Start with simple page
- Follow workflow exactly
- Build section-by-section
- Get feedback, iterate

---

## ✅ Quality Standards

Every prototype must have:

**Functionality**:
- [ ] All interactions work
- [ ] Form validation correct
- [ ] Loading states display
- [ ] Success/error feedback shows
- [ ] Navigation works
- [ ] Data persists

**Code Quality**:
- [ ] All Object IDs present
- [ ] Tailwind classes used properly
- [ ] Console logs helpful
- [ ] No console errors
- [ ] Inline JS < 150 lines (or external file)
- [ ] Functions documented

**Mobile**:
- [ ] Tested at target width
- [ ] Touch targets min 44px
- [ ] No horizontal scroll
- [ ] Text readable

**Documentation**:
- [ ] Work file complete
- [ ] Story files for all sections
- [ ] Changes documented
- [ ] Status updated

---

## 🚀 Benefits

| Aspect | Benefit |
|--------|---------|
| **For Designers** | No coding complexity, visual results fast |
| **For Users** | Real interactions, usable for testing |
| **For Developers** | Clear implementation reference |
| **For Stakeholders** | Works immediately, no setup |
| **For Project** | Self-contained, easy to share |

---

## 📊 Success Metrics

**Speed**: 30-45 min per page (section-by-section)  
**Quality**: Production-ready code  
**Error Rate**: Low (approval gates prevent issues)  
**Flexibility**: High (adjust as you go)  
**Reusability**: High (shared components)  
**Maintainability**: High (ONE copy of shared code)

---

## 🆘 Need Help?

**Question**: "How do I start?"  
**Answer**: Read `FREYA-WORKFLOW-INSTRUCTIONS.md` and follow step-by-step

**Question**: "Which template do I use?"  
**Answer**: 
- Planning → `work-file-template.yaml`
- Implementing → `story-file-template.md` (just-in-time)
- Coding → `page-template.html`

**Question**: "How do I create demo data?"  
**Answer**: Copy `demo-data-template.json`, fill in values, save to `data/` folder

**Question**: "What if section needs changes?"  
**Answer**: Make changes directly in HTML, document in story file, re-test, get approval

**Question**: "How do I share prototype?"  
**Answer**: Zip entire Prototype folder, send to stakeholder

---

## 📝 Quick Reference

**Start new prototype**: Create work file → Get approval → Build section 1  
**Add section**: Create story → Implement → Test → Get approval → Next section  
**Fix issue**: Update HTML → Re-test → Get approval  
**Complete prototype**: Final integration test → Update status → Done  
**Share prototype**: Zip Prototype folder → Send  

---

## 🎯 Remember

1. **Tailwind first** - Use classes, not custom CSS
2. **Pages in root** - Easy to find and open
3. **ONE COPY** - No duplication of shared code
4. **Section-by-section** - Approval gates prevent errors
5. **Just-in-time stories** - Create when needed, not all upfront
6. **Build in final location** - No temp folder needed
7. **Test after each section** - Don't wait until the end
8. **Object IDs always** - Every interactive element
9. **Demo data ready** - Auto-loads on first use
10. **Self-contained** - Zip & works anywhere

---

**You are ready to create production-ready interactive prototypes!** 🚀

For detailed step-by-step instructions, see: `FREYA-WORKFLOW-INSTRUCTIONS.md`

