Commit Graph

165 Commits

Author SHA1 Message Date
Sharang Parnerkar
6b08ce6b6a pitch-deck: fix HEUTE pill clipped behind milestone cards
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m6s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 31s
CI / test-python-voice (push) Successful in 27s
CI / test-bqas (push) Successful in 33s
Move pill from SVG (behind HTML) to an absolutely-positioned HTML div
with zIndex:10 so it always renders above the milestone cards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 11:31:23 +02:00
Sharang Parnerkar
e0a3ff5ca9 pitch-deck: fix timeline overlap with tip/progress badges in MilestonesSlide
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m9s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 31s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 29s
Increase timeline marginTop from 14→68 so it clears the absolute-positioned
Tip and Fortschritt elements at top:36.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 11:20:41 +02:00
Sharang Parnerkar
b3baf603ee pitch-deck: remove duplicate in-canvas headings from USP and Milestones slides
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m9s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 28s
CI / test-bqas (push) Successful in 31s
Keep only the top-level GradientText h2; drop the redundant h1 and kicker
inside each slide canvas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 11:11:38 +02:00
Sharang Parnerkar
c0c44adaaa pitch-deck: light mode support + MilestonesSlide redesign
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 28s
CI / test-bqas (push) Successful in 32s
- ArchitectureSlide: full light mode via useIsLight() hook, all inline styles adapt
- USPSlide: full light mode via useIsLight() hook, all inline styles adapt
- MilestonesSlide: new component — horizontal timeline with past/HEUTE/future,
  THEMES object (dark + light), clickable milestone nodes and stat cards with
  detail modal, bilingual (de/en), scaling via ResizeObserver
- PitchDeck: register new 'milestones' slide case

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 10:34:36 +02:00
Sharang Parnerkar
8a4e196864 feat(pitch-deck): redesign USP slide with symmetric bridge composition
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 30s
Port Claude Design's USP v2 exactly: Compliance ↔ Code bridge with a
central glowing orb, two pillar rows per column, animated SVG flow
connectors, and four Under-the-Hood feature cards with live tickers.

Detail modal (Framer Motion AnimatePresence) slides in on click for
all 9 interactive elements. Star field background. All text is our
actual content (RFQ Verification, Process Compliance, Bidirectional
Sync, Continuous, End-to-End Traceability, Compliance Optimizer,
EU Trust Stack, killer quote). Full DE/EN i18n.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 10:03:18 +02:00
Sharang Parnerkar
34e2614e36 feat(pitch-deck): redesign architecture slide with V4 layered stack
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m27s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 41s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 31s
Port Claude Design's V4 design exactly: three 3D perspective slabs
(Application / Gateway / Infrastructure) with animated data-flow connectors
between them, per-node live activity tickers, and a slide-up detail panel.

Replaces metro map with V4's floating slab aesthetic — dark purple gradient
background, CSS perspective rotateX transforms, JetBrains Mono terminal
tickers, amber LiteLLM hub with pulse indicator. All node data (titles,
tech stacks, services) preserved from previous design.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 09:06:45 +02:00
Sharang Parnerkar
ac8ef371ff fix(pitch-deck): center mandants strip and fix LiteLLM overlap
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 30s
- Remove flex-1 trailing divider that was pushing pills left
- Increase map height 420→480px to give clearance between app labels and gateway circle
- Update SVG viewBox to 0 0 1100 480 (consistent with CONNS coordinates)
- Update cy% for all nodes to match new 480px coordinate space (app 22.1%, gateway 50%, inference 80%)
- Update SEP1/SEP2 to 36%/65% for new height
- Update all SVG element y-coords: track lines, tick marks, junction dots, gateway stub

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 23:48:33 +02:00
Sharang Parnerkar
e37aecab18 redesign ArchitectureSlide with metro/subway map theme
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m17s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 32s
- Replace rectangular cards with circular station nodes on metro tracks
- Right-angle SVG paths only (no distortion with preserveAspectRatio=none)
- Animated data packet flows along tracks, bidirectional MCP arc
- LiteLLM hub enlarged (82px), centered mandants strip
- Vertical tier labels, BSI badges, junction corner dots
- Preserve all node data, detail panel, i18n, TokenTicker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 23:39:46 +02:00
Sharang Parnerkar
ecc1423a4f redesign ArchitectureSlide: COMPLAI/CERTifAI/Scanner + EU-only infra
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Successful in 33s
- New architecture: CERTifAI (GenAI portal), COMPLAI (compliance), Scanner
  (code security) — MCP bidirectional connection between COMPLAI and Scanner
