Implement S6 doctor and A1 daily-board with fixtures.
Add operator health checks (make doctor) wrapping platform CLIs, and the fixtures-only daily board skill library with unit tests (make verify).
This commit is contained in:
+37
-4
@@ -1,11 +1,44 @@
|
||||
# Fixtures (scaffold)
|
||||
# Fixtures
|
||||
|
||||
Demo persona when implemented: **Claire Bennett**, **Lumina Hair Studio & Spa**.
|
||||
Demo persona: **Claire Bennett**, **Lumina Hair Studio & Spa**.
|
||||
|
||||
All fixture data is clearly labeled in skill output — never silent fake live data.
|
||||
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `books/` | Sample QBO-shaped JSON |
|
||||
| `scheduling/` | Sample appointment data for daily-board |
|
||||
| `books/` | Sample QBO-shaped JSON (future) |
|
||||
| `media/` | Sample social media assets for vision tests |
|
||||
| `../recorded/` | Optional recorded responses (local only; do not commit secrets) |
|
||||
|
||||
No fixture JSON committed until **build** unless explicitly requested.
|
||||
## Scheduling fixtures
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `scheduling/claire_bennett_2026-07-28.json` | Sample salon day: 7 appointments (2 staff, 1 cancelled) |
|
||||
|
||||
### Fixture schema
|
||||
|
||||
```json
|
||||
{
|
||||
"salon_name": "Lumina Hair Studio & Spa",
|
||||
"date": "2026-07-28",
|
||||
"business_hours": {"open": "09:00", "close": "18:00"},
|
||||
"staff": [{"name": "Claire Bennett", "role": "owner-stylist"}],
|
||||
"appointments": [
|
||||
{
|
||||
"id": "APT-001",
|
||||
"start": "2026-07-28T09:00:00",
|
||||
"end": "2026-07-28T10:30:00",
|
||||
"client_name": "Elena Rossi",
|
||||
"service_name": "Balayage + Cut",
|
||||
"staff_name": "Claire Bennett",
|
||||
"status": "confirmed",
|
||||
"needs_confirmation": false,
|
||||
"notes": "Formula: 9.1 + 0-45 gloss"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**Status values:** `confirmed`, `pending`, `cancelled`, `completed`, `no_show`
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"salon_name": "Lumina Hair Studio & Spa",
|
||||
"date": "2026-07-28",
|
||||
"business_hours": {
|
||||
"open": "09:00",
|
||||
"close": "18:00"
|
||||
},
|
||||
"staff": [
|
||||
{
|
||||
"name": "Claire Bennett",
|
||||
"role": "owner-stylist"
|
||||
},
|
||||
{
|
||||
"name": "Maya Torres",
|
||||
"role": "colorist"
|
||||
}
|
||||
],
|
||||
"appointments": [
|
||||
{
|
||||
"id": "APT-001",
|
||||
"start": "2026-07-28T09:00:00",
|
||||
"end": "2026-07-28T10:30:00",
|
||||
"client_name": "Elena Rossi",
|
||||
"service_name": "Balayage + Cut",
|
||||
"staff_name": "Claire Bennett",
|
||||
"status": "confirmed",
|
||||
"needs_confirmation": false,
|
||||
"notes": "Formula: 9.1 + 0-45 gloss. Allergic to ammonia."
|
||||
},
|
||||
{
|
||||
"id": "APT-002",
|
||||
"start": "2026-07-28T10:30:00",
|
||||
"end": "2026-07-28T11:30:00",
|
||||
"client_name": "Sarah Kim",
|
||||
"service_name": "Blowout + Updo",
|
||||
"staff_name": "Claire Bennett",
|
||||
"status": "pending",
|
||||
"needs_confirmation": true,
|
||||
"notes": "Wedding guest — updo reference photo sent."
|
||||
},
|
||||
{
|
||||
"id": "APT-003",
|
||||
"start": "2026-07-28T11:00:00",
|
||||
"end": "2026-07-28T12:30:00",
|
||||
"client_name": "Jasmine Patel",
|
||||
"service_name": "Root Touch-Up",
|
||||
"staff_name": "Maya Torres",
|
||||
"status": "confirmed",
|
||||
"needs_confirmation": false,
|
||||
"notes": "2B dark brown. Regular client."
|
||||
},
|
||||
{
|
||||
"id": "APT-004",
|
||||
"start": "2026-07-28T13:00:00",
|
||||
"end": "2026-07-28T14:00:00",
|
||||
"client_name": "Chris Nguyen",
|
||||
"service_name": "Men's Cut",
|
||||
"staff_name": "Claire Bennett",
|
||||
"status": "pending",
|
||||
"needs_confirmation": true,
|
||||
"notes": "Running late from work — may be 15 min behind."
|
||||
},
|
||||
{
|
||||
"id": "APT-005",
|
||||
"start": "2026-07-28T14:00:00",
|
||||
"end": "2026-07-28T15:30:00",
|
||||
"client_name": "Priya Sharma",
|
||||
"service_name": "Deep Conditioning Treatment",
|
||||
"staff_name": "Maya Torres",
|
||||
"status": "confirmed",
|
||||
"needs_confirmation": false,
|
||||
"notes": "Post-color repair. Keratin-safe product only."
|
||||
},
|
||||
{
|
||||
"id": "APT-006",
|
||||
"start": "2026-07-28T15:30:00",
|
||||
"end": "2026-07-28T17:00:00",
|
||||
"client_name": "Aisha Williams",
|
||||
"service_name": "Full Color + Style",
|
||||
"staff_name": "Claire Bennett",
|
||||
"status": "confirmed",
|
||||
"needs_confirmation": false,
|
||||
"notes": "First visit — consultation included."
|
||||
},
|
||||
{
|
||||
"id": "APT-007",
|
||||
"start": "2026-07-28T12:30:00",
|
||||
"end": "2026-07-28T13:00:00",
|
||||
"client_name": "Tom Bradley",
|
||||
"service_name": "Quick Trim",
|
||||
"staff_name": "Maya Torres",
|
||||
"status": "cancelled",
|
||||
"needs_confirmation": false,
|
||||
"notes": "Client cancelled — rescheduled to next week."
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user