Hoff16Studio — architecture & migration
Full-absorb design: the Studio takes over every Claude / always-on function of the Hoff16 mini; the mini becomes a non-Claude workstation. Authored 2026-09-13. Companion to MACSTUDIO-SETUP.md. Gold: Hoff16.
Decisions locked (TK, 13 Sep)
- Full absorb — everything moves to the Studio; nothing Claude stays on the mini.
- Names — Studio becomes
hoff16 (ComputerName TK-mac-studio-M5-Max-Hoff16); the mini becomes mini16. The SSH alias hoff16 repoints to the Studio, so existing scripts keep working.
- 70B exposure —
localhost only. Reachable from other machines on purpose via SSH / ssh -L tunnel, never open on the LAN.
- Cutover — parallel + verified, then decommission; WhatsApp is cut last, on its own (single slot).
1 · What transfers (full absorb)
graph LR
subgraph MINI["Hoff16 mini — today (Wi-Fi)"]
direction TB
A1["Gold-standard authority"]
A2["Claude Desktop · 2 accounts"]
A3["Full MCP stack"]
A4["UniFi + energy MCPs"]
A5["6 launchd collectors"]
A6["Scheduled tasks"]
A7["WhatsApp slot"]
A8["SSH hub · hoff16"]
end
subgraph STUDIO["Hoff16Studio = hoff16 — target (wired 10GbE)"]
direction TB
B1["All mini functions"]
B2["+ on-prem 70B (NEW)"]
end
MINI ==>|"full transfer"| STUDIO
STUDIO -.->|"freed"| MINI16["mini16 — non-Claude workstation"]
2 · The logic — confidential-triage router
flowchart LR
subgraph STU["On the Studio — localhost, nothing leaves"]
D["Confidential doc
vault · banking · notary"] --> L["Local 70B (Ollama)
classify + extract"] --> R["Redact + summarize
on-box"]
end
R -->|"redacted result only"| C["Cloud Claude"]
The boundary is the point. Raw confidential content is processed entirely on-box by the local 70B; only a redacted/summarised result ever crosses to cloud Claude. Ollama binds to 127.0.0.1 — unauthenticated, so it must never be exposed on the LAN. Reach it from elsewhere only via ssh -L 11434:localhost:11434 hoff16.
3 · Network placement & the estate
graph TD
subgraph H["Hoff16 site — LAN 10.31.16.0/24 · wired"]
S["hoff16 = Studio
Claude + MCP + 70B(localhost)"]
M["mini16
workstation"]
end
S ---|"AMS-Triangle mesh"| P["Pasteur25
10.31.1.0/24"]
S ---|"mesh"| DBH["AMS-DBH
192.168.1.0/24"]
S ---|"mesh"| BER["BER-Tor231
10.49.30.0/24"]
The Studio sits on the Hoff16 LAN with a fixed DHCP lease, so it is already inside the AMS-Triangle mesh — reachable from P25 / DBH / BER with zero mesh config. The 70B stays localhost-walled and is never advertised into the mesh.
4 · The main Claude processor (internal stack)
graph TD
subgraph S["hoff16 = Studio"]
CD["Claude Desktop
byss Max + dlulisa Enterprise"] --> MCP["MCP stack
UniFi · M365 · DO · CF · GitHub · ..."]
CD --> COL["6 launchd collectors
+ scheduled tasks"]
CD -.->|"confidential docs only"| O["Local 70B (Ollama)
localhost tool"]
end
The 70B is a subordinate tool the Studio's Claude calls for on-box triage — not a Claude replacement. WhatsApp keeps its single linked-device slot here (byss Max only).
5 · Migration runbook (parallel & verified)
flowchart TD
S0(["1 · First boot + always-on hardening
pmset · auto-login · logout-watchdog"]) --> S1["2 · Install Claude Desktop
both accounts + full MCP stack"]
S1 --> S2["3 · Move 6 collectors + scheduled tasks
run in PARALLEL with the mini"]
S2 --> Q{"4 · All green in parallel?"}
Q -->|"no"| RB["Roll back — mini stays authoritative"]
Q -->|"yes"| S3["5 · Cut gold-standard authority to the Studio"]
S3 --> WA["6 · WhatsApp (single slot):
stop mini → copy auth_info → start Studio → verify"]
WA --> S4["7 · Rename: Studio→hoff16, mini→mini16
repoint SSH aliases"]
S4 --> S5(["8 · Decommission mini's Claude side
mini16 = your workstation"])
WhatsApp is the one step that cannot run in parallel. The single linked-device slot must move by a deliberate stop → copy auth_info → start → verify — never a sync, never a casual re-pair/QR (RULES §5/§12/§14). It is cut last, after everything else is proven green.
Open items
- Pull the exact launchd plist paths + scheduled-task list off the mini on migration day (copy-exact steps).
- Mount decision (meterkast photo, ~18 Sep); UPS yes/no.
- Lock the specific 70B model at install (~24 Sep).
- Studio delivered to P25 (Luka), moved to Hoff16, first boot at TK's desk next to the mini, then into the meterkast.