- LiteLLM hub: token budget, PII guardrails, anon web search, no US providers
- Inference layer: Qwen3/DeepSeek (local LLM), bge-m3 embeddings, AI Tools
- Fix hover snapping: position wrapper (div) separate from scale (motion.button)
- Always-on data traffic packets on all connections
- Bidirectional MCP packets + MCP badge between COMPLAI and Scanner
- Live token ticker counter on active inference nodes
- BSI/EU sovereign badges on tier labels
- Spinning dashed ring on active LiteLLM hub
- Secondary infra chips in GenAI tier (PostgreSQL, Gitea, Orca, etc.)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:46:40 +02:00
Sharang Parnerkar
497be5fac9 redesign ArchitectureSlide with island map aesthetic + turbopack dev
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m36s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 41s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 33s
- Replace grid/SVG-line layout with archipelago map: organic island blobs,
  quadratic bezier sea routes, circular map-marker nodes
- Fix SVG distortion: all strokes use vectorEffect=non-scaling-stroke
- No more preserveAspectRatio=none diagonal-line warping
- LiteLLM hub gets spinning ring + ripple pulse on active
- Ocean background with per-tier radial glows, dot grid, zone labels
- Switch dev server to --turbopack for faster HMR

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:26:12 +02:00
Benjamin Admin
11431bbf4e feat(pitch-deck): feature matrix grouped by theme, stars for unique features
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m19s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 35s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 32s
- Group features into 7 thematic sections with colored headers
- Set isDiff=true (star) for all features where only ComplAI has it
- USP slide: remove "ohne es zu brechen" from quote
- Product slide: Privacy-Hardware card colored (emerald) like Cloud card

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 20:17:40 +02:00
Benjamin Admin
fcac514d9f fix(pitch-deck): GESAMTUMSATZ sum, Engineering stats, betriebliche accordion
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 31s
- Fix GESAMTUMSATZ: only sum section='revenue' rows (not price/quantity)
- Fix Materialaufwand SUMME: only sum section='cost' rows
- Kunden GESAMT: trust DB values instead of wrong frontend recompute
- Engineering: 500K+ LoC, 385 RAG docs, 25K+ controls, remove modules card
- Betriebliche Aufwendungen: clickable category headers with ▸/▾ toggle

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 20:05:27 +02:00
Benjamin Admin
da4dcdca32 fix(pitch-deck): remove Use of Funds, GTM slide; move Assumptions after Finanzplan
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 38s
CI / test-bqas (push) Successful in 33s
- Remove Use of Funds card from The Ask slide
- Remove Go-to-Market slide from deck
- Move Annahmen & Sensitivität after Finanzplan in slide order
- Update sidebar names in both DE and EN

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:57:41 +02:00
Benjamin Admin
3cce3b2871 fix(pitch-deck): SolutionSlide crash + CompetitionSlide cleanup
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m19s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 36s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 34s
- Fix ReferenceError on slide 5: add missing `const de = lang === 'de'`
- Remove feature matrix rows: Hardware Moat, 380+ Regularien, Self-Hosted, Multi-Framework Consent SDK
- Rename IPFS → IPFS/Blockchain (optional)
- Remove Pricing-Einordnung cards and Top 5 Unterschiede accordion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:52:32 +02:00
Benjamin Admin
a2c5307713 fix(pitch-deck): chart label sizes + negative value positions
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m16s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 43s
CI / test-bqas (push) Successful in 44s
- Kunden labels: 7px → 11px (matching MRR)
- EBIT negative: moved from inside bar (mt-1) to above bar (-mt-4)
- Liquidität negative: same fix (-mt-4 for all values)
- grossMargin + nrr added to FinanzplanSlide KPIs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:28:36 +02:00
Benjamin Admin
ef7ec776eb fix(pitch-deck): add grossMargin + nrr to FinanzplanSlide KPIs
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 35s
CI / test-python-voice (push) Successful in 43s
CI / test-bqas (push) Has been cancelled
Charts tab showed 0 for Gross Margin and NRR because these fields
were not computed in the FinanzplanSlide's own fpKPIs loading
(only existed in the useFpKPIs shared hook).

