@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/src/legal.yaml ADDED
@@ -0,0 +1,452 @@
1
+ # Legal workspace template
2
+ # The company's LEGAL operating system, modeled the way a startup general counsel
3
+ # actually works: the entities you incorporate, the contracts you sign, the
4
+ # compliance obligations you must not miss, the IP you own, the policies you set,
5
+ # and the matters/disputes you manage. Pod-visible provider of the `legal` domain.
6
+
7
+ meta:
8
+ slug: legal
9
+ name: Legal
10
+ description: The company's legal operating system — contracts, compliance, IP, entities, and matters.
11
+ icon: scale
12
+ color: "#4338CA"
13
+ tags: [legal, contracts, compliance, ip]
14
+ isPublic: true
15
+
16
+ workspace:
17
+ name: Legal
18
+ description: The company's legal command center — legal entities, contracts and renewals, compliance obligations, intellectual property, internal policies, and matters.
19
+ proposalId: legal-v1
20
+ subtype: legal
21
+ visibility: members
22
+ workspaceType: operational
23
+ capabilities:
24
+ - legal.contracts
25
+ - legal.compliance
26
+ - legal.ip
27
+ sourceRoles:
28
+ legal: provider
29
+
30
+ profiles:
31
+ - slug: legal-entity
32
+ displayName: Legal Entity
33
+ icon: landmark
34
+ color: indigo
35
+ description: "A company legal entity — a corporation, subsidiary, or branch in a given jurisdiction."
36
+ properties:
37
+ - slug: entityType
38
+ label: Entity Type
39
+ valueType: string
40
+ inputType: select
41
+ enumValues: [c-corp, s-corp, llc, ltd, gmbh, sas, subsidiary, branch, other]
42
+ - slug: jurisdiction
43
+ label: Jurisdiction
44
+ valueType: string
45
+ inputType: text
46
+ placeholder: e.g. Delaware, USA
47
+ - slug: registrationNumber
48
+ label: Registration Number
49
+ valueType: string
50
+ inputType: text
51
+ - slug: status
52
+ label: Status
53
+ valueType: string
54
+ inputType: select
55
+ enumValues: [in-formation, active, dormant, dissolved]
56
+ constraints: { defaultValue: active }
57
+ - slug: incorporationDate
58
+ label: Incorporation Date
59
+ valueType: date
60
+ inputType: date
61
+ - slug: registeredAgent
62
+ label: Registered Agent
63
+ valueType: string
64
+ inputType: text
65
+ - slug: notes
66
+ label: Notes
67
+ valueType: string
68
+ inputType: textarea
69
+
70
+ - slug: contract
71
+ displayName: Contract
72
+ icon: file-signature
73
+ color: violet
74
+ description: "A legal agreement with a counterparty — its status, term, and renewal."
75
+ properties:
76
+ - slug: contractType
77
+ label: Type
78
+ valueType: string
79
+ inputType: select
80
+ enumValues: [nda, msa, saas-subscription, employment, contractor, lease, partnership, financing, dpa, other]
81
+ - slug: status
82
+ label: Status
83
+ valueType: string
84
+ inputType: select
85
+ enumValues: [draft, in-review, negotiation, signed, active, expired, terminated]
86
+ constraints: { defaultValue: draft }
87
+ - slug: counterparty
88
+ label: Counterparty
89
+ valueType: string
90
+ inputType: text
91
+ - slug: effectiveDate
92
+ label: Effective Date
93
+ valueType: date
94
+ inputType: date
95
+ - slug: expirationDate
96
+ label: Expiration Date
97
+ valueType: date
98
+ inputType: date
99
+ - slug: renewalType
100
+ label: Renewal
101
+ valueType: string
102
+ inputType: select
103
+ enumValues: [none, auto-renew, manual]
104
+ constraints: { defaultValue: none }
105
+ - slug: renewalDate
106
+ label: Renewal / Notice Date
107
+ valueType: date
108
+ inputType: date
109
+ - slug: value
110
+ label: Contract Value
111
+ valueType: number
112
+ inputType: number
113
+ - slug: owner
114
+ label: Owner
115
+ valueType: string
116
+ inputType: text
117
+ - slug: notes
118
+ label: Notes
119
+ valueType: string
120
+ inputType: textarea
121
+
122
+ - slug: compliance-item
123
+ displayName: Compliance Item
124
+ icon: shield-check
125
+ color: cyan
126
+ description: "A regulatory or legal obligation with an owner and a deadline."
127
+ properties:
128
+ - slug: obligationType
129
+ label: Obligation Type
130
+ valueType: string
131
+ inputType: select
132
+ enumValues: [regulatory-filing, tax, data-privacy, license, certification, corporate-governance, employment, other]
133
+ - slug: status
134
+ label: Status
135
+ valueType: string
136
+ inputType: select
137
+ enumValues: [not-started, in-progress, submitted, complete, overdue]
138
+ constraints: { defaultValue: not-started }
139
+ - slug: jurisdiction
140
+ label: Jurisdiction
141
+ valueType: string
142
+ inputType: text
143
+ - slug: dueDate
144
+ label: Due Date
145
+ valueType: date
146
+ inputType: date
147
+ - slug: frequency
148
+ label: Frequency
149
+ valueType: string
150
+ inputType: select
151
+ enumValues: [one-time, monthly, quarterly, annual]
152
+ constraints: { defaultValue: one-time }
153
+ - slug: owner
154
+ label: Owner
155
+ valueType: string
156
+ inputType: text
157
+ - slug: notes
158
+ label: Notes
159
+ valueType: string
160
+ inputType: textarea
161
+
162
+ - slug: ip-asset
163
+ displayName: IP Asset
164
+ icon: badge-check
165
+ color: amber
166
+ description: "An intellectual property asset — trademark, patent, copyright, or trade secret."
167
+ properties:
168
+ - slug: assetType
169
+ label: Type
170
+ valueType: string
171
+ inputType: select
172
+ enumValues: [trademark, patent, copyright, trade-secret, domain, other]
173
+ - slug: status
174
+ label: Status
175
+ valueType: string
176
+ inputType: select
177
+ enumValues: [idea, filed, pending, registered, granted, abandoned, expired]
178
+ constraints: { defaultValue: idea }
179
+ - slug: jurisdiction
180
+ label: Jurisdiction
181
+ valueType: string
182
+ inputType: text
183
+ - slug: registrationNumber
184
+ label: Registration Number
185
+ valueType: string
186
+ inputType: text
187
+ - slug: filingDate
188
+ label: Filing Date
189
+ valueType: date
190
+ inputType: date
191
+ - slug: renewalDate
192
+ label: Renewal Date
193
+ valueType: date
194
+ inputType: date
195
+ - slug: owner
196
+ label: Owner
197
+ valueType: string
198
+ inputType: text
199
+ - slug: notes
200
+ label: Notes
201
+ valueType: string
202
+ inputType: textarea
203
+
204
+ - slug: policy
205
+ displayName: Policy
206
+ icon: book-lock
207
+ color: slate
208
+ description: "An internal policy — the rules the company commits to and publishes."
209
+ properties:
210
+ - slug: policyArea
211
+ label: Area
212
+ valueType: string
213
+ inputType: select
214
+ enumValues: [privacy, security, hr, code-of-conduct, data-retention, finance, acceptable-use, other]
215
+ - slug: status
216
+ label: Status
217
+ valueType: string
218
+ inputType: select
219
+ enumValues: [draft, in-review, approved, published, archived]
220
+ constraints: { defaultValue: draft }
221
+ - slug: version
222
+ label: Version
223
+ valueType: string
224
+ inputType: text
225
+ placeholder: e.g. 1.0
226
+ - slug: effectiveDate
227
+ label: Effective Date
228
+ valueType: date
229
+ inputType: date
230
+ - slug: reviewDate
231
+ label: Next Review
232
+ valueType: date
233
+ inputType: date
234
+ - slug: owner
235
+ label: Owner
236
+ valueType: string
237
+ inputType: text
238
+ - slug: summary
239
+ label: Summary
240
+ valueType: string
241
+ inputType: textarea
242
+
243
+ - slug: legal-matter
244
+ displayName: Legal Matter
245
+ icon: gavel
246
+ color: rose
247
+ description: "A dispute, investigation, or transaction the legal team is managing."
248
+ properties:
249
+ - slug: matterType
250
+ label: Type
251
+ valueType: string
252
+ inputType: select
253
+ enumValues: [litigation, dispute, investigation, employment, ip-enforcement, regulatory, m-and-a, financing, other]
254
+ - slug: status
255
+ label: Status
256
+ valueType: string
257
+ inputType: select
258
+ enumValues: [open, active, on-hold, settled, closed]
259
+ constraints: { defaultValue: open }
260
+ - slug: priority
261
+ label: Priority
262
+ valueType: string
263
+ inputType: select
264
+ enumValues: [low, medium, high, critical]
265
+ constraints: { defaultValue: medium }
266
+ - slug: counterparty
267
+ label: Counterparty
268
+ valueType: string
269
+ inputType: text
270
+ - slug: counsel
271
+ label: Outside Counsel
272
+ valueType: string
273
+ inputType: text
274
+ - slug: openedDate
275
+ label: Opened
276
+ valueType: date
277
+ inputType: date
278
+ - slug: targetResolution
279
+ label: Target Resolution
280
+ valueType: date
281
+ inputType: date
282
+ - slug: exposure
283
+ label: Exposure
284
+ valueType: number
285
+ inputType: number
286
+ - slug: notes
287
+ label: Notes
288
+ valueType: string
289
+ inputType: textarea
290
+
291
+ views:
292
+ - name: Contracts
293
+ slug: contracts
294
+ type: table
295
+ scopeProfileSlug: contract
296
+ description: Every agreement, its counterparty, status, and term.
297
+ defaultView: true
298
+ config:
299
+ columns: [title, contractType, status, counterparty, effectiveDate, expirationDate, value, owner]
300
+ - name: Renewals
301
+ slug: renewals
302
+ type: kanban
303
+ scopeProfileSlug: contract
304
+ groupBy: status
305
+ description: Contracts by lifecycle stage — catch renewals and expirations before they bite.
306
+ config:
307
+ groupBy: status
308
+ cardFields: [counterparty, renewalType, renewalDate, expirationDate, value]
309
+ - name: Compliance
310
+ slug: compliance
311
+ type: kanban
312
+ scopeProfileSlug: compliance-item
313
+ groupBy: status
314
+ description: Obligations by status — nothing goes overdue.
315
+ config:
316
+ groupBy: status
317
+ cardFields: [obligationType, jurisdiction, dueDate, frequency, owner]
318
+ - name: IP Assets
319
+ slug: ip-assets
320
+ type: table
321
+ scopeProfileSlug: ip-asset
322
+ description: Trademarks, patents, copyrights, and trade secrets the company owns.
323
+ config:
324
+ columns: [title, assetType, status, jurisdiction, registrationNumber, renewalDate, owner]
325
+ - name: Matters
326
+ slug: matters
327
+ type: table
328
+ scopeProfileSlug: legal-matter
329
+ description: Disputes, investigations, and transactions in flight.
330
+ config:
331
+ columns: [title, matterType, status, priority, counterparty, counsel, targetResolution, exposure]
332
+ - name: Legal Entities
333
+ slug: legal-entities
334
+ type: table
335
+ scopeProfileSlug: legal-entity
336
+ description: The corporate structure — entities, jurisdictions, and status.
337
+ config:
338
+ columns: [title, entityType, jurisdiction, registrationNumber, status, incorporationDate]
339
+
340
+ # Schema-level relations — give the relation picker domain-specific links from day one.
341
+ entityLinks:
342
+ - sourceProfileSlug: contract
343
+ targetProfileSlug: legal-entity
344
+ type: party_to
345
+ label: Party to
346
+ - sourceProfileSlug: ip-asset
347
+ targetProfileSlug: legal-entity
348
+ type: owned_by
349
+ label: Owned by
350
+ - sourceProfileSlug: compliance-item
351
+ targetProfileSlug: legal-entity
352
+ type: applies_to
353
+ label: Applies to
354
+ - sourceProfileSlug: compliance-item
355
+ targetProfileSlug: policy
356
+ type: governed_by
357
+ label: Governed by
358
+ - sourceProfileSlug: legal-matter
359
+ targetProfileSlug: contract
360
+ type: concerns
361
+ label: Concerns
362
+
363
+ onboarding:
364
+ goal: Capture the company's real legal footprint — its entities, live contracts, compliance obligations, and IP — so the workspace reflects the actual legal posture, not a generic checklist.
365
+ framing: >
366
+ THE GENERAL COUNSEL: Act as a pragmatic startup general counsel. Map the legal
367
+ reality first — which entities exist and where, what's actually signed and when it
368
+ renews, what filings and obligations have deadlines, and what IP is worth protecting.
369
+ Be precise about dates and counterparties; flag risk plainly; never invent legal
370
+ conclusions. Turn their answers into entities, contracts, compliance items, and IP assets.
371
+ collect:
372
+ - profileSlug: legal-entity
373
+ what: The company's legal entities and the jurisdictions they operate in.
374
+ cardinality: few
375
+ keyFields: [entityType, jurisdiction, status]
376
+ - profileSlug: contract
377
+ what: The key live agreements — the ones with real obligations, value, or renewal dates.
378
+ cardinality: several
379
+ keyFields: [contractType, status, counterparty, renewalDate]
380
+ - profileSlug: compliance-item
381
+ what: Compliance obligations and filings with real deadlines.
382
+ cardinality: several
383
+ keyFields: [obligationType, dueDate, owner]
384
+ - profileSlug: ip-asset
385
+ what: Intellectual property worth tracking and protecting.
386
+ cardinality: few
387
+ keyFields: [assetType, status, jurisdiction]
388
+ openingQuestions:
389
+ - "Which legal entities does the company have, and in which jurisdictions?"
390
+ - "What are your most important signed contracts right now — and do any auto-renew?"
391
+ - "What compliance obligations or filings have deadlines you can't miss?"
392
+ doneWhen: at least one legal entity, one key contract, and one compliance obligation with a deadline are captured.
393
+
394
+ app:
395
+ kind: stored
396
+ cellKey: entity-detail
397
+
398
+ layout:
399
+ defaultView: Contracts
400
+ defaultApp: null
401
+ pinnedApps: [dashboard, data, intelligence]
402
+ sidebarItems:
403
+ - kind: view
404
+ viewName: Contracts
405
+ label: Contracts
406
+ icon: file-signature
407
+ - kind: view
408
+ viewName: Renewals
409
+ label: Renewals
410
+ icon: refresh-cw
411
+ - kind: view
412
+ viewName: Compliance
413
+ label: Compliance
414
+ icon: shield-check
415
+ - kind: view
416
+ viewName: IP Assets
417
+ label: IP Assets
418
+ icon: badge-check
419
+ - kind: view
420
+ viewName: Matters
421
+ label: Matters
422
+ icon: gavel
423
+ - kind: view
424
+ viewName: Legal Entities
425
+ label: Entities
426
+ icon: landmark
427
+ - kind: app
428
+ appId: data
429
+ label: All Data
430
+ icon: database
431
+
432
+ bento:
433
+ viewName: Legal Command Center
434
+ blocks:
435
+ - kind: view
436
+ viewName: Contracts
437
+ pos: { x: 0, y: 0, w: 8, h: 4 }
438
+ - kind: view
439
+ viewName: Legal Entities
440
+ pos: { x: 8, y: 0, w: 4, h: 4 }
441
+ - kind: view
442
+ viewName: Compliance
443
+ pos: { x: 0, y: 4, w: 6, h: 4 }
444
+ - kind: view
445
+ viewName: Renewals
446
+ pos: { x: 6, y: 4, w: 6, h: 4 }
447
+ - kind: view
448
+ viewName: IP Assets
449
+ pos: { x: 0, y: 8, w: 6, h: 4 }
450
+ - kind: view
451
+ viewName: Matters
452
+ pos: { x: 6, y: 8, w: 6, h: 4 }
package/src/life-os.yaml CHANGED
@@ -1122,95 +1122,6 @@ entityLinks:
1122
1122
  type: said-by
