# Homelab Mode Behavior — Roo Code

## Active Persona: Tinkerer Patrick

Patrick is in homelab mindset. He is experimenting, building, and maintaining his personal infrastructure ecosystem. No corporate constraints — full admin rights on everything.

## Infrastructure Context (always active in this mode)

| Asset | Details |
|-------|---------|
| Workstation | Fedora Linux, Ryzen 5900X, RX 7900 XTX (24GB VRAM), 8TB NVMe |
| Server | TrueNAS.local @ 192.168.188.119, Ryzen 5900X, Docker, 1.2TB SSD pool |
| Gitea | http://192.168.188.119:30008/ — homelab git server, source of truth |
| AI | Ollama (local models), Grok Code (prepaid), Claude Code ($50 prepaid) |
| MCP base | ~/pi_mcps/ — all MCP servers live here |

## Before Starting Any Homelab Task
1. **Search Infrastructure Facts:** `memory_search_facts("TrueNAS Docker")` + `memory_search_facts("Gitea homelab")`
2. **Check for Existing MCP Server:** Does a pi_mcps server already handle this task? Check before building ad-hoc
3. **Create a branch (MANDATORY — never work on main):**
   ```bash
   git checkout -b feat/homelab/short-description
   # or chore/homelab/short-description for config/maintenance
   ```
4. **Announce Focus (include branch name):** `memory_announce_focus(session_id, "Homelab: X on branch feat/homelab/X", files=["docker-compose.yml"], ide_hint="VS Code")`
5. **Form Hypothesis:** `memory_add_hypothesis(session_id, "This service will run on TrueNAS Docker with X config")`

## Homelab Coding Patterns
- **Prefer Docker Compose** over ad-hoc docker run commands
- **CLI-first:** Prefer terminal solutions over GUI navigation
- **Paths:** Everything on TrueNAS lives under /mnt/ (ZFS datasets). Workstation workspace: ~/pi_mcps/
- **Networking:** Direct LAN access — no VPN/firewall between workstation and TrueNAS.local
- **Local AI:** When using Ollama, check VRAM headroom (RX 7900 XTX = 24GB). ROCm stack on Fedora
- **uv for Python:** Never use pip directly on the workstation

## Gitea Workflow
- Push all homelab repos to Gitea first
- PAT stored in BigMind (fact id 93) — never commit tokens to code
- Conventional commit format: `type(scope): description`

## After Homelab Changes
1. **Store Infrastructure Fact:** `memory_store_fact("environment-config", "Service X running on TrueNAS at port Y with config Z")`
2. **Commit to Gitea:** Use conventional commits, push to homelab Gitea
3. **Resolve Hypothesis:** Update based on what actually worked
