Reviewer-Korrekturen: Cluster-Analyse & Verbesserungsplan

Datum: 2026-04-28 Datengrundlage: 9 korrigierte Lexikon-Artikel in learnings/260428_output/corrected/ (Hämophilie-Themen, alle via Lexikon-Master-Prompt optimiert) Stichprobe: 189 nicht-leere Reviewer-Kommentare (Artikel-Textareas + Bild-ALT-Textareas) Status: Entwurf zur Review


Teil 1 — Identifizierte Cluster

# Cluster Artikel betroffen ~Vorkommen Eingriffspunkt
1 Schreibweise „Faktor VIII" (Leerzeichen, nicht durchgekoppelt: Faktor VIII-Aktivität, Hämophilie A-Patienten, Hepatitis C-Virus) 7/9 ~45 Prompt + Post-Processor
2 „Hämophilie" → „Hämophilie A" präzisieren wenn Artikel klar A-spezifisch 4/9 ~30 Prompt + User-Prompt-Kontext
3 H2/H3 als vollständige W-Fragen (alltagssprachlich, mit Keyword, kontextfrei verständlich) 6/9 ~25 Prompt
4 Vereinfachung: laienverständliche Synonyme statt Fachbegriffe; doppelte Verneinungen vermeiden 6/9 ~15 Prompt
5 Bild-ALT/Description: Aussagesatz statt Bildbeschreibung; keine Präfixe „Infografik:", „Querschnitt von…" 6/9 ~20 Vision-Prompt
6 Stockfotos brauchen keine Caption — nur Infografiken/Schemata 4/9 ~5 Vision-Prompt + Renderer
7 Wichtigstes/FAQ/Fazit redundanzfrei + knapp (FAQ max. 2-3 Sätze, Wichtigstes max. 4 Bullets) 5/9 ~8 Prompt
8 H1-Title knapp (~10 Wörter, Keyword vorne, keine Doppelpunkt-Doppelfrage) 4/9 ~4 Prompt
9 Fachliche Präzisierung: Quellenzitate wörtlich, Absolutaussagen relativieren („in der Regel"), schwere Hämophilie = „zu niedrig oder nicht vorhanden" 5/9 ~10 Prompt + Reviewer-Notiz
10 Doppelbenennung-Reihenfolge: Laienterm vorne, Fachterm in Klammern (Überträgerin (Konduktorin)) 3/9 ~5 Prompt
11 Komposita-Bindestriche: nur wo nötig, sonst zusammenschreiben (Gerinnungsfaktor, nicht Gerinnungs-Faktor) 3/9 ~5 Prompt + Linter

Cluster 1, 2, 3, 5 dominieren — wer diese löst, eliminiert ~70 % aller Reviewer-Eingriffe.

Beispiele pro Cluster (Auswahl)

Cluster 1aptt-wert: „statt: Faktor-VIII-Aktivität / neu: Faktor VIII-Aktivität". konduktorin: „statt: Substitutionstherapie (Faktor-VIII-Ersatz) / neu: Substitutionstherapie (Faktor VIII-Ersatz)".

Cluster 2leichte-und-mittelschwere-haemophilie-a Zeilen 23/25/28/32/…/79: identischer Kommentar „statt: Hämophilie / neu: Hämophilie A" (>20×).

Cluster 3konduktorin Z21: „statt: Wovon hängt die Ausprägung ab? / neu: Wovon hängt ab, wie stark Beschwerden bei Konduktorinnen auftreten?". vererbung Z16: „statt: Wo liegt das Gen für Faktor VIII? / neu: Wie wird Hämophilie A vererbt?"

Cluster 4aptt-wert Z4: „Mir ist das zu wissenschaftlich". stoerung-der-blutgerinnung Z7/28/29: „Gerinnungskaskade" → „Gerinnung". was-ist-das-von-willebrand-syndrom Z13: „Schlüsselaufgaben → wichtige Aufgaben".

Cluster 5leichte-und-mittelschwere-haemophilie-a (Domino-SVG): „statt: Dominoeffekt der Blutgerinnungsfaktoren XII bis I, die zur Bildung von Fibrinfäden an einer Wunde führen / neu: Blutgerinnung: Eine Kettenreaktion wie fallende Dominosteine verschließt die Wunde". vererbung (Chromosomen): „statt: Infografik: 23 Chromosomenpaare des Menschen mit X- und Y-Chromosom als 23. Paar / neu: Der Mann hat 23 Chromosomenpaare; das 23. Paar besteht beim ihm aus den Geschlechtschromosomen X und Y".

Cluster 9aptt-wert Z10: ergänzt Hinweis „Vor allem unter bestimmten Antikörper-Therapien (Emicizumab) kann die aPTT künstlich verkürzt erscheinen…". ueber-haemophilie-a Z4: „zu niedrig" → „zu niedrig oder gar nicht vorhanden". vererbung Z56: „heute gut kontrollierbar" → „heute in der Regel gut kontrollierbar".

Cluster 10vererbung Z25: „statt: Was ist eine Konduktorin (Überträgerin)? / neu: Was ist eine Überträgerin (Konduktorin)?".


Teil 2 — Verbesserungsplan

Strategie

Nicht alle Cluster gehören in den Prompt. Manche Regeln sind mechanisch (Cluster 1, 11) → besser als deterministischer Post-Processor, weil Claude bei langen Texten unweigerlich inkonsistent wird. Andere sind semantisch (Cluster 3, 4, 5, 9) → gehören in den Prompt. Aufteilung in vier Stoßrichtungen (A–D) plus Rollout (E) und Erfolgsmessung (F).


A) Prompt-Änderungen (semantisch, Claude muss verstehen)

