board-agent's own README documents docs/intent/ and docs/research-intent/ as tracked corpus directories, and docs/review/<slug>.md as the reviewer's persisted report per card - but the pipeline only writes these files to the checkout, it never commits them itself. This had built up a backlog of intent/review docs for cards already marked deployed or archiviert in the live board state, which were sitting uncommitted in the working tree. Adds that backlog as-is: the originating intents, their reviewer reports, the research-intent/research pair for the board UX evaluation, and one standalone process-retrospective report (board-review-pipeline-context- overhead.md, same genre as the two already-tracked audit reports in docs/review/). No code changes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7UVrKsttMP9a6FiGFna9b
3.8 KiB
3.8 KiB
Intent: Shell-Fähigkeit für den Researcher (blunix, Claude-Pfad)
Ziel
Der Researcher (agents/researcher.md) kann bei Board-getriggerten wie
interaktiven Aufträgen laufende Dienste auf blunix einsehen (Logs,
Service-Status, Ressourcennutzung), nicht nur den statischen Repo-Stand
und externe Web-Quellen.
Umfang / Auftrag an den Builder
agents/researcher.md: im Abschnitt "Arbeitsgrenzen und Sicherheit" einen neuen Absatz nach dem Muster des bestehenden Web-Zugriffs-Absatzes ergänzen, der Shell-Ausführung als neue, ausdrücklich begrenzte Fähigkeit einführt: (a) nur auf dem Host blunix, kein SSH zu pinix, tnix oder anderen Hosts, (b) ausschließlich zur Informationsbeschaffung, nie zur Zustandsänderung, (c) die einzige Schreibaktion der Rolle bleibt unverändertdocs/research/<slug>.md.- Im Abschnitt "Rechercheablauf" ergänzen: bei Fragen zum Live-Zustand der Plattform sind Shell-Befehle auf blunix eine dritte zulässige Quelle neben Repository und Web.
agents/claude-settings/researcher.json: derallow-Liste einen generischen Bash-Eintrag hinzufügen (kein Befehls-Allowlisting nach Präfix). Derdeny-Liste gezielt folgende Präfixe hinzufügen, zusätzlich zum bereits vorhandenenBash(ssh *):Bash(sudo *),Bash(rm *),Bash(mv *),Bash(chmod *),Bash(chown *),Bash(kill *),Bash(systemctl start *),Bash(systemctl stop *),Bash(systemctl restart *),Bash(systemctl enable *),Bash(systemctl disable *),Bash(nixos-rebuild switch *),Bash(nixos-rebuild test *),Bash(reboot*),Bash(shutdown *),Bash(agenix *). Bereits vorhandene Einträge (git commit *,git push *,ssh *) bleiben unverändert stehen.
Scope-Einschränkung
Diese Karte aktiviert Shell-Ausführung ausschließlich für den
Claude-Runtime-Pfad. Der Codex-Pfad bleibt unverändert ohne
Shell-Fähigkeit, weil Codex unter --sandbox read-only keine Shell-Befehle
ausführen kann und --sandbox workspace-write laut
board-agent/README.md ("Why read-only, not a scoped writable dir")
nachweislich nicht pfadgenau einschränkt. Codex-Unterstützung ist ein
bewusst ausgeschlossenes Folge-Intent.
Ausgeschlossen
- SSH oder jeder andere Zugriff auf pinix, tnix oder weitere Hosts.
- Aktivierung der Shell-Fähigkeit für den Codex-Pfad.
- Änderungen an
worker.py,trigger.py,board.htmloderboard-agent.nix(folgen in separaten Karten). - Änderungen an anderen Rollen-Dateien oder anderen
agents/claude-settings/*.json. - Eine feste Befehls-Allowlist anstelle der gewählten Deny-Präfix-Liste (siehe Annahmen).
Annahmen
- "Read-only" ist hier eine Konvention über eine Deny-Präfix-Liste, keine
harte OS-Sandbox: ein board-getriggerter Researcher-Lauf läuft als
Linux-User
drone, demselben Nutzer wie die interaktive Admin-Session. Der Researcher hat real dieselben Rechte wiedrone, abzüglich der gesperrten Präfixe. - Dieselbe erweiterte Fähigkeit gilt gleichermaßen für eine interaktive Herdr-Pane-Nutzung des Researchers, da beide Aufrufwege dieselbe Rollen- und Settings-Datei lesen.
Offene Risiken
- Eine Präfix-Denyliste ist nicht vollständig: Kettenoperatoren (
&&,;,|), ungewöhnliche Schreibweisen oder Skripte, die internsudoaufrufen, können sie umgehen. Dieses Risiko bleibt nach dieser Karte bewusst offen.
Tests
agents/claude-settings/researcher.jsonbleibt valides JSON.- Der neue Bash-Allow-Eintrag und alle genannten Deny-Präfixe sind vorhanden, bestehende Einträge unverändert.
Erfolgskriterien
- Ein Researcher-Lauf (Claude-Pfad) kann auf blunix z. B.
journalctlodersystemctl statusausführen. - Derselbe Lauf kann keinen der explizit gesperrten Befehle ausführen.
agents/researcher.mdbenennt die neue Fähigkeit und ihre Grenzen (nur blunix, nur Claude-Pfad, nur Recherche) ausdrücklich.