---
name: mpe-rechnungs-klassifizierer
description: "Klassifiziert PDF-Rechnungen und Belege für die EÜR/Steuererklärung von Meck-Pomm Elektronik. Führt einen zweistufigen Workflow aus: (1) deterministisches Script klassifiziert per Dateinamen-Patterns, (2) Claude liest unklare PDFs und klassifiziert per Kontext. Nutze diesen Skill IMMER wenn: Rechnungen klassifiziert werden sollen, Belege für EÜR vorsortiert werden, Steuer-Vorbereitung gemacht wird, PDFs aus Gmail/Drive kategorisiert werden, ein Steuerberater-Paket vorbereitet wird, neue Rechnungen einsortiert werden müssen. Auch triggern bei: 'Rechnung einordnen', 'Beleg klassifizieren', 'EÜR vorbereiten', 'Vorsteuer prüfen', 'Steuerberater Unterlagen', 'Business oder privat?', 'Betriebsausgabe?', 'Differenzbesteuerung', 'was kann ich absetzen', 'Belege sortieren', '2022 klassifizieren', 'Belege für Steuerberater'. Triggere diesen Skill auch bei indirekten Hinweisen wie 'sortier mal die Rechnungen' oder 'was davon ist geschäftlich'."
---

# MPE Rechnungs-Klassifizierer

Zweistufiger Klassifizierungs-Workflow für Belege von Meck-Pomm Elektronik (IT-Reparatur, Einzelunternehmer Paul Gernt).

## Workflow-Übersicht

```
Input (Dateinamen oder PDFs)
  ↓
Schritt 1: Script `classify_invoices.py` → deterministisch per Dateinamen
  ↓
Schritt 2: PRÜFEN-Fälle → Erst Vendor-Patterns prüfen, dann ggf. PDFs lesen
  ↓
Schritt 3: Report erstellen (Markdown + optional Excel)
  ↓
Schritt 4: In Google Drive hochladen
```

## Schritt 1: Deterministisches Script ausführen

Das Script `scripts/classify_invoices.py` enthält das Regelwerk für Dateinamen-basierte Klassifizierung. Es kennt ~40 Absender-Patterns und ordnet automatisch zu.

Kopiere das Script in den Arbeitsordner und führe es aus:

```bash
python3 scripts/classify_invoices.py --file filenames.json --year 2022 --format json
python3 scripts/classify_invoices.py --file filenames.json --year 2022 --format markdown
```

Wenn die Dateinamen aus Google Drive kommen:
```python
resp = run_composio_tool("GOOGLEDRIVE_FIND_FILE", {
    "folder_id": "<YEAR_FOLDER_ID>", "pageSize": 100, "fields": "files(name)"
})
filenames = [f["name"] for f in resp["data"]["files"]]
```

### Google Drive Folder IDs
| Jahr | Folder ID |
|------|-----------|
| 2022 | `1Fi5Bs0Zafi6RsBwP4chV1ZU0Ow9zyAdV` |
| 2023 | `1N7NqJkNaHxw1xE0VbvFG0B-9HrMp16lK` |
| 2024 | `12uyUK7tARklNdYqBj32q0mnjTO-E9hKr` |
| 2025 | `1CFYop3IuvP92VUuzFbBXkwDbbAyuyLfb` |
| 2026 | `1DxoqDg0RHsCTGp1514utEBaeyu_ZVImj` |
| Root | `16vBU-wOrWe5gEmCEcTfZ5IJr8EEBlnTW` |

## Schritt 2: PRÜFEN-Fälle auflösen

Belege die das Script als PRÜFEN markiert hat, brauchen zusätzliche Analyse. Gehe in dieser Reihenfolge vor — stoppe beim ersten Treffer:

### 2a: Rechnungsnummer-Patterns prüfen (kein PDF-Download nötig)
Lies `references/vendor_patterns.md` — dort sind bekannte Rechnungsnummer-Formate dokumentiert die den Absender verraten ohne die PDF zu öffnen. Beispiel: `Invoice-9MYMVDZB-0003.pdf` → Pattern `*VDZB*` → Anthropic → BUSINESS.

