@org.ai/examples 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/LICENSE +21 -0
  3. package/README.md +147 -0
  4. package/api-business/index.ts +1179 -0
  5. package/directory/index.ts +1118 -0
  6. package/dist/api-business/index.d.ts +221 -0
  7. package/dist/api-business/index.d.ts.map +1 -0
  8. package/dist/api-business/index.js +1132 -0
  9. package/dist/api-business/index.js.map +1 -0
  10. package/dist/directory/index.d.ts +202 -0
  11. package/dist/directory/index.d.ts.map +1 -0
  12. package/dist/directory/index.js +1073 -0
  13. package/dist/directory/index.js.map +1 -0
  14. package/dist/index.d.ts +75 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +127 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/marketplace/index.d.ts +242 -0
  19. package/dist/marketplace/index.d.ts.map +1 -0
  20. package/dist/marketplace/index.js +1249 -0
  21. package/dist/marketplace/index.js.map +1 -0
  22. package/dist/saas/index.d.ts +151 -0
  23. package/dist/saas/index.d.ts.map +1 -0
  24. package/dist/saas/index.js +1142 -0
  25. package/dist/saas/index.js.map +1 -0
  26. package/dist/startup-studio/index.d.ts +285 -0
  27. package/dist/startup-studio/index.d.ts.map +1 -0
  28. package/dist/startup-studio/index.js +1252 -0
  29. package/dist/startup-studio/index.js.map +1 -0
  30. package/dist/vc-firm/index.d.ts +248 -0
  31. package/dist/vc-firm/index.d.ts.map +1 -0
  32. package/dist/vc-firm/index.js +1335 -0
  33. package/dist/vc-firm/index.js.map +1 -0
  34. package/index.ts +151 -0
  35. package/marketplace/index.ts +1295 -0
  36. package/package.json +58 -0
  37. package/saas/index.ts +1188 -0
  38. package/startup-studio/index.ts +1324 -0
  39. package/tsconfig.json +12 -0
  40. package/vc-firm/index.ts +1430 -0
