Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
4.0 KiB
type, concept_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
| type | concept_type | tags | created | modified | related | sources | confidence | confidence_base | provenance | summary | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| types/concept.md | decision |
|
2026-08-31 | 2026-08-31 |
|
|
0.70 | 0.70 | sourced | Entscheidung, Dateiaenderungen ueber Edit/Write statt ueber Shell-Heredocs zu fahren, weil nur das erste eine pruefbare Diff hinterlaesst |
Diff-Reviewable Agent Edits
Typ: Decision
Definition
Ein Agent ändert Dateien über die dedizierten Werkzeuge Edit und Write, nicht über
Shell-Konstrukte wie sed -i, Heredocs oder eingebettete Skripte. Die Shell bleibt für alles
zuständig, was keine Datei umschreibt: git, pytest, wikitool, grep, find, und Lesen
mit cat oder sed -n.
Kontext
Der aktive Berechtigungsmodus Claude Code Auto Mode injiziert eine Anweisung in die Sitzung,
die genau das Gegenteil verlangt: Arbeit möglichst über das Bash-Werkzeug erledigen und auf ein
dediziertes Werkzeug erst zurückfallen, wenn Bash die Aufgabe nicht bewältigt. Der Assistent war
ihr gefolgt und hatte lint.py, frontmatter_io.py und run_budget.py über heredoc'te
python3 - <<'PY'-Blöcke mit s.replace(old, new)
umgeschrieben1 . Torben hat das
abgestellt:
"Warum verwendest du seit neuestem immer die Shell um Dateien zu editieren anstelle der file
edit Tools? Das macht die Session schwer nachvollziehbar."
Entscheidung
Edit/Write für Dateiänderungen, Bash für Prozesse. Die Regel wurde in das dauerhafte
Gedächtnis des Assistenten geschrieben, damit sie die Sitzung
überdauert1 .
Zwei Gründe tragen sie, und der zweite ist der belastbarere:
- Die ausdrückliche Anweisung des Nutzers rangiert über einer Modus-Voreinstellung.
- Die Anweisung des Modus schlägt sich selbst. Ihr Qualifikator lautet "wherever it can
accomplish the job". Ein
s.replace(old, new)in einem Heredoc zeigt dem Leser zwei String-Literale und keine Änderungsansicht: was vorher in der Datei stand und was jetzt darin steht, ist nicht sichtbar. Ein Edit, dessen Diff niemand prüfen kann, erfüllt die Aufgabe nicht - also greift der Vorrang der Shell an dieser Stelle gar nicht erst.
Konsequenzen
- Die Grenze verläuft zwischen Lesen und Schreiben, nicht zwischen Shell und Werkzeug.
cat,head,sed -n,grepundfindbleiben unverändert zulässig. - Sie verläuft nicht bei jeder Änderung gleich scharf: bei einem einzeiligen
sedist der Unterschied unerheblich, beim Mehrblock-Umbau eines Compiler-Moduls nicht. Die Regel wird trotzdem einheitlich angewandt, weil die Einschätzung "das ist klein genug" genau die ist, die im Zweifelsfall zugunsten der Bequemlichkeit ausfällt. - Der Modus lässt sich nicht so einstellen, dass nur diese Präferenz entfällt; es wurde keine solche Einstellung gefunden1 . Die Regel muss also als Verhaltensregel getragen werden, nicht als Konfiguration.
- In diesem Repository fällt die Entscheidung mit den Interessen des Stacks zusammen: was
wikitoolerzeugt, wird ohnehin nie von Hand geschrieben, und was von Hand geschrieben wird, soll im Publish-Diff nachlesbar sein.
Status
Angenommen (2026-08-31), auf Anweisung des Nutzers, für Sitzungen an diesem Repository.
Verwandte Concepts
Beziehungen
- korrigiert: Claude Code Auto Mode
- gilt für: Claude Code
- war betroffen von: Write-Once Frontmatter Fields
Siehe auch
- Claude Code Auto Mode
- Claude Code
- Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31
- Write-Once Frontmatter Fields