Files
breakpilot-core/pitch-deck/lib/presenter/presenter-script.ts
Benjamin Admin 3a2567b44d
All checks were successful
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 25s
CI / test-bqas (push) Successful in 25s
CI / Deploy (push) Successful in 4s
feat(pitch-deck): add AI Presenter mode with LiteLLM migration and FAQ system
- Migrate chat API from Ollama to LiteLLM (OpenAI-compatible SSE)
- Add 15-min presenter storyline with bilingual scripts for all 20 slides
- Add FAQ system (30 entries) with keyword matching for instant answers
- Add IntroPresenterSlide with avatar placeholder and start button
- Add PresenterOverlay (progress bar, subtitle text, play/pause/stop)
- Add AvatarPlaceholder with pulse animation during speaking
- Add usePresenterMode hook (state machine: idle→presenting→paused→answering→resuming)
- Add 'P' keyboard shortcut to toggle presenter mode
- Support [GOTO:slide-id] markers in chat responses
- Dynamic slide count (was hardcoded 13, now from SLIDE_ORDER)
- TTS stub prepared for future Piper integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:45:55 +01:00

464 lines
22 KiB
TypeScript

import { SlideScript } from './types'
export const PRESENTER_SCRIPT: SlideScript[] = [
// 0 — intro-presenter (45s)
{
slideId: 'intro-presenter',
duration: 45,
paragraphs: [
{
text_de: 'Willkommen bei BreakPilot ComplAI — Compliance und Code-Security fuer den Maschinenbau.',
text_en: 'Welcome to BreakPilot ComplAI — compliance and code security for machine manufacturing.',
pause_after: 1500,
},
{
text_de: 'Ich bin Ihr KI-Praesentator und fuehre Sie durch unser Pitch Deck. Die Praesentation dauert etwa 15 Minuten.',
text_en: 'I am your AI presenter and will guide you through our pitch deck. The presentation takes about 15 minutes.',
pause_after: 1500,
},
{
text_de: 'Sie koennen jederzeit Fragen stellen — nutzen Sie einfach den Chat. Ich pausiere automatisch und antworte sofort.',
text_en: 'You can ask questions at any time — just use the chat. I will pause automatically and respond immediately.',
pause_after: 1000,
},
],
transition_hint_de: 'Lassen Sie uns beginnen.',
transition_hint_en: 'Let us begin.',
},
// 1 — cover (20s)
{
slideId: 'cover',
duration: 20,
paragraphs: [
{
text_de: 'BreakPilot ComplAI — Compliance und Code-Security auf Autopilot. Pre-Seed Runde, Q4 2026.',
text_en: 'BreakPilot ComplAI — compliance and code security on autopilot. Pre-seed round, Q4 2026.',
pause_after: 1500,
},
],
transition_hint_de: 'Schauen wir uns zunaechst das Problem an.',
transition_hint_en: 'Let us first look at the problem.',
},
// 2 — problem (60s)
{
slideId: 'problem',
duration: 60,
paragraphs: [
{
text_de: 'Maschinenbauer entwickeln immer mehr eigene Software — Firmware, Steuerungen, Predictive Maintenance. Aber wer sichert Compliance und Code-Sicherheit?',
text_en: 'Machine manufacturers develop more and more of their own software — firmware, controllers, predictive maintenance. But who ensures compliance and code security?',
pause_after: 2000,
},
{
text_de: 'Erstens: DSGVO. 4,1 Milliarden Euro Bussgelder seit 2018. Maschinenbauer verarbeiten Kundendaten, Telemetrie und Wartungsprotokolle — oft ohne DSGVO-Prozesse.',
text_en: 'First: GDPR. EUR 4.1 billion in fines since 2018. Machine manufacturers process customer data, telemetry and maintenance logs — often without GDPR processes.',
pause_after: 2000,
},
{
text_de: 'Zweitens: Der AI Act. Ab August 2025 muessen Maschinen mit KI-Komponenten klassifiziert und dokumentiert werden.',
text_en: 'Second: The AI Act. From August 2025, machines with AI components must be classified and documented.',
pause_after: 2000,
},
{
text_de: 'Drittens: CRA und NIS2. Der Cyber Resilience Act verpflichtet ueber 30.000 Hersteller, Software in ihren Produkten abzusichern. Das betrifft den gesamten Maschinenbau.',
text_en: 'Third: CRA and NIS2. The Cyber Resilience Act obligates over 30,000 manufacturers to secure software in their products. This affects all of machine manufacturing.',
pause_after: 1500,
},
],
transition_hint_de: 'Und genau dafuer haben wir eine Loesung.',
transition_hint_en: 'And that is exactly what we have a solution for.',
},
// 3 — solution (75s)
{
slideId: 'solution',
duration: 75,
paragraphs: [
{
text_de: 'Unsere Loesung: ComplAI — Compliance und Code-Security auf Autopilot. Drei Saeulen machen uns einzigartig.',
text_en: 'Our solution: ComplAI — compliance and code security on autopilot. Three pillars make us unique.',
pause_after: 2000,
},
{
text_de: 'Erste Saeule: Self-Hosted Vorarbeit. Ein Mac Mini oder Mac Studio im Serverraum des Kunden scannt Code, analysiert Repositories und erstellt Compliance-Dokumente. Kein einziges Byte verlaesst das Unternehmen.',
text_en: 'First pillar: Self-hosted preprocessing. A Mac Mini or Mac Studio in the customer server room scans code, analyzes repositories and creates compliance documents. Not a single byte leaves the company.',
pause_after: 2500,
},
{
text_de: 'Zweite Saeule: Code-Security und DevSecOps. Wir scannen Firmware und Software mit integrierten Tools wie Trivy, Semgrep und Gitleaks. Das 1000-Milliarden-Parameter Cloud-LLM implementiert Fixes und schreibt Risikoanalysen.',
text_en: 'Second pillar: Code security and DevSecOps. We scan firmware and software with integrated tools like Trivy, Semgrep, and Gitleaks. The 1000-billion-parameter cloud LLM implements fixes and writes risk assessments.',
pause_after: 2500,
},
{
text_de: 'Dritte Saeule: Die Compliance-KI mit 57 Modulen. DSGVO, AI Act, CRA, NIS2, Hinweisgeberschutzgesetz — 19 Regularien, 2.274 indexierte Rechtstexte. Macht Ihr Unternehmen UND Ihre Produkte compliant.',
text_en: 'Third pillar: The compliance AI with 57 modules. GDPR, AI Act, CRA, NIS2, Whistleblower Protection Act — 19 regulations, 2,274 indexed legal texts. Makes your company AND your products compliant.',
pause_after: 1500,
},
],
transition_hint_de: 'Schauen wir uns die Produkte im Detail an.',
transition_hint_en: 'Let us look at the products in detail.',
},
// 4 — product (60s)
{
slideId: 'product',
duration: 60,
paragraphs: [
{
text_de: 'Wir bieten drei Produkt-Tiers fuer jede Unternehmensgroesse an.',
text_en: 'We offer three product tiers for every company size.',
pause_after: 1500,
},
{
text_de: 'ComplAI Starter auf dem Mac Mini fuer 1.200 Euro pro Monat. Ein 32-Milliarden-Parameter Modell — perfekt fuer KMU, die DSGVO-Compliance automatisieren wollen.',
text_en: 'ComplAI Starter on Mac Mini for EUR 1,200 per month. A 32-billion-parameter model — perfect for SMEs looking to automate GDPR compliance.',
pause_after: 2000,
},
{
text_de: 'ComplAI Professional auf dem Mac Studio fuer 2.400 Euro pro Monat mit einem 40-Milliarden-Parameter Modell. Inklusive Code-Security-Scanning und erweiterte Risikoanalyse.',
text_en: 'ComplAI Professional on Mac Studio for EUR 2,400 per month with a 40-billion-parameter model. Including code security scanning and extended risk assessment.',
pause_after: 2000,
},
{
text_de: 'Und ComplAI Enterprise — unser Flaggschiff. Self-Hosted plus BSI-zertifiziertes 1000-Milliarden-Parameter Cloud-LLM. Fuer Unternehmen, die maximale Compliance und Code-Security benoetigen.',
text_en: 'And ComplAI Enterprise — our flagship. Self-hosted plus BSI-certified 1000-billion-parameter cloud LLM. For companies needing maximum compliance and code security.',
pause_after: 1500,
},
],
transition_hint_de: 'Wie funktioniert das Ganze in der Praxis?',
transition_hint_en: 'How does this work in practice?',
},
// 5 — how-it-works (50s)
{
slideId: 'how-it-works',
duration: 50,
paragraphs: [
{
text_de: 'In vier einfachen Schritten zu Compliance und Code-Security.',
text_en: 'Compliance and code security in four simple steps.',
pause_after: 1500,
},
{
text_de: 'Schritt 1: Hardware aufstellen. Mac Mini oder Mac Studio im Serverraum anschliessen — Plug and Play, scannt ab Tag 1.',
text_en: 'Step 1: Set up hardware. Connect Mac Mini or Mac Studio in the server room — plug and play, scans from day one.',
pause_after: 1500,
},
{
text_de: 'Schritt 2: Code-Repos verbinden. Git-Repos, CI/CD Pipelines und Firmware-Projekte anbinden.',
text_en: 'Step 2: Connect code repos. Link Git repos, CI/CD pipelines and firmware projects.',
pause_after: 1500,
},
{
text_de: 'Schritt 3: Automatisierung. Laufende Code-Analyse und Risikoanalysen bei jeder Aenderung. Bei kritischen Fixes schaltet sich das Cloud-LLM zu.',
text_en: 'Step 3: Automation. Continuous code analysis and risk assessments on every change. For critical fixes, the cloud LLM steps in.',
pause_after: 1500,
},
{
text_de: 'Schritt 4: Audit bestehen. Vollstaendige Dokumentation fuer DSGVO, AI Act, CRA und NIS2 auf Knopfdruck.',
text_en: 'Step 4: Pass audits. Complete documentation for GDPR, AI Act, CRA and NIS2 at the push of a button.',
pause_after: 1000,
},
],
transition_hint_de: 'Jetzt zur Marktchance.',
transition_hint_en: 'Now to the market opportunity.',
},
// 6 — market (60s)
{
slideId: 'market',
duration: 60,
paragraphs: [
{
text_de: 'Der Markt fuer Compliance und Code-Security im Maschinenbau ist enorm.',
text_en: 'The market for compliance and code security in machine manufacturing is enormous.',
pause_after: 1500,
},
{
text_de: 'Unser Total Addressable Market liegt bei 8,7 Milliarden Euro — der globale Markt fuer Regulatory Technology waechst mit 23 Prozent pro Jahr.',
text_en: 'Our Total Addressable Market is EUR 8.7 billion — the global regulatory technology market grows at 23 percent per year.',
pause_after: 2000,
},
{
text_de: 'Der Serviceable Addressable Market in DACH: 1,2 Milliarden Euro. Das sind ueber 5.000 Maschinenbauer mit eigener Softwareentwicklung.',
text_en: 'The Serviceable Addressable Market in DACH: EUR 1.2 billion. That is over 5,000 machine manufacturers with in-house software development.',
pause_after: 2000,
},
{
text_de: 'Unser Serviceable Obtainable Market: 7,2 Millionen Euro. 500 DACH-Maschinenbauer mal 14.400 Euro pro Jahr. Das ist unser realistisches Ziel fuer die naechsten 5 Jahre.',
text_en: 'Our Serviceable Obtainable Market: EUR 7.2 million. 500 DACH machine manufacturers times EUR 14,400 per year. That is our realistic target for the next 5 years.',
pause_after: 1500,
},
],
transition_hint_de: 'Wie verdienen wir Geld?',
transition_hint_en: 'How do we make money?',
},
// 7 — business-model (45s)
{
slideId: 'business-model',
duration: 45,
paragraphs: [
{
text_de: 'Unser Geschaeftsmodell: Recurring Revenue mit Hardware-Moat.',
text_en: 'Our business model: Recurring revenue with hardware moat.',
pause_after: 1500,
},
{
text_de: 'Die Hardware-Appliance im Serverraum des Kunden schafft einen natuerlichen Lock-in. Monatliche Subscriptions von 1.200 bis 3.600 Euro garantieren planbare Einnahmen.',
text_en: 'The hardware appliance in the customer server room creates a natural lock-in. Monthly subscriptions from EUR 1,200 to 3,600 ensure predictable revenue.',
pause_after: 2000,
},
{
text_de: 'Die Unit Economics sind ueberzeugend: Hardware-Kosten amortisieren sich in wenigen Monaten, und die Bruttomarge liegt bei ueber 70 Prozent.',
text_en: 'The unit economics are compelling: hardware costs amortize in a few months, and gross margin exceeds 70 percent.',
pause_after: 1500,
},
],
transition_hint_de: 'Was haben wir bisher erreicht?',
transition_hint_en: 'What have we achieved so far?',
},
// 8 — traction (45s)
{
slideId: 'traction',
duration: 45,
paragraphs: [
{
text_de: 'Unsere bisherige Traction und Meilensteine.',
text_en: 'Our traction and milestones so far.',
pause_after: 1500,
},
{
text_de: '761.000 Zeilen Code geschrieben. 45 Container in Produktion. 57 Compliance-Module implementiert. 2.274 Rechtstexte indexiert und durchsuchbar.',
text_en: '761,000 lines of code written. 45 containers in production. 57 compliance modules implemented. 2,274 legal texts indexed and searchable.',
pause_after: 2000,
},
{
text_de: 'Die komplette Plattform ist funktionsfaehig — wir sind bereit fuer die ersten zahlenden Kunden.',
text_en: 'The complete platform is functional — we are ready for our first paying customers.',
pause_after: 1500,
},
],
transition_hint_de: 'Wie stehen wir im Vergleich zum Wettbewerb?',
transition_hint_en: 'How do we compare to the competition?',
},
// 9 — competition (60s)
{
slideId: 'competition',
duration: 60,
paragraphs: [
{
text_de: 'Der Wettbewerb: 44 Features, 9 USPs — kein Anbieter kombiniert DSGVO, Code-Security und Self-Hosted KI.',
text_en: 'The competition: 44 features, 9 USPs — no provider combines GDPR, code security and self-hosted AI.',
pause_after: 2000,
},
{
text_de: 'Proliance, DataGuard und heyData bieten organisatorische Compliance — aber keiner scannt Code, keiner analysiert Firmware, keiner bietet Self-Hosted KI.',
text_en: 'Proliance, DataGuard and heyData offer organizational compliance — but none scan code, none analyze firmware, none offer self-hosted AI.',
pause_after: 2500,
},
{
text_de: 'Vanta und Drata kommen aus dem US-Markt mit SOC2-Fokus. Sie verstehen weder CRA noch die spezifischen Anforderungen des deutschen Maschinenbaus.',
text_en: 'Vanta and Drata come from the US market with SOC2 focus. They understand neither CRA nor the specific requirements of German machine manufacturing.',
pause_after: 2000,
},
{
text_de: 'Unser Alleinstellungsmerkmal: Wir machen nicht nur das Unternehmen compliant, sondern auch die Produkte. Das ist der entscheidende Unterschied.',
text_en: 'Our unique selling proposition: We make not only the company compliant, but also the products. That is the decisive difference.',
pause_after: 1500,
},
],
transition_hint_de: 'Lernen Sie unser Team kennen.',
transition_hint_en: 'Meet our team.',
},
// 10 — team (30s)
{
slideId: 'team',
duration: 30,
paragraphs: [
{
text_de: 'Unser Gruenderteam vereint tiefe Domain-Expertise in Compliance, Software-Architektur und KI.',
text_en: 'Our founding team combines deep domain expertise in compliance, software architecture and AI.',
pause_after: 2000,
},
{
text_de: 'Wir kennen die Schmerzen der Branche aus erster Hand und haben die technische Kompetenz, sie zu loesen.',
text_en: 'We know the pain points of the industry firsthand and have the technical competence to solve them.',
pause_after: 1500,
},
],
transition_hint_de: 'Schauen wir uns die Finanzprognosen an.',
transition_hint_en: 'Let us look at the financial projections.',
},
// 11 — financials (45s)
{
slideId: 'financials',
duration: 45,
paragraphs: [
{
text_de: 'Unsere Finanzprognose basiert auf einer AI-First Kostenstruktur — das heisst: 10x Kunden bedeutet nicht 10x Personal.',
text_en: 'Our financial projection is based on an AI-first cost structure — meaning: 10x customers does not mean 10x headcount.',
pause_after: 2000,
},
{
text_de: 'Von 36.000 Euro Umsatz in 2026 auf 8,4 Millionen Euro in 2030. Das Team waechst dabei nur von 2 auf 18 Personen. 380 Kunden bei 5,5 Millionen Euro ARR.',
text_en: 'From EUR 36,000 revenue in 2026 to EUR 8.4 million in 2030. The team grows from just 2 to 18 people. 380 customers at EUR 5.5 million ARR.',
pause_after: 2000,
},
{
text_de: 'Break-Even erreichen wir voraussichtlich Ende 2028. Die Burn Rate bleibt dank Self-Hosted Architektur und Apple-Silicon Effizienz niedrig.',
text_en: 'We expect to reach break-even by end of 2028. The burn rate stays low thanks to self-hosted architecture and Apple Silicon efficiency.',
pause_after: 1500,
},
],
transition_hint_de: 'Und damit kommen wir zum Ask.',
transition_hint_en: 'And that brings us to the ask.',
},
// 12 — the-ask (45s)
{
slideId: 'the-ask',
duration: 45,
paragraphs: [
{
text_de: 'Wir suchen eine Pre-Seed Finanzierung fuer den Go-to-Market.',
text_en: 'We are seeking pre-seed funding for go-to-market.',
pause_after: 1500,
},
{
text_de: 'Das Investment fliesst in vier Bereiche: Engineering fuer die Produktreife, Vertrieb fuer die ersten Pilotkunden, Hardware-Bestand fuer schnelle Auslieferung, und eine Reserve fuer regulatorische Anforderungen.',
text_en: 'The investment flows into four areas: Engineering for product maturity, sales for first pilot customers, hardware inventory for fast delivery, and a reserve for regulatory requirements.',
pause_after: 2500,
},
{
text_de: 'Mit diesem Kapital erreichen wir die ersten 20 zahlenden Kunden und beweisen Product-Market-Fit im deutschen Maschinenbau.',
text_en: 'With this capital we reach our first 20 paying customers and prove product-market fit in German machine manufacturing.',
pause_after: 1500,
},
],
transition_hint_de: 'Haben Sie Fragen? Unser KI-Agent steht bereit.',
transition_hint_en: 'Have questions? Our AI agent is ready.',
},
// 13 — ai-qa (30s)
{
slideId: 'ai-qa',
duration: 30,
paragraphs: [
{
text_de: 'Auf dieser Slide koennen Sie direkt mit unserem KI-Agent interagieren. Stellen Sie Ihre Investorenfragen — der Agent antwortet mit Echtdaten aus unserer Datenbank.',
text_en: 'On this slide you can interact directly with our AI agent. Ask your investor questions — the agent responds with real data from our database.',
pause_after: 2000,
},
{
text_de: 'Nutzen Sie den Chat rechts unten oder die vorgeschlagenen Fragen.',
text_en: 'Use the chat in the bottom right or the suggested questions.',
pause_after: 1500,
},
],
transition_hint_de: 'Im Anhang finden Sie weitere Details.',
transition_hint_en: 'You will find further details in the appendix.',
},
// 14 — annex-assumptions (35s)
{
slideId: 'annex-assumptions',
duration: 35,
paragraphs: [
{
text_de: 'Im Anhang: Unsere Annahmen und Sensitivitaetsanalyse. Drei Szenarien — konservativ, base case und optimistisch — fuer robuste Planung.',
text_en: 'In the appendix: Our assumptions and sensitivity analysis. Three scenarios — conservative, base case and optimistic — for robust planning.',
pause_after: 2000,
},
{
text_de: 'Alle Finanzprognosen basieren auf validierten Marktdaten und realistischen Wachstumsannahmen.',
text_en: 'All financial projections are based on validated market data and realistic growth assumptions.',
pause_after: 1500,
},
],
},
// 15 — annex-architecture (35s)
{
slideId: 'annex-architecture',
duration: 35,
paragraphs: [
{
text_de: 'Die technische Architektur: Self-Hosted KI-Stack fuer maximale Datensouveraenitaet. Alle Daten bleiben on-premise, nur anonymisierte Anfragen gehen an die BSI-zertifizierte Cloud.',
text_en: 'The technical architecture: Self-hosted AI stack for maximum data sovereignty. All data stays on-premise, only anonymized queries go to the BSI-certified cloud.',
pause_after: 2000,
},
],
},
// 16 — annex-gtm (35s)
{
slideId: 'annex-gtm',
duration: 35,
paragraphs: [
{
text_de: 'Unsere Go-to-Market Strategie: Vom Pilotprojekt zum skalierbaren Vertrieb. Wir starten mit VDMA-Mitgliedern und skalieren ueber Partnerschaften mit Systemhaeusern.',
text_en: 'Our go-to-market strategy: From pilot project to scalable sales. We start with VDMA members and scale through partnerships with system integrators.',
pause_after: 2000,
},
],
},
// 17 — annex-regulatory (35s)
{
slideId: 'annex-regulatory',
duration: 35,
paragraphs: [
{
text_de: 'Die vier Saeulen der EU-Compliance fuer Maschinenbauer: DSGVO, AI Act, Cyber Resilience Act und NIS2. Alle vier Regularien zusammen erzeugen einen massiven Compliance-Druck — und genau hier setzen wir an.',
text_en: 'The four pillars of EU compliance for machine manufacturers: GDPR, AI Act, Cyber Resilience Act and NIS2. All four regulations together create massive compliance pressure — and that is exactly where we come in.',
pause_after: 2000,
},
],
},
// 18 — annex-engineering (35s)
{
slideId: 'annex-engineering',
duration: 35,
paragraphs: [
{
text_de: 'Engineering Deep Dive: 761.000 Zeilen Code, 45 Container, 100 Prozent Self-Hosted. Unsere Plattform ist produktionsreif und skalierbar.',
text_en: 'Engineering deep dive: 761,000 lines of code, 45 containers, 100 percent self-hosted. Our platform is production-ready and scalable.',
pause_after: 2000,
},
],
},
// 19 — annex-aipipeline (35s)
{
slideId: 'annex-aipipeline',
duration: 35,
paragraphs: [
{
text_de: 'Die KI-Pipeline im Detail: RAG, Multi-Agent-System, Document Intelligence und Quality Assurance. Vielen Dank fuer Ihre Aufmerksamkeit — ich stehe fuer weitere Fragen bereit.',
text_en: 'The AI pipeline in detail: RAG, multi-agent system, document intelligence and quality assurance. Thank you for your attention — I am available for further questions.',
pause_after: 2000,
},
],
},
]
export function getScriptForSlide(slideId: string): SlideScript | undefined {
return PRESENTER_SCRIPT.find(s => s.slideId === slideId)
}
export function getScriptByIndex(index: number): SlideScript | undefined {
return PRESENTER_SCRIPT[index]
}
export function getTotalDuration(): number {
return PRESENTER_SCRIPT.reduce((sum, s) => sum + s.duration, 0)
}