feat(ucca): Blue-Green KB-2026.1 Scope-Routing (authoritative slice) #45

Merged
Benjamin_Boenisch merged 1 commits from fix/kb-scope-routing into main 2026-06-30 10:02:00 +00:00
Owner

Was & Warum

Blue-Green „authoritative slice promotion" (Scope-Entscheidung A, User 2026-06-30) — additiv, KEIN CE-Ersatz. Fällt eine Query in den KB-2026.1-Scope (DP · CRA · MaschVO · NIS2 · Data Act · DORA · AI Act + EDPB/DSK-Guidance), wird die hochwertige, neu-kompilierte Slice-Collection kb_2026_1_build abgefragt; sonst bleibt der breite Default bp_compliance_ce.

Damit werden die Guidance-Intent- (PR #42) + Multi-Reg-Fixes (PR #43) für den Slice live — der „Ergebnis der 10 Fragen"-Gewinn (WP248/WP260/CRA/MaschVO, 0070 cross-domain) wird auf sdk-dev sichtbar — während der Broad-Corpus (OWASP/NIST/ENISA/IFRS/ISO) unangetastet bleibt → 0 Regressionen by construction.

Änderung

  • kb_scope_routing.go (neu): inKBScope(query) (in-Slice-Regelwerke via detectRegulations + DP-Guidance-Marker edpb/dsk/wp/gl + DP/Compliance-Topics — bewusst NICHT die generischen Verben sagt/laut, NICHT enisa/bsi/nist/owasp) + resolveCollection(query, requested).
  • legal_rag_client.go: Search/SearchCollectionresolveCollection. Explizit angefragte Collection bleibt unberührt; nur der Default-Request wird geroutet. Config: RAG_KB_SCOPE_ROUTING=false = Rollback ohne Redeploy; RAG_KB_SLICE_COLLECTION überschreibt den Slice-Namen.

Voraussetzung (erledigt)

kb_2026_1_build (3196 Punkte, Cosine/1024) ist additiv auf dev-Qdrant kopiert (CE unberührt).

Validierung

  • Unit: Scoping (DP/CRA/MaschVO→Slice; OWASP/NIST/ISO/IFRS + „sagt NIST"→CE), resolveCollection (explizit honoriert, Flag-off→CE).
  • dev-e2e (geroutetes Search() gegen dev): WP248 → kb_2026_1_build (Treffer; fehlt in dev-ce), MaschVO → Slice, CRA+MaschVO → Slice (beide), NIST → bp_compliance_ce (NIST-Treffer).
  • go build/vet/gofmt/Bestandstests grün.

Rollback

RAG_KB_SCOPE_ROUTING=false → alles fällt auf CE zurück (kein Redeploy nötig). Kein Alias-Flip (additives Routing).

🤖 Generated with Claude Code

## Was & Warum Blue-Green **„authoritative slice promotion"** (Scope-Entscheidung A, User 2026-06-30) — **additiv, KEIN CE-Ersatz.** Fällt eine Query in den KB-2026.1-Scope (DP · CRA · MaschVO · NIS2 · Data Act · DORA · AI Act + EDPB/DSK-Guidance), wird die hochwertige, neu-kompilierte Slice-Collection `kb_2026_1_build` abgefragt; sonst bleibt der breite Default `bp_compliance_ce`. Damit werden die **Guidance-Intent- (PR #42) + Multi-Reg-Fixes (PR #43)** für den Slice **live** — der „Ergebnis der 10 Fragen"-Gewinn (WP248/WP260/CRA/MaschVO, 0070 cross-domain) wird auf sdk-dev sichtbar — während der **Broad-Corpus** (OWASP/NIST/ENISA/IFRS/ISO) unangetastet bleibt → **0 Regressionen by construction**. ## Änderung - `kb_scope_routing.go` (neu): `inKBScope(query)` (in-Slice-Regelwerke via `detectRegulations` + DP-Guidance-Marker edpb/dsk/wp/gl + DP/Compliance-Topics — bewusst NICHT die generischen Verben sagt/laut, NICHT enisa/bsi/nist/owasp) + `resolveCollection(query, requested)`. - `legal_rag_client.go`: `Search`/`SearchCollection` → `resolveCollection`. Explizit angefragte Collection bleibt unberührt; nur der Default-Request wird geroutet. Config: `RAG_KB_SCOPE_ROUTING=false` = Rollback ohne Redeploy; `RAG_KB_SLICE_COLLECTION` überschreibt den Slice-Namen. ## Voraussetzung (erledigt) `kb_2026_1_build` (3196 Punkte, Cosine/1024) ist additiv auf dev-Qdrant kopiert (CE unberührt). ## Validierung - **Unit:** Scoping (DP/CRA/MaschVO→Slice; OWASP/NIST/ISO/IFRS + „sagt NIST"→CE), `resolveCollection` (explizit honoriert, Flag-off→CE). - **dev-e2e** (geroutetes `Search()` gegen dev): WP248 → `kb_2026_1_build` (Treffer; fehlt in dev-ce), MaschVO → Slice, CRA+MaschVO → Slice (beide), NIST → `bp_compliance_ce` (NIST-Treffer). - `go build`/`vet`/`gofmt`/Bestandstests grün. ## Rollback `RAG_KB_SCOPE_ROUTING=false` → alles fällt auf CE zurück (kein Redeploy nötig). Kein Alias-Flip (additives Routing). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Benjamin_Boenisch added 1 commit 2026-06-30 09:50:31 +00:00
feat(ucca): Blue-Green „authoritative slice promotion" — KB-2026.1 Scope-Routing
CI / detect-changes (pull_request) Successful in 12s
CI / branch-name (pull_request) Successful in 1s
CI / guardrail-integrity (pull_request) Successful in 9s
CI / secret-scan (pull_request) Successful in 10s
CI / dep-audit (pull_request) Failing after 56s
CI / sbom-scan (pull_request) Failing after 1m1s
CI / build-sha-integrity (pull_request) Successful in 6s
CI / validate-canonical-controls (pull_request) Successful in 3s
CI / loc-budget (pull_request) Successful in 18s
CI / go-lint (pull_request) Successful in 52s
CI / python-lint (pull_request) Failing after 15s
CI / nodejs-lint (pull_request) Failing after 1m12s
CI / nodejs-build (pull_request) Successful in 3m4s
CI / test-go (pull_request) Successful in 1m2s
CI / iace-gt-coverage (pull_request) Successful in 19s
CI / test-python-backend (pull_request) Successful in 27s
CI / test-python-document-crawler (pull_request) Successful in 19s
CI / test-python-dsms-gateway (pull_request) Successful in 15s
e2c74fd243
Additiv (KEIN CE-Ersatz): faellt eine Query in den KB-2026.1-Scope (DP/CRA/MaschVO/
NIS2/DataAct/DORA/AIAct + EDPB/DSK-Guidance), wird die hochwertige Slice-Collection
`kb_2026_1_build` abgefragt; sonst bleibt der breite Default `bp_compliance_ce`.
Damit werden die Guidance-Intent- + Multi-Reg-Fixes (PR #42/#43) fuer den Slice LIVE,
Broad-Corpus (OWASP/NIST/ENISA/IFRS/ISO) unangetastet -> 0 Regressionen by construction.

- resolveCollection(query, requested): explizit angefragte Collection unveraendert;
  Default-Request -> Slice bei inKBScope, sonst CE. Env RAG_KB_SCOPE_ROUTING=false = Rollback
  ohne Redeploy; RAG_KB_SLICE_COLLECTION ueberschreibt den Slice-Namen.
- inKBScope: detectRegulations (in-Slice-Regelwerke) + DP-Guidance-Marker (edpb/dsk/wp/gl) +
  DP/Compliance-Topics. Bewusst NICHT die generischen Verben aus guidanceIntentSignals
  (sagt/laut) und NICHT enisa/bsi/nist/owasp (die liegen in CE) -> konservativ, in-scope->Slice.

Validierung: Unit (Scoping + resolveCollection); dev-e2e (RUN_E2E, geroutetes Search() gegen
dev): WP248/MaschVO/CRA+MaschVO -> Slice (Treffer da, fehlen in dev-ce); NIST -> CE (NIST-Treffer).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Benjamin_Boenisch merged commit af11d21f6e into main 2026-06-30 10:02:00 +00:00
Sign in to join this conversation.