Bauplan — VF Liquiditaets-Cockpit Phase 1
Vorab — Voraussetzungen klaeren (vor Tag 1)
- 2026-05-18 verifiziert: Papierkram-MCP greift bereits auf VFs Account zu (Mandant
vibefactorygmbh). Sparkasse Hamm (Connection id 6) + Standard (id 3) als bank_connections vorhanden. Keine API-Key-Holung noetig. - TicketPay-Daten von VF zugaenglich? Test via
ticketpay_list_events+ticketpay_list_orders. - av-cockpit lokal lauffaehig (Marvin’s normaler Dev-Setup)?
Tag 1 — Daten-Discovery + Modell
Ziel: klar haben, welche Felder aus welchen MCPs wir wirklich brauchen.
- Papierkram-MCP-Calls durchspielen, real gegen VFs Daten:
papierkram_list_bank_connections→ Konten + Saldospapierkram_list_bank_transactionsmit Date-Range 90d → Cashflow-Historiepapierkram_list_invoicesmit status=open → Forderungenpapierkram_list_vouchersmit status=pending → Verbindlichkeitenpapierkram_monatsabschlussletzte 12 Monate → Burn-Rate
- TicketPay-MCP-Calls durchspielen:
ticketpay_list_eventsupcoming → geplante Eventsticketpay_list_orderspro Event → Verkaufs-Standticketpay_event_bilanzpro Event → erwartete Auszahlung
- Daten-Modell skizzieren:
finance_snapshots-Tabelle in~/source/apps/av-cockpit/src/lib/finance-schema.ts
Deliverable: TypeScript-Interface fuer Snapshot + Mock-JSON mit echten VF-Daten als Beispiel.
Tag 2 — Snapshot-Cron-Job
Ziel: Daten kommen automatisch in eine Postgres-Tabelle.
- Cron-Routine im
agents-platformanlegen (viaroutine-anlegen-Skill):vf-finance-snapshot- Schedule: alle 4 Stunden
- Action: MCP-Calls aus Tag 1 → Aggregation → Insert in
finance_snapshots(av-production RDS)
finance_snapshots-Tabelle anlegen:CREATE TABLE finance_snapshots ( id uuid PRIMARY KEY, tenant text NOT NULL DEFAULT 'vf', snapshot_at timestamptz NOT NULL, bank_total numeric, receivables_open numeric, payables_open numeric, burn_rate_3mo numeric, revenue_mtd numeric, expense_mtd numeric, upcoming_events jsonb, raw jsonb, created_at timestamptz DEFAULT now() ); CREATE INDEX ON finance_snapshots (tenant, snapshot_at DESC);- Forecast-Annahmen JSON-File in
intern/projekte/vf-liquiditaets-cockpit/forecast-assumptions.jsonanlegen (initial leere Skeleton, Andre fuellt spaeter)
Deliverable: Cron-Routine laeuft, schreibt Snapshots; ein erster echter VF-Snapshot in der DB sichtbar.
Tag 3 — Cockpit-Page Skeleton
Ziel: Route /vf im av-cockpit existiert, drei leere Bloecke, Snapshot-Daten gelesen.
- Neue Route
src/app/vf/page.tsx - Server Component liest letzten Snapshot aus
finance_snapshots - Drei Bloecke als leere Cards:
- Block A: drei grosse Zahlen (Saldo, Puffer, Runway) — zunaechst nur Saldo gefuellt
- Block B: Diesen Monat — zunaechst leer
- Block C: 90-Tage-Forecast — zunaechst leer
- Layout: Geist-Sans-Typografie, monochrom, Akzent 533afd (av-cockpit-Konvention)
Deliverable: dashboard.agenticventures.de/vf zeigt einen echten VF-Bankstand. Rest noch leer aber Struktur steht.
Tag 4 — Block B + Forecast-Logic
Ziel: Monatsblock voll, Forecast rechnet.
- Block B fuellen: Eingenommen MTD, Ausgegeben MTD, Liste offene Rechnungen raus, Liste faellige rein, geplante Events diesen Monat mit Verkaufsstand
- Forecast-Logic in
src/lib/finance-forecast.ts:- Input: aktueller Snapshot + Forecast-Annahmen
- Output: 90-Tage-Cashflow-Projektion (Array von
{ date, expected_cash, lower, upper }) - Algorithmus initial simpel: Burn-Rate-Trend extrapolieren + geplante Event-Einnahmen addieren + bekannte faellige Rechnungen subtrahieren
- Break-Even-Berechnung: „bei dieser Burn-Rate, wie viel Umsatz fehlt diesen Monat”
Deliverable: Blocks A + B sind komplett, Forecast-Logic funktioniert deterministisch.
Tag 5 — Block C + Action-Recommendations
Ziel: Forecast-Chart visualisiert, Empfehlungs-Logik liefert konkrete Aktionen.
- Block C fuellen: Recharts Line-Chart fuer 90-Tage-Forecast mit Break-Even-Linie
- Action-Recommendation-Engine in
src/lib/finance-actions.ts:- Wenn Forecast Ende Monat negativ → „Du brauchst noch X EUR. Optionen: A Events buchen / B Rechnungen mahnen”
- Wenn ueberfaellige Rechnungen raus → „Diese Rechnungen mahnen, Volume Y EUR”
- Wenn Puffer < 1 Monat Burn → „Runway-Warnung, Kosten-Review noetig”
- Output: 3-5 konkrete Aktions-Items mit Klick-Through (Rechnung in Papierkram, Event in TicketPay)
Deliverable: Seite ist komplett, Empfehlungs-Liste zeigt 3-5 konkrete Actions basierend auf echten VF-Daten.
Tag 6 — Polish + Andre Live zeigen
Ziel: Optisch sauber, Andre’s erste Reaktion einsammeln.
- Mobile-Layout pruefen (Andre nutzt vermutlich Handy)
- Cloudflare-Access-Policy fuer
/vferweitern: Andre + Christoph - Andre kurz anrufen oder Call buchen: 30 Min Hands-On, Marvin zeigt, Andre testet
- Erste Iterations-Punkte einsammeln
Deliverable: Live-Sicht fuer Andre und Christoph, Notizen-Liste fuer Iteration 2.
Tag 7 — Iteration + Live
Ziel: Andre’s Feedback eingearbeitet, Live als „produktiv” deklariert.
- Top-3 Iterations-Punkte aus Tag 6 umsetzen
- Forecast-Annahmen mit Andre durchsprechen und einkippen
status: deployedim_index.md, Eintrag in active-work und Verlinkung zur Kunde-Seite
Deliverable: Live, dokumentiert, Andre und Christoph onboarded.
Polish-Pufferwoche (Tag 8-14)
- Reaktion einsammeln, weitere Iterationen
- Daily-Check ob das Cockpit auch wirklich genutzt wird (Cloudflare-Access-Logs)
- Wenn Adoption gut: Phase-2-Diskussion starten (siehe agentic-ventures-workplace-standard-stack)
- Wenn Adoption mau: Ursachen ergruenden bevor Phase 2
Risiken + Mitigation
| Risiko | Mitigation |
|---|---|
| VFs Sparkasse ist nicht in Papierkram angebunden | Vor Tag 1 mit Andre klaeren, ggf. 30-Min-Onboarding |
| Papierkram-Saldos sind nicht echtzeit (mehrere Tage Drift) | Akzeptieren als „T-2”-Stand, Disclaimer im UI |
| Forecast-Annahmen sind initial Pflege-Last (kein Tool) | Initial JSON-File reicht; nach Adoption nach Baserow umziehen |
| TicketPay-Daten sind nicht aktuell synced | Test in Tag 1, ggf. Sync-Frequenz dort erhoehen |
| Andre nutzt es nach 1 Woche nicht mehr | Pflichtkonsultation im 1-zu-1-Call alle 2 Wochen, daraus Iteration |
Aufwand realistisch
7 Arbeitstage netto, 2-3 Wochen brutto. Plus Polish-Pufferwoche.