feat(cra): CRA/Cyber-Tab in 3 Zielgruppen-Ebenen + Brücke /sdk/cra

Frontend-Reorganisation (kein Datenmodell-Umbau):
- Ebene 1 (Management): CRA-Readiness, offene Risiken (Klartext Kritisch/Hoch/..),
  Handlungsaufwand nach Evidenz-Typ, betroffene Vorschriften, Top-Risiken, Fristen.
- Ebene 2 (Safety × Cyber): "Cyber öffnet CE-Gefährdung erneut" als Hero (USP).
- Ebene 3 (Technik): Befund-Tabelle einklappbar, interne IDs (CRA-AI-x/CWE/NIST/
  OWASP/ISO) nur im Detail, Maßnahmen-Namen statt M-IDs, größere Schrift.
- Brücke: IACE-CRA-Tab ↔ /sdk/cra (Readiness-Check) beidseitig verlinkt.
- CRACyberView in Unterkomponenten gesplittet (LOC < 300).

scripts/qa/poc_cra_article_assign.py: PoC Artikel/Absatz-Zuordnung (Pfad B2b,
zurückgestellt — nicht MVP).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-15 00:48:53 +02:00
parent 6a6c2dbcaa
commit e1f89f6226
8 changed files with 620 additions and 297 deletions
@@ -15,8 +15,16 @@ export default function CRAPage() {
}
return (
<div className="space-y-6">
<div className="flex items-center justify-between gap-3">
<span className="text-sm text-gray-500">
Projektgebundene CE × Cyber-Analyse
</span>
<a href="/sdk/cra" className="text-sm text-purple-600 hover:underline whitespace-nowrap">
Allgemeiner CRA-Readiness-Check
</a>
</div>
{!live && (
<p className="text-[11px] text-amber-600 dark:text-amber-400">
<p className="text-sm text-amber-600 dark:text-amber-400">
Backend nicht erreichbar statisches Szenario angezeigt.
</p>
)}