Wo: prompts/ACTA_Lexikon_Master-Prompt_v1S2.md (alle 9 Korrekturen sind Lexikon-Artikel) — später spiegeln in TE/UGC-Prompts.

Schritt Cluster Konkrete Ergänzung im Prompt
A1 3 Neuer Abschnitt „H2/H3-Regeln": Jede Überschrift ist eine vollständige W-Frage mit Hauptkeyword, alltagssprachlich, ohne Kontext-Abhängigkeit von vorheriger Überschrift verständlich. 2 Negativ-/Positiv-Beispiele.
A2 8 „H1-Regel" verschärfen: max. ~10 Wörter, Hauptkeyword am Anfang, keine Doppelpunkt-Konstruktion mit zwei Teilfragen. Beispiel-Paar (gut/schlecht).
A3 4 „Sprachebene"-Block: laienverständliche Synonyme bevorzugen, Fachterm in Klammern. Verbot doppelter Verneinungen. Maxime: „Eine Patientin ohne medizinisches Vorwissen muss jeden Satz beim ersten Lesen verstehen."
A4 7 Längen-Caps: FAQ-Antwort max. 3 Sätze; „Wichtigstes in Kürze" max. 4 Bullets à 1 Satz. Redundanz-Verbot: keine Sätze, die wortgleich/fast wortgleich im Body stehen. Bei Originaltext < 400 Wörter: FAQ optional weglassen.
A5 9 „Fachliche Sicherheitsregeln": (a) bei schwerer Hämophilie A immer „zu niedrig oder gar nicht vorhanden"; (b) Therapie-Absolutaussagen mit „in der Regel"/„meist" relativieren; (c) Quellen/Leitlinien-Bezeichnungen wörtlich übernehmen, nicht aus zwei Werken zusammenziehen; (d) bei aPTT Antikörper-Therapien (Emicizumab) als Einschränkung erwähnen.
A6 10 Doppelbenennung-Reihenfolge: bei (Fachterm/Laienterm) immer Laienterm zuerst. Beispiel: „Überträgerin (Konduktorin)".
A7 2 Krankheitsname-Konsistenz: Wenn Excel-Suchintention/URL/H1 eindeutig „A" enthalten, im gesamten Output Hämophilie A durchgängig verwenden. Nur bei expliziten Vergleichsabschnitten (A vs. B) bleibt „Hämophilie" alleinstehend zulässig.

