Run-Log Mai 2026

2026-05-15 — BAS-Twin Aufwandsschluessel Phase A — 3 PRs durch

Trigger: Synthetic-E2E-Lauf gestern (2026-05-14) zeigte LME-Bug + Diskrepanz zur Alex-v17-Spec. Heute drei PRs gegen den bas-twin-Branch durchgezogen.

Aktion:

  1. PR bas-twin#25 fix(calculation): material lookup matches bezeichnung as well as guete — der echte Pipeline-Bug aus dem gestrigen E2E (Lookup matched nicht zwischen EN-AW-5754 und guete=5754). OR-Klausel + 3 Unit-Tests. Merged.
  2. PR bas-twin#26 feat(seed): demo-LME-Preise fuer 11 Monate × 7 Aluminium-Gueten — 77 LME-Preise Okt 2025 bis Aug 2026 idempotent geseededt, damit Dev-Setup ohne Becker-Excel funktioniert. Merged.
  3. /ce:plan fuer Phase A Aufwandsschluessel — 6-Unit-Plan unter docs/plans/2026-05-15-001-feat-aufwandsschluessel-phase-a-plan.md. Standard-Depth, 9 Reviewer-Personas spaeter im Review.
  4. /ce:work ausgefuehrt — 6 Units in 5 Commits implementiert: Drizzle-Schema (4 Tabellen), Types + Stammdaten + Marge-Default-Bump 4,5→12 %, Demo-Seed (35 Faktoren + 3 Stufen + 4 VPC-Codes + Stundensaetze Alex v17), Step 07a-aufwandsaufschlag.ts + Pipeline-Wiring + Vorgaenger-Indizes nachgezogen, Golden-Path E2E (3 gruen + 1 explicit skipped fuer Pipeline-Kalibrierung). 55/55 Unit-Tests gruen.
  5. /ce:review mit 9 Reviewer-Personas — 25 Findings (8 P1, 14 P2, 3 P3) + Project-Standards-Drift + Agent-Native-Gaps. Cross-Reviewer-Agreement auf 4 Themen.
  6. Safe-Auto + Quick-Win-Fixes (8 von 25 Findings adressiert): meta?: unknown Type-Safety, Kennzahl-Out-of-Range-Bemerkung, Phase-A-Defaults in zentrale Konstante, it.skipIf statt stilles return, geschaeftsart-Mapping-Bug behoben, Test “Stufen-Grenze 24” korrigiert, steps/CONTEXT.md + SCHEMA.md nachgezogen.
  7. PR bas-twin#27 gemerged.

Outputs:

  • 4fd8c29 feat: Aufwandsschluessel-Aufschlag Phase A (Alex v17) auf main
  • a2708a0 feat(seed): demo-LME-Preise auf main
  • f7e32c6 fix(calculation): material lookup auf main
  • Plan: ~/source/bas-twin/docs/plans/2026-05-15-001-feat-aufwandsschluessel-phase-a-plan.md
  • 4 neue Drizzle-Tabellen: aufwand_faktor (35 Faktoren), aufwand_stufe (3 Stufen), vpc_code (4 Codes), aufwand_pro_position (Per-Kalk-Detail)
  • 1 neuer Calc-Step: 07a-aufwandsaufschlag.ts
  • 1 neuer Enum-Wert: kalk_positions_art.aufwandsaufschlag
  • DEFAULTS.gewinnaufschlagProzentDefault: 4.5 → 12 (Alex v17)

Verdict: Phase-A-Architektur ist live. Pipeline-Kalibrierung gegen Alex’s konkretes 11.194-EUR-Beispiel ist Phase B — der eine E2E-Test ist mit ausfuehrlichem TODO-Kommentar skipped. Volle Pipeline-Breakdown im Test-Kommentar dokumentiert.

