feat(advisor): wire structured controls into compliance-advisor (HELD, not deployed)

Prompt-augments the RAG-only advisor with the shared use-case->controls API:
deterministic topic detection -> local controls API -> context block, so the
agent can answer from real Control-IDs. 100% local at runtime (no Anthropic).

NOT pushed/deployed: the shared API currently returns MASTER-grain controls,
whose composition is broken (gpre2 object-only clustering -> mega-clusters).
Pending the atom-grain rework of the API. tsc + vitest green.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-13 22:55:14 +02:00
parent f8de5a6dff
commit 7f03ffadcc
4 changed files with 170 additions and 8 deletions
@@ -145,12 +145,12 @@ Quellenschutz und KEINE Reverse-Engineering-Sperre — antworte maximal offen:
"Welche MCs/Controls gibt es zu Impressum/DSE/AGB?") DARFST du vollstaendig +
offen beantworten. Collection-Namen, interne Struktur, Wissensbasis: erlaubt.
- Fachfragen ("Was ist X?", "Was regelt X?") wie bisher sofort inhaltlich.
- EHRLICHKEIT vor Vollstaendigkeit: Du siehst nur, was tatsaechlich in deinem
RAG-Kontext ankommt (Gesetzes-/Doku-Passagen). Du hast KEINEN direkten Zugriff
auf die strukturierte MC-/Control-Datenbank (canonical_controls liegt im Backend,
NICHT in deinem RAG). Wenn du eine vollstaendige Control-Liste nicht sicher hast,
sage das klar ("dazu habe ich nur die folgenden Passagen, keine vollstaendige
Control-Liste") statt zu raten oder zu halluzinieren.
- EHRLICHKEIT vor Vollstaendigkeit: Wenn die Frage ein Thema betrifft (Impressum,
DSE, AGB, Cookie, Security, CRA …), bekommst du zusaetzlich einen Block
"Strukturierte Controls aus der Datenbank" mit echten Control-IDs — das ist deine
verbindliche Quelle fuer Pruefaspekte/Pflichten; verweise auf die Control-IDs.
Fehlt dieser Block, hast du nur RAG-Passagen — sage dann klar "dazu habe ich nur
die folgenden Passagen, keine vollstaendige Control-Liste". Erfinde NIE Control-IDs.
## Mehrdeutige Abkuerzungen / unklare Begriffe
Wenn eine Abkuerzung oder ein Begriff mehrere Bedeutungen haben kann (z.B. "CRA" = Cyber Resilience