Files changed: - kb/concepts/Ambient Environment Dependency.md - kb/concepts/Anti-Cramming Heuristic.md - kb/concepts/Audit Trail.md - kb/concepts/BM25.md - kb/concepts/Bulk Operations.md - kb/concepts/CI Integration.md - kb/concepts/CPPC.md - kb/concepts/Checkpoint Audit.md - kb/concepts/Claude Code Auto Mode.md - kb/concepts/Command Round-Trip Integrity.md - kb/concepts/Confidence Scoring.md - kb/concepts/Consolidation Tiers.md - kb/concepts/Content Quality Control.md - kb/concepts/Context Isolation.md - kb/concepts/Contradiction Resolution.md - kb/concepts/Cross-platform Agent Skills.md - kb/concepts/Crystallization.md - kb/concepts/Delete Rather Than Anonymize.md - kb/concepts/Denylist over Allowlist.md - kb/concepts/Detect-Repair Asymmetry.md - kb/concepts/Diff-Reviewable Agent Edits.md - kb/concepts/Dual Licensing by File Plan.md - kb/concepts/Entity Extraction.md - kb/concepts/Episodic Memory.md - kb/concepts/Event-Driven Automation.md - kb/concepts/Filter on Ingest.md - kb/concepts/Forgetting.md - kb/concepts/Graph Traversal.md - kb/concepts/Green Suite Blind Spot.md - kb/concepts/Hooks.md - kb/concepts/Hybrid Search.md - kb/concepts/Implementation Spectrum.md - kb/concepts/Index Scaling.md - kb/concepts/Issue Label Scheme.md - kb/concepts/Iteration and Cost Limits.md - kb/concepts/KB Migration.md - kb/concepts/KB Stack Versioning.md - kb/concepts/Knowledge Compounding.md - kb/concepts/Knowledge Graph.md - kb/concepts/LLM Wiki Pattern.md - kb/concepts/Lint Workflow.md - kb/concepts/MCP-Leseserver.md - kb/concepts/Mass-Update Gate.md - kb/concepts/Memory Lifecycle.md - kb/concepts/Mesh Sync.md - kb/concepts/Modbus.md - kb/concepts/Multi-Agent Collaboration.md - kb/concepts/Naming Convention Conflict.md - kb/concepts/OKF Compatibility.md - kb/concepts/Optional Instance Context File.md - kb/concepts/Personalization Plane.md - kb/concepts/Privacy and Governance.md - kb/concepts/Procedural Memory.md - kb/concepts/Publish-Remote Gate.md - kb/concepts/Quality Scoring.md - kb/concepts/Quality and Self-Correction.md - kb/concepts/RAG.md - kb/concepts/Reciprocal Rank Fusion.md - kb/concepts/SSD TRIM.md - kb/concepts/Scale Ceiling.md - kb/concepts/Self-Healing.md - kb/concepts/Semantic Lint Automation.md - kb/concepts/Semantic Memory.md - kb/concepts/Session Orientation.md - kb/concepts/Shared vs Private.md - kb/concepts/Split Merge Reclassify.md - kb/concepts/Split Threshold.md - kb/concepts/Structural Enforcement over Documented Rule.md - kb/concepts/Stub Threshold.md - kb/concepts/Supersession.md - kb/concepts/Three-Layer Architecture.md - kb/concepts/Token Economics.md - kb/concepts/Typed Relationships.md - kb/concepts/User Management.md - kb/concepts/Vector Search.md - kb/concepts/Work Coordination.md - kb/concepts/Workflow Extraction.md - kb/concepts/Workflow Orchestration.md - kb/concepts/Working Memory.md - kb/concepts/Write-Once Frontmatter Fields.md - kb/log.md - work/link-taxonomy-migration/glossary.md
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
Siehe auch
Fußnoten
Beziehungen
- see-also: Claude Code Auto Mode
- operates-on: Claude Code
- derived-from: Write-Once Frontmatter Fields