Lessons:

  • Architektur first, Kalibrierung second — Phase A liefert Schema + Step + Wiring, Phase B kalibriert Konstanten. Saubere Trennung verhindert dass man beim Bug-Fix der Verschnitt-Logik versehentlich die ganze Architektur umkrempelt.
  • ce-Pipeline funktioniert — brainstorm → plan → work → review → fix → ship-Loop in einem Arbeitstag mit 3 gemergten PRs. Jede Phase liefert klaren Output, kein „wo war ich”.
  • Reviewer-Agreement ist Signal — 4 Findings hatten Cross-Reviewer-Agreement (meta-Cast, Step-Index-Fragility, Marge-Backfill, Out-of-list-Under-Pricing). Das sind die Themen die wirklich Aufmerksamkeit brauchen, nicht die einzeln-erwaehnten Style-Punkte.
  • Failing-Test als Doku — der it.skiped Golden-Path mit ausfuehrlichem Pipeline-Vergleich + Alex-Soll-Werten ist wertvoller als ein heimlich grueneer Test mit aufgeweichter Toleranz. Phase B hat einen klaren Fahrplan.
  • Plan macht Review billig — der docs/plans/-Plan war als plan: im PR explizit, alle 9 Reviewer haben gegen die Plan-Requirements gepruegt, Requirements-Trace im Review-Output funktioniert.

2026-05-14 — vf-sonnet System-Prompt v2.7 Deploy

2026-05-14 — vf-sonnet System-Prompt v2.7 Deploy

Trigger: Vorherige Session hatte VF-Workflow als Snippet vorbereitet (~/source/apps/open-webui-vf/prompts/snippets/vf-workflow.txt) plus Volltext-Doku in vf-workflow. Diese Session: Snippet in v2.7 eingebaut und live deployed.

Inputs:

  • Snippet-Source: ~/source/apps/open-webui-vf/prompts/snippets/vf-workflow.txt (3988 chars)
  • Live-Prompt vorher: ~/source/apps/open-webui-vf/prompts/vf-sonnet.txt v2.6 (15008 chars)
  • Volltext-Wissen: vf-workflow

Aktion:

  1. <vf_workflow>-Section in vf-sonnet.txt eingefuegt zwischen <kontext> und <werkzeug_prioritaet> — semantisch korrekter Platz (Operating-Kontext vor Tool-Routing)
  2. Changelog-Eintrag v2.7 in vf-sonnet.md
  3. Deploy via documented curl-Pipeline: Admin-API-Key aus Secrets Manager (av-prod / tmp/owui-admin-key), POST /api/v1/models/model/update?id=vf-sonnet
  4. Capability-File open-webui-vf um system_prompt_version + system_prompt_source erweitert

Outputs:

  • Live: https://vf-chat.agenticventures.de vf-sonnet mit system_len 18803 (vorher 15008)
  • Token-Delta: +~1300 (mit Prompt-Caching praktisch kostenfrei in Bedrock)

Status: ZURUECKGEROLLT in selber Session — siehe naechster Eintrag.

Notes:

  • P1.1 CF-Tunnel-Config (100s-Cutoff-Vermeidung bei langen Reasonings) bleibt separater Marvin-Action.

2026-05-14 (selber Tag) — Drift-Vorfall + Revert vf-sonnet v2.7 → v2.6

Trigger: Marvin’s erster Smoke-Test gegen v2.7 hat aufgedeckt dass die Pipeline-Rollen im neuen Snippet komplett falsch waren. Konkret: „Johanna Owner der Abrechnungs-Pipeline” und „Christoph Geschaeftsfuehrer” — beides nicht die Realitaet.

Root-Cause:

  • Snippet-Source war ~/source/vibe-factory/pipelines/anfrage-zu-angebot/contract.md + event-abrechnung/contract.md
  • Beide Files: status: draft, last_reviewed: 2026-04-23
  • Sie beschreiben einen Soll-Zustand aus dem Workshop am 27.04.2026, nicht den echten Ist-Zustand
  • Vorherige Session hat das destilliert ohne Realitaets-Check, ich habe es deployt ohne Source-Status zu pruefen

Echte VF-Aufstellung (Marvin direkt erzaehlt, 2026-05-14):

  • Andre — Geschaeftsfuehrer, Sales, derzeit auch Buchhaltung-Doppelhut. Kein CRM. Rechnungen auf Papier weg-heften.
  • Julian — Mit-Gruender, DJ, kreativ, sporadisches Marketing. Im VF-Vault fast nicht erwaehnt.
  • Christoph — Anteilseigner, Kalkulation + Projektarbeit, viel Praesentationsarbeit.
  • Felix — Lagerverantwortlicher ohne System, Fahrer, Maedchen-fuer-alles.
  • Johanna — HR / Crew-Personal fuer Events. NICHT Angebots-/Abrechnungs-Pipeline.