@@ -0,0 +1,1324 @@
1
+ /**
2
+ * Startup Studio Business Example
3
+ *
4
+ * A complete example of a startup studio modeled using primitives.org.ai
5
+ * Think: Atomic, Idealab, Pioneer, Human Ventures, Diagram
6
+ *
7
+ * @example VentureForge - A startup studio building B2B SaaS companies
8
+ * @packageDocumentation
9
+ */
10
+
11
+ /**
12
+ * NOTE: These examples demonstrate the DESIRED API shape for business-as-code.
13
+ * Some types may not exist yet in the actual package. The examples serve as
14
+ * documentation and specification for the ideal primitives API.
15
+ */
16
+
17
+ // Use any for flexibility - these examples define the ideal API shape
18
+ const Business = (def: any) => def
19
+ const Product = (def: any) => def
20
+ const Service = (def: any) => def
21
+ const Goals = (defs: any[]) => defs
22
+ const Vision = (def: any) => def
23
+ const kpis = (defs: any[]) => defs
24
+ const okrs = (defs: any[]) => defs
25
+ const financials = (def: any) => def
26
+ const Process = (def: any) => def
27
+ const Workflow = (def: any) => def
28
+ const createBusinessRole = (def: any) => def
29
+
30
+ // Re-export Organization type placeholder
31
+ export interface Organization {
32
+ id: string
33
+ name: string
34
+ settings?: any
35
+ departments?: any[]
36
+ teams?: any[]
37
+ roles?: any[]
38
+ approvalChains?: any[]
39
+ routingRules?: any[]
40
+ }
41
+
42
+ // $ helper placeholder
43
+ const $ = {
44
+ format: (n: number) => `$${n.toLocaleString()}`,
45
+ growth: (current: number, previous: number) => ((current - previous) / previous * 100).toFixed(1),
46
+ margin: (revenue: number, cost: number) => ((revenue - cost) / revenue * 100).toFixed(1),
47
+ }
48
+
49
+ // =============================================================================
50
+ // 1. BUSINESS DEFINITION
51
+ // =============================================================================
52
+
53
+ /**
54
+ * VentureForge - B2B SaaS Startup Studio
55
+ */
56
+ export const VentureForgeBusiness = Business({
57
+ name: 'VentureForge Studios',
58
+ mission: 'Build and launch the next generation of B2B SaaS companies',
59
+ values: ['Builder Mindset', 'Customer Obsession', 'Speed & Learning', 'Shared Success'],
60
+ industry: 'Venture Building / Startup Studio',
61
+ founded: new Date('2018-05-01'),
62
+ stage: 'established',
63
+ structure: {
64
+ departments: [
65
+ {
66
+ name: 'Venture Team',
67
+ headcount: 12,
68
+ budget: 2000000,
69
+ teams: [
70
+ { name: 'Ideation', headcount: 3, focus: 'Idea generation & validation' },
71
+ { name: 'Building', headcount: 6, focus: 'Product development' },
72
+ { name: 'Growth', headcount: 3, focus: 'GTM & scaling' },
73
+ ],
74
+ },
75
+ {
76
+ name: 'Platform',
77
+ headcount: 8,
78
+ budget: 1200000,
79
+ teams: [
80
+ { name: 'Engineering', headcount: 4, focus: 'Shared infrastructure' },
81
+ { name: 'Design', headcount: 2, focus: 'Brand & product design' },
82
+ { name: 'Data', headcount: 2, focus: 'Analytics & insights' },
83
+ ],
84
+ },
85
+ {
86
+ name: 'Talent & Ops',
87
+ headcount: 5,
88
+ budget: 800000,
89
+ teams: [
90
+ { name: 'Talent', headcount: 2, focus: 'Recruiting founders & team' },
91
+ { name: 'Operations', headcount: 2, focus: 'Finance, legal, admin' },
92
+ { name: 'People', headcount: 1, focus: 'HR & culture' },
93
+ ],
94
+ },
95
+ {
96
+ name: 'Investment',
97
+ headcount: 3,
98
+ budget: 400000,
99
+ teams: [
100
+ { name: 'Fundraising', headcount: 2, focus: 'LP relations, capital' },
101
+ { name: 'Portfolio', headcount: 1, focus: 'Portfolio support' },
102
+ ],
103
+ },
104
+ ],
105
+ },
106
+ })
107
+
108
+ // =============================================================================
109
+ // 2. VISION & GOALS
110
+ // =============================================================================
111
+
112
+ export const VentureForgeVision = Vision({
113
+ statement: 'Build 100 enduring B2B companies that transform industries',
114
+ timeHorizon: '2030',
115
+ pillars: [
116
+ 'Idea Quality',
117
+ 'Builder Excellence',
118
+ 'Speed to Market',
119
+ 'Portfolio Returns',
120
+ ],
121
+ successIndicators: [
122
+ { name: 'Companies Built', target: 100 },
123
+ { name: 'Portfolio Value', target: 5000000000, unit: 'USD' },
124
+ { name: 'Successful Exits', target: 20 },
125
+ { name: 'Combined ARR', target: 500000000, unit: 'USD' },
126
+ ],
127
+ })
128
+
129
+ export const VentureForgeGoals = Goals([
130
+ {
131
+ name: 'Launch 5 New Ventures',
132
+ category: 'operational',
133
+ status: 'in-progress',
134
+ progress: 40,
135
+ dueDate: new Date('2024-12-31'),
136
+ owner: 'Managing Partner',
137
+ },
138
+ {
139
+ name: 'Raise Fund III ($100M)',
140
+ category: 'financial',
141
+ status: 'in-progress',
142
+ progress: 60,
143
+ dueDate: new Date('2024-06-30'),
144
+ owner: 'Head of Fundraising',
145
+ },
146
+ {
147
+ name: 'Achieve $50M Portfolio ARR',
148
+ category: 'financial',
149
+ status: 'in-progress',
150
+ progress: 70,
151
+ dueDate: new Date('2024-12-31'),
152
+ owner: 'Managing Partner',
153
+ },
154
+ {
155
+ name: '2 Portfolio Exits',
156
+ category: 'strategic',
157
+ status: 'in-progress',
158
+ progress: 50,
159
+ dueDate: new Date('2024-12-31'),
160
+ owner: 'Portfolio Lead',
161
+ },
162
+ {
163
+ name: 'Build AI-Native Venture Platform',
164
+ category: 'product',
165
+ status: 'in-progress',
166
+ progress: 30,
167
+ dueDate: new Date('2024-09-30'),
168
+ owner: 'Platform Lead',
169
+ },
170
+ ])
171
+
172
+ // =============================================================================
173
+ // 3. STUDIO SERVICES & PRODUCTS
174
+ // =============================================================================
175
+
176
+ /**
177
+ * Studio Services - What VentureForge provides to portfolio companies
178
+ */
179
+ export const StudioServices = {
180
+ ideation: Service({
181
+ name: 'Ideation & Validation',
182
+ description: 'Market research, opportunity identification, and validation',
183
+ pricingModel: 'equity',
184
+ deliverables: [
185
+ 'Market research & sizing',
186
+ 'Competitive analysis',
187
+ 'Customer discovery (50+ interviews)',
188
+ 'Problem-solution fit validation',
189
+ 'Business model design',
190
+ ],
191
+ }),
192
+ building: Service({
193
+ name: 'Product Building',
194
+ description: 'Full product development from 0 to MVP',
195
+ pricingModel: 'equity',
196
+ deliverables: [
197
+ 'Product strategy & roadmap',
198
+ 'UX/UI design',
199
+ 'Technical architecture',
200
+ 'MVP development',
201
+ 'Quality assurance',
202
+ ],
203
+ }),
204
+ growth: Service({
205
+ name: 'Go-to-Market',
206
+ description: 'Launch and scale the business',
207
+ pricingModel: 'equity',
208
+ deliverables: [
209
+ 'Brand & positioning',
210
+ 'Marketing strategy',
211
+ 'Sales playbook',
212
+ 'First customers',
213
+ 'Growth experiments',
214
+ ],
215
+ }),
216
+ operations: Service({
217
+ name: 'Operational Support',
218
+ description: 'Back-office and operational support',
219
+ pricingModel: 'equity',
220
+ deliverables: [
221
+ 'Legal & incorporation',
222
+ 'Finance & accounting',
223
+ 'HR & recruiting',
224
+ 'Compliance',
225
+ 'Office & infrastructure',
226
+ ],
227
+ }),
228
+ capital: Service({
229
+ name: 'Capital & Fundraising',
230
+ description: 'Funding and investor relations',
231
+ pricingModel: 'equity',
232
+ deliverables: [
233
+ 'Initial capital ($500K-$2M)',
234
+ 'Fundraising support',
235
+ 'Investor introductions',
236
+ 'Board setup',
237
+ 'Follow-on capital',
238
+ ],
239
+ }),
240
+ }
241
+
242
+ /**
243
+ * Studio Products - Shared infrastructure for portfolio
244
+ */
245
+ export const StudioProducts = {
246
+ launchpad: Product({
247
+ name: 'VentureForge Launchpad',
248
+ description: 'Shared technical infrastructure for ventures',
249
+ pricingModel: 'free', // Included with studio
250
+ features: [
251
+ 'Authentication & user management',
252
+ 'Payment processing',
253
+ 'Email & notifications',
254
+ 'Analytics & monitoring',
255
+ 'CI/CD pipelines',
256
+ 'Cloud infrastructure',
257
+ ],
258
+ }),
259
+ analytics: Product({
260
+ name: 'Portfolio Analytics',
261
+ description: 'Cross-portfolio insights and benchmarks',
262
+ pricingModel: 'free',
263
+ features: [
264
+ 'Revenue tracking',
265
+ 'Growth metrics',
266
+ 'Benchmark comparisons',
267
+ 'Cohort analysis',
268
+ 'Forecasting',
269
+ ],
270
+ }),
271
+ }
272
+
273
+ /**
274
+ * Investment Terms
275
+ */
276
+ export const InvestmentTerms = {
277
+ standard: {
278
+ studioEquity: 30, // % equity for studio services
279
+ initialCapital: 1000000, // $1M initial investment
280
+ proRataRights: true,
281
+ boardSeat: true,
282
+ investmentPeriod: '18 months',
283
+ },
284
+ eir: { // Entrepreneur in Residence
285
+ studioEquity: 25,
286
+ founderEquity: 25, // Founder gets more
287
+ initialCapital: 500000,
288
+ proRataRights: true,
289
+ boardSeat: true,
290
+ },
291
+ spinout: {
292
+ studioEquity: 40,
293
+ initialCapital: 2000000,
294
+ proRataRights: true,
295
+ boardSeat: true,
296
+ founderSearch: true,
297
+ },
298
+ }
299
+
300
+ // =============================================================================
301
+ // 4. ORGANIZATION & ROLES
302
+ // =============================================================================
303
+
304
+ export const VentureForgeOrg: Organization = {
305
+ id: 'ventureforge',
306
+ name: 'VentureForge Studios',
307
+ settings: {
308
+ timezone: 'America/San_Francisco',
309
+ currency: 'USD',
310
+ fiscalYearStart: 1,
311
+ },
312
+ departments: [
313
+ {
314
+ id: 'venture',
315
+ name: 'Venture Team',
316
+ permissions: {
317
+ ventures: ['read', 'write', 'create', 'manage'],
318
+ ideas: ['read', 'write', 'validate', 'approve'],
319
+ portfolio: ['read', 'write'],
320
+ },
321
+ teams: [
322
+ {
323
+ id: 'ideation',
324
+ name: 'Ideation',
325
+ positions: [
326
+ { id: 'ideation-lead', title: 'Head of Ideation', roleId: 'venture-partner', reportsTo: 'mp' },
327
+ { id: 'researcher-1', title: 'Market Researcher', roleId: 'venture-analyst', reportsTo: 'ideation-lead' },
328
+ ],
329
+ },
330
+ {
331
+ id: 'building',
332
+ name: 'Building',
333
+ positions: [
334
+ { id: 'build-lead', title: 'Head of Building', roleId: 'venture-partner', reportsTo: 'mp' },
335
+ { id: 'tech-lead', title: 'Technical Lead', roleId: 'tech-lead', reportsTo: 'build-lead' },
336
+ { id: 'design-lead', title: 'Design Lead', roleId: 'design-lead', reportsTo: 'build-lead' },
337
+ ],
338
+ },
339
+ ],
340
+ },
341
+ {
342
+ id: 'platform',
343
+ name: 'Platform',
344
+ permissions: {
345
+ infrastructure: ['read', 'write', 'deploy'],
346
+ tools: ['read', 'write', 'manage'],
347
+ data: ['read', 'write'],
348
+ },
349
+ },
350
+ {
351
+ id: 'investment',
352
+ name: 'Investment',
353
+ permissions: {
354
+ fund: ['read', 'write', 'manage'],
355
+ lps: ['read', 'write'],
356
+ portfolio: ['read', 'write', 'report'],
357
+ },
358
+ },
359
+ ],
360
+ roles: [
361
+ createBusinessRole({
362
+ id: 'managing-partner',
363
+ name: 'Managing Partner',
364
+ type: 'executive',
365
+ level: 10,
366
+ permissions: {
367
+ ventures: ['read', 'write', 'create', 'approve', 'kill'],
368
+ fund: ['read', 'write', 'manage'],
369
+ portfolio: ['read', 'write', 'manage'],
370
+ },
371
+ canHandle: ['venture-approval', 'investment-decision', 'exit-negotiation'],
372
+ canApprove: ['new-venture', 'investment', 'exit', 'hiring'],
373
+ }),
374
+ createBusinessRole({
375
+ id: 'venture-partner',
376
+ name: 'Venture Partner',
377
+ type: 'executive',
378
+ level: 8,
379
+ permissions: {
380
+ ventures: ['read', 'write', 'create'],
381
+ portfolio: ['read', 'write'],
382
+ ideas: ['read', 'write', 'validate'],
383
+ },
384
+ canHandle: ['venture-building', 'founder-coaching', 'idea-validation'],
385
+ canApprove: ['milestone', 'hiring'],
386
+ }),
387
+ createBusinessRole({
388
+ id: 'venture-analyst',
389
+ name: 'Venture Analyst',
390
+ type: 'analyst',
391
+ level: 4,
392
+ permissions: {
393
+ ventures: ['read'],
394
+ ideas: ['read', 'write', 'research'],
395
+ portfolio: ['read'],
396
+ },
397
+ canHandle: ['market-research', 'competitive-analysis', 'customer-discovery'],
398
+ }),
399
+ createBusinessRole({
400
+ id: 'tech-lead',
401
+ name: 'Technical Lead',
402
+ type: 'engineer',
403
+ level: 6,
404
+ permissions: {
405
+ ventures: ['read'],
406
+ code: ['read', 'write', 'deploy'],
407
+ infrastructure: ['read', 'write'],
408
+ },
409
+ canHandle: ['architecture', 'mvp-building', 'tech-assessment'],
410
+ canApprove: ['technical-decision', 'deployment'],
411
+ }),
412
+ createBusinessRole({
413
+ id: 'design-lead',
414
+ name: 'Design Lead',
415
+ type: 'support',
416
+ level: 5,
417
+ permissions: {
418
+ ventures: ['read'],
419
+ design: ['read', 'write', 'publish'],
420
+ },
421
+ canHandle: ['brand-design', 'product-design', 'ux-research'],
422
+ }),
423
+ createBusinessRole({
424
+ id: 'eir',
425
+ name: 'Entrepreneur in Residence',
426
+ type: 'executive',
427
+ level: 7,
428
+ permissions: {
429
+ ventures: ['read', 'write'],
430
+ ideas: ['read', 'write', 'validate'],
431
+ },
432
+ canHandle: ['idea-exploration', 'venture-building', 'founder-role'],
433
+ }),
434
+ createBusinessRole({
435
+ id: 'portfolio-ceo',
436
+ name: 'Portfolio Company CEO',
437
+ type: 'executive',
438
+ level: 9,
439
+ permissions: {
440
+ ventures: ['read', 'write'], // Their venture only
441
+ },
442
+ canHandle: ['company-leadership', 'fundraising', 'team-building'],
443
+ }),
444
+ ],
445
+ approvalChains: [
446
+ {
447
+ id: 'new-venture',
448
+ name: 'New Venture Approval',
449
+ requestType: 'new-venture',
450
+ levels: [
451
+ { threshold: 1, approvers: [{ type: 'role', roleId: 'venture-partner' }] }, // Initial
452
+ { threshold: 2, approvers: [{ type: 'role', roleId: 'managing-partner' }] }, // Final
453
+ ],
454
+ },
455
+ {
456
+ id: 'investment',
457
+ name: 'Investment Approval',
458
+ requestType: 'investment',
459
+ levels: [
460
+ { threshold: 100000, approvers: [{ type: 'role', roleId: 'venture-partner' }] },
461
+ { threshold: 500000, approvers: [{ type: 'role', roleId: 'managing-partner' }] },
462
+ { threshold: Infinity, approvers: [{ type: 'all-partners' }] },
463
+ ],
464
+ },
465
+ ],
466
+ routingRules: [
467
+ {
468
+ id: 'idea-research',
469
+ taskType: 'market-research',
470
+ priority: 1,
471
+ assignTo: { roleId: 'venture-analyst' },
472
+ },
473
+ {
474
+ id: 'mvp-building',
475
+ taskType: 'mvp-development',
476
+ priority: 1,
477
+ assignTo: { roleId: 'tech-lead' },
478
+ },
479
+ {
480
+ id: 'venture-coaching',
481
+ taskType: 'founder-coaching',
482
+ priority: 1,
483
+ assignTo: { roleId: 'venture-partner' },
484
+ },
485
+ ],
486
+ }
487
+
488
+ // =============================================================================
489
+ // 5. PORTFOLIO COMPANIES
490
+ // =============================================================================
491
+
492
+ export interface PortfolioCompany {
493
+ id: string
494
+ name: string
495
+ thesis: string
496
+ stage: 'ideation' | 'validation' | 'building' | 'growth' | 'scale' | 'exit'
497
+ founded: Date
498
+ founders: string[]
499
+ sector: string
500
+ metrics: {
501
+ arr?: number
502
+ mrr?: number
503
+ customers?: number
504
+ employees?: number
505
+ funding?: number
506
+ valuation?: number
507
+ }
508
+ studioEquity: number
509
+ status: 'active' | 'graduated' | 'shut-down' | 'exited'
510
+ }
511
+
512
+ export const Portfolio: PortfolioCompany[] = [
513
+ {
514
+ id: 'dataflow',
515
+ name: 'DataFlow',
516
+ thesis: 'Modern data pipeline for SMBs',
517
+ stage: 'scale',
518
+ founded: new Date('2020-03-15'),
519
+ founders: ['Alex Chen', 'Maria Santos'],
520
+ sector: 'Data Infrastructure',
521
+ metrics: {
522
+ arr: 8500000,
523
+ mrr: 708333,
524
+ customers: 450,
525
+ employees: 45,
526
+ funding: 25000000,
527
+ valuation: 85000000,
528
+ },
529
+ studioEquity: 28,
530
+ status: 'active',
531
+ },
532
+ {
533
+ id: 'complianceai',
534
+ name: 'ComplianceAI',
535
+ thesis: 'AI-powered compliance automation',
536
+ stage: 'growth',
537
+ founded: new Date('2021-06-01'),
538
+ founders: ['James Wilson'],
539
+ sector: 'RegTech',
540
+ metrics: {
541
+ arr: 3200000,
542
+ mrr: 266667,
543
+ customers: 120,
544
+ employees: 22,
545
+ funding: 12000000,
546
+ valuation: 40000000,
547
+ },
548
+ studioEquity: 30,
549
+ status: 'active',
550
+ },
551
+ {
552
+ id: 'talentops',
553
+ name: 'TalentOps',
554
+ thesis: 'HR operations platform for remote teams',
555
+ stage: 'growth',
556
+ founded: new Date('2021-09-15'),
557
+ founders: ['Sarah Kim', 'David Park'],
558
+ sector: 'HR Tech',
559
+ metrics: {
560
+ arr: 2100000,
561
+ mrr: 175000,
562
+ customers: 200,
563
+ employees: 18,
564
+ funding: 8000000,
565
+ valuation: 25000000,
566
+ },
567
+ studioEquity: 32,
568
+ status: 'active',
569
+ },
570
+ {
571
+ id: 'securestack',
572
+ name: 'SecureStack',
573
+ thesis: 'Developer security platform',
574
+ stage: 'building',
575
+ founded: new Date('2023-01-10'),
576
+ founders: ['Mike Johnson'],
577
+ sector: 'Security',
578
+ metrics: {
579
+ arr: 450000,
580
+ mrr: 37500,
581
+ customers: 35,
582
+ employees: 8,
583
+ funding: 2000000,
584
+ valuation: 8000000,
585
+ },
586
+ studioEquity: 30,
587
+ status: 'active',
588
+ },
589
+ {
590
+ id: 'aiwriter',
591
+ name: 'AIWriter',
592
+ thesis: 'AI content generation for marketing',
593
+ stage: 'validation',
594
+ founded: new Date('2023-09-01'),
595
+ founders: ['EIR: John Smith'],
596
+ sector: 'MarTech',
597
+ metrics: {
598
+ mrr: 15000,
599
+ customers: 50,
600
+ employees: 3,
601
+ funding: 500000,
602
+ },
603
+ studioEquity: 25,
604
+ status: 'active',
605
+ },
606
+ {
607
+ id: 'cloudcost',
608
+ name: 'CloudCost',
609
+ thesis: 'Cloud cost optimization',
610
+ stage: 'exit',
611
+ founded: new Date('2019-08-01'),
612
+ founders: ['Tom Brown', 'Lisa White'],
613
+ sector: 'FinOps',
614
+ metrics: {
615
+ arr: 12000000,
616
+ customers: 300,
617
+ employees: 65,
618
+ funding: 35000000,
619
+ valuation: 150000000,
620
+ },
621
+ studioEquity: 25,
622
+ status: 'exited', // Acquired
623
+ },
624
+ ]
625
+
626
+ // =============================================================================
627
+ // 6. KPIs & METRICS
628
+ // =============================================================================
629
+
630
+ export const VentureForgeKPIs = kpis([
631
+ // Portfolio Metrics
632
+ {
633
+ name: 'Portfolio ARR',
634
+ category: 'financial',
635
+ target: 50000000,
636
+ current: 35750000,
637
+ unit: 'USD',
638
+ frequency: 'monthly',
639
+ owner: 'Managing Partner',
640
+ },
641
+ {
642
+ name: 'Portfolio Valuation',
643
+ category: 'financial',
644
+ target: 500000000,
645
+ current: 308000000,
646
+ unit: 'USD',
647
+ frequency: 'quarterly',
648
+ owner: 'Managing Partner',
649
+ },
650
+ {
651
+ name: 'Active Ventures',
652
+ category: 'operational',
653
+ target: 10,
654
+ current: 5,
655
+ frequency: 'monthly',
656
+ owner: 'Head of Building',
657
+ },
658
+ {
659
+ name: 'New Ventures / Year',
660
+ category: 'operational',
661
+ target: 5,
662
+ current: 2,
663
+ frequency: 'yearly',
664
+ owner: 'Head of Ideation',
665
+ },
666
+ // Venture Building Metrics
667
+ {
668
+ name: 'Idea to Launch Time',
669
+ category: 'operational',
670
+ target: 6,
671
+ current: 8,
672
+ unit: 'months',
673
+ frequency: 'quarterly',
674
+ owner: 'Head of Building',
675
+ },
676
+ {
677
+ name: 'Launch to $1M ARR Time',
678
+ category: 'operational',
679
+ target: 18,
680
+ current: 24,
681
+ unit: 'months',
682
+ frequency: 'quarterly',
683
+ owner: 'Managing Partner',
684
+ },
685
+ {
686
+ name: 'Venture Success Rate',
687
+ category: 'operational',
688
+ target: 60,
689
+ current: 55,
690
+ unit: '%',
691
+ frequency: 'yearly',
692
+ owner: 'Managing Partner',
693
+ },
694
+ // Fund Metrics
695
+ {
696
+ name: 'Fund Deployed',
697
+ category: 'financial',
698
+ target: 80000000,
699
+ current: 52000000,
700
+ unit: 'USD',
701
+ frequency: 'quarterly',
702
+ owner: 'Head of Fundraising',
703
+ },
704
+ {
705
+ name: 'TVPI (Total Value to Paid-In)',
706
+ category: 'financial',
707
+ target: 3.0,
708
+ current: 2.4,
709
+ frequency: 'quarterly',
710
+ owner: 'Managing Partner',
711
+ },
712
+ {
713
+ name: 'IRR',
714
+ category: 'financial',
715
+ target: 25,
716
+ current: 22,
717
+ unit: '%',
718
+ frequency: 'yearly',
719
+ owner: 'Managing Partner',
720
+ },
721
+ // Team Metrics
722
+ {
723
+ name: 'EIR Pipeline',
724
+ category: 'talent',
725
+ target: 10,
726
+ current: 6,
727
+ frequency: 'quarterly',
728
+ owner: 'Head of Talent',
729
+ },
730
+ {
731
+ name: 'Founder NPS',
732
+ category: 'customer',
733
+ target: 80,
734
+ current: 72,
735
+ frequency: 'quarterly',
736
+ owner: 'Managing Partner',
737
+ },
738
+ ])
739
+
740
+ // =============================================================================
741
+ // 7. OKRs
742
+ // =============================================================================
743
+
744
+ export const VentureForgeOKRs = okrs([
745
+ {
746
+ objective: 'Build Portfolio to $50M ARR',
747
+ owner: 'Managing Partner',
748
+ period: 'Q1 2024',
749
+ keyResults: [
750
+ {
751
+ description: 'Grow DataFlow to $12M ARR',
752
+ metric: 'DataFlow ARR',
753
+ targetValue: 12000000,
754
+ currentValue: 8500000,
755
+ unit: 'USD',
756
+ },
757
+ {
758
+ description: 'Grow ComplianceAI to $5M ARR',
759
+ metric: 'ComplianceAI ARR',
760
+ targetValue: 5000000,
761
+ currentValue: 3200000,
762
+ unit: 'USD',
763
+ },
764
+ {
765
+ description: 'Launch 2 new ventures',
766
+ metric: 'Ventures Launched',
767
+ targetValue: 2,
768
+ currentValue: 1,
769
+ },
770
+ ],
771
+ },
772
+ {
773
+ objective: 'Accelerate Venture Building',
774
+ owner: 'Head of Building',
775
+ period: 'Q1 2024',
776
+ keyResults: [
777
+ {
778
+ description: 'Reduce idea-to-launch to 6 months',
779
+ metric: 'Idea to Launch',
780
+ targetValue: 6,
781
+ currentValue: 8,
782
+ unit: 'months',
783
+ },
784
+ {
785
+ description: 'Ship 3 MVPs this quarter',
786
+ metric: 'MVPs Shipped',
787
+ targetValue: 3,
788
+ currentValue: 1,
789
+ },
790
+ {
791
+ description: 'Achieve 60% venture success rate',
792
+ metric: 'Success Rate',
793
+ targetValue: 60,
794
+ currentValue: 55,
795
+ unit: '%',
796
+ },
797
+ ],
798
+ },
799
+ {
800
+ objective: 'Build World-Class Venture Platform',
801
+ owner: 'Platform Lead',
802
+ period: 'Q1 2024',
803
+ keyResults: [
804
+ {
805
+ description: 'Launch AI ideation assistant',
806
+ metric: 'AI Features',
807
+ targetValue: 1,
808
+ currentValue: 0,
809
+ },
810
+ {
811
+ description: '100% portfolio on shared infrastructure',
812
+ metric: 'Platform Adoption',
813
+ targetValue: 100,
814
+ currentValue: 80,
815
+ unit: '%',
816
+ },
817
+ {
818
+ description: 'Reduce MVP build time by 30%',
819
+ metric: 'Build Time Reduction',
820
+ targetValue: 30,
821
+ currentValue: 15,
822
+ unit: '%',
823
+ },
824
+ ],
825
+ },
826
+ {
827
+ objective: 'Close Fund III',
828
+ owner: 'Head of Fundraising',
829
+ period: 'Q1 2024',
830
+ keyResults: [
831
+ {
832
+ description: 'Raise $100M for Fund III',
833
+ metric: 'Fund Size',
834
+ targetValue: 100000000,
835
+ currentValue: 60000000,
836
+ unit: 'USD',
837
+ },
838
+ {
839
+ description: 'Secure 3 anchor LPs',
840
+ metric: 'Anchor LPs',
841
+ targetValue: 3,
842
+ currentValue: 2,
843
+ },
844
+ {
845
+ description: 'Achieve 80% LP re-up rate',
846
+ metric: 'LP Re-up',
847
+ targetValue: 80,
848
+ currentValue: 75,
849
+ unit: '%',
850
+ },
851
+ ],
852
+ },
853
+ ])
854
+
855
+ // =============================================================================
856
+ // 8. PROCESSES
857
+ // =============================================================================
858
+
859
+ export const IdeaValidationProcess = Process({
860
+ name: 'Idea Validation',
861
+ description: 'Validate new venture ideas before committing resources',
862
+ owner: 'Head of Ideation',
863
+ steps: [
864
+ {
865
+ order: 1,
866
+ name: 'Idea Submission',
867
+ description: 'EIR or partner submits idea thesis',
868
+ automationLevel: 'manual',
869
+ duration: '1 day',
870
+ },
871
+ {
872
+ order: 2,
873
+ name: 'Market Research',
874
+ description: 'Research market size, trends, competition',
875
+ automationLevel: 'semi-automated',
876
+ duration: '1 week',
877
+ owner: 'Venture Analyst',
878
+ },
879
+ {
880
+ order: 3,
881
+ name: 'Customer Discovery',
882
+ description: 'Conduct 20+ customer interviews',
883
+ automationLevel: 'manual',
884
+ duration: '2 weeks',
885
+ owner: 'EIR',
886
+ },
887
+ {
888
+ order: 4,
889
+ name: 'Problem Validation',
890
+ description: 'Validate problem-solution fit',
891
+ automationLevel: 'manual',
892
+ duration: '1 week',
893
+ owner: 'Venture Partner',
894
+ },
895
+ {
896
+ order: 5,
897
+ name: 'Business Model',
898
+ description: 'Design and validate business model',
899
+ automationLevel: 'manual',
900
+ duration: '1 week',
901
+ owner: 'EIR',
902
+ },
903
+ {
904
+ order: 6,
905
+ name: 'Investment Committee',
906
+ description: 'Present to IC for approval',
907
+ automationLevel: 'manual',
908
+ duration: '1 day',
909
+ owner: 'Venture Partner',
910
+ },
911
+ {
912
+ order: 7,
913
+ name: 'Go/No-Go Decision',
914
+ description: 'Final decision to proceed',
915
+ automationLevel: 'manual',
916
+ duration: '1 day',
917
+ owner: 'Managing Partner',
918
+ },
919
+ ],
920
+ metrics: [
921
+ { name: 'Validation Time', target: 6, unit: 'weeks' },
922
+ { name: 'Pass Rate', target: 30, unit: '%' },
923
+ { name: 'Customer Interviews', target: 20 },
924
+ ],
925
+ })
926
+
927
+ export const VentureBuildProcess = Process({
928
+ name: 'Venture Building',
929
+ description: 'Build new venture from validation to MVP',
930
+ owner: 'Head of Building',
931
+ steps: [
932
+ {
933
+ order: 1,
934
+ name: 'Team Assembly',
935
+ description: 'Assign founder and initial team',
936
+ automationLevel: 'manual',
937
+ duration: '2 weeks',
938
+ owner: 'Head of Talent',
939
+ },
940
+ {
941
+ order: 2,
942
+ name: 'Incorporation',
943
+ description: 'Legal setup and incorporation',
944
+ automationLevel: 'semi-automated',
945
+ duration: '1 week',
946
+ owner: 'Operations',
947
+ },
948
+ {
949
+ order: 3,
950
+ name: 'Product Strategy',
951
+ description: 'Define product vision and roadmap',
952
+ automationLevel: 'manual',
953
+ duration: '2 weeks',
954
+ owner: 'Venture Partner',
955
+ },
956
+ {
957
+ order: 4,
958
+ name: 'Design Sprint',
959
+ description: 'UX research and design',
960
+ automationLevel: 'manual',
961
+ duration: '2 weeks',
962
+ owner: 'Design Lead',
963
+ },
964
+ {
965
+ order: 5,
966
+ name: 'MVP Development',
967
+ description: 'Build minimum viable product',
968
+ automationLevel: 'manual',
969
+ duration: '8 weeks',
970
+ owner: 'Tech Lead',
971
+ },
972
+ {
973
+ order: 6,
974
+ name: 'Beta Launch',
975
+ description: 'Launch to beta customers',
976
+ automationLevel: 'semi-automated',
977
+ duration: '2 weeks',
978
+ },
979
+ {
980
+ order: 7,
981
+ name: 'Iterate',
982
+ description: 'Customer feedback and iteration',
983
+ automationLevel: 'manual',
984
+ duration: '4 weeks',
985
+ owner: 'Portfolio CEO',
986
+ },
987
+ {
988
+ order: 8,
989
+ name: 'GA Launch',
990
+ description: 'General availability launch',
991
+ automationLevel: 'semi-automated',
992
+ duration: '2 weeks',
993
+ },
994
+ ],
995
+ metrics: [
996
+ { name: 'Time to MVP', target: 12, unit: 'weeks' },
997
+ { name: 'Time to First Customer', target: 16, unit: 'weeks' },
998
+ { name: 'Time to $100K ARR', target: 9, unit: 'months' },
999
+ ],
1000
+ })
1001
+
1002
+ export const PortfolioSupportProcess = Process({
1003
+ name: 'Portfolio Support',
1004
+ description: 'Ongoing support for portfolio companies',
1005
+ owner: 'Portfolio Lead',
1006
+ steps: [
1007
+ {
1008
+ order: 1,
1009
+ name: 'Weekly Sync',
1010
+ description: 'Weekly sync with portfolio CEO',
1011
+ automationLevel: 'manual',
1012
+ duration: '30 minutes',
1013
+ owner: 'Venture Partner',
1014
+ },
1015
+ {
1016
+ order: 2,
1017
+ name: 'Metric Review',
1018
+ description: 'Review weekly/monthly metrics',
1019
+ automationLevel: 'semi-automated',
1020
+ duration: '1 hour',
1021
+ },
1022
+ {
1023
+ order: 3,
1024
+ name: 'Board Meeting',
1025
+ description: 'Quarterly board meeting',
1026
+ automationLevel: 'manual',
1027
+ duration: '2 hours',
1028
+ owner: 'Venture Partner',
1029
+ },
1030
+ {
1031
+ order: 4,
1032
+ name: 'Fundraising Support',
1033
+ description: 'Help with Series A/B fundraising',
1034
+ automationLevel: 'manual',
1035
+ duration: '3 months',
1036
+ owner: 'Managing Partner',
1037
+ },
1038
+ {
1039
+ order: 5,
1040
+ name: 'Talent Support',
1041
+ description: 'Help with key hires',
1042
+ automationLevel: 'semi-automated',
1043
+ duration: 'ongoing',
1044
+ owner: 'Head of Talent',
1045
+ },
1046
+ ],
1047
+ metrics: [
1048
+ { name: 'NPS', target: 80 },
1049
+ { name: 'Follow-on Funding Rate', target: 80, unit: '%' },
1050
+ { name: 'Founder Retention', target: 90, unit: '%' },
1051
+ ],
1052
+ })
1053
+
1054
+ // =============================================================================
1055
+ // 9. WORKFLOWS
1056
+ // =============================================================================
1057
+
1058
+ export const IdeaScreeningWorkflow = Workflow({
1059
+ name: 'Idea Screening',
1060
+ description: 'Initial screening of new venture ideas',
1061
+ trigger: { type: 'event', event: 'idea.submitted' },
1062
+ actions: [
1063
+ {
1064
+ order: 1,
1065
+ type: 'compute',
1066
+ name: 'AI Thesis Analysis',
1067
+ config: {
1068
+ analyze: ['market_size', 'competition', 'timing', 'fit'],
1069
+ },
1070
+ },
1071
+ {
1072
+ order: 2,
1073
+ type: 'compute',
1074
+ name: 'Score Idea',
1075
+ config: {
1076
+ factors: ['market', 'team', 'timing', 'defensibility', 'studio_fit'],
1077
+ weights: [0.25, 0.25, 0.2, 0.15, 0.15],
1078
+ },
1079
+ },
1080
+ {
1081
+ order: 3,
1082
+ type: 'condition',
1083
+ name: 'Check Score',
1084
+ condition: 'score >= 70',
1085
+ },
1086
+ {
1087
+ order: 4,
1088
+ type: 'notification',
1089
+ name: 'Alert Partner',
1090
+ config: {
1091
+ channel: 'slack',
1092
+ template: 'high_potential_idea',
1093
+ },
1094
+ },
1095
+ {
1096
+ order: 5,
1097
+ type: 'task',
1098
+ name: 'Assign Research',
1099
+ config: {
1100
+ type: 'market-research',
1101
+ assignTo: 'venture-analyst',
1102
+ dueIn: '1 week',
1103
+ },
1104
+ },
1105
+ ],
1106
+ })
1107
+
1108
+ export const PortfolioAlertWorkflow = Workflow({
1109
+ name: 'Portfolio Health Alert',
1110
+ description: 'Alert on portfolio company health changes',
1111
+ trigger: { type: 'schedule', cron: '0 9 * * 1' }, // Weekly Monday 9am
1112
+ actions: [
1113
+ {
1114
+ order: 1,
1115
+ type: 'compute',
1116
+ name: 'Calculate Health Scores',
1117
+ config: {
1118
+ metrics: ['revenue_growth', 'burn_rate', 'runway', 'nrr', 'team_changes'],
1119
+ },
1120
+ },
1121
+ {
1122
+ order: 2,
1123
+ type: 'condition',
1124
+ name: 'Check At Risk',
1125
+ condition: 'healthScore < 60 || runway < 6',
1126
+ },
1127
+ {
1128
+ order: 3,
1129
+ type: 'notification',
1130
+ name: 'Alert Managing Partner',
1131
+ config: {
1132
+ channel: 'email',
1133
+ template: 'portfolio_at_risk',
1134
+ priority: 'high',
1135
+ },
1136
+ },
1137
+ {
1138
+ order: 4,
1139
+ type: 'task',
1140
+ name: 'Create Intervention Task',
1141
+ config: {
1142
+ type: 'portfolio-intervention',
1143
+ assignTo: 'venture-partner',
1144
+ data: ['company', 'healthScore', 'issues'],
1145
+ },
1146
+ },
1147
+ ],
1148
+ })
1149
+
1150
+ export const FundraisingWorkflow = Workflow({
1151
+ name: 'Fundraising Support',
1152
+ description: 'Coordinate fundraising support for portfolio companies',
1153
+ trigger: { type: 'event', event: 'fundraising.initiated' },
1154
+ actions: [
1155
+ {
1156
+ order: 1,
1157
+ type: 'notification',
1158
+ name: 'Notify Team',
1159
+ config: {
1160
+ channel: 'slack',
1161
+ template: 'fundraising_kick_off',
1162
+ to: ['venture-partner', 'managing-partner'],
1163
+ },
1164
+ },
1165
+ {
1166
+ order: 2,
1167
+ type: 'task',
1168
+ name: 'Update Materials',
1169
+ config: {
1170
+ type: 'deck-review',
1171
+ assignTo: 'venture-partner',
1172
+ dueIn: '1 week',
1173
+ },
1174
+ },
1175
+ {
1176
+ order: 3,
1177
+ type: 'task',
1178
+ name: 'Investor Intros',
1179
+ config: {
1180
+ type: 'investor-intros',
1181
+ assignTo: 'managing-partner',
1182
+ dueIn: '2 weeks',
1183
+ },
1184
+ },
1185
+ {
1186
+ order: 4,
1187
+ type: 'wait',
1188
+ name: 'Wait for Process',
1189
+ duration: '2 weeks',
1190
+ },
1191
+ {
1192
+ order: 5,
1193
+ type: 'notification',
1194
+ name: 'Check-in',
1195
+ config: {
1196
+ channel: 'slack',
1197
+ template: 'fundraising_checkin',
1198
+ },
1199
+ },
1200
+ ],
1201
+ })
1202
+
1203
+ // =============================================================================
1204
+ // 10. FINANCIALS
1205
+ // =============================================================================
1206
+
1207
+ export const VentureForgeFinancials = financials({
1208
+ revenue: 4400000, // Management fees + realized gains
1209
+ cogs: 0, // Venture building is internally resourced
1210
+ operatingExpenses: 4000000, // Team, office, operations
1211
+ depreciation: 50000,
1212
+ interestExpense: 0,
1213
+ otherIncome: 0,
1214
+ taxes: 100000,
1215
+ })
1216
+
1217
+ export const StudioMetrics = {
1218
+ fund: {
1219
+ size: 80000000,
1220
+ deployed: 52000000,
1221
+ remaining: 28000000,
1222
+ managementFee: 0.02, // 2%
1223
+ carry: 0.20, // 20%
1224
+ },
1225
+ portfolio: {
1226
+ companies: 5,
1227
+ totalArr: 35750000,
1228
+ totalValuation: 308000000,
1229
+ avgEquity: 28, // %
1230
+ studioValue: 86240000, // Portfolio value * avg equity
1231
+ },
1232
+ performance: {
1233
+ tvpi: 2.4,
1234
+ dpi: 0.8, // Realized returns
1235
+ irr: 22, // %
1236
+ moic: 2.4,
1237
+ },
1238
+ operations: {
1239
+ venturesLaunched: 15, // All time
1240
+ successRate: 55, // %
1241
+ avgTimeToMvp: 8, // months
1242
+ avgTimeToMillionArr: 24, // months
1243
+ },
1244
+ lps: {
1245
+ count: 25,
1246
+ reupRate: 75, // %
1247
+ },
1248
+ }
1249
+
1250
+ // =============================================================================
1251
+ // 11. UTILITY FUNCTIONS
1252
+ // =============================================================================
1253
+
1254
+ export function getBusinessSummary() {
1255
+ return {
1256
+ company: VentureForgeBusiness,
1257
+ vision: VentureForgeVision,
1258
+ goals: VentureForgeGoals,
1259
+ services: StudioServices,
1260
+ products: StudioProducts,
1261
+ portfolio: Portfolio,
1262
+ kpis: VentureForgeKPIs,
1263
+ okrs: VentureForgeOKRs,
1264
+ financials: VentureForgeFinancials,
1265
+ metrics: StudioMetrics,
1266
+ }
1267
+ }
1268
+
1269
+ export function getPortfolioSummary() {
1270
+ const active = Portfolio.filter(c => c.status === 'active')
1271
+ const totalArr = active.reduce((sum, c) => sum + (c.metrics.arr || 0), 0)
1272
+ const totalValuation = active.reduce((sum, c) => sum + (c.metrics.valuation || 0), 0)
1273
+
1274
+ return {
1275
+ activeCompanies: active.length,
1276
+ totalArr: $.format(totalArr),
1277
+ totalValuation: $.format(totalValuation),
1278
+ avgEquity: `${StudioMetrics.portfolio.avgEquity}%`,
1279
+ studioValue: $.format(totalValuation * (StudioMetrics.portfolio.avgEquity / 100)),
1280
+ }
1281
+ }
1282
+
1283
+ export function getFundMetrics() {
1284
+ return {
1285
+ fundSize: $.format(StudioMetrics.fund.size),
1286
+ deployed: $.format(StudioMetrics.fund.deployed),
1287
+ remaining: $.format(StudioMetrics.fund.remaining),
1288
+ tvpi: `${StudioMetrics.performance.tvpi}x`,
1289
+ irr: `${StudioMetrics.performance.irr}%`,
1290
+ }
1291
+ }
1292
+
1293
+ export function getCompanyByStage() {
1294
+ const byStage = Portfolio.reduce((acc, c) => {
1295
+ acc[c.stage] = (acc[c.stage] || 0) + 1
1296
+ return acc
1297
+ }, {} as Record<string, number>)
1298
+ return byStage
1299
+ }
1300
+
1301
+ export default {
1302
+ business: VentureForgeBusiness,
1303
+ vision: VentureForgeVision,
1304
+ goals: VentureForgeGoals,
1305
+ services: StudioServices,
1306
+ products: StudioProducts,
1307
+ investmentTerms: InvestmentTerms,
1308
+ organization: VentureForgeOrg,
1309
+ portfolio: Portfolio,
1310
+ kpis: VentureForgeKPIs,
1311
+ okrs: VentureForgeOKRs,
1312
+ processes: {
1313
+ ideaValidation: IdeaValidationProcess,
1314
+ ventureBuild: VentureBuildProcess,
1315
+ portfolioSupport: PortfolioSupportProcess,
1316
+ },
1317
+ workflows: {
1318
+ ideaScreening: IdeaScreeningWorkflow,
1319
+ portfolioAlert: PortfolioAlertWorkflow,
1320
+ fundraising: FundraisingWorkflow,
1321
+ },
1322
+ financials: VentureForgeFinancials,
1323
+ metrics: StudioMetrics,
1324
+ }