...benötigt ein direktes Zitat (max. 20 Wörter) UND eine Zeilennummer (Lxxxx).
- Wenn nichts passt: codes=[].
- Ausgabe NUR als gültiges JSON im Schema:
{"block_id":"...","codes":[{"code":"...","quote":"...","line":"L0001"}]}
"""

# ------------------ Hilfsfunktionen ------------------
def number_lines(text: str) -> str:
    lines = text.splitlines()
    return "\n".join([f"L{str(i+1).zfill(4)}: {l}" fo...