### 2b: PDF herunterladen und lesen (nur wenn 2a nicht hilft)
1. `GOOGLEDRIVE_DOWNLOAD_FILE` → s3url → herunterladen
2. PDF-Inhalt lesen (pdf-reading Skill oder `smart_file_extract`)
3. Klassifizieren anhand:
   - Empfänger: "Paul Gernt" oder "Meck-Pomm Elektronik"?
   - Artikel: IT-bezogen (Ersatzteile, Hardware, Software)?
   - USt/MwSt ausgewiesen?
   - Privater Kauf (Lebensmittel, Kleidung)?

### 2c: LLM-Klassifizierung (wenn PDF-Inhalt vorliegt)

```
Analysiere diesen Beleg. Empfänger: Paul Gernt, Meck-Pomm Elektronik (IT-Reparatur).
Klassifiziere als: BUSINESS | DIFFERENZ | PRIVAT | PRÜFEN
Antworte: KATEGORIE | Begründung (max 10 Worte) | EÜR-Posten
```

### 2d: Weiterhin unklar → bei PRÜFEN belassen
Steuerberater muss die PDF öffnen und entscheiden.

## Schritt 3: Report erstellen

Script gibt formatierten Markdown-Report aus (`--format markdown`). Für den finalen Report:
1. Ergebnisse aus Schritt 1 + aufgelöste PRÜFEN-Fälle zusammenführen
2. Dateiname: `Klassifizierung_{JAHR}_Belege.md`
3. Statistik-Zusammenfassung am Anfang

## Schritt 4: Upload nach Google Drive

```python
s3r, _ = upload_local_file("/tmp/report.md")
run_composio_tool("GOOGLEDRIVE_UPLOAD_FILE", {
    "file_to_upload": {"name": f"Klassifizierung_{year}_Belege.md", 
                       "mimetype": "text/markdown", "s3key": s3r["s3key"]},
    "folder_to_upload_to": folder_ids[year]
})
```

## Kategorien-Referenz

| Kategorie | Emoji | Bedeutung | Vorsteuer | EÜR |
|-----------|-------|-----------|-----------|-----|
| BUSINESS | 💼 | Betriebsausgabe | Ja (ab Regelbesteuerung) | Ja |
| DIFFERENZ | 📦 | Wiederverkauf §25a | Nur auf Marge | Ja |
| PRIVAT | 🏠 | Persönlich | Nein | Nein |
| PRÜFEN | ❓ | Steuerberater entscheidet | ? | ? |
| IGNORIEREN | 🗑️ | AGB/Widerruf | - | - |

## Steuerliche Regeln

- **Kleinunternehmer §19 UStG** (bis 2025): Kein Vorsteuerabzug
- **Differenzbesteuerung §25a**: Gebrauchte Ware → nur Marge besteuern
- **Aufbewahrungsfrist**: 10 Jahre
- **EÜR-Pflicht**: Ja

## Skill-Struktur

```
mpe-rechnungs-klassifizierer/
├── SKILL.md                           ← Diese Datei (Workflow-Anleitung)
├── scripts/
│   └── classify_invoices.py           ← Deterministisches Klassifizierungs-Script
├── references/
│   └── vendor_patterns.md             ← Rechnungsnummer → Vendor Zuordnung
└── evals/
    └── evals.json                     ← Test-Prompts für Skill-Validierung
```

## Abhängigkeiten

- **Script**: `scripts/classify_invoices.py` — deterministisch, Python 3, keine Dependencies
- **Reference**: `references/vendor_patterns.md` — Rechnungsnummer-Patterns für Schritt 2a
- **pdf-reading Skill**: Für Schritt 2b (PDFs lesen wenn nötig)
- **Composio**: `GOOGLEDRIVE_FIND_FILE`, `GOOGLEDRIVE_DOWNLOAD_FILE`, `GOOGLEDRIVE_UPLOAD_FILE`
- **Directive**: `directives/rechnungs-pipeline.md` — Composio Dual-Account Workflow-Details
