# pi_coder — Automatisierter Coder/Judge-Workflow für pi agent Dieses Repository enthält die Konfiguration und Skripte für einen automatisierten Coding-Workflow mit zwei lokalen LLaMA-Modellen: ein Coder-Modell und ein Judge-Modell, gesteuert über [pi agent](https://github.com/earendil-works/pi). ## Überblick ``` Nutzer gibt Auftrag │ ▼ /coder → qwen3.5-coder (:8001) → Implementierung + git commit │ ▼ /judge → qwen3.5-judge (:8002) → Review: PASS / FAIL + Blocker │ FAIL? ▼ /fix → qwen3.5-coder (:8001) → Fixes + git commit │ PASS? ▼ /shipit → qwen3.5-judge (:8002) → Finale Freigabe: SHIP / NO-SHIP /optimize = Coder→Judge→Fix-Schleife automatisch (bis PASS oder max. N Runden) ``` ## Modelle | Rolle | Modell | Port | Container | |---------|-------------------------------------------------|------|---------------------| | Coder | Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS | 8001 | qwen36-27b-coder | | Judge | Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS | 8002 | qwen36-27b-judge | Beide Modelle laufen als separate llama.cpp-Docker-Container auf GPU 1 und 2 (tensor-split 0.5/0.5). ## Voraussetzungen - Docker mit NVIDIA-GPU-Support (`nvidia-container-toolkit`) - GPU 1 und GPU 2 verfügbar (`nvidia-smi`) - GGUF-Modell unter: `$HF_HOME/models/qwen3/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf` - Standard: `HF_HOME=/home/dschlueter/nvme2n1p7_home/huggingface` - [pi agent](https://github.com/earendil-works/pi) installiert (`~/.pi/`) ## Setup ```bash # 1. Extension und Modell-Config nach ~/.pi/agent/ deployen ./install.sh # 2. /reload in pi agent ausführen ``` Nach Änderungen an `pi-coder-judge-extension.ts` oder `models.json`: ```bash ./install.sh # kopiert nach ~/.pi/agent/ # dann /reload in pi agent ``` ## Server starten / stoppen / status ```bash # Beide Server parallel starten (empfohlen) ./start-servers.sh # Einzeln starten (z.B. nach Absturz eines Servers) ./start-coder.sh # Port 8001 ./start-judge.sh # Port 8002 # Beide stoppen ./stop-servers.sh # Status beider Server prüfen ./status.sh ``` `start-servers.sh` startet beide Container gleichzeitig und wartet bis beide HTTP-ready sind — schneller als sequenziell. Logs werden getrennt gesammelt und nur bei Fehler ausgegeben. Umgebungsvariable für alternativen Modellpfad: ```bash HF_HOME=/anderer/pfad ./start-servers.sh ``` ## pi-Kommandos | Kommando | Beschreibung | |---|---| | `/coder ` | TASK.md anlegen, Implementierung starten (Coder-Modell) | | `/judge [fokus]` | Code-Review gegen TASK.md + letzten Commit (Judge-Modell) | | `/fix [hinweis]` | Judge-Kritik beheben, committen (Coder-Modell) | | `/shipit` | Finale Freigabeprüfung (Judge-Modell) | | `/optimize [--rounds N] [--with-doku]` | Vollautomatische Schleife bis PASS | | `/patch <änderung>` | Gezielte Minimaländerung ohne vollständigen Review | | `/quick_check [was]` | Schnelle Prüfung der letzten Änderung (OK/PROBLEM) | | `/update_doku` | Code kommentieren + README.md + BEDIENUNGSANLEITUNG.md | | `/new_project ` | Neues Projektverzeichnis + git init anlegen | ## Dateien | Datei | Zweck | |---|---| | `pi-coder-judge-extension.ts` | pi agent Extension (Kommandos, Tools, Hooks) | | `models.json` | Provider- und Modell-Konfiguration für pi agent | | `start-servers.sh` | Beide Server parallel starten (empfohlen) | | `start-coder.sh` | Nur Coder-Container starten (Port 8001) | | `start-judge.sh` | Nur Judge-Container starten (Port 8002) | | `stop-servers.sh` | Beide Container stoppen | | `status.sh` | Laufstatus beider Server anzeigen | | `install.sh` | Extension + models.json nach `~/.pi/agent/` kopieren |