@synap-core/workspace-templates 0.7.3 → 0.8.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/index.js +881 -148
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/crm.yaml +16 -0
- package/src/enterprise-os.yaml +4 -0
- package/src/networking.yaml +597 -0
- package/src/operations.yaml +7 -3
- package/src/templates.ts +873 -148
- package/src/the-arch.yaml +14 -0
package/src/templates.ts
CHANGED
|
@@ -9601,6 +9601,13 @@ const DATA = {
|
|
|
9601
9601
|
"description": "An organisation being qualified or sold to.",
|
|
9602
9602
|
"scope": "WORKSPACE",
|
|
9603
9603
|
"properties": [
|
|
9604
|
+
{
|
|
9605
|
+
"slug": "contextSummary",
|
|
9606
|
+
"label": "Context",
|
|
9607
|
+
"valueType": "string",
|
|
9608
|
+
"inputType": "textarea",
|
|
9609
|
+
"placeholder": "The AI-maintained one-paragraph summary of who this client is and where they stand."
|
|
9610
|
+
},
|
|
9604
9611
|
{
|
|
9605
9612
|
"slug": "website",
|
|
9606
9613
|
"label": "Website",
|
|
@@ -9699,6 +9706,22 @@ const DATA = {
|
|
|
9699
9706
|
"inactive"
|
|
9700
9707
|
]
|
|
9701
9708
|
},
|
|
9709
|
+
{
|
|
9710
|
+
"slug": "commercialStage",
|
|
9711
|
+
"label": "Commercial stage",
|
|
9712
|
+
"valueType": "string",
|
|
9713
|
+
"inputType": "select",
|
|
9714
|
+
"enumValues": [
|
|
9715
|
+
"draft",
|
|
9716
|
+
"proposed",
|
|
9717
|
+
"negotiating",
|
|
9718
|
+
"won",
|
|
9719
|
+
"lost"
|
|
9720
|
+
],
|
|
9721
|
+
"constraints": {
|
|
9722
|
+
"defaultValue": "draft"
|
|
9723
|
+
}
|
|
9724
|
+
},
|
|
9702
9725
|
{
|
|
9703
9726
|
"slug": "valueType",
|
|
9704
9727
|
"label": "Value type",
|
|
@@ -12543,6 +12566,12 @@ const DATA = {
|
|
|
12543
12566
|
"relation": "require",
|
|
12544
12567
|
"reason": "The pipeline — contacts, leads, clients, and deals."
|
|
12545
12568
|
},
|
|
12569
|
+
{
|
|
12570
|
+
"slug": "business-developer",
|
|
12571
|
+
"kind": "workspace",
|
|
12572
|
+
"relation": "require",
|
|
12573
|
+
"reason": "The lead-first sales motion (crm-lead/crm-client roles, commercial proposals, commission handoff) that the CRM app runs on. Composes onto the CRM workspace above — without it the CRM lens is provisioned with pod-wide lead/client only and the app's pipeline is empty."
|
|
12574
|
+
},
|
|
12546
12575
|
{
|
|
12547
12576
|
"slug": "content-os",
|
|
12548
12577
|
"kind": "workspace",
|
|
@@ -22048,108 +22077,122 @@ const DATA = {
|
|
|
22048
22077
|
]
|
|
22049
22078
|
}
|
|
22050
22079
|
},
|
|
22051
|
-
"
|
|
22080
|
+
"networking": {
|
|
22052
22081
|
"meta": {
|
|
22053
|
-
"slug": "
|
|
22054
|
-
"domain": "
|
|
22055
|
-
"name": "
|
|
22056
|
-
"description": "
|
|
22057
|
-
"icon": "
|
|
22058
|
-
"color": "#
|
|
22082
|
+
"slug": "networking",
|
|
22083
|
+
"domain": "revenue",
|
|
22084
|
+
"name": "Networking",
|
|
22085
|
+
"description": "The BD-middleman layer over your CRM — capture client needs, keep a roster of solution providers, and broker the intros that connect demand to supply.",
|
|
22086
|
+
"icon": "waypoints",
|
|
22087
|
+
"color": "#6366F1",
|
|
22059
22088
|
"tags": [
|
|
22060
|
-
"
|
|
22061
|
-
"
|
|
22062
|
-
"
|
|
22063
|
-
"
|
|
22089
|
+
"networking",
|
|
22090
|
+
"business-development",
|
|
22091
|
+
"matchmaking",
|
|
22092
|
+
"intros",
|
|
22093
|
+
"middleman"
|
|
22064
22094
|
],
|
|
22065
22095
|
"isPublic": true
|
|
22066
22096
|
},
|
|
22067
|
-
"workspace": {
|
|
22068
|
-
"name": "Operations",
|
|
22069
|
-
"description": "The client-delivery layer — active engagements, their deliverables, and the contracts that govern them.",
|
|
22070
|
-
"subtype": "operations",
|
|
22071
|
-
"visibility": "pod_visible",
|
|
22072
|
-
"capabilities": [
|
|
22073
|
-
"operations.engagements",
|
|
22074
|
-
"operations.deliverables",
|
|
22075
|
-
"operations.contracts"
|
|
22076
|
-
],
|
|
22077
|
-
"sourceRoles": {
|
|
22078
|
-
"crm": "consumer",
|
|
22079
|
-
"operations": "provider"
|
|
22080
|
-
}
|
|
22081
|
-
},
|
|
22082
22097
|
"dependencies": [
|
|
22098
|
+
{
|
|
22099
|
+
"slug": "crm",
|
|
22100
|
+
"kind": "workspace",
|
|
22101
|
+
"relation": "compose",
|
|
22102
|
+
"reason": "Adds a needs → intros brokerage workflow onto your CRM workspace."
|
|
22103
|
+
},
|
|
22083
22104
|
{
|
|
22084
22105
|
"slug": "foundation",
|
|
22085
22106
|
"kind": "workspace",
|
|
22086
22107
|
"relation": "require",
|
|
22087
|
-
"reason": "Provides the pod-wide
|
|
22108
|
+
"reason": "Provides the pod-wide client/partner role vocabulary the CRM base reuses."
|
|
22088
22109
|
}
|
|
22089
22110
|
],
|
|
22111
|
+
"workspace": {
|
|
22112
|
+
"name": "Networking",
|
|
22113
|
+
"description": "A brokerage workspace layered on your CRM — client needs, a provider roster, and the intros that connect them.",
|
|
22114
|
+
"proposalId": "networking-v1",
|
|
22115
|
+
"subtype": "crm"
|
|
22116
|
+
},
|
|
22090
22117
|
"profiles": [
|
|
22091
22118
|
{
|
|
22092
|
-
"slug": "
|
|
22093
|
-
"displayName": "
|
|
22094
|
-
"icon": "
|
|
22095
|
-
"color": "
|
|
22096
|
-
"description": "A
|
|
22119
|
+
"slug": "need",
|
|
22120
|
+
"displayName": "Need",
|
|
22121
|
+
"icon": "target",
|
|
22122
|
+
"color": "amber",
|
|
22123
|
+
"description": "A client's stated ask — the demand The Arch brokers a provider against.",
|
|
22124
|
+
"scope": "WORKSPACE",
|
|
22097
22125
|
"properties": [
|
|
22098
22126
|
{
|
|
22099
|
-
"slug": "
|
|
22127
|
+
"slug": "needStatus",
|
|
22100
22128
|
"label": "Status",
|
|
22101
22129
|
"valueType": "string",
|
|
22102
22130
|
"inputType": "select",
|
|
22103
22131
|
"enumValues": [
|
|
22104
|
-
"
|
|
22105
|
-
"
|
|
22106
|
-
"
|
|
22107
|
-
"
|
|
22108
|
-
"
|
|
22132
|
+
"open",
|
|
22133
|
+
"matching",
|
|
22134
|
+
"intro-made",
|
|
22135
|
+
"satisfied",
|
|
22136
|
+
"dropped"
|
|
22109
22137
|
],
|
|
22110
22138
|
"constraints": {
|
|
22111
|
-
"defaultValue": "
|
|
22139
|
+
"defaultValue": "open"
|
|
22112
22140
|
}
|
|
22113
22141
|
},
|
|
22114
22142
|
{
|
|
22115
|
-
"slug": "
|
|
22116
|
-
"label": "
|
|
22117
|
-
"valueType": "
|
|
22118
|
-
"
|
|
22119
|
-
"
|
|
22143
|
+
"slug": "domain",
|
|
22144
|
+
"label": "Domain",
|
|
22145
|
+
"valueType": "string",
|
|
22146
|
+
"inputType": "text",
|
|
22147
|
+
"placeholder": "The area of the ask — e.g. market-making, audit, design."
|
|
22120
22148
|
},
|
|
22121
22149
|
{
|
|
22122
|
-
"slug": "
|
|
22123
|
-
"label": "
|
|
22124
|
-
"valueType": "
|
|
22125
|
-
"inputType": "
|
|
22150
|
+
"slug": "urgency",
|
|
22151
|
+
"label": "Urgency",
|
|
22152
|
+
"valueType": "string",
|
|
22153
|
+
"inputType": "text"
|
|
22126
22154
|
},
|
|
22127
22155
|
{
|
|
22128
|
-
"slug": "
|
|
22129
|
-
"label": "
|
|
22130
|
-
"valueType": "
|
|
22131
|
-
"inputType": "
|
|
22156
|
+
"slug": "budgetRange",
|
|
22157
|
+
"label": "Budget Range",
|
|
22158
|
+
"valueType": "string",
|
|
22159
|
+
"inputType": "text"
|
|
22132
22160
|
},
|
|
22133
22161
|
{
|
|
22134
|
-
"slug": "
|
|
22135
|
-
"label": "
|
|
22136
|
-
"valueType": "
|
|
22137
|
-
"inputType": "
|
|
22162
|
+
"slug": "requesterCompanyId",
|
|
22163
|
+
"label": "Requester",
|
|
22164
|
+
"valueType": "entity_id",
|
|
22165
|
+
"inputType": "entity_select",
|
|
22166
|
+
"targetProfileSlug": "company"
|
|
22138
22167
|
},
|
|
22139
22168
|
{
|
|
22140
|
-
"slug": "
|
|
22141
|
-
"label": "
|
|
22169
|
+
"slug": "confidentiality",
|
|
22170
|
+
"label": "Confidentiality",
|
|
22142
22171
|
"valueType": "string",
|
|
22143
|
-
"inputType": "
|
|
22172
|
+
"inputType": "select",
|
|
22173
|
+
"enumValues": [
|
|
22174
|
+
"shareable",
|
|
22175
|
+
"confidential"
|
|
22176
|
+
],
|
|
22177
|
+
"constraints": {
|
|
22178
|
+
"defaultValue": "confidential"
|
|
22179
|
+
}
|
|
22144
22180
|
},
|
|
22145
22181
|
{
|
|
22146
|
-
"slug": "
|
|
22147
|
-
"label": "
|
|
22182
|
+
"slug": "evidenceQuote",
|
|
22183
|
+
"label": "Evidence Quote",
|
|
22184
|
+
"valueType": "string",
|
|
22185
|
+
"inputType": "textarea",
|
|
22186
|
+
"placeholder": "The client's own words that captured this need."
|
|
22187
|
+
},
|
|
22188
|
+
{
|
|
22189
|
+
"slug": "sourceMessageId",
|
|
22190
|
+
"label": "Source Message ID",
|
|
22148
22191
|
"valueType": "string",
|
|
22149
22192
|
"inputType": "text"
|
|
22150
22193
|
},
|
|
22151
22194
|
{
|
|
22152
|
-
"slug": "
|
|
22195
|
+
"slug": "notes",
|
|
22153
22196
|
"label": "Notes",
|
|
22154
22197
|
"valueType": "string",
|
|
22155
22198
|
"inputType": "textarea"
|
|
@@ -22157,135 +22200,809 @@ const DATA = {
|
|
|
22157
22200
|
]
|
|
22158
22201
|
},
|
|
22159
22202
|
{
|
|
22160
|
-
"slug": "
|
|
22161
|
-
"displayName": "
|
|
22162
|
-
"icon": "
|
|
22163
|
-
"color": "
|
|
22164
|
-
"description": "
|
|
22203
|
+
"slug": "intro",
|
|
22204
|
+
"displayName": "Intro",
|
|
22205
|
+
"icon": "waypoints",
|
|
22206
|
+
"color": "violet",
|
|
22207
|
+
"description": "The middleman brokerage artifact — connects a requester to a provider for a need, and bills the match as a deal.",
|
|
22208
|
+
"scope": "WORKSPACE",
|
|
22165
22209
|
"properties": [
|
|
22166
22210
|
{
|
|
22167
|
-
"slug": "
|
|
22168
|
-
"label": "
|
|
22211
|
+
"slug": "introStage",
|
|
22212
|
+
"label": "Stage",
|
|
22169
22213
|
"valueType": "string",
|
|
22170
22214
|
"inputType": "select",
|
|
22171
22215
|
"enumValues": [
|
|
22172
|
-
"
|
|
22173
|
-
"
|
|
22174
|
-
"
|
|
22175
|
-
"
|
|
22176
|
-
"
|
|
22216
|
+
"identified",
|
|
22217
|
+
"proposed",
|
|
22218
|
+
"approved",
|
|
22219
|
+
"introduced",
|
|
22220
|
+
"in-discussion",
|
|
22221
|
+
"signed",
|
|
22222
|
+
"dead"
|
|
22177
22223
|
],
|
|
22178
22224
|
"constraints": {
|
|
22179
|
-
"defaultValue": "
|
|
22225
|
+
"defaultValue": "identified"
|
|
22180
22226
|
}
|
|
22181
22227
|
},
|
|
22182
22228
|
{
|
|
22183
|
-
"slug": "
|
|
22184
|
-
"label": "
|
|
22229
|
+
"slug": "requesterCompanyId",
|
|
22230
|
+
"label": "Requester",
|
|
22185
22231
|
"valueType": "entity_id",
|
|
22186
|
-
"
|
|
22187
|
-
"
|
|
22232
|
+
"inputType": "entity_select",
|
|
22233
|
+
"targetProfileSlug": "company"
|
|
22188
22234
|
},
|
|
22189
22235
|
{
|
|
22190
|
-
"slug": "
|
|
22191
|
-
"label": "
|
|
22192
|
-
"valueType": "
|
|
22193
|
-
"inputType": "
|
|
22236
|
+
"slug": "providerCompanyId",
|
|
22237
|
+
"label": "Provider",
|
|
22238
|
+
"valueType": "entity_id",
|
|
22239
|
+
"inputType": "entity_select",
|
|
22240
|
+
"targetProfileSlug": "company"
|
|
22194
22241
|
},
|
|
22195
22242
|
{
|
|
22196
|
-
"slug": "
|
|
22197
|
-
"label": "
|
|
22198
|
-
"valueType": "
|
|
22199
|
-
"inputType": "
|
|
22243
|
+
"slug": "needId",
|
|
22244
|
+
"label": "Need",
|
|
22245
|
+
"valueType": "entity_id",
|
|
22246
|
+
"inputType": "entity_select",
|
|
22247
|
+
"targetProfileSlug": "need"
|
|
22200
22248
|
},
|
|
22201
22249
|
{
|
|
22202
|
-
"slug": "
|
|
22203
|
-
"label": "
|
|
22250
|
+
"slug": "synapFeeModel",
|
|
22251
|
+
"label": "Synap fee model",
|
|
22204
22252
|
"valueType": "string",
|
|
22205
|
-
"inputType": "
|
|
22253
|
+
"inputType": "select",
|
|
22254
|
+
"enumValues": [
|
|
22255
|
+
"fixed",
|
|
22256
|
+
"success_fee"
|
|
22257
|
+
]
|
|
22206
22258
|
},
|
|
22207
22259
|
{
|
|
22208
|
-
"slug": "
|
|
22209
|
-
"label": "
|
|
22210
|
-
"valueType": "
|
|
22211
|
-
"inputType": "
|
|
22212
|
-
}
|
|
22213
|
-
]
|
|
22214
|
-
},
|
|
22215
|
-
{
|
|
22216
|
-
"slug": "contract",
|
|
22217
|
-
"displayName": "Contract",
|
|
22218
|
-
"icon": "file-signature",
|
|
22219
|
-
"color": "#8B5CF6",
|
|
22220
|
-
"description": "The agreement that governs an engagement — its status, value, term, and signed document.",
|
|
22221
|
-
"properties": [
|
|
22260
|
+
"slug": "synapSuccessFeeRate",
|
|
22261
|
+
"label": "Synap success fee rate",
|
|
22262
|
+
"valueType": "number",
|
|
22263
|
+
"inputType": "number"
|
|
22264
|
+
},
|
|
22222
22265
|
{
|
|
22223
|
-
"slug": "
|
|
22224
|
-
"label": "
|
|
22225
|
-
"valueType": "
|
|
22226
|
-
"inputType": "
|
|
22227
|
-
"enumValues": [
|
|
22228
|
-
"draft",
|
|
22229
|
-
"sent",
|
|
22230
|
-
"signed",
|
|
22231
|
-
"active",
|
|
22232
|
-
"expired",
|
|
22233
|
-
"terminated"
|
|
22234
|
-
],
|
|
22235
|
-
"constraints": {
|
|
22236
|
-
"defaultValue": "draft"
|
|
22237
|
-
}
|
|
22266
|
+
"slug": "synapFixedFee",
|
|
22267
|
+
"label": "Synap fixed fee",
|
|
22268
|
+
"valueType": "number",
|
|
22269
|
+
"inputType": "number"
|
|
22238
22270
|
},
|
|
22239
22271
|
{
|
|
22240
|
-
"slug": "
|
|
22241
|
-
"label": "
|
|
22242
|
-
"valueType": "
|
|
22243
|
-
"
|
|
22244
|
-
"inputType": "entity_select"
|
|
22272
|
+
"slug": "expectedClientGain",
|
|
22273
|
+
"label": "Expected client gain",
|
|
22274
|
+
"valueType": "number",
|
|
22275
|
+
"inputType": "number"
|
|
22245
22276
|
},
|
|
22246
22277
|
{
|
|
22247
|
-
"slug": "
|
|
22248
|
-
"label": "
|
|
22278
|
+
"slug": "synapFeeAmount",
|
|
22279
|
+
"label": "Synap fee amount",
|
|
22249
22280
|
"valueType": "number",
|
|
22250
22281
|
"inputType": "number"
|
|
22251
22282
|
},
|
|
22252
22283
|
{
|
|
22253
|
-
"slug": "
|
|
22254
|
-
"label": "
|
|
22255
|
-
"valueType": "
|
|
22256
|
-
"inputType": "
|
|
22284
|
+
"slug": "sourcedByUserId",
|
|
22285
|
+
"label": "Sourced by user ID",
|
|
22286
|
+
"valueType": "string",
|
|
22287
|
+
"inputType": "text"
|
|
22257
22288
|
},
|
|
22258
22289
|
{
|
|
22259
|
-
"slug": "
|
|
22260
|
-
"label": "
|
|
22290
|
+
"slug": "commissionStatus",
|
|
22291
|
+
"label": "Commission status",
|
|
22292
|
+
"valueType": "string",
|
|
22293
|
+
"inputType": "select",
|
|
22294
|
+
"enumValues": [
|
|
22295
|
+
"estimated",
|
|
22296
|
+
"earned",
|
|
22297
|
+
"paid",
|
|
22298
|
+
"requires_review",
|
|
22299
|
+
"void"
|
|
22300
|
+
]
|
|
22301
|
+
},
|
|
22302
|
+
{
|
|
22303
|
+
"slug": "introducedAt",
|
|
22304
|
+
"label": "Introduced at",
|
|
22261
22305
|
"valueType": "date",
|
|
22262
22306
|
"inputType": "date"
|
|
22263
22307
|
},
|
|
22264
22308
|
{
|
|
22265
|
-
"slug": "
|
|
22266
|
-
"label": "
|
|
22309
|
+
"slug": "outcome",
|
|
22310
|
+
"label": "Outcome",
|
|
22267
22311
|
"valueType": "string",
|
|
22268
|
-
"inputType": "
|
|
22312
|
+
"inputType": "textarea"
|
|
22269
22313
|
},
|
|
22270
22314
|
{
|
|
22271
|
-
"slug": "
|
|
22272
|
-
"label": "
|
|
22315
|
+
"slug": "deadReason",
|
|
22316
|
+
"label": "Dead reason",
|
|
22273
22317
|
"valueType": "string",
|
|
22274
22318
|
"inputType": "textarea"
|
|
22275
22319
|
}
|
|
22276
22320
|
]
|
|
22277
22321
|
},
|
|
22278
22322
|
{
|
|
22279
|
-
"slug": "
|
|
22280
|
-
"displayName": "
|
|
22281
|
-
"icon": "
|
|
22282
|
-
"color": "
|
|
22283
|
-
"description": "A
|
|
22284
|
-
"
|
|
22285
|
-
|
|
22286
|
-
|
|
22287
|
-
|
|
22288
|
-
|
|
22323
|
+
"slug": "solution-provider",
|
|
22324
|
+
"displayName": "Solution Provider",
|
|
22325
|
+
"icon": "handshake",
|
|
22326
|
+
"color": "teal",
|
|
22327
|
+
"description": "A company or person that provides a capability The Arch can broker a client need against.",
|
|
22328
|
+
"scope": "shared",
|
|
22329
|
+
"profileKind": "role",
|
|
22330
|
+
"applicableKinds": [
|
|
22331
|
+
"company",
|
|
22332
|
+
"person"
|
|
22333
|
+
],
|
|
22334
|
+
"properties": [
|
|
22335
|
+
{
|
|
22336
|
+
"slug": "status",
|
|
22337
|
+
"label": "Status",
|
|
22338
|
+
"valueType": "string",
|
|
22339
|
+
"inputType": "select",
|
|
22340
|
+
"enumValues": [
|
|
22341
|
+
"prospect",
|
|
22342
|
+
"active",
|
|
22343
|
+
"paused",
|
|
22344
|
+
"churned"
|
|
22345
|
+
]
|
|
22346
|
+
},
|
|
22347
|
+
{
|
|
22348
|
+
"slug": "domains",
|
|
22349
|
+
"label": "Domains",
|
|
22350
|
+
"valueType": "array",
|
|
22351
|
+
"inputType": "text",
|
|
22352
|
+
"placeholder": "The capability areas this provider covers."
|
|
22353
|
+
},
|
|
22354
|
+
{
|
|
22355
|
+
"slug": "capacity",
|
|
22356
|
+
"label": "Capacity",
|
|
22357
|
+
"valueType": "string",
|
|
22358
|
+
"inputType": "text"
|
|
22359
|
+
},
|
|
22360
|
+
{
|
|
22361
|
+
"slug": "pricingNotes",
|
|
22362
|
+
"label": "Pricing Notes",
|
|
22363
|
+
"valueType": "string",
|
|
22364
|
+
"inputType": "textarea"
|
|
22365
|
+
},
|
|
22366
|
+
{
|
|
22367
|
+
"slug": "geography",
|
|
22368
|
+
"label": "Geography",
|
|
22369
|
+
"valueType": "string",
|
|
22370
|
+
"inputType": "text"
|
|
22371
|
+
},
|
|
22372
|
+
{
|
|
22373
|
+
"slug": "notes",
|
|
22374
|
+
"label": "Notes",
|
|
22375
|
+
"valueType": "string",
|
|
22376
|
+
"inputType": "textarea"
|
|
22377
|
+
}
|
|
22378
|
+
]
|
|
22379
|
+
}
|
|
22380
|
+
],
|
|
22381
|
+
"entityLinks": [
|
|
22382
|
+
{
|
|
22383
|
+
"sourceProfileSlug": "need",
|
|
22384
|
+
"targetProfileSlug": "company",
|
|
22385
|
+
"type": "needed_by",
|
|
22386
|
+
"label": "Needed by"
|
|
22387
|
+
},
|
|
22388
|
+
{
|
|
22389
|
+
"sourceProfileSlug": "intro",
|
|
22390
|
+
"targetProfileSlug": "need",
|
|
22391
|
+
"type": "resolves",
|
|
22392
|
+
"label": "Resolves"
|
|
22393
|
+
},
|
|
22394
|
+
{
|
|
22395
|
+
"sourceProfileSlug": "intro",
|
|
22396
|
+
"targetProfileSlug": "company",
|
|
22397
|
+
"type": "introduced_requester",
|
|
22398
|
+
"label": "Requester"
|
|
22399
|
+
},
|
|
22400
|
+
{
|
|
22401
|
+
"sourceProfileSlug": "intro",
|
|
22402
|
+
"targetProfileSlug": "company",
|
|
22403
|
+
"type": "introduced_provider",
|
|
22404
|
+
"label": "Provider"
|
|
22405
|
+
},
|
|
22406
|
+
{
|
|
22407
|
+
"sourceProfileSlug": "intro",
|
|
22408
|
+
"targetProfileSlug": "deal",
|
|
22409
|
+
"type": "billed_as",
|
|
22410
|
+
"label": "Billed as"
|
|
22411
|
+
}
|
|
22412
|
+
],
|
|
22413
|
+
"views": [
|
|
22414
|
+
{
|
|
22415
|
+
"name": "Needs",
|
|
22416
|
+
"slug": "needs",
|
|
22417
|
+
"type": "kanban",
|
|
22418
|
+
"scopeProfileSlug": "need",
|
|
22419
|
+
"description": "Client needs on a board by status — open demand waiting for a match.",
|
|
22420
|
+
"config": {
|
|
22421
|
+
"groupByField": "needStatus"
|
|
22422
|
+
}
|
|
22423
|
+
},
|
|
22424
|
+
{
|
|
22425
|
+
"name": "Intros",
|
|
22426
|
+
"slug": "intros",
|
|
22427
|
+
"type": "kanban",
|
|
22428
|
+
"scopeProfileSlug": "intro",
|
|
22429
|
+
"description": "Brokered intros on a board by stage — from identified match to signed.",
|
|
22430
|
+
"config": {
|
|
22431
|
+
"groupByField": "introStage"
|
|
22432
|
+
}
|
|
22433
|
+
},
|
|
22434
|
+
{
|
|
22435
|
+
"name": "Providers",
|
|
22436
|
+
"slug": "providers",
|
|
22437
|
+
"type": "table",
|
|
22438
|
+
"scopeProfileSlug": "solution-provider",
|
|
22439
|
+
"description": "The solution-provider roster — companies wearing the provider role, by status.",
|
|
22440
|
+
"config": {
|
|
22441
|
+
"columns": [
|
|
22442
|
+
"title",
|
|
22443
|
+
"status",
|
|
22444
|
+
"domains",
|
|
22445
|
+
"geography",
|
|
22446
|
+
"capacity"
|
|
22447
|
+
]
|
|
22448
|
+
}
|
|
22449
|
+
}
|
|
22450
|
+
],
|
|
22451
|
+
"automations": [
|
|
22452
|
+
{
|
|
22453
|
+
"key": "networking-intro-matcher",
|
|
22454
|
+
"name": "Intro Matcher",
|
|
22455
|
+
"description": "Once a day, match each shareable open client need against the solution-provider roster, propose an intro for the best fit, and post a match brief to The Arch's internal team channel — never to a client's own channel.",
|
|
22456
|
+
"triggerType": "cron",
|
|
22457
|
+
"triggerConfig": {
|
|
22458
|
+
"expression": "0 9 * * *"
|
|
22459
|
+
},
|
|
22460
|
+
"status": "active",
|
|
22461
|
+
"metadata": {
|
|
22462
|
+
"templateKey": "networking-intro-matcher"
|
|
22463
|
+
},
|
|
22464
|
+
"flow": {
|
|
22465
|
+
"nodes": [
|
|
22466
|
+
{
|
|
22467
|
+
"id": "trigger",
|
|
22468
|
+
"type": "trigger",
|
|
22469
|
+
"position": {
|
|
22470
|
+
"x": 0,
|
|
22471
|
+
"y": 0
|
|
22472
|
+
},
|
|
22473
|
+
"data": {
|
|
22474
|
+
"label": "Daily at 09:00",
|
|
22475
|
+
"triggerType": "cron",
|
|
22476
|
+
"config": {
|
|
22477
|
+
"expression": "0 9 * * *"
|
|
22478
|
+
}
|
|
22479
|
+
}
|
|
22480
|
+
},
|
|
22481
|
+
{
|
|
22482
|
+
"id": "list-needs",
|
|
22483
|
+
"type": "capability",
|
|
22484
|
+
"position": {
|
|
22485
|
+
"x": 0,
|
|
22486
|
+
"y": 120
|
|
22487
|
+
},
|
|
22488
|
+
"data": {
|
|
22489
|
+
"label": "List shareable open needs (FIREWALL filter)",
|
|
22490
|
+
"verbId": "entity.query",
|
|
22491
|
+
"inputMapping": {
|
|
22492
|
+
"profileSlug": "need",
|
|
22493
|
+
"filter": {
|
|
22494
|
+
"needStatus": "open",
|
|
22495
|
+
"confidentiality": "shareable"
|
|
22496
|
+
},
|
|
22497
|
+
"limit": "100"
|
|
22498
|
+
}
|
|
22499
|
+
}
|
|
22500
|
+
},
|
|
22501
|
+
{
|
|
22502
|
+
"id": "list-providers",
|
|
22503
|
+
"type": "capability",
|
|
22504
|
+
"position": {
|
|
22505
|
+
"x": 0,
|
|
22506
|
+
"y": 240
|
|
22507
|
+
},
|
|
22508
|
+
"data": {
|
|
22509
|
+
"label": "List the solution-provider roster",
|
|
22510
|
+
"verbId": "entity.query",
|
|
22511
|
+
"inputMapping": {
|
|
22512
|
+
"profileSlug": "solution-provider",
|
|
22513
|
+
"limit": "100"
|
|
22514
|
+
}
|
|
22515
|
+
}
|
|
22516
|
+
},
|
|
22517
|
+
{
|
|
22518
|
+
"id": "needs-loop",
|
|
22519
|
+
"type": "loop",
|
|
22520
|
+
"position": {
|
|
22521
|
+
"x": 0,
|
|
22522
|
+
"y": 360
|
|
22523
|
+
},
|
|
22524
|
+
"data": {
|
|
22525
|
+
"label": "For each shareable open need",
|
|
22526
|
+
"iteratorExpression": "steps.list-needs.output.entities",
|
|
22527
|
+
"itemVariable": "need"
|
|
22528
|
+
}
|
|
22529
|
+
},
|
|
22530
|
+
{
|
|
22531
|
+
"id": "match",
|
|
22532
|
+
"type": "capability",
|
|
22533
|
+
"position": {
|
|
22534
|
+
"x": 0,
|
|
22535
|
+
"y": 480
|
|
22536
|
+
},
|
|
22537
|
+
"data": {
|
|
22538
|
+
"label": "Match this need to the roster → JSON",
|
|
22539
|
+
"verbId": "ai.generate",
|
|
22540
|
+
"inputMapping": {
|
|
22541
|
+
"json": "true",
|
|
22542
|
+
"maxTokens": "800",
|
|
22543
|
+
"system": "You are The Arch's business-development matchmaker. You connect a CLIENT'S NEED to the single best SOLUTION PROVIDER from a roster.\nFIREWALL (never break): your output is a brief for The Arch's INTERNAL team channel ONLY. NEVER draft anything to be sent into a client's own channel, and NEVER reveal one client's need to another client. Do not name the requesting client in any text intended for the provider.",
|
|
22544
|
+
"prompt": "The client need: title: {{loop.item.title}} domain: {{loop.item.properties.domain}} urgency: {{loop.item.properties.urgency}} budget: {{loop.item.properties.budgetRange}} detail: {{loop.item.properties.notes}}\nThe solution-provider roster (JSON — each has an id, title, and properties incl. domains/geography/capacity): {{steps.list-providers.output.entities}}\nPick the SINGLE best provider for this need, or none if nothing fits well. Respond with STRICT JSON and NOTHING else: {\n \"hasMatch\": \"true\" or \"false\" (a STRING),\n \"providerEntityId\": \"<the matched provider's entity id, or empty string>\",\n \"providerName\": \"<the matched provider's name, or empty string>\",\n \"rationale\": \"<one or two sentences on why this provider fits, for the internal team>\",\n \"brief\": \"<a short internal match brief for the team, markdown>\"\n} Set hasMatch to \"false\" when no provider is a genuine fit."
|
|
22545
|
+
}
|
|
22546
|
+
}
|
|
22547
|
+
},
|
|
22548
|
+
{
|
|
22549
|
+
"id": "match-gate",
|
|
22550
|
+
"type": "condition",
|
|
22551
|
+
"position": {
|
|
22552
|
+
"x": 0,
|
|
22553
|
+
"y": 600
|
|
22554
|
+
},
|
|
22555
|
+
"data": {
|
|
22556
|
+
"label": "Only continue when there is a real match",
|
|
22557
|
+
"expression": "steps.match.output.hasMatch === true"
|
|
22558
|
+
}
|
|
22559
|
+
},
|
|
22560
|
+
{
|
|
22561
|
+
"id": "create-intro",
|
|
22562
|
+
"type": "output",
|
|
22563
|
+
"position": {
|
|
22564
|
+
"x": 0,
|
|
22565
|
+
"y": 720
|
|
22566
|
+
},
|
|
22567
|
+
"data": {
|
|
22568
|
+
"label": "Propose the intro",
|
|
22569
|
+
"outputType": "entity_create",
|
|
22570
|
+
"config": {
|
|
22571
|
+
"profileSlug": "intro",
|
|
22572
|
+
"title": "Intro — {{loop.item.title}} → {{steps.match.output.providerName}}",
|
|
22573
|
+
"properties": {
|
|
22574
|
+
"introStage": "identified",
|
|
22575
|
+
"needId": "{{loop.item.id}}",
|
|
22576
|
+
"requesterCompanyId": "{{loop.item.properties.requesterCompanyId}}",
|
|
22577
|
+
"providerCompanyId": "{{steps.match.output.providerEntityId}}"
|
|
22578
|
+
}
|
|
22579
|
+
}
|
|
22580
|
+
}
|
|
22581
|
+
},
|
|
22582
|
+
{
|
|
22583
|
+
"id": "resolve-team",
|
|
22584
|
+
"type": "capability",
|
|
22585
|
+
"position": {
|
|
22586
|
+
"x": 0,
|
|
22587
|
+
"y": 840
|
|
22588
|
+
},
|
|
22589
|
+
"data": {
|
|
22590
|
+
"label": "Resolve The Arch's internal team channel for the requester (FIREWALL)",
|
|
22591
|
+
"_note": "Resolves from the REQUESTER COMPANY, not the intro entity. channel.resolve is a read-only FIND — it never creates. A just-proposed `intro` has no channel bound to it, so resolving from {{steps.create-intro.output.entityId}} returned channelId: null and the brief silently never posted. The requester company is a stable entity that already owns a `team`-purpose channel (bound at onboarding), so we resolve from it instead. Firewall-safe: this is The Arch's INTERNAL team thread for client A (the need's owner), NOT client B's (the provider's) channel and NOT any client-comms channel.",
|
|
22592
|
+
"verbId": "channel.resolve",
|
|
22593
|
+
"inputMapping": {
|
|
22594
|
+
"contextObjectType": "entity",
|
|
22595
|
+
"contextObjectId": "{{loop.item.properties.requesterCompanyId}}",
|
|
22596
|
+
"branchPurpose": "team"
|
|
22597
|
+
}
|
|
22598
|
+
}
|
|
22599
|
+
},
|
|
22600
|
+
{
|
|
22601
|
+
"id": "post-brief",
|
|
22602
|
+
"type": "output",
|
|
22603
|
+
"position": {
|
|
22604
|
+
"x": 0,
|
|
22605
|
+
"y": 960
|
|
22606
|
+
},
|
|
22607
|
+
"data": {
|
|
22608
|
+
"label": "Post the match brief to the INTERNAL team channel (FIREWALL)",
|
|
22609
|
+
"outputType": "channel_message",
|
|
22610
|
+
"config": {
|
|
22611
|
+
"channelId": "{{steps.resolve-team.output.channelId}}",
|
|
22612
|
+
"content": "**Match found — {{loop.item.title}} → {{steps.match.output.providerName}}**\n{{steps.match.output.rationale}}\n{{steps.match.output.brief}}",
|
|
22613
|
+
"metadata": {
|
|
22614
|
+
"automationMessage": true,
|
|
22615
|
+
"kind": "intro-match"
|
|
22616
|
+
}
|
|
22617
|
+
}
|
|
22618
|
+
}
|
|
22619
|
+
}
|
|
22620
|
+
],
|
|
22621
|
+
"edges": [
|
|
22622
|
+
{
|
|
22623
|
+
"id": "e-trigger-needs",
|
|
22624
|
+
"source": "trigger",
|
|
22625
|
+
"target": "list-needs"
|
|
22626
|
+
},
|
|
22627
|
+
{
|
|
22628
|
+
"id": "e-needs-providers",
|
|
22629
|
+
"source": "list-needs",
|
|
22630
|
+
"target": "list-providers"
|
|
22631
|
+
},
|
|
22632
|
+
{
|
|
22633
|
+
"id": "e-providers-loop",
|
|
22634
|
+
"source": "list-providers",
|
|
22635
|
+
"target": "needs-loop"
|
|
22636
|
+
},
|
|
22637
|
+
{
|
|
22638
|
+
"id": "e-loop-match",
|
|
22639
|
+
"source": "needs-loop",
|
|
22640
|
+
"target": "match"
|
|
22641
|
+
},
|
|
22642
|
+
{
|
|
22643
|
+
"id": "e-match-gate",
|
|
22644
|
+
"source": "match",
|
|
22645
|
+
"target": "match-gate"
|
|
22646
|
+
},
|
|
22647
|
+
{
|
|
22648
|
+
"id": "e-gate-intro",
|
|
22649
|
+
"source": "match-gate",
|
|
22650
|
+
"target": "create-intro"
|
|
22651
|
+
},
|
|
22652
|
+
{
|
|
22653
|
+
"id": "e-intro-resolve",
|
|
22654
|
+
"source": "create-intro",
|
|
22655
|
+
"target": "resolve-team"
|
|
22656
|
+
},
|
|
22657
|
+
{
|
|
22658
|
+
"id": "e-resolve-post",
|
|
22659
|
+
"source": "resolve-team",
|
|
22660
|
+
"target": "post-brief"
|
|
22661
|
+
}
|
|
22662
|
+
]
|
|
22663
|
+
}
|
|
22664
|
+
}
|
|
22665
|
+
],
|
|
22666
|
+
"app": {
|
|
22667
|
+
"kind": "stored",
|
|
22668
|
+
"cellKey": "entity-detail"
|
|
22669
|
+
},
|
|
22670
|
+
"layout": {
|
|
22671
|
+
"defaultView": "Needs",
|
|
22672
|
+
"defaultApp": null,
|
|
22673
|
+
"pinnedApps": [
|
|
22674
|
+
"dashboard",
|
|
22675
|
+
"data"
|
|
22676
|
+
],
|
|
22677
|
+
"sidebarItems": [
|
|
22678
|
+
{
|
|
22679
|
+
"kind": "view",
|
|
22680
|
+
"viewName": "Needs",
|
|
22681
|
+
"label": "Needs",
|
|
22682
|
+
"icon": "target"
|
|
22683
|
+
},
|
|
22684
|
+
{
|
|
22685
|
+
"kind": "view",
|
|
22686
|
+
"viewName": "Intros",
|
|
22687
|
+
"label": "Intros",
|
|
22688
|
+
"icon": "waypoints"
|
|
22689
|
+
},
|
|
22690
|
+
{
|
|
22691
|
+
"kind": "view",
|
|
22692
|
+
"viewName": "Providers",
|
|
22693
|
+
"label": "Providers",
|
|
22694
|
+
"icon": "handshake"
|
|
22695
|
+
}
|
|
22696
|
+
]
|
|
22697
|
+
},
|
|
22698
|
+
"bento": {
|
|
22699
|
+
"viewName": "Needs",
|
|
22700
|
+
"blocks": [
|
|
22701
|
+
{
|
|
22702
|
+
"kind": "view",
|
|
22703
|
+
"viewName": "Needs",
|
|
22704
|
+
"pos": {
|
|
22705
|
+
"x": 0,
|
|
22706
|
+
"y": 0,
|
|
22707
|
+
"w": 6,
|
|
22708
|
+
"h": 5
|
|
22709
|
+
}
|
|
22710
|
+
},
|
|
22711
|
+
{
|
|
22712
|
+
"kind": "view",
|
|
22713
|
+
"viewName": "Intros",
|
|
22714
|
+
"pos": {
|
|
22715
|
+
"x": 6,
|
|
22716
|
+
"y": 0,
|
|
22717
|
+
"w": 6,
|
|
22718
|
+
"h": 5
|
|
22719
|
+
}
|
|
22720
|
+
}
|
|
22721
|
+
]
|
|
22722
|
+
},
|
|
22723
|
+
"onboarding": {
|
|
22724
|
+
"goal": "Capture the two sides of the brokerage — the live client NEEDS and the SOLUTION-PROVIDER roster — so the matcher has real demand and real supply to connect, and every intro traces back to a stated need and a named provider.\n",
|
|
22725
|
+
"framing": "THE BD MIDDLEMAN: Act as a sharp business-development broker who lives\nbetween clients. One client has a need; another has the capability to meet\nit; your value is the introduction and the fee on the match. Push for the\nconcrete: whose need is this, how confidential is it, and which real provider\ncan serve it. Tag the provider role onto the REAL company you already know —\nnever a second entity for the same firm.\n",
|
|
22726
|
+
"expertise": {
|
|
22727
|
+
"starters": [
|
|
22728
|
+
"A need has an owner and a confidentiality. Default every need to confidential — it only enters the match roster once a human marks it shareable. Capture whose need it is (the requester company) and, where you can, the client's own words as the evidence quote.\n",
|
|
22729
|
+
"The provider is a HAT, not a new entity. Attach the solution-provider role to the real company/person you already track (match on domain / name first) — a market of providers is a graph of roles on known companies, not a parallel directory.\n"
|
|
22730
|
+
],
|
|
22731
|
+
"blindSpots": [
|
|
22732
|
+
"A need with no provider and no status is a wish, not a pipeline. Force the status (open / matching / intro-made) and, once a match exists, broker the intro rather than letting the need sit open.\n",
|
|
22733
|
+
"The firewall is the product. Never let one client's confidential need leak to another client. If a need is sensitive, keep it confidential — an intro is proposed to the internal team first, never straight to a client's channel.\n"
|
|
22734
|
+
],
|
|
22735
|
+
"bar": "A workspace with real client needs (each with a requester and a confidentiality), a roster of solution providers tagged onto real companies, and the first intros brokered between them — so a glance shows what demand is open and which providers can serve it.\n"
|
|
22736
|
+
},
|
|
22737
|
+
"collect": [
|
|
22738
|
+
{
|
|
22739
|
+
"profileSlug": "need",
|
|
22740
|
+
"what": "The live client needs you could broker a provider against.",
|
|
22741
|
+
"cardinality": "several",
|
|
22742
|
+
"keyFields": [
|
|
22743
|
+
"needStatus",
|
|
22744
|
+
"domain",
|
|
22745
|
+
"requesterCompanyId",
|
|
22746
|
+
"confidentiality"
|
|
22747
|
+
]
|
|
22748
|
+
},
|
|
22749
|
+
{
|
|
22750
|
+
"profileSlug": "solution-provider",
|
|
22751
|
+
"what": "The solution providers you can connect clients to, tagged onto the real company.",
|
|
22752
|
+
"cardinality": "several",
|
|
22753
|
+
"keyFields": [
|
|
22754
|
+
"status",
|
|
22755
|
+
"domains",
|
|
22756
|
+
"geography"
|
|
22757
|
+
]
|
|
22758
|
+
}
|
|
22759
|
+
],
|
|
22760
|
+
"openingQuestions": [
|
|
22761
|
+
"Which client needs are open right now, and whose needs are they?",
|
|
22762
|
+
"Which of those needs are shareable, and which must stay confidential?",
|
|
22763
|
+
"Which solution providers can you connect clients to, and what do they cover?"
|
|
22764
|
+
],
|
|
22765
|
+
"doneWhen": "A few client needs captured with a requester and a confidentiality, a handful of solution providers tagged onto real companies, and at least one intro brokered between them."
|
|
22766
|
+
}
|
|
22767
|
+
},
|
|
22768
|
+
"operations": {
|
|
22769
|
+
"meta": {
|
|
22770
|
+
"slug": "operations",
|
|
22771
|
+
"domain": "company",
|
|
22772
|
+
"name": "Operations",
|
|
22773
|
+
"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.",
|
|
22774
|
+
"icon": "briefcase",
|
|
22775
|
+
"color": "#0F766E",
|
|
22776
|
+
"tags": [
|
|
22777
|
+
"operations",
|
|
22778
|
+
"delivery",
|
|
22779
|
+
"clients",
|
|
22780
|
+
"engagements"
|
|
22781
|
+
],
|
|
22782
|
+
"isPublic": true
|
|
22783
|
+
},
|
|
22784
|
+
"workspace": {
|
|
22785
|
+
"name": "Operations",
|
|
22786
|
+
"description": "The client-delivery layer — active engagements, their deliverables, and the contracts that govern them.",
|
|
22787
|
+
"subtype": "operations",
|
|
22788
|
+
"visibility": "pod_visible",
|
|
22789
|
+
"capabilities": [
|
|
22790
|
+
"operations.engagements",
|
|
22791
|
+
"operations.deliverables",
|
|
22792
|
+
"operations.contracts"
|
|
22793
|
+
],
|
|
22794
|
+
"sourceRoles": {
|
|
22795
|
+
"crm": "consumer",
|
|
22796
|
+
"operations": "provider"
|
|
22797
|
+
}
|
|
22798
|
+
},
|
|
22799
|
+
"dependencies": [
|
|
22800
|
+
{
|
|
22801
|
+
"slug": "foundation",
|
|
22802
|
+
"kind": "workspace",
|
|
22803
|
+
"relation": "require",
|
|
22804
|
+
"reason": "Provides the pod-wide `client` role the daily client-briefing automation queries."
|
|
22805
|
+
}
|
|
22806
|
+
],
|
|
22807
|
+
"profiles": [
|
|
22808
|
+
{
|
|
22809
|
+
"slug": "engagement",
|
|
22810
|
+
"displayName": "Engagement",
|
|
22811
|
+
"icon": "briefcase",
|
|
22812
|
+
"color": "#0F766E",
|
|
22813
|
+
"description": "A unit of client work — a project or retainer delivered for a company, with scope, dates, and value.",
|
|
22814
|
+
"properties": [
|
|
22815
|
+
{
|
|
22816
|
+
"slug": "engagement-status",
|
|
22817
|
+
"label": "Status",
|
|
22818
|
+
"valueType": "string",
|
|
22819
|
+
"inputType": "select",
|
|
22820
|
+
"enumValues": [
|
|
22821
|
+
"proposed",
|
|
22822
|
+
"active",
|
|
22823
|
+
"on-hold",
|
|
22824
|
+
"completed",
|
|
22825
|
+
"cancelled"
|
|
22826
|
+
],
|
|
22827
|
+
"constraints": {
|
|
22828
|
+
"defaultValue": "proposed"
|
|
22829
|
+
}
|
|
22830
|
+
},
|
|
22831
|
+
{
|
|
22832
|
+
"slug": "engagement-client",
|
|
22833
|
+
"label": "Client",
|
|
22834
|
+
"valueType": "entity_id",
|
|
22835
|
+
"targetProfileSlug": "company",
|
|
22836
|
+
"inputType": "entity_select"
|
|
22837
|
+
},
|
|
22838
|
+
{
|
|
22839
|
+
"slug": "engagement-start",
|
|
22840
|
+
"label": "Start Date",
|
|
22841
|
+
"valueType": "date",
|
|
22842
|
+
"inputType": "date"
|
|
22843
|
+
},
|
|
22844
|
+
{
|
|
22845
|
+
"slug": "engagement-end",
|
|
22846
|
+
"label": "End Date",
|
|
22847
|
+
"valueType": "date",
|
|
22848
|
+
"inputType": "date"
|
|
22849
|
+
},
|
|
22850
|
+
{
|
|
22851
|
+
"slug": "engagement-value",
|
|
22852
|
+
"label": "Value",
|
|
22853
|
+
"valueType": "number",
|
|
22854
|
+
"inputType": "number"
|
|
22855
|
+
},
|
|
22856
|
+
{
|
|
22857
|
+
"slug": "engagement-scope",
|
|
22858
|
+
"label": "Scope",
|
|
22859
|
+
"valueType": "string",
|
|
22860
|
+
"inputType": "textarea"
|
|
22861
|
+
},
|
|
22862
|
+
{
|
|
22863
|
+
"slug": "engagement-owner",
|
|
22864
|
+
"label": "Owner",
|
|
22865
|
+
"valueType": "string",
|
|
22866
|
+
"inputType": "text"
|
|
22867
|
+
},
|
|
22868
|
+
{
|
|
22869
|
+
"slug": "engagement-notes",
|
|
22870
|
+
"label": "Notes",
|
|
22871
|
+
"valueType": "string",
|
|
22872
|
+
"inputType": "textarea"
|
|
22873
|
+
}
|
|
22874
|
+
]
|
|
22875
|
+
},
|
|
22876
|
+
{
|
|
22877
|
+
"slug": "deliverable",
|
|
22878
|
+
"displayName": "Deliverable",
|
|
22879
|
+
"icon": "package-check",
|
|
22880
|
+
"color": "#0EA5E9",
|
|
22881
|
+
"description": "A concrete output owed inside an engagement — with a due date, an owner, and a status.",
|
|
22882
|
+
"properties": [
|
|
22883
|
+
{
|
|
22884
|
+
"slug": "deliverable-status",
|
|
22885
|
+
"label": "Status",
|
|
22886
|
+
"valueType": "string",
|
|
22887
|
+
"inputType": "select",
|
|
22888
|
+
"enumValues": [
|
|
22889
|
+
"not-started",
|
|
22890
|
+
"in-progress",
|
|
22891
|
+
"in-review",
|
|
22892
|
+
"delivered",
|
|
22893
|
+
"accepted"
|
|
22894
|
+
],
|
|
22895
|
+
"constraints": {
|
|
22896
|
+
"defaultValue": "not-started"
|
|
22897
|
+
}
|
|
22898
|
+
},
|
|
22899
|
+
{
|
|
22900
|
+
"slug": "deliverable-engagement",
|
|
22901
|
+
"label": "Engagement",
|
|
22902
|
+
"valueType": "entity_id",
|
|
22903
|
+
"targetProfileSlug": "engagement",
|
|
22904
|
+
"inputType": "entity_select"
|
|
22905
|
+
},
|
|
22906
|
+
{
|
|
22907
|
+
"slug": "due-date",
|
|
22908
|
+
"label": "Due Date",
|
|
22909
|
+
"valueType": "date",
|
|
22910
|
+
"inputType": "date"
|
|
22911
|
+
},
|
|
22912
|
+
{
|
|
22913
|
+
"slug": "delivered-date",
|
|
22914
|
+
"label": "Delivered Date",
|
|
22915
|
+
"valueType": "date",
|
|
22916
|
+
"inputType": "date"
|
|
22917
|
+
},
|
|
22918
|
+
{
|
|
22919
|
+
"slug": "deliverable-owner",
|
|
22920
|
+
"label": "Owner",
|
|
22921
|
+
"valueType": "string",
|
|
22922
|
+
"inputType": "text"
|
|
22923
|
+
},
|
|
22924
|
+
{
|
|
22925
|
+
"slug": "deliverable-notes",
|
|
22926
|
+
"label": "Notes",
|
|
22927
|
+
"valueType": "string",
|
|
22928
|
+
"inputType": "textarea"
|
|
22929
|
+
}
|
|
22930
|
+
]
|
|
22931
|
+
},
|
|
22932
|
+
{
|
|
22933
|
+
"slug": "contract",
|
|
22934
|
+
"displayName": "Contract",
|
|
22935
|
+
"icon": "file-signature",
|
|
22936
|
+
"color": "#8B5CF6",
|
|
22937
|
+
"description": "The agreement that governs an engagement — its status, value, term, and signed document.",
|
|
22938
|
+
"properties": [
|
|
22939
|
+
{
|
|
22940
|
+
"slug": "contract-status",
|
|
22941
|
+
"label": "Status",
|
|
22942
|
+
"valueType": "string",
|
|
22943
|
+
"inputType": "select",
|
|
22944
|
+
"enumValues": [
|
|
22945
|
+
"draft",
|
|
22946
|
+
"sent",
|
|
22947
|
+
"signed",
|
|
22948
|
+
"active",
|
|
22949
|
+
"expired",
|
|
22950
|
+
"terminated"
|
|
22951
|
+
],
|
|
22952
|
+
"constraints": {
|
|
22953
|
+
"defaultValue": "draft"
|
|
22954
|
+
}
|
|
22955
|
+
},
|
|
22956
|
+
{
|
|
22957
|
+
"slug": "contract-engagement",
|
|
22958
|
+
"label": "Engagement",
|
|
22959
|
+
"valueType": "entity_id",
|
|
22960
|
+
"targetProfileSlug": "engagement",
|
|
22961
|
+
"inputType": "entity_select"
|
|
22962
|
+
},
|
|
22963
|
+
{
|
|
22964
|
+
"slug": "contract-value",
|
|
22965
|
+
"label": "Value",
|
|
22966
|
+
"valueType": "number",
|
|
22967
|
+
"inputType": "number"
|
|
22968
|
+
},
|
|
22969
|
+
{
|
|
22970
|
+
"slug": "start-date",
|
|
22971
|
+
"label": "Start Date",
|
|
22972
|
+
"valueType": "date",
|
|
22973
|
+
"inputType": "date"
|
|
22974
|
+
},
|
|
22975
|
+
{
|
|
22976
|
+
"slug": "end-date",
|
|
22977
|
+
"label": "End Date",
|
|
22978
|
+
"valueType": "date",
|
|
22979
|
+
"inputType": "date"
|
|
22980
|
+
},
|
|
22981
|
+
{
|
|
22982
|
+
"slug": "contract-url",
|
|
22983
|
+
"label": "Document",
|
|
22984
|
+
"valueType": "string",
|
|
22985
|
+
"inputType": "url"
|
|
22986
|
+
},
|
|
22987
|
+
{
|
|
22988
|
+
"slug": "contract-notes",
|
|
22989
|
+
"label": "Notes",
|
|
22990
|
+
"valueType": "string",
|
|
22991
|
+
"inputType": "textarea"
|
|
22992
|
+
}
|
|
22993
|
+
]
|
|
22994
|
+
},
|
|
22995
|
+
{
|
|
22996
|
+
"slug": "client-briefing",
|
|
22997
|
+
"displayName": "Client Briefing",
|
|
22998
|
+
"icon": "newspaper",
|
|
22999
|
+
"color": "#F59E0B",
|
|
23000
|
+
"description": "A dated internal recap of one client's recent communications — what moved, what's at risk, what's next. For the team, never for the client.",
|
|
23001
|
+
"properties": [
|
|
23002
|
+
{
|
|
23003
|
+
"slug": "briefing-client",
|
|
23004
|
+
"label": "Client",
|
|
23005
|
+
"valueType": "entity_id",
|
|
22289
23006
|
"targetProfileSlug": "company",
|
|
22290
23007
|
"inputType": "entity_select"
|
|
22291
23008
|
},
|
|
@@ -22466,7 +23183,7 @@ const DATA = {
|
|
|
22466
23183
|
{
|
|
22467
23184
|
"key": "operations-daily-client-briefing",
|
|
22468
23185
|
"name": "Daily client briefing",
|
|
22469
|
-
"description": "
|
|
23186
|
+
"description": "Operations-native daily client briefing. Writes a durable, dated client-briefing ENTITY per client (queryable history, linked to the client) from their recent comms, and posts the recap to the client's internal TEAM channel (never the client-facing channel). Knowledge-building and entity-first — the delivery OS's structured memory of each client. For a lighter, portable message-only digest installable on any pod, use the client-comms-report capability.",
|
|
22470
23187
|
"triggerType": "cron",
|
|
22471
23188
|
"triggerConfig": {
|
|
22472
23189
|
"expression": "0 8 * * *"
|
|
@@ -26944,6 +27661,14 @@ const DATA = {
|
|
|
26944
27661
|
}
|
|
26945
27662
|
}
|
|
26946
27663
|
],
|
|
27664
|
+
"integrations": [
|
|
27665
|
+
{
|
|
27666
|
+
"templateKey": "client-comms-report"
|
|
27667
|
+
},
|
|
27668
|
+
{
|
|
27669
|
+
"templateKey": "arch-backend"
|
|
27670
|
+
}
|
|
27671
|
+
],
|
|
26947
27672
|
"onboarding": {
|
|
26948
27673
|
"goal": "Name the cross-workspace initiatives that span the operating system and its private flagships — the few big things in flight that touch more than one lens — so The Arch is a real command layer, not just an aggregate of apps.\n",
|
|
26949
27674
|
"framing": "THE FOUNDER'S COMMAND LAYER: Act from the seat above every lens. The whole\ncompany brain is installed — operating core plus the private grant, web3, and\ndev flagships. Your job is to surface the handful of initiatives that cut\nacross them and give each a stage, a lead, and a priority.\n",
|