@synap-core/workspace-templates 0.5.0 → 0.6.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/dist/index.d.ts +734 -17
- package/dist/index.js +25031 -20
- package/dist/index.js.map +1 -0
- package/package.json +7 -5
- package/src/agent-fleet.yaml +16 -8
- package/src/blockchain-ecosystem.yaml +372 -0
- package/src/catalog.test.ts +156 -0
- package/src/catalog.ts +285 -0
- package/src/communication.yaml +689 -0
- package/src/content-os.yaml +252 -771
- package/src/crm.yaml +181 -2071
- package/src/define.ts +292 -6
- package/src/dev-dashboard.yaml +3 -0
- package/src/ecosystem.yaml +478 -0
- package/src/enterprise-os.yaml +183 -0
- package/src/foundation.yaml +226 -0
- package/src/grants.yaml +1096 -0
- package/src/hr.yaml +6 -0
- package/src/index.ts +32 -5
- package/src/internal-runbook.yaml +499 -0
- package/src/legal.yaml +6 -6
- package/src/marketing.yaml +48 -12
- package/src/operations.yaml +146 -420
- package/src/social.yaml +246 -0
- package/src/templates.ts +12812 -12260
- package/src/the-arch.yaml +182 -0
- package/src/types.ts +105 -0
- package/dist/define.d.ts +0 -97
- package/dist/define.d.ts.map +0 -1
- package/dist/define.js +0 -91
- package/dist/index.d.ts.map +0 -1
- package/dist/templates.d.ts +0 -7
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -24237
- package/dist/types.d.ts +0 -350
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -8
- package/src/radar.yaml +0 -297
package/src/marketing.yaml
CHANGED
|
@@ -10,6 +10,21 @@ meta:
|
|
|
10
10
|
tags: [marketing, crm, outreach, leads, campaigns]
|
|
11
11
|
isPublic: true
|
|
12
12
|
|
|
13
|
+
# SSOT ordering guarantee — this template REFERENCES foundation's pod-wide
|
|
14
|
+
# shared `lead` role. The apply engine seeds a shared profile's pod-wide BASE
|
|
15
|
+
# property body from whichever template creates it FIRST, and adds a REUSING
|
|
16
|
+
# template's extra props as workspace OVERLAYS. Without this dependency,
|
|
17
|
+
# marketing-first would make the pod-wide `lead` base marketing's 10-prop body
|
|
18
|
+
# for EVERY workspace. Requiring foundation makes the resolver install it first
|
|
19
|
+
# (deps-first), so the base is always foundation's SSOT body (leadStage, notes)
|
|
20
|
+
# and marketing's extras stay per-workspace overlays. `require`, not `compose`:
|
|
21
|
+
# foundation is a real workspace, not an overlay.
|
|
22
|
+
dependencies:
|
|
23
|
+
- slug: foundation
|
|
24
|
+
kind: workspace
|
|
25
|
+
relation: require
|
|
26
|
+
reason: "Provides the pod-wide lead role vocabulary (leadStage) this workspace reuses."
|
|
27
|
+
|
|
13
28
|
workspace:
|
|
14
29
|
name: Marketing Campaign OS
|
|
15
30
|
description: "Track leads, manage campaigns, and let AI help run your outreach. Contacts, pipeline, tasks, and AI briefings — all connected."
|
|
@@ -20,6 +35,8 @@ workspace:
|
|
|
20
35
|
- marketing.contacts
|
|
21
36
|
- marketing.leads
|
|
22
37
|
sourceRoles:
|
|
38
|
+
brand: consumer
|
|
39
|
+
content: consumer
|
|
23
40
|
marketing: provider
|
|
24
41
|
|
|
25
42
|
profiles:
|
|
@@ -80,6 +97,9 @@ profiles:
|
|
|
80
97
|
color: blue
|
|
81
98
|
description: "A person in your marketing contact list."
|
|
82
99
|
semanticSlug: marketing.contact
|
|
100
|
+
profileKind: role
|
|
101
|
+
applicableKinds:
|
|
102
|
+
- person
|
|
83
103
|
properties:
|
|
84
104
|
- slug: contact-email
|
|
85
105
|
label: Email
|
|
@@ -117,19 +137,35 @@ profiles:
|
|
|
117
137
|
valueType: string
|
|
118
138
|
inputType: text
|
|
119
139
|
|
|
140
|
+
# `scope: shared` dedups to the ONE pod-wide `lead` profile seeded by
|
|
141
|
+
# foundation.yaml (SSOT for leadStage). Ordering is guaranteed by the
|
|
142
|
+
# `require: foundation` dependency above — foundation always installs first,
|
|
143
|
+
# so the pod-wide BASE body is always foundation's and the props below are
|
|
144
|
+
# always workspace OVERLAYS on top of it. That is the legitimate extension
|
|
145
|
+
# mechanism: EXTRA props are fine. What is NOT fine is REDECLARING a prop
|
|
146
|
+
# foundation already owns (e.g. `leadStage`) with a divergent enum/default —
|
|
147
|
+
# that is base drift, and the SSOT tripwire fails on it.
|
|
148
|
+
# (Standards reference inherited base props like `leadStage` directly.)
|
|
149
|
+
#
|
|
150
|
+
# The same reasoning applies to the ROW-LEVEL fields, and more strictly: the
|
|
151
|
+
# row has no overlay mechanism, so this template must not restate what
|
|
152
|
+
# foundation owns. `description`, `semanticSlug` and `applicableKinds` are
|
|
153
|
+
# therefore OMITTED here — they are written only on the create path, which
|
|
154
|
+
# foundation always takes, so declaring them here asserted a value that never
|
|
155
|
+
# applied (this template claimed `applicableKinds: [person]` while the live row
|
|
156
|
+
# says [company, person]).
|
|
157
|
+
# `icon`/`color` are the exception that must be RESTATED rather than dropped:
|
|
158
|
+
# they are also read into `profileHintsMap` to build THIS workspace's auto-bento
|
|
159
|
+
# for `lead`, so omitting them regresses the widgets to a default indigo
|
|
160
|
+
# database icon. They must MATCH foundation's row (`user-plus`/`yellow`) — the
|
|
161
|
+
# old `green` rendered green widgets around a yellow row.
|
|
120
162
|
- slug: lead
|
|
121
163
|
displayName: Lead
|
|
122
164
|
icon: user-plus
|
|
123
|
-
color:
|
|
124
|
-
|
|
125
|
-
|
|
165
|
+
color: yellow
|
|
166
|
+
scope: shared
|
|
167
|
+
profileKind: role
|
|
126
168
|
properties:
|
|
127
|
-
- slug: lead-stage
|
|
128
|
-
label: Stage
|
|
129
|
-
valueType: string
|
|
130
|
-
inputType: select
|
|
131
|
-
enumValues: [new, contacted, interested, qualified, demo, proposal, converted, lost]
|
|
132
|
-
constraints: { defaultValue: new }
|
|
133
169
|
- slug: lead-source
|
|
134
170
|
label: Source
|
|
135
171
|
valueType: string
|
|
@@ -164,7 +200,7 @@ profiles:
|
|
|
164
200
|
label: Last Contacted
|
|
165
201
|
valueType: date
|
|
166
202
|
inputType: date
|
|
167
|
-
- slug:
|
|
203
|
+
- slug: notes
|
|
168
204
|
label: Notes
|
|
169
205
|
valueType: string
|
|
170
206
|
inputType: textarea
|
|
@@ -190,7 +226,7 @@ views:
|
|
|
190
226
|
slug: lead-pipeline
|
|
191
227
|
type: kanban
|
|
192
228
|
scopeProfileSlug: lead
|
|
193
|
-
groupBy:
|
|
229
|
+
groupBy: leadStage
|
|
194
230
|
description: "Lead pipeline kanban by stage."
|
|
195
231
|
|
|
196
232
|
onboarding:
|
|
@@ -249,7 +285,7 @@ onboarding:
|
|
|
249
285
|
- profileSlug: lead
|
|
250
286
|
what: A few representative leads already in motion, placed at their true pipeline stage.
|
|
251
287
|
cardinality: several
|
|
252
|
-
keyFields: [
|
|
288
|
+
keyFields: [leadStage, lead-source, lead-company]
|
|
253
289
|
- profileSlug: contact
|
|
254
290
|
what: Key marketing contacts — the people already on the list and how they got there.
|
|
255
291
|
cardinality: few
|