@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/operations.yaml
CHANGED
|
@@ -1,496 +1,222 @@
|
|
|
1
|
-
# Operations workspace template —
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# honest, and the rituals/cadences that keep everyone aligned.
|
|
6
|
-
# Provider of the `operations` domain. Validated against types.ts at build time.
|
|
1
|
+
# Operations workspace template — client-delivery domain.
|
|
2
|
+
# How client work gets delivered end to end: the engagements you're running, the
|
|
3
|
+
# deliverables due inside them, and the contracts that govern them. Consumes the `crm` domain, provides `operations`.
|
|
4
|
+
# Validated against types.ts at build time.
|
|
7
5
|
|
|
8
6
|
meta:
|
|
9
7
|
slug: operations
|
|
10
8
|
name: Operations
|
|
11
|
-
description:
|
|
12
|
-
icon:
|
|
13
|
-
color: "#
|
|
14
|
-
tags: [operations,
|
|
9
|
+
description: "Deliver client work end to end — the engagements you're running, the deliverables due inside them, and the contracts that govern them. Won deals from CRM hand off into engagements here."
|
|
10
|
+
icon: briefcase
|
|
11
|
+
color: "#0F766E"
|
|
12
|
+
tags: [operations, delivery, clients, engagements]
|
|
15
13
|
isPublic: true
|
|
16
14
|
|
|
17
15
|
workspace:
|
|
18
16
|
name: Operations
|
|
19
|
-
description: The
|
|
20
|
-
proposalId: operations-v1
|
|
17
|
+
description: "The client-delivery layer — active engagements, their deliverables, and the contracts that govern them."
|
|
21
18
|
subtype: operations
|
|
22
|
-
visibility:
|
|
23
|
-
workspaceType: operational
|
|
19
|
+
visibility: pod_visible
|
|
24
20
|
capabilities:
|
|
25
|
-
- operations.
|
|
26
|
-
- operations.
|
|
27
|
-
- operations.
|
|
21
|
+
- operations.engagements
|
|
22
|
+
- operations.deliverables
|
|
23
|
+
- operations.contracts
|
|
28
24
|
sourceRoles:
|
|
25
|
+
crm: consumer
|
|
29
26
|
operations: provider
|
|
30
27
|
|
|
31
28
|
profiles:
|
|
32
|
-
- slug:
|
|
33
|
-
displayName:
|
|
34
|
-
icon:
|
|
35
|
-
color: "#
|
|
36
|
-
description: "A
|
|
37
|
-
scope: WORKSPACE
|
|
29
|
+
- slug: engagement
|
|
30
|
+
displayName: Engagement
|
|
31
|
+
icon: briefcase
|
|
32
|
+
color: "#0F766E"
|
|
33
|
+
description: "A unit of client work — a project or retainer delivered for a company, with scope, dates, and value."
|
|
38
34
|
properties:
|
|
39
|
-
- slug:
|
|
40
|
-
label: Category
|
|
41
|
-
valueType: string
|
|
42
|
-
inputType: select
|
|
43
|
-
enumValues: [Onboarding, Finance, People, IT, Support, Sales, Legal, Facilities, Other]
|
|
44
|
-
- slug: sop-status
|
|
35
|
+
- slug: engagement-status
|
|
45
36
|
label: Status
|
|
46
37
|
valueType: string
|
|
47
38
|
inputType: select
|
|
48
|
-
enumValues: [
|
|
49
|
-
constraints: { defaultValue:
|
|
50
|
-
- slug:
|
|
51
|
-
label:
|
|
52
|
-
valueType:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- slug:
|
|
56
|
-
label:
|
|
57
|
-
valueType:
|
|
58
|
-
inputType:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
label: Last Reviewed
|
|
39
|
+
enumValues: [proposed, active, on-hold, completed, cancelled]
|
|
40
|
+
constraints: { defaultValue: proposed }
|
|
41
|
+
- slug: engagement-client
|
|
42
|
+
label: Client
|
|
43
|
+
valueType: entity_id
|
|
44
|
+
targetProfileSlug: company
|
|
45
|
+
inputType: entity_select
|
|
46
|
+
- slug: engagement-start
|
|
47
|
+
label: Start Date
|
|
48
|
+
valueType: date
|
|
49
|
+
inputType: date
|
|
50
|
+
- slug: engagement-end
|
|
51
|
+
label: End Date
|
|
62
52
|
valueType: date
|
|
63
53
|
inputType: date
|
|
64
|
-
- slug:
|
|
65
|
-
label:
|
|
54
|
+
- slug: engagement-value
|
|
55
|
+
label: Value
|
|
56
|
+
valueType: number
|
|
57
|
+
inputType: number
|
|
58
|
+
- slug: engagement-scope
|
|
59
|
+
label: Scope
|
|
66
60
|
valueType: string
|
|
67
61
|
inputType: textarea
|
|
68
|
-
|
|
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
|
|
62
|
+
- slug: engagement-owner
|
|
89
63
|
label: Owner
|
|
90
64
|
valueType: string
|
|
91
65
|
inputType: text
|
|
92
|
-
|
|
93
|
-
|
|
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
|
|
66
|
+
- slug: engagement-notes
|
|
67
|
+
label: Notes
|
|
105
68
|
valueType: string
|
|
106
|
-
inputType:
|
|
107
|
-
placeholder: What it produces
|
|
69
|
+
inputType: textarea
|
|
108
70
|
|
|
109
|
-
- slug:
|
|
110
|
-
displayName:
|
|
111
|
-
icon:
|
|
112
|
-
color: "#
|
|
113
|
-
description: "A
|
|
114
|
-
scope: WORKSPACE
|
|
71
|
+
- slug: deliverable
|
|
72
|
+
displayName: Deliverable
|
|
73
|
+
icon: package-check
|
|
74
|
+
color: "#0EA5E9"
|
|
75
|
+
description: "A concrete output owed inside an engagement — with a due date, an owner, and a status."
|
|
115
76
|
properties:
|
|
116
|
-
- slug:
|
|
117
|
-
label: Category
|
|
118
|
-
valueType: string
|
|
119
|
-
inputType: select
|
|
120
|
-
enumValues: [Software, Service, Supplier, Contractor, Agency, Other]
|
|
121
|
-
- slug: vendor-status
|
|
77
|
+
- slug: deliverable-status
|
|
122
78
|
label: Status
|
|
123
79
|
valueType: string
|
|
124
80
|
inputType: select
|
|
125
|
-
enumValues: [
|
|
126
|
-
constraints: { defaultValue:
|
|
127
|
-
- slug:
|
|
128
|
-
label:
|
|
129
|
-
valueType:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
- slug:
|
|
133
|
-
label:
|
|
134
|
-
valueType:
|
|
135
|
-
inputType:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
label: Renewal Date
|
|
81
|
+
enumValues: [not-started, in-progress, in-review, delivered, accepted]
|
|
82
|
+
constraints: { defaultValue: not-started }
|
|
83
|
+
- slug: deliverable-engagement
|
|
84
|
+
label: Engagement
|
|
85
|
+
valueType: entity_id
|
|
86
|
+
targetProfileSlug: engagement
|
|
87
|
+
inputType: entity_select
|
|
88
|
+
- slug: due-date
|
|
89
|
+
label: Due Date
|
|
90
|
+
valueType: date
|
|
91
|
+
inputType: date
|
|
92
|
+
- slug: delivered-date
|
|
93
|
+
label: Delivered Date
|
|
139
94
|
valueType: date
|
|
140
95
|
inputType: date
|
|
141
|
-
- slug:
|
|
142
|
-
label:
|
|
96
|
+
- slug: deliverable-owner
|
|
97
|
+
label: Owner
|
|
143
98
|
valueType: string
|
|
144
|
-
inputType:
|
|
145
|
-
|
|
146
|
-
- slug: notes
|
|
99
|
+
inputType: text
|
|
100
|
+
- slug: deliverable-notes
|
|
147
101
|
label: Notes
|
|
148
102
|
valueType: string
|
|
149
103
|
inputType: textarea
|
|
150
104
|
|
|
151
|
-
- slug:
|
|
152
|
-
displayName:
|
|
153
|
-
icon:
|
|
154
|
-
color: "#
|
|
155
|
-
description: "
|
|
156
|
-
scope: WORKSPACE
|
|
105
|
+
- slug: contract
|
|
106
|
+
displayName: Contract
|
|
107
|
+
icon: file-signature
|
|
108
|
+
color: "#8B5CF6"
|
|
109
|
+
description: "The agreement that governs an engagement — its status, value, term, and signed document."
|
|
157
110
|
properties:
|
|
158
|
-
- slug:
|
|
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
|
|
111
|
+
- slug: contract-status
|
|
164
112
|
label: Status
|
|
165
113
|
valueType: string
|
|
166
114
|
inputType: select
|
|
167
|
-
enumValues: [
|
|
168
|
-
constraints: { defaultValue:
|
|
169
|
-
- slug:
|
|
170
|
-
label:
|
|
171
|
-
valueType:
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- slug:
|
|
175
|
-
label:
|
|
176
|
-
valueType: number
|
|
177
|
-
inputType: number
|
|
178
|
-
placeholder: "0"
|
|
179
|
-
- slug: monthly-cost
|
|
180
|
-
label: "Monthly Cost (€)"
|
|
115
|
+
enumValues: [draft, sent, signed, active, expired, terminated]
|
|
116
|
+
constraints: { defaultValue: draft }
|
|
117
|
+
- slug: contract-engagement
|
|
118
|
+
label: Engagement
|
|
119
|
+
valueType: entity_id
|
|
120
|
+
targetProfileSlug: engagement
|
|
121
|
+
inputType: entity_select
|
|
122
|
+
- slug: contract-value
|
|
123
|
+
label: Value
|
|
181
124
|
valueType: number
|
|
182
125
|
inputType: number
|
|
183
|
-
|
|
184
|
-
|
|
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
|
|
126
|
+
- slug: start-date
|
|
127
|
+
label: Start Date
|
|
243
128
|
valueType: date
|
|
244
129
|
inputType: date
|
|
245
|
-
- slug:
|
|
246
|
-
label:
|
|
247
|
-
valueType:
|
|
248
|
-
inputType:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
label: Attendees
|
|
130
|
+
- slug: end-date
|
|
131
|
+
label: End Date
|
|
132
|
+
valueType: date
|
|
133
|
+
inputType: date
|
|
134
|
+
- slug: contract-url
|
|
135
|
+
label: Document
|
|
252
136
|
valueType: string
|
|
253
|
-
inputType:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
label: Duration (min)
|
|
257
|
-
valueType: number
|
|
258
|
-
inputType: number
|
|
259
|
-
placeholder: "30"
|
|
260
|
-
- slug: agenda
|
|
261
|
-
label: Agenda
|
|
137
|
+
inputType: url
|
|
138
|
+
- slug: contract-notes
|
|
139
|
+
label: Notes
|
|
262
140
|
valueType: string
|
|
263
141
|
inputType: textarea
|
|
264
|
-
placeholder: Standing agenda...
|
|
265
142
|
|
|
143
|
+
# CURATED views — the delivery motion, not one per profile
|
|
266
144
|
views:
|
|
267
|
-
- name:
|
|
268
|
-
slug:
|
|
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
|
|
145
|
+
- name: Engagements
|
|
146
|
+
slug: engagements
|
|
278
147
|
type: kanban
|
|
279
|
-
scopeProfileSlug:
|
|
280
|
-
groupBy:
|
|
281
|
-
description:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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
|
|
148
|
+
scopeProfileSlug: engagement
|
|
149
|
+
groupBy: engagement-status
|
|
150
|
+
description: "Client engagements on a board by status."
|
|
151
|
+
- name: Deliverables
|
|
152
|
+
slug: deliverables
|
|
153
|
+
type: kanban
|
|
154
|
+
scopeProfileSlug: deliverable
|
|
155
|
+
groupBy: deliverable-status
|
|
156
|
+
description: "Deliverables on a board by status."
|
|
157
|
+
- name: Contracts
|
|
158
|
+
slug: contracts
|
|
303
159
|
type: table
|
|
304
|
-
scopeProfileSlug:
|
|
305
|
-
description:
|
|
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
|
|
160
|
+
scopeProfileSlug: contract
|
|
161
|
+
description: "Contracts with their status, value, and term."
|
|
340
162
|
|
|
341
163
|
onboarding:
|
|
342
|
-
goal:
|
|
164
|
+
goal: >
|
|
165
|
+
Capture the real client-delivery motion — the engagements running now, the
|
|
166
|
+
deliverables due inside them, and the contracts that govern them — so the
|
|
167
|
+
workspace mirrors how client work actually ships here.
|
|
343
168
|
framing: >
|
|
344
|
-
THE
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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.
|
|
169
|
+
THE DELIVERY LEAD: Act as a sharp delivery / operations lead. Anchor every
|
|
170
|
+
piece of work to a real client engagement — a deliverable that isn't tied to
|
|
171
|
+
an engagement is work nobody agreed to. Push for the concrete: named owners,
|
|
172
|
+
real due dates, real scope. Refuse "we're working on it" — ask which
|
|
173
|
+
engagement, who owns it, and when it's due.
|
|
390
174
|
collect:
|
|
391
|
-
- profileSlug:
|
|
392
|
-
what: The
|
|
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.
|
|
175
|
+
- profileSlug: engagement
|
|
176
|
+
what: The client engagements live right now — one per real project or retainer, with its client and dates.
|
|
397
177
|
cardinality: several
|
|
398
|
-
keyFields: [
|
|
399
|
-
- profileSlug:
|
|
400
|
-
what: The
|
|
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.
|
|
178
|
+
keyFields: [engagement-status, engagement-client, engagement-end]
|
|
179
|
+
- profileSlug: deliverable
|
|
180
|
+
what: The deliverables due inside those engagements, placed at their true status with a due date.
|
|
405
181
|
cardinality: several
|
|
406
|
-
keyFields: [
|
|
407
|
-
- profileSlug: ritual
|
|
408
|
-
what: The recurring meetings and cadences that keep the team aligned.
|
|
409
|
-
cardinality: few
|
|
410
|
-
keyFields: [title, cadence, owner]
|
|
182
|
+
keyFields: [deliverable-status, due-date]
|
|
411
183
|
openingQuestions:
|
|
412
|
-
- "
|
|
413
|
-
- "
|
|
414
|
-
- "
|
|
415
|
-
doneWhen:
|
|
184
|
+
- "Which client engagements are active right now, and who's the client on each?"
|
|
185
|
+
- "What's due next — which deliverables are in flight, and when are they owed?"
|
|
186
|
+
- "Which engagements have a contract behind them, and which are still on a handshake?"
|
|
187
|
+
doneWhen: at least one active engagement with a deliverable placed inside it.
|
|
416
188
|
|
|
189
|
+
# App reference — no custom app for operations
|
|
417
190
|
app:
|
|
418
191
|
kind: stored
|
|
419
192
|
cellKey: entity-detail
|
|
420
193
|
|
|
194
|
+
# Layout config for browser sidebar
|
|
421
195
|
layout:
|
|
422
|
-
|
|
196
|
+
pinnedApps: [dashboard, data]
|
|
197
|
+
defaultView: Engagements
|
|
423
198
|
defaultApp: null
|
|
424
|
-
pinnedApps: [dashboard, data, chat]
|
|
425
199
|
sidebarItems:
|
|
426
200
|
- kind: view
|
|
427
|
-
viewName:
|
|
428
|
-
label:
|
|
429
|
-
icon:
|
|
201
|
+
viewName: Engagements
|
|
202
|
+
label: Engagements
|
|
203
|
+
icon: briefcase
|
|
430
204
|
- kind: view
|
|
431
|
-
viewName:
|
|
432
|
-
label:
|
|
433
|
-
icon:
|
|
205
|
+
viewName: Deliverables
|
|
206
|
+
label: Deliverables
|
|
207
|
+
icon: package-check
|
|
434
208
|
- kind: view
|
|
435
|
-
viewName:
|
|
436
|
-
label:
|
|
437
|
-
icon:
|
|
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
|
|
209
|
+
viewName: Contracts
|
|
210
|
+
label: Contracts
|
|
211
|
+
icon: file-signature
|
|
454
212
|
|
|
213
|
+
# Bento dashboard
|
|
455
214
|
bento:
|
|
456
|
-
viewName:
|
|
215
|
+
viewName: Engagements
|
|
457
216
|
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
217
|
- kind: view
|
|
492
|
-
viewName:
|
|
493
|
-
pos: { x: 0, y:
|
|
218
|
+
viewName: Deliverables
|
|
219
|
+
pos: { x: 0, y: 0, w: 6, h: 5 }
|
|
494
220
|
- kind: view
|
|
495
|
-
viewName:
|
|
496
|
-
pos: { x: 6, y:
|
|
221
|
+
viewName: Contracts
|
|
222
|
+
pos: { x: 6, y: 0, w: 6, h: 5 }
|