Initial project setup: adversarial reviewer for homelab projects
This commit is contained in:
34
.mcp.json
Normal file
34
.mcp.json
Normal 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
53
CLAUDE.md
Normal 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
|
||||
Reference in New Issue
Block a user