Skip to content
Back to skills

Gwg Risiko Check

ASecurity

GwG-Risikoscoring eines Mandats anhand der Katalogfaktoren der Anlagen 1 und 2 GwG mit Dokumentations-Output für die interne Akte — offline, deterministisch, regelbasierter Klassifikationsvorschlag mit Fundstellen. Triggert bei Geldwäsche-Risiko, GwG-Prüfung, Risikoklassifizierung Mandat, Sorgfaltspflichten, § 10 GwG, Hochrisikoländer, FATF-Grauliste/Schwarzliste, EU-Hochrisiko-Drittstaaten. Die Bewertung bleibt beim Verpflichteten.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
ai-agentspythonrustbashawsgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add eliasreiche/legal-ops-germany --skill gwg-risiko-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gwg Risiko Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gwg Risiko Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/eliasreiche-gwg-risiko-check/badge)](https://www.skillsdirectory.com/skills/eliasreiche-gwg-risiko-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gwg-risiko-check
description: "GwG-Risikoscoring eines Mandats anhand der Katalogfaktoren der Anlagen 1 und 2 GwG mit Dokumentations-Output für die interne Akte — offline, deterministisch, regelbasierter Klassifikationsvorschlag mit Fundstellen. Triggert bei Geldwäsche-Risiko, GwG-Prüfung, Risikoklassifizierung Mandat, Sorgfaltspflichten, § 10 GwG, Hochrisikoländer, FATF-Grauliste/Schwarzliste, EU-Hochrisiko-Drittstaaten. Die Bewertung bleibt beim Verpflichteten."
status: beta
welle: 2
bereich: compliance
rdg_einordnung: "Strukturierte Dokumentationshilfe zu gesetzlichen Katalogfaktoren (Anlagen 1/2 GwG) mit regelbasiertem Klassifikationsvorschlag; keine Rechtsdienstleistung — die Risikobewertung und die Maßnahmenentscheidung trifft der Verpflichtete (§ 10 Abs. 2 GwG)."
daten_hinweis: "KYC-/Mandatsdaten im Input — pseudonymisieren oder DSGVO-/BRAO-konformen Modellzugang nutzen (AWS-Bedrock-Pfad, § 203 StGB). Der Executor arbeitet rein lokal, ohne Netzwerkzugriff."
haftung: "Ersetzt keine GwG-Pflichtenprüfung; das Scoring ist ein Vorschlag zur Aktendokumentation, kein Verwaltungsakt-sicherer Nachweis. Zweitkontrolle und Bewertung bleiben Kanzleisache. Die Anlagen-1/2-Fundstellen sind Platzhalter und vor produktiver Nutzung gegen gesetze-im-internet.de zu prüfen. Die Hochrisiko-Länderliste ist am 2026-07-13 browser-verifiziert (EU-VO (EU) 2016/1675 + BaFin-Rundschreiben 07/2026 zu den FATF-Listen), ändert sich aber laufend (FATF-Plenum ca. Feb/Jun/Okt) — Quartals-Review erforderlich."
---

# gwg-risiko-check

> **Status: `beta`** — automatisierte Tests laufen grün in CI
> (`tests/test_gwg_rechner.py` + `tests/test_gwg_executor_cli.py`). Noch
> **nicht** händisch abgenommen: Die Katalog-Fundstellen der Anlagen 1/2 GwG
> sind Platzhalter und vor produktiver Nutzung gegen die aktuelle
> Gesetzesfassung zu prüfen. `status: getestet` wird erst nach dieser Prüfung
> durch den Maintainer gesetzt (siehe
> [CONVENTIONS.md](https://github.com/eliasreiche/legal-ops-germany/blob/main/CONVENTIONS.md), Reifegrad-Leiter).

**Hochrisiko-Länderliste — Quellen (✅ browser-verifiziert am 2026-07-13):**
Die Datei [`core/calc/gwg/hochrisiko_drittstaaten.json`](../../core/calc/gwg/hochrisiko_drittstaaten.json)
führt drei Listen zusammen:

- **EU-Hochrisiko-Drittstaaten** — Delegierte Verordnung (EU) 2016/1675 der
  Kommission, konsolidierte Fassung CELEX 02016R1675-20260129 (EUR-Lex,
  Anhang Abschnitte I–IV), Stand 2026-01-29. Rechtsanker § 15 Abs. 3 Nr. 2
  GwG — ein Treffer ist ein **gesetzlicher** Trigger für verstärkte
  Sorgfaltspflichten (mindestens § 15 Abs. 5 GwG).
- **FATF-Schwarzliste** („High-Risk Jurisdictions subject to a Call for
  Action") und **FATF-Grauliste** („Jurisdictions under Increased
  Monitoring") — FATF-Erklärungen/-Bericht vom 19.06.2026, referenziert über
  BaFin-Rundschreiben 07/2026 (GW) vom 13.07.2026 (die FATF-Primärseite
  fatf-gafi.org blockt automatisierte Zugriffe, daher die amtliche deutsche
  Sekundärquelle). Ein reiner FATF-Treffer **ohne** EU-Listung ist **keine**
  Gesetzespflicht nach § 15 Abs. 3 Nr. 2 GwG (der nur auf die EU-Liste
  verweist) — siehe Gewichtungs-Entscheidung unten.

**Pflege-Hinweis:** Quartals-Review nach jedem FATF-Plenum (ca.
Februar/Juni/Oktober) sowie bei neuen EU-Änderungsverordnungen zu
2016/1675. Das Alter der Liste (`abgerufen_am`) wird **bei jedem Lauf** gegen
die Schwellen geprüft und als `warnungen`-Eintrag in den Report geschrieben
(ab 4 Monaten; ab 12 Monaten als „überfällig") — zusätzlich auf stderr. Der
CI-Test schlägt ab 12 Monaten hart fehl
(`tests/test_gwg_rechner.py::test_gwg_hochrisiko_liste_ist_nicht_ueberfaellig`).

## Zweck

GwG-Risikoscoring eines Mandats anhand der Katalogfaktoren nach den Anlagen 1
und 2 GwG mit einem Dokumentations-Output für die interne Akte — vollständig
offline und deterministisch. Das Ergebnis ist ein **regelbasierter
Klassifikationsvorschlag** (keine numerischen Gewichts-Scores), der die
angewandten Faktoren mit exakter Fundstelle und die anwendbaren
Sorgfaltspflichten benennt. Die **Bewertung selbst trifft der Verpflichtete**
(risikobasierter Ansatz, § 10 Abs. 2 GwG).

## Eingaben (Datei-Kontrakt, P2)

| Eingabe | Pflicht | Format | Beschreibung |
|---|---|---|---|
| Mandats-Fragebogen | ja | `.json` | Strukturierter Fragebogen zum Mandat — siehe [`schema/README.md`](schema/README.md) und [`schema/beispiel-mandat.json`](schema/beispiel-mandat.json). Fehlende Felder = `unklar` (nie geraten). |

Die Katalogfaktoren (Fundstelle + Paraphrase) liegen als Daten in
[`core/calc/gwg/anlage1.json`](../../core/calc/gwg/anlage1.json),
[`core/calc/gwg/anlage2.json`](../../core/calc/gwg/anlage2.json) und
[`core/calc/gwg/hochrisiko_drittstaaten.json`](../../core/calc/gwg/hochrisiko_drittstaaten.json).

> ⚠️ **Anti-Halluzination.** Die Faktoren sind **Paraphrasen** mit exakter
> Fundstelle (z. B. „Anlage 2 Nr. 1 Buchst. e GwG"), **kein** Wortlaut-Zitat.
> Die Buchstaben-Zuordnung der Anlagen und die Zusammensetzung der
> Hochrisiko-Länderliste (Delegierte Verordnung (EU) 2016/1675) ändern sich und
> sind vor produktiver Nutzung gegen gesetze-im-internet.de bzw. die aktuelle
> EU-Fassung zu prüfen. Jede Norm-Fundstelle im Output trägt einen
> 3-Zustands-Marker.

## Ablauf

1. **Claude füllt den Fragebogen** ausschließlich aus dem, was Nutzer oder Akte
   hergeben. Was nicht belegt ist, bleibt `unklar` — **nie raten** (P-Anti-
   Halluzination). Ergebnis: eine Mandatsdatei nach
   [`schema/README.md`](schema/README.md). Bei juristischen Personen und
   trust-ähnlichen Strukturen gehört dazu die Frage nach Sitz/Wohnsitz **und
   Staatsangehörigkeit der wirtschaftlich Berechtigten**
   (`wirtschaftlich_berechtigte_laender`, Mehrzahl möglich) — ohne sie prüft
   das Länder-Gate nur den Mandantensitz, und der Report weist das als Lücke
   aus.

2. **Der Executor rechnet und klassifiziert** (kein eigenes Scoring durch das
   Modell, P3):

   ```bash
   python3 ${CLAUDE_PLUGIN_ROOT}/skills/gwg-risiko-check/executor.py \
     --mandat <mandat.json> \
     [--output <report.json>] \
     [--heute <JJJJ-MM-TT>]
   ```

   Der regelbasierte Rechner ([`core/calc/gwg/rechner.py`](../../core/calc/gwg/rechner.py))
   entscheidet über die erste greifende Regel: Anwendbarkeits-Gate
   (§ 2 Abs. 1 Nr. 10 GwG) → kritische Lücken → § 15 (PEP/Hochrisiko-Drittstaat)
   → nur Anlage-1-Faktoren → sonst. Das Länder-Gate wertet dabei
   Mandantensitz **und** alle angegebenen Länder der wirtschaftlich
   Berechtigten aus; das risikoreichste Land entscheidet. Claude liest **nur**
   den erzeugten Report und übernimmt Status, Faktoren und Fundstellen
   unverändert.

   **Frische-Gate (Muster gwg-live-screening):** `--heute` ist das Bezugsdatum
   (Default: Systemdatum, nur für Tests zu setzen). Ist die hinterlegte
   Hochrisiko-Länderliste älter als 4 bzw. 12 Monate, steht das im Report unter
   `warnungen` und auf stderr; der Report wird trotzdem erzeugt (Exit 0).
   Claude gibt jede `warnungen`-Zeile in der Akten-Dokumentation wieder.

3. **Claude rendert den Report als Akten-Dokumentation** (Markdown):
   Anwendbarkeit, Faktoren-Tabelle mit Fundstellen (jede mit ihrem
   3-Zustands-Marker), Klassifikationsvorschlag mit Begründung, Pflichten-
   Hinweise (§§ 10/14/15/43 GwG), Lücken und `warnungen`. Bei geografischen
   Faktoren immer die `herkunft` mitschreiben (Mandantensitz vs. wirtschaftlich
   Berechtigter). Jeder Zahlen-/Status-/Fundstellenwert stammt aus dem Report,
   nicht aus dem Modell.

4. **Zitat-Kontrolle** als letzter Schritt: Die §-Zitate der gerenderten
   Markdown-Doku sind gegen die mitgelieferte Registry
   [`schema/quellen-registry.json`](schema/quellen-registry.json) abzugleichen,
   damit sie nicht unmarkiert bleiben. Die Anlagen-Fundstellen sind kein
   §-Zitat; sie behalten ihren ⚠️-Marker und gehören zur händischen Abnahme.

## Output-Format

JSON-Report nach [`schema/README.md`](schema/README.md), Beispiel:
[`schema/beispiel-report.json`](schema/beispiel-report.json) (erzeugt aus
[`schema/beispiel-mandat.json`](schema/beispiel-mandat.json)).

Der Klassifikationsvorschlag ist einer von:
`nicht_verpflichtet`, `unvollstaendig`, `niedrig`, `mittel`, `hoch`. Bei
`nicht_verpflichtet`/`unvollstaendig` wird **bewusst keine Risikoklasse**
vergeben. Jeder Wert trägt `quelle: "executor"` (P3).

## Beispiele

### Beispiel 1 — mittleres Risiko (allgemeine Sorgfaltspflichten)

Ein Immobilienkauf-Mandat einer deutschen GmbH, wirtschaftlich Berechtigter
geklärt, kein PEP, aber bargeldintensiv. Der Executor liefert
`klassifikationsvorschlag: "mittel"` mit dem Faktor „Anlage 2 Nr. 1 Buchst. e
GwG" (bargeldintensiv) und dem Hinweis auf § 10 GwG
([`schema/beispiel-report.json`](schema/beispiel-report.json)).

### Beispiel 2 — hohes Risiko (PEP)

Ist im Fragebogen `pep: "ja"` gesetzt, greift Regel 2: Ergebnis `hoch` mit dem
Faktor „§ 15 Abs. 3 Nr. 1 GwG" und dem Pflichten-Hinweis auf die verstärkten
Sorgfaltspflichten (§ 15 GwG). Bei `sitz_land` in der EU-Hochrisiko-Liste greift
dieselbe Regel über „Anlage 2 Nr. 3 Buchst. a GwG" / § 15 Abs. 3 Nr. 2 GwG
(gesetzlicher Trigger); bei Nordkorea/Iran zusätzlich der Hinweis auf die
BaFin-Allgemeinverfügung. Der Länder-Treffer wird immer mit dem Vorbehalt
„Listen ändern sich laufend — Stand prüfen" gekennzeichnet, und der Report
weist im Feld `laender_listen_treffer` aus, welche der drei Listen (EU,
FATF-schwarz, FATF-grau) im Detail getroffen haben.

### Beispiel 3 — nicht verpflichtet

Ist `kataloggeschaeft: "keins"`, ist der Rechtsanwalt insoweit kein
Verpflichteter (§ 2 Abs. 1 Nr. 10 GwG): Ergebnis `nicht_verpflichtet`, keine
Risikoklasse, mit dem Vorbehalt „Einordnung prüfen".

### Beispiel 4 — hoch, aber Haus-Einstufung (nur FATF-Grauliste)

Ist `sitz_land` z. B. `KW` (Kuwait) — nur auf der FATF-Grauliste, nicht auf der
EU-Liste —, liefert der Rechner ebenfalls `hoch` (Gewichtungs-Entscheidung:
jeder Listen-Treffer löst `hoch` aus), aber **ohne** das Anlage-2-/§-15-Zitat.
Stattdessen trägt der Faktor die `id: "haus_fatf_listen_treffer"` mit
`fundstelle: "Hausrichtlinie (keine GwG-Norm)"` und der
Pflichten-Hinweis macht explizit klar: keine unmittelbare Gesetzespflicht,
konservative Haus-Einstufung nach BaFin-Rundschreiben 07/2026. Ist das Land
zugleich EU-Mitgliedstaat (z. B. Bulgarien), ergänzt ein Vorbehalt, dass es
begrifflich schon kein „Drittstaat" i. S. d. § 15 Abs. 3 Nr. 2 GwG sein kann.

### Beispiel 5 — EU-Holding mit Hochrisiko-UBO (Länder-Gate greift über den wirtschaftlich Berechtigten)

Eine Ltd. mit `sitz_land: "CY"` (EU-Mitgliedstaat) und
`wirtschaftlich_berechtigte_laender: ["RU"]` ergibt `hoch`: Russland steht auf
der EU-Hochrisiko-Liste, der Treffer ist ein gesetzlicher § 15-Abs.-3-Nr.-2-
Trigger, auch wenn der Mandantensitz in der EU liegt. `laender_listen_treffer`
weist `herkunft: "Sitz/Staatsangehörigkeit des wirtschaftlich Berechtigten"`
aus. Ohne das Feld bliebe es (wie vor der Ergänzung) bei `mittel` — der Report
führt die fehlende Angabe dann als Lücke.

## Gewichtungs-Entscheidung: alle drei Listen lösen `hoch` aus (Maintainer, konservativ)

Ein Treffer auf **jeder** der drei hinterlegten Listen (EU-Hochrisiko,
FATF-Schwarzliste, FATF-Grauliste) führt in diesem Skill zur Klassifikation
`hoch` — auch dann, wenn nur die FATF-Grauliste greift und **keine**
gesetzliche Pflicht nach § 15 Abs. 3 Nr. 2 GwG besteht (der ausschließlich auf
die EU-Liste verweist). Das ist eine bewusst konservative Haus-Praxis, keine
Behauptung einer Gesetzespflicht. Damit die Unterscheidung nicht verloren
geht, weist der Report bei jedem Länder-Treffer im Feld
`laender_listen_treffer` aus, welche Liste(n) getroffen haben, und die
Pflichten-Hinweise unterscheiden zwischen echtem § 15-GwG-Tatbestand (EU-
Listung oder PEP) und reiner Haus-Einstufung (nur FATF, keine EU-Listung) —
Details im Docstring von
[`core/calc/gwg/rechner.py`](../../core/calc/gwg/rechner.py).

## Grenzen (bewusst)

- **Kein Rechtsrat, keine Bewertung** — nur Dokumentationshilfe; die
  Risikobewertung trifft der Verpflichtete (§ 10 Abs. 2 GwG).
- **Anlagen-1/2-Fundstellen sind Platzhalter** — vor produktiver Nutzung
  gegen die aktuelle Gesetzesfassung zu prüfen (Reifegrad `getestet`). Die
  Hochrisiko-Länderliste ist am 2026-07-13 browser-verifiziert, ändert sich
  aber laufend — Quartals-Review nach FATF-Plenum Pflicht.
- **FATF-Grauliste-Treffer ohne EU-Listung sind keine Gesetzespflicht** —
  die Klassifikation `hoch` ist dort eine konservative Haus-Einstufung
  dieses Skills, kein Verwaltungsakt-sicherer Nachweis einer § 15-GwG-Pflicht.
- **Keine PEP-Ermittlung, kein Sanktionslisten-Abgleich, keine
  Identifizierung** — dafür ist der Live-Screening-Pfad bzw. eine eigene
  Prüfung nötig.
- **Der Länderbezug des wirtschaftlich Berechtigten wird nicht ermittelt,
  sondern eingegeben** — der Skill prüft nur die angegebenen Länder gegen die
  Listen; Beteiligungsketten, Kontrollverhältnisse und Zwischengesellschaften
  bleiben Sache der Identifizierung nach § 10 Abs. 1 Nr. 2 GwG. Fehlt die
  Angabe, ist das eine Lücke im Report, keine Entwarnung.

Files in this skill

  • SKILL.md13 KB
  • executor.py5 KB
  • schema/README.md10.1 KB
  • schema/beispiel-mandat.json577 B
  • schema/beispiel-report.json6.8 KB
  • schema/quellen-registry.json1.1 KB
  • tests/test_gwg_executor_cli.py5.4 KB
  • tests/test_gwg_rechner.py20.6 KB
  • tests/test_gwg_risiko_check_binaerguard.py966 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.