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/intent/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

85 lines
3.8 KiB
Markdown

# 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ändert `docs/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`: der `allow`-Liste einen
generischen Bash-Eintrag hinzufügen (kein Befehls-Allowlisting nach
Präfix). Der `deny`-Liste gezielt folgende Präfixe hinzufügen, zusätzlich
zum bereits vorhandenen `Bash(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.html` oder
`board-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 wie `drone`, 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 intern `sudo`
aufrufen, können sie umgehen. Dieses Risiko bleibt nach dieser Karte
bewusst offen.
## Tests
- `agents/claude-settings/researcher.json` bleibt 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. `journalctl`
oder `systemctl status` ausführen.
- Derselbe Lauf kann keinen der explizit gesperrten Befehle ausführen.
- `agents/researcher.md` benennt die neue Fähigkeit und ihre Grenzen (nur
blunix, nur Claude-Pfad, nur Recherche) ausdrücklich.