Resolved design decisions — Lumina / Salon_Assistant
Record of decisions from the planning session. Supersedes chat-only memory.
Product
| ID |
Decision |
| D-01 |
Product name working title Lumina; repo Salon_Assistant under Ty_Tech |
| D-02 |
Demo persona Claire Bennett (fixtures only); real owner set at intro |
| D-03 |
Hermes under NemoClaw; not OpenClaw-first |
| D-04 |
No agent payments / bill-pay / refunds |
| D-05 |
Client outbound and social: draft only; owner sends/posts |
| D-06 |
Social media is a first-class plane (incl. owner photo/video craft) |
Channels
| ID |
Decision |
| D-10 |
Owner MVP channels: WhatsApp, Email, Telegram |
| D-11 |
Hermes dashboard secondary |
| D-12 |
iMessage not a supported bot channel |
| D-13 |
Channels via Hermes/NemoClaw messaging — not IDE MCPs |
SaaS and MCP
| ID |
Decision |
| D-20 |
Scheduling: Vagaro and/or Square + fixtures |
| D-21 |
Books: QuickBooks Online + fixtures |
| D-22 |
Agent↔SaaS: MCP when possible; scripts/CI use REST/fixtures |
| D-23 |
Remote MCP preferred; local MCP only if necessary |
| D-24 |
Square: remote MCP; allow bookings/customers/catalog/inventory reads; deny pay tools |
| D-25 |
QBO: local MCP on same Docker network as Hermes; read tools; deny payment tools; write/update/delete off for MVP |
| D-26 |
Vagaro: no public MCP → REST + webhooks |
| D-27 |
Setup teaches connecting the owner’s accounts, not demo tenants only |
Platform / install
| ID |
Decision |
| D-30 |
Docker-first runtime; bootstrap installs Docker if missing |
| D-31 |
Model OpenAI-compatible endpoint may be outside containers |
| D-32 |
Host scripts outside containers; some automation in-container — documented split |
| D-33 |
No bespoke control API; all mutations via nemohermes / openshell + product scripts |
| D-34 |
Hermes write-safety stays on; config via sealed host commands |
| D-35 |
Owner never receives terminal/nano/docker instructions |
| D-36 |
One Hermes profile MVP; intro name = profile/sandbox name |
| D-37 |
Multimodal: aux vision required for media social; other aux default to base/main |
| D-38 |
Prefer platform-native ops; bespoke last resort |
Memory / learning
| ID |
Decision |
| D-40 |
Base memory: profile, style pack, structured notes, skills |
| D-41 |
Confirm-to-learn / forget; no silent finetune |
| D-42 |
No holographic memory MVP |
| D-43 |
Optional curated wiki later |
Updates / observability
| ID |
Decision |
| D-50 |
Automatic updates ON by default |
| D-51 |
Owner-transparent (no upgrade chat) |
| D-52 |
upgrade.sh parent process; pins, volumes, migrations, rollback |
| D-53 |
Suppress Hermes interactive update during product upgrade |
| D-54 |
Log levels: production (default), debug, trace |
| D-55 |
Optional external trace UIs not MVP |
Documentation process
| ID |
Decision |
| D-60 |
Use-case SSOT: design/use-cases.md (this tree) |
| D-61 |
Scenarios: design/scenarios.md |
| D-62 |
Full architecture plan: docs/DESIGN_PLAN.md |
| D-63 |
Workspace seed = repo root content for Gitea check-in |
| D-64 |
Plan approval ≠ build authorization |
Queues absorbed (historical labels)
Q1 Setup UX · Q2 Educational setup/degrade/identity · Q3 Learning · Q4 Base memory · Q5 Channels MVP · Q6 Media social · Q7 UC SSOT · Q8 Minimal Hermes · Q9 Observability · P1–P6 packages · Docker/MCP/profile/update decisions above.