Risiko: Prompt wird länger → Latenz/Cost steigen marginal, mehr Anweisungen können andere verwässern. Mitigation: Existierende redundante Passagen einkürzen; neue Regeln in eigenen Block „Stilistische Pflichtregeln" gruppieren.


B) Vision-Prompt-Änderungen

Wo: analyze_images.py — System-/User-Prompt der Vision-Anfrage.

Schritt Cluster Änderung
B1 5 suggested_alt und description als Aussagesatz (Subjekt-Prädikat-Objekt) mit Hauptkeyword. Verbot der Präfixe „Infografik:", „Diagramm:", „Querschnitt von…", „Illustration eines…". 3 Beispiel-Paare im Prompt.
B2 6 Caption-Heuristik: SVG → Caption Pflicht; Foto mit Personen → leere description (= keine Caption). Vision-API soll das selbst klassifizieren und bei Stockfotos description: "" zurückgeben. Renderer (render_html.build_html) wrappt nur dann in <figure><figcaption>, wenn description nicht leer.

C) Mechanische Post-Processor (deterministisch, nicht durch Claude lösbar)

Wo: Neue Funktion in text_utils.py, aufgerufen aus optimize_page_{api,cli}.py direkt nach JSON-Parse (analog zur bestehenden Umlaut-Normalisierung).

Schritt Cluster Änderung
C1 1 normalize_factor_notation(): Regex-Ersetzungen über alle Stringfelder außer URL-Feldern:
Faktor[\s\-]+VIII[\s\-]+(\w)Faktor VIII-$1
Hämophilie[\s\-]+([AB])[\s\-]+(\w)Hämophilie $1-$2
Hepatitis[\s\-]+([ABC])[\s\-]+(\w)Hepatitis $1-$2
• Standalone: Faktor-VIIIFaktor VIII, Hämophilie-AHämophilie A
C2 11 normalize_compounds(): Liste bekannter falscher Bindestrich-Komposita (Gerinnungs-FaktorGerinnungsfaktor etc.). Konservativ: Whitelist statt Heuristik.
C3 1+11 Lint-Report im Self-Check: Treffer der Regeln in _meta.lint_fixes: [...] protokollieren, damit man sieht wie oft Claude die Regel verletzt → Datengrundlage für Prompt-Iteration.

Risiko C1: Regex könnte legitime Schreibweisen kaputt machen (z. B. in Quellenzitaten/URLs). Mitigation: Skip-Liste analog _UMLAUT_EXCEPTIONS; URL/Identifier-Felder ausschließen; vor Production an allen 9 vorhandenen Optimized-JSONs trockenlaufen lassen und Diff prüfen.


D) User-Prompt-Kontextanreicherung (Cluster 2)

Wo: prompt_builder.py.

D1: Aus Excel-Spalte (Suchintention/Title/Primary KW) die Phrase „Hämophilie A" / „Hämophilie B" / „von-Willebrand-Syndrom" detektieren und in den User-Prompt einen expliziten Hinweis injizieren: „Krankheitsname für diesen Artikel ist durchgängig Hämophilie A. Verwende diesen Begriff überall, wo der Originaltext nur 'Hämophilie' schreibt."


E) Reihenfolge / Rollout

  1. Phase 1 (mechanisch, geringes Risiko): C1 + C2 + C3 implementieren, an allen 9 Reviews trockenlaufen, Diff inspizieren. → eliminiert ~50 Korrekturen.
  2. Phase 2 (Vision): B1 + B2 in analyze_images.py. Re-run images-Phase auf 2-3 Test-UIDs, Vision-Output mit Reviewer-Korrekturen vergleichen. → ~25 Korrekturen weniger.
  3. Phase 3 (Prompt): A1–A7 in Lexikon-Prompt (kleinster, am stärksten betroffen). Re-run optimize-Phase auf den 9 UIDs, neuen Korrektur-Aufwand mit altem vergleichen.
  4. Phase 4: Erkenntnisse aus Phase 3 in TE/UGC-Prompts spiegeln (mit Vorsicht — andere Zielgruppen).
  5. Phase 5 (D): Krankheitsname-Injection im prompt_builder.

