Next Session — AV Beleg-Pipeline
TL;DR
VP1 ist durch (Plan Z.232). Es bleiben VP3 + VP4 + VP5 als Pflicht-Vorarbeiten bevor Welle-1-Build starten kann. Plus: gsuite-MCP muss am Anfang reconnected werden (Import-Error vom 2026-05-20 abends).
Empfohlene Reihenfolge naechste Session:
- Sanity-Check (5 Min) — mcp-Reload
- VP5 Anbieter-Cache-Bootstrap (30-45 Min) — kleinste Unit, kuratierte JSON-Liste, sofort Erfolgserlebnis
- VP3 Bewirtungs-Eval-Set (60-90 Min in 15-Min-Bloecken) — aversiv aber notwendig, Pomodoro-Style
- Optional: VP4 Bedrock-Vision-Benchmark (60 Min) — Code-Bau, kann auch separat in Welle-1.5-Session laufen
Wenn nur ein VP-Item pro Session machbar: in dieser Reihenfolge gehen. Welle-1-Build startet erst wenn mindestens VP3 + VP5 durch sind (VP4 ist Welle-1.5-relevant, nicht Welle-1-blocker).
Was bisher gelaufen ist (2026-05-20)
- Qonto-Konto + virtuelle Karten + Lexware-Bank-Connector live (qonto-system.md)
- Vault-Cleanup: Papierkram = VF-only, Lexware = AV-primary in 7 Files
- Brainstorm-v2 nach 6-Reviewer-Refine: requirements.md
- Plan in plan.md inkl. State-Machine-Diagramm + Multi-Achsen-Trust + Idempotenz-Strategie
- VP1 done: mcp-lexware
create_voucherkann jetztremarkauf Voucher-Top-Level +descriptionin line_items durchreichen. 4/4 Tests gruen. Wissen in lexware-api-quirks.md
Schritt 1 — Sanity-Check (5 Min)
# (a) Pruefen ob gsuite-MCP jetzt funktioniert
# Test: kurze query mit query_gmail_emails (label:Belege, max 3)
# Wenn noch Import-Error 'discovery_cache' kommt:
uv tool install --force --upgrade mcp-gsuite
# danach Claude Code RESTART (nicht nur /mcp reconnect — Library-Cache braucht Prozess-Restart)
# (b) Pruefen ob mcp-lexware den neuen create_voucher hat
# Test: list_invoices oder simple read, dann reflect ob neuer Signatur-Hint sichtbar
# Wenn alte Signatur: claude mcp remove lexware + add lexware --transport http http://127.0.0.1:8774/mcp
# UND mcp-lexware-Server-Prozess restarten:
pkill -f mcp-lexware || true
cd ~/source/mcps/mcp-lexware && nohup uv run python -m mcp_lexware.server > /tmp/mcp-lexware.log 2>&1 &Schritt 2 — VP5 Anbieter-Cache-Bootstrap (30-45 Min)
Goal: Top-10-AV-Anbieter mit kuratierten Klassifikations-Templates fuer DDB-Initial-Insert als JSON-File.
Output-File: ~/source/agents-platform/data/anbieter-cache-bootstrap.json
Vorgehen:
~/source/agents-platform/data/anlegen falls nicht existent- Schema pro Eintrag (aus Plan VP5 + Brainstorm R7):
{ "sender_domain": "anthropic.com", "classifier_version": "v1.0-2026-05", "category": "ai", "is_deductible": true, "deductible_reason": "API-Nutzung fuer AV-Workloads, vollstaendig betrieblich", "description_template": "Anthropic Claude API — {month} {year}, Bedrock-Nutzung fuer AV-Lambda-Workloads + Vault-Klassifikation", "requires_manual_split": false, "verified_by_human": true, "historical_count": 5, "tags_default": ["ai", "intern"] } - Top-10-AV-Anbieter labeln (aus beleg-quellen.md + stack.md):
- AWS (
amazonaws.com,aws-billing@amazon.com) — cloud, deductible, recurring - Hetzner (
hetzner.com) — cloud, deductible, requires_manual_split=true wenn private Hobby-Server existieren — Marvin pruefen - Anthropic (
anthropic.com) — ai, deductible - Replicate (
replicate.com,replicate.email) — ai, deductible - Cloudflare (
cloudflare.com) — cloud, deductible - Google Workspace (
payments-noreply@google.com) — saas, deductible - Sipgate (
sipgate.de) — kommunikation, deductible - 1Password (
1password.com) — saas, deductible - Scalekit (
scalekit.com) — saas, deductible - Runway / Midjourney (
runway.com,midjourney.com) — ai, deductible
- AWS (
- Pro-Rata-Marker explizit pruefen:
- Hetzner: hat Marvin private-Hobby-Server in einem der Projects? Wenn ja → split-Quote festlegen
- Telekom Mobilfunk + Festnetz: explizit pro-Rata-Marker
- Vodafone: explizit pro-Rata-Marker
- Schema-Validation:
python -c "import json; json.load(open('anbieter-cache-bootstrap.json'))" - Commit ins agents-platform-Repo
- Plan-Checkbox VP5 markieren
Success-Criteria VP5: JSON valides 10+ Anbieter mit allen Pflichtfeldern, 2+ Pro-Rata-Marker gesetzt (mindestens Telekom + Vodafone), python -c "import json; ..." durch.
Schritt 3 — VP3 Bewirtungs-Eval-Set (60-90 Min in 15-Min-Bloecken)
Goal: 10-30 historische Bewirtungs-Belege aus Gmail mit manueller Ground-Truth-Beschreibung labeln.
Output: ~/source/agents-platform/evals/bewirtung/dataset.jsonl + README.md
ADHS-Konformes Vorgehen:
- 15-Min-Bloecke (Pomodoro), 3-5 Belege pro Block, dann Pause
- Wenn nach 10 Belegen Liste leer oder Marvin ermuedet: Threshold senken auf 10-15 statt 30-50, im Plan dokumentieren
- Synthetische Belege NICHT erfinden — lieber kleines Eval-Set als gefaelschtes
Schritte:
- Gmail-Query auf beide Accounts:
Beide Accounts:label:Belege (restaurant OR cafe OR bistro OR lieferando OR wolt OR pizzeria OR ristorante OR brauhaus OR gastro OR Bewirtung OR Mittagessen OR Lunch OR DELIVEROO OR Pizzeria OR taverna OR sushi OR hotel)__user_id__=hello@marvinkuehlmann.comund__user_id__=marvinkuehlmann@gmail.com - Kandidaten-Liste anzeigen (Sender, Datum, Subject, Snippet)
- Pro Beleg: PDF-Anhang oeffnen ODER Email-Body lesen → manuelle Annotation
- JSONL-Schema:
{ "beleg_id": "gmail-msg-id-or-attachment-hash", "sender": "Restaurant Da Marco", "sender_domain": "lieferando.de", "datum": "2025-09-12", "brutto_eur": 47.00, "brutto_cents": 4700, "ust_satz": 7, "pdf_path_or_attachment_id": "gmail://msg-id/attachment-1", "ground_truth_description": "Bewirtungsbeleg. Geschaeftliches Gespraech mit Andre Vidic (Vibe Factory). Hamm, 2025-09-12. Anlass: MCP-Hosting-Pilot Steuerung.", "has_calendar_match": true, "calendar_event_title": "Lunch Andre @ Da Marco", "calendar_attendees_listed": ["Andre Vidic"], "kunde_zuordnung_aus_vault": "vibe-factory", "labeling_difficulty": "easy" } - Pro Beleg: Kalender-Event am Tag pruefen (hat es Title? Teilnehmer? → Felder fuellen). Das ist die Eval-Baseline gegen die Welle-1.5-Auto-Beschreibung gemessen wird.
README.mdmit Labeling-Convention + Schema-Doku- Plan-Checkbox VP3 markieren
Falls nur n≤10 Bewirtungs-Belege im ganzen Vault sind: akzeptieren, Welle 1.5 Threshold im Plan auf 70%-Match auf n=10 senken statt 80%-auf-n=30.
Schritt 4 — VP4 Bedrock-Vision-Benchmark (60 Min, OPTIONAL fuer naechste Session)
Nicht zwingend in der naechsten Session noetig — VP4 blockt nur Welle 1.5 (WhatsApp-Foto-OCR), nicht Welle 1. Kann auch direkt vor Welle-1.5-Cutover laufen.
Falls noch Energie nach VP3 + VP5: Plan VP4 in plan.md abarbeiten.
Schritt 5 — Welle-1-Start (nicht in dieser Session, fruehestens uebernaechste)
Nach VP3 + VP5 (VP4 optional) ist Welle 1 freigegeben. Welle 1 ist 2-3 Tage Bau + 2 Wochen Stabilisierung. Eigene Session mit /ce:work und Plan-Pfad starten.
Anti-Slop-Reminders
- Marvin’s ADHS-Konstraint: kleinste-Unit-First, Pomodoro statt Marathon, Threshold-Anpassung statt Fake-Daten
- Kein TodoWrite-Theater fuer kleine Units — bei VP3 mit 10-30 Belegen kann TodoWrite sinnvoll sein wenn Fortschritt-Sehen ADHS hilft
- Bei Live-Smoke-Test von mcp-lexware-Patch (voucherItems[].description): EINEN Test-Voucher in AV-Lexware anlegen, get_voucher checken, danach manuell in Lexware-UI loeschen
- Wenn Gmail-MCP wieder zickt: nicht 30 Min reparieren — pragmatisch Bewirtungs-Belege manuell in Gmail-UI durchsuchen + Liste in JSONL tippen
Quick-Links
- Plan: plan.md
- Status: _index.md — phase: vp-1-done, next: VP3+VP5
- Brainstorm-Origin: requirements.md
- Welle-4-Spec (deferred): welle-4-spec.md
- Lexware-API-Quirks: lexware-api-quirks.md
Session-Start-Phrase
„Wir machen jetzt VP5 + VP3 fuer die av-beleg-pipeline. Plan und next-session-prompt liegen in
intern/projekte/av-beleg-pipeline/. Erst Sanity-Check ob gsuite-MCP wieder laeuft (gestern Import-Error), dann VP5 (Anbieter-Cache-JSON, ~30 Min), dann VP3 (Bewirtungs-Belege labeln, 15-Min-Bloecke). Lies den next-session-prompt und leg los.”