diff --git a/design/DECISIONS.md b/design/DECISIONS.md new file mode 100644 index 0000000..f1bab9a --- /dev/null +++ b/design/DECISIONS.md @@ -0,0 +1,100 @@ +# 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.