---
name: feedback_no_parallel_edits_same_file
description: "Mehrere Edits an derselben Datei + commit/push NICHT in einem Parallel-Tool-Block — sequenziell editieren, zwischen Schritten verifizieren"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: f3b085e2-503a-445f-b49f-2462a6e8c304
---

Niemals mehrere `Edit`-Calls auf dieselbe Datei zusammen mit `git commit`/`push` in EINEM Parallel-Tool-Block abfeuern. Edits in einem Block sehen den Dateizustand vom Blockanfang — spätere Edits matchen dann nicht (String not found), die Datei landet halb-migriert (z.B. gemischt `current`/`currentRef`), typecheck/eslint brechen, und ein bereits im selben Block laufendes commit/push schiebt den kaputten Stand raus.

**Vorfall 2026-05-31 (Kadi-v2 note-canvas touch-fix):** Großer Parallel-Block mit 4 Edits + Tests + commit + push + PR-Create + CI-Poll. Zwei Edits trafen nicht (stale String), Datei kaputt (`Cannot find name 'current'` + ESLint „Cannot access refs during render"), Branch mit kaputtem File gepusht. Reparatur kostete einen kompletten Zyklus: hard-reset (vom Safety-Hook geblockt) → ff-merge auf origin → frischen Branch → 4 Edits SEQUENZIELL → grün. Zusätzlich riss `&&`-Verkettung in Bash (bricht bei erstem non-zero) die Diagnose-Ausgabe auseinander.

**Why:** Halb-migrierte Dateien + unverifizierter Push verletzen [[feedback_verify_writes_landed_before_claiming_green]] und kosten einen ganzen Reparatur-Zyklus. Müdigkeit/späte Stunde ist KEIN Faktor ([[feedback_no_fatigue_projection]]) — das Qualitäts-Gate ist die Methodik, nicht die Uhrzeit.

**How to apply:**
1. Mehrfach-Änderung einer Datei: Edits SEQUENZIELL (einer pro Tool-Turn) ODER ganze Datei via `Write` neu schreiben.
2. NACH allen Edits in einem SEPARATEN Schritt grep/typecheck verifizieren.
3. Erst DANN, wieder separat, commit. Push als eigener Schritt.
4. Niemals commit/push in denselben Block wie die Edits.
5. Bash-Diagnose: keine `&&`-Ketten für unabhängige Checks (bricht bei erstem Fehler) — getrennte Calls oder `;`.
6. Force-Push nur eigener Feature-Branch, nur `--force-with-lease`.
