Seiten der Referenz

CLI-Referenz · Befehle

hook

Die beiden Hooks für Claude Code. workban init trägt sie in .claude/settings.json ein, von Hand ruft sie niemand auf. Beide enden immer mit Exit-Code 0, damit ein Problem mit Workban nie den Agenten anhält: Ist Workban nicht erreichbar oder niemand angemeldet, lassen sie durch.

workban hook gate

Der Riegel: blockiert Dateiänderungen im Repo, solange kein eigener Task auf In Progress steht. Läuft als PreToolUse-Hook, liest das Hook-JSON von stdin und antwortet mit deny oder gar nicht.

workban hook gate

Gezählt wird je Agenten-Sitzung. Wer seinen Task nicht selbst gestartet hat, kommt nicht durch, auch wenn nebenan ein anderer Agent an seinem Ticket arbeitet. Steht der eigene Task auf Testing oder On Hold, nennt die Ablehnung workban task start <nr>.

Was geprüft wird

  • Edit, Write und das PowerShell-Tool unter Windows: das Ziel der Änderung.
  • Bash: der Befehlstext auf Umleitungen in Dateien, sed -i, mv, cp, rm, git apply, Paketinstallationen und Skripte, die Dateien schreiben.
  • Geprüft wird nur Code. Heredoc-Inhalte zählen nur, wenn ein Interpreter sie liest (python, node, bash …). Commit-Nachrichten, Beschreibungen per Heredoc und Zeichenketten in Anführungszeichen (Task-Titel, -m "…") werden vorher entfernt.

Was frei ist

  • Ziele außerhalb des Repos: /tmp, /dev/null, $TMPDIR, ~/…, das Scratchpad. Relative Ziele löst der Riegel gegen das Arbeitsverzeichnis des Befehls und jedes cd darin auf, dazu ${VAR:-fallback}, $(mktemp …) und $(dirname …).
  • Ein Skript (python open(…, "w"), node writeFileSync, Path(…).write_text), wenn jedes Schreibziel als absoluter Pfad außerhalb des Repos erkennbar ist. Relative Pfade oder unbekannte Variablen sperren.
  • Branch-Arbeit wie git merge, rebase oder cherry-pick, sie integriert nur schon committete Änderungen.
  • Ein Bash-Befehl, der vor dem ersten Schreibzugriff selbst workban task start, claim oder create --start aufruft.

Zwischenspeicher

Der Riegel merkt sich „ein Task läuft" 20 Sekunden lang je Repo und Instanz ($TMPDIR/workban/), damit nicht jeder Tool-Aufruf die API fragt. Eine Blockade wird nie gemerkt, und task start, claim, move und done vergessen den Eintrag sofort. So schließt ein Task auf Testing den Riegel ohne Verzögerung.

workban hook session

Läuft als SessionStart-Hook und gibt Projekt, laufende Tasks und Backlog auf stdout aus. Claude Code liest das als Kontext für die Sitzung.

workban hook session

Danach hält der Hook Repo und CLI aktuell (Automatisches Update): Entsprechen Regel, Skill oder Hooks im Repo nicht dem Stand der installierten CLI, schreibt er sie neu und nennt die geänderten Dateien, sofern die CLI mindestens die Version des Servers hat; sonst oder mit auto_update = false steht dort nur ein Hinweis. Kennt die CLI eine neuere Version, startet er workban update im Hintergrund (beim Binary) oder nennt sie (npm). Was davon er getan hat, steht im Kontext der Sitzung. Teile, die das Repo nie hatte (eingerichtet mit --no-agents), zählen nicht als veraltet. Eigene Tasks, die seit Tagen auf On Hold stehen, nennt der Hook in einem eigenen Block. Der kommt, wenn sich dort etwas ändert, sonst höchstens einmal in der Woche.