F) Erfolgsmessung


Offene Fragen für die Review-Runde

  1. Scope: Nur Lexikon-Prompt anpassen, oder direkt alle vier Master-Prompts? Vorschlag: mit Lexikon starten (alle 9 Beispiele sind Lexikon).
  2. Regex-Risiko (C1): Soll der Post-Processor in einem --dry-run-Modus laufen mit Lint-Report only, bevor er produktiv ersetzt? Sicherer, aber zwei Phasen.
  3. Cluster 9 (fachliche Präzisierung): Soll das in den Prompt, oder ist das eher ein Reviewer-Briefing + Beibehaltung des Mensch-Gates? Manche Punkte (Quellenzitate wörtlich) kann Claude nicht zuverlässig liefern, weil ihm die Originalquelle fehlt.
  4. Längen-Caps (A4): Existieren feste Vorgaben aus dem GAIO-Stilguide, oder definieren wir die hier neu?


Zusatz — Übergangsregeln im UGC-Zusammenlegungsprompt (umgesetzt 2026-04-28)

Auslöser: Beobachtung aus UID 1182 (Hepatitis-Erfahrungsbericht Meikel, Teil 2). Nach der Zusammenlegung las sich der Output als „jüngerer Artikel mit angeklebter Vorgeschichte" — H1, Lede und der Übergang Tabelle → Haupttext brachen auf.

Fünf Änderungen, ausschließlich in prompts/ACTA_UGC_Master-Prompt_Zusammenlegung_Eltern-Blogger_v4S2.md:

  1. H1 deckt beide Segmente ab (Regel 4 + 5): Bei Zusammenlegung darf eine neue gemeinsame H1 formuliert werden, wenn seitentitel_spalte_I nur einen Teilaspekt nennt. Excel-Wert ist Vorschlag, kein Zwang. origin="changed" oder "new".
  2. Lede frei umformulierbar (Regel 6): Im Merge-Modus darf der Lede frei angepasst oder neu geschrieben werden, sodass er zum Gesamtartikel passt. Stimme der Autor:in bleibt. Bleibt fett. origin="changed"/"new".
  3. Pflicht-Vorspann vor der Tabelle (Z-2): 1–2 Sätze, nicht fett, perspektivtreu, eigener paragraph mit origin="new", kap_ref="Tabellen-Vorspann".
  4. Tabellen-Spalten-Header dynamisch (Z-2): Moment / Was ich erlebt habe bei Ich-Form, Moment / Was wir erlebt haben bei Wir-Eltern. Erkennung über dominantes Subjekt im Lede + ersten Original-Absätzen des Haupttext-Segments.
  5. Pflicht-Nachspann nach der Tabelle (Z-2): 1–2 Sätze, nicht fett, eigener paragraph mit origin="new", kap_ref="Tabellen-Nachspann", vor dem ersten kept-Absatz und vor etwaigen neuen H3.

Reihenfolge in sections[1].h3_blocks[0].paragraphs: Vorspann → Tabelle → Nachspann → erster kept-Absatz.

Scope: Nur UGC-Zusammenlegung. TE-Zusammenlegung bleibt unberührt (funktioniert ohne Rückblick-Tabelle anders).

Auswirkungen außerhalb des Prompts: Z-7 ergänzt — Vorspann/Nachspann zählen nicht als Original-Absätze, fließen aber ins Budget (neue_elemente_woerter, ~30 Wörter Zusatz). Renderer-Logik (render_html.py) reicht unverändert, da origin-basiert.

Trockentest-Empfehlung: UID 1182 (Hepatitis Meikel, Ich-Form) und UID 1171 (Notfallmedikament Marcel, Wir-Eltern) re-run optimize-Phase und vergleichen.


Anhang — Einzelfälle (kein Cluster, aber notiert)