Files
Salon_Assistant/design/use-cases.md
T
Ty 48566993f6 Seed approved structure: design SSOT, operator docs, scaffolds.
Product layout for Lumina / Salon_Assistant at 0.1.0-design.
No product implementation until explicit build.
2026-07-27 09:44:35 -07:00

277 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Use cases — Lumina / Salon_Assistant (SSOT)
**This file is the single source of truth for product use cases.**
Do not maintain full UC matrices in README or the design plan; cite names/families here.
**Demo persona (fixtures only):** Claire Bennett, owner-operator of a sample salon/spa. Real deployments replace this at introduction.
**Actors:**
| Actor | Role |
|-------|------|
| Owner | Salon/spa owner (primary user of the assistant) |
| Operator | Technical person who installs/upgrades the stack once |
| Front desk / stylist | Future; MVP is owner-centric |
| System | Hermes agent + deterministic scripts + NemoClaw/OpenShell |
---
## Family A — Scheduling / floor ops
### A1. Morning / day board
- **Actor:** Owner
- **Goal:** See appointments for a day: time, client, service, staff, status, gaps, who needs confirmation.
- **Sources:** Vagaro and/or Square (or fixtures if not connected).
- **Outcome:** Clear board summary in chat (WhatsApp/Email/Telegram).
- **Degraded:** Fixtures or “scheduling offline” — never silent fake live data.
### A2. Client prep card
- **Actor:** Owner / stylist on duty
- **Goal:** Recall preferences, allergies, color formula, notes before a guest sits.
- **Sources:** Scheduling SoR + local overlay notes (formulas may not live in SaaS).
- **Privacy:** Do not share one clients private details with another guest.
### A3. Draft client message
- **Actor:** Owner
- **Goal:** Draft confirm / running-late / no-show rebook messages in owners voice.
- **Constraint:** **Draft only** — owner sends (SMS/WhatsApp/email). No silent auto-send.
- **Sources:** Templates + style pack + client contact from SoR.
### A4. Inbox triage
- **Actor:** Owner
- **Goal:** Sort vendor vs client vs noise; flag invoices for review.
- **Sources:** Email fixtures or connected mail later; optional match to books (open bills).
- **Constraint:** Do not pay invoices.
### A5. Retail / supply stock
- **Actor:** Owner
- **Goal:** Low stock / reorder list for retail, backbar, spa supplies.
- **Sources:** Square catalog/inventory, Vagaro if available, or fixtures.
- **Constraint:** Owner approves purchases.
### A6. Service menu
- **Actor:** Owner
- **Goal:** List bookable services (duration, category).
- **Sources:** Catalog / fixtures.
### A7. Availability peek
- **Actor:** Owner
- **Goal:** “Any opening Thursday after 3 for a facial?”
- **Sources:** Scheduling availability API or board-derived gaps (fixtures).
### A8. Propose reschedule / cancel
- **Actor:** Owner
- **Goal:** Prepare change; confirm before write to SaaS.
- **Constraint:** Gated write; off by default in MVP if unsafe; else owner does it in Vagaro/Square with assistant checklist.
### A9. Weekly floor metrics
- **Actor:** Owner
- **Goal:** Completes, no-shows, rebooks, rough volume (from fixtures or SoR).
- **Note:** May disagree with QuickBooks; surface both when books connected.
---
## Family B — Books / QuickBooks
### B1. Books snapshot
- **Actor:** Owner
- **Goal:** “How are we doing?” — income/expense/net for a period.
- **Source:** QBO reports (e.g. P&L) via MCP read tools; fixtures if not connected.
- **Constraint:** Operational support, not CPA advice. **Read only.**
### B2. Open invoices (AR)
- **Actor:** Owner
- **Goal:** Who owes the salon (suite rent, bridal deposit, packages).
- **Source:** QBO invoices; open balance only.
### B3. Bills due (AP)
- **Actor:** Owner
- **Goal:** What we owe vendors this week.
- **Constraint:** Agent does **not** pay bills.
### B4. Vendor spend lookup
- **Actor:** Owner
- **Goal:** Spend with a vendor over a period.
- **Source:** Bills/purchases/vendor tools (read).
### B5. Inbox ↔ books match
- **Actor:** Owner
- **Goal:** Vendor email invoice matched to open QBO bill or “not in books yet.”
- **Constraint:** Review only; no payment.
### B6. Weekly digest + books
- **Actor:** Owner
- **Goal:** Floor metrics plus P&L/AR/AP highlights in one answer.
### B7. Draft sales invoice
- **Actor:** Owner
- **Goal:** Prepare invoice payload for private client / suite rental.
- **Constraint:** Does not post/send/collect payment; owner completes in QBO.
### B8. Draft expense / bill entry
- **Actor:** Owner
- **Goal:** Categorize a receipt into a draft bill.
- **Constraint:** Owner posts; agent does not pay.
### B9. Customer/vendor directory assist
- **Actor:** Owner
- **Goal:** Find QBO party; note name mismatch vs Vagaro/Square client.
### B10. Books connectivity
- **Actor:** Operator / owner setup
- **Goal:** Health of QBO connection (company info).
### B11. Overdue AR nudge draft
- **Actor:** Owner
- **Goal:** Collection-style message draft from open invoice + contact.
- **Constraint:** Owner sends.
---
## Family C — Owner channels and identity
### C1. Talk to assistant on WhatsApp
- **Actor:** Owner
- **Goal:** Day-to-day product chat on WhatsApp.
- **MVP:** Yes.
### C2. Talk to assistant on Email
- **Actor:** Owner
- **Goal:** Thread-based interaction by email.
- **MVP:** Yes.
### C3. Talk to assistant on Telegram
- **Actor:** Owner
- **Goal:** Chat via Telegram bot.
- **MVP:** Yes.
### C4. Hermes dashboard (secondary)
- **Actor:** Operator / power user
- **Goal:** Debug, status — not primary owner path.
### C5. Name the assistant
- **Actor:** Owner at introduction
- **Goal:** Choose assistant name; becomes Hermes/NemoClaw profile/sandbox display name.
### C6. Owner profile intake
- **Actor:** Owner
- **Goal:** Who I am, business, timezone, hours, staff, priorities, hard rules.
- **Outcome:** Structured profile feeding identity/voice.
### C7. Remember / forget preferences
- **Actor:** Owner
- **Goal:** Durable style/needs after explicit confirm; “forget that” works.
- **Constraint:** No silent finetune; never unlocks pay/send/publish.
---
## Family D — Social / content
### D1. Social caption draft (text)
- **Actor:** Owner
- **Goal:** Draft IG/FB-style caption from theme/brief.
- **Constraint:** Owner posts; agent does not publish.
### D2. Media-assisted social craft
- **Actor:** Owner
- **Goal:** Send photo/video on WhatsApp/Telegram/email; get caption, hook, hashtags, alt-text, timing tip.
- **Sources:** Multimodal vision aux + style pack.
- **Constraint:** Owner-supplied media only; no auto-publish; no scrape of client photos from SaaS without owner send.
- **Degraded:** If vision offline, owner describes shot; text draft still works.
---
## Family E — Setup, education, degrade
### E1. Educational setup (post-install)
- **Actor:** Owner (+ operator for secrets/host scripts)
- **Goal:** Lessons: profile, channels, Vagaro, Square, QBO, expectations; each ends connected | skipped | later | error.
- **Prerequisite:** Platform install S0S6 already done.
### E2. Connect owners Vagaro
- **Actor:** Owner + operator connect script
- **Goal:** Wire **their** Vagaro (API/webhooks), not a demo tenant.
### E3. Connect owners Square
- **Actor:** Owner + operator
- **Goal:** Remote MCP + allowlisted read tools; deny pay tools.
### E4. Connect owners QuickBooks
- **Actor:** Owner + operator
- **Goal:** Local MCP read tools; deny payment tools.
### E5. Connect WhatsApp / Email / Telegram
- **Actor:** Owner + operator
- **Goal:** Hermes channels via NemoClaw channel commands; allowlists.
### E6. Capability report
- **Actor:** Owner
- **Goal:** Understand what works vs offline/fixtures in plain language.
### E7. Degraded mode when SaaS/channel missing
- **Actor:** System
- **Goal:** Explicit status; never silent demo-as-truth.
---
## Family F — Control and boundaries
### F1. Boundary check
- **Actor:** Owner / demo
- **Goal:** Prove no silent send, no social publish, no pay.
- **Enforcement:** Skills + OpenShell + SOUL.
### F2. Refuse payment / bill-pay / refund
- **Actor:** System
- **Goal:** Hard refuse even if prompted.
### F3. Refuse terminal recipes to owner
- **Actor:** System
- **Goal:** Never tell owner to run nano/docker/shell; operator scripts + `nemohermes` only.
---
## Family G — Platform ops (operator)
### G1. Install from repo
- **Actor:** Operator
- **Goal:** Baselined host → Docker if needed → Compose + `nemohermes onboard` → doctor green.
### G2. Automatic software update
- **Actor:** System (scheduled) / operator
- **Goal:** Updates **on by default**, invisible to owner; `upgrade.sh` + pins + volumes + rollback.
### G3. Doctor / logs
- **Actor:** Operator
- **Goal:** Health, production/debug/trace logs, upgrade journal.
---
## Explicit non-use-cases (out of MVP)
| Item | Reason |
|------|--------|
| Agent pay / BillPayment / refund / charge card | Product decision |
| Silent client send | Reputation |
| Silent social publish | Reputation |
| iMessage as bot channel | No clean API |
| Holographic memory | Overkill |
| Dual live write Vagaro+Square | One active scheduler connection model per plane config |
| Unofficial Vagaro scrape | Unsupported |
| Unrestricted pay-capable MCP tools on owner agent | Safety |
| Owner-driven platform upgrades | Ops model |
---
## Traceability
| Family | Primary design plan sections |
|--------|------------------------------|
| A Scheduling | Planes, SaaS adapters |
| B Books | QBO MCP, det vs inf |
| C Channels / identity | Hermes channels, single profile |
| D Social | Vision aux, media |
| E Setup | Install stages, owner-safe setup |
| F Boundaries | Policy, SOUL |
| G Ops | Updates, observability |