fix(agents): Impressum+Cookie delegieren MC-Laden ans Main Tool — Scope-Filter + Maßnahmen
CI / detect-changes (push) Successful in 8s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Failing after 4s
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 30s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / validate-canonical-controls (push) Successful in 11s
CI / loc-budget (push) Successful in 14s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Has been skipped
CI / test-go (push) Has been skipped
CI / detect-changes (push) Successful in 8s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Failing after 4s
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 30s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / validate-canonical-controls (push) Successful in 11s
CI / loc-budget (push) Successful in 14s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Has been skipped
CI / test-go (push) Has been skipped
Regression: Der v3-Agent-Pfad baute eine parallele MC-Pipeline (_load_impressum_mcs / _load_cookie_mcs, Roh-SELECT) und lief damit an allen Schutzmechanismen der Engine vorbei → GOV/Branchen-MCs als HIGH bei OEM/Zulieferer, fremde MCs (Bestellbestätigung), und action=check_question (Fragen statt Maßnahmen im Frontend). - Agent delegiert MC-Laden an rag_document_checker._load_controls (P72-Scope, check_type='text', fits_doc_type/scope_requires). - Subtraktives Sektor-Gate (SECTOR_PREFIXES) + Themen-Gate am Agent-Rand. - action = konkrete Maßnahme (Imperativ) statt check_question. - rag_document_checker: from __future__ import annotations (3.9-Import). - mcs: Name-Pattern erkennt "Aktiengesellschaft" (OEM-Impressums). - Tote GT-/Semantic-/Routes-Tests wiederbelebt (v3-Mismatch + agent.cascade-Patch-Target). Alle 72 Specialist-Tests grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -207,3 +207,47 @@ HECTRONIC = ImpressumGT(
|
||||
|
||||
|
||||
ALL_GROUND_TRUTH = (ETO, SAFETYKON, BMW, ELLI, HECTRONIC)
|
||||
|
||||
|
||||
def make_mc(
|
||||
control_id: str,
|
||||
pass_criteria: list[str],
|
||||
severity: str = "HIGH",
|
||||
title: str | None = None,
|
||||
regulation: str = "TMG",
|
||||
article: str = "§ 5",
|
||||
check_question: str | None = None,
|
||||
) -> dict:
|
||||
"""Baut ein doc_check_controls-MC-Dict wie `_load_controls` es liefert —
|
||||
fuer Tests die `_load_controls` mocken (Agent delegiert ans Main Tool)."""
|
||||
return {
|
||||
"id": control_id,
|
||||
"control_id": control_id,
|
||||
"title": title or control_id,
|
||||
"regulation": regulation,
|
||||
"article": article,
|
||||
"severity": severity,
|
||||
"check_question": check_question or f"Ist {control_id} vorhanden?",
|
||||
"pass_criteria": list(pass_criteria),
|
||||
"fail_criteria": [],
|
||||
}
|
||||
|
||||
|
||||
# Kern-Impressum-MCs die ein vollstaendiges Impressum erfuellt. Der
|
||||
# Regex-Boost (Layer 0) hebt sie bei vorhandenen Pflichtangaben auf PASS,
|
||||
# sodass ein sauberes Impressum 0 Findings produziert. Jede pass_criteria
|
||||
# enthaelt >=2 Boost-Keywords damit boost_matches_db_mc greift.
|
||||
CORE_IMPRESSUM_MCS: list[dict] = [
|
||||
make_mc("IMP-NAME-A1", ["Anbieter Anschrift Adresse Firma angegeben"]),
|
||||
make_mc("IMP-MAIL-A1", ["E-Mail Kontaktmöglichkeit angegeben"]),
|
||||
make_mc("IMP-TEL-A1", ["Telefon Telefonnummer Rufnummer angegeben"],
|
||||
severity="MEDIUM"),
|
||||
make_mc("IMP-HR-A1", ["Handelsregister Registernummer HRB angegeben"]),
|
||||
make_mc("IMP-UST-A1", ["Umsatzsteuer USt-IdNr angegeben"],
|
||||
severity="MEDIUM"),
|
||||
make_mc("IMP-VTR-A1",
|
||||
["Geschäftsführer Vorstand Vertretungsberechtigt angegeben"]),
|
||||
make_mc("IMP-VTRL-A1",
|
||||
["Geschäftsführer Vorstand deutsche Bezeichnung Rechtsform"],
|
||||
severity="MEDIUM"),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user