fix(ucca): Guidance-Intent für direkt benannte WP/GL-Dokumente #42

Merged
Benjamin_Boenisch merged 1 commits from fix/legal-rag-guidance-intent into main 2026-06-29 18:42:27 +00:00
Owner

Was & Warum

Dieser Fix ist kein allgemeiner Retrieval-Umbau. Er erweitert nur die Guidance-Intent-Erkennung, damit das bereits vorhandene Authority-Reranking bei expliziten WP/GL-Fragen greift.

queryWantsGuidance verfehlte rein dokument-namige Fragen („Welche Kriterien nennt WP248 …", „Was sagt GL 07/2020 …"): guidanceIntentSignals enthielt Herausgeber (edpb/dsk/enisa) und Verben (empfiehlt/laut), aber keine Working-Paper-/Guideline-Identifier. Dadurch feuerte der Authority-Lift nie → binding_law (im homogenen Korpus sogar off-domain MaschinenVO/CRA) verdrängte die supervisory_guidance aus den Top-K.

Änderung

Eine Zeile: guidanceIntentSignals += "wp2", "wp 2", "wp29", "working paper", "gl 0".

Generisch über alle WP-/GL-Dokumente — keine doc-spezifische Regel (Query → Intent, nicht Query → konkretes Dokument). Hybrid/Binding/Embeddings unverändert.

Validierung (deterministisch, echtes LegalRAGClient.SearchCollection, bge-m3 + Qdrant Cosine)

Build-Collection (homogener Korpus, zeigt den Qualitätsgewinn):

  • 10 Hard Cases: 8/10 → 10/10 (WP248 Rang 2/1, WP260 Rang 1; vorher lieferten Guidance-Fragen teils MaschinenVO als Top-1).
  • ComplianceBench-100: 0/100 Norm-Fragen verändert · 18/18 Guidance-Intent-Fragen verbessert (binding/off-domain → korrekte EDPB-Guidance).
  • Hybrid == Dense (der Keyword-RRF war NICHT die Ursache, der nicht-feuernde Lift-Gate war es).

dev bp_compliance_ce (Live-Collection, Regressions-Gate):

  • ComplianceBench-100: 0/100 Norm-Fragen verändert · 9 Guidance-Shifts · die 6 dort beantwortbaren Hard Cases (CRA ×4, MaschinenVO ×2) bleiben Rang 1.
  • WP248/WP260 sind auf dev ce noch nicht vorhanden (SGE-Units nur in der Build-Collection) → der Qualitätsgewinn wird erst nach dem Blue-Green-Switch sichtbar. Inert, nicht schädlich.

Merge-Gate

  • go test ./internal/ucca/ grün (e2e wird ohne RUN_E2E=1 ge-skipped)
  • CB-100 gegen dev ce: 0 Norm-Regressionen
  • 10 Hard Cases gegen Build-Collection: 10/10

Deploy

Merge/Deploy erst nach separatem Go. Empfehlung: mit dem Blue-Green-Switch der KB-2026.1-Build-Collection bündeln — dann arrivieren Fix und die Guidance-Units, die er anhebt, gemeinsam.

🤖 Generated with Claude Code

