@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.
package/src/radar.yaml ADDED
@@ -0,0 +1,274 @@
1
+ # Radar workspace template
2
+ # The EXTERNAL WORLD: competitors, market segments, trends, and inspirations.
3
+ # Feeds the Foundation (positioning/audience evidence) and the CRM (segments).
4
+
5
+ meta:
6
+ slug: radar
7
+ name: Radar
8
+ description: Track the outside world — competitors, market segments, trends, and inspirations — that informs strategy.
9
+ icon: radar
10
+ color: "#0891B2"
11
+ tags: [market, competitors, research, trends]
12
+ isPublic: true
13
+
14
+ workspace:
15
+ name: Radar
16
+ description: Track the outside world — competitors, market segments, trends, and inspirations — that informs strategy.
17
+ proposalId: radar-v1
18
+ subtype: radar
19
+ visibility: pod_visible
20
+ capabilities:
21
+ - radar.signals
22
+ sourceRoles:
23
+ radar: provider
24
+
25
+ profiles:
26
+ - slug: competitor
27
+ displayName: Competitor
28
+ icon: crosshair
29
+ color: red
30
+ description: A rival or alternative a buyer would compare you to.
31
+ properties:
32
+ - slug: positioning
33
+ label: Positioning
34
+ valueType: string
35
+ inputType: textarea
36
+ - slug: strengths
37
+ label: Strengths
38
+ valueType: string
39
+ inputType: textarea
40
+ - slug: weaknesses
41
+ label: Weaknesses
42
+ valueType: string
43
+ inputType: textarea
44
+ - slug: pricing
45
+ label: Pricing
46
+ valueType: string
47
+ inputType: text
48
+ - slug: url
49
+ label: URL
50
+ valueType: string
51
+ inputType: url
52
+ - slug: status
53
+ label: Status
54
+ valueType: string
55
+ inputType: select
56
+ enumValues: [watching, active-threat, adjacent, archived]
57
+ constraints: { defaultValue: watching }
58
+
59
+ - slug: market-segment
60
+ displayName: Market Segment
61
+ icon: pie-chart
62
+ color: blue
63
+ description: A slice of the market with its own size, maturity, and dynamics.
64
+ properties:
65
+ - slug: description
66
+ label: Description
67
+ valueType: string
68
+ inputType: textarea
69
+ - slug: tam
70
+ label: TAM
71
+ valueType: string
72
+ inputType: text
73
+ - slug: sam
74
+ label: SAM
75
+ valueType: string
76
+ inputType: text
77
+ - slug: som
78
+ label: SOM
79
+ valueType: string
80
+ inputType: text
81
+ - slug: ocean
82
+ label: Ocean
83
+ valueType: string
84
+ inputType: select
85
+ enumValues: [blue, red]
86
+ - slug: maturity
87
+ label: Maturity
88
+ valueType: string
89
+ inputType: select
90
+ enumValues: [emerging, growing, mature, declining]
91
+
92
+ - slug: trend
93
+ displayName: Trend
94
+ icon: trending-up
95
+ color: violet
96
+ description: A directional shift in the market, tech, or behavior worth tracking.
97
+ properties:
98
+ - slug: description
99
+ label: Description
100
+ valueType: string
101
+ inputType: textarea
102
+ - slug: direction
103
+ label: Direction
104
+ valueType: string
105
+ inputType: select
106
+ enumValues: [rising, steady, fading]
107
+ - slug: sources
108
+ label: Sources
109
+ valueType: array
110
+ inputType: text
111
+ - slug: relevance
112
+ label: Relevance
113
+ valueType: string
114
+ inputType: select
115
+ enumValues: [low, medium, high]
116
+ constraints: { defaultValue: medium }
117
+
118
+ - slug: inspiration
119
+ displayName: Inspiration
120
+ icon: sparkles
121
+ color: amber
122
+ description: A brand, founder, product, or campaign worth learning from.
123
+ properties:
124
+ - slug: kind
125
+ label: Kind
126
+ valueType: string
127
+ inputType: select
128
+ enumValues: [brand, founder, product, campaign]
129
+ - slug: why
130
+ label: Why
131
+ valueType: string
132
+ inputType: textarea
133
+ - slug: url
134
+ label: URL
135
+ valueType: string
136
+ inputType: url
137
+
138
+ views:
139
+ - name: Competitors
140
+ slug: competitors
141
+ type: table
142
+ scopeProfileSlug: competitor
143
+ description: Rivals and alternatives, with positioning and threat status.
144
+ defaultView: true
145
+ config:
146
+ columns: [title, positioning, status, pricing, url]
147
+ - name: Market Segments
148
+ slug: market-segments
149
+ type: kanban
150
+ scopeProfileSlug: market-segment
151
+ groupBy: ocean
152
+ description: Market slices grouped by blue/red ocean.
153
+ config:
154
+ groupBy: ocean
155
+ cardFields: [tam, maturity]
156
+ - name: Trends
157
+ slug: trends
158
+ type: table
159
+ scopeProfileSlug: trend
160
+ description: Directional shifts to track, by relevance.
161
+ config:
162
+ columns: [title, direction, relevance, description]
163
+ - name: Inspirations
164
+ slug: inspirations
165
+ type: grid
166
+ scopeProfileSlug: inspiration
167
+ description: Brands, founders, products, and campaigns to learn from.
168
+ - name: Radar Map
169
+ slug: radar-map
170
+ type: graph
171
+ scopeProfileSlugs: [competitor, market-segment, trend, inspiration]
172
+ description: The landscape as a connected map of signals.
173
+
174
+ # Schema-level relations — give the Radar Map and the relation picker
175
+ # domain-specific links from day one (not just pod defaults).
176
+ entityLinks:
177
+ - sourceProfileSlug: competitor
178
+ targetProfileSlug: market-segment
179
+ type: competes_in
180
+ label: Competes in
181
+ - sourceProfileSlug: trend
182
+ targetProfileSlug: market-segment
183
+ type: shapes
184
+ label: Shapes
185
+
186
+ onboarding:
187
+ goal: Map the competitive and market landscape so strategy is grounded in the real outside world.
188
+ framing: |
189
+ THE SCOUT: Act as a sharp market scout. Curious, factual, neutral. Surface who
190
+ else plays here, where the market is moving, and who's worth learning from.
191
+ Always cite a source when you can.
192
+ collect:
193
+ - profileSlug: competitor
194
+ what: Rivals and alternatives a buyer would seriously compare you to.
195
+ cardinality: several
196
+ keyFields: [positioning, strengths]
197
+ - profileSlug: market-segment
198
+ what: The market slices you play in, with rough size and ocean.
199
+ cardinality: few
200
+ keyFields: [tam, ocean]
201
+ - profileSlug: trend
202
+ what: Directional shifts in tech, market, or behavior that affect you.
203
+ cardinality: several
204
+ keyFields: [direction, relevance]
205
+ - profileSlug: inspiration
206
+ what: Brands, founders, products, or campaigns worth learning from.
207
+ cardinality: few
208
+ keyFields: [kind, why]
209
+ openingQuestions:
210
+ - "Who are the 3 closest alternatives a buyer would compare you to?"
211
+ - "Which market segment matters most to you right now — and is it a blue or red ocean?"
212
+ - "What's one trend that's quietly reshaping your space?"
213
+ doneWhen: At least 3 competitors + 1 market segment + 2 trends captured.
214
+
215
+ app:
216
+ kind: stored
217
+ cellKey: entity-detail
218
+
219
+ layout:
220
+ defaultView: Competitors
221
+ defaultApp: null
222
+ pinnedApps: [dashboard, data, intelligence]
223
+ sidebarItems:
224
+ - kind: view
225
+ viewName: Competitors
226
+ label: Competitors
227
+ icon: crosshair
228
+ - kind: view
229
+ viewName: Market Segments
230
+ label: Segments
231
+ icon: pie-chart
232
+ - kind: view
233
+ viewName: Trends
234
+ label: Trends
235
+ icon: trending-up
236
+ - kind: view
237
+ viewName: Inspirations
238
+ label: Inspirations
239
+ icon: sparkles
240
+ - kind: view
241
+ viewName: Radar Map
242
+ label: Radar Map
243
+ icon: radar
244
+ - kind: app
245
+ appId: data
246
+ label: Data
247
+ icon: database
248
+
249
+ bento:
250
+ viewName: Radar Command Center
251
+ blocks:
252
+ - kind: view
253
+ viewName: Competitors
254
+ pos: { x: 0, y: 0, w: 7, h: 4 }
255
+ - kind: view
256
+ viewName: Trends
257
+ pos: { x: 7, y: 0, w: 5, h: 4 }
258
+ - kind: view
259
+ viewName: Market Segments
260
+ pos: { x: 0, y: 4, w: 6, h: 4 }
261
+ - kind: view
262
+ viewName: Inspirations
263
+ pos: { x: 6, y: 4, w: 6, h: 4 }
264
+
265
+ seedEntities:
266
+ - profileSlug: competitor
267
+ title: "Example Competitor (replace me)"
268
+ properties:
269
+ positioning: "An example rival — describe how they position themselves to buyers."
270
+ strengths: "What they do well (brand, distribution, price, feature depth)."
271
+ weaknesses: "Where they fall short — your opening."
272
+ pricing: "e.g. $X/mo per seat"
273
+ url: "https://example.com"
274
+ status: watching