feat(founding-wizard): Gründungs-Wizard für 2-Mann GmbH + 14 Notar-Templates

[migration-approved]

Templates (Migrations 123-136):
- 123 GO-GF (Geschäftsordnung Geschäftsführung)
- 124 SHA (Shareholders' Agreement, 56 Platzhalter)
- 125 Satzung (Articles of Association mit UG-Variante)
- 126 GF-Dienstvertrag (Trennungsprinzip Organ/Anstellung)
- 127 Arbeitsvertrag (AGG-neutral, NachwG, eAU)
- 128 Gesellschafterliste (§ 40 GmbHG)
- 129 GF-Bestellungsbeschluss (mit § 6 Abs. 2 Versicherung)
- 130 HRB-Anmeldung (§§ 7, 8, 39 GmbHG, § 12 HGB)
- 131 IP-Assignment Agreement (Gründer→GmbH)
- 132 Term Sheet (Pre-Seed/Seed VC-Standard)
- 133 Wandeldarlehensvertrag (Convertible Loan)
- 134 Beteiligungsvertrag (Subscription Agreement)
- 135 ESOP/VSOP-Plan (3 Varianten)
- 136 Cap Table

Kategorisierung (Migrations 137-138):
- ALTER TABLE compliance_legal_templates ADD lifecycle_stage TEXT[],
  functional_category TEXT (mit CHECK Constraints + GIN-Index)
- Backfill aller 105 Templates: lifecycle_stage (pre_founding|founding|
  startup|kmu|konzern) + functional_category (founding_legal|employment|
  investor_funding|...)

Backend Founding-Wizard Service:
- template_renderer.py: Handlebars-light ({{VAR}}, {{#IF FLAG}}...{{/IF}})
- wizard_to_context.py: Mapping Wizard-State → SCREAMING_SNAKE_CASE Vars
- markdown_to_docx.py: Markdown → DOCX via python-docx
- founding_wizard_routes.py: POST /v1/founding-wizard/generate
  → liefert base64-DOCX-Files für ausgewählte Templates

Frontend Founding-Wizard (/sdk/founding-wizard):
- 8-Step Wizard (Basics, Gesellschafter, GF, Kapital, Notar, SHA, GF-Verträge, Generate)
- useFoundingWizardForm Hook mit localStorage-Persistenz
- TypeScript Code-Registry (template-categories.ts) als Backup zur DB
- Word-Download via data:URLs (base64)

Tests:
- 20 Unit-Tests grün (Renderer, Context-Mapping, DOCX-Conversion)
- Playwright E2E-Test mit 2-Mann GmbH (Benjamin + Sharang) Test-Daten
This commit is contained in:
Benjamin Admin
2026-05-20 09:30:51 +02:00
parent 98ec6d4284
commit 7a5f1e48dd
33 changed files with 6725 additions and 0 deletions
@@ -0,0 +1,264 @@
-- Migration 132: Term Sheet Template (Pre-Seed / Seed / Series A)
-- Indikative Investitionsabsichtserklaerung, ueberwiegend nicht-bindend
-- Bindende Elemente: §§ 12 Exklusivitaet, 13 Vertraulichkeit, 14 Kosten, 15 Recht/Gerichtsstand
-- Orientiert an BvK Mustertexten und VC-Standards (Pre-Seed bis Series A)
-- Optionale Bloecke: HAS_HRB, HAS_TRANCHES, IS_PREFERRED_SHARES/IS_COMMON_SHARES,
-- HAS_LIQUIDATION_PREFERENCE, IS_PARTICIPATING, HAS_ANTI_DILUTION, HAS_BOARD_SEAT, HAS_OBSERVER,
-- COMPANY_PAYS_COSTS / EACH_PARTY_PAYS
INSERT INTO compliance_legal_templates (
id, tenant_id, document_type, title, description, content,
placeholders, language, jurisdiction,
license_id, license_name, source_name,
attribution_required, is_complete_document, version, status,
created_at, updated_at
) SELECT
gen_random_uuid(),
'9282a473-5c95-4b3a-bf78-0ecc0ec71d3e',
'term_sheet',
'Term Sheet (Investitionsangebot)',
'Indikative Investitionsabsichtserklaerung fuer Venture Capital / Angel Investments in Pre-Seed-, Seed- oder Series-A-Phase. Strukturiert nach VC-Standards (BvK, EVCA, YC SAFE). Enthaelt alle wesentlichen Konditionen (Bewertung, Tranching, Vorzugsrechte, Liquidation Preference, Anti-Dilution, Vesting, Drag/Tag-Along, ESOP-Pool, Pre-emptive Rights, ROFR, Closing Conditions, Due Diligence). Bindende Klauseln: Exklusivitaet, Vertraulichkeit, Kostentragung, Rechtswahl. Skalierbar fuer verschiedene Investorentypen (Angel, VC, Strategischer) und Investmentstrukturen (Preferred/Common, Single Tranche/Multi Tranche, mit/ohne Boardsitz).',
$template$
# Term Sheet Investitionsangebot
**Indikative, nicht-bindende Vorvereinbarung zur geplanten Investition in {{COMPANY_NAME}}**
zwischen
**{{INVESTOR_NAME}}** (Investor")
und
**{{COMPANY_NAME}}**, {{COMPANY_ADDRESS}}{{#IF HAS_HRB}}, eingetragen unter HRB {{HRB_NUMBER}}{{/IF}} („Gesellschaft")
und
**den in Anlage A genannten Gründern** ("Gründer")
---
## Dokumentenkontrolle
| Feld | Wert |
|---|---|
| Vertragstyp | Term Sheet (Investitionsabsichtserklärung) |
| Stand | {{TERM_SHEET_DATE}} |
| Investment-Phase | {{INVESTMENT_PHASE}} (z.B. Pre-Seed, Seed, Series A) |
| Bindungswirkung | Indikativ, nicht-bindend (Ausnahmen: §§ 12-14) |
| Gültigkeit / Exklusivität bis | {{EXCLUSIVITY_END_DATE}} |
> **Hinweis:** Dieses Term Sheet beschreibt die wesentlichen Bedingungen der geplanten Investition. Es ist außer in den ausdrücklich gekennzeichneten Punkten (Exklusivität, Vertraulichkeit, Kostentragung, anwendbares Recht) **rechtlich nicht bindend**. Verbindlich werden die Konditionen erst durch Abschluss des Beteiligungs- und Gesellschaftervertrages (Definitive Documents") in notarieller Form.
---
## § 1 Investitionsstruktur
| Punkt | Wert |
|---|---|
| **Investitionsbetrag** | {{INVESTMENT_AMOUNT_EUR}} EUR |
| **Pre-Money-Bewertung** | {{PRE_MONEY_VALUATION_EUR}} EUR |
| **Post-Money-Bewertung** | {{POST_MONEY_VALUATION_EUR}} EUR |
| **Investitions-Instrument** | {{INVESTMENT_INSTRUMENT}} (z.B. Stammanteile, Vorzugsanteile, Wandeldarlehen, SAFE) |
| **Resultierende Beteiligung Investor** | {{INVESTOR_STAKE_PCT}} % am Post-Money-Stammkapital |
| **Geplantes Closing-Datum** | {{TARGET_CLOSING_DATE}} |
### 1.1 Tranching
{{#IF HAS_TRANCHES}}
Das Investment wird in folgenden Tranchen ausgezahlt:
{{TRANCHES_TABLE}}
{{/IF}}
{{#IF NOT HAS_TRANCHES}}
Das Investment wird in einer einzigen Tranche zum Closing-Datum ausgezahlt.
{{/IF}}
## § 2 Verwendung der Mittel (Use of Proceeds)
Die Investitionsmittel werden insbesondere verwendet für:
{{USE_OF_PROCEEDS}}
## § 3 Aktien-/Anteilsklassen und Vorzugsrechte
### 3.1 Anteilsklasse
{{#IF IS_PREFERRED_SHARES}}
Der Investor erhält **Vorzugsanteile (Preferred Shares)** mit den nachfolgend beschriebenen Vorzugsrechten.
{{/IF}}
{{#IF IS_COMMON_SHARES}}
Der Investor erhält **Stammanteile (Common Shares)** ohne besondere Vorzugsrechte.
{{/IF}}
### 3.2 Liquidation Preference
{{#IF HAS_LIQUIDATION_PREFERENCE}}
Im Falle eines Liquidationsereignisses (Exit, Verkauf, Liquidation der Gesellschaft) erhält der Investor:
- **{{LIQ_PREF_MULTIPLIER}}× non-participating Liquidation Preference** (1× ist marktstandard für Seed/Pre-Seed)
- Nach Erhalt der Preference partizipiert der Investor **{{#IF IS_PARTICIPATING}}vollständig (Participating){{/IF}}{{#IF NOT IS_PARTICIPATING}}nicht weiter (Non-Participating){{/IF}}** an verbleibenden Erlösen.
- Bei Non-Participating: Wahlrecht zwischen Preference oder pro-rata Erlös, je nachdem was höher ist (Standard).
{{/IF}}
### 3.3 Anti-Dilution Schutz
{{#IF HAS_ANTI_DILUTION}}
Bei künftigen Finanzierungsrunden zu einem Preis pro Anteil **unter** dem in dieser Runde gezahlten Preis greift folgender Verwässerungsschutz:
- **Methode:** {{ANTI_DILUTION_METHOD}} (Standard: Broad-Based Weighted Average)
- **Ausnahmen:** ESOP-Pool-Allokationen, Bonus-Anteile bei Akquisitionen, Pflichtwandlungen
{{/IF}}
### 3.4 Mitspracherechte (Reserved Matters)
Der Investor erhält ein Vetorecht bei wesentlichen Entscheidungen, insbesondere:
- Änderung der Satzung/des SHA
- Aufnahme weiterer Gesellschafter, neue Anteilsausgaben
- Aufnahme von Krediten > {{LOAN_THRESHOLD_EUR}} EUR
- Verkauf wesentlicher Vermögenswerte
- Änderung des Geschäftsmodells
- Bestellung/Abberufung Geschäftsführer
- Beschluss über ESOP-Plan
- Liquidations- oder Insolvenzentscheidungen
Detaillierte Reserved Matters-Liste folgt im SHA (typischerweise 12-18 Punkte).
## § 4 Governance
### 4.1 Beirat / Board
{{#IF HAS_BOARD_SEAT}}
- **Größe:** {{BOARD_SIZE}} Mitglieder
- **Investor-Sitze:** {{INVESTOR_BOARD_SEATS}} Sitz(e)
- **Gründer-Sitze:** {{FOUNDER_BOARD_SEATS}} Sitz(e)
- **Unabhängige:** {{INDEPENDENT_BOARD_SEATS}} Sitz(e)
- **Sitzungsfrequenz:** mindestens {{BOARD_MEETING_FREQ}}
- **Observer Rights:** {{#IF HAS_OBSERVER}}Ja, für nicht-stimmberechtigte Investoren{{/IF}}{{#IF NOT HAS_OBSERVER}}Keine{{/IF}}
{{/IF}}
### 4.2 Informationsrechte
Der Investor erhält folgende Mindest-Informationsrechte:
- **Monatlich:** Liquiditätsbericht, KPI-Dashboard
- **Quartalsweise:** Quartalsabschluss (P&L, Bilanz, Cashflow), Status Risk Register
- **Jährlich:** Auditierter Jahresabschluss innerhalb {{ANNUAL_REPORT_MONTHS}} Monaten nach GJ-Ende
- **Ad hoc:** Materielle Ereignisse, drohende Liquiditätsrisiken, rechtliche Verfahren
## § 5 Vesting und Founder Lock-up
### 5.1 Founder Vesting
Die Gründer unterliegen einem (Re-)Vesting:
- **Dauer:** {{VESTING_MONTHS}} Monate
- **Cliff:** {{CLIFF_MONTHS}} Monate
- **Vesting-Beginn:** {{VESTING_START_REF}}
- **Acceleration bei Exit:** Single-Trigger bei Sale of >{{ACCELERATION_THRESHOLD_PCT}}% der Anteile
### 5.2 Founder Lock-up
Die Gründer verpflichten sich für {{FOUNDER_LOCKUP_MONTHS}} Monate nach Closing zu **Full-Time-Commitment** zur Gesellschaft. Ausnahmen werden im SHA spezifiziert.
## § 6 Drag-Along und Tag-Along
- **Drag-Along-Schwelle:** {{DRAG_ALONG_THRESHOLD_PCT}} % (Standard 75 %)
- **Tag-Along ab:** {{TAG_ALONG_THRESHOLD_PCT}} % Anteilsverkauf eines Gründers
- **Same-Terms-Prinzip:** Alle Gesellschafter erhalten identische wirtschaftliche Konditionen
## § 7 ESOP / Mitarbeiter-Beteiligung
- **Aktueller ESOP-Pool:** {{CURRENT_ESOP_PCT}} %
- **Ziel-ESOP-Pool nach Investment:** {{TARGET_ESOP_PCT}} %
- **Pre-Money oder Post-Money Pool Top-up:** {{ESOP_TOP_UP_TIMING}} (Standard: Pre-Money — Gründer tragen Verwässerung)
## § 8 Pre-emptive Rights (Bezugsrechte)
Der Investor erhält bei künftigen Finanzierungsrunden ein Pro-Rata-Bezugsrecht, um seine Beteiligungsquote aufrechtzuerhalten.
## § 9 Right of First Refusal (ROFR) / Co-Sale
Bei Anteilsverkäufen durch Gründer:
- **ROFR:** Investor hat Vorkaufsrecht (14-Tage-Frist)
- **Co-Sale-Right:** Investor kann pro-rata mitverkaufen, falls ROFR nicht ausgeübt wird
## § 10 Closing-Conditions
Das Closing ist u.a. an folgende Bedingungen geknüpft:
- Erfolgreiche Due Diligence (rechtlich, technisch, finanziell)
- Abschluss aller Definitive Documents (Beteiligungsvertrag, SHA, ggf. Satzungsänderung)
- Bestätigung der IP-Übertragung von den Gründern auf die Gesellschaft
- Keine wesentliche nachteilige Veränderung („Material Adverse Change")
- Erforderliche Genehmigungen (insb. ggf. behördliche Anzeigen)
- Existenz/Anpassung relevanter Anstellungsverträge der Schlüsselpersonen
## § 11 Due Diligence
Der Investor wird eine Due Diligence durchführen mit Schwerpunkt auf:
- **Legal:** Satzung, SHA, IP, Verträge, Compliance
- **Technical:** Architektur, Skalierbarkeit, IP-Sicherung, Open-Source-Compliance
- **Financial:** Liquidität, Cap Table, Forecasts, Unit Economics
- **Commercial:** Kundenbasis, Markt, Wettbewerb
Die Gesellschaft sichert volle Kooperation zu und stellt einen Datenraum zur Verfügung.
---
## **§ 12 EXKLUSIVITÄT (BINDEND)**
Die Gesellschaft und die Gründer verpflichten sich für einen Zeitraum von **{{EXCLUSIVITY_WEEKS}} Wochen** ab Unterzeichnung dieses Term Sheets (Exklusivitätsperiode"), keine Verhandlungen mit anderen potenziellen Investoren über eine vergleichbare Beteiligung zu führen und keinerlei Investitionsangebote Dritter anzunehmen.
## **§ 13 VERTRAULICHKEIT (BINDEND)**
Beide Parteien behandeln den Inhalt dieses Term Sheets sowie alle im Zusammenhang ausgetauschten Informationen vertraulich. Ausnahmen: Offenlegung gegenüber Beratern unter Verschwiegenheitspflicht oder bei gesetzlicher Pflicht.
## **§ 14 KOSTENTRAGUNG (BINDEND)**
{{#IF COMPANY_PAYS_COSTS}}
Die Gesellschaft trägt die angemessenen Rechts- und Beratungskosten des Investors bis zu einem Höchstbetrag von **{{LEGAL_COST_CAP_EUR}} EUR**, fällig bei Closing.
Bei Nicht-Closing aufgrund von Gründen, die der Gesellschaft oder den Gründern zuzurechnen sind, ist eine Erstattung dieser Kosten ebenfalls geschuldet (gedeckelt).
{{/IF}}
{{#IF EACH_PARTY_PAYS}}
Jede Partei trägt ihre eigenen Kosten.
{{/IF}}
## § 15 Anwendbares Recht, Gerichtsstand (BINDEND)
Es gilt deutsches Recht. Gerichtsstand ist der Sitz der Gesellschaft. Streitigkeiten werden, soweit zulässig, durch Mediation versucht beizulegen.
---
## § 16 Sonstiges
(1) **Endgültigkeit der Definitive Documents:** Im Kollisionsfall zwischen diesem Term Sheet und den endgültigen Verträgen (Beteiligungsvertrag, SHA, Satzung) gehen die Definitive Documents vor.
(2) **Verfall:** Dieses Term Sheet verfällt, falls bis zum {{TERM_SHEET_EXPIRY_DATE}} keine Definitive Documents abgeschlossen oder das Closing vollzogen wurde, sofern nicht beide Parteien einer Verlängerung in Textform zustimmen.
(3) **Sprache:** Verbindlich ist die deutsche Fassung. Eine englische Übersetzung ist nur informatorisch.
---
**{{SIGNATURE_LOCATION}}, {{TERM_SHEET_DATE}}**
___________________________
Für den Investor
{{INVESTOR_NAME}} / {{INVESTOR_REPRESENTATIVE}}
___________________________
Für die Gesellschaft
{{COMPANY_REPRESENTATIVE}}
{{FOUNDER_SIGNATURES}}
---
## Anlage A — Gründer / Gesellschafter
{{FOUNDERS_LIST_DETAILS}}
## Anlage B — Cap Table (vor und nach Investment)
{{CAP_TABLE_PRE_POST}}
$template$,
'["INVESTOR_NAME","INVESTOR_REPRESENTATIVE","COMPANY_NAME","COMPANY_ADDRESS","COMPANY_REPRESENTATIVE","COMPANY_REGISTRY_COURT","HRB_NUMBER","HAS_HRB","TERM_SHEET_DATE","INVESTMENT_PHASE","EXCLUSIVITY_END_DATE","TERM_SHEET_EXPIRY_DATE","INVESTMENT_AMOUNT_EUR","PRE_MONEY_VALUATION_EUR","POST_MONEY_VALUATION_EUR","INVESTMENT_INSTRUMENT","INVESTOR_STAKE_PCT","TARGET_CLOSING_DATE","HAS_TRANCHES","TRANCHES_TABLE","USE_OF_PROCEEDS","IS_PREFERRED_SHARES","IS_COMMON_SHARES","HAS_LIQUIDATION_PREFERENCE","LIQ_PREF_MULTIPLIER","IS_PARTICIPATING","HAS_ANTI_DILUTION","ANTI_DILUTION_METHOD","LOAN_THRESHOLD_EUR","HAS_BOARD_SEAT","BOARD_SIZE","INVESTOR_BOARD_SEATS","FOUNDER_BOARD_SEATS","INDEPENDENT_BOARD_SEATS","BOARD_MEETING_FREQ","HAS_OBSERVER","ANNUAL_REPORT_MONTHS","VESTING_MONTHS","CLIFF_MONTHS","VESTING_START_REF","ACCELERATION_THRESHOLD_PCT","FOUNDER_LOCKUP_MONTHS","DRAG_ALONG_THRESHOLD_PCT","TAG_ALONG_THRESHOLD_PCT","CURRENT_ESOP_PCT","TARGET_ESOP_PCT","ESOP_TOP_UP_TIMING","EXCLUSIVITY_WEEKS","COMPANY_PAYS_COSTS","EACH_PARTY_PAYS","LEGAL_COST_CAP_EUR","SIGNATURE_LOCATION","FOUNDER_SIGNATURES","FOUNDERS_LIST_DETAILS","CAP_TABLE_PRE_POST"]'::jsonb,
'de','DE',NULL,'MIT License','BreakPilot Compliance',false,true,'1.0.0','published',NOW(),NOW()
;
SELECT document_type, title, LENGTH(content), jsonb_array_length(placeholders) FROM compliance_legal_templates WHERE document_type = 'term_sheet' ORDER BY created_at DESC LIMIT 1;