@synap-core/workspace-templates 0.4.0 → 0.6.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/radar.yaml DELETED
@@ -1,297 +0,0 @@
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
- expertise:
193
- starters:
194
- - >
195
- Don't just log named rivals — map the CATEGORY. Buyers compare across three
196
- tiers: direct competitors, adjacent tools that solve the same job
197
- differently, and the status quo ("a spreadsheet", "do nothing"). Propose
198
- entries in all three, because the status quo is usually the real competitor.
199
- - >
200
- Track positioning by CONTRAST, not features. For each rival, capture the
201
- one axis where you're deliberately opposite ("they're enterprise-heavy, we're
202
- self-serve") — that contrast is what a buyer remembers. If they only give you
203
- a feature list, reflect the underlying axis back and propose that.
204
- - >
205
- Separate LEADING from LAGGING signals. Pricing changes, hiring sprees, and
206
- docs/changelog velocity predict where a competitor is going; press releases
207
- and funding rounds only confirm where they've been. Prioritize the leading
208
- indicators when you propose what to watch.
209
- blindSpots:
210
- - >
211
- "We have no competitors" is a red flag, not a moat — it usually means the
212
- category is undefined or the buyer's alternative (a manual workaround) hasn't
213
- been named. Push to name what a buyer does TODAY instead of buying anything.
214
- - >
215
- Founders over-watch the loud incumbent and miss the fast-moving insurgent
216
- one tier down. The threat that kills you is rarely the market leader — it's
217
- the well-funded startup attacking your exact wedge. Surface the insurgents.
218
- - >
219
- A trend with no direction or timing is just a headline. Every trend needs a
220
- stance: is it rising, steady, or fading, and does it help or hurt you? An
221
- untimed "AI is big" tells strategy nothing — force the "so what for us".
222
- bar: >
223
- The landscape reads like a real map: every rival placed on a contrast axis, the
224
- status-quo alternative named, and each trend carrying a direction and a "so what"
225
- — so a strategist can see the open lane you should own, not just a list of logos.
226
- collect:
227
- - profileSlug: competitor
228
- what: Rivals and alternatives a buyer would seriously compare you to.
229
- cardinality: several
230
- keyFields: [positioning, strengths]
231
- - profileSlug: market-segment
232
- what: The market slices you play in, with rough size and ocean.
233
- cardinality: few
234
- keyFields: [tam, ocean]
235
- - profileSlug: trend
236
- what: Directional shifts in tech, market, or behavior that affect you.
237
- cardinality: several
238
- keyFields: [direction, relevance]
239
- - profileSlug: inspiration
240
- what: Brands, founders, products, or campaigns worth learning from.
241
- cardinality: few
242
- keyFields: [kind, why]
243
- openingQuestions:
244
- - "Who are the 3 closest alternatives a buyer would compare you to?"
245
- - "Which market segment matters most to you right now — and is it a blue or red ocean?"
246
- - "What's one trend that's quietly reshaping your space?"
247
- doneWhen: At least 3 competitors + 1 market segment + 2 trends captured.
248
-
249
- app:
250
- kind: stored
251
- cellKey: entity-detail
252
-
253
- layout:
254
- defaultView: Competitors
255
- defaultApp: null
256
- pinnedApps: [dashboard, data, intelligence]
257
- sidebarItems:
258
- - kind: view
259
- viewName: Competitors
260
- label: Competitors
261
- icon: crosshair
262
- - kind: view
263
- viewName: Market Segments
264
- label: Segments
265
- icon: pie-chart
266
- - kind: view
267
- viewName: Trends
268
- label: Trends
269
- icon: trending-up
270
- - kind: view
271
- viewName: Inspirations
272
- label: Inspirations
273
- icon: sparkles
274
- - kind: view
275
- viewName: Radar Map
276
- label: Radar Map
277
- icon: radar
278
- - kind: app
279
- appId: data
280
- label: Data
281
- icon: database
282
-
283
- bento:
284
- viewName: Radar Command Center
285
- blocks:
286
- - kind: view
287
- viewName: Competitors
288
- pos: { x: 0, y: 0, w: 7, h: 4 }
289
- - kind: view
290
- viewName: Trends
291
- pos: { x: 7, y: 0, w: 5, h: 4 }
292
- - kind: view
293
- viewName: Market Segments
294
- pos: { x: 0, y: 4, w: 6, h: 4 }
295
- - kind: view
296
- viewName: Inspirations
297
- pos: { x: 6, y: 4, w: 6, h: 4 }