@synap-core/workspace-templates 0.2.2 → 0.4.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/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +5284 -4420
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +25 -15
- package/src/agent-fleet.yaml +38 -398
- package/src/brand-library.yaml +68 -44
- package/src/builder.yaml +75 -18
- package/src/content-os.yaml +31 -391
- package/src/content-studio.yaml +70 -22
- package/src/crm.yaml +112 -423
- package/src/dev-dashboard.yaml +37 -393
- package/src/finance.yaml +485 -0
- package/src/foundation.yaml +34 -8
- package/src/hr.yaml +474 -0
- package/src/legal.yaml +495 -0
- package/src/life-os.yaml +42 -89
- package/src/marketing.yaml +67 -15
- package/src/operations.yaml +496 -0
- package/src/personal.yaml +68 -6
- package/src/project-management.yaml +38 -378
- package/src/radar.yaml +34 -11
- package/src/templates.ts +5284 -4420
- package/src/types.ts +27 -0
package/src/marketing.yaml
CHANGED
|
@@ -193,6 +193,73 @@ 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
|
+
expertise:
|
|
208
|
+
starters:
|
|
209
|
+
- >
|
|
210
|
+
One channel to competence before the next. Spraying across email, social,
|
|
211
|
+
paid, and events at once means all of them stay mediocre. Propose ONE
|
|
212
|
+
primary channel to get working end-to-end (message → creative → conversion)
|
|
213
|
+
and treat the others as experiments, not commitments.
|
|
214
|
+
- >
|
|
215
|
+
Growth is a chain: ICP → message → channel fit. The message that lands is
|
|
216
|
+
the one that names the ICP's specific pain in their words, and the channel
|
|
217
|
+
that works is where that ICP already is. If a campaign has a channel but no
|
|
218
|
+
named segment and no sharp message, propose filling those first.
|
|
219
|
+
- >
|
|
220
|
+
Anchor every campaign to a pipeline metric, not a vanity one. Impressions,
|
|
221
|
+
followers, and open rates feel good and predict nothing. Propose the campaign
|
|
222
|
+
target as leads, qualified pipeline, or CAC — the number a founder would
|
|
223
|
+
actually defend in a board meeting.
|
|
224
|
+
blindSpots:
|
|
225
|
+
- >
|
|
226
|
+
The "spray across every channel" reflex is the #1 growth failure — it
|
|
227
|
+
guarantees no channel reaches the volume needed to learn what works. If they
|
|
228
|
+
list four channels for one campaign, push back: which ONE gets real budget
|
|
229
|
+
and attention this quarter?
|
|
230
|
+
- >
|
|
231
|
+
Attribution is where growth stories quietly lie. If they can't say where
|
|
232
|
+
their best leads actually come from — not where they THINK, but what the data
|
|
233
|
+
shows — the pipeline is being optimized blind. Surface the tracking gap.
|
|
234
|
+
- >
|
|
235
|
+
A leaking funnel beats a full top. Founders obsess over more leads while
|
|
236
|
+
leads pile up and stall at one pipeline stage. If a stage is a graveyard, the
|
|
237
|
+
fix is conversion there, not more volume up top — name the stall before
|
|
238
|
+
proposing new campaigns.
|
|
239
|
+
bar: >
|
|
240
|
+
Each live campaign has a named ICP segment, a sharp message that segment would
|
|
241
|
+
recognize, one channel it's genuinely committed to, and a pipeline metric it's
|
|
242
|
+
judged on — so a growth lead could tell at a glance what's working, what's
|
|
243
|
+
leaking, and where the next dollar should go.
|
|
244
|
+
collect:
|
|
245
|
+
- profileSlug: campaign
|
|
246
|
+
what: The campaigns live or planned right now — one per real initiative, with its channel and goal.
|
|
247
|
+
cardinality: several
|
|
248
|
+
keyFields: [campaign-channel, campaign-goal, campaign-status]
|
|
249
|
+
- profileSlug: lead
|
|
250
|
+
what: A few representative leads already in motion, placed at their true pipeline stage.
|
|
251
|
+
cardinality: several
|
|
252
|
+
keyFields: [lead-stage, lead-source, lead-company]
|
|
253
|
+
- profileSlug: contact
|
|
254
|
+
what: Key marketing contacts — the people already on the list and how they got there.
|
|
255
|
+
cardinality: few
|
|
256
|
+
keyFields: [contact-email, contact-source, contact-company]
|
|
257
|
+
openingQuestions:
|
|
258
|
+
- "Which campaigns are live right now, and what channel is each one running on?"
|
|
259
|
+
- "Who are you targeting — which Foundation audience segment does the growth motion aim at?"
|
|
260
|
+
- "Where do your best leads come from today, and where in the pipeline do they get stuck?"
|
|
261
|
+
doneWhen: at least one active campaign with a channel + a few leads placed at their pipeline stage.
|
|
262
|
+
|
|
196
263
|
# App reference — no custom app for marketing
|
|
197
264
|
app:
|
|
198
265
|
kind: stored
|
|
@@ -227,18 +294,3 @@ bento:
|
|
|
227
294
|
- kind: view
|
|
228
295
|
viewName: Lead Pipeline
|
|
229
296
|
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"
|
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
# Operations workspace template — the company's OPERATING SYSTEM.
|
|
2
|
+
# The head-of-ops / chief-of-staff layer: how the business actually runs day to
|
|
3
|
+
# day — the documented procedures (SOPs), the recurring processes (workflows),
|
|
4
|
+
# the tool stack and vendors behind them, the metrics/SLAs that keep them
|
|
5
|
+
# honest, and the rituals/cadences that keep everyone aligned.
|
|
6
|
+
# Provider of the `operations` domain. Validated against types.ts at build time.
|
|
7
|
+
|
|
8
|
+
meta:
|
|
9
|
+
slug: operations
|
|
10
|
+
name: Operations
|
|
11
|
+
description: The company's operating system — SOPs, workflows, vendors, tools, metrics, and rituals that keep the business running.
|
|
12
|
+
icon: settings-2
|
|
13
|
+
color: "#64748B"
|
|
14
|
+
tags: [operations, sops, vendors, workflows]
|
|
15
|
+
isPublic: true
|
|
16
|
+
|
|
17
|
+
workspace:
|
|
18
|
+
name: Operations
|
|
19
|
+
description: The operating layer of the company — documented procedures, recurring processes, the tool stack and vendors behind them, operational metrics, and the rituals that keep the team aligned.
|
|
20
|
+
proposalId: operations-v1
|
|
21
|
+
subtype: operations
|
|
22
|
+
visibility: members
|
|
23
|
+
workspaceType: operational
|
|
24
|
+
capabilities:
|
|
25
|
+
- operations.sops
|
|
26
|
+
- operations.vendors
|
|
27
|
+
- operations.workflows
|
|
28
|
+
sourceRoles:
|
|
29
|
+
operations: provider
|
|
30
|
+
|
|
31
|
+
profiles:
|
|
32
|
+
- slug: sop
|
|
33
|
+
displayName: SOP
|
|
34
|
+
icon: book-open
|
|
35
|
+
color: "#64748B"
|
|
36
|
+
description: "A standard operating procedure or runbook — the documented, repeatable way to do a thing."
|
|
37
|
+
scope: WORKSPACE
|
|
38
|
+
properties:
|
|
39
|
+
- slug: category
|
|
40
|
+
label: Category
|
|
41
|
+
valueType: string
|
|
42
|
+
inputType: select
|
|
43
|
+
enumValues: [Onboarding, Finance, People, IT, Support, Sales, Legal, Facilities, Other]
|
|
44
|
+
- slug: sop-status
|
|
45
|
+
label: Status
|
|
46
|
+
valueType: string
|
|
47
|
+
inputType: select
|
|
48
|
+
enumValues: [Draft, Active, Needs Review, Deprecated]
|
|
49
|
+
constraints: { defaultValue: Draft }
|
|
50
|
+
- slug: owner
|
|
51
|
+
label: Owner
|
|
52
|
+
valueType: string
|
|
53
|
+
inputType: text
|
|
54
|
+
placeholder: Who owns this procedure?
|
|
55
|
+
- slug: trigger
|
|
56
|
+
label: When to run
|
|
57
|
+
valueType: string
|
|
58
|
+
inputType: textarea
|
|
59
|
+
placeholder: What situation triggers this procedure?
|
|
60
|
+
- slug: last-reviewed
|
|
61
|
+
label: Last Reviewed
|
|
62
|
+
valueType: date
|
|
63
|
+
inputType: date
|
|
64
|
+
- slug: steps
|
|
65
|
+
label: Steps
|
|
66
|
+
valueType: string
|
|
67
|
+
inputType: textarea
|
|
68
|
+
placeholder: The step-by-step procedure...
|
|
69
|
+
|
|
70
|
+
- slug: workflow
|
|
71
|
+
displayName: Workflow
|
|
72
|
+
icon: workflow
|
|
73
|
+
color: "#0EA5E9"
|
|
74
|
+
description: "A recurring business process — a repeatable flow with an owner, a cadence, and an input/output."
|
|
75
|
+
scope: WORKSPACE
|
|
76
|
+
properties:
|
|
77
|
+
- slug: workflow-status
|
|
78
|
+
label: Status
|
|
79
|
+
valueType: string
|
|
80
|
+
inputType: select
|
|
81
|
+
enumValues: [Backlog, Active, Blocked, Optimizing, Retired]
|
|
82
|
+
constraints: { defaultValue: Active }
|
|
83
|
+
- slug: frequency
|
|
84
|
+
label: Frequency
|
|
85
|
+
valueType: string
|
|
86
|
+
inputType: select
|
|
87
|
+
enumValues: [Ad-hoc, Daily, Weekly, Monthly, Quarterly]
|
|
88
|
+
- slug: owner
|
|
89
|
+
label: Owner
|
|
90
|
+
valueType: string
|
|
91
|
+
inputType: text
|
|
92
|
+
placeholder: Process owner
|
|
93
|
+
- slug: automation-level
|
|
94
|
+
label: Automation
|
|
95
|
+
valueType: string
|
|
96
|
+
inputType: select
|
|
97
|
+
enumValues: [Manual, Semi-automated, Automated]
|
|
98
|
+
- slug: input
|
|
99
|
+
label: Input
|
|
100
|
+
valueType: string
|
|
101
|
+
inputType: text
|
|
102
|
+
placeholder: What kicks it off?
|
|
103
|
+
- slug: output
|
|
104
|
+
label: Output
|
|
105
|
+
valueType: string
|
|
106
|
+
inputType: text
|
|
107
|
+
placeholder: What it produces
|
|
108
|
+
|
|
109
|
+
- slug: vendor
|
|
110
|
+
displayName: Vendor
|
|
111
|
+
icon: truck
|
|
112
|
+
color: "#8B5CF6"
|
|
113
|
+
description: "A supplier, contractor, or service provider the company pays and depends on."
|
|
114
|
+
scope: WORKSPACE
|
|
115
|
+
properties:
|
|
116
|
+
- slug: vendor-category
|
|
117
|
+
label: Category
|
|
118
|
+
valueType: string
|
|
119
|
+
inputType: select
|
|
120
|
+
enumValues: [Software, Service, Supplier, Contractor, Agency, Other]
|
|
121
|
+
- slug: vendor-status
|
|
122
|
+
label: Status
|
|
123
|
+
valueType: string
|
|
124
|
+
inputType: select
|
|
125
|
+
enumValues: [Active, Trial, Evaluating, Paused, Churned]
|
|
126
|
+
constraints: { defaultValue: Active }
|
|
127
|
+
- slug: owner
|
|
128
|
+
label: Owner
|
|
129
|
+
valueType: string
|
|
130
|
+
inputType: text
|
|
131
|
+
placeholder: Internal relationship owner
|
|
132
|
+
- slug: monthly-cost
|
|
133
|
+
label: "Monthly Cost (€)"
|
|
134
|
+
valueType: number
|
|
135
|
+
inputType: number
|
|
136
|
+
placeholder: "0"
|
|
137
|
+
- slug: renewal-date
|
|
138
|
+
label: Renewal Date
|
|
139
|
+
valueType: date
|
|
140
|
+
inputType: date
|
|
141
|
+
- slug: website
|
|
142
|
+
label: Website
|
|
143
|
+
valueType: string
|
|
144
|
+
inputType: url
|
|
145
|
+
placeholder: "https://..."
|
|
146
|
+
- slug: notes
|
|
147
|
+
label: Notes
|
|
148
|
+
valueType: string
|
|
149
|
+
inputType: textarea
|
|
150
|
+
|
|
151
|
+
- slug: tool
|
|
152
|
+
displayName: Tool
|
|
153
|
+
icon: wrench
|
|
154
|
+
color: "#F59E0B"
|
|
155
|
+
description: "A tool in the company stack — the software the team actually uses to get work done."
|
|
156
|
+
scope: WORKSPACE
|
|
157
|
+
properties:
|
|
158
|
+
- slug: tool-category
|
|
159
|
+
label: Category
|
|
160
|
+
valueType: string
|
|
161
|
+
inputType: select
|
|
162
|
+
enumValues: [Productivity, Comms, Finance, Sales, Marketing, Dev, Design, Data, HR, Other]
|
|
163
|
+
- slug: tool-status
|
|
164
|
+
label: Status
|
|
165
|
+
valueType: string
|
|
166
|
+
inputType: select
|
|
167
|
+
enumValues: [Active, Trial, Deprecated]
|
|
168
|
+
constraints: { defaultValue: Active }
|
|
169
|
+
- slug: owner
|
|
170
|
+
label: Owner
|
|
171
|
+
valueType: string
|
|
172
|
+
inputType: text
|
|
173
|
+
placeholder: Admin / owner
|
|
174
|
+
- slug: seats
|
|
175
|
+
label: Seats
|
|
176
|
+
valueType: number
|
|
177
|
+
inputType: number
|
|
178
|
+
placeholder: "0"
|
|
179
|
+
- slug: monthly-cost
|
|
180
|
+
label: "Monthly Cost (€)"
|
|
181
|
+
valueType: number
|
|
182
|
+
inputType: number
|
|
183
|
+
placeholder: "0"
|
|
184
|
+
- slug: url
|
|
185
|
+
label: URL
|
|
186
|
+
valueType: string
|
|
187
|
+
inputType: url
|
|
188
|
+
placeholder: "https://..."
|
|
189
|
+
|
|
190
|
+
- slug: process-metric
|
|
191
|
+
displayName: Metric
|
|
192
|
+
icon: gauge
|
|
193
|
+
color: "#10B981"
|
|
194
|
+
description: "An operational SLA or KPI — a number the team commits to and tracks against a target."
|
|
195
|
+
scope: WORKSPACE
|
|
196
|
+
properties:
|
|
197
|
+
- slug: metric-type
|
|
198
|
+
label: Type
|
|
199
|
+
valueType: string
|
|
200
|
+
inputType: select
|
|
201
|
+
enumValues: [SLA, KPI, Health]
|
|
202
|
+
- slug: metric-status
|
|
203
|
+
label: Status
|
|
204
|
+
valueType: string
|
|
205
|
+
inputType: select
|
|
206
|
+
enumValues: [On Track, At Risk, Off Track]
|
|
207
|
+
constraints: { defaultValue: On Track }
|
|
208
|
+
- slug: target
|
|
209
|
+
label: Target
|
|
210
|
+
valueType: string
|
|
211
|
+
inputType: text
|
|
212
|
+
placeholder: e.g. < 4h, > 95%
|
|
213
|
+
- slug: current
|
|
214
|
+
label: Current
|
|
215
|
+
valueType: string
|
|
216
|
+
inputType: text
|
|
217
|
+
placeholder: Latest reading
|
|
218
|
+
- slug: cadence
|
|
219
|
+
label: Cadence
|
|
220
|
+
valueType: string
|
|
221
|
+
inputType: select
|
|
222
|
+
enumValues: [Daily, Weekly, Monthly, Quarterly]
|
|
223
|
+
- slug: owner
|
|
224
|
+
label: Owner
|
|
225
|
+
valueType: string
|
|
226
|
+
inputType: text
|
|
227
|
+
placeholder: Who's accountable?
|
|
228
|
+
|
|
229
|
+
- slug: ritual
|
|
230
|
+
displayName: Ritual
|
|
231
|
+
icon: repeat
|
|
232
|
+
color: "#EC4899"
|
|
233
|
+
description: "A recurring meeting or cadence — standups, reviews, retros, planning — that keeps the team aligned."
|
|
234
|
+
scope: WORKSPACE
|
|
235
|
+
properties:
|
|
236
|
+
- slug: cadence
|
|
237
|
+
label: Cadence
|
|
238
|
+
valueType: string
|
|
239
|
+
inputType: select
|
|
240
|
+
enumValues: [Daily, Weekly, Biweekly, Monthly, Quarterly]
|
|
241
|
+
- slug: ritual-date
|
|
242
|
+
label: Next Occurrence
|
|
243
|
+
valueType: date
|
|
244
|
+
inputType: date
|
|
245
|
+
- slug: owner
|
|
246
|
+
label: Facilitator
|
|
247
|
+
valueType: string
|
|
248
|
+
inputType: text
|
|
249
|
+
placeholder: Who runs it?
|
|
250
|
+
- slug: attendees
|
|
251
|
+
label: Attendees
|
|
252
|
+
valueType: string
|
|
253
|
+
inputType: text
|
|
254
|
+
placeholder: Who attends?
|
|
255
|
+
- slug: duration-min
|
|
256
|
+
label: Duration (min)
|
|
257
|
+
valueType: number
|
|
258
|
+
inputType: number
|
|
259
|
+
placeholder: "30"
|
|
260
|
+
- slug: agenda
|
|
261
|
+
label: Agenda
|
|
262
|
+
valueType: string
|
|
263
|
+
inputType: textarea
|
|
264
|
+
placeholder: Standing agenda...
|
|
265
|
+
|
|
266
|
+
views:
|
|
267
|
+
- name: SOPs
|
|
268
|
+
slug: sops
|
|
269
|
+
type: table
|
|
270
|
+
scopeProfileSlug: sop
|
|
271
|
+
description: The documented procedures, by category and review status.
|
|
272
|
+
defaultView: true
|
|
273
|
+
config:
|
|
274
|
+
visibleColumns: [category, sop-status, owner, last-reviewed]
|
|
275
|
+
defaultSort: { field: last-reviewed, direction: asc }
|
|
276
|
+
- name: Workflows
|
|
277
|
+
slug: workflows
|
|
278
|
+
type: kanban
|
|
279
|
+
scopeProfileSlug: workflow
|
|
280
|
+
groupBy: workflow-status
|
|
281
|
+
description: Recurring processes on a board by status.
|
|
282
|
+
config:
|
|
283
|
+
groupByField: workflow-status
|
|
284
|
+
cardFields: [frequency, owner, automation-level]
|
|
285
|
+
- name: Vendors
|
|
286
|
+
slug: vendors
|
|
287
|
+
type: table
|
|
288
|
+
scopeProfileSlug: vendor
|
|
289
|
+
description: Suppliers and service providers, with cost, owner, and renewal.
|
|
290
|
+
config:
|
|
291
|
+
visibleColumns: [vendor-category, vendor-status, owner, monthly-cost, renewal-date]
|
|
292
|
+
defaultSort: { field: monthly-cost, direction: desc }
|
|
293
|
+
- name: Tool Stack
|
|
294
|
+
slug: tool-stack
|
|
295
|
+
type: table
|
|
296
|
+
scopeProfileSlug: tool
|
|
297
|
+
description: The software the team runs on.
|
|
298
|
+
config:
|
|
299
|
+
visibleColumns: [tool-category, tool-status, owner, seats, monthly-cost]
|
|
300
|
+
defaultSort: { field: monthly-cost, direction: desc }
|
|
301
|
+
- name: Metrics
|
|
302
|
+
slug: metrics
|
|
303
|
+
type: table
|
|
304
|
+
scopeProfileSlug: process-metric
|
|
305
|
+
description: Operational SLAs and KPIs against target.
|
|
306
|
+
config:
|
|
307
|
+
visibleColumns: [metric-type, metric-status, target, current, cadence, owner]
|
|
308
|
+
- name: Rituals
|
|
309
|
+
slug: rituals
|
|
310
|
+
type: calendar
|
|
311
|
+
scopeProfileSlug: ritual
|
|
312
|
+
description: Recurring meetings and cadences on a calendar.
|
|
313
|
+
config:
|
|
314
|
+
dateField: ritual-date
|
|
315
|
+
colorField: cadence
|
|
316
|
+
|
|
317
|
+
# Schema-level links — give the relation picker and graph domain-specific
|
|
318
|
+
# edges from day one, not just pod defaults.
|
|
319
|
+
entityLinks:
|
|
320
|
+
- sourceProfileSlug: sop
|
|
321
|
+
targetProfileSlug: workflow
|
|
322
|
+
type: documents
|
|
323
|
+
label: Documents
|
|
324
|
+
- sourceProfileSlug: workflow
|
|
325
|
+
targetProfileSlug: tool
|
|
326
|
+
type: uses
|
|
327
|
+
label: Uses
|
|
328
|
+
- sourceProfileSlug: tool
|
|
329
|
+
targetProfileSlug: vendor
|
|
330
|
+
type: provided_by
|
|
331
|
+
label: Provided by
|
|
332
|
+
- sourceProfileSlug: process-metric
|
|
333
|
+
targetProfileSlug: workflow
|
|
334
|
+
type: measures
|
|
335
|
+
label: Measures
|
|
336
|
+
- sourceProfileSlug: ritual
|
|
337
|
+
targetProfileSlug: workflow
|
|
338
|
+
type: reviews
|
|
339
|
+
label: Reviews
|
|
340
|
+
|
|
341
|
+
onboarding:
|
|
342
|
+
goal: Capture how the company actually runs — its core SOPs, its recurring workflows, the vendors and tools behind them, and the rituals that keep the team aligned — so the workspace mirrors the real operating system, not a generic template.
|
|
343
|
+
framing: >
|
|
344
|
+
THE OPERATOR: Act as a seasoned head of operations / chief of staff doing an
|
|
345
|
+
ops walkthrough. Be systems-minded and pragmatic — hunt for the procedures
|
|
346
|
+
that live only in someone's head, the processes that run every week, the
|
|
347
|
+
tools quietly draining budget, and the meetings that must happen. Refuse
|
|
348
|
+
vagueness: every workflow has an owner and a cadence, every SOP has a
|
|
349
|
+
trigger. Translate their answers into SOPs, workflows, vendors, tools, and
|
|
350
|
+
rituals.
|
|
351
|
+
expertise:
|
|
352
|
+
starters:
|
|
353
|
+
- >
|
|
354
|
+
Don't map the whole org or every process — start with the few recurring
|
|
355
|
+
processes that actually BREAK: the ones that cause fire drills, missed
|
|
356
|
+
handoffs, or "who was supposed to do that?" moments. Ask what went wrong last
|
|
357
|
+
month and reverse-engineer the workflow from the failure, not from an
|
|
358
|
+
idealized flowchart.
|
|
359
|
+
- >
|
|
360
|
+
SOP the highest-frequency × highest-pain work first. A daily task that hurts
|
|
361
|
+
every time beats a quarterly one that's annoying once. Propose that
|
|
362
|
+
prioritization out loud — "let's document the thing you do 50 times a month
|
|
363
|
+
before the thing you do twice a year" — instead of documenting alphabetically.
|
|
364
|
+
- >
|
|
365
|
+
Give every workflow a single named owner and a cadence before anything else.
|
|
366
|
+
Refuse "the team owns it" — that means no one does. If they can't name one
|
|
367
|
+
accountable person, that's the finding, and the workflow's real status is
|
|
368
|
+
"at risk", not "active".
|
|
369
|
+
blindSpots:
|
|
370
|
+
- >
|
|
371
|
+
A process nobody owns doesn't exist — it just hasn't failed publicly yet.
|
|
372
|
+
Hunt for the workflows that run on habit and goodwill with no owner; those
|
|
373
|
+
are the ones that collapse the week someone is on holiday.
|
|
374
|
+
- >
|
|
375
|
+
"It's all in my head" is a single point of failure, not a system. The most
|
|
376
|
+
dangerous SOPs are the undocumented ones the founder or one key person runs
|
|
377
|
+
from memory. Ask directly: what breaks if that person is out for two weeks? —
|
|
378
|
+
and document those first.
|
|
379
|
+
- >
|
|
380
|
+
Founders confuse activity with process. A recurring meeting or a busy Slack
|
|
381
|
+
channel isn't a workflow unless it has a defined input, a defined output, and
|
|
382
|
+
a trigger. If a "process" has no clear input→output, it's a habit; name it as
|
|
383
|
+
one and either give it structure or drop it.
|
|
384
|
+
bar: >
|
|
385
|
+
The workspace captures the handful of processes that actually run (and break)
|
|
386
|
+
the business — each with one accountable owner, a cadence, and a clear
|
|
387
|
+
input→output — the highest-frequency/highest-pain procedures are documented as
|
|
388
|
+
SOPs so they survive the owner leaving, and nothing critical lives only in one
|
|
389
|
+
person's head.
|
|
390
|
+
collect:
|
|
391
|
+
- profileSlug: sop
|
|
392
|
+
what: The core documented procedures / runbooks — the repeatable ways of doing key things.
|
|
393
|
+
cardinality: several
|
|
394
|
+
keyFields: [title, category, owner, sop-status]
|
|
395
|
+
- profileSlug: workflow
|
|
396
|
+
what: The recurring processes that run the business, each with an owner and a cadence.
|
|
397
|
+
cardinality: several
|
|
398
|
+
keyFields: [title, workflow-status, frequency, owner]
|
|
399
|
+
- profileSlug: vendor
|
|
400
|
+
what: The suppliers and service providers the company pays and depends on.
|
|
401
|
+
cardinality: few
|
|
402
|
+
keyFields: [title, vendor-category, monthly-cost, owner]
|
|
403
|
+
- profileSlug: tool
|
|
404
|
+
what: The main tools in the stack the team runs on.
|
|
405
|
+
cardinality: several
|
|
406
|
+
keyFields: [title, tool-category, owner, monthly-cost]
|
|
407
|
+
- profileSlug: ritual
|
|
408
|
+
what: The recurring meetings and cadences that keep the team aligned.
|
|
409
|
+
cardinality: few
|
|
410
|
+
keyFields: [title, cadence, owner]
|
|
411
|
+
openingQuestions:
|
|
412
|
+
- "What are the procedures that live only in someone's head today — the ones you'd need to write down if that person left?"
|
|
413
|
+
- "Which processes run on a fixed cadence — weekly, monthly — and who owns each?"
|
|
414
|
+
- "What tools and vendors is the company paying for, and who's the owner of each?"
|
|
415
|
+
doneWhen: A few core SOPs are documented with owners, the key recurring workflows exist with a cadence, the main vendors and tools are captured with cost, and the standing rituals are on the calendar.
|
|
416
|
+
|
|
417
|
+
app:
|
|
418
|
+
kind: stored
|
|
419
|
+
cellKey: entity-detail
|
|
420
|
+
|
|
421
|
+
layout:
|
|
422
|
+
defaultView: SOPs
|
|
423
|
+
defaultApp: null
|
|
424
|
+
pinnedApps: [dashboard, data, intelligence]
|
|
425
|
+
sidebarItems:
|
|
426
|
+
- kind: view
|
|
427
|
+
viewName: SOPs
|
|
428
|
+
label: SOPs
|
|
429
|
+
icon: book-open
|
|
430
|
+
- kind: view
|
|
431
|
+
viewName: Workflows
|
|
432
|
+
label: Workflows
|
|
433
|
+
icon: workflow
|
|
434
|
+
- kind: view
|
|
435
|
+
viewName: Vendors
|
|
436
|
+
label: Vendors
|
|
437
|
+
icon: truck
|
|
438
|
+
- kind: view
|
|
439
|
+
viewName: Tool Stack
|
|
440
|
+
label: Tool Stack
|
|
441
|
+
icon: wrench
|
|
442
|
+
- kind: view
|
|
443
|
+
viewName: Metrics
|
|
444
|
+
label: Metrics
|
|
445
|
+
icon: gauge
|
|
446
|
+
- kind: view
|
|
447
|
+
viewName: Rituals
|
|
448
|
+
label: Rituals
|
|
449
|
+
icon: repeat
|
|
450
|
+
- kind: app
|
|
451
|
+
appId: data
|
|
452
|
+
label: All Data
|
|
453
|
+
icon: database
|
|
454
|
+
|
|
455
|
+
bento:
|
|
456
|
+
viewName: Operations Command Center
|
|
457
|
+
blocks:
|
|
458
|
+
- kind: widget
|
|
459
|
+
widgetType: welcome-header
|
|
460
|
+
pos: { x: 0, y: 0, w: 12, h: 2 }
|
|
461
|
+
- kind: widget
|
|
462
|
+
widgetType: entity-count
|
|
463
|
+
pos: { x: 0, y: 2, w: 3, h: 2 }
|
|
464
|
+
config:
|
|
465
|
+
profileSlug: sop
|
|
466
|
+
label: SOPs
|
|
467
|
+
- kind: widget
|
|
468
|
+
widgetType: entity-count
|
|
469
|
+
pos: { x: 3, y: 2, w: 3, h: 2 }
|
|
470
|
+
config:
|
|
471
|
+
profileSlug: workflow
|
|
472
|
+
label: Workflows
|
|
473
|
+
- kind: widget
|
|
474
|
+
widgetType: entity-count
|
|
475
|
+
pos: { x: 6, y: 2, w: 3, h: 2 }
|
|
476
|
+
config:
|
|
477
|
+
profileSlug: vendor
|
|
478
|
+
label: Vendors
|
|
479
|
+
- kind: widget
|
|
480
|
+
widgetType: entity-count
|
|
481
|
+
pos: { x: 9, y: 2, w: 3, h: 2 }
|
|
482
|
+
config:
|
|
483
|
+
profileSlug: tool
|
|
484
|
+
label: Tools
|
|
485
|
+
- kind: view
|
|
486
|
+
viewName: Workflows
|
|
487
|
+
pos: { x: 0, y: 4, w: 8, h: 5 }
|
|
488
|
+
- kind: view
|
|
489
|
+
viewName: Metrics
|
|
490
|
+
pos: { x: 8, y: 4, w: 4, h: 5 }
|
|
491
|
+
- kind: view
|
|
492
|
+
viewName: SOPs
|
|
493
|
+
pos: { x: 0, y: 9, w: 6, h: 4 }
|
|
494
|
+
- kind: view
|
|
495
|
+
viewName: Vendors
|
|
496
|
+
pos: { x: 6, y: 9, w: 6, h: 4 }
|
package/src/personal.yaml
CHANGED
|
@@ -85,6 +85,74 @@ views:
|
|
|
85
85
|
scopeProfileSlug: bookmark
|
|
86
86
|
description: Saved web references.
|
|
87
87
|
|
|
88
|
+
onboarding:
|
|
89
|
+
goal: Capture the shape of the user's world — what they're working on, what they're reading and saving, and how they think — so the workspace starts grounded in who they actually are.
|
|
90
|
+
framing: >
|
|
91
|
+
THE KNOWLEDGE COACH: Act as a gentle, thoughtful personal-knowledge coach.
|
|
92
|
+
You're here to understand their world, not audit it — curious, warm, never
|
|
93
|
+
pushy. Meet them where they are: a couple of honest notes beat a perfect
|
|
94
|
+
system. Reflect back what you hear so it feels captured, not interrogated.
|
|
95
|
+
expertise:
|
|
96
|
+
starters:
|
|
97
|
+
- >
|
|
98
|
+
Start from ONE real recurring need, not a structure. Ask "what do you keep losing
|
|
99
|
+
track of?" — the tab you meant to read, the idea you forgot, the link you can't
|
|
100
|
+
find again — and seed that single thing. A personal space earns trust by solving
|
|
101
|
+
one nagging friction, then grows; it dies if it opens as an empty filing cabinet.
|
|
102
|
+
- >
|
|
103
|
+
Propose the 2-3 things they ACTUALLY want to track, then stop. Most people need
|
|
104
|
+
exactly: a place for stray notes, a reading list, and a bookmark pile. Name those,
|
|
105
|
+
seed one item in each, and resist adding projects/tags/statuses they didn't ask
|
|
106
|
+
for. The default here is deliberately lean — under-structure on purpose.
|
|
107
|
+
- >
|
|
108
|
+
Mirror their own capture habit instead of imposing one. Ask what a jotted thought
|
|
109
|
+
usually looks like for them — a link, a one-liner, a voice-note-to-self — and map
|
|
110
|
+
the workspace to that shape. If they dump links, lead with bookmarks; if they
|
|
111
|
+
write, lead with notes. Match reality; don't teach them a new ritual.
|
|
112
|
+
blindSpots:
|
|
113
|
+
- >
|
|
114
|
+
The productivity-system graveyard: elaborate setups — nested tags, six statuses,
|
|
115
|
+
color-coded areas — built with enthusiasm on day one and abandoned by day seven.
|
|
116
|
+
The failure mode is over-structuring, not under-structuring. Every field you add
|
|
117
|
+
is a field they must maintain; keep it embarrassingly simple and let it grow later.
|
|
118
|
+
- >
|
|
119
|
+
People try to design the "perfect system" before they have any content, and stall.
|
|
120
|
+
Structure should emerge FROM real notes, not precede them. If they're deliberating
|
|
121
|
+
over categories with an empty workspace, cut it short — capture three real things
|
|
122
|
+
first, and let the shape reveal itself.
|
|
123
|
+
- >
|
|
124
|
+
A reading list nobody triages just becomes guilt. People pile "to-read" articles
|
|
125
|
+
and never mark anything read or dropped, so the list rots into a backlog they
|
|
126
|
+
avoid. Give it a lightweight status (to-read / reading / read / archived) and
|
|
127
|
+
normalize archiving unread — a shrinking list is a healthy one.
|
|
128
|
+
bar: >
|
|
129
|
+
A GREAT result is TWO OR THREE things they genuinely care about, each with a real
|
|
130
|
+
item already in it — not an empty scaffold. It should feel like a lean personal
|
|
131
|
+
shelf they'll actually open tomorrow, with nothing to maintain that they didn't ask
|
|
132
|
+
for. If it looks like a "productivity system", it's already too much.
|
|
133
|
+
collect:
|
|
134
|
+
- profileSlug: project
|
|
135
|
+
what: The handful of things they're actively working on or care about right now.
|
|
136
|
+
cardinality: few
|
|
137
|
+
keyFields: [name, status]
|
|
138
|
+
- profileSlug: note
|
|
139
|
+
what: A few ideas, thoughts, or things on their mind — however rough.
|
|
140
|
+
cardinality: several
|
|
141
|
+
keyFields: [name, tags]
|
|
142
|
+
- profileSlug: article
|
|
143
|
+
what: What they're reading or mean to read — their reading list.
|
|
144
|
+
cardinality: several
|
|
145
|
+
keyFields: [name, readStatus]
|
|
146
|
+
- profileSlug: bookmark
|
|
147
|
+
what: Web references and links worth keeping.
|
|
148
|
+
cardinality: several
|
|
149
|
+
keyFields: [name, url]
|
|
150
|
+
openingQuestions:
|
|
151
|
+
- "What are you working on or thinking about most these days?"
|
|
152
|
+
- "What have you been reading, saving, or meaning to get to?"
|
|
153
|
+
- "When you jot something down, what does it usually look like — a link, a note, a task?"
|
|
154
|
+
doneWhen: at least one project or note captured, plus one thing they're reading or saving.
|
|
155
|
+
|
|
88
156
|
# No dedicated app — lands on the dashboard/feed (the universal data surface).
|
|
89
157
|
app:
|
|
90
158
|
kind: stored
|
|
@@ -107,9 +175,3 @@ layout:
|
|
|
107
175
|
viewName: Bookmarks
|
|
108
176
|
label: Bookmarks
|
|
109
177
|
icon: bookmark
|
|
110
|
-
|
|
111
|
-
seedEntities:
|
|
112
|
-
- profileSlug: note
|
|
113
|
-
title: Welcome to your second brain
|
|
114
|
-
properties:
|
|
115
|
-
tags: [getting-started]
|