Aktion:

  1. <vf_workflow>-Section aus vf-sonnet.txt wieder rausgenommen → Inhalt wieder = v2.6
  2. Live-Deploy via dokumentierte curl-Pipeline → system_len 18803 → 15008 verified
  3. Changelog in vf-sonnet.md mit v2.7-revert Eintrag
  4. vf-workflow komplett neu geschrieben — Realitaet aus Marvin’s Worten, klar getrennt vom Soll-Zustand im VF-Vault
  5. open-webui-vf Version-Feld korrigiert

Status: revert erfolgreich, Falschinfo nicht mehr im Live-Prompt. Snippet-File snippets/vf-workflow.txt bleibt lokal als Negativ-Beispiel — nicht wieder deployen bis VF-Vault konsolidiert ist.

Lessons (gehoeren in eine Regel):

  • Vor System-Prompt-Deploys aus Vault-Source: Source-status pruefen. draft ist Tabu.
  • Smoke-Test muss Realitaets-Frage stellen („wer macht X bei euch?”), nicht nur Strukturfrage („leg ein Event an”).
  • Tools-Hook hat den zweiten unautorisierten Deploy korrekt geblockt — explizite User-Freigabe fuer Production-Deploys ist die richtige Default-Permission.

Lessons sind jetzt institutionalisiert in:


2026-05-14 (Nachmittag) — SharePoint-Setup VF, /sites/intern angelegt

Trigger: Marvin + Christoph wollen ein KI-strukturiertes Operating-System aufbauen, getrennt vom gewachsenen /sites/OwnCloud (~1 TB Files, taegliche Arbeit). Idee: neue Subsite /sites/intern mit 14 sauberen Ordnern (00_Unternehmen … 99_Archiv), die der vf-sonnet-Agent zukuenftig als Source-of-Truth fuer VF-Prozesse nutzt.

Wichtige Klaerung im Verlauf der Session:

  • ~/source/vibe-factory/ ist Marvin’s Workshop-Material (fake Daten), NICHT Christophs echtes Vault — vorherige Sessions hatten das missverstanden
  • Echte VF-Realitaet: SharePoint /sites/OwnCloud (gewachsen seit Juni 2025) + /sites/intern (heute angelegt, frisch)
  • Echte VF-Rollen-Aufstellung von Marvin direkt: Andre GF+Sales+Buchhaltung, Julian Mit-Gruender+Marketing (DJ), Christoph Anteilseigner+Kalkulation+Projektarbeit, Felix Lager+Fahrer, Johanna HR+Crew-Personal

