AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Zitat Pruefer

skill-eliasreiche-legal-ops-germany-zitat-pruefer · by eliasreiche

Zurückgestellt (2026-07-16) — bewusst geparkt durch den Maintainer, nicht verwenden; wird überarbeitet und später reaktiviert. Triggert auf keine Anfrage.

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-eliasreiche-legal-ops-germany-zitat-pruefer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-eliasreiche-legal-ops-germany-zitat-pruefer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
23d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Zitat Pruefer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

zitat-pruefer

> Status: Work-in-progress — bewusst zurückgestuft am 2026-07-16. Der > Skill ist vom Maintainer geparkt und nicht für den Einsatz freigegeben; > die description ist neutralisiert, damit er nicht automatisch triggert. > Das ist eine Hold-Entscheidung, kein Reifegrad-Befund: die automatisierten > Tests laufen weiter grün in CI (tests/test_executor.py und > tests/test_zitat_pruefer_encoding_und_registries.py, 73 Fälle), und die > CI-interne Nutzung des Executors (Zitiermarker-Konsistenzprüfung der > statischen Belehrungen anderer Skills) bleibt unberührt. Reaktivierung > setzt die frühere description und status: beta wieder ein (siehe > CONVENTIONS.md, > Reifegrad-Leiter).

Zweck

Extrahiert jede Norm-, Urteils- und Fundstellen-Angabe aus einem Text- oder Markdown-Dokument und markiert sie mit dem 3-Zustands-Marker aus CONVENTIONS.md:

  • verifiziert — gegen eine mitgelieferte Quellen-Registry geprüft und bestätigt
  • ⚠️ nicht prüfbar — keine Registry-Angabe zu diesem Zitat vorhanden
  • abweichend — Registry-Angabe widerspricht dem Zitat, mit Begründung

Dies ist ein Querschnitts-Skill (plugin: querschnitt): Er wird nicht nur eigenständig aufgerufen, sondern soll von anderen Skills, die Texte mit Zitaten erzeugen (Voten, Schreiben-Entwürfe, Zusammenfassungen), am Ende des Ablaufs mitgenutzt werden, damit generierte Texte nie unmarkierte Zitate enthalten.

Eingaben (Datei-Kontrakt, P2)

| Eingabe | Pflicht | Format | Beschreibung | |---|---|---|---| | Quelldokument | ja | .md / .txt, UTF-8 | Text mit den zu prüfenden Zitaten. Fließtext und Fußnotenzeilen werden gleich behandelt. | | Quellen-Registry | nein | .json | Liste bekannter Normen, Entscheidungen, Fundstellen — siehe [schema/README.md](schema/README.md) für das genaue Schema und [schema/beispiel-registry.json](schema/beispiel-registry.json) als Beispiel. |

Ohne Registry bleibt jedes inhaltlich zu prüfende Zitat nicht_pruefbar — nur die quellenfreien Formatprüfungen (bekanntes Gesetzeskürzel aus [schema/gesetzeskuerzel.json](schema/gesetzeskuerzel.json), plausible Abs./Satz/Nr.-Syntax, §/§§-Konsistenz) laufen trotzdem.

Vollständige Format-Spezifikation: [schema/README.md](schema/README.md).