1123
1123
  label: Said by
1124
1124
 
1125
- seedEntities:
1126
- - profileSlug: area
1127
- title: Learning & Growth
1128
- properties:
1129
- description: Continuous learning, skill building, reading.
1130
- status: active
1131
- - profileSlug: area
1132
- title: Work & Career
1133
- properties:
1134
- description: Professional projects, skills, and relationships.
1135
- status: active
1136
- - profileSlug: area
1137
- title: Health & Wellbeing
1138
- properties:
1139
- description: Physical health, mental clarity, energy.
1140
- status: active
1141
- - profileSlug: project
1142
- title: Build My Second Brain
1143
- properties:
1144
- status: active
1145
- outcome: Have a fully functional PKM system capturing and connecting my knowledge.
1146
- area: Learning & Growth
1147
- - profileSlug: concept
1148
- title: Zettelkasten
1149
- properties:
1150
- definition: A note-taking method using atomic, interconnected notes — each idea on its own card, linked to related ones.
1151
- domain: Knowledge Management
1152
- maturity: evergreen
1153
- - profileSlug: concept
1154
- title: Progressive Summarization
1155
- properties:
1156
- definition: Highlighting and condensing notes in multiple passes — first bold, then highlight, then summary — to surface the most valuable ideas.
1157
- domain: Knowledge Management
1158
- maturity: growing
1159
- - profileSlug: book
1160
- title: Building a Second Brain
1161
- properties:
1162
- author: Tiago Forte
1163
- status: reading
1164
- genre: Productivity
1165
- pages: 272
1166
- - profileSlug: book
1167
- title: How to Take Smart Notes
1168
- properties:
1169
- author: Sönke Ahrens
1170
- status: want-to-read
1171
- genre: Learning
1172
- pages: 170
1173
- - profileSlug: person
1174
- title: Tiago Forte
1175
- properties:
1176
- role: Author & Creator
1177
- relationship: author
1178
- notes: Creator of the Second Brain methodology. Author of Building a Second Brain.
1179
- - profileSlug: person
1180
- title: Sönke Ahrens
1181
- properties:
1182
- role: Author & Researcher
1183
- relationship: author
1184
- notes: Author of How to Take Smart Notes. Proponent of the Zettelkasten method.
1185
- - profileSlug: quote
1186
- title: Your mind is for having ideas
1187
- properties:
1188
- text: Your mind is for having ideas, not holding them.
1189
- author: David Allen
1190
- resonance: 5
1191
- - profileSlug: note
1192
- title: Why I'm building a Second Brain
1193
- properties:
1194
- status: inbox
1195
- content: Capture everything. Review regularly. Connect the dots. Let the system hold the complexity so your mind stays clear.
1196
-
1197
- suggestedRelations:
1198
- - sourceRef: "book:Building a Second Brain"
1199
- targetRef: "person:Tiago Forte"
1200
- type: authored-by
1201
- - sourceRef: "book:How to Take Smart Notes"
1202
- targetRef: "person:Sönke Ahrens"
1203
- type: authored-by
1204
- - sourceRef: "note:Why I'm building a Second Brain"
1205
- targetRef: "project:Build My Second Brain"
1206
- type: feeds-into
1207
- - sourceRef: "concept:Zettelkasten"
1208
- targetRef: "concept:Progressive Summarization"
1209
- type: related-to
1210
- - sourceRef: "project:Build My Second Brain"
1211
- targetRef: "area:Learning & Growth"
1212
- type: belongs-to
1213
-
1214
1125
  # Workspace home dashboard (maps from source bentoLayout + bentoViewBlocks)
