@synap-core/workspace-templates 0.2.2 → 0.3.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 +4738 -4213
- package/package.json +3 -2
- package/src/agent-fleet.yaml +0 -398
- package/src/brand-library.yaml +31 -44
- package/src/builder.yaml +39 -18
- package/src/content-os.yaml +0 -391
- package/src/content-studio.yaml +32 -22
- package/src/crm.yaml +0 -423
- package/src/dev-dashboard.yaml +0 -393
- package/src/finance.yaml +446 -0
- package/src/foundation.yaml +0 -8
- package/src/hr.yaml +433 -0
- package/src/legal.yaml +452 -0
- package/src/life-os.yaml +0 -89
- package/src/marketing.yaml +30 -15
- package/src/operations.yaml +457 -0
- package/src/personal.yaml +30 -6
- package/src/project-management.yaml +0 -378
- package/src/radar.yaml +0 -11
- package/src/templates.ts +4738 -4213
package/src/hr.yaml
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
# HR workspace template
|
|
2
|
+
# The PEOPLE operating system for a company — the team, hiring, performance, and
|
|
3
|
+
# policies in one lens. Displayed as "People". Consumes the Foundation `strategy`
|
|
4
|
+
# domain so hiring, reviews, and onboarding stay anchored to the company's real
|
|
5
|
+
# values (culture), not a generic template.
|
|
6
|
+
|
|
7
|
+
meta:
|
|
8
|
+
slug: hr
|
|
9
|
+
name: HR
|
|
10
|
+
description: The people operating system — team, hiring, performance reviews, and policies in one place.
|
|
11
|
+
icon: users-round
|
|
12
|
+
color: "#E8663D"
|
|
13
|
+
tags: [hr, people, hiring, team]
|
|
14
|
+
isPublic: true
|
|
15
|
+
|
|
16
|
+
workspace:
|
|
17
|
+
name: People
|
|
18
|
+
description: The company's people operating system — the team, open roles and hiring pipeline, performance cycles, onboarding plans, and people policies.
|
|
19
|
+
proposalId: hr-v1
|
|
20
|
+
subtype: hr
|
|
21
|
+
visibility: members
|
|
22
|
+
workspaceType: operational
|
|
23
|
+
capabilities:
|
|
24
|
+
- hr.team
|
|
25
|
+
- hr.hiring
|
|
26
|
+
- hr.reviews
|
|
27
|
+
# HR provides the people domain to the rest of the pod, and CONSUMES the
|
|
28
|
+
# Foundation `strategy` domain — its values become the culture that anchors
|
|
29
|
+
# hiring bars, review rubrics, and onboarding.
|
|
30
|
+
sourceRoles:
|
|
31
|
+
hr: provider
|
|
32
|
+
strategy: consumer
|
|
33
|
+
|
|
34
|
+
profiles:
|
|
35
|
+
- slug: team-member
|
|
36
|
+
displayName: Team Member
|
|
37
|
+
icon: user-round
|
|
38
|
+
color: indigo
|
|
39
|
+
description: "A person on the team — the core people record."
|
|
40
|
+
properties:
|
|
41
|
+
- slug: role-title
|
|
42
|
+
label: Role
|
|
43
|
+
valueType: string
|
|
44
|
+
inputType: text
|
|
45
|
+
placeholder: e.g. Senior Product Designer
|
|
46
|
+
- slug: status
|
|
47
|
+
label: Status
|
|
48
|
+
valueType: string
|
|
49
|
+
inputType: select
|
|
50
|
+
enumValues: [active, onboarding, on-leave, offboarding, alumni]
|
|
51
|
+
constraints: { defaultValue: active }
|
|
52
|
+
- slug: department
|
|
53
|
+
label: Department
|
|
54
|
+
valueType: string
|
|
55
|
+
inputType: select
|
|
56
|
+
enumValues: [Engineering, Product, Design, Sales, Marketing, Operations, People, Finance, Other]
|
|
57
|
+
- slug: employment-type
|
|
58
|
+
label: Employment Type
|
|
59
|
+
valueType: string
|
|
60
|
+
inputType: select
|
|
61
|
+
enumValues: [full-time, part-time, contractor, intern]
|
|
62
|
+
constraints: { defaultValue: full-time }
|
|
63
|
+
- slug: start-date
|
|
64
|
+
label: Start Date
|
|
65
|
+
valueType: date
|
|
66
|
+
inputType: date
|
|
67
|
+
- slug: email
|
|
68
|
+
label: Email
|
|
69
|
+
valueType: string
|
|
70
|
+
inputType: text
|
|
71
|
+
placeholder: name@company.com
|
|
72
|
+
constraints: { format: email }
|
|
73
|
+
- slug: location
|
|
74
|
+
label: Location
|
|
75
|
+
valueType: string
|
|
76
|
+
inputType: text
|
|
77
|
+
placeholder: City, Country
|
|
78
|
+
|
|
79
|
+
- slug: role
|
|
80
|
+
displayName: Role
|
|
81
|
+
icon: briefcase
|
|
82
|
+
color: amber
|
|
83
|
+
description: "A position — open req or filled seat — with its job spec."
|
|
84
|
+
properties:
|
|
85
|
+
- slug: status
|
|
86
|
+
label: Status
|
|
87
|
+
valueType: string
|
|
88
|
+
inputType: select
|
|
89
|
+
enumValues: [draft, open, interviewing, offer-out, filled, on-hold, closed]
|
|
90
|
+
constraints: { defaultValue: open }
|
|
91
|
+
- slug: department
|
|
92
|
+
label: Department
|
|
93
|
+
valueType: string
|
|
94
|
+
inputType: select
|
|
95
|
+
enumValues: [Engineering, Product, Design, Sales, Marketing, Operations, People, Finance, Other]
|
|
96
|
+
- slug: seniority
|
|
97
|
+
label: Seniority
|
|
98
|
+
valueType: string
|
|
99
|
+
inputType: select
|
|
100
|
+
enumValues: [junior, mid, senior, staff, lead, manager, director]
|
|
101
|
+
- slug: employment-type
|
|
102
|
+
label: Employment Type
|
|
103
|
+
valueType: string
|
|
104
|
+
inputType: select
|
|
105
|
+
enumValues: [full-time, part-time, contractor, intern]
|
|
106
|
+
constraints: { defaultValue: full-time }
|
|
107
|
+
- slug: hiring-manager
|
|
108
|
+
label: Hiring Manager
|
|
109
|
+
valueType: string
|
|
110
|
+
inputType: text
|
|
111
|
+
- slug: target-start
|
|
112
|
+
label: Target Start
|
|
113
|
+
valueType: date
|
|
114
|
+
inputType: date
|
|
115
|
+
- slug: job-spec
|
|
116
|
+
label: Job Spec
|
|
117
|
+
valueType: string
|
|
118
|
+
inputType: textarea
|
|
119
|
+
placeholder: Mission, responsibilities, must-haves, hiring bar...
|
|
120
|
+
|
|
121
|
+
- slug: candidate
|
|
122
|
+
displayName: Candidate
|
|
123
|
+
icon: user-plus
|
|
124
|
+
color: cyan
|
|
125
|
+
description: "A person moving through the hiring pipeline for a role."
|
|
126
|
+
properties:
|
|
127
|
+
- slug: stage
|
|
128
|
+
label: Stage
|
|
129
|
+
valueType: string
|
|
130
|
+
inputType: select
|
|
131
|
+
enumValues: [applied, screening, interview, offer, hired, rejected, withdrawn]
|
|
132
|
+
constraints: { defaultValue: applied }
|
|
133
|
+
- slug: source
|
|
134
|
+
label: Source
|
|
135
|
+
valueType: string
|
|
136
|
+
inputType: select
|
|
137
|
+
enumValues: [referral, inbound, outbound, agency, event, other]
|
|
138
|
+
- slug: email
|
|
139
|
+
label: Email
|
|
140
|
+
valueType: string
|
|
141
|
+
inputType: text
|
|
142
|
+
placeholder: name@email.com
|
|
143
|
+
constraints: { format: email }
|
|
144
|
+
- slug: phone
|
|
145
|
+
label: Phone
|
|
146
|
+
valueType: string
|
|
147
|
+
inputType: text
|
|
148
|
+
- slug: resume-url
|
|
149
|
+
label: Resume
|
|
150
|
+
valueType: string
|
|
151
|
+
inputType: url
|
|
152
|
+
- slug: rating
|
|
153
|
+
label: Rating
|
|
154
|
+
valueType: number
|
|
155
|
+
inputType: number
|
|
156
|
+
constraints: { min: 0, max: 5 }
|
|
157
|
+
- slug: notes
|
|
158
|
+
label: Notes
|
|
159
|
+
valueType: string
|
|
160
|
+
inputType: textarea
|
|
161
|
+
|
|
162
|
+
- slug: review
|
|
163
|
+
displayName: Review
|
|
164
|
+
icon: clipboard-check
|
|
165
|
+
color: violet
|
|
166
|
+
description: "A performance review within a company review cycle."
|
|
167
|
+
properties:
|
|
168
|
+
- slug: cycle
|
|
169
|
+
label: Cycle
|
|
170
|
+
valueType: string
|
|
171
|
+
inputType: text
|
|
172
|
+
placeholder: e.g. H1 2026
|
|
173
|
+
- slug: status
|
|
174
|
+
label: Status
|
|
175
|
+
valueType: string
|
|
176
|
+
inputType: select
|
|
177
|
+
enumValues: [not-started, self-review, manager-review, calibration, shared, complete]
|
|
178
|
+
constraints: { defaultValue: not-started }
|
|
179
|
+
- slug: rating
|
|
180
|
+
label: Rating
|
|
181
|
+
valueType: string
|
|
182
|
+
inputType: select
|
|
183
|
+
enumValues: [exceeds, meets, developing, below]
|
|
184
|
+
- slug: reviewer
|
|
185
|
+
label: Reviewer
|
|
186
|
+
valueType: string
|
|
187
|
+
inputType: text
|
|
188
|
+
- slug: summary
|
|
189
|
+
label: Summary
|
|
190
|
+
valueType: string
|
|
191
|
+
inputType: textarea
|
|
192
|
+
|
|
193
|
+
- slug: policy
|
|
194
|
+
displayName: Policy
|
|
195
|
+
icon: scroll-text
|
|
196
|
+
color: slate
|
|
197
|
+
description: "A people policy or handbook section."
|
|
198
|
+
properties:
|
|
199
|
+
- slug: category
|
|
200
|
+
label: Category
|
|
201
|
+
valueType: string
|
|
202
|
+
inputType: select
|
|
203
|
+
enumValues: [leave, benefits, conduct, remote-work, expenses, security, compensation, other]
|
|
204
|
+
- slug: status
|
|
205
|
+
label: Status
|
|
206
|
+
valueType: string
|
|
207
|
+
inputType: select
|
|
208
|
+
enumValues: [draft, active, under-review, archived]
|
|
209
|
+
constraints: { defaultValue: active }
|
|
210
|
+
- slug: owner
|
|
211
|
+
label: Owner
|
|
212
|
+
valueType: string
|
|
213
|
+
inputType: text
|
|
214
|
+
- slug: effective-date
|
|
215
|
+
label: Effective Date
|
|
216
|
+
valueType: date
|
|
217
|
+
inputType: date
|
|
218
|
+
- slug: summary
|
|
219
|
+
label: Summary
|
|
220
|
+
valueType: string
|
|
221
|
+
inputType: textarea
|
|
222
|
+
|
|
223
|
+
- slug: onboarding-plan
|
|
224
|
+
displayName: Onboarding Plan
|
|
225
|
+
icon: rocket
|
|
226
|
+
color: green
|
|
227
|
+
description: "A new hire's first-weeks plan, buddy, and checklist."
|
|
228
|
+
properties:
|
|
229
|
+
- slug: status
|
|
230
|
+
label: Status
|
|
231
|
+
valueType: string
|
|
232
|
+
inputType: select
|
|
233
|
+
enumValues: [not-started, in-progress, complete]
|
|
234
|
+
constraints: { defaultValue: not-started }
|
|
235
|
+
- slug: start-date
|
|
236
|
+
label: Start Date
|
|
237
|
+
valueType: date
|
|
238
|
+
inputType: date
|
|
239
|
+
- slug: buddy
|
|
240
|
+
label: Buddy
|
|
241
|
+
valueType: string
|
|
242
|
+
inputType: text
|
|
243
|
+
- slug: checklist
|
|
244
|
+
label: Checklist
|
|
245
|
+
valueType: string
|
|
246
|
+
inputType: textarea
|
|
247
|
+
placeholder: Accounts, intro meetings, first task, 30/60/90 goals...
|
|
248
|
+
|
|
249
|
+
views:
|
|
250
|
+
- name: Team
|
|
251
|
+
slug: team
|
|
252
|
+
type: table
|
|
253
|
+
scopeProfileSlug: team-member
|
|
254
|
+
defaultView: true
|
|
255
|
+
description: Everyone on the team, by role and status.
|
|
256
|
+
config:
|
|
257
|
+
columns: [title, role-title, department, status, employment-type, start-date, location]
|
|
258
|
+
- name: Hiring Pipeline
|
|
259
|
+
slug: hiring-pipeline
|
|
260
|
+
type: kanban
|
|
261
|
+
scopeProfileSlug: candidate
|
|
262
|
+
groupBy: stage
|
|
263
|
+
description: Candidates moving through the pipeline, by stage.
|
|
264
|
+
config:
|
|
265
|
+
groupBy: stage
|
|
266
|
+
cardFields: [source, rating, email]
|
|
267
|
+
- name: Open Roles
|
|
268
|
+
slug: open-roles
|
|
269
|
+
type: table
|
|
270
|
+
scopeProfileSlug: role
|
|
271
|
+
description: Positions and their hiring status.
|
|
272
|
+
config:
|
|
273
|
+
columns: [title, status, department, seniority, hiring-manager, target-start]
|
|
274
|
+
- name: Reviews
|
|
275
|
+
slug: reviews
|
|
276
|
+
type: kanban
|
|
277
|
+
scopeProfileSlug: review
|
|
278
|
+
groupBy: status
|
|
279
|
+
description: Performance reviews across the cycle, by status.
|
|
280
|
+
config:
|
|
281
|
+
groupBy: status
|
|
282
|
+
cardFields: [cycle, rating, reviewer]
|
|
283
|
+
- name: Policies
|
|
284
|
+
slug: policies
|
|
285
|
+
type: table
|
|
286
|
+
scopeProfileSlug: policy
|
|
287
|
+
description: People policies and handbook sections.
|
|
288
|
+
config:
|
|
289
|
+
columns: [title, category, status, owner, effective-date]
|
|
290
|
+
- name: Onboarding
|
|
291
|
+
slug: onboarding
|
|
292
|
+
type: table
|
|
293
|
+
scopeProfileSlug: onboarding-plan
|
|
294
|
+
description: New hire onboarding plans and progress.
|
|
295
|
+
config:
|
|
296
|
+
columns: [title, status, start-date, buddy]
|
|
297
|
+
|
|
298
|
+
# Schema-level relations — give the relation picker domain links from day one.
|
|
299
|
+
entityLinks:
|
|
300
|
+
- sourceProfileSlug: candidate
|
|
301
|
+
targetProfileSlug: role
|
|
302
|
+
type: applying_for
|
|
303
|
+
label: Applying for
|
|
304
|
+
- sourceProfileSlug: review
|
|
305
|
+
targetProfileSlug: team-member
|
|
306
|
+
type: reviews
|
|
307
|
+
label: Reviews
|
|
308
|
+
- sourceProfileSlug: onboarding-plan
|
|
309
|
+
targetProfileSlug: team-member
|
|
310
|
+
type: for
|
|
311
|
+
label: For
|
|
312
|
+
- sourceProfileSlug: team-member
|
|
313
|
+
targetProfileSlug: role
|
|
314
|
+
type: fills
|
|
315
|
+
label: Fills
|
|
316
|
+
- sourceProfileSlug: team-member
|
|
317
|
+
targetProfileSlug: team-member
|
|
318
|
+
type: reports_to
|
|
319
|
+
label: Reports to
|
|
320
|
+
|
|
321
|
+
onboarding:
|
|
322
|
+
goal: Capture the real shape of the company's people — who's on the team, what roles are open, who's in the pipeline, and how performance is reviewed — so the People workspace reflects the actual org, not a template.
|
|
323
|
+
framing: >
|
|
324
|
+
THE HEAD OF PEOPLE: Act as a sharp, warm head of people/talent. You care about
|
|
325
|
+
two things at once — the humans and the operating system around them. Draw out
|
|
326
|
+
the real org: who does what, what you're hiring for and why, how candidates move,
|
|
327
|
+
and how you run performance. Anchor everything to the company's culture — pull the
|
|
328
|
+
Foundation values and reflect them back as the hiring bar and review rubric.
|
|
329
|
+
Be direct about gaps (no owner on a policy, a role open with no hiring manager),
|
|
330
|
+
but never clinical — these are people.
|
|
331
|
+
collect:
|
|
332
|
+
- profileSlug: team-member
|
|
333
|
+
what: The people currently on the team, with their role, department, and status.
|
|
334
|
+
cardinality: several
|
|
335
|
+
keyFields: [role-title, department, status]
|
|
336
|
+
- profileSlug: role
|
|
337
|
+
what: The positions you're hiring for right now — open reqs with their hiring bar.
|
|
338
|
+
cardinality: few
|
|
339
|
+
keyFields: [status, department, seniority]
|
|
340
|
+
- profileSlug: candidate
|
|
341
|
+
what: Active candidates worth tracking now, and where they are in the pipeline.
|
|
342
|
+
cardinality: few
|
|
343
|
+
keyFields: [stage, source]
|
|
344
|
+
- profileSlug: review
|
|
345
|
+
what: The current review cycle and how you run performance (cadence + rubric).
|
|
346
|
+
cardinality: one
|
|
347
|
+
keyFields: [cycle, status]
|
|
348
|
+
openingQuestions:
|
|
349
|
+
- "Who's on the team today — walk me through the people and what they own."
|
|
350
|
+
- "What are you hiring for right now, and what does 'a great hire' look like here?"
|
|
351
|
+
- "How do you run performance — what's your review cadence, and what does it reward?"
|
|
352
|
+
doneWhen: The core team exists with roles and status, at least one open role with its hiring bar is captured, and a review cycle is defined — ideally with its rubric tied to the Foundation values.
|
|
353
|
+
|
|
354
|
+
app:
|
|
355
|
+
kind: stored
|
|
356
|
+
cellKey: entity-detail
|
|
357
|
+
|
|
358
|
+
layout:
|
|
359
|
+
defaultView: Team
|
|
360
|
+
defaultApp: null
|
|
361
|
+
pinnedApps: [dashboard, data, intelligence]
|
|
362
|
+
sidebarItems:
|
|
363
|
+
- kind: view
|
|
364
|
+
viewName: Team
|
|
365
|
+
label: Team
|
|
366
|
+
icon: users-round
|
|
367
|
+
- kind: view
|
|
368
|
+
viewName: Hiring Pipeline
|
|
369
|
+
label: Hiring Pipeline
|
|
370
|
+
icon: user-plus
|
|
371
|
+
- kind: view
|
|
372
|
+
viewName: Open Roles
|
|
373
|
+
label: Open Roles
|
|
374
|
+
icon: briefcase
|
|
375
|
+
- kind: view
|
|
376
|
+
viewName: Reviews
|
|
377
|
+
label: Reviews
|
|
378
|
+
icon: clipboard-check
|
|
379
|
+
- kind: view
|
|
380
|
+
viewName: Onboarding
|
|
381
|
+
label: Onboarding
|
|
382
|
+
icon: rocket
|
|
383
|
+
- kind: view
|
|
384
|
+
viewName: Policies
|
|
385
|
+
label: Policies
|
|
386
|
+
icon: scroll-text
|
|
387
|
+
- kind: app
|
|
388
|
+
appId: data
|
|
389
|
+
label: All Data
|
|
390
|
+
icon: database
|
|
391
|
+
|
|
392
|
+
bento:
|
|
393
|
+
viewName: People Command Center
|
|
394
|
+
blocks:
|
|
395
|
+
- kind: widget
|
|
396
|
+
widgetType: welcome-header
|
|
397
|
+
pos: { x: 0, y: 0, w: 12, h: 2 }
|
|
398
|
+
- kind: widget
|
|
399
|
+
widgetType: entity-count
|
|
400
|
+
pos: { x: 0, y: 2, w: 3, h: 2 }
|
|
401
|
+
config:
|
|
402
|
+
profileSlug: team-member
|
|
403
|
+
label: Team
|
|
404
|
+
- kind: widget
|
|
405
|
+
widgetType: entity-count
|
|
406
|
+
pos: { x: 3, y: 2, w: 3, h: 2 }
|
|
407
|
+
config:
|
|
408
|
+
profileSlug: role
|
|
409
|
+
label: Open Roles
|
|
410
|
+
- kind: widget
|
|
411
|
+
widgetType: entity-count
|
|
412
|
+
pos: { x: 6, y: 2, w: 3, h: 2 }
|
|
413
|
+
config:
|
|
414
|
+
profileSlug: candidate
|
|
415
|
+
label: In Pipeline
|
|
416
|
+
- kind: widget
|
|
417
|
+
widgetType: entity-count
|
|
418
|
+
pos: { x: 9, y: 2, w: 3, h: 2 }
|
|
419
|
+
config:
|
|
420
|
+
profileSlug: review
|
|
421
|
+
label: Reviews
|
|
422
|
+
- kind: view
|
|
423
|
+
viewName: Hiring Pipeline
|
|
424
|
+
pos: { x: 0, y: 4, w: 8, h: 5 }
|
|
425
|
+
- kind: view
|
|
426
|
+
viewName: Open Roles
|
|
427
|
+
pos: { x: 8, y: 4, w: 4, h: 5 }
|
|
428
|
+
- kind: view
|
|
429
|
+
viewName: Team
|
|
430
|
+
pos: { x: 0, y: 9, w: 6, h: 4 }
|
|
431
|
+
- kind: view
|
|
432
|
+
viewName: Reviews
|
|
433
|
+
pos: { x: 6, y: 9, w: 6, h: 4 }
|