From ef746ea8f0f946609cb362b874bdcaac599de762 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Tue, 9 Jun 2026 17:01:42 +0200 Subject: [PATCH] fix(use-cases): Verifikations-Methode aus Primaer-Use-Case ableiten (Fallback) Member-canonical_controls tragen meist kein evidence_type/verification_method (wie schon source_citation). primary_verification_method() leitet die Methode deterministisch aus dem Primaer-Use-Case ab (impressum->document, code_security->source_code, ...). Populiert mc_verification beim naechsten Seed. Co-Authored-By: Claude Opus 4.8 --- backend-compliance/compliance/data/use_case_registry.py | 7 +++++++ backend-compliance/scripts/classify_mc_use_cases.py | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend-compliance/compliance/data/use_case_registry.py b/backend-compliance/compliance/data/use_case_registry.py index ca75c706..46bdb0dd 100644 --- a/backend-compliance/compliance/data/use_case_registry.py +++ b/backend-compliance/compliance/data/use_case_registry.py @@ -369,6 +369,13 @@ def enabled_use_cases() -> list[UseCase]: return [uc for uc in _USE_CASES if uc.enabled] +def primary_verification_method(use_case_key: str | None) -> str | None: + """Repraesentative Verifikations-Methode eines Use Case (erste deklarierte) + — deterministischer Fallback, wenn die MC-Member kein evidence_type tragen.""" + uc = REGISTRY.get(use_case_key) if use_case_key else None + return uc.verification_methods[0] if uc and uc.verification_methods else None + + def seed_classify( scopes=(), categories=(), vmethods=(), etypes=(), ) -> tuple[list[str], str | None]: diff --git a/backend-compliance/scripts/classify_mc_use_cases.py b/backend-compliance/scripts/classify_mc_use_cases.py index 6b25e9aa..2ee85690 100644 --- a/backend-compliance/scripts/classify_mc_use_cases.py +++ b/backend-compliance/scripts/classify_mc_use_cases.py @@ -107,7 +107,9 @@ async def run_seed(conn, limit: int = 0) -> dict: mc_uuid, mc_id, uc, is_prim) n_uc += 1 n_mc += 1 - m = verif.get(mc_uuid) + # Verifikations-Methode: Member-evidence oder (Fallback) aus dem + # Primaer-Use-Case ableiten (Member tragen oft kein evidence_type). + m = verif.get(mc_uuid) or reg.primary_verification_method(uc_primary) if m: await conn.execute( """INSERT INTO compliance.mc_verification