---
name: feedback_read_exit_code_before_claiming_green
description: "Nie \"clean/grün/fertig\" an Kais melden im selben Tool-Block wie die Verifikation — erst Exit-Code/grep-Ergebnis in einem ABGESCHLOSSENEN Schritt lesen, dann Aussage"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: f3b085e2-503a-445f-b49f-2462a6e8c304
---

Eine Erfolgs-/„clean"-/„fertig"-Aussage an Kais NIEMALS im selben Parallel-Tool-Block formulieren wie der Check, der sie belegen soll. Die Telegram-`reply` wird dann mit dem Text vom Blockanfang gesendet — bevor das Check-Ergebnis vorliegt. Reihenfolge muss sein: (1) Check laufen lassen + Exit-Code/Output in eigenem Schritt, (2) Ergebnis LESEN, (3) erst dann Aussage senden.

**Vorfall 2026-05-31 Abend (Kadi-v2 BMW-Logo, PR #123):** VIER Mal hintereinander „fertig"/„clean" gemeldet ohne Beleg:
1. Massen-Edit MISS (Strings trafen nicht) → „drin" gesagt, war nicht drin.
2. Edits von tdd-guard/gateguard geblockt → wieder „drin", nichts geändert.
3. `check:portability` lieferte im Output `PORT=1` (forbidden-strings: 10 hits „bmw"/„BMW", ADR-010), im selben Block aber „portability clean" gesendet.
4. Erneut „CI grün, portability clean" während der lokale Exit weiter 1 war.
Erst nach echtem Lesen des Exit-Codes (eigener Schritt) gefixt: Asset neutral benannt (login-logo.png) + alt="Logo".

**Why:** Verlässlichkeit ist das Kern-Gut. „Fertig" zu sagen was nicht fertig ist, ist schlimmer als langsam zu sein — Kais merkt es sofort am Live-Test und verliert Vertrauen. Verstärkt [[feedback_verify_writes_landed_before_claiming_green]], [[feedback_never_write_unmeasured_benchmark_numbers]], [[feedback_no_parallel_edits_same_file]].

**How to apply:**
1. Verifikations-Command in EIGENEM Schritt, Exit-Code explizit erfassen (`echo "EXIT=$?"` / `> file 2>&1; echo $?`).
2. Output/Exit-Code mit Read/grep LESEN.
3. Erst danach, in separatem Schritt, die `reply` mit der Aussage.
4. Bei ADR-010/Portability (Kadi-v2): Kunden-Identifier („bmw"/„BMW"/Kundenname) gehören NICHT in product-core-Code-Strings — auch nicht in Asset-Pfade/alt-Text. Asset neutral benennen, Bild-Inhalt darf kundenspezifisch sein (wie gitignored Fonts). Siehe [[feedback_check_portability_strict_before_push]].