Added: grossMargin = (revenue - material) / revenue × 100
Added: nrr = revenue / prevYearRevenue × 100

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:25:22 +02:00
Benjamin Admin
9fd829eceb fix(pitch-deck): reorder betriebliche Aufwendungen + remove footer
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 37s
CI / test-python-voice (push) Successful in 41s
CI / test-bqas (push) Successful in 32s
New order: Detail rows (Steuern, Versicherungen, Raum, Marketing,
Besondere, Fahrzeug, Sonstige) → Summe sonstige → Personalkosten →
Abschreibungen → SUMME Betriebliche Aufwendungen

Removed auto-generated SUMME footer for betriebliche tab
(redundant with SUMME Betriebliche row).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:08:21 +02:00
Benjamin Admin
96cd79dec5 fix(pitch-deck): AppSec tab — remove Compliance USPs, reorder sections
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 32s
- Removed USP section (GDPR, AI Act, CRA etc.) — these are Compliance, not AppSec
- Removed Compliance-only features from APPSEC_FEATURES array
- Reordered: Competitors → Effizienz-Kennzahlen → AppSec Features → Score Summary

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 19:03:51 +02:00
Benjamin Admin
fde1673bdd fix(pitch-deck): Competition slide — add Effizienz to AppSec tab + fix pricing tiers
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 30s
AppSec tab: Added Effizienz-Kennzahlen table (was only in Overview tab).

Pricing tab: ComplAI pricing corrected:
- 4 tiers → 3 tiers (Starter/Professional/Enterprise matching Folie 11)
- Enterprise: €40k → €50k/yr
- "110 Regularien" → "380+ Regularien"
- "DE / FR" → "DE" (Frankreich removed)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:29:27 +02:00
Benjamin Admin
f781874eee fix(pitch-deck): Financials Overview tab fully from fp_* data
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 31s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 29s
Replaced all useFinancialModel-based charts with fp_*-based:
- Revenue vs Costs: annual bars from fpKPIs (was FinancialChart/monthly)
- EBIT & Liquidität: dual bar chart (was WaterfallChart)
- Unit Economics 2030: ACV, Gross Margin, NRR, EBIT Margin (was RunwayGauge + UnitEconomicsCards)

All 3 tabs (Overview, GuV, Cashflow) now read from fp_* tables.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:21:23 +02:00
Benjamin Admin
9333b7a9c3 feat(pitch-deck): Unit Economics chart in Finanzplan + larger sub-text + remove Container metric
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m20s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-python-voice (push) Has been cancelled
CI / test-bqas (push) Has been cancelled
CI / test-go-consent (push) Has been cancelled
Finanzplan Charts tab: new Unit Economics chart showing ACV, Gross Margin,
NRR, EBIT Margin as mini bar charts per year (2026-2030).

BusinessModelSlide: sub-text under Unit Economics increased from 10px → xs (12px).

DB: Removed "Container in Produktion" metric from pitch_metrics + all versions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:19:23 +02:00
Benjamin Admin
6db0056329 feat(pitch-deck): pipeline stats from DB on Folie 2 + Optimizer on Folie 5 + quote fix
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m9s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
Folie 2 (Executive Summary):
- KPIs (Controls, Regulations) now from pitch_pipeline_stats DB
- "110 Gesetze" → dynamic from DB (380+)