> ⚠️ Wichtiger Hinweis zur Registry-Vollständigkeit: Eine unvollständige > Normen-Registry (ein Gesetzeskürzel ist gelistet, aber nicht alle seine > tatsächlich existierenden Paragraphen sind enthalten) erzeugt systematisch > falsche ❌ abweichend auf Normen, die in Wirklichkeit gültig sind — die > Prämisse des Executors ist: die mitgelieferte Normliste je Gesetz ist für den > übergebenen Ausschnitt vollständig (Details: [schema/README.md](schema/README.md) > unter „Bewusst asymmetrisch"). Wer nur einen Teil der Paragraphen eines Gesetzes > in die Registry aufnimmt, muss mit falschen ❌ auf den fehlenden Paragraphen > rechnen. Vor Nutzung: Registry je Gesetz möglichst vollständig aus einer > verlässlichen Quelle (Gesetzesdatenbank, Kommentar) ziehen — kein bloßer Auszug > der im Dokument ohnehin schon zitierten Normen.

Voraussetzungen & PDF-Praxis

Zwei Punkte aus der händischen Real-World-Abnahme (LG-Berlin-Urteil, 2026-07-15):

1. Encoding-Falle bei Gerichts-PDFs

Manche Gerichts-PDFs tragen ein Custom-Font-Encoding, bei dem die Textebene das Paragraphenzeichen verfälscht: § erscheint als $, §§ als SS (real beobachtet: „auf $ 826 BGB gestützt", „(SS 37, 37b Abs. 1 StBerG)"). Ohne Reparatur erkennt der Executor solche Zitate gar nicht als Normzitate.

Der optionale Reparatur-Schritt --repariere-encoding ersetzt kontextsensitiv $§ und SS§§nur dort, wo ein echtes Normzitat vorliegt (Marker + Ziffernblock + bekanntes Gesetzeskürzel dahinter). Geldangaben wie $ 50 Euro oder Wörter wie PASSAU bleiben unangetastet. Jede Ersetzung wird im Report unter meta.encoding_reparaturen mit Position, Zeile, Original, Ersetzung und Kontext dokumentiert, damit die Kanzlei die Reparatur zweitkontrollieren kann. Der Schritt ist standardmäßig aus — er ändert Zeichen im Dokument und wird deshalb nur bei Bedarf explizit zugeschaltet.

> Kein OCR. Dies repariert ausschließlich eine bekannte Encoding-Falle in der > bereits vorhandenen Textebene. Ein OCR-Fallback für gescannte Bild-PDFs (ohne > brauchbare Textebene) ist nicht Teil dieses Skills — er kommt separat mit > Skill #11 [posteingang-ocr-verteilung](../posteingang-ocr-verteilung/SKILL.md) > (Welle 4).

2. Standard-Registries (BGB, ZPO, StGB)

Ohne Registry bleibt jedes Norm-Zitat ⚠️ nicht_pruefbar — nur die Formatprüfung läuft. Für die drei am häufigsten zitierten Gesetze liegen fertige Registries bei:

schema/standard-registries/bgb.json
schema/standard-registries/zpo.json
schema/standard-registries/stgb.json

Sie sind maschinell aus der amtlichen Gesetzes-XML von gesetze-im-internet.de erzeugt (Generator: [schema/standard-registries/generiere_registries.py](schema/standard-registries/generiere_registries.py), Provenienz-Felder quelle_url / abgerufen_am je Datei). Aufgehobene/weggefallene Paragraphen sind mit "aufgehoben": true aufgenommen, damit ein Zitat auf eine historische Nummer nicht fälschlich als ❌ abweichend gemeldet wird. Übergabe an den Executor über --registry:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/zitat-pruefer/executor.py \
  --input  \
  --registry ${CLAUDE_PLUGIN_ROOT}/skills/zitat-pruefer/schema/standard-registries/bgb.json \
  --repariere-encoding

> Frische: Gesetze ändern sich laufend. Die Registries sind Momentaufnahmen > zum abgerufen_am-Datum (Muster analog zum Frische-Gate des gwg-risiko-check, > D19) und vor produktiver Nutzung gegen den aktuellen Stand abzugleichen — > Neu-Erzeugung per generiere_registries.py (nur der Generator geht ins Netz; > der Executor selbst bleibt strikt offline, P3). Der Executor bezieht immer nur > genau eine Registry-Datei je Lauf; ein Zitat gegen ein anderes Gesetz (z. B. > § 37b StBerG bei übergebener BGB-Registry) bleibt korrekt ⚠️ nicht_pruefbar.

Ablauf

  1. Claude ruft den Executor auf (kein eigenes Zitat-Parsing durch das Modell):

``bash python3 ${CLAUDE_PLUGIN_ROOT}/skills/zitat-pruefer/executor.py \ --input \ [--registry ] \ --output ``

  1. Der Executor entscheidet den Zustand jedes Zitats deterministisch (P3,

Deterministik-Grenze). Claude liest ausschließlich den erzeugten JSON-Report — Claude vergibt selbst nie verifiziert/nicht_pruefbar/abweichend, sondern übernimmt den vom Executor gesetzten Wert unverändert.

  1. Claude stellt den Report in Markdown dar: jedes Zitat mit seinem Marker

(✅/⚠️/❌) und — bei ⚠️ oder ❌ — der begruendung aus dem Report. Format- warnungen werden zusätzlich als Hinweis angezeigt, unabhängig vom Zustand.

  1. Bei ❌ abweichend-Treffern weist Claude explizit auf Zweitkontrolle-Bedarf

hin (Berufsrechts-Gate, haftung-Feld oben).

Output-Format

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

Jeder Zahlen-/Datums-/Statuswert im Report stammt aus executor.py, nie vom Modell generiert (P3).

Beispiele

Beispiel 1 — mit Quellen-Registry (drei Zustände gemischt)

Eingabe (schema/beispiel-eingabe.md, Auszug):

Der Anwalt ist nach § 203 StGB und § 43a Abs. 2 BRAO zur Verschwiegenheit
verpflichtet. [...] Zeugnisverweigerungsrechte folgen aus §§ 53, 97 StPO.

Vgl. BGH, Urt. v. 12.01.2023 – IX ZR 15/22; siehe auch BVerfG NJW 2020, 300.

Aufruf:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/zitat-pruefer/executor.py \
  --input schema/beispiel-eingabe.md \
  --registry schema/beispiel-registry.json

Von Claude präsentiertes Ergebnis (Markdown, aus dem Report übernommen):

| Zitat | Zustand | Begründung | |---|---|---| | § 203 StGB | ✅ verifiziert | in Quellen-Registry gefunden | | § 43a Abs. 2 BRAO | ✅ verifiziert | in Quellen-Registry gefunden | | Art. 44 DSGVO | ⚠️ nicht prüfbar | keine Registry-Angabe zu DSGVO | | §§ 53, 97 StPO | ❌ abweichend | § 97 StPO nicht in der Normliste für StPO enthalten (nur § 53 mitgeliefert) | | BGH, Urt. v. 12.01.2023 – IX ZR 15/22 | ✅ verifiziert | Aktenzeichen + Datum stimmen mit Registry überein | | BVerfG NJW 2020, 300 | ✅ verifiziert | Fundstelle in Registry gefunden |

Beispiel 2 — ohne Quellen-Registry (nur Formatprüfung)

python3 ${CLAUDE_PLUGIN_ROOT}/skills/zitat-pruefer/executor.py --input entwurf.md

Bei §§ 5 StGB (Plural-Zeichen, aber nur eine Paragraphennummer) liefert der Report zustand: nicht_pruefbar (keine Registry vorhanden) und zusätzlich formatwarnungen: ["§§ (Plural) mit nur einer Paragraphennummer angegeben — vermutlich '§' gemeint"]. Claude zeigt beides an: den Marker ⚠️ für den Zitierzustand sowie separat den Formathinweis.

Erkannte Zitatformen und Grenzen

Details, Randfälle (§§-Ketten, Abs./Satz/Nr./lit., Klammerzusätze, Fließtext vs. Fußnotenstil) und bewusste Nicht-Erkennungen: siehe [schema/README.md](schema/README.md#erkannte-zitatformen) und [schema/README.md](schema/README.md#bewusst-nicht-erkannt-grenzen).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.