fix(pipeline): Akronym-Fix verschont H1-Titel + verwirft Bindestrich-Kurzformen#295
Merged
Conversation
…Kurzformen Schwartz-Hearst-Scanner akzeptierte Bindestrich-Fragmente wie „KI-" als eigenstaendige Short Form und interpretierte den folgenden Fliesstext als vermeintliche Langform. expand_acronyms() wandte diese Fehlerkennung dann auf den kompletten draft.body inkl. H1-Header an — in Lauf 5 (KI-Thema) waren dadurch 4/5 Notes im H1-Titel entstellt (Issue #279). Fix: - _short_is_valid() lehnt Short Forms mit Bindestrich grundsaetzlich ab. - expand_acronyms() nimmt die erste Zeile aus, wenn sie ein Markdown-H1 (`# ...`) ist — Insertion greift nur noch auf den Body danach. Tests: 5 neue Faelle in test_acronym_fix.py, u.a. Repro des Issue-Beispiels (H1 mit „KI-" bleibt unveraendert) und Regressionsschutz fuer normale Akronyme ohne Bindestrich (TAM, SEM).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
expand_acronyms()wurde auf den komplettendraft.bodyinkl. H1-Header angewandt (Aufrufstellegenerative/orchestrator.py:846). Zusaetzlich liess_short_is_valid()Bindestriche in der Short Form zu (generative/pipeline/acronym_fix.py:48-68), wodurch der Schwartz-Hearst-Scanner Fragmente wie „KI-" faelschlich als eigenstaendiges Akronym erkannte und beliebigen Fliesstext danach als „Langform" interpretierte.Beleg aus Issue #279 (Lauf 5, Dreisiebner-PDF, alle 5 Notes betroffen):
statt des sauberen Titels
# Spannungsfeld KI-Fokus vs. Skepsis.Ursache
_short_is_valid()(Zeile 48-68) akzeptierte Short Forms mit Bindestrich — „KI-" bestand die Validierung.expand_acronyms()(Zeile 180-205 bzw. jetzt 186-228) kannte keinen Header-Schutz und fuegte Auflösungen auch in die erste Zeile (den H1-Titel) ein.Fix
_short_is_valid()lehnt jede Short Form mit-ab (Bindestrich-Fragmente sind per Schwartz-Hearst-Spec keine gueltigen Akronyme, sondern abgeschnittene Wortenden).expand_acronyms()trennt die erste Zeile ab, wenn sie mit#beginnt (Markdown-H1), und wendet die Insertion nur noch auf den Rest an. Der Header wird beim Zusammenbau unveraendert vorangestellt. Notes ohne H1 verhalten sich unveraendert.orchestrator.py:846noetig — der Schutz sitzt zentral inexpand_acronyms().Testnachweis
RED (vor Fix, Tests bereits geschrieben, Fix zurueckgesetzt):
GREEN (nach Fix):
Volle Suite (
generative,lib/decision_engine/tests,shared/tests):ruff check+ruff format --checkauf beiden geaenderten Dateien: beide gruen.Scope
Nur
generative/pipeline/acronym_fix.py(Fix) +generative/tests/test_acronym_fix.py(5 neue Tests). Keine Aenderung anorchestrator.py— Aufrufstelle bleibt unveraendert, da der Schutz zentral inexpand_acronyms()liegt.Fixes #279