Folie 5 (Solution):
- Added Compliance Optimizer banner below 3 pillars
- "Nicht nur erlaubt/verboten — maximale Ausgestaltung jedes KI-Use-Cases"

USP Slide:
- Quote fix: "wie weit du maximal gehen kannst" (was: "wie du maximal weit gehen kannst")

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:11:49 +02:00
Benjamin Admin
e0fedde560 feat(pitch-deck): 4 MOAT points on Executive Summary (Folie 2)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m9s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 32s
Replaced generic USP banner with compact 4-column MOAT grid:
1. Traceability: Gesetz → Control → Code
2. Continuous Engine: Echtzeit bei jeder Änderung
3. Compliance Optimizer: Maximale KI-Nutzung im Rahmen
4. EU-Trust Stack: 100% EU, kein US-SaaS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:07:34 +02:00
Benjamin Admin
f7441ccba5 feat(pitch-deck): Compliance Optimizer as 4th MOAT on USP slide + competitor fix
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-python-voice (push) Has been cancelled
CI / test-bqas (push) Has been cancelled
CI / test-go-consent (push) Has started running
USP Slide:
- 4 MOAT cards (was 3): added "Compliance Optimizer"
  "Not just allowed/forbidden but the maximum permissible configuration
  of every AI use case. Deterministic constraint optimization."
- Killer quote: "Everyone can say what is forbidden. Almost no one can
  say how far you can go without breaking it. That is our product."
- Grid: 3 cols → 2x2 for better readability

Executive Summary:
- Competitors: removed Invest column, larger font (9px → 10px)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:05:45 +02:00
Benjamin Admin
27d1c5ba9f fix(pitch-deck): remove Invest column from competitors, increase font size
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m6s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 29s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Has been cancelled
Executive Summary competitors table:
- Removed "Invest" column (6 cols → 5 cols)
- Font size: 9px → 10px for data, 8px → 9px for headers
- More spacing (gap-x-3, space-y-1.5)
- ARR column bold for emphasis

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:03:00 +02:00
Benjamin Admin
88d0619184 fix(pitch-deck): SUMME Betriebliche includes Personalkosten + Abschreibungen
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m7s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
Bug: "SUMME Betriebliche Aufwendungen" excluded Personalkosten and
Abschreibungen because they have is_sum_row=true. Result: both sum
rows showed identical values.

Fix: explicitly include Personalkosten and Abschreibungen rows in
the SUMME Betriebliche calculation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:54:19 +02:00
Benjamin Admin
6111494460 fix(pitch-deck): remove Berechnen button + cell editing from Finanzplan
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 29s
CI / test-python-voice (push) Successful in 30s
CI / test-bqas (push) Has been cancelled
Finanzplan is now read-only for investors:
- Removed "Berechnen" / "Compute" button
- Removed cell double-click editing
- Removed blue edit indicator dots
- All sums computed live in frontend (no manual recompute needed)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:51:43 +02:00
Benjamin Admin
73e3749960 fix(pitch-deck): SUMME footer works in both annual and monthly view
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m4s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 27s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:46:16 +02:00
Benjamin Admin
34b519eebb fix(pitch-deck): Investitionen tab shows values (was empty due to values_invest field)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m2s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 27s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 31s
getValues() now reads values_invest for investment rows.
Previously only read values/values_total/values_brutto, missing the
invest-specific field name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:38:03 +02:00
Benjamin Admin
66fb265f22 feat(pitch-deck): collapsible year view in Finanzplan + remove section labels
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m6s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 30s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 31s
- Year navigation: "Alle Jahre" shows 5 annual columns, individual years show 12 months
- Default starts at single year view
- Annual view: flow rows show yearly sum, balance rows show Dec value
- Removed [section] labels from row display
- Footer sum only shown in monthly view (not annual)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:31:47 +02:00
Benjamin Admin
ec7326cfe1 feat(pitch-deck): live-compute sums for Liquidität + Kunden + Umsatz tabs
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m6s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 31s
CI / test-python-voice (push) Successful in 30s
CI / test-bqas (push) Successful in 32s
Extended live-compute to ALL tabs:
- Liquidität: "Summe ERTRÄGE" = sum of einzahlung rows,
  "Summe AUSZAHLUNGEN" = sum of auszahlung rows
