@synap-core/workspace-templates 0.2.2 → 0.3.0
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/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +4738 -4213
- package/package.json +3 -2
- package/src/agent-fleet.yaml +0 -398
- package/src/brand-library.yaml +31 -44
- package/src/builder.yaml +39 -18
- package/src/content-os.yaml +0 -391
- package/src/content-studio.yaml +32 -22
- package/src/crm.yaml +0 -423
- package/src/dev-dashboard.yaml +0 -393
- package/src/finance.yaml +446 -0
- package/src/foundation.yaml +0 -8
- package/src/hr.yaml +433 -0
- package/src/legal.yaml +452 -0
- package/src/life-os.yaml +0 -89
- package/src/marketing.yaml +30 -15
- package/src/operations.yaml +457 -0
- package/src/personal.yaml +30 -6
- package/src/project-management.yaml +0 -378
- package/src/radar.yaml +0 -11
- package/src/templates.ts +4738 -4213
package/src/finance.yaml
ADDED
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
# Finance workspace template
|
|
2
|
+
# A pragmatic startup CFO's operating model: cash, receivables, spend, revenue,
|
|
3
|
+
# budgets, and the vital signs (runway / burn / MRR). Provider of the `finance`
|
|
4
|
+
# domain; consumes `strategy` from Foundation for pricing/positioning context.
|
|
5
|
+
|
|
6
|
+
meta:
|
|
7
|
+
slug: finance
|
|
8
|
+
name: Finance
|
|
9
|
+
description: The company's money model — accounts, receivables, spend, revenue streams, budgets, and runway.
|
|
10
|
+
icon: banknote
|
|
11
|
+
color: "#16A34A"
|
|
12
|
+
tags: [finance, accounting, revenue]
|
|
13
|
+
isPublic: true
|
|
14
|
+
|
|
15
|
+
workspace:
|
|
16
|
+
name: Finance
|
|
17
|
+
description: Startup finance workspace — bank/ledger accounts, invoices (AR), expenses (AP), revenue streams, budgets, and the runway/burn/MRR metrics that keep the company alive.
|
|
18
|
+
proposalId: finance-v1
|
|
19
|
+
subtype: finance
|
|
20
|
+
visibility: members
|
|
21
|
+
workspaceType: operational
|
|
22
|
+
capabilities:
|
|
23
|
+
- finance.accounts
|
|
24
|
+
- finance.revenue
|
|
25
|
+
- finance.expenses
|
|
26
|
+
# Finance PROVIDES the finance domain, and CONSUMES strategy (Foundation) so
|
|
27
|
+
# pricing/positioning context informs revenue modeling. The concrete provider
|
|
28
|
+
# workspaceId for `strategy` is resolved at runtime (defaultSources), so it is
|
|
29
|
+
# expressed here declaratively via the consumer source role.
|
|
30
|
+
sourceRoles:
|
|
31
|
+
finance: provider
|
|
32
|
+
strategy: consumer
|
|
33
|
+
|
|
34
|
+
profiles:
|
|
35
|
+
- slug: account
|
|
36
|
+
displayName: Account
|
|
37
|
+
icon: landmark
|
|
38
|
+
color: green
|
|
39
|
+
description: A bank, credit, or ledger account holding company cash.
|
|
40
|
+
properties:
|
|
41
|
+
- slug: account-type
|
|
42
|
+
label: Type
|
|
43
|
+
valueType: string
|
|
44
|
+
inputType: select
|
|
45
|
+
enumValues: [checking, savings, credit-card, ledger, investment, other]
|
|
46
|
+
constraints: { defaultValue: checking }
|
|
47
|
+
- slug: institution
|
|
48
|
+
label: Institution
|
|
49
|
+
valueType: string
|
|
50
|
+
inputType: text
|
|
51
|
+
placeholder: e.g. Mercury, Chase
|
|
52
|
+
- slug: balance
|
|
53
|
+
label: Current Balance
|
|
54
|
+
valueType: number
|
|
55
|
+
inputType: number
|
|
56
|
+
- slug: currency
|
|
57
|
+
label: Currency
|
|
58
|
+
valueType: string
|
|
59
|
+
inputType: select
|
|
60
|
+
enumValues: [USD, EUR, GBP, other]
|
|
61
|
+
constraints: { defaultValue: USD }
|
|
62
|
+
- slug: status
|
|
63
|
+
label: Status
|
|
64
|
+
valueType: string
|
|
65
|
+
inputType: select
|
|
66
|
+
enumValues: [active, dormant, closed]
|
|
67
|
+
constraints: { defaultValue: active }
|
|
68
|
+
- slug: last-four
|
|
69
|
+
label: Account (last 4)
|
|
70
|
+
valueType: string
|
|
71
|
+
inputType: text
|
|
72
|
+
|
|
73
|
+
- slug: invoice
|
|
74
|
+
displayName: Invoice
|
|
75
|
+
icon: receipt
|
|
76
|
+
color: blue
|
|
77
|
+
description: An accounts-receivable invoice — money customers owe us.
|
|
78
|
+
properties:
|
|
79
|
+
- slug: invoice-number
|
|
80
|
+
label: Invoice #
|
|
81
|
+
valueType: string
|
|
82
|
+
inputType: text
|
|
83
|
+
- slug: status
|
|
84
|
+
label: Status
|
|
85
|
+
valueType: string
|
|
86
|
+
inputType: select
|
|
87
|
+
enumValues: [draft, sent, paid, overdue, void]
|
|
88
|
+
constraints: { defaultValue: draft }
|
|
89
|
+
- slug: amount
|
|
90
|
+
label: Amount
|
|
91
|
+
valueType: number
|
|
92
|
+
inputType: number
|
|
93
|
+
- slug: currency
|
|
94
|
+
label: Currency
|
|
95
|
+
valueType: string
|
|
96
|
+
inputType: select
|
|
97
|
+
enumValues: [USD, EUR, GBP, other]
|
|
98
|
+
constraints: { defaultValue: USD }
|
|
99
|
+
- slug: customer
|
|
100
|
+
label: Customer
|
|
101
|
+
valueType: string
|
|
102
|
+
inputType: text
|
|
103
|
+
- slug: issue-date
|
|
104
|
+
label: Issue Date
|
|
105
|
+
valueType: date
|
|
106
|
+
inputType: date
|
|
107
|
+
- slug: due-date
|
|
108
|
+
label: Due Date
|
|
109
|
+
valueType: date
|
|
110
|
+
inputType: date
|
|
111
|
+
- slug: paid-date
|
|
112
|
+
label: Paid Date
|
|
113
|
+
valueType: date
|
|
114
|
+
inputType: date
|
|
115
|
+
|
|
116
|
+
- slug: expense
|
|
117
|
+
displayName: Expense
|
|
118
|
+
icon: credit-card
|
|
119
|
+
color: orange
|
|
120
|
+
description: An accounts-payable expense or spend commitment.
|
|
121
|
+
properties:
|
|
122
|
+
- slug: category
|
|
123
|
+
label: Category
|
|
124
|
+
valueType: string
|
|
125
|
+
inputType: select
|
|
126
|
+
enumValues: [payroll, software, marketing, rent, travel, contractors, taxes, other]
|
|
127
|
+
constraints: { defaultValue: other }
|
|
128
|
+
- slug: status
|
|
129
|
+
label: Status
|
|
130
|
+
valueType: string
|
|
131
|
+
inputType: select
|
|
132
|
+
enumValues: [pending, approved, paid, reimbursed, rejected]
|
|
133
|
+
constraints: { defaultValue: pending }
|
|
134
|
+
- slug: amount
|
|
135
|
+
label: Amount
|
|
136
|
+
valueType: number
|
|
137
|
+
inputType: number
|
|
138
|
+
- slug: vendor
|
|
139
|
+
label: Vendor
|
|
140
|
+
valueType: string
|
|
141
|
+
inputType: text
|
|
142
|
+
- slug: expense-date
|
|
143
|
+
label: Date
|
|
144
|
+
valueType: date
|
|
145
|
+
inputType: date
|
|
146
|
+
- slug: recurring
|
|
147
|
+
label: Recurring
|
|
148
|
+
valueType: boolean
|
|
149
|
+
inputType: checkbox
|
|
150
|
+
- slug: payment-method
|
|
151
|
+
label: Payment Method
|
|
152
|
+
valueType: string
|
|
153
|
+
inputType: text
|
|
154
|
+
|
|
155
|
+
- slug: revenue-stream
|
|
156
|
+
displayName: Revenue Stream
|
|
157
|
+
icon: trending-up
|
|
158
|
+
color: teal
|
|
159
|
+
description: A source of revenue — recurring subscription, services, or one-off.
|
|
160
|
+
properties:
|
|
161
|
+
- slug: stream-type
|
|
162
|
+
label: Type
|
|
163
|
+
valueType: string
|
|
164
|
+
inputType: select
|
|
165
|
+
enumValues: [subscription, usage, services, one-off, licensing, other]
|
|
166
|
+
constraints: { defaultValue: subscription }
|
|
167
|
+
- slug: status
|
|
168
|
+
label: Status
|
|
169
|
+
valueType: string
|
|
170
|
+
inputType: select
|
|
171
|
+
enumValues: [active, paused, churned, planned]
|
|
172
|
+
constraints: { defaultValue: active }
|
|
173
|
+
- slug: mrr
|
|
174
|
+
label: MRR
|
|
175
|
+
valueType: number
|
|
176
|
+
inputType: number
|
|
177
|
+
- slug: arr
|
|
178
|
+
label: ARR
|
|
179
|
+
valueType: number
|
|
180
|
+
inputType: number
|
|
181
|
+
- slug: billing-cadence
|
|
182
|
+
label: Billing Cadence
|
|
183
|
+
valueType: string
|
|
184
|
+
inputType: select
|
|
185
|
+
enumValues: [monthly, quarterly, annual, one-time]
|
|
186
|
+
constraints: { defaultValue: monthly }
|
|
187
|
+
- slug: customer-segment
|
|
188
|
+
label: Customer Segment
|
|
189
|
+
valueType: string
|
|
190
|
+
inputType: text
|
|
191
|
+
- slug: start-date
|
|
192
|
+
label: Start Date
|
|
193
|
+
valueType: date
|
|
194
|
+
inputType: date
|
|
195
|
+
|
|
196
|
+
- slug: budget
|
|
197
|
+
displayName: Budget
|
|
198
|
+
icon: pie-chart
|
|
199
|
+
color: violet
|
|
200
|
+
description: A planned spend allocation for a category and period, tracked vs actual.
|
|
201
|
+
properties:
|
|
202
|
+
- slug: category
|
|
203
|
+
label: Category
|
|
204
|
+
valueType: string
|
|
205
|
+
inputType: select
|
|
206
|
+
enumValues: [payroll, marketing, product, sales, ops, g-and-a, other]
|
|
207
|
+
constraints: { defaultValue: other }
|
|
208
|
+
- slug: period
|
|
209
|
+
label: Period
|
|
210
|
+
valueType: string
|
|
211
|
+
inputType: select
|
|
212
|
+
enumValues: [monthly, quarterly, annual]
|
|
213
|
+
constraints: { defaultValue: quarterly }
|
|
214
|
+
- slug: fiscal-year
|
|
215
|
+
label: Fiscal Year
|
|
216
|
+
valueType: string
|
|
217
|
+
inputType: text
|
|
218
|
+
placeholder: e.g. FY2026
|
|
219
|
+
- slug: budgeted-amount
|
|
220
|
+
label: Budgeted
|
|
221
|
+
valueType: number
|
|
222
|
+
inputType: number
|
|
223
|
+
- slug: actual-amount
|
|
224
|
+
label: Actual
|
|
225
|
+
valueType: number
|
|
226
|
+
inputType: number
|
|
227
|
+
- slug: status
|
|
228
|
+
label: Status
|
|
229
|
+
valueType: string
|
|
230
|
+
inputType: select
|
|
231
|
+
enumValues: [on-track, at-risk, over-budget]
|
|
232
|
+
constraints: { defaultValue: on-track }
|
|
233
|
+
- slug: owner
|
|
234
|
+
label: Owner
|
|
235
|
+
valueType: string
|
|
236
|
+
inputType: text
|
|
237
|
+
|
|
238
|
+
- slug: financial-metric
|
|
239
|
+
displayName: Financial Metric
|
|
240
|
+
icon: gauge
|
|
241
|
+
color: amber
|
|
242
|
+
description: A tracked vital sign — runway, burn rate, MRR, cash balance, margin.
|
|
243
|
+
properties:
|
|
244
|
+
- slug: metric-type
|
|
245
|
+
label: Metric
|
|
246
|
+
valueType: string
|
|
247
|
+
inputType: select
|
|
248
|
+
enumValues: [runway, burn-rate, mrr, arr, cash-balance, gross-margin, cac, ltv, other]
|
|
249
|
+
constraints: { defaultValue: runway }
|
|
250
|
+
- slug: value
|
|
251
|
+
label: Value
|
|
252
|
+
valueType: number
|
|
253
|
+
inputType: number
|
|
254
|
+
- slug: unit
|
|
255
|
+
label: Unit
|
|
256
|
+
valueType: string
|
|
257
|
+
inputType: select
|
|
258
|
+
enumValues: [months, currency, percent, ratio]
|
|
259
|
+
constraints: { defaultValue: months }
|
|
260
|
+
- slug: as-of-date
|
|
261
|
+
label: As Of
|
|
262
|
+
valueType: date
|
|
263
|
+
inputType: date
|
|
264
|
+
- slug: period
|
|
265
|
+
label: Period
|
|
266
|
+
valueType: string
|
|
267
|
+
inputType: select
|
|
268
|
+
enumValues: [point-in-time, monthly, quarterly, annual]
|
|
269
|
+
constraints: { defaultValue: point-in-time }
|
|
270
|
+
- slug: target
|
|
271
|
+
label: Target
|
|
272
|
+
valueType: number
|
|
273
|
+
inputType: number
|
|
274
|
+
- slug: trend
|
|
275
|
+
label: Trend
|
|
276
|
+
valueType: string
|
|
277
|
+
inputType: select
|
|
278
|
+
enumValues: [up, flat, down]
|
|
279
|
+
|
|
280
|
+
views:
|
|
281
|
+
- name: Accounts
|
|
282
|
+
slug: accounts
|
|
283
|
+
type: table
|
|
284
|
+
scopeProfileSlug: account
|
|
285
|
+
description: All cash, credit, and ledger accounts with balances.
|
|
286
|
+
config:
|
|
287
|
+
columns: [title, account-type, institution, balance, currency, status]
|
|
288
|
+
- name: Invoices
|
|
289
|
+
slug: invoices
|
|
290
|
+
type: table
|
|
291
|
+
scopeProfileSlug: invoice
|
|
292
|
+
defaultView: true
|
|
293
|
+
description: Accounts receivable — who owes us, how much, and when it's due.
|
|
294
|
+
config:
|
|
295
|
+
columns: [title, invoice-number, status, amount, customer, due-date, paid-date]
|
|
296
|
+
defaultSort:
|
|
297
|
+
field: due-date
|
|
298
|
+
direction: asc
|
|
299
|
+
- name: Expenses
|
|
300
|
+
slug: expenses
|
|
301
|
+
type: kanban
|
|
302
|
+
scopeProfileSlug: expense
|
|
303
|
+
groupBy: status
|
|
304
|
+
description: Accounts payable and spend, grouped by approval/payment status.
|
|
305
|
+
config:
|
|
306
|
+
groupBy: status
|
|
307
|
+
cardFields: [category, amount, vendor, expense-date]
|
|
308
|
+
- name: Revenue
|
|
309
|
+
slug: revenue
|
|
310
|
+
type: table
|
|
311
|
+
scopeProfileSlug: revenue-stream
|
|
312
|
+
description: Revenue streams with MRR/ARR and billing cadence.
|
|
313
|
+
config:
|
|
314
|
+
columns: [title, stream-type, status, mrr, arr, billing-cadence, customer-segment]
|
|
315
|
+
defaultSort:
|
|
316
|
+
field: mrr
|
|
317
|
+
direction: desc
|
|
318
|
+
- name: Budget vs Actual
|
|
319
|
+
slug: budget-vs-actual
|
|
320
|
+
type: table
|
|
321
|
+
scopeProfileSlug: budget
|
|
322
|
+
description: Planned spend against actuals, by category and period.
|
|
323
|
+
config:
|
|
324
|
+
columns: [title, category, period, fiscal-year, budgeted-amount, actual-amount, status]
|
|
325
|
+
- name: Runway & Metrics
|
|
326
|
+
slug: runway-metrics
|
|
327
|
+
type: table
|
|
328
|
+
scopeProfileSlug: financial-metric
|
|
329
|
+
description: The vital signs — runway, burn, MRR, cash balance — vs target.
|
|
330
|
+
config:
|
|
331
|
+
columns: [title, metric-type, value, unit, target, trend, as-of-date]
|
|
332
|
+
defaultSort:
|
|
333
|
+
field: as-of-date
|
|
334
|
+
direction: desc
|
|
335
|
+
|
|
336
|
+
# Schema-level links — give the finance graph and relation picker sensible
|
|
337
|
+
# domain edges from day one.
|
|
338
|
+
entityLinks:
|
|
339
|
+
- sourceProfileSlug: invoice
|
|
340
|
+
targetProfileSlug: account
|
|
341
|
+
type: deposited_to
|
|
342
|
+
label: Deposited to
|
|
343
|
+
- sourceProfileSlug: expense
|
|
344
|
+
targetProfileSlug: budget
|
|
345
|
+
type: counts_against
|
|
346
|
+
label: Counts against
|
|
347
|
+
- sourceProfileSlug: expense
|
|
348
|
+
targetProfileSlug: account
|
|
349
|
+
type: paid_from
|
|
350
|
+
label: Paid from
|
|
351
|
+
- sourceProfileSlug: revenue-stream
|
|
352
|
+
targetProfileSlug: account
|
|
353
|
+
type: deposits_to
|
|
354
|
+
label: Deposits to
|
|
355
|
+
|
|
356
|
+
onboarding:
|
|
357
|
+
goal: Capture the company's real money model — where cash sits, what revenue comes in, what it burns on, and its current runway — so the workspace reflects the actual financial position, not a generic ledger.
|
|
358
|
+
framing: >
|
|
359
|
+
THE CFO: Act as a pragmatic, numerate startup CFO. Get to the truth of the
|
|
360
|
+
company's finances fast: how much cash is in the bank, what's coming in and
|
|
361
|
+
from where, what it burns each month, and how many months of runway that
|
|
362
|
+
leaves. Push for real numbers over estimates, flag anything that doesn't add
|
|
363
|
+
up, and tie revenue back to the company's positioning and pricing (from
|
|
364
|
+
Foundation) so the model is grounded in strategy, not spreadsheets.
|
|
365
|
+
collect:
|
|
366
|
+
- profileSlug: account
|
|
367
|
+
what: The bank and credit accounts holding company cash, with current balances.
|
|
368
|
+
cardinality: few
|
|
369
|
+
keyFields: [title, account-type, balance]
|
|
370
|
+
- profileSlug: revenue-stream
|
|
371
|
+
what: How the company makes money — each recurring or one-off revenue stream and its MRR/ARR.
|
|
372
|
+
cardinality: several
|
|
373
|
+
keyFields: [title, stream-type, mrr]
|
|
374
|
+
- profileSlug: expense
|
|
375
|
+
what: The biggest recurring and one-off costs — payroll, software, contractors, rent.
|
|
376
|
+
cardinality: several
|
|
377
|
+
keyFields: [title, category, amount]
|
|
378
|
+
- profileSlug: financial-metric
|
|
379
|
+
what: The current vital signs, above all RUNWAY (months of cash left) plus burn rate and MRR.
|
|
380
|
+
cardinality: few
|
|
381
|
+
keyFields: [metric-type, value, unit]
|
|
382
|
+
openingQuestions:
|
|
383
|
+
- How much cash is in the bank right now, and across which accounts?
|
|
384
|
+
- Where does revenue come from today, and roughly what's the monthly recurring amount?
|
|
385
|
+
- What do you burn in a typical month — and how many months of runway does that leave?
|
|
386
|
+
doneWhen: At least one account with a balance, the main revenue streams, the largest expenses, and a runway metric are all captured with real numbers.
|
|
387
|
+
|
|
388
|
+
app:
|
|
389
|
+
kind: stored
|
|
390
|
+
cellKey: entity-detail
|
|
391
|
+
|
|
392
|
+
layout:
|
|
393
|
+
defaultView: Invoices
|
|
394
|
+
defaultApp: null
|
|
395
|
+
pinnedApps: [dashboard, data, intelligence]
|
|
396
|
+
sidebarItems:
|
|
397
|
+
- kind: view
|
|
398
|
+
viewName: Runway & Metrics
|
|
399
|
+
label: Runway & Metrics
|
|
400
|
+
icon: gauge
|
|
401
|
+
- kind: view
|
|
402
|
+
viewName: Accounts
|
|
403
|
+
label: Accounts
|
|
404
|
+
icon: landmark
|
|
405
|
+
- kind: view
|
|
406
|
+
viewName: Invoices
|
|
407
|
+
label: Invoices
|
|
408
|
+
icon: receipt
|
|
409
|
+
- kind: view
|
|
410
|
+
viewName: Expenses
|
|
411
|
+
label: Expenses
|
|
412
|
+
icon: credit-card
|
|
413
|
+
- kind: view
|
|
414
|
+
viewName: Revenue
|
|
415
|
+
label: Revenue
|
|
416
|
+
icon: trending-up
|
|
417
|
+
- kind: view
|
|
418
|
+
viewName: Budget vs Actual
|
|
419
|
+
label: Budget vs Actual
|
|
420
|
+
icon: pie-chart
|
|
421
|
+
- kind: app
|
|
422
|
+
appId: data
|
|
423
|
+
label: All Data
|
|
424
|
+
icon: database
|
|
425
|
+
|
|
426
|
+
bento:
|
|
427
|
+
viewName: Finance Command Center
|
|
428
|
+
blocks:
|
|
429
|
+
- kind: view
|
|
430
|
+
viewName: Runway & Metrics
|
|
431
|
+
pos: { x: 0, y: 0, w: 8, h: 4 }
|
|
432
|
+
- kind: view
|
|
433
|
+
viewName: Accounts
|
|
434
|
+
pos: { x: 8, y: 0, w: 4, h: 4 }
|
|
435
|
+
- kind: view
|
|
436
|
+
viewName: Invoices
|
|
437
|
+
pos: { x: 0, y: 4, w: 6, h: 4 }
|
|
438
|
+
- kind: view
|
|
439
|
+
viewName: Expenses
|
|
440
|
+
pos: { x: 6, y: 4, w: 6, h: 4 }
|
|
441
|
+
- kind: view
|
|
442
|
+
viewName: Revenue
|
|
443
|
+
pos: { x: 0, y: 8, w: 6, h: 4 }
|
|
444
|
+
- kind: view
|
|
445
|
+
viewName: Budget vs Actual
|
|
446
|
+
pos: { x: 6, y: 8, w: 6, h: 4 }
|
package/src/foundation.yaml
CHANGED
|
@@ -334,11 +334,3 @@ bento:
|
|
|
334
334
|
- kind: view
|
|
335
335
|
viewName: Pain Points
|
|
336
336
|
pos: { x: 6, y: 4, w: 6, h: 4 }
|
|
337
|
-
|
|
338
|
-
seedEntities:
|
|
339
|
-
- profileSlug: mission
|
|
340
|
-
title: Example Mission
|
|
341
|
-
properties:
|
|
342
|
-
statement: "Example — replace this: we help [audience] [change] so they can [outcome], starting now because [why now]."
|
|
343
|
-
time-horizon: 3 years
|
|
344
|
-
status: active
|