Files
HitonabiandClaude Opus 5 f3139d2b5d
Ampel / ampel (push) Successful in 21s
docs(governor): Plugin abgeschaltet - SAVEPOINT-Hook kollidierte mit OpenChambers Komprimierung
Bei jeder Komprimierung schob der Governor einen zusaetzlichen Auftrag nach
(SAVEPOINT.md schreiben); der Agent verlor dadurch einen Zug an Buchhaltung.
Nachgewiesen im Referenzlauf 22.08. 14:47. Der Abbau war schon am 21.08.
angeordnet - ich hatte das Behalten empfohlen und Zustimmung angenommen,
statt sie einzuholen.

Quelle bleibt im Repo, Wiederherstellung ist ein Copy-Item.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 15:33:14 +02:00

5.3 KiB

OpenCode-Plugin: MC2-Governor

Hier liegt die Quelle. Der Einsatzort ist eine Kopie.

deploy/opencode-plugin/mc2-governor.ts        <- versioniert, hier aendern
  |  kopieren
  v
%USERPROFILE%\.config\opencode\plugin\        <- wird von OpenCode automatisch geladen

Bis zum 21.08.2026 existierte diese Datei nur im Konfigordner des PCs — 11 KB verhaltensbestimmender Code ohne Sicherung und ohne Historie. Deshalb liegt sie jetzt hier.

Ausbringen

Copy-Item "deploy\opencode-plugin\mc2-governor.ts" "$env:USERPROFILE\.config\opencode\plugin\" -Force

Wirkt sofort in der naechsten OpenCode-Sitzung; OpenChamber muss dafuer nicht neu starten, eine neue Sitzung reicht.

Was es tut

  1. Werkzeug-Zaun (tool.execute.before) — blockt Handgriffe, die ein Agent nie unbeaufsichtigt tun darf. Leitplanke gegen Entgleisen, keine Sandbox.
  2. Pruef-Tor + Reparaturschleife (session.idle) — sagt der Agent „fertig", laeuft der Verify-Befehl aus der Datei VERIFY im Repo-Wurzelverzeichnis. ROT geht als naechster Auftrag zurueck an den Agenten, bis zu MC2_LOOP_MAX_ROUNDS mal. ‼️ Schlaeft derzeit: es gibt in keinem Projekt eine VERIFY-Datei. Ohne sie tut diese Funktion nichts — schadet aber auch nicht.
  3. Savepoint statt Zusammenfassen (session.compacted) — beim Komprimieren fallen still die Regeln aus dem Kontext; stattdessen wird SAVEPOINT.md geschrieben.
  4. Stimme — Ereignisse gehen an MC2 /api/voice/announce, Lucy spricht sie.

Der zugehoerige Governor-Proxy auf :8100 (Token-Zaehler mit Hart-Deckel, Juli 2026) existiert nicht mehr — kein Port, kein Ordner, keine Unit. Nachgemessen am 21.08.2026. Dieses Plugin haengt nicht an ihm.

Schalter (Umgebungsvariablen)

Variable Default Wirkung
MC2_BOX_URL http://192.168.178.151:9001 MC2-Basis fuer Meldungen
MC2_FENCE_OFF 1 schaltet den ganzen Zaun ab (alles oder nichts)
MC2_LOOP_AUTOFIX an 0 schaltet die Reparaturschleife ab
MC2_LOOP_MAX_ROUNDS 3 Runden der Reparaturschleife
MC2_LOOP_ANNOUNCE an 0 macht Lucy stumm
MC2_LOOP_SILENT 1 = Meldungen ohne Ton

Aenderung 21.08.2026: git push ist frei

Der Zaun blockte urspruenglich jedes git push („Veroeffentlichen ist Sache des Menschen"). Das passt nicht mehr: die Bahn ist jetzt PC → Gitea → Box, und jede Aenderung soll auch im git landen. Ein Agent, der committen, aber nicht pushen darf, laesst Arbeit auf einem einzelnen Rechner liegen.

Erzwungenes Pushen bleibt verboten--force, --mirror, --delete. Das ueberschreibt fremde Arbeit auf dem Server und ist genau die Klasse Unfall, gegen die der Zaun existiert. --force-with-lease ist bewusst ausgenommen.

Beides gemessen: git push --dry-run origin main laeuft durch, git push --force --dry-run origin main wird mit [MC2-ZAUN] abgewiesen.

‼️ Falle: das bash-Werkzeug ist auf Windows kein bash

Es laeuft in PowerShell. tail, head, grep und Freunde gibt es dort nicht, und Pipes verhalten sich anders. Wer dem Agenten Befehle vorgibt, muss das beruecksichtigen.

‼️ Falle: Gitea-Anmeldung ist flatterhaft

Der Git Credential Manager haelt fuer die DDNS-Domain ein OAuth-Token mit einer Stunde Laufzeit. Laeuft es ab, scheitert der Push des Agenten mit remote: Failed to authenticate user — ein Push aus PowerShell erneuert es, danach geht es wieder. Dauerhafte Loesung waere ein langlebiges Gitea-Token auf die interne Adresse http://192.168.178.153:3000 (die DDNS-Domain ist nachts durch die Zwangstrennung ohnehin zeitweise tot).


‼️ ABGESCHALTET am 22.08.2026

Das Plugin ist nicht mehr aktiv. Es liegt hier als Quelle und im Konfigordner unter plugin-archiv/, aber nicht mehr in ~/.config/opencode/plugin/.

Warum: Beim ersten echten Arbeitslauf fiel auf, dass bei jeder Komprimierung zwei Dinge uebereinander passierten — OpenChamber dampfte den Verlauf ein, und der Governor schob sofort einen zusaetzlichen Auftrag nach („schreib SAVEPOINT.md"). Der Agent verlor dadurch jedes Mal einen Zug an Buchhaltung statt an die Aufgabe. Nachgewiesen: SAVEPOINT.md in mc2-referenz, geschrieben 22.08. 14:47 mitten im Lauf.

Der User hatte den Abbau schon am 21.08. angeordnet („alle Guards, alle Governor, Stewards — brauchen wir nicht mehr"). Ich hatte damals das Behalten empfohlen und seine Antwort zum git push-Riegel als Zustimmung zum Rest gewertet. Das war eine Annahme, keine Entscheidung.

Was damit wegfaellt — bewusst

war jetzt
Sperrliste: rm -rf, sudo, force push, curl|sh, ssh ausser Arcane, npm publish kein Netz mehr — der Agent darf alles, was die Shell hergibt
Pruef-Tor + Reparaturschleife (VERIFY) schlief ohnehin, es gab nirgends eine VERIFY-Datei im PC-Baum
SAVEPOINT beim Komprimieren weg — genau der Grund fuer den Abbau
Meldungen an Lucys Stimme weg

Wiederherstellen (wenn der fehlende Zaun sich raecht):

Copy-Item "deploy\opencode-plugin\mc2-governor.ts" "$env:USERPROFILE\.config\opencode\plugin\"

Plugins werden beim Start des OpenCode-Servers geladen — Aendern wirkt erst nach einem Neustart von OpenChamber, nicht sofort. Deshalb liess sich das Plugin auch mitten in einem laufenden Referenzlauf gefahrlos entfernen.