1215
1126
  bento:
1216
1127
  blocks:
@@ -193,6 +193,36 @@ views:
193
193
  groupBy: lead-stage
194
194
  description: "Lead pipeline kanban by stage."
195
195
 
196
+ onboarding:
197
+ goal: >
198
+ Capture the real marketing motion — the campaigns running now, the channels
199
+ they run on, the segments they target, and how leads flow through the
200
+ pipeline — so the workspace mirrors how growth actually operates here.
201
+ framing: >
202
+ THE GROWTH LEAD: Act as a sharp growth-marketing lead. Anchor everything to
203
+ the Foundation (audience + positioning) and the Brand (voice) so campaigns
204
+ stay on-strategy and on-brand. Push for the concrete: real channels, real
205
+ numbers, real segments — not "we do social." Ask where leads come from and
206
+ where they stall. Be warm but relentless about specifics.
207
+ collect:
208
+ - profileSlug: campaign
209
+ what: The campaigns live or planned right now — one per real initiative, with its channel and goal.
210
+ cardinality: several
211
+ keyFields: [campaign-channel, campaign-goal, campaign-status]
212
+ - profileSlug: lead
213
+ what: A few representative leads already in motion, placed at their true pipeline stage.
214
+ cardinality: several
215
+ keyFields: [lead-stage, lead-source, lead-company]
216
+ - profileSlug: contact
217
+ what: Key marketing contacts — the people already on the list and how they got there.
218
+ cardinality: few
219
+ keyFields: [contact-email, contact-source, contact-company]
220
+ openingQuestions:
221
+ - "Which campaigns are live right now, and what channel is each one running on?"
222
+ - "Who are you targeting — which Foundation audience segment does the growth motion aim at?"
223
+ - "Where do your best leads come from today, and where in the pipeline do they get stuck?"
224
+ doneWhen: at least one active campaign with a channel + a few leads placed at their pipeline stage.
225
+
196
226
  # App reference — no custom app for marketing
197
227
  app:
198
228
  kind: stored
@@ -227,18 +257,3 @@ bento:
227
257
  - kind: view
228
258
  viewName: Lead Pipeline
229
259
  pos: { x: 6, y: 0, w: 6, h: 5 }
230
-
231
- # Seed data
232
- seedEntities:
233
- - profileSlug: campaign
234
- title: Product Launch
235
- properties:
236
- campaign-status: planning
237
- campaign-channel: social
238
- campaign-goal: "Generate 500 signups in the first week"
239
- - profileSlug: campaign
240
- title: Developer Outreach
241
- properties:
242
- campaign-status: planning
243
- campaign-channel: email
244
- campaign-goal: "Reach 1000 developers via newsletter"