- Kunden: GESAMT rows = sum of tier detail rows
- Umsatz: GESAMTUMSATZ = sum of all revenue rows
- Materialaufwand: SUMME = sum of cost rows

ÜBERSCHUSS rows kept from DB (complex multi-step formula).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:26:23 +02:00
Benjamin Admin
67ed5e542d feat(pitch-deck): live-computed sum rows in Finanzplan (like Excel formulas)
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 29s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Has been cancelled
Sum rows (is_sum_row=true) are now computed live in the frontend from
their detail rows, not read from stale DB values. This means:
- Category sums (Versicherungen, Marketing, Sonstige etc.) always match
- "Summe sonstige" = all non-personal, non-AfA rows
- "SUMME Betriebliche" = all rows including personal + AfA
- No more manual recompute needed after DB changes

Also: chart labels increased from 7-8px to 11px for readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:23:59 +02:00
Benjamin Admin
6ec27fdbf2 feat(pitch-deck): larger chart labels + 2 new charts (Liquidität + Revenue vs Costs)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m6s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 34s
CI / test-bqas (push) Successful in 28s
Charts tab:
- All bar labels increased from 7-8px to 11px (readable)
- New: Liquidität (Jahresende) bar chart — shows cash position per year
- New: Umsatz vs. Gesamtkosten — side-by-side bars per year
- All charts read from fpKPIs (fp_* source of truth)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:14:39 +02:00
Benjamin Admin
9513675d85 fix(pitch-deck): Finanzplan starts on GuV tab instead of Personalkosten
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 28s
CI / test-python-voice (push) Successful in 27s
CI / test-bqas (push) Successful in 29s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:11:39 +02:00
Benjamin Admin
8e2329be53 fix(pitch-deck): trial churn (25% leave after 3 months) + remove unit_cost label
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m4s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 30s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 31s
Churn model: 25% of new customers leave after 3 months (trial period).
Remaining customers have normal monthly churn (3% Starter, 2% Pro, 1% Ent).
Churn label shows "25% Trial + X%/Mon".

DB: section 'unit_cost' renamed to 'einkauf' (removed English label from UI).
Code: unit price detection updated for new section name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 10:07:45 +02:00
Benjamin Admin
728f698f9e fix(pitch-deck): remove redundant Summe rows from Umsatz/Material/Kunden tabs + total line styling
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m7s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 34s
- Removed auto-generated SUMME footer from umsatzerloese, materialaufwand, kunden tabs
  (GESAMTUMSATZ/Bestandskunden gesamt rows already exist in DB data)
- GESAMT/Total rows now have thicker top border (border-t-2 white/20)
- unit_cost rows show unit price instead of annual sum

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:42:16 +02:00
Benjamin Admin
511a7de627 fix(pitch-deck): unit_cost rows show price not annual sum in Finanzplan
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 31s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Successful in 28s
Einkaufspreis rows (Mac Mini/Studio) showed sum of 12 months (e.g. 38,400)
instead of the unit price (3,200). Now detected via section='unit_cost'
or label contains 'Einkaufspreis' and shows the price value instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:36:42 +02:00
Benjamin Admin
9d82f15c53 fix(pitch-deck): FinanzplanSlide selects correct fp_scenario per version
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
Bug: Finanzplan data grid always loaded Base Case (is_default=true)
even for Wandeldarlehen version, showing 35 employees + module-based
customers instead of lean 10-person plan.

