Skip to content

fix: Seiten-Marker-Reinjektion in concept_text_window (#4 Anker-Clustering)#67

Merged
TillQuandel merged 1 commit into
masterfrom
fix/anchor-page-marker-reinjection
Jun 24, 2026
Merged

fix: Seiten-Marker-Reinjektion in concept_text_window (#4 Anker-Clustering)#67
TillQuandel merged 1 commit into
masterfrom
fix/anchor-page-marker-reinjection

Conversation

@TillQuandel

Copy link
Copy Markdown
Owner

Problem (#4 Anker-Clustering)

concept_text_window wählt die thematisch dichtesten Text-Fenster aus dem ganzen Dokument und klebt sie mit \n\n[...]\n\n zusammen — ohne pro Snippet den gültigen [S. N]-Marker neu voranzustellen. Beginnt ein Fenster mitten auf einer Seite, fehlt ihm der Marker; steht ein früheres Fenster mit [S. 3] davor im Blob, wird S.3 zum „letzten Marker vor der Fundstelle". Die Downstream-Seitenableitung (Extractor-LLM, Verifier verifier.py:151-161, Renderer) erbt dann die Seite eines fremden Snippets → falsche Fußnoten-Seite.

Real reproduziert (Merrill-Lauf 2026-06-24): Application-Detail (echt S.7) und Integration-Detail (echt S.8) bekamen pauschal „S.3" in allen Fußnoten — bei korrekten wörtlichen Zitaten (der Inhalt war im Window, nur der Marker fehlte).

Fix (Scope: nur die Wurzel)

In concept_text_window die Seite pro Wort-Index aus line-isolierten Pipeline-Markern (\n\n[S. N]\n\n) tracken und jedem Snippet ohne eigenen führenden Marker den korrekten [S. N] voranstellen. Inline-Quellenverweise (vgl. [S. 12] im Fließtext) zählen bewusst nicht als Seitenanfang. Ein Eingriff heilt die ganze Kette (Extractor, Verifier, Renderer lesen denselben Text).

Verifikation

  • TDD: 2 neue Tests (Marker-Reinjektion + Inline-Ref-Schutz), beide als diskriminierend belegt (RED vor Fix gesehen).
  • Kanonische generative-Suite grün (629 passed).
  • Cross-Model-Review (Codex): kein HIGH; MED Inline-Ref + LOW Budget adressiert.
  • End-to-End-Beleg (neuer Lauf auf Hrastinski 2008): alle 8 Quote-Seitenanker gegen das PDF verifiziert korrekt, Seiten über alle 5 PDF-Seiten verteilt — kein Clustering mehr.

🤖 Generated with Claude Code

…ering)

concept_text_window klebte die Top-Score-Fenster aus dem ganzen Dokument
zusammen, ohne pro Snippet den gueltigen [S. N]-Marker neu voranzustellen.
Ein Fenster, das mitten auf einer Seite begann, trug keinen Marker -> die
Downstream-Seitenableitung ("letzter [S. N]-Marker vor der Fundstelle":
Extractor-LLM, Verifier, Renderer) erbte die Seite eines frueheren Snippets.

Real reproduziert (Merrill 2026-06-24): Integration-Detail (echt S.8) und
Application-Detail (echt S.7) bekamen pauschal "S.3" in allen Fussnoten.

Fix: Seite pro Wort-Index aus line-isolierten Pipeline-Markern tracken,
jedem markerlosen Snippet seinen korrekten [S. N] voranstellen. Inline-
Quellenverweise ("vgl. [S. 12]") zaehlen nicht als Seitenanfang.

TDD: 2 neue Tests (Marker-Reinjektion + Inline-Ref-Schutz).
generative-Suite 629 passed. Codex-reviewt (kein HIGH; MED Inline-Ref +
LOW Budget adressiert).
@TillQuandel TillQuandel merged commit caa3e4b into master Jun 24, 2026
2 checks passed
@TillQuandel TillQuandel deleted the fix/anchor-page-marker-reinjection branch June 24, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants