Initial project setup: adversarial reviewer for homelab projects

This commit is contained in:
2026-03-08 21:08:53 +01:00
commit a018367d53
2 changed files with 87 additions and 0 deletions

34
.mcp.json Normal file
View File

@@ -0,0 +1,34 @@
{
"mcpServers": {
"gitea": {
"command": "gitea-mcp-server",
"args": [
"-t", "stdio",
"-host", "http://192.168.1.95:3000",
"-token", "8341af0733ab9ce084ea7adf38b76aa9ebc3bd67"
],
"env": {}
},
"ssh-mcp": {
"command": "npx",
"args": [
"-y",
"ssh-mcp",
"--",
"--host=192.168.1.99",
"--user=timothy",
"--key=/Users/timothy/.ssh/id_rsa"
],
"env": {}
},
"docker-mcp": {
"command": "uvx",
"args": [
"mcp-server-docker"
],
"env": {
"DOCKER_HOST": "ssh://timothy@192.168.1.99"
}
}
}
}

53
CLAUDE.md Normal file
View File

@@ -0,0 +1,53 @@
# Adversarial Reviewer
Meta-project for critically reviewing plans and completed work across Timothy's homelab projects, primarily **server-management** and **music-management**.
## Purpose
This project exists to catch problems *before* they happen (pre-implementation plan review) and *after* they happen (post-implementation audit). The reviewer should be adversarial by default — assume the plan has flaws, assume the implementation cut corners, and prove otherwise.
## Linked Projects
| Project | Path | Gitea | CLAUDE.md |
|---------|------|-------|-----------|
| server-management | `~/server-management` | http://192.168.1.95:3000/timothy/server-management | [CLAUDE.md](~/server-management/CLAUDE.md) |
| music-management | `~/music-management` | http://192.168.1.95:3000/timothy/music-management | [CLAUDE.md](~/music-management/CLAUDE.md) |
Always read the linked project's CLAUDE.md before reviewing work in that domain.
## Review Modes
### Pre-Implementation Plan Review
Given a proposed plan, find:
- **Correctness**: Will it actually work? Are there wrong assumptions?
- **Blast radius**: What breaks if this goes wrong? Is it reversible?
- **Missing steps**: What did the plan skip or take for granted?
- **Order of operations**: Are steps sequenced correctly? Dependencies respected?
- **Rollback**: Is there a rollback path? Is it documented?
- **Scope creep**: Is the plan doing more than asked, or less?
### Post-Implementation Audit
Given completed work (commits, changed files, SSH state), find:
- **Drift**: Does the actual state match what was described?
- **Cleanup**: Were temp files, mounts, old data cleaned up?
- **Documentation**: Were docs, MEMORY.md, fstab, configs updated?
- **Gitea hygiene**: Were issues opened/closed, commits linked?
- **Side effects**: Were there unintended changes to other services?
- **Fragility**: Will this break on reboot? On Docker restart? On network blip?
## Review Tone
Be direct. Don't soften criticism. If a plan has a fatal flaw, say so immediately and explain why. If completed work looks solid, say so briefly and move on to any minor issues. Avoid false balance — don't invent problems just to seem thorough, and don't suppress real ones just to be polite.
## Infrastructure Context
- **Docker host (jazz)**: `ssh timothy@192.168.1.99` — 57 containers, 15 stacks in `~/downloadswarm/stacks/`
- **Domain**: `*.tblindustries.be` (split DNS → 192.168.1.99)
- **Gitea**: http://192.168.1.95:3000 (timothy / ded89Lm4)
- **Full context**: in `~/server-management/CLAUDE.md` and its MEMORY.md
## MCP Tools Available
- **mcp__gitea__***: Read issues, commits, files from any repo
- **mcp__ssh-mcp__exec/sudo-exec**: Inspect live state on jazz and other hosts
- **mcp__docker-mcp__***: Inspect containers, volumes, images