Fix: isWandeldarlehen prop passed to FinanzplanSlide. On load, picks
Wandeldarlehen scenario by name match instead of is_default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 20:37:00 +02:00
Benjamin Admin
b0918fd946 fix(pitch-deck): GuV + Cashflow tabs read from fp_* data, Break-Even as year
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m31s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 40s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 31s
FinancialsSlide:
- Break-Even: shows year (2029) instead of formatted number (2.029)
- GuV tab: replaced AnnualPLTable (useFinancialModel) with fp_guv data table
  Shows: Revenue, Personnel, EBIT, Taxes, Net Income per year
- Cashflow tab: replaced AnnualCashflowChart (useFinancialModel) with
  fp_liquiditaet bar chart showing cash position + EBIT per year
- Both tabs now show "Quelle: Finanzplan" label

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 20:33:30 +02:00
Benjamin Admin
7b31b462a0 fix(pitch-deck): 1 Mio investment amount everywhere (975k → 1M)
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 25s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 7s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 9s
Updated:
- CapTable: 975k → 1M, 19.6% → 20%, Gründer 37.5% → 37.3%
- FAQ: investment-captable answer updated to 1M
- Production DB: fp_liquiditaet Fremdkapital 975k → 1M (Base + Bear + Bull)
- Production DB: pitch_version_data funding amount → 1M
- All 3 scenarios (Base/Bear/Bull) recomputed with new amounts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:16:26 +02:00
Benjamin Admin
021faedfa3 fix(pitch-deck): CapTable slide — remove Gehälter/Gewinnverwendung, fix BAFA + 1M amounts
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 23s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 10s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 11s
Removed:
- Gründergehälter card (entire section)
- Gewinnverwendung card (entire section)
- Instrument line from Pre-Seed Runde

Updated:
- Series A → "Series A Ausblick (Optional)"
- Investment: 975.000 → 1.000.000 EUR
- Post-Money: 4.975.000 → 5.000.000 EUR
- BAFA INVEST: 20% → 15% Erwerbszuschuss + 25% Exit-Zuschuss

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:07:30 +02:00
Benjamin Admin
0b30c5e66c feat(pitch-deck): Bear/Bull scenarios from DB + Assumptions slide reads all 3
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 21s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 6s
CI / test-python-voice (push) Failing after 9s
CI / test-bqas (push) Failing after 8s
4 new fp_scenarios created on production:
- Wandeldarlehen Bear (5%/8% growth, 1.5x churn → 11 customers 2030)
- Wandeldarlehen Bull (12%/16% growth, 0.7x churn → 999 customers 2030)
- 1 Mio Bear (6%/10% growth, 1.5x churn → 22 customers 2030)
- 1 Mio Bull (12%/18% growth, 0.7x churn → 2574 customers 2030)

AssumptionsSlide loads all 3 scenarios (Bear/Base/Bull) from their
respective fp_* tables. No more scaling factors — real DB data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:04:59 +02:00
Benjamin Admin
824f8a7ff2 fix(pitch-deck): remove duplicate phases from GTM slide
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 25s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 11s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 12s
Phases were duplicated between GTM slide and Strategy slide.
GTM now shows only: ICP (Ideal Customer Profile) + Channel Mix.
Phases remain exclusively on Strategy slide (version-aware).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:57:45 +02:00
Benjamin Admin
5914ec6cd5 feat(pitch-deck): AIPipeline slide numbers from pitch_pipeline_stats DB table
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 9s
CI / test-python-voice (push) Failing after 27s
CI / test-bqas (push) Failing after 27s
All KPI numbers on the AI Pipeline slide now load from the
pitch_pipeline_stats table via /api/pipeline-stats:
- Legal sources: 380+ (was hardcoded 75+)
- Unique controls: 25k+ (was 70k+)
- Obligations: 47k+ (from DB)
- EU regulations, DACH laws, frameworks: from DB
- Pipeline steps text: all counts dynamic

