This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/docs/review/research-pipeline-researcher-shell.md
pijukka 05575df408 docs: commit backlog of already-resolved intent/review corpus files
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
2026-09-10 12:06:53 +02:00

4.1 KiB

Geprüfter Commit: bc44c49 ("researcher: Shell-Zugriff auf blunix zur Informationsbeschaffung freigeben (Claude-Pfad)"), Diff-Basis bc44c49~1..bc44c49, kein offener Arbeitsbaum-Diff.

Scope: zwei Dateien — agents/claude-settings/researcher.json (Permissions) und agents/researcher.md (Rollenbeschreibung). Diff gilt nach der Risiko-Skala aus reviewer.md als riskant (mehr als eine Datei geändert, zusätzlich Berechtigungs-/Shell-Bezug), daher volle Prüftiefe.

Tatsächlich ausgeführte Prüfmethoden:

  1. git show bc44c49 — vollständigen Diff gelesen.
  2. Referenzierten Intent docs/intent/research-pipeline-researcher-shell.md vollständig gelesen und Punkt für Punkt gegen den Diff abgeglichen (Scope, Allow-/Deny-Einträge, Formulierung in researcher.md).
  3. agents/researcher.md vollständig gelesen (aktueller Stand nach Commit).
  4. agents/claude-settings/researcher.json vollständig gelesen (aktueller Stand) — valides JSON, Struktur konsistent.
  5. Verpflichtender git grep nach dem geänderten Muster Bash(*) über agents/claude-settings/: nur finance.json und researcher.json verwenden diesen generischen Allow-Eintrag — bestehendes Präzedenzmuster, keine Inkonsistenz gefunden.
  6. git grep nach workspace-write/"Why read-only" in agents/board-agent/README.md (Beleg, den der Intent für den Codex-Ausschluss zitiert): kein Treffer — diese Referenz ist allerdings Teil des Intent-Dokuments, nicht dieses Commits, und damit außerhalb des festen Commit-Scopes; wird als Unsicherheit unten vermerkt, nicht als Befund gegen diesen Diff.

Abgleich Diff vs. Intent-Auftrag:

  • researcher.json: neuer generischer Bash(*)-Allow-Eintrag ergänzt (kein Präfix-Allowlisting) — wie gefordert.
  • Deny-Liste um exakt die im Intent genannten Präfixe ergänzt (rm *, mv *, chmod *, chown *, kill *, systemctl start/stop/restart/enable/disable *, nixos-rebuild switch/test *, reboot*, shutdown *). Bash(sudo *) und Bash(agenix *) waren bereits vor diesem Commit vorhanden (nicht Teil des Diffs) und blieben unverändert — erfüllt die Intent-Vorgabe, dass diese Einträge vorhanden sein müssen, ohne erneut geändert zu werden.
  • Bereits vorhandene Einträge (git commit *, git push *, ssh *) unverändert stehen geblieben — passt zur Vorgabe.
  • researcher.md: neuer Absatz im Abschnitt "Arbeitsgrenzen und Sicherheit" folgt erkennbar dem Muster des bestehenden Web-Zugriffs-Absatzes und benennt die drei geforderten Einschränkungen (a) nur blunix/kein SSH zu anderen Hosts, (b) nur Informationsbeschaffung, (c) einzige Schreibaktion bleibt der Bericht, sowie ausdrücklich "nur Claude-Pfad". Abschnitt "Rechercheablauf" wurde wie gefordert um die dritte Quelle (Shell auf blunix) ergänzt.
  • Kein Scope-Übertritt: keine Änderungen an worker.py, trigger.py, board.html, board-agent.nix, anderen Rollendateien oder anderen agents/claude-settings/*.json — wie im Intent unter "Ausgeschlossen" gefordert.

Befunde: Keine Befunde.

Nicht ausgeführte Prüfungen: Kein Funktionstest eines tatsächlichen Researcher-Laufs mit den neuen Rechten (z. B. ob journalctl/systemctl status auf blunix tatsächlich funktioniert) — außerhalb der read-only-Review-Fähigkeiten und nicht Teil des Commit-Scopes.

Unsicherheiten:

  • Die im Intent zitierte Begründung für den Codex-Ausschluss ("Why read-only, not a scoped writable dir" in agents/board-agent/README.md) war per git grep nicht auffindbar; das betrifft aber ein Intent-Dokument außerhalb dieses Commits, nicht den geprüften Diff selbst, und ist daher kein Blocker für diesen Commit.
  • Die im Intent selbst benannte Restlücke einer Präfix-Denyliste (Kettenoperatoren &&/;/|, ungewöhnliche Schreibweisen, intern sudo aufrufende Skripte) bleibt bewusst offen — bereits im Intent als akzeptiertes Risiko dokumentiert, nicht neu durch diesen Commit eingeführt.

Fazit: Der Commit setzt den Intent-Auftrag research-pipeline-researcher-shell präzise und ohne Scope-Erweiterung um; alle geforderten Deny-Präfixe sind vorhanden, die Rollenbeschreibung ist konsistent ergänzt, keine Nebenwirkungen auf andere Dateien gefunden.

Entscheidung: bereit für Deployment