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