Numbers can be updated via SQL without code deploy:
UPDATE pitch_pipeline_stats SET value = X WHERE key = 'legal_sources';

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:55:22 +02:00
Benjamin Admin
30c63bbef6 feat(pitch-deck): Use of Funds computed from fp_* spending data
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m20s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Failing after 22s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 35s
Use of Funds pie chart now shows actual spending breakdown from fp_* tables
(months 8-24) instead of manually set percentages:
- Engineering & Personal: from fp_personalkosten
- Vertrieb & Marketing: from fp_betriebliche (marketing category)
- Betrieb & Infrastruktur: from fp_betriebliche (other categories)
- Hardware & Ausstattung: from fp_investitionen

Falls back to funding.use_of_funds if fp_* data not yet loaded.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:50:08 +02:00
Benjamin Admin
7be1a296c6 feat(pitch-deck): NRR + Payback formula-based from fp_* data
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 39s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Has been cancelled
- NRR: Revenue year N / Revenue year N-1 × 100 (no more "target > 120%")
- Payback: CAC / monthly gross profit (no more "target < 3 months")
- Both computed in useFpKPIs hook from fp_guv data
- BusinessModelSlide shows computed values with "(berechnet)" label

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:47:11 +02:00
Benjamin Admin
dd6e2f8bd7 feat(pitch-deck): MOAT on USP slide + version-aware GTM slide
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 37s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 36s
USP Slide:
- Added 3 MOAT statements as prominent section:
  1. End-to-End Traceability (Law → Obligation → Control → Code)
  2. Continuous Compliance Engine (every change, real-time evidence)
  3. EU-Trust & Governance Stack (sovereign, GDPR/AI Act native)

GTM Slide (version-aware):
- Wandeldarlehen: Founder sales → Content/SEO → Organic growth
  3 phases (Pilot → Organic → Scaling), no AEs in 2027
- 1 Mio: Direct sales + Channel (unchanged)
  3 phases with 5-20 KMU target, 2 AEs from 2027

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:06:14 +02:00
Benjamin Admin
f66f32ee9d fix(pitch-deck): all financial slides now read from fp_* tables via useFpKPIs
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m18s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 32s
New shared hook: useFpKPIs — loads annual KPIs from fp_guv/liquiditaet/personal/kunden.
Replaces useFinancialModel (simplified model) for KPI display on all slides.

Slides updated:
- CompetitionSlide: "110 Gesetze" → "380+ Regularien & Normen"
- BusinessModelSlide: ACV + Gross Margin from fp_* (was useFinancialModel)
- ExecutiveSummarySlide: Unternehmensentwicklung from fp_* (was useFinancialModel)
- FinancialsSlide: KPI cards from fp_* (ARR, Customers, Break-Even, EBIT 2030)

All slides now show consistent numbers from the same source of truth (fp_* tables).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:00:27 +02:00
Benjamin Admin
de308b7397 fix(pitch-deck): Assumptions slide reads KPIs from fp_* tables + version-aware text
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m18s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 35s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 35s
- Base Case KPIs now loaded from fp_guv/fp_liquiditaet/fp_kunden (source of truth)
- Bear/Bull derived from Base with scaling factors
- Assumptions text conditional: Wandeldarlehen shows lean plan (3→10, 8%/15% growth),
  1 Mio shows original (5→35, aggressive growth)
- Removed dependency on useFinancialModel (simplified model)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 14:37:31 +02:00
Benjamin Admin
8402e57323 fix(pitch-deck): Umlaute in RiskSlide + Sidebar-Name für Risiken
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m25s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 38s
CI / test-python-voice (push) Successful in 40s
CI / test-bqas (push) Has been cancelled
- Alle ä/ö/ü in RiskSlide.tsx korrigiert
- slideNames in i18n.ts: 'Risiken & Mitigation' (DE) + 'Risks & Mitigation' (EN) hinzugefügt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 14:34:06 +02:00