@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/hr.yaml
ADDED
|
@@ -0,0 +1,474 @@
|
|
|
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
|
+
expertise:
|
|
332
|
+
starters:
|
|
333
|
+
- >
|
|
334
|
+
Don't ask for a hiring wishlist — propose the first roles by what unblocks
|
|
335
|
+
the FOUNDER. Whatever the founder is the bottleneck on (sales they can't
|
|
336
|
+
scale, product they can't ship fast enough, ops eating their week) is the
|
|
337
|
+
next hire. Reflect their week back and name the role that buys their time
|
|
338
|
+
back, rather than filling an org chart.
|
|
339
|
+
- >
|
|
340
|
+
Hire for the next 12 months, not the dream team. Propose the role at the
|
|
341
|
+
seniority the company needs NOW — often a scrappy generalist over a
|
|
342
|
+
specialist VP who'll be bored and expensive. Push back on premature senior
|
|
343
|
+
hires the stage can't feed with real scope.
|
|
344
|
+
- >
|
|
345
|
+
Anchor the hiring bar and review rubric to the company's actual values
|
|
346
|
+
(pull them from Foundation), not generic competencies. Propose 3–4 concrete
|
|
347
|
+
"must be true" signals per role derived from those values, so "a great hire"
|
|
348
|
+
means something specific here rather than "smart and nice".
|
|
349
|
+
blindSpots:
|
|
350
|
+
- >
|
|
351
|
+
Culture is not perks — it's what you REWARD and what you TOLERATE. Founders
|
|
352
|
+
describe culture as ping-pong and free lunch; the real culture is who gets
|
|
353
|
+
promoted and what bad behavior goes unchecked. If they answer "culture" with
|
|
354
|
+
benefits, redirect to: what do you celebrate, and what do you refuse to
|
|
355
|
+
put up with?
|
|
356
|
+
- >
|
|
357
|
+
Onboarding and role clarity beat headcount. A team that doesn't know who owns
|
|
358
|
+
what will thrash no matter how many people you add. Before proposing new
|
|
359
|
+
hires, check that existing roles have clear ownership and every new hire has a
|
|
360
|
+
30/60/90 plan — hiring into ambiguity just scales the confusion.
|
|
361
|
+
- >
|
|
362
|
+
An open role with no hiring manager, or a policy with no owner, is a gap
|
|
363
|
+
hiding in plain sight. Surface these directly: unowned reqs stall for months
|
|
364
|
+
and unowned policies get ignored. Every role needs a decision-maker; every
|
|
365
|
+
policy needs someone accountable for it.
|
|
366
|
+
bar: >
|
|
367
|
+
The org is honest — real people with clear ownership and no orphaned roles or
|
|
368
|
+
policies — the open roles map to what actually unblocks the founder at the right
|
|
369
|
+
seniority for the stage, "a great hire" is defined by concrete signals tied to
|
|
370
|
+
the company's real values, and every new hire lands into role clarity and a
|
|
371
|
+
30/60/90 plan rather than ambiguity.
|
|
372
|
+
collect:
|
|
373
|
+
- profileSlug: team-member
|
|
374
|
+
what: The people currently on the team, with their role, department, and status.
|
|
375
|
+
cardinality: several
|
|
376
|
+
keyFields: [role-title, department, status]
|
|
377
|
+
- profileSlug: role
|
|
378
|
+
what: The positions you're hiring for right now — open reqs with their hiring bar.
|
|
379
|
+
cardinality: few
|
|
380
|
+
keyFields: [status, department, seniority]
|
|
381
|
+
- profileSlug: candidate
|
|
382
|
+
what: Active candidates worth tracking now, and where they are in the pipeline.
|
|
383
|
+
cardinality: few
|
|
384
|
+
keyFields: [stage, source]
|
|
385
|
+
- profileSlug: review
|
|
386
|
+
what: The current review cycle and how you run performance (cadence + rubric).
|
|
387
|
+
cardinality: one
|
|
388
|
+
keyFields: [cycle, status]
|
|
389
|
+
openingQuestions:
|
|
390
|
+
- "Who's on the team today — walk me through the people and what they own."
|
|
391
|
+
- "What are you hiring for right now, and what does 'a great hire' look like here?"
|
|
392
|
+
- "How do you run performance — what's your review cadence, and what does it reward?"
|
|
393
|
+
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.
|
|
394
|
+
|
|
395
|
+
app:
|
|
396
|
+
kind: stored
|
|
397
|
+
cellKey: entity-detail
|
|
398
|
+
|
|
399
|
+
layout:
|
|
400
|
+
defaultView: Team
|
|
401
|
+
defaultApp: null
|
|
402
|
+
pinnedApps: [dashboard, data, intelligence]
|
|
403
|
+
sidebarItems:
|
|
404
|
+
- kind: view
|
|
405
|
+
viewName: Team
|
|
406
|
+
label: Team
|
|
407
|
+
icon: users-round
|
|
408
|
+
- kind: view
|
|
409
|
+
viewName: Hiring Pipeline
|
|
410
|
+
label: Hiring Pipeline
|
|
411
|
+
icon: user-plus
|
|
412
|
+
- kind: view
|
|
413
|
+
viewName: Open Roles
|
|
414
|
+
label: Open Roles
|
|
415
|
+
icon: briefcase
|
|
416
|
+
- kind: view
|
|
417
|
+
viewName: Reviews
|
|
418
|
+
label: Reviews
|
|
419
|
+
icon: clipboard-check
|
|
420
|
+
- kind: view
|
|
421
|
+
viewName: Onboarding
|
|
422
|
+
label: Onboarding
|
|
423
|
+
icon: rocket
|
|
424
|
+
- kind: view
|
|
425
|
+
viewName: Policies
|
|
426
|
+
label: Policies
|
|
427
|
+
icon: scroll-text
|
|
428
|
+
- kind: app
|
|
429
|
+
appId: data
|
|
430
|
+
label: All Data
|
|
431
|
+
icon: database
|
|
432
|
+
|
|
433
|
+
bento:
|
|
434
|
+
viewName: People Command Center
|
|
435
|
+
blocks:
|
|
436
|
+
- kind: widget
|
|
437
|
+
widgetType: welcome-header
|
|
438
|
+
pos: { x: 0, y: 0, w: 12, h: 2 }
|
|
439
|
+
- kind: widget
|
|
440
|
+
widgetType: entity-count
|
|
441
|
+
pos: { x: 0, y: 2, w: 3, h: 2 }
|
|
442
|
+
config:
|
|
443
|
+
profileSlug: team-member
|
|
444
|
+
label: Team
|
|
445
|
+
- kind: widget
|
|
446
|
+
widgetType: entity-count
|
|
447
|
+
pos: { x: 3, y: 2, w: 3, h: 2 }
|
|
448
|
+
config:
|
|
449
|
+
profileSlug: role
|
|
450
|
+
label: Open Roles
|
|
451
|
+
- kind: widget
|
|
452
|
+
widgetType: entity-count
|
|
453
|
+
pos: { x: 6, y: 2, w: 3, h: 2 }
|
|
454
|
+
config:
|
|
455
|
+
profileSlug: candidate
|
|
456
|
+
label: In Pipeline
|
|
457
|
+
- kind: widget
|
|
458
|
+
widgetType: entity-count
|
|
459
|
+
pos: { x: 9, y: 2, w: 3, h: 2 }
|
|
460
|
+
config:
|
|
461
|
+
profileSlug: review
|
|
462
|
+
label: Reviews
|
|
463
|
+
- kind: view
|
|
464
|
+
viewName: Hiring Pipeline
|
|
465
|
+
pos: { x: 0, y: 4, w: 8, h: 5 }
|
|
466
|
+
- kind: view
|
|
467
|
+
viewName: Open Roles
|
|
468
|
+
pos: { x: 8, y: 4, w: 4, h: 5 }
|
|
469
|
+
- kind: view
|
|
470
|
+
viewName: Team
|
|
471
|
+
pos: { x: 0, y: 9, w: 6, h: 4 }
|
|
472
|
+
- kind: view
|
|
473
|
+
viewName: Reviews
|
|
474
|
+
pos: { x: 6, y: 9, w: 6, h: 4 }
|