Chemenu 2.1.0 - deterministischer Wissenskompiler
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:
@@ -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]]
|
||||
Reference in New Issue
Block a user