@synap-core/workspace-templates 0.2.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.
@@ -0,0 +1,627 @@
1
+ # Brand Library workspace template
2
+ # Canonical brand source workspace. User-provided sources are first-class;
3
+ # reusable system outputs are generated/reviewed from those sources.
4
+
5
+ meta:
6
+ slug: brand-library
7
+ name: Brand Library
8
+ description: Reusable source of truth for brand identity, colors, typography, assets, tokens, templates, and generation rules.
9
+ icon: palette
10
+ color: "#B67A38"
11
+ tags: [brand, assets, tokens, templates, components, creative]
12
+ isPublic: true
13
+
14
+ workspace:
15
+ name: Brand Library
16
+ description: Reusable source of truth for brand identity, colors, typography, assets, tokens, templates, and generation rules.
17
+ proposalId: brand-library-v1
18
+ subtype: brand-library
19
+ visibility: pod_visible
20
+ capabilities:
21
+ - brand.library
22
+ - brand.identity
23
+ - brand.assets
24
+ - brand.tokens
25
+ - brand.templates
26
+ - brand.components
27
+ - brand.context
28
+ sourceRoles:
29
+ brand: provider
30
+
31
+ profiles:
32
+ - slug: brand-identity
33
+ displayName: Brand Identity
34
+ icon: fingerprint
35
+ color: amber
36
+ description: "Root brand context: positioning, audience, website, voice summary, and generation intent."
37
+ semanticSlug: brand.identity
38
+ properties:
39
+ - slug: brand-type
40
+ label: Brand type
41
+ valueType: string
42
+ inputType: select
43
+ enumValues: [product-digital, product-physical, agency, personal-brand, nonprofit, institutional, universal]
44
+ constraints: { defaultValue: universal }
45
+ - slug: brand-status
46
+ label: Status
47
+ valueType: string
48
+ inputType: select
49
+ enumValues: [draft, active, archived]
50
+ constraints: { defaultValue: active }
51
+ - slug: brand-tagline
52
+ label: Tagline
53
+ valueType: string
54
+ inputType: text
55
+ - slug: brand-website
56
+ label: Website
57
+ valueType: string
58
+ inputType: url
59
+ - slug: brand-industry
60
+ label: Industry
61
+ valueType: string
62
+ inputType: text
63
+ - slug: brand-positioning
64
+ label: Positioning
65
+ valueType: string
66
+ inputType: textarea
67
+ - slug: brand-audience-primary
68
+ label: Primary audience
69
+ valueType: string
70
+ inputType: textarea
71
+ - slug: brand-audience-secondary
72
+ label: Secondary audience
73
+ valueType: string
74
+ inputType: textarea
75
+ - slug: brand-voice-summary
76
+ label: Voice summary
77
+ valueType: string
78
+ inputType: textarea
79
+ - slug: brand-notes
80
+ label: Notes
81
+ valueType: string
82
+ inputType: textarea
83
+
84
+ - slug: brand-color
85
+ displayName: Brand Color
86
+ icon: swatch-book
87
+ color: violet
88
+ description: Approved palette entry with semantic role, usage notes, and print references.
89
+ semanticSlug: brand.color
90
+ properties:
91
+ - slug: color-role
92
+ label: Role
93
+ valueType: string
94
+ inputType: select
95
+ enumValues: [primary, secondary, accent, background, surface, surface-elevated, text, text-muted, border, success, warning, error, info, neutral, campaign, custom]
96
+ constraints: { defaultValue: custom }
97
+ - slug: color-group
98
+ label: Group
99
+ valueType: string
100
+ inputType: select
101
+ enumValues: [core, extended, semantic, neutral, seasonal, campaign]
102
+ constraints: { defaultValue: core }
103
+ - slug: color-hex
104
+ label: Hex
105
+ valueType: string
106
+ inputType: color
107
+ - slug: color-rgb
108
+ label: RGB
109
+ valueType: string
110
+ inputType: text
111
+ - slug: color-cmyk
112
+ label: CMYK
113
+ valueType: string
114
+ inputType: text
115
+ - slug: color-pantone
116
+ label: Pantone
117
+ valueType: string
118
+ inputType: text
119
+ - slug: color-ral
120
+ label: RAL
121
+ valueType: string
122
+ inputType: text
123
+ - slug: color-token-name
124
+ label: Token name
125
+ valueType: string
126
+ inputType: text
127
+ - slug: color-usage
128
+ label: Usage note
129
+ valueType: string
130
+ inputType: textarea
131
+ - slug: color-status
132
+ label: Status
133
+ valueType: string
134
+ inputType: select
135
+ enumValues: [draft, approved, deprecated]
136
+ constraints: { defaultValue: approved }
137
+
138
+ - slug: brand-font
139
+ displayName: Brand Typeface
140
+ icon: type
141
+ color: blue
142
+ description: Typeface with role, family, licensing, import URL, weights, and fallback stack.
143
+ semanticSlug: brand.font
144
+ properties:
145
+ - slug: font-role
146
+ label: Role
147
+ valueType: string
148
+ inputType: select
149
+ enumValues: [heading, body, display, mono, accent, ui, caption]
150
+ constraints: { defaultValue: body }
151
+ - slug: font-family
152
+ label: Family
153
+ valueType: string
154
+ inputType: text
155
+ - slug: font-foundry
156
+ label: Foundry
157
+ valueType: string
158
+ inputType: text
159
+ - slug: font-license
160
+ label: License
161
+ valueType: string
162
+ inputType: select
163
+ enumValues: [open-source, google-fonts, adobe-fonts, licensed, custom, system]
164
+ constraints: { defaultValue: google-fonts }
165
+ - slug: font-weights
166
+ label: Weights
167
+ valueType: string
168
+ inputType: text
169
+ - slug: font-fallback
170
+ label: Fallback stack
171
+ valueType: string
172
+ inputType: text
173
+ - slug: font-url
174
+ label: Import URL
175
+ valueType: string
176
+ inputType: url
177
+ - slug: font-document-id
178
+ label: Font document ID
179
+ valueType: string
180
+ inputType: text
181
+ - slug: font-status
182
+ label: Status
183
+ valueType: string
184
+ inputType: select
185
+ enumValues: [active, draft, deprecated]
186
+ constraints: { defaultValue: active }
187
+
188
+ - slug: brand-asset
189
+ displayName: Brand Asset
190
+ icon: image
191
+ color: green
192
+ description: "Document-backed or URL-backed reusable media: logos, imagery, icons, fonts, video, references, and documents."
193
+ semanticSlug: brand.asset
194
+ properties:
195
+ - slug: asset-kind
196
+ label: Kind
197
+ valueType: string
198
+ inputType: select
199
+ enumValues: [logo, wordmark, symbol, monogram, pattern, texture, icon-set, illustration, photo, video, document, font, 3d-model, print-ready, reference, other]
200
+ - slug: asset-variant
201
+ label: Variant
202
+ valueType: string
203
+ inputType: select
204
+ enumValues: [primary, secondary, horizontal, stacked, mono-dark, mono-light, white, reversed, favicon, social-avatar, og-image, other]
205
+ - slug: asset-status
206
+ label: Status
207
+ valueType: string
208
+ inputType: select
209
+ enumValues: [draft, approved, deprecated]
210
+ constraints: { defaultValue: approved }
211
+ - slug: asset-usage
212
+ label: Usage notes
213
+ valueType: string
214
+ inputType: textarea
215
+ - slug: asset-tags
216
+ label: Tags
217
+ valueType: string
218
+ inputType: text
219
+ - slug: asset-url
220
+ label: External URL
221
+ valueType: string
222
+ inputType: url
223
+ - slug: asset-document-id
224
+ label: Document ID
225
+ valueType: string
226
+ inputType: text
227
+ - slug: asset-file-id
228
+ label: Legacy file ID
229
+ valueType: string
230
+ inputType: text
231
+ - slug: asset-alt-text
232
+ label: Alt text
233
+ valueType: string
234
+ inputType: textarea
235
+
236
+ - slug: brand-reference
237
+ displayName: Brand Reference
238
+ icon: bookmark
239
+ color: teal
240
+ description: Website, competitor, campaign, moodboard, or example used as source context for generation.
241
+ semanticSlug: brand.reference
242
+ properties:
243
+ - slug: reference-kind
244
+ label: Kind
245
+ valueType: string
246
+ inputType: select
247
+ enumValues: [website, competitor, campaign, moodboard, copy-example, design-example, customer-example, other]
248
+ - slug: reference-url
249
+ label: URL
250
+ valueType: string
251
+ inputType: url
252
+ - slug: reference-notes
253
+ label: Notes
254
+ valueType: string
255
+ inputType: textarea
256
+ - slug: reference-status
257
+ label: Status
258
+ valueType: string
259
+ inputType: select
260
+ enumValues: [draft, approved, archived]
261
+ constraints: { defaultValue: approved }
262
+
263
+ - slug: brand-token-set
264
+ displayName: Token Set
265
+ icon: code-2
266
+ color: violet
267
+ description: Generated or curated design tokens for color, typography, spacing, radii, and exported CSS variables.
268
+ semanticSlug: brand.tokens
269
+ properties:
270
+ - slug: token-status
271
+ label: Status
272
+ valueType: string
273
+ inputType: select
274
+ enumValues: [draft, active, archived]
275
+ constraints: { defaultValue: active }
276
+ - slug: token-mode
277
+ label: Mode
278
+ valueType: string
279
+ inputType: select
280
+ enumValues: [base, light, dark, high-contrast, campaign, experimental]
281
+ constraints: { defaultValue: base }
282
+ - slug: token-source-ids
283
+ label: Source IDs
284
+ valueType: string
285
+ inputType: textarea
286
+ - slug: token-json
287
+ label: Tokens JSON
288
+ valueType: string
289
+ inputType: textarea
290
+ - slug: token-css
291
+ label: CSS variables
292
+ valueType: string
293
+ inputType: textarea
294
+ - slug: token-notes
295
+ label: Notes
296
+ valueType: string
297
+ inputType: textarea
298
+
299
+ - slug: brand-voice-guide
300
+ displayName: Voice Guide
301
+ icon: message-circle
302
+ color: orange
303
+ description: "Generated or curated voice guidance by context: traits, tone, vocabulary, and copy examples."
304
+ semanticSlug: brand.voice
305
+ properties:
306
+ - slug: voice-context
307
+ label: Context
308
+ valueType: string
309
+ inputType: select
310
+ enumValues: [general, marketing, product, support, social, legal, editorial, investor]
311
+ constraints: { defaultValue: general }
312
+ - slug: voice-status
313
+ label: Status
314
+ valueType: string
315
+ inputType: select
316
+ enumValues: [draft, approved, deprecated]
317
+ constraints: { defaultValue: approved }
318
+ - slug: voice-personality-traits
319
+ label: Personality
320
+ valueType: string
321
+ inputType: textarea
322
+ - slug: voice-tone-descriptors
323
+ label: Tone
324
+ valueType: string
325
+ inputType: text
326
+ - slug: voice-vocabulary
327
+ label: Vocabulary
328
+ valueType: string
329
+ inputType: textarea
330
+ - slug: voice-example-do
331
+ label: Do
332
+ valueType: string
333
+ inputType: textarea
334
+ - slug: voice-example-dont
335
+ label: Don't
336
+ valueType: string
337
+ inputType: textarea
338
+ - slug: voice-source-ids
339
+ label: Source IDs
340
+ valueType: string
341
+ inputType: textarea
342
+
343
+ - slug: brand-rule
344
+ displayName: Brand Rule
345
+ icon: shield-check
346
+ color: red
347
+ description: Usage constraints, accessibility requirements, do/don't examples, and generation guidance.
348
+ semanticSlug: brand.rule
349
+ properties:
350
+ - slug: rule-kind
351
+ label: Kind
352
+ valueType: string
353
+ inputType: select
354
+ enumValues: [visual, voice, legal, accessibility, sizing, clearance, color-usage, typography-usage, do, dont, generation, other]
355
+ - slug: rule-subject
356
+ label: Subject
357
+ valueType: string
358
+ inputType: select
359
+ enumValues: [logo, color, typography, pattern, asset, voice, general, digital, print, packaging]
360
+ - slug: rule-severity
361
+ label: Severity
362
+ valueType: string
363
+ inputType: select
364
+ enumValues: [guideline, important, mandatory]
365
+ constraints: { defaultValue: important }
366
+ - slug: rule-content
367
+ label: Rule
368
+ valueType: string
369
+ inputType: textarea
370
+ - slug: rule-example
371
+ label: Example
372
+ valueType: string
373
+ inputType: textarea
374
+ - slug: rule-source-ids
375
+ label: Source IDs
376
+ valueType: string
377
+ inputType: textarea
378
+
379
+ - slug: brand-template
380
+ displayName: Brand Template
381
+ icon: layout-template
382
+ color: pink
383
+ description: Reusable output template for artboards, decks, carousels, banners, documents, or generated HTML.
384
+ semanticSlug: brand.template
385
+ properties:
386
+ - slug: template-kind
387
+ label: Kind
388
+ valueType: string
389
+ inputType: select
390
+ enumValues: [artboard, deck, carousel, banner, document, html, social, other]
391
+ - slug: template-status
392
+ label: Status
393
+ valueType: string
394
+ inputType: select
395
+ enumValues: [draft, approved, deprecated]
396
+ constraints: { defaultValue: approved }
397
+ - slug: template-format
398
+ label: Format
399
+ valueType: string
400
+ inputType: select
401
+ enumValues: [tldraw, html, json, markdown, image, mixed]
402
+ - slug: template-config
403
+ label: Config JSON
404
+ valueType: string
405
+ inputType: textarea
406
+ - slug: template-usage
407
+ label: Usage notes
408
+ valueType: string
409
+ inputType: textarea
410
+
411
+ - slug: brand-component
412
+ displayName: Brand Component
413
+ icon: component
414
+ color: green
415
+ description: "Reusable branded UI or content component: hero, CTA, card, quote, banner, section, or HTML snippet."
416
+ semanticSlug: brand.component
417
+ properties:
418
+ - slug: component-kind
419
+ label: Kind
420
+ valueType: string
421
+ inputType: select
422
+ enumValues: [hero, card, cta, quote, banner, section, layout, html, other]
423
+ - slug: component-status
424
+ label: Status
425
+ valueType: string
426
+ inputType: select
427
+ enumValues: [draft, approved, deprecated]
428
+ constraints: { defaultValue: approved }
429
+ - slug: component-html
430
+ label: HTML
431
+ valueType: string
432
+ inputType: textarea
433
+ - slug: component-props
434
+ label: Props JSON
435
+ valueType: string
436
+ inputType: textarea
437
+ - slug: component-usage
438
+ label: Usage notes
439
+ valueType: string
440
+ inputType: textarea
441
+
442
+ views:
443
+ - name: Brand Identity
444
+ slug: brand-identities
445
+ type: table
446
+ scopeProfileSlug: brand-identity
447
+ description: Root brand context and active identities.
448
+ defaultView: true
449
+ - name: Color Palette
450
+ slug: brand-colors
451
+ type: grid
452
+ scopeProfileSlug: brand-color
453
+ description: Approved brand colors and semantic roles.
454
+ - name: Typography
455
+ slug: brand-fonts
456
+ type: list
457
+ scopeProfileSlug: brand-font
458
+ description: Approved typefaces, licensing, weights, and import URLs.
459
+ - name: Assets
460
+ slug: brand-assets
461
+ type: grid
462
+ scopeProfileSlug: brand-asset
463
+ description: Logos, media, documents, and visual references.
464
+ - name: References
465
+ slug: brand-references
466
+ type: list
467
+ scopeProfileSlug: brand-reference
468
+ description: Websites, examples, moodboards, and external references.
469
+ - name: Token Sets
470
+ slug: brand-token-sets
471
+ type: table
472
+ scopeProfileSlug: brand-token-set
473
+ description: Generated and approved design tokens.
474
+ - name: Voice Guides
475
+ slug: brand-voice-guides
476
+ type: list
477
+ scopeProfileSlug: brand-voice-guide
478
+ description: Voice and tone outputs by context.
479
+ - name: Rules
480
+ slug: brand-rules
481
+ type: list
482
+ scopeProfileSlug: brand-rule
483
+ description: Brand usage and generation constraints.
484
+ - name: Templates
485
+ slug: brand-templates
486
+ type: grid
487
+ scopeProfileSlug: brand-template
488
+ description: Artboard, carousel, banner, deck, and HTML templates.
489
+ - name: Components
490
+ slug: brand-components
491
+ type: grid
492
+ scopeProfileSlug: brand-component
493
+ description: Reusable branded blocks and snippets.
494
+
495
+ entityLinks:
496
+ - sourceProfileSlug: brand-token-set
497
+ targetProfileSlug: brand-color
498
+ type: derived_from
499
+ label: Uses color
500
+ - sourceProfileSlug: brand-token-set
501
+ targetProfileSlug: brand-font
502
+ type: derived_from
503
+ label: Uses typeface
504
+ - sourceProfileSlug: brand-rule
505
+ targetProfileSlug: brand-asset
506
+ type: references
507
+ label: References asset
508
+ - sourceProfileSlug: brand-template
509
+ targetProfileSlug: brand-token-set
510
+ type: uses
511
+ label: Uses token set
512
+
513
+ app:
514
+ kind: native
515
+ appId: brandLibrary
516
+ rendererType: native
517
+ title: Brand Library
518
+
519
+ layout:
520
+ pinnedApps: [data, whiteboard, brandLibrary]
521
+ defaultView: Brand Command Center
522
+ defaultApp: brandLibrary
523
+ sidebarItems:
524
+ - kind: app
525
+ appId: brandLibrary
526
+ label: Brand Library
527
+ icon: palette
528
+ surface:
529
+ kind: app
530
+ appId: brandLibrary
531
+ rendererType: native
532
+ placement: main
533
+ displayMode: full
534
+ title: Brand Library
535
+ - kind: view
536
+ viewName: Brand Command Center
537
+ label: Command Center
538
+ icon: layout-dashboard
539
+ - kind: view
540
+ viewName: Color Palette
541
+ label: Colors
542
+ icon: swatch-book
543
+ - kind: view
544
+ viewName: Typography
545
+ label: Typography
546
+ icon: type
547
+ - kind: view
548
+ viewName: Assets
549
+ label: Assets
550
+ icon: image
551
+ - kind: view
552
+ viewName: Token Sets
553
+ label: Tokens
554
+ icon: code-2
555
+ - kind: view
556
+ viewName: Rules
557
+ label: Rules
558
+ icon: shield-check
559
+
560
+ bento:
561
+ viewName: Brand Command Center
562
+ blocks:
563
+ - kind: view
564
+ viewName: Brand Identity
565
+ pos: { x: 0, y: 0, w: 6, h: 4 }
566
+ - kind: view
567
+ viewName: Assets
568
+ pos: { x: 6, y: 0, w: 6, h: 4 }
569
+ - kind: view
570
+ viewName: Color Palette
571
+ pos: { x: 0, y: 4, w: 4, h: 4 }
572
+ - kind: view
573
+ viewName: Typography
574
+ pos: { x: 4, y: 4, w: 4, h: 4 }
575
+ - kind: view
576
+ viewName: Token Sets
577
+ pos: { x: 8, y: 4, w: 4, h: 4 }
578
+ - kind: view
579
+ viewName: Rules
580
+ pos: { x: 0, y: 8, w: 6, h: 4 }
581
+ - kind: view
582
+ viewName: Templates
583
+ pos: { x: 6, y: 8, w: 6, h: 4 }
584
+
585
+ seedEntities:
586
+ - profileSlug: brand-identity
587
+ title: Primary Brand
588
+ properties:
589
+ brand-type: universal
590
+ brand-status: active
591
+ brand-positioning: Describe the promise, category, and differentiation of this brand.
592
+ brand-audience-primary: Describe the primary audience and buying context.
593
+ brand-voice-summary: Clear, useful, specific, and calm.
594
+ - profileSlug: brand-color
595
+ title: Primary
596
+ properties:
597
+ color-role: primary
598
+ color-group: core
599
+ color-hex: "#B67A38"
600
+ color-token-name: brand-primary
601
+ color-status: approved
602
+ color-usage: Primary action and selection accent.
603
+ - profileSlug: brand-font
604
+ title: System Sans
605
+ properties:
606
+ font-role: body
607
+ font-family: system-ui
608
+ font-license: system
609
+ font-weights: "400, 500, 600, 700"
610
+ font-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
611
+ font-status: active
612
+ - profileSlug: brand-token-set
613
+ title: Base Tokens
614
+ properties:
615
+ token-status: draft
616
+ token-mode: base
617
+ token-source-ids: seed
618
+ token-json: '{"colors":{"primary":"#B67A38"},"typography":{"body":"system-ui"}}'
619
+ token-css: ":root { --brand-primary: #B67A38; --brand-font-body: system-ui; }"
620
+ - profileSlug: brand-rule
621
+ title: Use approved sources first
622
+ properties:
623
+ rule-kind: generation
624
+ rule-subject: general
625
+ rule-severity: guideline
626
+ rule-content: Use approved colors, typefaces, assets, and token sets before creating variants.
627
+ rule-example: When generating an artboard, prefer the active token set and approved logo/image assets.