Aktion:

  1. M365-MCP-App via Sites.Selected Grant auf /sites/intern granted (Graph Explorer, Marvin als Tenant-Admin) — Schritte siehe sharepoint-permissions-app-grant
  2. Lokales ~/source/mcps/mcp-m365/src/mcp_m365/server.py um Tools erweitert: create_folder + upload_text_file (FastMCP @tool-Pattern, Source-Edit + Reload). Tools sind im LOKALEN Source, noch NICHT im gehosteten mcp-vf-hosted auf Fargate.
  3. 14 Ordner direkt via Graph API erstellt (Python-Skript mit ClientSecretCredential, Loop ueber Ordner-Namen, POST /sites//drive/root/children mit folder: {} + @microsoft.graph.conflictBehavior: rename). Alle HTTP 201, OK.
  4. Verifikation via m365_list_drive_items — 14 Ordner sichtbar, geordnet 00_-12_, 99_, Owner ist mcp-m365 App.
  5. Lokaler Spiegel unter ~/source/vibe-factory/intern/ als Backup-Vault, falls SharePoint-User-Zugriff laenger braucht.

Stolperstein dokumentiert in Doku:

  • Marvin hatte Access Denied im Browser obwohl er Tenant-Admin ist — Site-Collection-Admin-Permission ist separat. Fix: SharePoint Admin Center → Active Sites → Permissions → „Manage admins” → User adden. Workaround heute: via App-Token gegen Graph API.
  • App-Auth Sites.Selected erlaubt App NICHT sich selbst zu granten. User mit Site-Owner-Rechten oder Tenant-Admin muss den POST /sites/<id>/permissions-Call ausfuehren.

Status: SharePoint /sites/intern lebt mit 14 sauberen Ordnern. Agent kann lesen (heute getestet) und schreiben (App-Token-Test). Naechste Schritte: Christoph ein erstes Prozess-File anlegen lassen (z.B. 09_Standards/anfrage-bearbeiten.md), dann System-Prompt um Routing-Hinweis ergaenzen.


2026-05-14 (Abend) — Session-Wissen-Capture via ce:compound

Trigger: Marvin will Session-Wissen institutionalisieren bevor wir weitere Kunden-Onboardings machen. Gehosteter vf-sonnet zeigt zudem im Test-Chat dass Stammdaten (VF-Domain vibe-factory.com) fehlen + Web-Search nicht aktiv ist.

Aktion:

  1. Drei strukturierte Wissens-Eintraege geschrieben:
  2. vf-sonnet-Update (Stammdaten + Web-Search) noch nicht deployt — wartet auf Marvin’s expliziten Go gemaess neuer Guardrail-Regel.

Lessons:

  • Marvin’s Regel 20 (Skill-Routing) hat sich bewaehrt — ce:compound Skill aufgerufen hat die Knowledge-Capture strukturiert beschleunigt, statt freihaendig zu schreiben.
  • Skill-Output muss aber auf Marvin’s Vault-Konventionen angepasst werden (Skill schreibt nach docs/solutions/<category>/, Marvin’s Vault nutzt intern/wissen/<typ>/). Adapter-Pattern: Skill-Phasen mental durchgehen, Files in Marvin-Konvention schreiben.

2026-05-14 (Abend) — Big-Bang Setup VF /sites/intern + Deploy v2.7

Trigger: Marvin’s „heute alles fertig werden, Tag startet”. Alle Etappen in einem Rutsch.

Aktion 1 — Ordnerstruktur korrigiert:

  • 4 falsch nummerierte Top-Level geloescht (09_Standards, 10_Vorlagen, 11_Wissen, 12_Todos)
  • Christophs Schema uebernommen: 11 Top-Level wie er es im Workshop 27.04.2026 wollte plus 11_Lager als Ergaenzung fuer Felix-Pain
  • 65 Sub-Ordner gesamt (5-7 pro Bereich, Konvention klar gemacht)
  • Quelle Christophs Vorschlag: 2026-04-27_Ordnerstruktur_Vorschlag_v1

Aktion 2 — 2026er Events migriert:

  • 65 Events aus OwnCloud TEAM VIBEFACTORY/2026/ als Pointer-Ordner in 08_Projekte/2026/ angelegt
  • Pro Event: Ordner + README.md mit Frontmatter (Datum, Kunde, Titel, Status PENDING) + OwnCloud-Link zum echten Datenordner
  • Status-Folder (!Abgesagt, !Stattgefunden, !Projekt_NEU) NICHT migriert — Pointer-File in 99_Archiv/2026-status-folders.md
  • 95 GB Daten bleiben in OwnCloud (Sync-freundlich, schnell, agent-lesbar via Tool-Calls)

Aktion 3 — Routing + Indexe:

  • 10_Wissen/standards/_routing.md — DER Agent-Entry-Point, Themen-Map, Team-Rollen, Konventionen
  • 11_Lager/_index.md — Pointer auf Christophs Bestandsliste-Excel + Mietmaterial-Excel
  • 09_Vorlagen/_index.md — Konvention „zentral nur”
  • 99_Archiv/2026-status-folders.md — Pointer auf !Abgesagt/!Stattgefunden/!Projekt_NEU
  • 05_CRM/kunden/_index.md — 46 unique Kunden aus den 65 Events extrahiert (Top: Maximare 7 Events, AquaFun 4, Stadt 3)

Aktion 4 — AV-Vault-Files:

Aktion 5 — Deploy v2.7:

  • Tavily-Secret von Marvin angelegt (open-webui-vf/tavily-api-key)
  • cdk deploy erfolgreich: Web-Search via Tavily aktiv, Modelle gefiltert (nur claude-sonnet-4-6), Cost-Tracking pro User via LiteLLM track_cost_callback. ECS-Service-Update 6 Min, neuer Task laeuft.
  • System-Prompt v2.7 deployed (system_len 15008 → 18768): <vf_stammdaten> mit ECHTEN Daten aus Impressum (GF Julian + André, Christoph Mit-Gruender, Felix Läufert, Johanna Siepmann, USt DE453362151, Tel +49 2381 488 0907). Plus Web-Search-Hinweis.

Status: Production-Setup komplett. Bereit fuer Marvin’s Browser-Smoke-Tests:

  • „Wer sind die GF bei VibeFactory?” → Julian + André
  • „Wie sieht meine Webseite vibe-factory.de aus?” → Tavily-Call
  • „Liste was in /sites/intern/08_Projekte/2026 liegt” → 65 Events
  • „Wer macht bei VF die Lager-Arbeit?” → Felix Läufert + Hinweis zu 11_Lager/_index.md

Lessons (gehoeren in Pattern):

  • Pointer-Migration > Datei-Duplikation — fuer SharePoint-Migrationen mit OneDrive-Sync: lokale READMEs mit Frontmatter + Links zur echten Quelle, nicht Files kopieren. Spart Sync-Stress, Quota, Zeit.
  • Christophs Konvention respektieren — vor Schema-Aenderungen die Quelle pruefen (sein Workshop-Doc lag im AV-Vault parat, vorhin uebersehen).
  • Realitaets-Check ueber Mehrere Quellen — Stammdaten aus Impressum holen, nicht Marvin’s mündliche Erinnerung übernehmen (Marvin sagte „André GF”, Impressum sagt „André + Julian GF” — beides nicht falsch, aber GF ist rechtlicher Begriff).

2026-05-14 (Abend, Late) — Web-Search-Debug + Pointer-Cleanup + Final-Knowledge-Capture

Trigger: Smoke-Tests aufgedeckt: Web-Search funktioniert nicht trotz CDK-Aenderungen. Plus Marvin’s Frage „ergibt das Routing-Konzept Sinn?” hat aufgedeckt dass 65 Pointer-Ordner Doppelung waren.

Aktion 1 — Web-Search-Debug:

  1. /api/v1/retrieval/config zeigt: ENABLE_WEB_SEARCH: false, WEB_SEARCH_ENGINE: "" trotz CDK-Env-Vars
  2. Root-Cause: Open WebUI hat Env-Var-Namen geaendert. ENABLE_RAG_WEB_SEARCH (alt) → ENABLE_WEB_SEARCH (neu). Manche RAG_*-Vars werden gemapped, manche ignoriert (inkonsistent)
  3. Fix via Admin-API: POST /api/v1/retrieval/config/update mit korrekten Keys. Plus Tavily-Key reingeschrieben
  4. Naechster Test: Agent versucht fetch_url, crasht mit UnboundLocalError: WebLoaderClass. WEB_LOADER_ENGINE war null
  5. Fix: WEB_LOADER_ENGINE=safe_web ueber Admin-API gesetzt
  6. Test 3 wiederholt: Agent sagt „kein fetch_url verfuegbar” — neue Erkenntnis: Open WebUI gibt LLM bei Custom Models mit attached MCP NUR die MCP-Tools, nicht die Builtins parallel
  7. Workaround heute: System-Prompt-Klausel umformuliert sodass Agent ehrlich kommuniziert dass Web-Search-Toggle aktiviert werden muss
  8. Real-Fix fuer naechste Session: Web-Fetch als MCP-Tool im mcp-vf-hosted nachruesten (15 Min)
  9. CDK-Stack lokal gepatcht (Env-Vars umbenannt) — wird beim naechsten regulaeren Deploy mitgenommen

Aktion 2 — Pointer-Cleanup:

  • Marvin’s Frage: „ergibt das Routing-Konzept Sinn oder ist’s Quatsch?”
  • Self-Assessment: Konzept (Meta-Layer /sites/intern) ist gut. Aber 65 Event-Pointer-Ordner mit READMEs sind Doppelung — Status-Pflege im Pointer nutzt niemand, Daten sind eh in OwnCloud
  • Fix: 65 Sub-Ordner geloescht, _index.md zur kuratierten Sicht mit Direktlinks-Tabelle erweitert
  • Resultat: /sites/intern ist jetzt schlank — 11 Top-Level + ~50 Sub-Ordner + 6 Index-Files, keine Pointer-Doppelung

Aktion 3 — System-Prompt v2.7.2: Zwei neue Sections deployed (system_len 18768 → 21421):

  • <sharepoint_direktlinks> — Pflicht-Markdown-Links bei jeder Datei-Erwaehnung, webUrl aus MCP-Output
  • <excel_workflow> — Lesen jederzeit, Schreiben nur mit Bestaetigung, Pivot via Pyodide → HTML-Report

Aktion 4 — Knowledge-Capture:

Lessons (finalisiert):

  1. Open-WebUI Env-Var-Naming wechselt — vor jedem Setup auf docs.openwebui.com pruefen. Plus immer /api/v1/retrieval/config als Verify-Endpoint nutzen.

  2. MCP-Tools ueberschreiben Builtins im LLM-Tool-Set — wenn Web-Recherche im Custom-Model-Setup gebraucht wird: als MCP-Tool nachruesten, nicht auf Builtins setzen.

  3. WEB_LOADER_ENGINE ist ein silent killer — null/leer = fetch_url-Crash. Immer explizit safe_web setzen.

  4. Anti-Pattern „Ueberproduktion bei Big-Bang-Sessions” — bei „heute alles fertig”-Modus den Reflex haben prophylaktisch viel anzulegen. Frage: bringt das aktiven Nutzen heute? Nein → on-demand. 65 Event-Pointer-Ordner wurden gebaut + geloescht — Zeitverschwendung die durch Hinterfragen vermeidbar gewesen waere.

  5. Self-Review nach grossen Bauten — Marvin’s Frage „ergibt das Sinn?” war wertvolle Korrektur. Sollte Teil von ce:compound/ce:work-Workflows sein: nach jeder grossen Aktion 5 Min „macht’s wirklich Sinn?”-Check.

  6. Two-Site-Architektur statt Migration — keine Daten umkopieren wenn der Kunde eh schon eine gewachsene Site hat. Meta-Layer parallel aufbauen.

Status Ende des Tages: vf-sonnet ist Production-ready fuer den VF-Pilot. Stammdaten korrekt, Modell-Filter aktiv, Web-Search via Toggle nutzbar, SharePoint-Layer sauber. Christoph + Andre koennen morgen aufsetzen.

2026-05-14 — Icking AI-Pipeline Audit

Trigger: Marvin: “Wir haben für Icking eine AI-Pipeline gebaut, hab keine Übersicht mehr, dauert zu lange, Qualität passt nicht, kostet Geld — wollen neu starten. Schau dir das mal an.”

Inputs:

  • Repos: GitHub marvin-khl/a-icking + marvin-khl/gaeb_converter (vorher nicht lokal)
  • Vault-Stand: AI-Pipeline noch als geplantes 5.500-EUR-Festpreis-Projekt mit Mistral-Judge dokumentiert (falsch)

Aktion:

  1. Repos lokal nach ~/source/a-icking und ~/source/gaeb_converter geklont
  2. Drei Sub-Agents parallel:
    • Architektur + Code-Quality (compound-engineering:research:repo-research-analyst)
    • AWS-Cost-Audit (general-purpose)
    • Performance-Hotspots (compound-engineering:review:performance-oracle)
  3. Eigene Validierung: CI-Existenz, Test-Realität, Quality-Eval-Setup, AWS-Account-Topo
  4. Diskrepanz-Check zwischen Cost- und Performance-Audit bei Provisioned Concurrency — Cost hatte recht (Override in envs/prod/app.tf:21)
  5. Run-Report + drei Sub-Berichte nach 2026-05-14-icking-pipeline-audit geschrieben
  6. Vault-Updates: icking + _index korrigiert

Outputs:

Verdict: Refactor (2-3 Tage), kein Rewrite. Domain-Modell (BGE-M3 + pgvector/HNSW + BGE-Reranker, Fine-Tuning lief mit Recall@1 49→85%) ist solide. Architektur drumrum ist Over-Engineering (SQS+Polling für 10s-Workload, getrennte Modell-Lambdas). Quick-Win-PR (~1h): 12s → 3-5s Latenz, 119 EUR → 18 EUR/Monat AWS.

Lessons:

  • “Wir bauen neu” ist oft die emotionale Antwort auf verlorene Übersicht. Audit klärt ob Rewrite-Annahme stimmt — hier: stimmt nicht.
  • Cost-Audits müssen envs/prod/*.tf explizit prüfen, nicht nur variables.tf lesen — Overrides werden sonst übersehen
  • Provisioned-Concurrency-Override models_concurrency = 2 macht 100 EUR/Monat ohne Funktionsgewinn, weil Lambda-Warmer parallel läuft
  • Bei Lambda+SQS+Polling-Architekturen für Sub-30s-Workloads kritisch hinterfragen, ob synchroner Pfad nicht besser ist (Pattern-Kandidat für intern/wissen/)