Install
$ agentstack add skill-eliasreiche-legal-ops-germany-honorar-mahnwesen ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →About
honorar-mahnwesen
> Status: beta — automatisierte Tests (Parser-Round-Trip gegen den > EXTF-Writer, OPOS-Auswertung, CLI-Reject-Matrix) laufen grün in CI. Noch > nicht händisch abgenommen; status: getestet vergibt allein der > Maintainer nach einer Live-Abnahme (Reifegrad-Leiter, CONVENTIONS.md).
Zweck
Wertet offene Honorarforderungen der Kanzlei aus und bereitet interne Mahn-/Erinnerungsschreiben vor. Der deterministische Kern [core/calc/opos/](../../core/calc/opos/README.md) berechnet je Posten:
- offener Restbetrag = Rechnungsbetrag − bereits gezahlt (
Decimal, niefloat), - Tage seit Fälligkeit = Stichtag − Fälligkeitsdatum (reine Kalenderdifferenz),
- Mahnstufe aus konfigurierbaren Tagesschwellen (Default: Erinnerung ab
Fälligkeit, 1. Mahnung ab 14 Tagen, 2. Mahnung ab 30 Tagen),
- Priorität = offener Restbetrag × Tage seit Fälligkeit (Sortierung der Arbeitsliste).
Berufsrechts-Grenze (RDG): internes Forderungsmanagement in eigener Sache — kein Inkasso für Dritte, keine Rechtsdienstleistung. Der Skill sagt nicht, ob rechtlich Verzug eingetreten ist; „Tage seit Fälligkeit" ist eine kalendarische Größe, keine Verzugsfeststellung (§ 286 BGB).
Bewusst zurückgestellt (v1):
- Verzugszinsen (§ 288 BGB) — bräuchten gepflegte Basiszinssatz-Stammdaten
(Halbjahres-Sätze der Deutschen Bundesbank); erscheinen im Report als Hinweis-Lücke, nie als Zahl.
- Rechtliche Verzugsfeststellung (§ 286 BGB) — u. a. verbraucherabhängig
(Verzug ohne Mahnung erst 30 Tage nach Fälligkeit und Hinweis bei Verbrauchern, § 286 Abs. 3 BGB); bleibt ausdrücklich Kanzleisache.
Eingaben (Datei-Kontrakt, P2)
Genau eine Quelle je Lauf (vollständiges Schema: [schema/README.md](schema/README.md)):
| Quelle | Flag | Format | Charakter | |---|---|---|---| | OPOS-Liste | --opos-csv | .csv (Semikolon, Komma-Dezimal, Kopfzeile) | präzise Primärquelle — je Zeile ein Posten mit Fälligkeitsdatum | | Buchungsstapel | --extf | DATEV-EXTF (Format 700, Kategorie 21) | ergänzend — vereinfachte Belegfeld-1-Aggregation, kein Fälligkeitsdatum im EXTF |
Zusätzlich immer --stichtag JJJJ-MM-TT (Bezugstag für „Tage seit Fälligkeit" — aus der Eingabe, nie aus der Wall-Clock, damit gleiche Eingabe denselben Report liefert). Optional --mahnstufen-config (Tagesschwellen überschreiben) und --zahlungsziel-tage (nur --extf, Default 14).
Die EXTF-Quelle liest der strikte Parser [core/calc/extf/parser.py](../../core/calc/extf/parser.py) (das getestete Gegenstück zum datev-export-Writer). Fehlende Angaben (Mandant/Fälligkeit im EXTF, Buchungen ohne Belegfeld 1) werden als Lücke bzw. unter nicht_zuordenbar ausgewiesen — nie geraten.
Ablauf
- Claude ruft den Executor auf (kein eigenes Rechnen/Formatieren):
```bash # Präzise Quelle (OPOS-CSV): python3 ${CLAUDEPLUGINROOT}/skills/honorar-mahnwesen/executor.py \ --opos-csv --stichtag 2026-07-16 \ --output
# Ergänzende Quelle (EXTF-Buchungsstapel): python3 ${CLAUDEPLUGINROOT}/skills/honorar-mahnwesen/executor.py \ --extf --stichtag 2026-07-16 --zahlungsziel-tage 14 \ --output ```
- Bei Exit 0: Claude liest den JSON-Report und stellt die nach Priorität
sortierte Arbeitsliste zusammen (Rechnungsnummer, Mandant, offener Rest, Tage seit Fälligkeit, Mahnstufe) — und weist immer auf die Zurückstellungen hin: keine Verzugszinsen (§ 288 BGB), keine Verzugsfeststellung (§ 286 BGB), Versand ist Kanzlei-Entscheidung.
- Schreiben-Entwürfe (optional): Auf Wunsch draftet Claude je Posten eine
Zahlungserinnerung/Mahnung — ausschließlich aus Executor-Werten. Jeder Betrag, jedes Datum und jede „Tage seit Fälligkeit"-Angabe im Entwurf ist ein Executor-Ergebnis; Claude erfindet keine Beträge/Fristen und trägt keine Verzugszinsen ein. Bausteine siehe unten. Der Entwurf geht nie ohne Kanzlei-Freigabe hinaus.
- Bei Exit 2 (Eingabe-/Formatfehler): Claude gibt die Fehlermeldung
unverändert wieder und korrigiert die Eingabe bzw. fragt nach — er rät keinen Ersatz-Betrag, kein Ersatz-Datum und erzeugt keine Teil-Datei.
Output-Format
Ein JSON-Report aus [executor.py](executor.py) / [core/calc/opos/rechner.py](../../core/calc/opos/rechner.py) (P3):
zusammenfassung(Anzahl offen, Summe offen, ausgeglichen, nicht zuordenbar),offene_posten— nach Priorität absteigend; je Posten offener Rest, Tage
seit Fälligkeit, Mahnstufe, Priorität, verzugszins_hinweis (immer Lücke, nie Zahl), hinweise[],
ausgeglichene_posten,nicht_zuordenbar(EXTF-Buchungen ohne Belegfeld 1),- alle Zahlen als Decimal-Strings (keine float-Rundung).
Beispiel-Eingabe: [schema/beispiel-opos.csv](schema/beispiel-opos.csv). Deterministik-Grenze (P3): jeder Zahlen-/Datums-/Geldwert stammt aus dem Executor und ist als solcher markiert (meta.deterministik).
Schreiben-Bausteine (Entwurf, kein Template-Engine)
Claude setzt den Entwurf aus diesen Bausteinen zusammen und füllt nur Executor-Werte ein (Platzhalter in {}):
- Zahlungserinnerung (freundlich): „Sehr geehrte/r {mandant}, zu unserer
Rechnung {rechnungsnummer} vom {rechnungsdatum} ist ein Betrag von {offener_rest} € offen (fällig seit {faelligkeitsdatum}, {tage} Tage). Wir bitten um Ausgleich bis {…, von der Kanzlei zu setzen}."
- 1./2. Mahnung (bestimmter): zusätzlich Verweis auf die vorherige
Erinnerung; keine Zinsforderung durch den Skill (§ 288 BGB bleibt Kanzleisache), keine Verzugsbehauptung.
Jeder Norm-Verweis im Entwurf trägt einen 3-Zustands-Marker (CONVENTIONS.md): § 286 BGB ⚠️ (nicht prüfbar — der Executor prüft keinen Verzug), § 288 BGB ⚠️ (bewusst nicht berechnet). Verifizierbar über die BGB-Standard-Registry des Querschnitts-Skills [zitat-pruefer](../zitat-pruefer/SKILL.md).
Grenzen (bewusst)
- Keine Verzugszinsen (§ 288 BGB ⚠️) und keine rechtliche
Verzugsfeststellung (§ 286 BGB ⚠️) — nur „Tage seit Fälligkeit".
- EXTF-Quelle ist vereinfacht (Belegfeld-1-Saldo, Zahlungsziel-Annahme
statt echtem Fälligkeitsdatum) — präzise Quelle ist die OPOS-CSV.
- Kein Inkasso, keine Rechtsdienstleistung — nur eigenes
Forderungsmanagement der Kanzlei.
- Kein Versand — der Skill erzeugt Entwürfe; Mahnung/Versand entscheidet
die Kanzlei.
status: getesteterst nach Live-Abnahme durch den Maintainer — nie
durch automatisierte Tests allein.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: eliasreiche
- Source: eliasreiche/legal-ops-germany
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.