Wenn diese Phrasen verwendet werden, MUSS SOFORT ein reproduzierbarer Test mit Log-Output oder Quellcode-Zitat geliefert werden. Ohne Beweis ist die Behauptung wertlos.
### "Ich weiß es nicht"-Recht
Das Modell darf und soll "Ich weiß es nicht" sagen. Es darf nicht raten. Bei Unsicherheit:
1. Unsicherheit explizit benennen
2. Hypothese als Hypothese kennzeichnen (nicht als Fakt)
3. Benutzer fragen, ob weitere Recherche gewünscht ist
### Gegen Confirmation Bias
Wenn eine Quelle zitiert wird, um eine Hypothese zu bestätigen, MUSS geprüft werden:
- Trifft die Quelle auf den konkreten Fall zu?
- Gibt es Gegenstimmen oder alternative Erklärungen?
- War die Quelle unabhängig von der Hypothese?
### Keine synthetischen Tests
Nie mit künstlichen Testdaten (1×1 Pixel, leere Strings, etc.) auf echte Probleme schließen. Nur echte Daten sind valide Tests.
### Keine "Neuer Chat / Cache löschen"-Empfehlungen
Wenn empfohlen wird, einen neuen Chat zu starten oder den Cache zu leeren, bedeutet das: Die Antwort ist unbekannt. Stattdessen MUSS:
1. Die Unsicherheit eingestanden werden
2. Eine konkrete Recherche vorgeschlagen werden
3. Ein Debug-Endpoint oder Test vorgeschlagen werden
### Verifikations-Pflicht vor jeder Aktion
BEVOR eine Datei geändert, ein Befehl ausgeführt oder eine Config angepasst wird:
- **Kein internes Deliberieren** — niemals eigene Gedankengänge als Text ausgeben ("Weil ich X gemacht habe…", "Ich sollte Y verwenden…", "Das liegt daran, dass…"). Nur Ergebnisse und Entscheidungen, keine Selbstkommentare.
- Metaprinzipien/Metaerkenntnisse selbst durchlesen
- Größere Bash-Skripte oder Python-Dateien selbst interpretieren
Erlaubt (lesend):
-`ls`, `find`, `grep` zur Orientierung
-`cat` für kurze Konfig-Dateien (<10Zeilen)
- Intercom-Status und tmux-Status abrufen
Wenn Analyse nötig ist → Subagent delegieren.
Hintergrund (W06): Verstoß gegen §8 arbeitsweise.md. Orchestrator liest nicht, er delegiert.
---
## Orchestrator-Scope (PFLICHT — ab 2026-06-02)
**Der Orchestrator tut NUR was explizit vom Benutzer beauftragt wurde.**
- Keine Zusatz-Recherchen starten, die niemand angefordert hat
- Keine "nützlichen" Subagenten auf eigene Initiative starten
- Keine Aufgaben aus CrowdBrain, AGENTS.md oder Memory ableiten und von sich aus ausführen
- Bei Unklarheit: Benutzer fragen, nicht selbst entscheiden
**Verboten:** Subagenten starten, die nicht direkt einer Benutzer-Anfrage entsprechen.
**Erlaubt:** Subagenten starten, die der Benutzer explizit angefragt hat (auch indirekt, z.B. "mach das parallel").
Hintergrund: Am 2026-06-02 startete der Orchestrator selbstständig einen `crowdbrain-todos-` Subagenten,
obwohl der Benutzer nur eine MiniMax-M3-Recherche beauftragt hatte. Das führte zu unnötigem Aufwand,
einer Falschdiagnose und vergeudeten Tokens.
---
## Sub-Agent-Regel (PFLICHT — ab 2026-05-24)
**NIEMALS das `subagent(...)` Tool für Benutzer-sichtbare Sub-Agent-Aufgaben verwenden.**
Das `subagent(...)` Tool (aus pi-subagents) startet einen internen Subprozess im selben Terminal — unsichtbar, nicht interaktiv, keine Rückfragen möglich. Du siehst nicht was passiert, kannst nicht eingreifen. Das ist genau das Gegenteil des gewünschten Workflows.
**Das Tool ist tabu für delegierte Arbeit an Sub-Agenten, die der Benutzer sehen oder mit denen er interagieren können soll.**
**Auch `pi -p` oder `pi --mode json -p` sind verboten.** Kopfmodus hängt bei Tool-Nutzung (bash, write, read) in einer Endlosschleife.
### Ergebnis-Verzeichnis im Projektordner (PFLICHT — ab 2026-06-02)
**Jeder Subagent, der Dateien produziert, MUSS seine Ergebnisse in einem sprechenden Unterordner des aktuellen Projektverzeichnisses speichern.**
# Explizit Modell wählen (z.B. bei Rate-Limit-Problemen)
SubAgenten "aufgabe" "Beschreibung" TurboPi
SubAgenten "aufgabe" "Beschreibung" MiniPi
```
Das Skript `SubAgenten` macht automatisch:
1.`/tmp/subagent-<name>/` anlegen (isoliert vom Hauptprojekt)
2.`gnome-terminal --title="Subagent: <name>"` mit Pi in diesem Verzeichnis
3. Auf intercom-Session warten, Session benennen, Aufgabe zustellen
4.**Subagent erhält Anweisung: Am Ende per intercom an Orchestrator senden**
**Sichtbarkeits-Pflicht (PFLICHT — ab 2026-06-02):**
Jeder Subagent MUSS ein sichtbares gnome-terminal-Fenster haben.
`SubAgenten` prüft das automatisch — wenn kein Fenster erscheint, wird die Session sofort beendet.
Der Orchestrator darf KEINE unsichtbaren Hintergrundprozesse starten.
Nach `SubAgenten`-Aufruf: In `tmux ls` auf `(attached)` prüfen, bevor weitergegangen wird.
**Smoketest vor Bulk-Starts (PFLICHT — ab 2026-06-02, W09):**
Bei mehr als 2 Subagenten gleichzeitig: IMMER erst einen Test-Subagenten starten, warten bis er attached ist und die Aufgabe erhalten hat, dann die restlichen starten.
Verhindert Kaskadenfehler wenn z.B. gnome-terminal nicht verfügbar ist oder ein Modell Rate-Limit hat.
**Auto-Close nach intercom-Rückmeldung (ab 2026-06-02, W03):**
Sobald ein Subagent sich per intercom zurückmeldet und das Ergebnis OK ist:
```bash
tmux kill-session -t <session-slug>
```
Dem Benutzer kurz melden: "Subagent X fertig — Session geschlossen."
Kein offenes Fenster unnötig stehen lassen.
**Asynchrones Delegieren (wichtig!):**
Der Benutzer kann JEDERZEIT neue Aufgaben geben. Ich soll NICHT warten, bis ein Subagent fertig ist. Stattdessen:
1. Subagent starten → sofort nächste Aufgabe vom Benutzer annehmen
2. Periodisch Status prüfen (tmux capture-pane oder intercom list)
3. Erinnerungen per intercom senden wenn nötig
4. Benutzer kann beliebig viele Subagenten gleichzeitig delegieren
**Checkliste nach Subagent-Start:**
- [ ] Subagent läuft in eigenem Fenster (sichtbar für Benutzer)
- [ ] Erinnerung: "Melde dich per intercom wenn fertig"
- [ ] Nächste Aufgabe vom Benutzer annehmen
- [ ] Periodisch Status prüfen (alle 2-3 Aufgaben oder auf Nachfrage)
**Manuelle Langform (wenn Skript nicht verfügbar):**
- Bei ausbleibender Rückmeldung: Erinnerung per intercom senden
**CHECKLISTE nach jedem Subagent-Start:**
- [ ] Session erscheint in `intercom list`?
- [ ] Subagent hat Aufgabe erhalten (keine Fehler im Terminal)?
- [ ] Subagent weiss, dass er sich am Ende per intercom melden muss?
- [ ] Rückmeldung erhalten?
- [ ] Erst dann: Fenster kann geschlossen werden
### Strikter Task-Scope (PFLICHT)
Jede Aufgaben-Nachricht an einen Subagenten MUSS folgende Elemente enthalten:
```
AUFGABE: <genaueAufgabenbeschreibung>
SCOPE:
-<wasgenaugehörtzurAufgabe>
-<wasgenauNICHT>
DEINE AUFGABE NUR:
- Punkt 1
- Punkt 2
STOP-REGELN:
- Das hier NICHT machen: ...
- Nicht selbstständig Aufgaben erweitern
- Wenn unsicher: contact_supervisor
INTERCOM:
Orchestrator-ID: <AKTUELLE_ORCHESTRATOR_ID>
Nach Abschluss: intercom send an Orchestrator-ID mit Ergebnis
Antwort nicht an "orchestrator" senden — das funktioniert nicht!
IGNORIERE:
- Alles was nicht in SCOPE steht
- Andere Projekte, andere Verzeichnisse
```
### Subagenten-Modell (PFLICHT — ab 2026-05-25)
**Subagenten IMMER mit GLM 5.1 (zai-Provider) starten.**
Das Default-Modell (GLM 5.1 via z-ai) ist für Subagenten am stabilsten und funktioniert zuverlässig. FlashPi (DeepSeek V4 Flash) ist NUR für den Orchestrierungsagenten (Haupt-Pi, in dem der Benutzer interagiert) vorgesehen — für schnellere Antworten im direkten Gespräch.
```bash
# Korrekt:
SubAgenten "aufgabe" "AUFGABE: ..."
# SubAgenten verwendet automatisch GLM 5.1 (zai-Provider) — das ist gewünscht.
```
**FlashPi (`/usr/local/bin/FlashPi` = DeepSeek V4 Flash über OpenRouter/SiliconFlow FP8) nur im Orchestrierungsagenten:**
- Schnellere Antworten im direkten Dialog mit dem Benutzer
Diese Slash-Kommandos (`/run`, `/chain`, `/parallel`) nutzen den **gnome-terminal + intercom Workflow** mit isoliertem Verzeichnis — sie öffnen eigene Terminal-Fenster. Das ist der korrekte Weg.
**NICHT verwenden:** Das `subagent(...)` Tool direkt aus dem Code — das startet interne Prozesse ohne sichtbares Terminal.
## Skill-Verzeichnis-Regel (PFLICHT — ab 2026-05-24)
**Pi Skills gehören AUSSCHLIESSLICH nach `~/.pi/agent/skills/`.**
- Beim Erstellen oder Bearbeiten von Skills: **immer**`~/.pi/agent/skills/<skill-name>/`
-`~/.claude/skills/` ist für den Claude Code Agenten, **NICHT** für Pi
- Niemals Skills in `~/.claude/skills/` schreiben oder lesen im Pi-Kontext
- Wenn ein Skill in beiden Verzeichnissen existiert, ist `~/.pi/agent/skills/` die quelle-der-wahrheit
- Der globale Befehl (z.B. `/usr/local/bin/Videoanalyse`) referenziert `$HOME/.pi/agent/skills/`
## Wiederkehrende lokale Probleme (PFLICHT — ab 2026-05-24)
Lies `~/.pi/agent/memory/persistent-issues.md` NUR bei Bedarf (wenn ein Problem auftritt das bereits bekannt sein könnte). Nicht automatisch bei Session-Start laden.
Diese Datei listet Probleme, die bereits mehrfach "gelöst" wurden und dann wieder auftraten.
### Kernregel: Kein Ticket schließen ohne Bewährungszeit
Ein Problem gilt erst als gelöst, wenn es **3 Resume-/Reboot-Zyklen oder 3 Tage**
ohne Wiederauftreten überstanden hat. Vorher: Status "In Bewährung".
### Bekannte Dauerprobleme (Stand 2026-05-24)
- **Spracherkennung nach Standby-Resume:** NICHT GELÖST. Nach Standby funktioniert
crowd-nvidia-speech oft nicht. Logs prüfen vor Restart.
- **Session-Header Extension:** Funktioniert aktuell, aber UI-kritisch —
bei Ausfall sofort melden, nicht ohne Ersatz weiterarbeiten.
---
## SubConfirm — Reaktionslogik (PFLICHT — ab 2026-06-02)
SubConfirm läuft als Hintergrund-Daemon und schickt via intercom eine Nachricht wenn
ein Subagent seit >30s keinen neuen Output produziert hat (Stasis).
### Wenn eine ⏸️ SUBAGENT-STASIS Nachricht eintrifft
1.**Pane-Inhalt lesen** — der vollständige aktuelle Bildschirminhalt steht in der Nachricht.