## Was & Warum **Dieser Fix ist kein allgemeiner Retrieval-Umbau.** Er erweitert nur die Guidance-Intent-Erkennung, damit das bereits vorhandene Authority-Reranking bei expliziten WP/GL-Fragen greift. `queryWantsGuidance` verfehlte rein dokument-namige Fragen („Welche Kriterien nennt **WP248** …", „Was sagt **GL 07/2020** …"): `guidanceIntentSignals` enthielt Herausgeber (`edpb`/`dsk`/`enisa`) und Verben (`empfiehlt`/`laut`), aber **keine** Working-Paper-/Guideline-Identifier. Dadurch feuerte der Authority-Lift nie → `binding_law` (im homogenen Korpus sogar off-domain MaschinenVO/CRA) verdrängte die `supervisory_guidance` aus den Top-K. ## Änderung Eine Zeile: `guidanceIntentSignals += "wp2", "wp 2", "wp29", "working paper", "gl 0"`. Generisch über **alle** WP-/GL-Dokumente — **keine** doc-spezifische Regel (Query → Intent, nicht Query → konkretes Dokument). Hybrid/Binding/Embeddings unverändert. ## Validierung (deterministisch, echtes `LegalRAGClient.SearchCollection`, bge-m3 + Qdrant Cosine) **Build-Collection (homogener Korpus, zeigt den Qualitätsgewinn):** - 10 Hard Cases: **8/10 → 10/10** (WP248 Rang 2/1, WP260 Rang 1; vorher lieferten Guidance-Fragen teils MaschinenVO als Top-1). - ComplianceBench-100: **0/100 Norm-Fragen verändert** · **18/18** Guidance-Intent-Fragen verbessert (binding/off-domain → korrekte EDPB-Guidance). - Hybrid == Dense (der Keyword-RRF war NICHT die Ursache, der nicht-feuernde Lift-Gate war es). **dev `bp_compliance_ce` (Live-Collection, Regressions-Gate):** - ComplianceBench-100: **0/100 Norm-Fragen verändert** · 9 Guidance-Shifts · die 6 dort beantwortbaren Hard Cases (CRA ×4, MaschinenVO ×2) bleiben Rang 1. - WP248/WP260 sind auf dev `ce` **noch nicht vorhanden** (SGE-Units nur in der Build-Collection) → der Qualitätsgewinn wird erst nach dem Blue-Green-Switch sichtbar. **Inert, nicht schädlich.** ## Merge-Gate - [x] `go test ./internal/ucca/` grün (e2e wird ohne `RUN_E2E=1` ge-skipped) - [x] CB-100 gegen dev `ce`: 0 Norm-Regressionen - [x] 10 Hard Cases gegen Build-Collection: 10/10 ## Deploy **Merge/Deploy erst nach separatem Go.** Empfehlung: mit dem Blue-Green-Switch der KB-2026.1-Build-Collection bündeln — dann arrivieren Fix und die Guidance-Units, die er anhebt, gemeinsam. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Benjamin_Boenisch marked the pull request as work in progress 2026-06-29 18:15:33 +00:00
Benjamin_Boenisch added 1 commit 2026-06-29 18:23:09 +00:00
fix(ucca): guidance-intent erkennt direkt benannte Guidance-Dokumente
CI / detect-changes (pull_request) Successful in 7s
CI / branch-name (pull_request) Successful in 1s
CI / guardrail-integrity (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 9s
CI / dep-audit (pull_request) Failing after 56s
CI / sbom-scan (pull_request) Failing after 58s
CI / build-sha-integrity (pull_request) Successful in 7s
CI / validate-canonical-controls (pull_request) Successful in 7s
CI / loc-budget (pull_request) Successful in 21s
CI / go-lint (pull_request) Successful in 48s
CI / python-lint (pull_request) Failing after 17s
CI / nodejs-lint (pull_request) Failing after 1m9s
CI / nodejs-build (pull_request) Successful in 3m2s
CI / test-go (pull_request) Successful in 1m3s
CI / iace-gt-coverage (pull_request) Successful in 18s
CI / test-python-backend (pull_request) Successful in 28s
CI / test-python-document-crawler (pull_request) Successful in 14s
CI / test-python-dsms-gateway (pull_request) Successful in 11s
4818fc51c2
queryWantsGuidance verfehlte rein dokument-namige Fragen ("Welche Kriterien
nennt WP248 ...", "Was sagt GL 07/2020 ..."): guidanceIntentSignals enthielt
zwar Herausgeber (edpb/dsk/enisa) und Verben (empfiehlt/laut), aber keine
Working-Paper-/Guideline-Identifier. Dadurch loeste der Authority-Lift nicht
aus -> binding_law (bzw. im homogenen Korpus sogar off-domain MaschVO/CRA)
verdraengte die Guidance aus den Top-K.

Fix: WP2xx / GL 0x / "working paper" als Guidance-Signal ergaenzt. Generisch
ueber alle WP-/GL-Dokumente, KEINE doc-spezifische Regel (Query->Intent, nicht
Query->konkretes Dokument).

Validierung (homogener Build-Korpus, bge-m3 + Qdrant Cosine):
- 10 Hard Cases: 8/10 -> 10/10 (WP248/WP260 zurueck in Top-8)
- ComplianceBench-100: 0/100 Norm-Fragen veraendert (Freeze-Regression gruen),
  18/18 Guidance-Intent-Fragen verbessert (binding -> korrekte Guidance-Klasse)
- Hybrid == Dense (Keyword-RRF war NICHT die Ursache, der Lift-Gate war es)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Benjamin_Boenisch force-pushed fix/legal-rag-guidance-intent from 31562a31e9 to 4818fc51c2 2026-06-29 18:23:09 +00:00 Compare
Benjamin_Boenisch marked the pull request as ready for review 2026-06-29 18:23:30 +00:00
Benjamin_Boenisch merged commit e5e7b825af into main 2026-06-29 18:42:27 +00:00
Sign in to join this conversation.