# 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: `design/DESIGN_PLAN.md` (not under `docs/`) | | 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.