@synap-core/workspace-templates 0.6.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 +247 -4
- package/dist/index.js +1762 -630
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/agent-fleet.yaml +16 -8
- package/src/catalog.test.ts +156 -0
- package/src/catalog.ts +285 -0
- package/src/communication.yaml +28 -1
- package/src/content-os.yaml +545 -0
- package/src/content-studio.yaml +0 -268
- package/src/crm.yaml +196 -0
- package/src/define.ts +268 -5
- package/src/enterprise-os.yaml +183 -0
- package/src/index.ts +27 -1
- package/src/marketing.yaml +14 -5
- package/src/templates.ts +1676 -656
- package/src/the-arch.yaml +182 -0
- package/src/types.ts +51 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
// src/types.ts
|
|
2
|
+
var PACKAGE_DEPENDENCY_KINDS = [
|
|
3
|
+
"workspace",
|
|
4
|
+
"capability",
|
|
5
|
+
/** @deprecated Retired by CP 0049 in favour of `workflow`. See note above. */
|
|
6
|
+
"automation"
|
|
7
|
+
];
|
|
8
|
+
|
|
1
9
|
// src/templates.ts
|
|
2
10
|
var DATA = {
|
|
3
11
|
"agent-fleet": {
|
|
@@ -2341,6 +2349,7 @@ var DATA = {
|
|
|
2341
2349
|
"viewName": "Agent Fleet Home",
|
|
2342
2350
|
"blocks": [
|
|
2343
2351
|
{
|
|
2352
|
+
"kind": "widget",
|
|
2344
2353
|
"widgetType": "welcome-header",
|
|
2345
2354
|
"pos": {
|
|
2346
2355
|
"x": 0,
|
|
@@ -2354,6 +2363,7 @@ var DATA = {
|
|
|
2354
2363
|
}
|
|
2355
2364
|
},
|
|
2356
2365
|
{
|
|
2366
|
+
"kind": "widget",
|
|
2357
2367
|
"widgetType": "entity-count",
|
|
2358
2368
|
"pos": {
|
|
2359
2369
|
"x": 0,
|
|
@@ -2368,6 +2378,7 @@ var DATA = {
|
|
|
2368
2378
|
}
|
|
2369
2379
|
},
|
|
2370
2380
|
{
|
|
2381
|
+
"kind": "widget",
|
|
2371
2382
|
"widgetType": "entity-count",
|
|
2372
2383
|
"pos": {
|
|
2373
2384
|
"x": 3,
|
|
@@ -2382,6 +2393,7 @@ var DATA = {
|
|
|
2382
2393
|
}
|
|
2383
2394
|
},
|
|
2384
2395
|
{
|
|
2396
|
+
"kind": "widget",
|
|
2385
2397
|
"widgetType": "entity-count",
|
|
2386
2398
|
"pos": {
|
|
2387
2399
|
"x": 6,
|
|
@@ -2396,6 +2408,7 @@ var DATA = {
|
|
|
2396
2408
|
}
|
|
2397
2409
|
},
|
|
2398
2410
|
{
|
|
2411
|
+
"kind": "widget",
|
|
2399
2412
|
"widgetType": "entity-count",
|
|
2400
2413
|
"pos": {
|
|
2401
2414
|
"x": 9,
|
|
@@ -2410,6 +2423,7 @@ var DATA = {
|
|
|
2410
2423
|
}
|
|
2411
2424
|
},
|
|
2412
2425
|
{
|
|
2426
|
+
"kind": "widget",
|
|
2413
2427
|
"widgetType": "entity-spotlight",
|
|
2414
2428
|
"pos": {
|
|
2415
2429
|
"x": 0,
|
|
@@ -2426,6 +2440,7 @@ var DATA = {
|
|
|
2426
2440
|
}
|
|
2427
2441
|
},
|
|
2428
2442
|
{
|
|
2443
|
+
"kind": "widget",
|
|
2429
2444
|
"widgetType": "entity-list",
|
|
2430
2445
|
"pos": {
|
|
2431
2446
|
"x": 4,
|
|
@@ -2441,6 +2456,7 @@ var DATA = {
|
|
|
2441
2456
|
}
|
|
2442
2457
|
},
|
|
2443
2458
|
{
|
|
2459
|
+
"kind": "widget",
|
|
2444
2460
|
"widgetType": "entity-list",
|
|
2445
2461
|
"pos": {
|
|
2446
2462
|
"x": 8,
|
|
@@ -6753,7 +6769,7 @@ var DATA = {
|
|
|
6753
6769
|
"narrative.positioning"
|
|
6754
6770
|
],
|
|
6755
6771
|
"sourceRoles": {
|
|
6756
|
-
"brand": "
|
|
6772
|
+
"brand": "consumer",
|
|
6757
6773
|
"narrative": "provider"
|
|
6758
6774
|
}
|
|
6759
6775
|
},
|
|
@@ -7834,762 +7850,1124 @@ var DATA = {
|
|
|
7834
7850
|
]
|
|
7835
7851
|
}
|
|
7836
7852
|
},
|
|
7837
|
-
"content-
|
|
7853
|
+
"content-os": {
|
|
7838
7854
|
"meta": {
|
|
7839
|
-
"slug": "content-
|
|
7840
|
-
"name": "Content
|
|
7841
|
-
"description": "
|
|
7842
|
-
"icon": "
|
|
7843
|
-
"color": "
|
|
7855
|
+
"slug": "content-os",
|
|
7856
|
+
"name": "Content OS",
|
|
7857
|
+
"description": "Your editorial operating system \u2014 pillars, posts, platforms, and newsletters. Turn raw thinking into a published content engine, all connected to your campaigns and brand voice.",
|
|
7858
|
+
"icon": "pen-tool",
|
|
7859
|
+
"color": "#6366F1",
|
|
7844
7860
|
"tags": [
|
|
7845
7861
|
"content",
|
|
7846
|
-
"
|
|
7847
|
-
"
|
|
7848
|
-
"
|
|
7862
|
+
"editorial",
|
|
7863
|
+
"publishing",
|
|
7864
|
+
"creator",
|
|
7865
|
+
"newsletter"
|
|
7849
7866
|
],
|
|
7850
7867
|
"isPublic": true
|
|
7851
7868
|
},
|
|
7869
|
+
"dependencies": [
|
|
7870
|
+
{
|
|
7871
|
+
"slug": "foundation",
|
|
7872
|
+
"kind": "workspace",
|
|
7873
|
+
"relation": "require",
|
|
7874
|
+
"reason": "Provides the pod-wide sponsor role vocabulary this workspace's posts/newsletters reference."
|
|
7875
|
+
},
|
|
7876
|
+
{
|
|
7877
|
+
"slug": "marketing-campaign",
|
|
7878
|
+
"kind": "workspace",
|
|
7879
|
+
"relation": "require",
|
|
7880
|
+
"reason": "Provides the campaign kind (and its SSOT property body) this workspace's posts/newsletters link to."
|
|
7881
|
+
}
|
|
7882
|
+
],
|
|
7852
7883
|
"workspace": {
|
|
7853
|
-
"name": "Content
|
|
7854
|
-
"description": "
|
|
7855
|
-
"proposalId": "content-
|
|
7856
|
-
"subtype": "content-
|
|
7884
|
+
"name": "Content OS",
|
|
7885
|
+
"description": "The editorial operating system \u2014 a view-driven workspace over your content model. Organize by pillar, track every post from Idea to Published, run your platforms and newsletters, and keep it all wired to the campaigns and brand voice that give it context.\n",
|
|
7886
|
+
"proposalId": "content-os-v1",
|
|
7887
|
+
"subtype": "content-os",
|
|
7857
7888
|
"visibility": "pod_visible",
|
|
7858
7889
|
"capabilities": [
|
|
7859
|
-
"content.
|
|
7860
|
-
"content.
|
|
7861
|
-
"content.
|
|
7862
|
-
"content.
|
|
7863
|
-
"content.templates"
|
|
7890
|
+
"content.editorial",
|
|
7891
|
+
"content.pillars",
|
|
7892
|
+
"content.calendar",
|
|
7893
|
+
"content.newsletter"
|
|
7864
7894
|
],
|
|
7865
7895
|
"sourceRoles": {
|
|
7866
7896
|
"brand": "consumer",
|
|
7897
|
+
"marketing": "consumer",
|
|
7867
7898
|
"content": "provider"
|
|
7868
7899
|
}
|
|
7869
7900
|
},
|
|
7870
7901
|
"profiles": [
|
|
7871
7902
|
{
|
|
7872
|
-
"slug": "
|
|
7873
|
-
"displayName": "
|
|
7874
|
-
"icon": "
|
|
7875
|
-
"color": "
|
|
7876
|
-
"description": "
|
|
7877
|
-
"
|
|
7903
|
+
"slug": "post",
|
|
7904
|
+
"displayName": "Post",
|
|
7905
|
+
"icon": "file-edit",
|
|
7906
|
+
"color": "#6366F1",
|
|
7907
|
+
"description": "Your atomic content unit. One idea, multiple platform formats \u2014 tracked from spark to publication.",
|
|
7908
|
+
"scope": "WORKSPACE",
|
|
7878
7909
|
"properties": [
|
|
7879
7910
|
{
|
|
7880
|
-
"slug": "
|
|
7881
|
-
"label": "
|
|
7911
|
+
"slug": "post-status",
|
|
7912
|
+
"label": "Status",
|
|
7882
7913
|
"valueType": "string",
|
|
7883
7914
|
"inputType": "select",
|
|
7884
7915
|
"enumValues": [
|
|
7885
|
-
"
|
|
7886
|
-
"
|
|
7887
|
-
"
|
|
7888
|
-
"
|
|
7889
|
-
"
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
}
|
|
7916
|
+
"Idea",
|
|
7917
|
+
"Briefed",
|
|
7918
|
+
"In Draft",
|
|
7919
|
+
"Review",
|
|
7920
|
+
"Scheduled",
|
|
7921
|
+
"Published",
|
|
7922
|
+
"Archived"
|
|
7923
|
+
]
|
|
7894
7924
|
},
|
|
7895
7925
|
{
|
|
7896
|
-
"slug": "
|
|
7897
|
-
"label": "
|
|
7926
|
+
"slug": "post-format",
|
|
7927
|
+
"label": "Format",
|
|
7898
7928
|
"valueType": "string",
|
|
7899
7929
|
"inputType": "select",
|
|
7900
7930
|
"enumValues": [
|
|
7901
|
-
"
|
|
7902
|
-
"
|
|
7903
|
-
"
|
|
7904
|
-
"
|
|
7905
|
-
"
|
|
7906
|
-
"
|
|
7907
|
-
|
|
7908
|
-
|
|
7909
|
-
"
|
|
7910
|
-
|
|
7931
|
+
"Article",
|
|
7932
|
+
"Thread",
|
|
7933
|
+
"Short Video",
|
|
7934
|
+
"Long Video",
|
|
7935
|
+
"Carousel",
|
|
7936
|
+
"Image Post",
|
|
7937
|
+
"Story",
|
|
7938
|
+
"Newsletter Section",
|
|
7939
|
+
"Podcast Episode",
|
|
7940
|
+
"Other"
|
|
7941
|
+
]
|
|
7911
7942
|
},
|
|
7912
7943
|
{
|
|
7913
|
-
"slug": "
|
|
7914
|
-
"label": "
|
|
7944
|
+
"slug": "post-platform",
|
|
7945
|
+
"label": "Platform",
|
|
7915
7946
|
"valueType": "string",
|
|
7916
7947
|
"inputType": "select",
|
|
7917
7948
|
"enumValues": [
|
|
7918
|
-
"
|
|
7919
|
-
"
|
|
7920
|
-
"
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
"
|
|
7924
|
-
|
|
7949
|
+
"LinkedIn",
|
|
7950
|
+
"Instagram",
|
|
7951
|
+
"TikTok",
|
|
7952
|
+
"YouTube",
|
|
7953
|
+
"Twitter / X",
|
|
7954
|
+
"Threads",
|
|
7955
|
+
"Bluesky",
|
|
7956
|
+
"Newsletter",
|
|
7957
|
+
"Podcast",
|
|
7958
|
+
"Blog",
|
|
7959
|
+
"Other"
|
|
7960
|
+
]
|
|
7925
7961
|
},
|
|
7926
7962
|
{
|
|
7927
|
-
"slug": "
|
|
7928
|
-
"label": "
|
|
7929
|
-
"valueType": "
|
|
7930
|
-
"
|
|
7963
|
+
"slug": "post-pillar",
|
|
7964
|
+
"label": "Pillar",
|
|
7965
|
+
"valueType": "entity_id",
|
|
7966
|
+
"targetProfileSlug": "pillar",
|
|
7967
|
+
"inputType": "entity_select"
|
|
7931
7968
|
},
|
|
7932
7969
|
{
|
|
7933
|
-
"slug": "
|
|
7934
|
-
"label": "
|
|
7935
|
-
"valueType": "
|
|
7936
|
-
"
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
},
|
|
7940
|
-
{
|
|
7941
|
-
"slug": "content-composition",
|
|
7942
|
-
"displayName": "Composition",
|
|
7943
|
-
"icon": "clapperboard",
|
|
7944
|
-
"color": "blue",
|
|
7945
|
-
"description": "A Remotion composition or HyperFrames sequence ready for rendering.",
|
|
7946
|
-
"semanticSlug": "content.composition",
|
|
7947
|
-
"properties": [
|
|
7970
|
+
"slug": "post-campaign",
|
|
7971
|
+
"label": "Campaign",
|
|
7972
|
+
"valueType": "entity_id",
|
|
7973
|
+
"targetProfileSlug": "campaign",
|
|
7974
|
+
"inputType": "entity_select"
|
|
7975
|
+
},
|
|
7948
7976
|
{
|
|
7949
|
-
"slug": "
|
|
7950
|
-
"label": "
|
|
7977
|
+
"slug": "post-sponsor",
|
|
7978
|
+
"label": "Sponsor",
|
|
7979
|
+
"valueType": "entity_id",
|
|
7980
|
+
"targetProfileSlug": "sponsor",
|
|
7981
|
+
"inputType": "entity_select"
|
|
7982
|
+
},
|
|
7983
|
+
{
|
|
7984
|
+
"slug": "publish-date",
|
|
7985
|
+
"label": "Publish Date",
|
|
7986
|
+
"valueType": "date"
|
|
7987
|
+
},
|
|
7988
|
+
{
|
|
7989
|
+
"slug": "post-hook",
|
|
7990
|
+
"label": "Hook / Headline",
|
|
7951
7991
|
"valueType": "string",
|
|
7952
|
-
"inputType": "text"
|
|
7992
|
+
"inputType": "text",
|
|
7993
|
+
"placeholder": "Opening line or headline that stops the scroll"
|
|
7953
7994
|
},
|
|
7954
7995
|
{
|
|
7955
|
-
"slug": "
|
|
7956
|
-
"label": "
|
|
7996
|
+
"slug": "post-cta",
|
|
7997
|
+
"label": "CTA",
|
|
7957
7998
|
"valueType": "string",
|
|
7958
|
-
"inputType": "
|
|
7959
|
-
"
|
|
7960
|
-
"9:16",
|
|
7961
|
-
"16:9",
|
|
7962
|
-
"1:1",
|
|
7963
|
-
"4:5"
|
|
7964
|
-
],
|
|
7965
|
-
"constraints": {
|
|
7966
|
-
"defaultValue": "16:9"
|
|
7967
|
-
}
|
|
7999
|
+
"inputType": "text",
|
|
8000
|
+
"placeholder": "What should the audience do?"
|
|
7968
8001
|
},
|
|
7969
8002
|
{
|
|
7970
|
-
"slug": "
|
|
7971
|
-
"label": "
|
|
8003
|
+
"slug": "post-tags",
|
|
8004
|
+
"label": "Tags",
|
|
8005
|
+
"valueType": "array"
|
|
8006
|
+
},
|
|
8007
|
+
{
|
|
8008
|
+
"slug": "engagement-score",
|
|
8009
|
+
"label": "Engagement Score",
|
|
7972
8010
|
"valueType": "number",
|
|
7973
|
-
"inputType": "number"
|
|
8011
|
+
"inputType": "number",
|
|
8012
|
+
"placeholder": "Numeric performance metric (likes + comments + shares)"
|
|
7974
8013
|
},
|
|
7975
8014
|
{
|
|
7976
|
-
"slug": "
|
|
7977
|
-
"label": "
|
|
7978
|
-
"valueType": "
|
|
7979
|
-
"inputType": "
|
|
8015
|
+
"slug": "post-reach",
|
|
8016
|
+
"label": "Reach / Views",
|
|
8017
|
+
"valueType": "number",
|
|
8018
|
+
"inputType": "number"
|
|
7980
8019
|
},
|
|
7981
8020
|
{
|
|
7982
|
-
"slug": "
|
|
7983
|
-
"label": "
|
|
8021
|
+
"slug": "repurposed-from",
|
|
8022
|
+
"label": "Repurposed From",
|
|
7984
8023
|
"valueType": "string",
|
|
7985
|
-
"inputType": "text"
|
|
8024
|
+
"inputType": "text",
|
|
8025
|
+
"placeholder": "Source post or content this was adapted from"
|
|
7986
8026
|
},
|
|
7987
8027
|
{
|
|
7988
|
-
"slug": "
|
|
7989
|
-
"label": "
|
|
8028
|
+
"slug": "post-url",
|
|
8029
|
+
"label": "Published URL",
|
|
7990
8030
|
"valueType": "string",
|
|
7991
|
-
"inputType": "text"
|
|
8031
|
+
"inputType": "text",
|
|
8032
|
+
"placeholder": "https://...",
|
|
8033
|
+
"constraints": {
|
|
8034
|
+
"format": "url"
|
|
8035
|
+
}
|
|
7992
8036
|
}
|
|
7993
8037
|
]
|
|
7994
8038
|
},
|
|
7995
8039
|
{
|
|
7996
|
-
"slug": "
|
|
7997
|
-
"displayName": "
|
|
7998
|
-
"icon": "
|
|
7999
|
-
"color": "
|
|
8000
|
-
"description": "
|
|
8001
|
-
"
|
|
8040
|
+
"slug": "pillar",
|
|
8041
|
+
"displayName": "Pillar",
|
|
8042
|
+
"icon": "columns",
|
|
8043
|
+
"color": "#8B5CF6",
|
|
8044
|
+
"description": "A recurring content theme \u2014 the lens through which your audience knows you. The organizing principle of your brand.",
|
|
8045
|
+
"scope": "WORKSPACE",
|
|
8002
8046
|
"properties": [
|
|
8003
8047
|
{
|
|
8004
|
-
"slug": "
|
|
8005
|
-
"label": "
|
|
8048
|
+
"slug": "pillar-status",
|
|
8049
|
+
"label": "Status",
|
|
8006
8050
|
"valueType": "string",
|
|
8007
8051
|
"inputType": "select",
|
|
8008
8052
|
"enumValues": [
|
|
8009
|
-
"
|
|
8010
|
-
"
|
|
8011
|
-
"
|
|
8012
|
-
"
|
|
8013
|
-
"script",
|
|
8014
|
-
"other"
|
|
8053
|
+
"Active",
|
|
8054
|
+
"Developing",
|
|
8055
|
+
"Paused",
|
|
8056
|
+
"Retired"
|
|
8015
8057
|
]
|
|
8016
8058
|
},
|
|
8017
8059
|
{
|
|
8018
|
-
"slug": "
|
|
8019
|
-
"label": "
|
|
8060
|
+
"slug": "pillar-audience",
|
|
8061
|
+
"label": "Audience Segment",
|
|
8020
8062
|
"valueType": "string",
|
|
8021
|
-
"inputType": "
|
|
8022
|
-
"
|
|
8023
|
-
"uploaded",
|
|
8024
|
-
"brand",
|
|
8025
|
-
"generated"
|
|
8026
|
-
],
|
|
8027
|
-
"constraints": {
|
|
8028
|
-
"defaultValue": "uploaded"
|
|
8029
|
-
}
|
|
8063
|
+
"inputType": "text",
|
|
8064
|
+
"placeholder": "Who does this pillar speak to?"
|
|
8030
8065
|
},
|
|
8031
8066
|
{
|
|
8032
|
-
"slug": "
|
|
8033
|
-
"label": "
|
|
8067
|
+
"slug": "pillar-goal",
|
|
8068
|
+
"label": "Audience Goal",
|
|
8034
8069
|
"valueType": "string",
|
|
8035
|
-
"inputType": "
|
|
8070
|
+
"inputType": "text",
|
|
8071
|
+
"placeholder": "What should the audience think, feel, or do after consuming this pillar?"
|
|
8036
8072
|
},
|
|
8037
8073
|
{
|
|
8038
|
-
"slug": "
|
|
8039
|
-
"label": "
|
|
8074
|
+
"slug": "pillar-formats",
|
|
8075
|
+
"label": "Primary Formats",
|
|
8040
8076
|
"valueType": "string",
|
|
8041
|
-
"inputType": "
|
|
8077
|
+
"inputType": "select",
|
|
8078
|
+
"enumValues": [
|
|
8079
|
+
"Articles + Threads",
|
|
8080
|
+
"Short Video",
|
|
8081
|
+
"Long Video",
|
|
8082
|
+
"Newsletter",
|
|
8083
|
+
"Podcast",
|
|
8084
|
+
"Carousel",
|
|
8085
|
+
"Mixed"
|
|
8086
|
+
]
|
|
8042
8087
|
},
|
|
8043
8088
|
{
|
|
8044
|
-
"slug": "
|
|
8045
|
-
"label": "
|
|
8089
|
+
"slug": "post-count-pillar",
|
|
8090
|
+
"label": "Total Posts Published",
|
|
8091
|
+
"valueType": "number",
|
|
8092
|
+
"inputType": "number"
|
|
8093
|
+
},
|
|
8094
|
+
{
|
|
8095
|
+
"slug": "avg-engagement",
|
|
8096
|
+
"label": "Avg Engagement Score",
|
|
8097
|
+
"valueType": "number",
|
|
8098
|
+
"inputType": "number"
|
|
8099
|
+
},
|
|
8100
|
+
{
|
|
8101
|
+
"slug": "top-post",
|
|
8102
|
+
"label": "Top Performing Post",
|
|
8046
8103
|
"valueType": "string",
|
|
8047
|
-
"inputType": "text"
|
|
8104
|
+
"inputType": "text",
|
|
8105
|
+
"placeholder": "Title of best performing post in this pillar"
|
|
8048
8106
|
},
|
|
8049
8107
|
{
|
|
8050
|
-
"slug": "
|
|
8051
|
-
"label": "
|
|
8108
|
+
"slug": "posting-frequency",
|
|
8109
|
+
"label": "Target Frequency",
|
|
8052
8110
|
"valueType": "string",
|
|
8053
|
-
"inputType": "
|
|
8111
|
+
"inputType": "select",
|
|
8112
|
+
"enumValues": [
|
|
8113
|
+
"Daily",
|
|
8114
|
+
"3x / week",
|
|
8115
|
+
"2x / week",
|
|
8116
|
+
"Weekly",
|
|
8117
|
+
"Bi-weekly",
|
|
8118
|
+
"Monthly",
|
|
8119
|
+
"Ad hoc"
|
|
8120
|
+
]
|
|
8121
|
+
},
|
|
8122
|
+
{
|
|
8123
|
+
"slug": "pillar-tags",
|
|
8124
|
+
"label": "Tags",
|
|
8125
|
+
"valueType": "array"
|
|
8054
8126
|
}
|
|
8055
8127
|
]
|
|
8056
8128
|
},
|
|
8057
8129
|
{
|
|
8058
|
-
"slug": "
|
|
8059
|
-
"displayName": "
|
|
8060
|
-
"icon": "
|
|
8061
|
-
"color": "
|
|
8062
|
-
"description": "A
|
|
8063
|
-
"
|
|
8130
|
+
"slug": "platform",
|
|
8131
|
+
"displayName": "Platform",
|
|
8132
|
+
"icon": "share-2",
|
|
8133
|
+
"color": "#06B6D4",
|
|
8134
|
+
"description": "A social account, newsletter publication, or podcast channel. Each platform has its own audience metrics and publishing rhythm.",
|
|
8135
|
+
"scope": "WORKSPACE",
|
|
8064
8136
|
"properties": [
|
|
8065
8137
|
{
|
|
8066
|
-
"slug": "
|
|
8067
|
-
"label": "
|
|
8138
|
+
"slug": "platform-type",
|
|
8139
|
+
"label": "Type",
|
|
8068
8140
|
"valueType": "string",
|
|
8069
8141
|
"inputType": "select",
|
|
8070
8142
|
"enumValues": [
|
|
8071
|
-
"
|
|
8072
|
-
"
|
|
8073
|
-
"
|
|
8074
|
-
"
|
|
8075
|
-
|
|
8076
|
-
|
|
8077
|
-
"
|
|
8078
|
-
|
|
8143
|
+
"LinkedIn",
|
|
8144
|
+
"Instagram",
|
|
8145
|
+
"TikTok",
|
|
8146
|
+
"YouTube",
|
|
8147
|
+
"Twitter / X",
|
|
8148
|
+
"Threads",
|
|
8149
|
+
"Bluesky",
|
|
8150
|
+
"Newsletter",
|
|
8151
|
+
"Podcast",
|
|
8152
|
+
"Blog / Website",
|
|
8153
|
+
"Other"
|
|
8154
|
+
]
|
|
8079
8155
|
},
|
|
8080
8156
|
{
|
|
8081
|
-
"slug": "
|
|
8082
|
-
"label": "
|
|
8157
|
+
"slug": "platform-status",
|
|
8158
|
+
"label": "Status",
|
|
8083
8159
|
"valueType": "string",
|
|
8084
8160
|
"inputType": "select",
|
|
8085
8161
|
"enumValues": [
|
|
8086
|
-
"
|
|
8087
|
-
"
|
|
8088
|
-
"
|
|
8089
|
-
"
|
|
8090
|
-
]
|
|
8091
|
-
"constraints": {
|
|
8092
|
-
"defaultValue": "mp4"
|
|
8093
|
-
}
|
|
8162
|
+
"Active",
|
|
8163
|
+
"Building",
|
|
8164
|
+
"Maintenance Mode",
|
|
8165
|
+
"Inactive"
|
|
8166
|
+
]
|
|
8094
8167
|
},
|
|
8095
8168
|
{
|
|
8096
|
-
"slug": "
|
|
8097
|
-
"label": "
|
|
8169
|
+
"slug": "platform-url",
|
|
8170
|
+
"label": "Profile URL",
|
|
8098
8171
|
"valueType": "string",
|
|
8099
|
-
"inputType": "
|
|
8172
|
+
"inputType": "text",
|
|
8173
|
+
"placeholder": "https://...",
|
|
8174
|
+
"constraints": {
|
|
8175
|
+
"format": "url"
|
|
8176
|
+
}
|
|
8100
8177
|
},
|
|
8101
8178
|
{
|
|
8102
|
-
"slug": "
|
|
8103
|
-
"label": "
|
|
8179
|
+
"slug": "follower-count",
|
|
8180
|
+
"label": "Follower / Subscriber Count",
|
|
8104
8181
|
"valueType": "number",
|
|
8105
8182
|
"inputType": "number"
|
|
8106
8183
|
},
|
|
8107
8184
|
{
|
|
8108
|
-
"slug": "
|
|
8109
|
-
"label": "
|
|
8110
|
-
"valueType": "
|
|
8111
|
-
"inputType": "
|
|
8185
|
+
"slug": "follower-target",
|
|
8186
|
+
"label": "Target Count",
|
|
8187
|
+
"valueType": "number",
|
|
8188
|
+
"inputType": "number"
|
|
8112
8189
|
},
|
|
8113
8190
|
{
|
|
8114
|
-
"slug": "
|
|
8115
|
-
"label": "
|
|
8116
|
-
"valueType": "
|
|
8117
|
-
"inputType": "
|
|
8118
|
-
}
|
|
8119
|
-
]
|
|
8120
|
-
},
|
|
8121
|
-
{
|
|
8122
|
-
"slug": "content-template",
|
|
8123
|
-
"displayName": "Template",
|
|
8124
|
-
"icon": "layout-template",
|
|
8125
|
-
"color": "pink",
|
|
8126
|
-
"description": "Reusable video template \u2014 HyperFrames, Remotion, or hybrid.",
|
|
8127
|
-
"semanticSlug": "content.template",
|
|
8128
|
-
"properties": [
|
|
8191
|
+
"slug": "avg-engagement-rate",
|
|
8192
|
+
"label": "Avg Engagement Rate (%)",
|
|
8193
|
+
"valueType": "number",
|
|
8194
|
+
"inputType": "number"
|
|
8195
|
+
},
|
|
8129
8196
|
{
|
|
8130
|
-
"slug": "
|
|
8131
|
-
"label": "
|
|
8197
|
+
"slug": "platform-posting-freq",
|
|
8198
|
+
"label": "Posting Frequency",
|
|
8132
8199
|
"valueType": "string",
|
|
8133
8200
|
"inputType": "select",
|
|
8134
8201
|
"enumValues": [
|
|
8135
|
-
"
|
|
8136
|
-
"
|
|
8137
|
-
"
|
|
8138
|
-
|
|
8139
|
-
|
|
8140
|
-
"
|
|
8141
|
-
|
|
8202
|
+
"Daily",
|
|
8203
|
+
"3x / week",
|
|
8204
|
+
"2x / week",
|
|
8205
|
+
"Weekly",
|
|
8206
|
+
"Bi-weekly",
|
|
8207
|
+
"Monthly",
|
|
8208
|
+
"As Needed"
|
|
8209
|
+
]
|
|
8142
8210
|
},
|
|
8143
8211
|
{
|
|
8144
|
-
"slug": "
|
|
8145
|
-
"label": "
|
|
8146
|
-
"valueType": "
|
|
8147
|
-
"inputType": "select",
|
|
8148
|
-
"enumValues": [
|
|
8149
|
-
"9:16",
|
|
8150
|
-
"16:9",
|
|
8151
|
-
"1:1",
|
|
8152
|
-
"4:5"
|
|
8153
|
-
],
|
|
8154
|
-
"constraints": {
|
|
8155
|
-
"defaultValue": "16:9"
|
|
8156
|
-
}
|
|
8212
|
+
"slug": "last-post-date",
|
|
8213
|
+
"label": "Last Post Date",
|
|
8214
|
+
"valueType": "date"
|
|
8157
8215
|
},
|
|
8158
8216
|
{
|
|
8159
|
-
"slug": "
|
|
8160
|
-
"label": "
|
|
8217
|
+
"slug": "platform-notes",
|
|
8218
|
+
"label": "Notes",
|
|
8161
8219
|
"valueType": "string",
|
|
8162
|
-
"inputType": "
|
|
8163
|
-
"
|
|
8164
|
-
"draft",
|
|
8165
|
-
"approved",
|
|
8166
|
-
"deprecated"
|
|
8167
|
-
],
|
|
8168
|
-
"constraints": {
|
|
8169
|
-
"defaultValue": "approved"
|
|
8170
|
-
}
|
|
8220
|
+
"inputType": "text",
|
|
8221
|
+
"placeholder": "What works here? Tone, format, best times..."
|
|
8171
8222
|
},
|
|
8172
8223
|
{
|
|
8173
|
-
"slug": "
|
|
8174
|
-
"label": "
|
|
8175
|
-
"valueType": "
|
|
8176
|
-
"inputType": "textarea"
|
|
8224
|
+
"slug": "platform-tags",
|
|
8225
|
+
"label": "Tags",
|
|
8226
|
+
"valueType": "array"
|
|
8177
8227
|
}
|
|
8178
8228
|
]
|
|
8179
8229
|
},
|
|
8180
8230
|
{
|
|
8181
|
-
"slug": "
|
|
8182
|
-
"displayName": "
|
|
8183
|
-
"icon": "
|
|
8184
|
-
"color": "#
|
|
8185
|
-
"description": "
|
|
8231
|
+
"slug": "newsletter",
|
|
8232
|
+
"displayName": "Newsletter",
|
|
8233
|
+
"icon": "mail",
|
|
8234
|
+
"color": "#10B981",
|
|
8235
|
+
"description": "A newsletter issue \u2014 your direct channel to an owned audience. No algorithm, no platform fee, no intermediary.",
|
|
8186
8236
|
"scope": "WORKSPACE",
|
|
8187
8237
|
"properties": [
|
|
8188
8238
|
{
|
|
8189
|
-
"slug": "
|
|
8239
|
+
"slug": "newsletter-status",
|
|
8190
8240
|
"label": "Status",
|
|
8191
8241
|
"valueType": "string",
|
|
8192
8242
|
"inputType": "select",
|
|
8193
8243
|
"enumValues": [
|
|
8194
8244
|
"Idea",
|
|
8195
|
-
"
|
|
8196
|
-
"
|
|
8197
|
-
"Review",
|
|
8245
|
+
"Drafting",
|
|
8246
|
+
"Editing",
|
|
8198
8247
|
"Scheduled",
|
|
8199
|
-
"
|
|
8248
|
+
"Sent",
|
|
8200
8249
|
"Archived"
|
|
8201
8250
|
]
|
|
8202
8251
|
},
|
|
8203
8252
|
{
|
|
8204
|
-
"slug": "
|
|
8205
|
-
"label": "
|
|
8253
|
+
"slug": "newsletter-series",
|
|
8254
|
+
"label": "Series",
|
|
8206
8255
|
"valueType": "string",
|
|
8207
|
-
"inputType": "
|
|
8208
|
-
"
|
|
8209
|
-
"Article",
|
|
8210
|
-
"Thread",
|
|
8211
|
-
"Short Video",
|
|
8212
|
-
"Long Video",
|
|
8213
|
-
"Carousel",
|
|
8214
|
-
"Image Post",
|
|
8215
|
-
"Story",
|
|
8216
|
-
"Newsletter Section",
|
|
8217
|
-
"Podcast Episode",
|
|
8218
|
-
"Other"
|
|
8219
|
-
]
|
|
8220
|
-
},
|
|
8221
|
-
{
|
|
8222
|
-
"slug": "post-platform",
|
|
8223
|
-
"label": "Platform",
|
|
8224
|
-
"valueType": "string",
|
|
8225
|
-
"inputType": "select",
|
|
8226
|
-
"enumValues": [
|
|
8227
|
-
"LinkedIn",
|
|
8228
|
-
"Instagram",
|
|
8229
|
-
"TikTok",
|
|
8230
|
-
"YouTube",
|
|
8231
|
-
"Twitter / X",
|
|
8232
|
-
"Threads",
|
|
8233
|
-
"Bluesky",
|
|
8234
|
-
"Newsletter",
|
|
8235
|
-
"Podcast",
|
|
8236
|
-
"Blog",
|
|
8237
|
-
"Other"
|
|
8238
|
-
]
|
|
8239
|
-
},
|
|
8240
|
-
{
|
|
8241
|
-
"slug": "post-pillar",
|
|
8242
|
-
"label": "Pillar",
|
|
8243
|
-
"valueType": "entity_id"
|
|
8244
|
-
},
|
|
8245
|
-
{
|
|
8246
|
-
"slug": "post-campaign",
|
|
8247
|
-
"label": "Campaign",
|
|
8248
|
-
"valueType": "entity_id"
|
|
8249
|
-
},
|
|
8250
|
-
{
|
|
8251
|
-
"slug": "post-sponsor",
|
|
8252
|
-
"label": "Sponsor",
|
|
8253
|
-
"valueType": "entity_id"
|
|
8256
|
+
"inputType": "text",
|
|
8257
|
+
"placeholder": "Which newsletter series is this issue part of?"
|
|
8254
8258
|
},
|
|
8255
8259
|
{
|
|
8256
|
-
"slug": "
|
|
8257
|
-
"label": "
|
|
8258
|
-
"valueType": "
|
|
8260
|
+
"slug": "issue-number",
|
|
8261
|
+
"label": "Issue Number",
|
|
8262
|
+
"valueType": "number",
|
|
8263
|
+
"inputType": "number"
|
|
8259
8264
|
},
|
|
8260
8265
|
{
|
|
8261
|
-
"slug": "
|
|
8262
|
-
"label": "
|
|
8266
|
+
"slug": "subject-line",
|
|
8267
|
+
"label": "Subject Line",
|
|
8263
8268
|
"valueType": "string",
|
|
8264
8269
|
"inputType": "text",
|
|
8265
|
-
"placeholder": "
|
|
8270
|
+
"placeholder": "The subject line \u2014 your most important copy"
|
|
8266
8271
|
},
|
|
8267
8272
|
{
|
|
8268
|
-
"slug": "
|
|
8269
|
-
"label": "
|
|
8273
|
+
"slug": "preview-text",
|
|
8274
|
+
"label": "Preview Text",
|
|
8270
8275
|
"valueType": "string",
|
|
8271
8276
|
"inputType": "text",
|
|
8272
|
-
"placeholder": "
|
|
8277
|
+
"placeholder": "45-character preview shown in inbox (after subject)"
|
|
8273
8278
|
},
|
|
8274
8279
|
{
|
|
8275
|
-
"slug": "
|
|
8276
|
-
"label": "
|
|
8277
|
-
"valueType": "
|
|
8280
|
+
"slug": "send-date",
|
|
8281
|
+
"label": "Send Date",
|
|
8282
|
+
"valueType": "date"
|
|
8278
8283
|
},
|
|
8279
8284
|
{
|
|
8280
|
-
"slug": "
|
|
8281
|
-
"label": "
|
|
8285
|
+
"slug": "subscriber-count",
|
|
8286
|
+
"label": "Subscriber Count at Send",
|
|
8282
8287
|
"valueType": "number",
|
|
8283
|
-
"inputType": "number"
|
|
8284
|
-
"placeholder": "Numeric performance metric (likes + comments + shares)"
|
|
8288
|
+
"inputType": "number"
|
|
8285
8289
|
},
|
|
8286
8290
|
{
|
|
8287
|
-
"slug": "
|
|
8288
|
-
"label": "
|
|
8291
|
+
"slug": "open-rate",
|
|
8292
|
+
"label": "Open Rate (%)",
|
|
8289
8293
|
"valueType": "number",
|
|
8290
8294
|
"inputType": "number"
|
|
8291
8295
|
},
|
|
8292
8296
|
{
|
|
8293
|
-
"slug": "
|
|
8294
|
-
"label": "
|
|
8295
|
-
"valueType": "
|
|
8296
|
-
"inputType": "
|
|
8297
|
-
"placeholder": "Source post or content this was adapted from"
|
|
8297
|
+
"slug": "click-rate",
|
|
8298
|
+
"label": "Click Rate (%)",
|
|
8299
|
+
"valueType": "number",
|
|
8300
|
+
"inputType": "number"
|
|
8298
8301
|
},
|
|
8299
8302
|
{
|
|
8300
|
-
"slug": "
|
|
8301
|
-
"label": "
|
|
8302
|
-
"valueType": "
|
|
8303
|
-
"
|
|
8304
|
-
"
|
|
8305
|
-
|
|
8306
|
-
|
|
8307
|
-
|
|
8303
|
+
"slug": "newsletter-sponsor",
|
|
8304
|
+
"label": "Sponsor",
|
|
8305
|
+
"valueType": "entity_id",
|
|
8306
|
+
"targetProfileSlug": "sponsor",
|
|
8307
|
+
"inputType": "entity_select"
|
|
8308
|
+
},
|
|
8309
|
+
{
|
|
8310
|
+
"slug": "newsletter-campaign",
|
|
8311
|
+
"label": "Campaign",
|
|
8312
|
+
"valueType": "entity_id",
|
|
8313
|
+
"targetProfileSlug": "campaign",
|
|
8314
|
+
"inputType": "entity_select"
|
|
8315
|
+
},
|
|
8316
|
+
{
|
|
8317
|
+
"slug": "newsletter-pillar",
|
|
8318
|
+
"label": "Primary Pillar",
|
|
8319
|
+
"valueType": "entity_id",
|
|
8320
|
+
"targetProfileSlug": "pillar",
|
|
8321
|
+
"inputType": "entity_select"
|
|
8322
|
+
},
|
|
8323
|
+
{
|
|
8324
|
+
"slug": "newsletter-tags",
|
|
8325
|
+
"label": "Tags",
|
|
8326
|
+
"valueType": "array"
|
|
8308
8327
|
}
|
|
8309
8328
|
]
|
|
8310
8329
|
},
|
|
8311
8330
|
{
|
|
8312
|
-
"slug": "
|
|
8313
|
-
"displayName": "
|
|
8314
|
-
"icon": "
|
|
8315
|
-
"color": "
|
|
8316
|
-
"description": "A
|
|
8317
|
-
"
|
|
8331
|
+
"slug": "campaign",
|
|
8332
|
+
"displayName": "Campaign",
|
|
8333
|
+
"icon": "megaphone",
|
|
8334
|
+
"color": "pink",
|
|
8335
|
+
"description": "A marketing campaign \u2014 email, social, event, content, or partnership",
|
|
8336
|
+
"semanticSlug": "marketing.campaign",
|
|
8318
8337
|
"properties": [
|
|
8319
8338
|
{
|
|
8320
|
-
"slug": "
|
|
8339
|
+
"slug": "campaign-status",
|
|
8321
8340
|
"label": "Status",
|
|
8322
8341
|
"valueType": "string",
|
|
8323
8342
|
"inputType": "select",
|
|
8324
8343
|
"enumValues": [
|
|
8325
|
-
"
|
|
8326
|
-
"
|
|
8327
|
-
"
|
|
8328
|
-
"
|
|
8329
|
-
|
|
8344
|
+
"planning",
|
|
8345
|
+
"active",
|
|
8346
|
+
"paused",
|
|
8347
|
+
"completed",
|
|
8348
|
+
"cancelled"
|
|
8349
|
+
],
|
|
8350
|
+
"constraints": {
|
|
8351
|
+
"defaultValue": "planning"
|
|
8352
|
+
}
|
|
8330
8353
|
},
|
|
8331
8354
|
{
|
|
8332
|
-
"slug": "
|
|
8333
|
-
"label": "
|
|
8355
|
+
"slug": "campaign-channel",
|
|
8356
|
+
"label": "Channel",
|
|
8334
8357
|
"valueType": "string",
|
|
8335
|
-
"inputType": "
|
|
8336
|
-
"
|
|
8358
|
+
"inputType": "select",
|
|
8359
|
+
"enumValues": [
|
|
8360
|
+
"email",
|
|
8361
|
+
"social",
|
|
8362
|
+
"event",
|
|
8363
|
+
"content",
|
|
8364
|
+
"partnership",
|
|
8365
|
+
"paid",
|
|
8366
|
+
"organic",
|
|
8367
|
+
"other"
|
|
8368
|
+
]
|
|
8337
8369
|
},
|
|
8338
8370
|
{
|
|
8339
|
-
"slug": "
|
|
8340
|
-
"label": "
|
|
8371
|
+
"slug": "campaign-goal",
|
|
8372
|
+
"label": "Goal",
|
|
8341
8373
|
"valueType": "string",
|
|
8342
|
-
"inputType": "
|
|
8343
|
-
"placeholder": "What should the audience think, feel, or do after consuming this pillar?"
|
|
8374
|
+
"inputType": "textarea"
|
|
8344
8375
|
},
|
|
8345
8376
|
{
|
|
8346
|
-
"slug": "
|
|
8347
|
-
"label": "
|
|
8377
|
+
"slug": "campaign-target-audience",
|
|
8378
|
+
"label": "Target Audience",
|
|
8348
8379
|
"valueType": "string",
|
|
8349
|
-
"inputType": "
|
|
8350
|
-
"enumValues": [
|
|
8351
|
-
"Articles + Threads",
|
|
8352
|
-
"Short Video",
|
|
8353
|
-
"Long Video",
|
|
8354
|
-
"Newsletter",
|
|
8355
|
-
"Podcast",
|
|
8356
|
-
"Carousel",
|
|
8357
|
-
"Mixed"
|
|
8358
|
-
]
|
|
8380
|
+
"inputType": "textarea"
|
|
8359
8381
|
},
|
|
8360
8382
|
{
|
|
8361
|
-
"slug": "
|
|
8362
|
-
"label": "
|
|
8383
|
+
"slug": "campaign-start-date",
|
|
8384
|
+
"label": "Start Date",
|
|
8385
|
+
"valueType": "date",
|
|
8386
|
+
"inputType": "date"
|
|
8387
|
+
},
|
|
8388
|
+
{
|
|
8389
|
+
"slug": "campaign-end-date",
|
|
8390
|
+
"label": "End Date",
|
|
8391
|
+
"valueType": "date",
|
|
8392
|
+
"inputType": "date"
|
|
8393
|
+
},
|
|
8394
|
+
{
|
|
8395
|
+
"slug": "campaign-budget",
|
|
8396
|
+
"label": "Budget",
|
|
8363
8397
|
"valueType": "number",
|
|
8364
8398
|
"inputType": "number"
|
|
8365
8399
|
},
|
|
8366
8400
|
{
|
|
8367
|
-
"slug": "
|
|
8368
|
-
"label": "
|
|
8401
|
+
"slug": "campaign-lead-count",
|
|
8402
|
+
"label": "Lead Count",
|
|
8369
8403
|
"valueType": "number",
|
|
8370
8404
|
"inputType": "number"
|
|
8371
8405
|
},
|
|
8372
8406
|
{
|
|
8373
|
-
"slug": "
|
|
8374
|
-
"label": "
|
|
8375
|
-
"valueType": "
|
|
8376
|
-
"inputType": "
|
|
8377
|
-
"placeholder": "Title of best performing post in this pillar"
|
|
8407
|
+
"slug": "campaign-conversion-rate",
|
|
8408
|
+
"label": "Conversion Rate (%)",
|
|
8409
|
+
"valueType": "number",
|
|
8410
|
+
"inputType": "number"
|
|
8378
8411
|
},
|
|
8379
8412
|
{
|
|
8380
|
-
"slug": "
|
|
8381
|
-
"label": "
|
|
8413
|
+
"slug": "campaign-notes",
|
|
8414
|
+
"label": "Notes",
|
|
8382
8415
|
"valueType": "string",
|
|
8383
|
-
"inputType": "
|
|
8384
|
-
"enumValues": [
|
|
8385
|
-
"Daily",
|
|
8386
|
-
"3x / week",
|
|
8387
|
-
"2x / week",
|
|
8388
|
-
"Weekly",
|
|
8389
|
-
"Bi-weekly",
|
|
8390
|
-
"Monthly",
|
|
8391
|
-
"Ad hoc"
|
|
8392
|
-
]
|
|
8393
|
-
},
|
|
8394
|
-
{
|
|
8395
|
-
"slug": "pillar-tags",
|
|
8396
|
-
"label": "Tags",
|
|
8397
|
-
"valueType": "array"
|
|
8416
|
+
"inputType": "textarea"
|
|
8398
8417
|
}
|
|
8399
8418
|
]
|
|
8400
8419
|
},
|
|
8401
8420
|
{
|
|
8402
|
-
"slug": "
|
|
8403
|
-
"displayName": "
|
|
8404
|
-
"icon": "
|
|
8405
|
-
"color": "
|
|
8406
|
-
"description": "A
|
|
8407
|
-
"scope": "
|
|
8421
|
+
"slug": "sponsor",
|
|
8422
|
+
"displayName": "Sponsor",
|
|
8423
|
+
"icon": "hand-coins",
|
|
8424
|
+
"color": "amber",
|
|
8425
|
+
"description": "A backer or sponsor of a program, round, or event.",
|
|
8426
|
+
"scope": "shared",
|
|
8427
|
+
"profileKind": "role",
|
|
8428
|
+
"applicableKinds": [
|
|
8429
|
+
"person",
|
|
8430
|
+
"company"
|
|
8431
|
+
],
|
|
8408
8432
|
"properties": [
|
|
8409
8433
|
{
|
|
8410
|
-
"slug": "
|
|
8411
|
-
"label": "
|
|
8434
|
+
"slug": "sponsorStatus",
|
|
8435
|
+
"label": "Status",
|
|
8412
8436
|
"valueType": "string",
|
|
8413
8437
|
"inputType": "select",
|
|
8414
8438
|
"enumValues": [
|
|
8415
|
-
"
|
|
8416
|
-
"
|
|
8417
|
-
"
|
|
8418
|
-
"YouTube",
|
|
8419
|
-
"Twitter / X",
|
|
8420
|
-
"Threads",
|
|
8421
|
-
"Bluesky",
|
|
8422
|
-
"Newsletter",
|
|
8423
|
-
"Podcast",
|
|
8424
|
-
"Blog / Website",
|
|
8425
|
-
"Other"
|
|
8439
|
+
"prospect",
|
|
8440
|
+
"active",
|
|
8441
|
+
"paused"
|
|
8426
8442
|
]
|
|
8427
8443
|
},
|
|
8428
8444
|
{
|
|
8429
|
-
"slug": "
|
|
8430
|
-
"label": "
|
|
8445
|
+
"slug": "sponsorType",
|
|
8446
|
+
"label": "Sponsor Type",
|
|
8447
|
+
"valueType": "string",
|
|
8448
|
+
"inputType": "text"
|
|
8449
|
+
},
|
|
8450
|
+
{
|
|
8451
|
+
"slug": "notes",
|
|
8452
|
+
"label": "Notes",
|
|
8453
|
+
"valueType": "string",
|
|
8454
|
+
"inputType": "textarea"
|
|
8455
|
+
}
|
|
8456
|
+
]
|
|
8457
|
+
}
|
|
8458
|
+
],
|
|
8459
|
+
"views": [
|
|
8460
|
+
{
|
|
8461
|
+
"name": "Posts",
|
|
8462
|
+
"slug": "content-posts",
|
|
8463
|
+
"type": "kanban",
|
|
8464
|
+
"scopeProfileSlug": "post",
|
|
8465
|
+
"groupBy": "post-status",
|
|
8466
|
+
"description": "Content posts by status."
|
|
8467
|
+
},
|
|
8468
|
+
{
|
|
8469
|
+
"name": "Pillars",
|
|
8470
|
+
"slug": "content-pillars",
|
|
8471
|
+
"type": "list",
|
|
8472
|
+
"scopeProfileSlug": "pillar",
|
|
8473
|
+
"description": "Content pillars \u2014 the recurring themes."
|
|
8474
|
+
},
|
|
8475
|
+
{
|
|
8476
|
+
"name": "Platforms",
|
|
8477
|
+
"slug": "content-platforms",
|
|
8478
|
+
"type": "table",
|
|
8479
|
+
"scopeProfileSlug": "platform",
|
|
8480
|
+
"description": "Channels and their audience metrics."
|
|
8481
|
+
},
|
|
8482
|
+
{
|
|
8483
|
+
"name": "Newsletters",
|
|
8484
|
+
"slug": "content-newsletters",
|
|
8485
|
+
"type": "kanban",
|
|
8486
|
+
"scopeProfileSlug": "newsletter",
|
|
8487
|
+
"groupBy": "newsletter-status",
|
|
8488
|
+
"description": "Newsletter issues by status."
|
|
8489
|
+
}
|
|
8490
|
+
],
|
|
8491
|
+
"app": {
|
|
8492
|
+
"kind": "stored",
|
|
8493
|
+
"cellKey": "entity-detail"
|
|
8494
|
+
},
|
|
8495
|
+
"layout": {
|
|
8496
|
+
"pinnedApps": [
|
|
8497
|
+
"dashboard",
|
|
8498
|
+
"data"
|
|
8499
|
+
],
|
|
8500
|
+
"defaultView": "Posts",
|
|
8501
|
+
"defaultApp": null,
|
|
8502
|
+
"sidebarItems": [
|
|
8503
|
+
{
|
|
8504
|
+
"kind": "view",
|
|
8505
|
+
"viewName": "Posts",
|
|
8506
|
+
"label": "Posts",
|
|
8507
|
+
"icon": "file-edit"
|
|
8508
|
+
},
|
|
8509
|
+
{
|
|
8510
|
+
"kind": "view",
|
|
8511
|
+
"viewName": "Pillars",
|
|
8512
|
+
"label": "Pillars",
|
|
8513
|
+
"icon": "columns"
|
|
8514
|
+
},
|
|
8515
|
+
{
|
|
8516
|
+
"kind": "view",
|
|
8517
|
+
"viewName": "Platforms",
|
|
8518
|
+
"label": "Platforms",
|
|
8519
|
+
"icon": "share-2"
|
|
8520
|
+
},
|
|
8521
|
+
{
|
|
8522
|
+
"kind": "view",
|
|
8523
|
+
"viewName": "Newsletters",
|
|
8524
|
+
"label": "Newsletters",
|
|
8525
|
+
"icon": "mail"
|
|
8526
|
+
}
|
|
8527
|
+
]
|
|
8528
|
+
},
|
|
8529
|
+
"bento": {
|
|
8530
|
+
"viewName": "Posts",
|
|
8531
|
+
"blocks": [
|
|
8532
|
+
{
|
|
8533
|
+
"kind": "view",
|
|
8534
|
+
"viewName": "Pillars",
|
|
8535
|
+
"pos": {
|
|
8536
|
+
"x": 0,
|
|
8537
|
+
"y": 0,
|
|
8538
|
+
"w": 6,
|
|
8539
|
+
"h": 5
|
|
8540
|
+
}
|
|
8541
|
+
},
|
|
8542
|
+
{
|
|
8543
|
+
"kind": "view",
|
|
8544
|
+
"viewName": "Newsletters",
|
|
8545
|
+
"pos": {
|
|
8546
|
+
"x": 6,
|
|
8547
|
+
"y": 0,
|
|
8548
|
+
"w": 6,
|
|
8549
|
+
"h": 5
|
|
8550
|
+
}
|
|
8551
|
+
}
|
|
8552
|
+
]
|
|
8553
|
+
},
|
|
8554
|
+
"entityLinks": [
|
|
8555
|
+
{
|
|
8556
|
+
"sourceProfileSlug": "post",
|
|
8557
|
+
"targetProfileSlug": "campaign",
|
|
8558
|
+
"type": "part_of_campaign",
|
|
8559
|
+
"label": "Campaign"
|
|
8560
|
+
},
|
|
8561
|
+
{
|
|
8562
|
+
"sourceProfileSlug": "post",
|
|
8563
|
+
"targetProfileSlug": "pillar",
|
|
8564
|
+
"type": "belongs_to_pillar",
|
|
8565
|
+
"label": "Pillar"
|
|
8566
|
+
},
|
|
8567
|
+
{
|
|
8568
|
+
"sourceProfileSlug": "post",
|
|
8569
|
+
"targetProfileSlug": "sponsor",
|
|
8570
|
+
"type": "sponsored_by",
|
|
8571
|
+
"label": "Sponsor"
|
|
8572
|
+
}
|
|
8573
|
+
],
|
|
8574
|
+
"onboarding": {
|
|
8575
|
+
"goal": "Stand up the editorial engine \u2014 the pillars you're known for, the platforms you publish on, the cadence you can actually sustain, and a first post placed in the system \u2014 so the workspace mirrors how you turn thinking into published content, not a blank calendar.\n",
|
|
8576
|
+
"framing": `THE EDITOR-IN-CHIEF: Act as a seasoned content strategist who has grown owned audiences from zero. Anchor everything on PILLARS \u2014 the two-to-four recurring themes an audience comes to you for \u2014 because pillars are what make a content engine compound instead of drift. Pull voice and identity from Brand and the target audience from Foundation so every piece lands on-strategy. Push for a cadence they can hold for a year, not a heroic month. Be concrete: real platforms, real formats, a real first post \u2014 a fuzzy "I'll post more" helps no one.
|
|
8577
|
+
`,
|
|
8578
|
+
"expertise": {
|
|
8579
|
+
"starters": [
|
|
8580
|
+
"Pillars before posts. A creator known for 2\u20134 clear themes compounds; one posting about everything stays noise. Propose naming the pillars FIRST \u2014 each with the audience it speaks to and the transformation it delivers \u2014 then hang every post off one of them.\n",
|
|
8581
|
+
"Cadence you can sustain beats cadence that impresses. A weekly post held for a year outperforms daily-for-three-weeks-then-silence. Propose a realistic per-platform frequency and let the calendar enforce it, rather than an ambitious number that collapses.\n",
|
|
8582
|
+
"One idea, many formats \u2014 design for repurposing from the start. A single strong thought becomes a thread, a short video, a newsletter section, and a carousel. Propose the repurpose chain up front so one capture yields a week of output, tracked via `repurposed-from`.\n"
|
|
8583
|
+
],
|
|
8584
|
+
"blindSpots": [
|
|
8585
|
+
"No pillars = brand drift. If they list a dozen post ideas but can't name the 2\u20134 themes underneath, that's the gap \u2014 surface it before filling the calendar, because unpillared posting never builds an identity.\n",
|
|
8586
|
+
"The owned-audience channel is the one most creators under-invest in. If they're all-in on algorithmic platforms with no newsletter or list, name it: the newsletter is the audience they actually own when a platform changes the rules.\n",
|
|
8587
|
+
"Chasing every platform at once guarantees all of them stay shallow. If they name five channels, push back: which ONE or two get real cadence and attention now, and which are experiments?\n"
|
|
8588
|
+
],
|
|
8589
|
+
"bar": "The workspace reads like a running publication: a handful of named pillars each tied to an audience, the platforms actually committed to with a sustainable cadence, an owned newsletter channel, and a first post placed in a pillar \u2014 so a strategist could see at a glance what the brand is about, where it publishes, and what ships next.\n"
|
|
8590
|
+
},
|
|
8591
|
+
"collect": [
|
|
8592
|
+
{
|
|
8593
|
+
"profileSlug": "pillar",
|
|
8594
|
+
"what": "The recurring themes you're known for \u2014 the 2\u20134 lenses your audience comes to you for, each with the segment it speaks to and the goal it serves.",
|
|
8595
|
+
"cardinality": "few",
|
|
8596
|
+
"keyFields": [
|
|
8597
|
+
"pillar-status",
|
|
8598
|
+
"pillar-audience",
|
|
8599
|
+
"pillar-formats"
|
|
8600
|
+
]
|
|
8601
|
+
},
|
|
8602
|
+
{
|
|
8603
|
+
"profileSlug": "platform",
|
|
8604
|
+
"what": "The channels you actually publish on \u2014 the social accounts, newsletter, or podcast \u2014 with their status and the cadence you can hold.",
|
|
8605
|
+
"cardinality": "several",
|
|
8606
|
+
"keyFields": [
|
|
8607
|
+
"platform-type",
|
|
8608
|
+
"platform-status",
|
|
8609
|
+
"platform-posting-freq"
|
|
8610
|
+
]
|
|
8611
|
+
},
|
|
8612
|
+
{
|
|
8613
|
+
"profileSlug": "post",
|
|
8614
|
+
"what": "A first post or two already in motion, each placed on a pillar and a platform at its true status (Idea through Published).",
|
|
8615
|
+
"cardinality": "few",
|
|
8616
|
+
"keyFields": [
|
|
8617
|
+
"post-status",
|
|
8618
|
+
"post-format",
|
|
8619
|
+
"post-platform"
|
|
8620
|
+
]
|
|
8621
|
+
}
|
|
8622
|
+
],
|
|
8623
|
+
"openingQuestions": [
|
|
8624
|
+
"What are the 2\u20134 themes your audience comes to you for \u2014 the pillars everything you make ties back to?",
|
|
8625
|
+
"Which platforms do you actually publish on, and what cadence can you genuinely sustain on each?",
|
|
8626
|
+
"Do you run (or want) a newsletter \u2014 the audience you own outright \u2014 and what's the first post you'd place in the system?"
|
|
8627
|
+
],
|
|
8628
|
+
"doneWhen": "at least one pillar + one platform with a cadence + a first post placed on a pillar."
|
|
8629
|
+
}
|
|
8630
|
+
},
|
|
8631
|
+
"content-studio": {
|
|
8632
|
+
"meta": {
|
|
8633
|
+
"slug": "content-studio",
|
|
8634
|
+
"name": "Content Studio",
|
|
8635
|
+
"description": "HyperFrames + Remotion video pipeline \u2014 script, design, compose, render, publish.",
|
|
8636
|
+
"icon": "clapperboard",
|
|
8637
|
+
"color": "violet",
|
|
8638
|
+
"tags": [
|
|
8639
|
+
"content",
|
|
8640
|
+
"video",
|
|
8641
|
+
"creation",
|
|
8642
|
+
"pipeline"
|
|
8643
|
+
],
|
|
8644
|
+
"isPublic": true
|
|
8645
|
+
},
|
|
8646
|
+
"workspace": {
|
|
8647
|
+
"name": "Content Studio",
|
|
8648
|
+
"description": "Content creation pipeline \u2014 HyperFrames for rapid design, Remotion for production rendering. Create videos, carousels, reels, and social content from one workspace.\n",
|
|
8649
|
+
"proposalId": "content-studio-v1",
|
|
8650
|
+
"subtype": "content-studio",
|
|
8651
|
+
"visibility": "pod_visible",
|
|
8652
|
+
"capabilities": [
|
|
8653
|
+
"content.pipeline",
|
|
8654
|
+
"content.compose",
|
|
8655
|
+
"content.render",
|
|
8656
|
+
"content.assets",
|
|
8657
|
+
"content.templates"
|
|
8658
|
+
],
|
|
8659
|
+
"sourceRoles": {
|
|
8660
|
+
"brand": "consumer",
|
|
8661
|
+
"content": "provider"
|
|
8662
|
+
}
|
|
8663
|
+
},
|
|
8664
|
+
"profiles": [
|
|
8665
|
+
{
|
|
8666
|
+
"slug": "content-pipeline",
|
|
8667
|
+
"displayName": "Pipeline",
|
|
8668
|
+
"icon": "workflow",
|
|
8669
|
+
"color": "violet",
|
|
8670
|
+
"description": "A content creation pipeline: script \u2192 design \u2192 compose \u2192 render.",
|
|
8671
|
+
"semanticSlug": "content.pipeline",
|
|
8672
|
+
"properties": [
|
|
8673
|
+
{
|
|
8674
|
+
"slug": "pipeline-kind",
|
|
8675
|
+
"label": "Kind",
|
|
8431
8676
|
"valueType": "string",
|
|
8432
8677
|
"inputType": "select",
|
|
8433
8678
|
"enumValues": [
|
|
8434
|
-
"
|
|
8435
|
-
"
|
|
8436
|
-
"
|
|
8437
|
-
"
|
|
8438
|
-
|
|
8679
|
+
"reel",
|
|
8680
|
+
"carousel",
|
|
8681
|
+
"demo",
|
|
8682
|
+
"explainer",
|
|
8683
|
+
"custom"
|
|
8684
|
+
],
|
|
8685
|
+
"constraints": {
|
|
8686
|
+
"defaultValue": "reel"
|
|
8687
|
+
}
|
|
8439
8688
|
},
|
|
8440
8689
|
{
|
|
8441
|
-
"slug": "platform
|
|
8442
|
-
"label": "
|
|
8690
|
+
"slug": "pipeline-platform",
|
|
8691
|
+
"label": "Platform",
|
|
8443
8692
|
"valueType": "string",
|
|
8444
|
-
"inputType": "
|
|
8445
|
-
"
|
|
8693
|
+
"inputType": "select",
|
|
8694
|
+
"enumValues": [
|
|
8695
|
+
"instagram",
|
|
8696
|
+
"tiktok",
|
|
8697
|
+
"youtube",
|
|
8698
|
+
"linkedin",
|
|
8699
|
+
"x",
|
|
8700
|
+
"all"
|
|
8701
|
+
],
|
|
8446
8702
|
"constraints": {
|
|
8447
|
-
"
|
|
8703
|
+
"defaultValue": "instagram"
|
|
8448
8704
|
}
|
|
8449
8705
|
},
|
|
8450
8706
|
{
|
|
8451
|
-
"slug": "
|
|
8452
|
-
"label": "
|
|
8453
|
-
"valueType": "
|
|
8454
|
-
"inputType": "
|
|
8707
|
+
"slug": "pipeline-mode",
|
|
8708
|
+
"label": "Mode",
|
|
8709
|
+
"valueType": "string",
|
|
8710
|
+
"inputType": "select",
|
|
8711
|
+
"enumValues": [
|
|
8712
|
+
"fast",
|
|
8713
|
+
"quality",
|
|
8714
|
+
"data"
|
|
8715
|
+
],
|
|
8716
|
+
"constraints": {
|
|
8717
|
+
"defaultValue": "quality"
|
|
8718
|
+
}
|
|
8455
8719
|
},
|
|
8456
8720
|
{
|
|
8457
|
-
"slug": "
|
|
8458
|
-
"label": "
|
|
8459
|
-
"valueType": "
|
|
8460
|
-
"inputType": "
|
|
8721
|
+
"slug": "pipeline-script",
|
|
8722
|
+
"label": "Script",
|
|
8723
|
+
"valueType": "string",
|
|
8724
|
+
"inputType": "textarea"
|
|
8461
8725
|
},
|
|
8462
8726
|
{
|
|
8463
|
-
"slug": "
|
|
8464
|
-
"label": "
|
|
8465
|
-
"valueType": "
|
|
8466
|
-
"inputType": "
|
|
8727
|
+
"slug": "pipeline-stages",
|
|
8728
|
+
"label": "Stages",
|
|
8729
|
+
"valueType": "string",
|
|
8730
|
+
"inputType": "textarea"
|
|
8731
|
+
}
|
|
8732
|
+
]
|
|
8733
|
+
},
|
|
8734
|
+
{
|
|
8735
|
+
"slug": "content-composition",
|
|
8736
|
+
"displayName": "Composition",
|
|
8737
|
+
"icon": "clapperboard",
|
|
8738
|
+
"color": "blue",
|
|
8739
|
+
"description": "A Remotion composition or HyperFrames sequence ready for rendering.",
|
|
8740
|
+
"semanticSlug": "content.composition",
|
|
8741
|
+
"properties": [
|
|
8742
|
+
{
|
|
8743
|
+
"slug": "composition-id",
|
|
8744
|
+
"label": "Composition ID",
|
|
8745
|
+
"valueType": "string",
|
|
8746
|
+
"inputType": "text"
|
|
8467
8747
|
},
|
|
8468
8748
|
{
|
|
8469
|
-
"slug": "
|
|
8470
|
-
"label": "
|
|
8749
|
+
"slug": "aspect-ratio",
|
|
8750
|
+
"label": "Aspect Ratio",
|
|
8471
8751
|
"valueType": "string",
|
|
8472
8752
|
"inputType": "select",
|
|
8473
8753
|
"enumValues": [
|
|
8474
|
-
"
|
|
8475
|
-
"
|
|
8476
|
-
"
|
|
8477
|
-
"
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
"
|
|
8481
|
-
|
|
8754
|
+
"9:16",
|
|
8755
|
+
"16:9",
|
|
8756
|
+
"1:1",
|
|
8757
|
+
"4:5"
|
|
8758
|
+
],
|
|
8759
|
+
"constraints": {
|
|
8760
|
+
"defaultValue": "16:9"
|
|
8761
|
+
}
|
|
8762
|
+
},
|
|
8763
|
+
{
|
|
8764
|
+
"slug": "duration-seconds",
|
|
8765
|
+
"label": "Duration (seconds)",
|
|
8766
|
+
"valueType": "number",
|
|
8767
|
+
"inputType": "number"
|
|
8482
8768
|
},
|
|
8483
8769
|
{
|
|
8484
|
-
"slug": "
|
|
8485
|
-
"label": "
|
|
8486
|
-
"valueType": "
|
|
8770
|
+
"slug": "hyperframes-meta",
|
|
8771
|
+
"label": "HyperFrames JSON",
|
|
8772
|
+
"valueType": "string",
|
|
8773
|
+
"inputType": "textarea"
|
|
8487
8774
|
},
|
|
8488
8775
|
{
|
|
8489
|
-
"slug": "
|
|
8490
|
-
"label": "
|
|
8776
|
+
"slug": "template-id",
|
|
8777
|
+
"label": "Template",
|
|
8491
8778
|
"valueType": "string",
|
|
8492
|
-
"inputType": "text"
|
|
8493
|
-
"placeholder": "What works here? Tone, format, best times..."
|
|
8779
|
+
"inputType": "text"
|
|
8494
8780
|
},
|
|
8495
8781
|
{
|
|
8496
|
-
"slug": "
|
|
8497
|
-
"label": "
|
|
8498
|
-
"valueType": "
|
|
8782
|
+
"slug": "pipeline-ref",
|
|
8783
|
+
"label": "Pipeline",
|
|
8784
|
+
"valueType": "string",
|
|
8785
|
+
"inputType": "text"
|
|
8499
8786
|
}
|
|
8500
8787
|
]
|
|
8501
8788
|
},
|
|
8502
8789
|
{
|
|
8503
|
-
"slug": "
|
|
8504
|
-
"displayName": "
|
|
8505
|
-
"icon": "
|
|
8506
|
-
"color": "
|
|
8507
|
-
"description": "
|
|
8508
|
-
"
|
|
8790
|
+
"slug": "content-asset",
|
|
8791
|
+
"displayName": "Asset",
|
|
8792
|
+
"icon": "image",
|
|
8793
|
+
"color": "green",
|
|
8794
|
+
"description": "Media asset: image, video clip, audio track, font, or script.",
|
|
8795
|
+
"semanticSlug": "content.asset",
|
|
8509
8796
|
"properties": [
|
|
8510
8797
|
{
|
|
8511
|
-
"slug": "
|
|
8512
|
-
"label": "
|
|
8798
|
+
"slug": "asset-kind",
|
|
8799
|
+
"label": "Kind",
|
|
8513
8800
|
"valueType": "string",
|
|
8514
8801
|
"inputType": "select",
|
|
8515
8802
|
"enumValues": [
|
|
8516
|
-
"
|
|
8517
|
-
"
|
|
8518
|
-
"
|
|
8519
|
-
"
|
|
8520
|
-
"
|
|
8521
|
-
"
|
|
8803
|
+
"image",
|
|
8804
|
+
"video",
|
|
8805
|
+
"audio",
|
|
8806
|
+
"font",
|
|
8807
|
+
"script",
|
|
8808
|
+
"other"
|
|
8522
8809
|
]
|
|
8523
8810
|
},
|
|
8524
8811
|
{
|
|
8525
|
-
"slug": "
|
|
8526
|
-
"label": "
|
|
8812
|
+
"slug": "source-kind",
|
|
8813
|
+
"label": "Source",
|
|
8527
8814
|
"valueType": "string",
|
|
8528
|
-
"inputType": "
|
|
8529
|
-
"
|
|
8815
|
+
"inputType": "select",
|
|
8816
|
+
"enumValues": [
|
|
8817
|
+
"uploaded",
|
|
8818
|
+
"brand",
|
|
8819
|
+
"generated"
|
|
8820
|
+
],
|
|
8821
|
+
"constraints": {
|
|
8822
|
+
"defaultValue": "uploaded"
|
|
8823
|
+
}
|
|
8530
8824
|
},
|
|
8531
8825
|
{
|
|
8532
|
-
"slug": "
|
|
8533
|
-
"label": "
|
|
8534
|
-
"valueType": "
|
|
8535
|
-
"inputType": "
|
|
8826
|
+
"slug": "source-url",
|
|
8827
|
+
"label": "URL",
|
|
8828
|
+
"valueType": "string",
|
|
8829
|
+
"inputType": "url"
|
|
8536
8830
|
},
|
|
8537
8831
|
{
|
|
8538
|
-
"slug": "
|
|
8539
|
-
"label": "
|
|
8832
|
+
"slug": "brand-asset-ref",
|
|
8833
|
+
"label": "Brand Asset Ref",
|
|
8540
8834
|
"valueType": "string",
|
|
8541
|
-
"inputType": "text"
|
|
8542
|
-
"placeholder": "The subject line \u2014 your most important copy"
|
|
8835
|
+
"inputType": "text"
|
|
8543
8836
|
},
|
|
8544
8837
|
{
|
|
8545
|
-
"slug": "
|
|
8546
|
-
"label": "
|
|
8838
|
+
"slug": "file-id",
|
|
8839
|
+
"label": "File ID",
|
|
8547
8840
|
"valueType": "string",
|
|
8548
|
-
"inputType": "text"
|
|
8549
|
-
"placeholder": "45-character preview shown in inbox (after subject)"
|
|
8841
|
+
"inputType": "text"
|
|
8550
8842
|
},
|
|
8551
8843
|
{
|
|
8552
|
-
"slug": "
|
|
8553
|
-
"label": "
|
|
8554
|
-
"valueType": "
|
|
8844
|
+
"slug": "document-id",
|
|
8845
|
+
"label": "Document ID",
|
|
8846
|
+
"valueType": "string",
|
|
8847
|
+
"inputType": "text"
|
|
8848
|
+
}
|
|
8849
|
+
]
|
|
8850
|
+
},
|
|
8851
|
+
{
|
|
8852
|
+
"slug": "render-job",
|
|
8853
|
+
"displayName": "Render Job",
|
|
8854
|
+
"icon": "play",
|
|
8855
|
+
"color": "amber",
|
|
8856
|
+
"description": "A render execution \u2014 queued, rendering, done, or failed.",
|
|
8857
|
+
"semanticSlug": "content.render",
|
|
8858
|
+
"properties": [
|
|
8859
|
+
{
|
|
8860
|
+
"slug": "job-status",
|
|
8861
|
+
"label": "Status",
|
|
8862
|
+
"valueType": "string",
|
|
8863
|
+
"inputType": "select",
|
|
8864
|
+
"enumValues": [
|
|
8865
|
+
"queued",
|
|
8866
|
+
"rendering",
|
|
8867
|
+
"done",
|
|
8868
|
+
"failed"
|
|
8869
|
+
],
|
|
8870
|
+
"constraints": {
|
|
8871
|
+
"defaultValue": "queued"
|
|
8872
|
+
}
|
|
8555
8873
|
},
|
|
8556
8874
|
{
|
|
8557
|
-
"slug": "
|
|
8558
|
-
"label": "
|
|
8559
|
-
"valueType": "
|
|
8560
|
-
"inputType": "
|
|
8875
|
+
"slug": "output-format",
|
|
8876
|
+
"label": "Format",
|
|
8877
|
+
"valueType": "string",
|
|
8878
|
+
"inputType": "select",
|
|
8879
|
+
"enumValues": [
|
|
8880
|
+
"mp4",
|
|
8881
|
+
"gif",
|
|
8882
|
+
"webm",
|
|
8883
|
+
"mp3"
|
|
8884
|
+
],
|
|
8885
|
+
"constraints": {
|
|
8886
|
+
"defaultValue": "mp4"
|
|
8887
|
+
}
|
|
8561
8888
|
},
|
|
8562
8889
|
{
|
|
8563
|
-
"slug": "
|
|
8564
|
-
"label": "
|
|
8565
|
-
"valueType": "
|
|
8566
|
-
"inputType": "
|
|
8890
|
+
"slug": "output-url",
|
|
8891
|
+
"label": "Output URL",
|
|
8892
|
+
"valueType": "string",
|
|
8893
|
+
"inputType": "url"
|
|
8567
8894
|
},
|
|
8568
8895
|
{
|
|
8569
|
-
"slug": "
|
|
8570
|
-
"label": "
|
|
8896
|
+
"slug": "render-duration-ms",
|
|
8897
|
+
"label": "Render Duration (ms)",
|
|
8571
8898
|
"valueType": "number",
|
|
8572
8899
|
"inputType": "number"
|
|
8573
8900
|
},
|
|
8574
8901
|
{
|
|
8575
|
-
"slug": "
|
|
8576
|
-
"label": "
|
|
8577
|
-
"valueType": "
|
|
8902
|
+
"slug": "error-message",
|
|
8903
|
+
"label": "Error",
|
|
8904
|
+
"valueType": "string",
|
|
8905
|
+
"inputType": "textarea"
|
|
8578
8906
|
},
|
|
8579
8907
|
{
|
|
8580
|
-
"slug": "
|
|
8581
|
-
"label": "
|
|
8582
|
-
"valueType": "
|
|
8908
|
+
"slug": "composition-ref",
|
|
8909
|
+
"label": "Composition",
|
|
8910
|
+
"valueType": "string",
|
|
8911
|
+
"inputType": "text"
|
|
8912
|
+
}
|
|
8913
|
+
]
|
|
8914
|
+
},
|
|
8915
|
+
{
|
|
8916
|
+
"slug": "content-template",
|
|
8917
|
+
"displayName": "Template",
|
|
8918
|
+
"icon": "layout-template",
|
|
8919
|
+
"color": "pink",
|
|
8920
|
+
"description": "Reusable video template \u2014 HyperFrames, Remotion, or hybrid.",
|
|
8921
|
+
"semanticSlug": "content.template",
|
|
8922
|
+
"properties": [
|
|
8923
|
+
{
|
|
8924
|
+
"slug": "template-kind",
|
|
8925
|
+
"label": "Kind",
|
|
8926
|
+
"valueType": "string",
|
|
8927
|
+
"inputType": "select",
|
|
8928
|
+
"enumValues": [
|
|
8929
|
+
"hyperframes",
|
|
8930
|
+
"remotion",
|
|
8931
|
+
"hybrid"
|
|
8932
|
+
],
|
|
8933
|
+
"constraints": {
|
|
8934
|
+
"defaultValue": "hyperframes"
|
|
8935
|
+
}
|
|
8583
8936
|
},
|
|
8584
8937
|
{
|
|
8585
|
-
"slug": "
|
|
8586
|
-
"label": "
|
|
8587
|
-
"valueType": "
|
|
8938
|
+
"slug": "aspect-ratio",
|
|
8939
|
+
"label": "Aspect Ratio",
|
|
8940
|
+
"valueType": "string",
|
|
8941
|
+
"inputType": "select",
|
|
8942
|
+
"enumValues": [
|
|
8943
|
+
"9:16",
|
|
8944
|
+
"16:9",
|
|
8945
|
+
"1:1",
|
|
8946
|
+
"4:5"
|
|
8947
|
+
],
|
|
8948
|
+
"constraints": {
|
|
8949
|
+
"defaultValue": "16:9"
|
|
8950
|
+
}
|
|
8588
8951
|
},
|
|
8589
8952
|
{
|
|
8590
|
-
"slug": "
|
|
8591
|
-
"label": "
|
|
8592
|
-
"valueType": "
|
|
8953
|
+
"slug": "template-status",
|
|
8954
|
+
"label": "Status",
|
|
8955
|
+
"valueType": "string",
|
|
8956
|
+
"inputType": "select",
|
|
8957
|
+
"enumValues": [
|
|
8958
|
+
"draft",
|
|
8959
|
+
"approved",
|
|
8960
|
+
"deprecated"
|
|
8961
|
+
],
|
|
8962
|
+
"constraints": {
|
|
8963
|
+
"defaultValue": "approved"
|
|
8964
|
+
}
|
|
8965
|
+
},
|
|
8966
|
+
{
|
|
8967
|
+
"slug": "template-config",
|
|
8968
|
+
"label": "Config JSON",
|
|
8969
|
+
"valueType": "string",
|
|
8970
|
+
"inputType": "textarea"
|
|
8593
8971
|
}
|
|
8594
8972
|
]
|
|
8595
8973
|
}
|
|
@@ -8622,43 +9000,13 @@ var DATA = {
|
|
|
8622
9000
|
"type": "table",
|
|
8623
9001
|
"scopeProfileSlug": "render-job",
|
|
8624
9002
|
"description": "Render queue and history."
|
|
8625
|
-
},
|
|
8626
|
-
{
|
|
8627
|
-
"name": "Templates",
|
|
8628
|
-
"slug": "content-templates",
|
|
8629
|
-
"type": "grid",
|
|
8630
|
-
"scopeProfileSlug": "content-template",
|
|
8631
|
-
"description": "Reusable video templates."
|
|
8632
|
-
},
|
|
8633
|
-
{
|
|
8634
|
-
"name": "Posts",
|
|
8635
|
-
"slug": "content-posts",
|
|
8636
|
-
"type": "kanban",
|
|
8637
|
-
"scopeProfileSlug": "post",
|
|
8638
|
-
"groupBy": "post-status",
|
|
8639
|
-
"description": "Content posts by status."
|
|
8640
|
-
},
|
|
8641
|
-
{
|
|
8642
|
-
"name": "Pillars",
|
|
8643
|
-
"slug": "content-pillars",
|
|
8644
|
-
"type": "list",
|
|
8645
|
-
"scopeProfileSlug": "pillar",
|
|
8646
|
-
"description": "Content pillars \u2014 the recurring themes."
|
|
8647
|
-
},
|
|
8648
|
-
{
|
|
8649
|
-
"name": "Platforms",
|
|
8650
|
-
"slug": "content-platforms",
|
|
8651
|
-
"type": "table",
|
|
8652
|
-
"scopeProfileSlug": "platform",
|
|
8653
|
-
"description": "Channels and their audience metrics."
|
|
8654
|
-
},
|
|
8655
|
-
{
|
|
8656
|
-
"name": "Newsletters",
|
|
8657
|
-
"slug": "content-newsletters",
|
|
8658
|
-
"type": "kanban",
|
|
8659
|
-
"scopeProfileSlug": "newsletter",
|
|
8660
|
-
"groupBy": "newsletter-status",
|
|
8661
|
-
"description": "Newsletter issues by status."
|
|
9003
|
+
},
|
|
9004
|
+
{
|
|
9005
|
+
"name": "Templates",
|
|
9006
|
+
"slug": "content-templates",
|
|
9007
|
+
"type": "grid",
|
|
9008
|
+
"scopeProfileSlug": "content-template",
|
|
9009
|
+
"description": "Reusable video templates."
|
|
8662
9010
|
}
|
|
8663
9011
|
],
|
|
8664
9012
|
"app": {
|
|
@@ -8719,30 +9067,6 @@ var DATA = {
|
|
|
8719
9067
|
"viewName": "Templates",
|
|
8720
9068
|
"label": "Templates",
|
|
8721
9069
|
"icon": "layout-template"
|
|
8722
|
-
},
|
|
8723
|
-
{
|
|
8724
|
-
"kind": "view",
|
|
8725
|
-
"viewName": "Posts",
|
|
8726
|
-
"label": "Posts",
|
|
8727
|
-
"icon": "file-edit"
|
|
8728
|
-
},
|
|
8729
|
-
{
|
|
8730
|
-
"kind": "view",
|
|
8731
|
-
"viewName": "Pillars",
|
|
8732
|
-
"label": "Pillars",
|
|
8733
|
-
"icon": "columns"
|
|
8734
|
-
},
|
|
8735
|
-
{
|
|
8736
|
-
"kind": "view",
|
|
8737
|
-
"viewName": "Platforms",
|
|
8738
|
-
"label": "Platforms",
|
|
8739
|
-
"icon": "share-2"
|
|
8740
|
-
},
|
|
8741
|
-
{
|
|
8742
|
-
"kind": "view",
|
|
8743
|
-
"viewName": "Newsletters",
|
|
8744
|
-
"label": "Newsletters",
|
|
8745
|
-
"icon": "mail"
|
|
8746
9070
|
}
|
|
8747
9071
|
]
|
|
8748
9072
|
},
|
|
@@ -9073,45 +9397,287 @@ var DATA = {
|
|
|
9073
9397
|
"inputType": "number"
|
|
9074
9398
|
},
|
|
9075
9399
|
{
|
|
9076
|
-
"slug": "expectedClientGain",
|
|
9077
|
-
"label": "Expected client gain",
|
|
9078
|
-
"valueType": "number",
|
|
9079
|
-
"inputType": "number"
|
|
9400
|
+
"slug": "expectedClientGain",
|
|
9401
|
+
"label": "Expected client gain",
|
|
9402
|
+
"valueType": "number",
|
|
9403
|
+
"inputType": "number"
|
|
9404
|
+
},
|
|
9405
|
+
{
|
|
9406
|
+
"slug": "successFeeRate",
|
|
9407
|
+
"label": "Success fee rate",
|
|
9408
|
+
"valueType": "number",
|
|
9409
|
+
"inputType": "number"
|
|
9410
|
+
},
|
|
9411
|
+
{
|
|
9412
|
+
"slug": "closeDate",
|
|
9413
|
+
"label": "Expected close date",
|
|
9414
|
+
"valueType": "date",
|
|
9415
|
+
"inputType": "date"
|
|
9416
|
+
},
|
|
9417
|
+
{
|
|
9418
|
+
"slug": "nextStep",
|
|
9419
|
+
"label": "Next step",
|
|
9420
|
+
"valueType": "string",
|
|
9421
|
+
"inputType": "textarea"
|
|
9422
|
+
},
|
|
9423
|
+
{
|
|
9424
|
+
"slug": "description",
|
|
9425
|
+
"label": "Notes",
|
|
9426
|
+
"valueType": "string",
|
|
9427
|
+
"inputType": "textarea"
|
|
9428
|
+
},
|
|
9429
|
+
{
|
|
9430
|
+
"slug": "handoffStatus",
|
|
9431
|
+
"label": "Handoff status",
|
|
9432
|
+
"valueType": "string",
|
|
9433
|
+
"inputType": "select",
|
|
9434
|
+
"enumValues": [
|
|
9435
|
+
"pending",
|
|
9436
|
+
"ready",
|
|
9437
|
+
"handed_off"
|
|
9438
|
+
]
|
|
9439
|
+
}
|
|
9440
|
+
]
|
|
9441
|
+
},
|
|
9442
|
+
{
|
|
9443
|
+
"slug": "client",
|
|
9444
|
+
"displayName": "Client",
|
|
9445
|
+
"icon": "briefcase",
|
|
9446
|
+
"color": "emerald",
|
|
9447
|
+
"description": "An active commercial relationship \u2014 created when a deal is won.",
|
|
9448
|
+
"scope": "shared",
|
|
9449
|
+
"profileKind": "role",
|
|
9450
|
+
"applicableKinds": [
|
|
9451
|
+
"company",
|
|
9452
|
+
"person"
|
|
9453
|
+
],
|
|
9454
|
+
"properties": [
|
|
9455
|
+
{
|
|
9456
|
+
"slug": "clientStatus",
|
|
9457
|
+
"label": "Status",
|
|
9458
|
+
"valueType": "string",
|
|
9459
|
+
"inputType": "select",
|
|
9460
|
+
"enumValues": [
|
|
9461
|
+
"prospect",
|
|
9462
|
+
"active",
|
|
9463
|
+
"paused",
|
|
9464
|
+
"former",
|
|
9465
|
+
"churned"
|
|
9466
|
+
]
|
|
9467
|
+
},
|
|
9468
|
+
{
|
|
9469
|
+
"slug": "accountManager",
|
|
9470
|
+
"label": "Account Manager",
|
|
9471
|
+
"valueType": "string",
|
|
9472
|
+
"inputType": "text"
|
|
9473
|
+
},
|
|
9474
|
+
{
|
|
9475
|
+
"slug": "engagementStartDate",
|
|
9476
|
+
"label": "Engagement Start",
|
|
9477
|
+
"valueType": "date",
|
|
9478
|
+
"inputType": "date"
|
|
9479
|
+
},
|
|
9480
|
+
{
|
|
9481
|
+
"slug": "satisfactionScore",
|
|
9482
|
+
"label": "Satisfaction",
|
|
9483
|
+
"valueType": "number",
|
|
9484
|
+
"inputType": "number"
|
|
9485
|
+
},
|
|
9486
|
+
{
|
|
9487
|
+
"slug": "lifetimeValue",
|
|
9488
|
+
"label": "Lifetime Value",
|
|
9489
|
+
"valueType": "number",
|
|
9490
|
+
"inputType": "number"
|
|
9491
|
+
},
|
|
9492
|
+
{
|
|
9493
|
+
"slug": "notes",
|
|
9494
|
+
"label": "Notes",
|
|
9495
|
+
"valueType": "string",
|
|
9496
|
+
"inputType": "textarea"
|
|
9497
|
+
},
|
|
9498
|
+
{
|
|
9499
|
+
"slug": "contractValue",
|
|
9500
|
+
"label": "Contract Value",
|
|
9501
|
+
"valueType": "number",
|
|
9502
|
+
"inputType": "number"
|
|
9503
|
+
},
|
|
9504
|
+
{
|
|
9505
|
+
"slug": "renewalDate",
|
|
9506
|
+
"label": "Renewal Date",
|
|
9507
|
+
"valueType": "date",
|
|
9508
|
+
"inputType": "date"
|
|
9509
|
+
},
|
|
9510
|
+
{
|
|
9511
|
+
"slug": "healthScore",
|
|
9512
|
+
"label": "Health",
|
|
9513
|
+
"valueType": "string",
|
|
9514
|
+
"inputType": "select",
|
|
9515
|
+
"enumValues": [
|
|
9516
|
+
"healthy",
|
|
9517
|
+
"at_risk",
|
|
9518
|
+
"critical"
|
|
9519
|
+
]
|
|
9520
|
+
}
|
|
9521
|
+
]
|
|
9522
|
+
},
|
|
9523
|
+
{
|
|
9524
|
+
"slug": "partner",
|
|
9525
|
+
"displayName": "Partner",
|
|
9526
|
+
"icon": "handshake",
|
|
9527
|
+
"color": "teal",
|
|
9528
|
+
"description": "A partner relationship \u2014 both a referral source and a co-delivery collaborator, distinguished by partner type.",
|
|
9529
|
+
"scope": "shared",
|
|
9530
|
+
"profileKind": "role",
|
|
9531
|
+
"applicableKinds": [
|
|
9532
|
+
"company",
|
|
9533
|
+
"person"
|
|
9534
|
+
],
|
|
9535
|
+
"properties": [
|
|
9536
|
+
{
|
|
9537
|
+
"slug": "partnerStatus",
|
|
9538
|
+
"label": "Status",
|
|
9539
|
+
"valueType": "string",
|
|
9540
|
+
"inputType": "select",
|
|
9541
|
+
"enumValues": [
|
|
9542
|
+
"prospect",
|
|
9543
|
+
"active",
|
|
9544
|
+
"paused",
|
|
9545
|
+
"churned"
|
|
9546
|
+
]
|
|
9547
|
+
},
|
|
9548
|
+
{
|
|
9549
|
+
"slug": "partnerType",
|
|
9550
|
+
"label": "Partner Type",
|
|
9551
|
+
"valueType": "string",
|
|
9552
|
+
"inputType": "select",
|
|
9553
|
+
"enumValues": [
|
|
9554
|
+
"referral",
|
|
9555
|
+
"co-delivery",
|
|
9556
|
+
"both"
|
|
9557
|
+
]
|
|
9558
|
+
},
|
|
9559
|
+
{
|
|
9560
|
+
"slug": "accountManager",
|
|
9561
|
+
"label": "Account Manager",
|
|
9562
|
+
"valueType": "string",
|
|
9563
|
+
"inputType": "text"
|
|
9564
|
+
},
|
|
9565
|
+
{
|
|
9566
|
+
"slug": "engagementStartDate",
|
|
9567
|
+
"label": "Engagement Start",
|
|
9568
|
+
"valueType": "date",
|
|
9569
|
+
"inputType": "date"
|
|
9570
|
+
},
|
|
9571
|
+
{
|
|
9572
|
+
"slug": "satisfactionScore",
|
|
9573
|
+
"label": "Satisfaction",
|
|
9574
|
+
"valueType": "number",
|
|
9575
|
+
"inputType": "number"
|
|
9576
|
+
},
|
|
9577
|
+
{
|
|
9578
|
+
"slug": "lifetimeValue",
|
|
9579
|
+
"label": "Lifetime Value",
|
|
9580
|
+
"valueType": "number",
|
|
9581
|
+
"inputType": "number"
|
|
9582
|
+
},
|
|
9583
|
+
{
|
|
9584
|
+
"slug": "notes",
|
|
9585
|
+
"label": "Notes",
|
|
9586
|
+
"valueType": "string",
|
|
9587
|
+
"inputType": "textarea"
|
|
9588
|
+
},
|
|
9589
|
+
{
|
|
9590
|
+
"slug": "contractValue",
|
|
9591
|
+
"label": "Contract Value",
|
|
9592
|
+
"valueType": "number",
|
|
9593
|
+
"inputType": "number"
|
|
9594
|
+
},
|
|
9595
|
+
{
|
|
9596
|
+
"slug": "renewalDate",
|
|
9597
|
+
"label": "Renewal Date",
|
|
9598
|
+
"valueType": "date",
|
|
9599
|
+
"inputType": "date"
|
|
9600
|
+
},
|
|
9601
|
+
{
|
|
9602
|
+
"slug": "healthScore",
|
|
9603
|
+
"label": "Health",
|
|
9604
|
+
"valueType": "string",
|
|
9605
|
+
"inputType": "select",
|
|
9606
|
+
"enumValues": [
|
|
9607
|
+
"healthy",
|
|
9608
|
+
"at_risk",
|
|
9609
|
+
"critical"
|
|
9610
|
+
]
|
|
9611
|
+
}
|
|
9612
|
+
]
|
|
9613
|
+
},
|
|
9614
|
+
{
|
|
9615
|
+
"slug": "lead",
|
|
9616
|
+
"displayName": "Lead",
|
|
9617
|
+
"icon": "user-plus",
|
|
9618
|
+
"color": "yellow",
|
|
9619
|
+
"description": "An early-pipeline prospect \u2014 not yet a client, being qualified or nurtured.",
|
|
9620
|
+
"scope": "shared",
|
|
9621
|
+
"profileKind": "role",
|
|
9622
|
+
"applicableKinds": [
|
|
9623
|
+
"company",
|
|
9624
|
+
"person"
|
|
9625
|
+
],
|
|
9626
|
+
"properties": [
|
|
9627
|
+
{
|
|
9628
|
+
"slug": "leadStage",
|
|
9629
|
+
"label": "Stage",
|
|
9630
|
+
"valueType": "string",
|
|
9631
|
+
"inputType": "select",
|
|
9632
|
+
"enumValues": [
|
|
9633
|
+
"prospect",
|
|
9634
|
+
"qualified",
|
|
9635
|
+
"nurturing",
|
|
9636
|
+
"converted",
|
|
9637
|
+
"lost"
|
|
9638
|
+
],
|
|
9639
|
+
"constraints": {
|
|
9640
|
+
"defaultValue": "prospect"
|
|
9641
|
+
}
|
|
9080
9642
|
},
|
|
9081
9643
|
{
|
|
9082
|
-
"slug": "
|
|
9083
|
-
"label": "
|
|
9084
|
-
"valueType": "
|
|
9085
|
-
"inputType": "
|
|
9086
|
-
}
|
|
9644
|
+
"slug": "notes",
|
|
9645
|
+
"label": "Notes",
|
|
9646
|
+
"valueType": "string",
|
|
9647
|
+
"inputType": "textarea"
|
|
9648
|
+
}
|
|
9649
|
+
]
|
|
9650
|
+
},
|
|
9651
|
+
{
|
|
9652
|
+
"slug": "churned",
|
|
9653
|
+
"displayName": "Churned",
|
|
9654
|
+
"icon": "user-x",
|
|
9655
|
+
"color": "gray",
|
|
9656
|
+
"description": "A relationship (client, partner, or otherwise) that was active and has since ended.",
|
|
9657
|
+
"scope": "shared",
|
|
9658
|
+
"profileKind": "role",
|
|
9659
|
+
"applicableKinds": [
|
|
9660
|
+
"company",
|
|
9661
|
+
"person"
|
|
9662
|
+
],
|
|
9663
|
+
"properties": [
|
|
9087
9664
|
{
|
|
9088
|
-
"slug": "
|
|
9089
|
-
"label": "
|
|
9665
|
+
"slug": "churnedDate",
|
|
9666
|
+
"label": "Churned Date",
|
|
9090
9667
|
"valueType": "date",
|
|
9091
9668
|
"inputType": "date"
|
|
9092
9669
|
},
|
|
9093
9670
|
{
|
|
9094
|
-
"slug": "
|
|
9095
|
-
"label": "
|
|
9671
|
+
"slug": "churnReason",
|
|
9672
|
+
"label": "Reason",
|
|
9096
9673
|
"valueType": "string",
|
|
9097
9674
|
"inputType": "textarea"
|
|
9098
9675
|
},
|
|
9099
9676
|
{
|
|
9100
|
-
"slug": "
|
|
9677
|
+
"slug": "notes",
|
|
9101
9678
|
"label": "Notes",
|
|
9102
9679
|
"valueType": "string",
|
|
9103
9680
|
"inputType": "textarea"
|
|
9104
|
-
},
|
|
9105
|
-
{
|
|
9106
|
-
"slug": "handoffStatus",
|
|
9107
|
-
"label": "Handoff status",
|
|
9108
|
-
"valueType": "string",
|
|
9109
|
-
"inputType": "select",
|
|
9110
|
-
"enumValues": [
|
|
9111
|
-
"pending",
|
|
9112
|
-
"ready",
|
|
9113
|
-
"handed_off"
|
|
9114
|
-
]
|
|
9115
9681
|
}
|
|
9116
9682
|
]
|
|
9117
9683
|
}
|
|
@@ -11412,28 +11978,280 @@ var DATA = {
|
|
|
11412
11978
|
]
|
|
11413
11979
|
},
|
|
11414
11980
|
{
|
|
11415
|
-
"profileSlug": "trend",
|
|
11416
|
-
"what": "Directional shifts in tech, market, or behavior that affect you.",
|
|
11981
|
+
"profileSlug": "trend",
|
|
11982
|
+
"what": "Directional shifts in tech, market, or behavior that affect you.",
|
|
11983
|
+
"cardinality": "few",
|
|
11984
|
+
"keyFields": [
|
|
11985
|
+
"direction",
|
|
11986
|
+
"relevance"
|
|
11987
|
+
]
|
|
11988
|
+
}
|
|
11989
|
+
],
|
|
11990
|
+
"openingQuestions": [
|
|
11991
|
+
"Who are the key players in your space \u2014 the 3-5 companies that matter most?",
|
|
11992
|
+
"How do they relate \u2014 who partners with, competes with, or invested in whom?",
|
|
11993
|
+
"Which market segment matters most right now, and what trend is reshaping it?"
|
|
11994
|
+
],
|
|
11995
|
+
"doneWhen": "A few companies captured, with at least one relationship edge between them, plus one market segment."
|
|
11996
|
+
},
|
|
11997
|
+
"app": {
|
|
11998
|
+
"kind": "stored",
|
|
11999
|
+
"cellKey": "entity-detail"
|
|
12000
|
+
},
|
|
12001
|
+
"layout": {
|
|
12002
|
+
"defaultView": "Ecosystem Map",
|
|
12003
|
+
"defaultApp": null,
|
|
12004
|
+
"pinnedApps": [
|
|
12005
|
+
"dashboard",
|
|
12006
|
+
"data"
|
|
12007
|
+
],
|
|
12008
|
+
"sidebarItems": [
|
|
12009
|
+
{
|
|
12010
|
+
"kind": "view",
|
|
12011
|
+
"viewName": "Ecosystem Map",
|
|
12012
|
+
"label": "Ecosystem Map",
|
|
12013
|
+
"icon": "radar"
|
|
12014
|
+
},
|
|
12015
|
+
{
|
|
12016
|
+
"kind": "view",
|
|
12017
|
+
"viewName": "Segments",
|
|
12018
|
+
"label": "Segments",
|
|
12019
|
+
"icon": "pie-chart"
|
|
12020
|
+
},
|
|
12021
|
+
{
|
|
12022
|
+
"kind": "view",
|
|
12023
|
+
"viewName": "Trends",
|
|
12024
|
+
"label": "Trends",
|
|
12025
|
+
"icon": "trending-up"
|
|
12026
|
+
},
|
|
12027
|
+
{
|
|
12028
|
+
"kind": "view",
|
|
12029
|
+
"viewName": "Events",
|
|
12030
|
+
"label": "Events",
|
|
12031
|
+
"icon": "zap"
|
|
12032
|
+
},
|
|
12033
|
+
{
|
|
12034
|
+
"kind": "app",
|
|
12035
|
+
"appId": "data",
|
|
12036
|
+
"label": "Data",
|
|
12037
|
+
"icon": "database"
|
|
12038
|
+
}
|
|
12039
|
+
]
|
|
12040
|
+
},
|
|
12041
|
+
"bento": {
|
|
12042
|
+
"viewName": "Ecosystem Map",
|
|
12043
|
+
"blocks": [
|
|
12044
|
+
{
|
|
12045
|
+
"kind": "view",
|
|
12046
|
+
"viewName": "Ecosystem Map",
|
|
12047
|
+
"pos": {
|
|
12048
|
+
"x": 0,
|
|
12049
|
+
"y": 0,
|
|
12050
|
+
"w": 8,
|
|
12051
|
+
"h": 6
|
|
12052
|
+
}
|
|
12053
|
+
},
|
|
12054
|
+
{
|
|
12055
|
+
"kind": "view",
|
|
12056
|
+
"viewName": "Segments",
|
|
12057
|
+
"pos": {
|
|
12058
|
+
"x": 8,
|
|
12059
|
+
"y": 0,
|
|
12060
|
+
"w": 4,
|
|
12061
|
+
"h": 3
|
|
12062
|
+
}
|
|
12063
|
+
},
|
|
12064
|
+
{
|
|
12065
|
+
"kind": "view",
|
|
12066
|
+
"viewName": "Trends",
|
|
12067
|
+
"pos": {
|
|
12068
|
+
"x": 8,
|
|
12069
|
+
"y": 3,
|
|
12070
|
+
"w": 4,
|
|
12071
|
+
"h": 3
|
|
12072
|
+
}
|
|
12073
|
+
}
|
|
12074
|
+
]
|
|
12075
|
+
}
|
|
12076
|
+
},
|
|
12077
|
+
"enterprise-os": {
|
|
12078
|
+
"meta": {
|
|
12079
|
+
"slug": "enterprise-os",
|
|
12080
|
+
"name": "Enterprise OS",
|
|
12081
|
+
"description": "Stand up a company's public operating core in one install \u2014 strategy, market, operations, and pipeline \u2014 plus a command tower to track objectives across them.",
|
|
12082
|
+
"icon": "layout-dashboard",
|
|
12083
|
+
"color": "#4F46E5",
|
|
12084
|
+
"tags": [
|
|
12085
|
+
"suite",
|
|
12086
|
+
"enterprise",
|
|
12087
|
+
"os",
|
|
12088
|
+
"foundation",
|
|
12089
|
+
"crm",
|
|
12090
|
+
"operations",
|
|
12091
|
+
"ecosystem"
|
|
12092
|
+
],
|
|
12093
|
+
"isPublic": true
|
|
12094
|
+
},
|
|
12095
|
+
"dependencies": [
|
|
12096
|
+
{
|
|
12097
|
+
"slug": "foundation",
|
|
12098
|
+
"kind": "workspace",
|
|
12099
|
+
"relation": "require",
|
|
12100
|
+
"reason": "Strategic DNA + the pod-wide role vocabulary (partner/client/lead) every other lens reuses. Must resolve first."
|
|
12101
|
+
},
|
|
12102
|
+
{
|
|
12103
|
+
"slug": "ecosystem",
|
|
12104
|
+
"kind": "workspace",
|
|
12105
|
+
"relation": "require",
|
|
12106
|
+
"reason": "The market graph \u2014 the players, segments, and trends the company operates around."
|
|
12107
|
+
},
|
|
12108
|
+
{
|
|
12109
|
+
"slug": "operations",
|
|
12110
|
+
"kind": "workspace",
|
|
12111
|
+
"relation": "require",
|
|
12112
|
+
"reason": "How the company runs \u2014 the operational lens."
|
|
12113
|
+
},
|
|
12114
|
+
{
|
|
12115
|
+
"slug": "crm",
|
|
12116
|
+
"kind": "workspace",
|
|
12117
|
+
"relation": "require",
|
|
12118
|
+
"reason": "The pipeline \u2014 contacts, leads, clients, and deals."
|
|
12119
|
+
}
|
|
12120
|
+
],
|
|
12121
|
+
"workspace": {
|
|
12122
|
+
"name": "Enterprise OS",
|
|
12123
|
+
"description": "The command tower for the company operating system \u2014 track strategic objectives across the strategy, market, operations, and pipeline lenses this suite installs.",
|
|
12124
|
+
"subtype": "enterprise-os",
|
|
12125
|
+
"visibility": "pod_visible",
|
|
12126
|
+
"sourceRoles": {
|
|
12127
|
+
"strategy": "consumer"
|
|
12128
|
+
}
|
|
12129
|
+
},
|
|
12130
|
+
"profiles": [
|
|
12131
|
+
{
|
|
12132
|
+
"slug": "objective",
|
|
12133
|
+
"displayName": "Objective",
|
|
12134
|
+
"icon": "target",
|
|
12135
|
+
"color": "#4F46E5",
|
|
12136
|
+
"description": "A company objective the operating system is driving toward \u2014 the cross-cutting outcome the lenses serve.",
|
|
12137
|
+
"properties": [
|
|
12138
|
+
{
|
|
12139
|
+
"slug": "outcome",
|
|
12140
|
+
"label": "Outcome",
|
|
12141
|
+
"valueType": "string",
|
|
12142
|
+
"inputType": "textarea"
|
|
12143
|
+
},
|
|
12144
|
+
{
|
|
12145
|
+
"slug": "status",
|
|
12146
|
+
"label": "Status",
|
|
12147
|
+
"valueType": "string",
|
|
12148
|
+
"inputType": "select",
|
|
12149
|
+
"enumValues": [
|
|
12150
|
+
"on-track",
|
|
12151
|
+
"at-risk",
|
|
12152
|
+
"off-track",
|
|
12153
|
+
"achieved"
|
|
12154
|
+
],
|
|
12155
|
+
"constraints": {
|
|
12156
|
+
"defaultValue": "on-track"
|
|
12157
|
+
}
|
|
12158
|
+
},
|
|
12159
|
+
{
|
|
12160
|
+
"slug": "horizon",
|
|
12161
|
+
"label": "Horizon",
|
|
12162
|
+
"valueType": "string",
|
|
12163
|
+
"inputType": "select",
|
|
12164
|
+
"enumValues": [
|
|
12165
|
+
"now",
|
|
12166
|
+
"next",
|
|
12167
|
+
"later"
|
|
12168
|
+
],
|
|
12169
|
+
"constraints": {
|
|
12170
|
+
"defaultValue": "now"
|
|
12171
|
+
}
|
|
12172
|
+
},
|
|
12173
|
+
{
|
|
12174
|
+
"slug": "owner",
|
|
12175
|
+
"label": "Owner",
|
|
12176
|
+
"valueType": "string",
|
|
12177
|
+
"inputType": "text"
|
|
12178
|
+
},
|
|
12179
|
+
{
|
|
12180
|
+
"slug": "targetDate",
|
|
12181
|
+
"label": "Target Date",
|
|
12182
|
+
"valueType": "date",
|
|
12183
|
+
"inputType": "date"
|
|
12184
|
+
}
|
|
12185
|
+
]
|
|
12186
|
+
}
|
|
12187
|
+
],
|
|
12188
|
+
"views": [
|
|
12189
|
+
{
|
|
12190
|
+
"name": "Objectives",
|
|
12191
|
+
"slug": "objectives",
|
|
12192
|
+
"type": "table",
|
|
12193
|
+
"scopeProfileSlug": "objective",
|
|
12194
|
+
"description": "The company's strategic objectives across every lens, by horizon and status.",
|
|
12195
|
+
"defaultView": true,
|
|
12196
|
+
"config": {
|
|
12197
|
+
"columns": [
|
|
12198
|
+
"title",
|
|
12199
|
+
"status",
|
|
12200
|
+
"horizon",
|
|
12201
|
+
"owner",
|
|
12202
|
+
"targetDate"
|
|
12203
|
+
]
|
|
12204
|
+
}
|
|
12205
|
+
},
|
|
12206
|
+
{
|
|
12207
|
+
"name": "Objective Board",
|
|
12208
|
+
"slug": "objective-board",
|
|
12209
|
+
"type": "kanban",
|
|
12210
|
+
"scopeProfileSlug": "objective",
|
|
12211
|
+
"description": "Objectives grouped by status \u2014 a running scoreboard for the operating system.",
|
|
12212
|
+
"config": {
|
|
12213
|
+
"groupBy": "status"
|
|
12214
|
+
}
|
|
12215
|
+
}
|
|
12216
|
+
],
|
|
12217
|
+
"onboarding": {
|
|
12218
|
+
"goal": "Stand up the company's operating core and name the handful of strategic objectives it is driving \u2014 so strategy, market, operations, and pipeline are all in place and pointed at the same outcomes from day one.\n",
|
|
12219
|
+
"framing": "THE CHIEF OF STAFF: Act as a sharp chief of staff standing up the company OS.\nThe four lenses (foundation, ecosystem, operations, CRM) are already\ninstalled \u2014 your job is to name the 3-5 objectives that cut across them, so\nthe operating system has a scoreboard, not just structure.\n",
|
|
12220
|
+
"expertise": {
|
|
12221
|
+
"starters": [
|
|
12222
|
+
"Name few, real objectives. An operating system with 20 objectives has none; force the 3-5 that actually decide the year, each with an owner and a horizon (now / next / later).\n",
|
|
12223
|
+
"Tie each objective to a lens. A good objective names where it lives \u2014 pipeline growth (CRM), a market move (ecosystem), an operational fix (operations), or a positioning shift (foundation) \u2014 so the scoreboard maps to the structure underneath it.\n"
|
|
12224
|
+
],
|
|
12225
|
+
"blindSpots": [
|
|
12226
|
+
"Objectives with no owner and no date are wishes. Every one needs a single owner and a target date, or it will not move.\n",
|
|
12227
|
+
'"Grow the business" is not an objective \u2014 it is a category. Push for the specific outcome that would make this quarter a win.\n'
|
|
12228
|
+
],
|
|
12229
|
+
"bar": "A short, honest scoreboard: 3-5 objectives, each owned, dated, placed on a horizon, and tied to the lens that serves it \u2014 sitting on top of a fully installed operating core.\n"
|
|
12230
|
+
},
|
|
12231
|
+
"collect": [
|
|
12232
|
+
{
|
|
12233
|
+
"profileSlug": "objective",
|
|
12234
|
+
"what": "The 3-5 strategic objectives the company is driving this horizon.",
|
|
11417
12235
|
"cardinality": "few",
|
|
11418
12236
|
"keyFields": [
|
|
11419
|
-
"
|
|
11420
|
-
"
|
|
12237
|
+
"status",
|
|
12238
|
+
"horizon",
|
|
12239
|
+
"owner"
|
|
11421
12240
|
]
|
|
11422
12241
|
}
|
|
11423
12242
|
],
|
|
11424
12243
|
"openingQuestions": [
|
|
11425
|
-
"
|
|
11426
|
-
"
|
|
11427
|
-
"Which market segment matters most right now, and what trend is reshaping it?"
|
|
12244
|
+
"What are the 3-5 objectives that will decide this year for the company?",
|
|
12245
|
+
"Who owns each one, and is it a now, next, or later horizon?"
|
|
11428
12246
|
],
|
|
11429
|
-
"doneWhen": "A few
|
|
12247
|
+
"doneWhen": "A few objectives captured, each with an owner and a horizon."
|
|
11430
12248
|
},
|
|
11431
12249
|
"app": {
|
|
11432
12250
|
"kind": "stored",
|
|
11433
12251
|
"cellKey": "entity-detail"
|
|
11434
12252
|
},
|
|
11435
12253
|
"layout": {
|
|
11436
|
-
"defaultView": "
|
|
12254
|
+
"defaultView": "Objectives",
|
|
11437
12255
|
"defaultApp": null,
|
|
11438
12256
|
"pinnedApps": [
|
|
11439
12257
|
"dashboard",
|
|
@@ -11442,27 +12260,15 @@ var DATA = {
|
|
|
11442
12260
|
"sidebarItems": [
|
|
11443
12261
|
{
|
|
11444
12262
|
"kind": "view",
|
|
11445
|
-
"viewName": "
|
|
11446
|
-
"label": "
|
|
11447
|
-
"icon": "
|
|
11448
|
-
},
|
|
11449
|
-
{
|
|
11450
|
-
"kind": "view",
|
|
11451
|
-
"viewName": "Segments",
|
|
11452
|
-
"label": "Segments",
|
|
11453
|
-
"icon": "pie-chart"
|
|
11454
|
-
},
|
|
11455
|
-
{
|
|
11456
|
-
"kind": "view",
|
|
11457
|
-
"viewName": "Trends",
|
|
11458
|
-
"label": "Trends",
|
|
11459
|
-
"icon": "trending-up"
|
|
12263
|
+
"viewName": "Objectives",
|
|
12264
|
+
"label": "Objectives",
|
|
12265
|
+
"icon": "target"
|
|
11460
12266
|
},
|
|
11461
12267
|
{
|
|
11462
12268
|
"kind": "view",
|
|
11463
|
-
"viewName": "
|
|
11464
|
-
"label": "
|
|
11465
|
-
"icon": "
|
|
12269
|
+
"viewName": "Objective Board",
|
|
12270
|
+
"label": "Board",
|
|
12271
|
+
"icon": "kanban-square"
|
|
11466
12272
|
},
|
|
11467
12273
|
{
|
|
11468
12274
|
"kind": "app",
|
|
@@ -11473,36 +12279,26 @@ var DATA = {
|
|
|
11473
12279
|
]
|
|
11474
12280
|
},
|
|
11475
12281
|
"bento": {
|
|
11476
|
-
"viewName": "
|
|
12282
|
+
"viewName": "Objectives",
|
|
11477
12283
|
"blocks": [
|
|
11478
12284
|
{
|
|
11479
12285
|
"kind": "view",
|
|
11480
|
-
"viewName": "
|
|
12286
|
+
"viewName": "Objectives",
|
|
11481
12287
|
"pos": {
|
|
11482
12288
|
"x": 0,
|
|
11483
12289
|
"y": 0,
|
|
11484
12290
|
"w": 8,
|
|
11485
|
-
"h":
|
|
12291
|
+
"h": 4
|
|
11486
12292
|
}
|
|
11487
12293
|
},
|
|
11488
12294
|
{
|
|
11489
12295
|
"kind": "view",
|
|
11490
|
-
"viewName": "
|
|
12296
|
+
"viewName": "Objective Board",
|
|
11491
12297
|
"pos": {
|
|
11492
12298
|
"x": 8,
|
|
11493
12299
|
"y": 0,
|
|
11494
12300
|
"w": 4,
|
|
11495
|
-
"h":
|
|
11496
|
-
}
|
|
11497
|
-
},
|
|
11498
|
-
{
|
|
11499
|
-
"kind": "view",
|
|
11500
|
-
"viewName": "Trends",
|
|
11501
|
-
"pos": {
|
|
11502
|
-
"x": 8,
|
|
11503
|
-
"y": 3,
|
|
11504
|
-
"w": 4,
|
|
11505
|
-
"h": 3
|
|
12301
|
+
"h": 4
|
|
11506
12302
|
}
|
|
11507
12303
|
}
|
|
11508
12304
|
]
|
|
@@ -20236,14 +21032,9 @@ var DATA = {
|
|
|
20236
21032
|
"slug": "lead",
|
|
20237
21033
|
"displayName": "Lead",
|
|
20238
21034
|
"icon": "user-plus",
|
|
20239
|
-
"color": "
|
|
20240
|
-
"description": "A potential customer or partner contact in your pipeline",
|
|
20241
|
-
"semanticSlug": "marketing.lead",
|
|
21035
|
+
"color": "yellow",
|
|
20242
21036
|
"scope": "shared",
|
|
20243
21037
|
"profileKind": "role",
|
|
20244
|
-
"applicableKinds": [
|
|
20245
|
-
"person"
|
|
20246
|
-
],
|
|
20247
21038
|
"properties": [
|
|
20248
21039
|
{
|
|
20249
21040
|
"slug": "lead-source",
|
|
@@ -23793,6 +24584,234 @@ var DATA = {
|
|
|
23793
24584
|
}
|
|
23794
24585
|
]
|
|
23795
24586
|
}
|
|
24587
|
+
},
|
|
24588
|
+
"the-arch": {
|
|
24589
|
+
"meta": {
|
|
24590
|
+
"slug": "the-arch",
|
|
24591
|
+
"name": "The Arch",
|
|
24592
|
+
"description": "The complete private company brain \u2014 the whole Enterprise OS plus the grant pipeline, the web3 ecosystem overlay, and the dev dashboard.",
|
|
24593
|
+
"icon": "landmark",
|
|
24594
|
+
"color": "#7C3AED",
|
|
24595
|
+
"tags": [
|
|
24596
|
+
"suite",
|
|
24597
|
+
"private",
|
|
24598
|
+
"arch",
|
|
24599
|
+
"grants",
|
|
24600
|
+
"web3",
|
|
24601
|
+
"flagship"
|
|
24602
|
+
],
|
|
24603
|
+
"isPublic": false
|
|
24604
|
+
},
|
|
24605
|
+
"dependencies": [
|
|
24606
|
+
{
|
|
24607
|
+
"slug": "enterprise-os",
|
|
24608
|
+
"kind": "workspace",
|
|
24609
|
+
"relation": "require",
|
|
24610
|
+
"reason": "The whole public operating core \u2014 strategy, market, operations, and pipeline \u2014 that the private flagships extend."
|
|
24611
|
+
},
|
|
24612
|
+
{
|
|
24613
|
+
"slug": "grants",
|
|
24614
|
+
"kind": "workspace",
|
|
24615
|
+
"relation": "require",
|
|
24616
|
+
"reason": "The grant-agency pipeline; composes its operations onto the Operations workspace the OS installs."
|
|
24617
|
+
},
|
|
24618
|
+
{
|
|
24619
|
+
"slug": "blockchain-ecosystem",
|
|
24620
|
+
"kind": "workspace",
|
|
24621
|
+
"relation": "require",
|
|
24622
|
+
"reason": "Web3 market actors + relations; composes onto the Ecosystem workspace the OS installs."
|
|
24623
|
+
},
|
|
24624
|
+
{
|
|
24625
|
+
"slug": "dev-dashboard",
|
|
24626
|
+
"kind": "workspace",
|
|
24627
|
+
"relation": "require",
|
|
24628
|
+
"reason": "The engineering / ops dashboard \u2014 the build-side view of the company."
|
|
24629
|
+
}
|
|
24630
|
+
],
|
|
24631
|
+
"workspace": {
|
|
24632
|
+
"name": "The Arch",
|
|
24633
|
+
"description": "The private command layer over the full company brain \u2014 track the cross-workspace initiatives that span the operating system and its private flagships.",
|
|
24634
|
+
"subtype": "the-arch",
|
|
24635
|
+
"visibility": "private"
|
|
24636
|
+
},
|
|
24637
|
+
"profiles": [
|
|
24638
|
+
{
|
|
24639
|
+
"slug": "initiative",
|
|
24640
|
+
"displayName": "Initiative",
|
|
24641
|
+
"icon": "flag",
|
|
24642
|
+
"color": "#7C3AED",
|
|
24643
|
+
"description": "A cross-workspace initiative that spans the operating system and its private flagships.",
|
|
24644
|
+
"properties": [
|
|
24645
|
+
{
|
|
24646
|
+
"slug": "summary",
|
|
24647
|
+
"label": "Summary",
|
|
24648
|
+
"valueType": "string",
|
|
24649
|
+
"inputType": "textarea"
|
|
24650
|
+
},
|
|
24651
|
+
{
|
|
24652
|
+
"slug": "stage",
|
|
24653
|
+
"label": "Stage",
|
|
24654
|
+
"valueType": "string",
|
|
24655
|
+
"inputType": "select",
|
|
24656
|
+
"enumValues": [
|
|
24657
|
+
"shaping",
|
|
24658
|
+
"active",
|
|
24659
|
+
"blocked",
|
|
24660
|
+
"shipped",
|
|
24661
|
+
"archived"
|
|
24662
|
+
],
|
|
24663
|
+
"constraints": {
|
|
24664
|
+
"defaultValue": "shaping"
|
|
24665
|
+
}
|
|
24666
|
+
},
|
|
24667
|
+
{
|
|
24668
|
+
"slug": "lead",
|
|
24669
|
+
"label": "Lead",
|
|
24670
|
+
"valueType": "string",
|
|
24671
|
+
"inputType": "text"
|
|
24672
|
+
},
|
|
24673
|
+
{
|
|
24674
|
+
"slug": "priority",
|
|
24675
|
+
"label": "Priority",
|
|
24676
|
+
"valueType": "string",
|
|
24677
|
+
"inputType": "select",
|
|
24678
|
+
"enumValues": [
|
|
24679
|
+
"low",
|
|
24680
|
+
"medium",
|
|
24681
|
+
"high",
|
|
24682
|
+
"critical"
|
|
24683
|
+
],
|
|
24684
|
+
"constraints": {
|
|
24685
|
+
"defaultValue": "medium"
|
|
24686
|
+
}
|
|
24687
|
+
},
|
|
24688
|
+
{
|
|
24689
|
+
"slug": "dueDate",
|
|
24690
|
+
"label": "Due Date",
|
|
24691
|
+
"valueType": "date",
|
|
24692
|
+
"inputType": "date"
|
|
24693
|
+
}
|
|
24694
|
+
]
|
|
24695
|
+
}
|
|
24696
|
+
],
|
|
24697
|
+
"views": [
|
|
24698
|
+
{
|
|
24699
|
+
"name": "Initiatives",
|
|
24700
|
+
"slug": "initiatives",
|
|
24701
|
+
"type": "table",
|
|
24702
|
+
"scopeProfileSlug": "initiative",
|
|
24703
|
+
"description": "The cross-workspace initiatives spanning the full company brain, by stage and priority.",
|
|
24704
|
+
"defaultView": true,
|
|
24705
|
+
"config": {
|
|
24706
|
+
"columns": [
|
|
24707
|
+
"title",
|
|
24708
|
+
"stage",
|
|
24709
|
+
"priority",
|
|
24710
|
+
"lead",
|
|
24711
|
+
"dueDate"
|
|
24712
|
+
]
|
|
24713
|
+
}
|
|
24714
|
+
},
|
|
24715
|
+
{
|
|
24716
|
+
"name": "Initiative Board",
|
|
24717
|
+
"slug": "initiative-board",
|
|
24718
|
+
"type": "kanban",
|
|
24719
|
+
"scopeProfileSlug": "initiative",
|
|
24720
|
+
"description": "Initiatives grouped by stage \u2014 the command view over everything in flight.",
|
|
24721
|
+
"config": {
|
|
24722
|
+
"groupBy": "stage"
|
|
24723
|
+
}
|
|
24724
|
+
}
|
|
24725
|
+
],
|
|
24726
|
+
"onboarding": {
|
|
24727
|
+
"goal": "Name the cross-workspace initiatives that span the operating system and its private flagships \u2014 the few big things in flight that touch more than one lens \u2014 so The Arch is a real command layer, not just an aggregate of apps.\n",
|
|
24728
|
+
"framing": "THE FOUNDER'S COMMAND LAYER: Act from the seat above every lens. The whole\ncompany brain is installed \u2014 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",
|
|
24729
|
+
"expertise": {
|
|
24730
|
+
"starters": [
|
|
24731
|
+
"Name the cross-cutting few. An initiative earns a place here only if it spans more than one workspace \u2014 a grant round that pulls in operations, ecosystem, and dev. Single-lens work stays in its lens.\n",
|
|
24732
|
+
"Give each initiative a real stage and lead. Shaping / active / blocked / shipped is the honest status; a lead is who to ask. Without them the command layer is a wish list.\n"
|
|
24733
|
+
],
|
|
24734
|
+
"blindSpots": [
|
|
24735
|
+
'Everything marked "high priority" is the same as nothing marked. Force the ranking \u2014 what is actually critical this week?\n',
|
|
24736
|
+
"A blocked initiative with no note about the blocker is invisible risk. Name what is stuck and on whom.\n"
|
|
24737
|
+
],
|
|
24738
|
+
"bar": "A short command board: the few genuinely cross-workspace initiatives, each with a stage, a lead, and an honest priority \u2014 sitting over a fully installed company brain.\n"
|
|
24739
|
+
},
|
|
24740
|
+
"collect": [
|
|
24741
|
+
{
|
|
24742
|
+
"profileSlug": "initiative",
|
|
24743
|
+
"what": "The cross-workspace initiatives currently in flight.",
|
|
24744
|
+
"cardinality": "few",
|
|
24745
|
+
"keyFields": [
|
|
24746
|
+
"stage",
|
|
24747
|
+
"priority",
|
|
24748
|
+
"lead"
|
|
24749
|
+
]
|
|
24750
|
+
}
|
|
24751
|
+
],
|
|
24752
|
+
"openingQuestions": [
|
|
24753
|
+
"What are the few big initiatives in flight that span more than one part of the company?",
|
|
24754
|
+
"For each, what stage is it in and who is the lead?"
|
|
24755
|
+
],
|
|
24756
|
+
"doneWhen": "A few cross-workspace initiatives captured, each with a stage and a lead."
|
|
24757
|
+
},
|
|
24758
|
+
"app": {
|
|
24759
|
+
"kind": "stored",
|
|
24760
|
+
"cellKey": "entity-detail"
|
|
24761
|
+
},
|
|
24762
|
+
"layout": {
|
|
24763
|
+
"defaultView": "Initiatives",
|
|
24764
|
+
"defaultApp": null,
|
|
24765
|
+
"pinnedApps": [
|
|
24766
|
+
"dashboard",
|
|
24767
|
+
"data"
|
|
24768
|
+
],
|
|
24769
|
+
"sidebarItems": [
|
|
24770
|
+
{
|
|
24771
|
+
"kind": "view",
|
|
24772
|
+
"viewName": "Initiatives",
|
|
24773
|
+
"label": "Initiatives",
|
|
24774
|
+
"icon": "flag"
|
|
24775
|
+
},
|
|
24776
|
+
{
|
|
24777
|
+
"kind": "view",
|
|
24778
|
+
"viewName": "Initiative Board",
|
|
24779
|
+
"label": "Board",
|
|
24780
|
+
"icon": "kanban-square"
|
|
24781
|
+
},
|
|
24782
|
+
{
|
|
24783
|
+
"kind": "app",
|
|
24784
|
+
"appId": "data",
|
|
24785
|
+
"label": "Data",
|
|
24786
|
+
"icon": "database"
|
|
24787
|
+
}
|
|
24788
|
+
]
|
|
24789
|
+
},
|
|
24790
|
+
"bento": {
|
|
24791
|
+
"viewName": "Initiatives",
|
|
24792
|
+
"blocks": [
|
|
24793
|
+
{
|
|
24794
|
+
"kind": "view",
|
|
24795
|
+
"viewName": "Initiatives",
|
|
24796
|
+
"pos": {
|
|
24797
|
+
"x": 0,
|
|
24798
|
+
"y": 0,
|
|
24799
|
+
"w": 8,
|
|
24800
|
+
"h": 4
|
|
24801
|
+
}
|
|
24802
|
+
},
|
|
24803
|
+
{
|
|
24804
|
+
"kind": "view",
|
|
24805
|
+
"viewName": "Initiative Board",
|
|
24806
|
+
"pos": {
|
|
24807
|
+
"x": 8,
|
|
24808
|
+
"y": 0,
|
|
24809
|
+
"w": 4,
|
|
24810
|
+
"h": 4
|
|
24811
|
+
}
|
|
24812
|
+
}
|
|
24813
|
+
]
|
|
24814
|
+
}
|
|
23796
24815
|
}
|
|
23797
24816
|
};
|
|
23798
24817
|
var WORKSPACE_TEMPLATES = DATA;
|
|
@@ -23806,7 +24825,113 @@ function listPublicTemplates() {
|
|
|
23806
24825
|
return Object.values(WORKSPACE_TEMPLATES).filter((t) => t.meta?.isPublic !== false);
|
|
23807
24826
|
}
|
|
23808
24827
|
|
|
24828
|
+
// src/catalog.ts
|
|
24829
|
+
function parseSemver(v) {
|
|
24830
|
+
if (!v) return null;
|
|
24831
|
+
const m = /^\s*v?(\d+)\.(\d+)\.(\d+)/.exec(v);
|
|
24832
|
+
if (!m) return null;
|
|
24833
|
+
return [Number(m[1]), Number(m[2]), Number(m[3])];
|
|
24834
|
+
}
|
|
24835
|
+
function remoteIsStrictlyNewer(remoteVersion, bundleVersion) {
|
|
24836
|
+
const r = parseSemver(remoteVersion);
|
|
24837
|
+
const b = parseSemver(bundleVersion);
|
|
24838
|
+
if (!r || !b) return false;
|
|
24839
|
+
for (let i = 0; i < 3; i++) {
|
|
24840
|
+
if (r[i] > b[i]) return true;
|
|
24841
|
+
if (r[i] < b[i]) return false;
|
|
24842
|
+
}
|
|
24843
|
+
return false;
|
|
24844
|
+
}
|
|
24845
|
+
function bundledToEntry(tpl) {
|
|
24846
|
+
return {
|
|
24847
|
+
source: "bundled",
|
|
24848
|
+
slug: tpl.meta.slug,
|
|
24849
|
+
name: tpl.meta.name,
|
|
24850
|
+
description: tpl.meta.description,
|
|
24851
|
+
// Every bundled template is a full workspace — the CP calls this category
|
|
24852
|
+
// "workspace" (PACKAGE_TYPES). Finer display grouping is derived from `tags`
|
|
24853
|
+
// by the consumer (browser `categoryFor`), not baked in here.
|
|
24854
|
+
category: "workspace",
|
|
24855
|
+
tags: tpl.meta.tags ?? [],
|
|
24856
|
+
icon: tpl.meta.icon,
|
|
24857
|
+
isPrivate: tpl.meta.isPublic === false,
|
|
24858
|
+
template: tpl
|
|
24859
|
+
};
|
|
24860
|
+
}
|
|
24861
|
+
function remoteToEntry(row) {
|
|
24862
|
+
return {
|
|
24863
|
+
source: "remote",
|
|
24864
|
+
slug: row.slug,
|
|
24865
|
+
name: row.name,
|
|
24866
|
+
description: row.description,
|
|
24867
|
+
category: row.category,
|
|
24868
|
+
tags: row.tags ?? [],
|
|
24869
|
+
icon: row.icon ?? null,
|
|
24870
|
+
isPrivate: row.isPrivate ?? false,
|
|
24871
|
+
remote: row
|
|
24872
|
+
};
|
|
24873
|
+
}
|
|
24874
|
+
function mergeCatalog(input) {
|
|
24875
|
+
const { bundled, bundleVersion } = input;
|
|
24876
|
+
const remoteStatus = input.remoteStatus ?? "ok";
|
|
24877
|
+
const remote = input.remote ?? [];
|
|
24878
|
+
const bySlug = /* @__PURE__ */ new Map();
|
|
24879
|
+
for (const tpl of bundled) {
|
|
24880
|
+
bySlug.set(tpl.meta.slug, bundledToEntry(tpl));
|
|
24881
|
+
}
|
|
24882
|
+
if (remoteStatus === "ok") {
|
|
24883
|
+
for (const row of remote) {
|
|
24884
|
+
const existing = bySlug.get(row.slug);
|
|
24885
|
+
if (!existing) {
|
|
24886
|
+
bySlug.set(row.slug, remoteToEntry(row));
|
|
24887
|
+
continue;
|
|
24888
|
+
}
|
|
24889
|
+
if (existing.source !== "bundled") {
|
|
24890
|
+
continue;
|
|
24891
|
+
}
|
|
24892
|
+
const remoteVersion = row.definition?.sourcePackage?.version;
|
|
24893
|
+
if (remoteIsStrictlyNewer(remoteVersion, bundleVersion)) {
|
|
24894
|
+
bySlug.set(row.slug, remoteToEntry(row));
|
|
24895
|
+
}
|
|
24896
|
+
}
|
|
24897
|
+
}
|
|
24898
|
+
return {
|
|
24899
|
+
entries: [...bySlug.values()],
|
|
24900
|
+
sources: { bundled: "ok", remote: remoteStatus }
|
|
24901
|
+
};
|
|
24902
|
+
}
|
|
24903
|
+
|
|
23809
24904
|
// src/define.ts
|
|
24905
|
+
function resolveBlockKind(block) {
|
|
24906
|
+
if (block.kind === "widget" || block.kind === "view") return block.kind;
|
|
24907
|
+
if (block.widgetType) return "widget";
|
|
24908
|
+
if (block.viewName) return "view";
|
|
24909
|
+
return null;
|
|
24910
|
+
}
|
|
24911
|
+
function splitBentoBlocks(blocks) {
|
|
24912
|
+
const bentoLayout = [];
|
|
24913
|
+
const bentoViewBlocks = [];
|
|
24914
|
+
for (const block of blocks ?? []) {
|
|
24915
|
+
const kind = resolveBlockKind(block);
|
|
24916
|
+
if (kind === "widget") {
|
|
24917
|
+
if (!block.widgetType) continue;
|
|
24918
|
+
bentoLayout.push({
|
|
24919
|
+
widgetType: block.widgetType,
|
|
24920
|
+
pos: block.pos,
|
|
24921
|
+
...block.config ? { config: block.config } : {}
|
|
24922
|
+
});
|
|
24923
|
+
} else if (kind === "view") {
|
|
24924
|
+
if (!block.viewName) continue;
|
|
24925
|
+
bentoViewBlocks.push({
|
|
24926
|
+
kind: "view",
|
|
24927
|
+
viewName: block.viewName,
|
|
24928
|
+
pos: block.pos,
|
|
24929
|
+
...block.overrides ? { overrides: block.overrides } : {}
|
|
24930
|
+
});
|
|
24931
|
+
}
|
|
24932
|
+
}
|
|
24933
|
+
return { bentoLayout, bentoViewBlocks };
|
|
24934
|
+
}
|
|
23810
24935
|
function toWorkspaceDefinition(slugOrYaml, nameOverride) {
|
|
23811
24936
|
const tpl = typeof slugOrYaml === "string" ? getWorkspaceTemplate(slugOrYaml) : slugOrYaml;
|
|
23812
24937
|
if (!tpl) {
|
|
@@ -23815,6 +24940,7 @@ function toWorkspaceDefinition(slugOrYaml, nameOverride) {
|
|
|
23815
24940
|
const ws = tpl.workspace;
|
|
23816
24941
|
const name = nameOverride ?? ws.name;
|
|
23817
24942
|
const proposalId = ws.proposalId ?? `${tpl.meta.slug}-v1`;
|
|
24943
|
+
const bento = splitBentoBlocks(tpl.bento?.blocks);
|
|
23818
24944
|
const definition = {
|
|
23819
24945
|
workspaceName: name,
|
|
23820
24946
|
description: ws.description,
|
|
@@ -23827,7 +24953,8 @@ function toWorkspaceDefinition(slugOrYaml, nameOverride) {
|
|
|
23827
24953
|
displayTemplates: tpl.displayTemplates,
|
|
23828
24954
|
layoutConfig: tpl.layout,
|
|
23829
24955
|
bentoViewName: tpl.bento?.viewName,
|
|
23830
|
-
|
|
24956
|
+
bentoLayout: bento.bentoLayout,
|
|
24957
|
+
bentoViewBlocks: bento.bentoViewBlocks,
|
|
23831
24958
|
profileEntityBentoTemplates: tpl.profileEntityBentoTemplates,
|
|
23832
24959
|
workspaceSubtype: ws.subtype,
|
|
23833
24960
|
workspaceType: ws.workspaceType,
|
|
@@ -23856,6 +24983,7 @@ function toPackageDefinition(slugOrYaml) {
|
|
|
23856
24983
|
throw new Error(`Workspace template not found: ${String(slugOrYaml)}`);
|
|
23857
24984
|
}
|
|
23858
24985
|
const ws = tpl.workspace;
|
|
24986
|
+
const bento = splitBentoBlocks(tpl.bento?.blocks);
|
|
23859
24987
|
return {
|
|
23860
24988
|
_meta: {
|
|
23861
24989
|
slug: tpl.meta.slug,
|
|
@@ -23878,7 +25006,8 @@ function toPackageDefinition(slugOrYaml) {
|
|
|
23878
25006
|
suggestedRelations: tpl.suggestedRelations,
|
|
23879
25007
|
displayTemplates: tpl.displayTemplates,
|
|
23880
25008
|
entityLinks: tpl.entityLinks,
|
|
23881
|
-
bentoLayout:
|
|
25009
|
+
bentoLayout: bento.bentoLayout,
|
|
25010
|
+
bentoViewBlocks: bento.bentoViewBlocks,
|
|
23882
25011
|
bentoViewName: tpl.bento?.viewName,
|
|
23883
25012
|
profileEntityBentoTemplates: tpl.profileEntityBentoTemplates,
|
|
23884
25013
|
layoutConfig: tpl.layout,
|
|
@@ -23889,10 +25018,13 @@ function toPackageDefinition(slugOrYaml) {
|
|
|
23889
25018
|
};
|
|
23890
25019
|
}
|
|
23891
25020
|
export {
|
|
25021
|
+
PACKAGE_DEPENDENCY_KINDS,
|
|
23892
25022
|
WORKSPACE_TEMPLATES,
|
|
23893
25023
|
getWorkspaceTemplate,
|
|
23894
25024
|
listPublicTemplates,
|
|
23895
25025
|
listWorkspaceTemplates,
|
|
25026
|
+
mergeCatalog,
|
|
25027
|
+
splitBentoBlocks,
|
|
23896
25028
|
toPackageDefinition,
|
|
23897
25029
|
toWorkspaceDefinition
|
|
23898
25030
|
};
|