feat(roo): add Patrick-persona custom modes, skills, and mode-specific rules
Add 4 new custom modes with BigMind guidance: - rules-bigmind/: Introspective Patrick mode (BigMind development) - rules-homelab/: Tinkerer Patrick mode (TrueNAS, Docker, infra) - rules-mcp-builder/: Craftsman Patrick mode (pi_mcps MCP servers) - rules-paisy/: Professional Patrick mode (ADP Germany payroll) Add reusable skills: - skills/assessment-first/: structured assessment.md before implementation - skills/bigmind-session-ritual/: mandatory session start/end ritual - skills/gitea-push/: conventional commit + Gitea push workflow - skills/new-mcp-server/: FastMCP scaffold procedure - skills-bigmind/, skills-homelab/, skills-mcp-builder/, skills-paisy/: mode-specific skill dirs Update existing rules: - rules-architect, rules-ask, rules-code, rules-debug, rules-orchestrator: add BigMind session guidance (search before task, announce focus, hypotheses) Add plans/MODES_AND_SKILLS_PLAN.md: full architecture document
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
---
|
||||
name: homelab-docker-deploy
|
||||
description: Scaffolds and deploys a new Docker service on TrueNAS.local homelab server. Use this skill when adding a new containerized service to the homelab — produces a docker-compose.yml, documents the service in BigMind, and verifies it is running.
|
||||
---
|
||||
|
||||
# Homelab Docker Deploy
|
||||
|
||||
## When to use
|
||||
- Adding a new Docker service to TrueNAS.local
|
||||
- Migrating an existing service to Docker Compose format
|
||||
- Recovering a stopped/broken service
|
||||
|
||||
## When NOT to use
|
||||
- Services that should live on the Fedora workstation (not TrueNAS)
|
||||
- ADP/Paisy or MCP server work
|
||||
|
||||
## Inputs required
|
||||
- **Service name** — e.g., `gitea`, `ollama`, `homelab-monitor`
|
||||
- **Image** — Docker Hub image and tag
|
||||
- **Port mapping** — host:container
|
||||
- **Volume paths** — TrueNAS dataset paths (e.g., `/mnt/tank/docker/gitea`)
|
||||
- **Environment variables** — any required config
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1 — Check for existing service
|
||||
```bash
|
||||
ssh root@192.168.188.119 "docker ps -a | grep {service-name}"
|
||||
```
|
||||
|
||||
### Step 2 — Create dataset (if new persistent storage needed)
|
||||
TrueNAS datasets live under `/mnt/tank/docker/{service-name}/`
|
||||
|
||||
### Step 3 — Write `docker-compose.yml`
|
||||
```yaml
|
||||
version: "3.8"
|
||||
services:
|
||||
{service-name}:
|
||||
image: {image}:{tag}
|
||||
container_name: {service-name}
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "{host-port}:{container-port}"
|
||||
volumes:
|
||||
- /mnt/tank/docker/{service-name}/data:/data
|
||||
environment:
|
||||
- KEY=value
|
||||
```
|
||||
|
||||
### Step 4 — Deploy
|
||||
```bash
|
||||
ssh root@192.168.188.119 "cd /opt/docker/{service-name} && docker compose up -d"
|
||||
```
|
||||
|
||||
### Step 5 — Verify
|
||||
```bash
|
||||
ssh root@192.168.188.119 "docker ps | grep {service-name}"
|
||||
ssh root@192.168.188.119 "docker logs {service-name} --tail 20"
|
||||
```
|
||||
|
||||
### Step 6 — Store in BigMind
|
||||
```
|
||||
memory_store_fact("environment-config", "Service {service-name} running on TrueNAS at port {port}. Image: {image}. Data: /mnt/tank/docker/{service-name}/")
|
||||
```
|
||||
|
||||
### Step 7 — Commit compose file to Gitea
|
||||
Use the `gitea-push` skill with type `chore` and scope `homelab`.
|
||||
|
||||
## Troubleshooting
|
||||
- **Port conflict:** `ssh root@192.168.188.119 "ss -tlnp | grep {port}"`
|
||||
- **Permission denied on /mnt:** Check ZFS dataset ownership
|
||||
- **Image pull fails:** TrueNAS needs outbound internet — check DNS and routing
|
||||
Reference in New Issue
Block a user