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

30 lines
4.1 KiB
Markdown

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