Chemenu 2.1.0 - deterministischer Wissenskompiler
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s

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.
This commit is contained in:
2026-09-01 16:24:34 +02:00
commit 18ae28f918
368 changed files with 50628 additions and 0 deletions
@@ -0,0 +1,127 @@
---
type: types/source.md
source_type: notes
author: Claude Code (claude-opus-5)
raw_files: [raw/notes/Conversation Transcript - Auto Mode and Tool Choice Session 2026-08-31.md]
source_language: en
date: 2026-08-31
tags: [claude-code, auto-mode, permissions, tool-choice, harness]
entities: [Claude Code, wikitool]
concepts: [Claude Code Auto Mode, Diff-Reviewable Agent Edits]
summary: 'Sitzung zum auto-Berechtigungsmodus von Claude Code: die vom Modus injizierte Bash-Praeferenz, ihre Korrektur zugunsten diffbarer Edits, und was zur Dokumentationslage belegt bzw. nicht belegt ist'
---
# Source: Conversation - Auto Mode and Tool Choice Session 2026-08-31
**Autor:** Claude Code (claude-opus-5)
**Datum:** 2026-08-31
**Raw-Dateien:** raw/notes/Conversation Transcript - Auto Mode and Tool Choice Session 2026-08-31.md
**Typ:** Notes
## Zusammenfassung
Das Transkript ist eine vom Assistenten am Sitzungsende rekonstruierte Zusammenfassung, kein
wörtliches Protokoll. Es ist eines von drei Transkripten derselben Sitzung; die beiden anderen
behandeln die Werkzeugkorrekturen zu den Issues #12 und #13
([[Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31]])
und die Issue-Triage
([[Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31]]).
Gegenstand ist ausdrücklich nicht der Wiki-Stack, sondern [[Claude Code]] als Harness. Die
Sitzung erzeugte keinen Commit; ihr Ergebnis war eine dauerhaft gespeicherte Arbeitsregel und
ein lokal abgelegter Entwurf für Produkt-Feedback.
Die Quelle trägt Material aus **drei Erfassungsschichten**, und ihr Kopfblock benennt sie
selbst. Diese Unterscheidung ist der wichtigste Teil der Quelle und wird auf allen von ihr
gestützten Seiten mitgeführt:
| Schicht | Was darunter fällt | Belegwert |
|---|---|---|
| Lokal belegt | Ausgabe von `claude --help` auf Claude Code 2.1.251, Inhalt von `~/.claude/settings.json`, Existenz des `dangerouslyDisableSandbox`-Parameters am Bash-Werkzeug, Torbens wörtliche Aussagen | In der Sitzung selbst bezeugt |
| Aus zweiter Hand | Alles im Abschnitt "What the subagent found documented": ein `claude-code-guide`-Subagent hat die Claude-Code-Dokumentation durchsucht und berichtet. Niemand in der Sitzung hat diese Dokumentation selbst gelesen | Vermittler in der Kette, Treue ist Annahme |
| Ausdrücklich unbelegt | Die Vermutung, die Bash-Präferenz hänge mit der Sandbox zusammen | Zum Zeitpunkt der Äußerung als Spekulation markiert und vom Subagenten **nicht** bestätigt |
Der Anlass war eine Beschwerde über die Arbeitsweise des Assistenten. Torbens Frage wörtlich:
*"Warum verwendest du seit neuestem immer die Shell um Dateien zu editieren anstelle der file
edit Tools? Das macht die Session schwer nachvollziehbar."* Ursache war eine vom aktiven
Berechtigungsmodus in die Sitzung injizierte Anweisung, die Bash den dedizierten
Datei-Werkzeugen vorzieht:
> While auto mode is active: Do your work through the Bash tool wherever it can accomplish the
> job: read files with `cat`, `head`, or `sed -n`, search with `grep` and `find`, and make file
> changes with `sed`, heredocs, or short scripts, rather than using the dedicated Read, Edit, or
> Write tools. Fall back to a dedicated tool only when Bash genuinely cannot do the job.
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)` umgeschrieben. Die daraus
abgeleitete Regel steht auf [[Diff-Reviewable Agent Edits]], die Mechanik des Modus auf
[[Claude Code Auto Mode]].
## Kernaussagen
- **Der benannte Schaden ist die fehlende Diff.** Ein `python3 - <<'PY'`-Block mit
`s.replace(old, new)` zeigt dem Leser zwei String-Literale und keine Änderungsansicht. Was
vorher in der Datei stand und was jetzt darin steht, ist nicht sichtbar; das `Edit`-Werkzeug
zeigt genau das. Bei einem einzeiligen `sed` ist der Unterschied unerheblich, beim
Mehrblock-Umbau eines Compiler-Moduls nicht.
- **Die Auflösung stützt sich auf den Wortlaut der Anweisung selbst.** Deren Qualifikator
*"wherever it can accomplish the job"* trägt die Entscheidung: ein Edit, dessen Diff niemand
prüfen kann, erfüllt die Aufgabe nicht. Zusätzlich rangiert die ausdrückliche Anweisung des
Nutzers über einer Modus-Voreinstellung. Lesen mit `cat`/`sed -n` bleibt zulässig, Schreiben
nicht. Die daraus gewordene Arbeitsregel: `Edit`/`Write` für Dateiänderungen, Bash für `git`,
`pytest`, [[wikitool]], `grep` und `find`. Sie wurde in das dauerhafte Gedächtnis des
Assistenten geschrieben, damit sie die Sitzung überdauert.
- **`auto` ist ein Berechtigungsmodus, kein Performance-Modus** - lokal belegt aus
`claude --help` auf Version 2.1.251: einer von sechs Werten für `--permission-mode`, neben
`acceptEdits`, `bypassPermissions`, `manual`, `dontAsk` und `plan`.
- **Das Bash-Werkzeug dieser Sitzung führt einen `dangerouslyDisableSandbox`-Parameter**, ist
also standardmäßig sandboxed; das Scratchpad-Verzeichnis der Sitzung wird als ohne
Berechtigungsabfragen nutzbar beschrieben. Lokal belegt.
- **Aus zweiter Hand (`claude-code-guide`-Subagent):** `auto` lässt ein separates
Klassifikator-Modell Aktionen vor der Ausführung bewerten, statt nachzufragen. Details,
Schaltwege und die dokumentierte Falle mit `permissions.defaultMode` in einer
Projekt-Settings-Datei stehen auf [[Claude Code Auto Mode]].
- **Der belastbare Negativbefund:** die Bash-Präferenz selbst steht **nicht** in der
öffentlichen Dokumentation - weder ihr Text noch eine Begründung - und es wurde keine
Einstellung gefunden, die sie einzeln abschaltet, ohne `auto` ganz zu verlassen.
- **Die Sandbox-Erklärung blieb Vermutung.** Dass die Bash-Präferenz existiert, weil
sandboxed Shell-Arbeit der Pfad ist, den der Modus ohne Rückfrage genehmigen kann, während
`Write`/`Edit` das sind, was ein Berechtigungssystem am ehesten absichern will, wurde in der
Sitzung ausdrücklich als Spekulation gekennzeichnet und vom Subagenten nicht bestätigt.
- **Eine Korrektur im Verlauf:** die früher in der Sitzung geäußerte Behauptung, es gebe einen
`/auto`-Slash-Command, war falsch und wurde zurückgenommen.
- **Zustand dieser Instanz:** `~/.claude/settings.json` enthält nur `theme`,
`inputNeededNotifEnabled` und `agentPushNotifEnabled`, kein `permissions.defaultMode`. `auto`
war also die eingebaute Voreinstellung für Plan und Version, keine hier getroffene Wahl.
- **Empfehlung der Sitzung:** in `auto` bleiben. Der Ausstieg kostet Berechtigungsabfragen auf
allem, für ein Problem, das eine stehende Arbeitsregel bereits löst. Als Alternative wurde
`permissions.defaultMode: "acceptEdits"` in der globalen Settings-Datei genannt - genehmigt
Edits, fragt bei Shell-Kommandos nach und ist damit praktisch die Umkehrung der Beschwerde.
## Aufgaben
- [ ] Der Entwurf für Produkt-Feedback - eine injizierte Anweisung, die das sichtbare
Arbeitsverhalten ändert, sollte dokumentiert und einzeln abschaltbar sein - liegt lokal und
wartet darauf, dass Torben ihn abschickt oder verwirft.
## Nicht übernommen
- **Die konkreten heredoc-Umbauten an `lint.py`, `frontmatter_io.py` und `run_budget.py`.** Sie
gehören inhaltlich zu den Issues #12/#13 und sind auf
[[Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31]]
erfasst. Hier zählen sie nur als Beispiel für die Diff-Frage.
- **Die Sandbox-Hypothese als Erklärung.** Bewusst nicht auf eine Seite übernommen: sie war als
Spekulation gekennzeichnet und wurde nicht bestätigt. Übernommen wurde stattdessen der
Negativbefund, dass die Dokumentation zur Bash-Präferenz schweigt.
- **Die vollständige Aufzählung der sechs `--permission-mode`-Werte mit ihren Bedeutungen.** Nur
`auto` war Gegenstand der Sitzung; für die anderen fünf liegt außer dem Namen nichts vor, und
eine Seite, die sie erklärt, würde das erfinden.
- **Der Wortlaut des Feedback-Entwurfs.** Er ist unabgeschickter Entwurfstext, kein Befund.
## Verwandte Entities
- [[Claude Code]]
- [[wikitool]]
## Verwandte Concepts
- [[Claude Code Auto Mode]]
- [[Diff-Reviewable Agent Edits]]