@elevasis/sdk 1.24.0 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +875 -834
- package/dist/index.d.ts +4857 -4547
- package/dist/index.js +564 -2338
- package/dist/node/index.d.ts +693 -1356
- package/dist/node/index.js +1 -1
- package/dist/test-utils/index.d.ts +4186 -4139
- package/dist/test-utils/index.js +694 -2769
- package/dist/types/worker/adapters/clickup.d.ts +22 -0
- package/dist/types/worker/adapters/index.d.ts +1 -0
- package/dist/types/worker/index.d.ts +3 -2
- package/dist/types/worker/platform.d.ts +2 -2
- package/dist/worker/index.js +427 -2803
- package/package.json +2 -2
- package/reference/_navigation.md +11 -1
- package/reference/_reference-manifest.json +70 -0
- package/reference/claude-config/rules/organization-model.md +12 -1
- package/reference/claude-config/rules/organization-os.md +12 -1
- package/reference/claude-config/skills/om/SKILL.md +13 -5
- package/reference/claude-config/skills/om/operations/codify-level-a.md +109 -100
- package/reference/claude-config/skills/om/operations/customers.md +10 -6
- package/reference/claude-config/skills/om/operations/features.md +7 -3
- package/reference/claude-config/skills/om/operations/goals.md +10 -6
- package/reference/claude-config/skills/om/operations/identity.md +8 -5
- package/reference/claude-config/skills/om/operations/labels.md +17 -1
- package/reference/claude-config/skills/om/operations/offerings.md +11 -7
- package/reference/claude-config/skills/om/operations/roles.md +11 -7
- package/reference/claude-config/skills/om/operations/techStack.md +10 -2
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -0
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -0
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -0
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -0
- package/reference/cli-management.mdx +539 -0
- package/reference/cli.mdx +579 -808
- package/reference/concepts.mdx +134 -146
- package/reference/deployment/api.mdx +296 -297
- package/reference/deployment/command-center.mdx +208 -209
- package/reference/deployment/index.mdx +194 -195
- package/reference/deployment/provided-features.mdx +110 -107
- package/reference/deployment/ui-execution.mdx +249 -250
- package/reference/framework/index.mdx +111 -195
- package/reference/framework/resource-documentation.mdx +90 -0
- package/reference/framework/tutorial-system.mdx +135 -135
- package/reference/getting-started.mdx +141 -142
- package/reference/index.mdx +95 -106
- package/reference/packages/ui/src/auth/README.md +6 -6
- package/reference/platform-tools/adapters-integration.mdx +300 -301
- package/reference/platform-tools/adapters-platform.mdx +552 -553
- package/reference/platform-tools/index.mdx +216 -217
- package/reference/platform-tools/type-safety.mdx +82 -82
- package/reference/resources/index.mdx +348 -349
- package/reference/resources/patterns.mdx +446 -449
- package/reference/resources/types.mdx +115 -116
- package/reference/roadmap.mdx +164 -165
- package/reference/rules/organization-model.md +14 -0
- package/reference/runtime.mdx +172 -173
- package/reference/scaffold/operations/propagation-pipeline.md +1 -1
- package/reference/scaffold/recipes/customize-crm-actions.md +45 -46
- package/reference/scaffold/recipes/extend-crm.md +253 -255
- package/reference/scaffold/recipes/extend-lead-gen.md +130 -77
- package/reference/scaffold/recipes/index.md +43 -44
- package/reference/scaffold/reference/contracts.md +1275 -1432
- package/reference/scaffold/reference/glossary.md +8 -6
- package/reference/scaffold/ui/feature-flags-and-gating.md +59 -46
- package/reference/scaffold/ui/feature-shell.mdx +11 -11
- package/reference/scaffold/ui/recipes.md +24 -24
- package/reference/troubleshooting.mdx +222 -223
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"description": "SDK for building Elevasis organization resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"tsup": "^8.0.0",
|
|
59
59
|
"typescript": "5.9.2",
|
|
60
60
|
"zod": "^4.1.0",
|
|
61
|
-
"@repo/core": "0.
|
|
61
|
+
"@repo/core": "0.31.0",
|
|
62
62
|
"@repo/eslint-config": "0.0.0",
|
|
63
63
|
"@repo/typescript-config": "0.0.0"
|
|
64
64
|
},
|
package/reference/_navigation.md
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
Auto-generated from the package reference manifests.
|
|
6
6
|
|
|
7
|
-
Package entries indexed:
|
|
7
|
+
Package entries indexed: 60.
|
|
8
|
+
|
|
9
|
+
## @elevasis/core / Auth
|
|
10
|
+
|
|
11
|
+
| Resource | Location | Description | When to Load |
|
|
12
|
+
| --- | --- | --- | --- |
|
|
13
|
+
| Auth | `packages/core/src/README.md` | Published browser-safe auth contracts, AccessKeys, and Access Model primitives. | (not specified) |
|
|
8
14
|
|
|
9
15
|
## @elevasis/core / Core
|
|
10
16
|
|
|
@@ -93,6 +99,8 @@ Package entries indexed: 55.
|
|
|
93
99
|
| Features Settings | `packages/ui/src/features/README.md` | Published settings feature surface for downstream shells. | (not specified) |
|
|
94
100
|
| Features Knowledge | `packages/ui/src/features/README.md` | Published knowledge feature manifest for downstream shells. | (not specified) |
|
|
95
101
|
| Features Clients | `packages/ui/src/features/README.md` | Published clients feature surface for downstream shells. | (not specified) |
|
|
102
|
+
| Features Notes | `packages/ui/src/features/README.md` | Published Notes panel view and supporting note components for shared right-panel integrations. | (not specified) |
|
|
103
|
+
| Features Right Panel Host | `packages/ui/src/features/README.md` | Published right-panel host provider, layer, trigger, keyboard shortcut, store, and view contract. | (not specified) |
|
|
96
104
|
|
|
97
105
|
## @elevasis/ui / Foundation
|
|
98
106
|
|
|
@@ -118,7 +126,9 @@ Package entries indexed: 55.
|
|
|
118
126
|
| Resource | Location | Description | When to Load |
|
|
119
127
|
| --- | --- | --- | --- |
|
|
120
128
|
| Hooks | `packages/ui/src/hooks/README.md` | Headless hooks surface for executions, sessions, observability, and operations. | (not specified) |
|
|
129
|
+
| Hooks Access | `packages/ui/src/hooks/README.md` | Published Access Model hook surface for checking route, section, and action access. | (not specified) |
|
|
121
130
|
| Hooks Delivery | `packages/ui/src/hooks/README.md` | Published delivery hooks for projects, milestones, tasks, and notes. | (not specified) |
|
|
131
|
+
| Hooks User Notes | `packages/ui/src/hooks/README.md` | Published user-notes query and mutation hooks used by shared Notes surfaces. | (not specified) |
|
|
122
132
|
| Transform Command View Data | `packages/ui/src/hooks/README.md` | Utility that transforms backend CommandViewData arrays into a unified frontend CommandViewGraph with nodes and edges. | (not specified) |
|
|
123
133
|
|
|
124
134
|
## @elevasis/ui / Provider
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"packageName": "@elevasis/core",
|
|
6
|
+
"packageDir": "packages/core",
|
|
7
|
+
"subpath": "./auth",
|
|
8
|
+
"kind": "subpath",
|
|
9
|
+
"title": "Auth",
|
|
10
|
+
"description": "Published browser-safe auth contracts, AccessKeys, and Access Model primitives.",
|
|
11
|
+
"group": "Auth",
|
|
12
|
+
"order": 1,
|
|
13
|
+
"sourcePath": "packages/core/src/auth/index.ts",
|
|
14
|
+
"docPath": "packages/core/src/README.md",
|
|
15
|
+
"referencePath": "packages/core/src/README.md",
|
|
16
|
+
"publishedExportPath": "./dist/auth/index.js"
|
|
17
|
+
},
|
|
4
18
|
{
|
|
5
19
|
"packageName": "@elevasis/core",
|
|
6
20
|
"packageDir": "packages/core",
|
|
@@ -393,6 +407,34 @@
|
|
|
393
407
|
"referencePath": "packages/ui/src/features/README.md",
|
|
394
408
|
"publishedExportPath": "./dist/features/clients/index.js"
|
|
395
409
|
},
|
|
410
|
+
{
|
|
411
|
+
"packageName": "@elevasis/ui",
|
|
412
|
+
"packageDir": "packages/ui",
|
|
413
|
+
"subpath": "./features/notes",
|
|
414
|
+
"kind": "subpath",
|
|
415
|
+
"title": "Features Notes",
|
|
416
|
+
"description": "Published Notes panel view and supporting note components for shared right-panel integrations.",
|
|
417
|
+
"group": "Features",
|
|
418
|
+
"order": 13,
|
|
419
|
+
"sourcePath": "packages/ui/src/features/notes/index.ts",
|
|
420
|
+
"docPath": "packages/ui/src/features/README.md",
|
|
421
|
+
"referencePath": "packages/ui/src/features/README.md",
|
|
422
|
+
"publishedExportPath": "./dist/features/notes/index.js"
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"packageName": "@elevasis/ui",
|
|
426
|
+
"packageDir": "packages/ui",
|
|
427
|
+
"subpath": "./features/right-panel-host",
|
|
428
|
+
"kind": "subpath",
|
|
429
|
+
"title": "Features Right Panel Host",
|
|
430
|
+
"description": "Published right-panel host provider, layer, trigger, keyboard shortcut, store, and view contract.",
|
|
431
|
+
"group": "Features",
|
|
432
|
+
"order": 14,
|
|
433
|
+
"sourcePath": "packages/ui/src/features/right-panel-host/index.ts",
|
|
434
|
+
"docPath": "packages/ui/src/features/README.md",
|
|
435
|
+
"referencePath": "packages/ui/src/features/README.md",
|
|
436
|
+
"publishedExportPath": "./dist/features/right-panel-host/index.js"
|
|
437
|
+
},
|
|
396
438
|
{
|
|
397
439
|
"packageName": "@elevasis/ui",
|
|
398
440
|
"packageDir": "packages/ui",
|
|
@@ -603,6 +645,20 @@
|
|
|
603
645
|
"referencePath": "packages/ui/src/hooks/README.md",
|
|
604
646
|
"publishedExportPath": "./dist/hooks/published.js"
|
|
605
647
|
},
|
|
648
|
+
{
|
|
649
|
+
"packageName": "@elevasis/ui",
|
|
650
|
+
"packageDir": "packages/ui",
|
|
651
|
+
"subpath": "./hooks/access",
|
|
652
|
+
"kind": "subpath",
|
|
653
|
+
"title": "Hooks Access",
|
|
654
|
+
"description": "Published Access Model hook surface for checking route, section, and action access.",
|
|
655
|
+
"group": "Hooks",
|
|
656
|
+
"order": 2,
|
|
657
|
+
"sourcePath": "packages/ui/src/hooks/access/index.ts",
|
|
658
|
+
"docPath": "packages/ui/src/hooks/README.md",
|
|
659
|
+
"referencePath": "packages/ui/src/hooks/README.md",
|
|
660
|
+
"publishedExportPath": "./dist/hooks/access/index.js"
|
|
661
|
+
},
|
|
606
662
|
{
|
|
607
663
|
"packageName": "@elevasis/ui",
|
|
608
664
|
"packageDir": "packages/ui",
|
|
@@ -617,6 +673,20 @@
|
|
|
617
673
|
"referencePath": "packages/ui/src/hooks/README.md",
|
|
618
674
|
"publishedExportPath": "./dist/hooks/delivery/index.js"
|
|
619
675
|
},
|
|
676
|
+
{
|
|
677
|
+
"packageName": "@elevasis/ui",
|
|
678
|
+
"packageDir": "packages/ui",
|
|
679
|
+
"subpath": "./hooks/user-notes",
|
|
680
|
+
"kind": "subpath",
|
|
681
|
+
"title": "Hooks User Notes",
|
|
682
|
+
"description": "Published user-notes query and mutation hooks used by shared Notes surfaces.",
|
|
683
|
+
"group": "Hooks",
|
|
684
|
+
"order": 3,
|
|
685
|
+
"sourcePath": "packages/ui/src/hooks/user-notes/index.ts",
|
|
686
|
+
"docPath": "packages/ui/src/hooks/README.md",
|
|
687
|
+
"referencePath": "packages/ui/src/hooks/README.md",
|
|
688
|
+
"publishedExportPath": "./dist/hooks/user-notes/index.js"
|
|
689
|
+
},
|
|
620
690
|
{
|
|
621
691
|
"packageName": "@elevasis/ui",
|
|
622
692
|
"packageDir": "packages/ui",
|
|
@@ -8,4 +8,15 @@ Canonical rule source:
|
|
|
8
8
|
|
|
9
9
|
`node_modules/@elevasis/sdk/reference/rules/organization-model.md`
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
When working in the monorepo template snapshot before dependencies are installed,
|
|
12
|
+
use the repo-local generated fallback:
|
|
13
|
+
|
|
14
|
+
`packages/sdk/reference/rules/organization-model.md`
|
|
15
|
+
|
|
16
|
+
If the generated fallback is stale or missing, use the source:
|
|
17
|
+
|
|
18
|
+
`packages/sdk/docs/agent-rules/organization-model.md`
|
|
19
|
+
|
|
20
|
+
Read the bundled rule first when available. This local file is intentionally kept
|
|
21
|
+
as a thin compatibility pointer for existing local rule references in skills,
|
|
22
|
+
sync notes, and older prompts.
|
|
@@ -8,4 +8,15 @@ Canonical rule source:
|
|
|
8
8
|
|
|
9
9
|
`node_modules/@elevasis/sdk/reference/rules/organization-os.md`
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
When working in the monorepo template snapshot before dependencies are installed,
|
|
12
|
+
use the repo-local generated fallback:
|
|
13
|
+
|
|
14
|
+
`packages/sdk/reference/rules/organization-os.md`
|
|
15
|
+
|
|
16
|
+
If the generated fallback is stale or missing, use the source:
|
|
17
|
+
|
|
18
|
+
`packages/sdk/docs/agent-rules/organization-os.md`
|
|
19
|
+
|
|
20
|
+
Read the bundled rule first when available. This local file is intentionally kept
|
|
21
|
+
as a thin compatibility pointer for existing local rule references in skills,
|
|
22
|
+
sync notes, and older prompts.
|
|
@@ -10,8 +10,8 @@ description: |
|
|
|
10
10
|
- The user asks "what governs X?", "what does X control?", "system governs", "what is our
|
|
11
11
|
identity set to?", "what's our timezone?", "show me all reference docs", "list my roles",
|
|
12
12
|
"where does outreach-cadence apply?", or similar.
|
|
13
|
-
- An agent is editing files matching: core/config/organization-model.ts
|
|
14
|
-
core/config/knowledge/**.
|
|
13
|
+
- An agent is editing files matching: core/config/organization-model.ts,
|
|
14
|
+
core/config/organization-model/**, or core/config/knowledge/**.
|
|
15
15
|
SKIP this skill when the task is purely UI layout, workflow authoring, or infrastructure
|
|
16
16
|
work with no reference to org-model or knowledge-graph entities.
|
|
17
17
|
|
|
@@ -19,6 +19,7 @@ description: |
|
|
|
19
19
|
metadata:
|
|
20
20
|
pathPatterns:
|
|
21
21
|
- "core/config/organization-model.ts"
|
|
22
|
+
- "core/config/organization-model/**"
|
|
22
23
|
- "core/config/knowledge/**"
|
|
23
24
|
- "core/config/extensions/**"
|
|
24
25
|
promptSignals:
|
|
@@ -77,7 +78,8 @@ This skill auto-invokes whenever:
|
|
|
77
78
|
- The user asks to read, list, find, show, query, navigate, describe, codify, add, edit,
|
|
78
79
|
update, toggle, enable, or disable any of those
|
|
79
80
|
- An agent is editing files matching `core/config/organization-model.ts`,
|
|
80
|
-
`core/config/
|
|
81
|
+
`core/config/organization-model/**`, `core/config/extensions/**`, or
|
|
82
|
+
`core/config/knowledge/**`
|
|
81
83
|
|
|
82
84
|
Auto-invocation is driven by frontmatter `description`, `metadata.pathPatterns`, and
|
|
83
85
|
`metadata.promptSignals` -- no explicit prefix is required.
|
|
@@ -238,7 +240,11 @@ safety ceremony preserved verbatim from the legacy `/configure` flow.
|
|
|
238
240
|
|
|
239
241
|
### Step 1: Snapshot
|
|
240
242
|
|
|
241
|
-
|
|
243
|
+
Determine the target file for the domain being edited (see the domain reference file for
|
|
244
|
+
"Where it lives" guidance). Read that file into memory before any edit. This is the rollback
|
|
245
|
+
target. For unsplit projects the target is `core/config/organization-model.ts`; for split projects
|
|
246
|
+
use the appropriate sub-file (`profile.ts`, `systems.ts`, or `navigation.ts` under
|
|
247
|
+
`core/config/organization-model/`).
|
|
242
248
|
|
|
243
249
|
### Step 2: Propose
|
|
244
250
|
|
|
@@ -275,7 +281,9 @@ The rollback is mandatory -- never leave the project in a broken state.
|
|
|
275
281
|
|
|
276
282
|
**Two-level ceremony:**
|
|
277
283
|
|
|
278
|
-
- **Level A** -- config-only edits to existing schema fields in
|
|
284
|
+
- **Level A** -- config-only edits to existing schema fields in a single config file under
|
|
285
|
+
`core/config/` (the entry `organization-model.ts` for unsplit projects, or the appropriate
|
|
286
|
+
sub-file for split projects — see the domain reference for the correct target).
|
|
279
287
|
Execute: `.claude/skills/om/operations/codify-level-a.md`
|
|
280
288
|
- **Level B** -- new Zod extension files in `core/config/extensions/`. Gated to explicit user
|
|
281
289
|
ask. On casual second mentions of a new type, suggest Level B and wait for confirmation rather
|
|
@@ -1,100 +1,109 @@
|
|
|
1
|
-
# Codify Pipeline: Level A (Config-Only Edits)
|
|
2
|
-
|
|
3
|
-
Level A is the codify pipeline for changes that land
|
|
4
|
-
`core/config
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
pnpm -C operations check
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
The
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- **
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
1
|
+
# Codify Pipeline: Level A (Config-Only Edits)
|
|
2
|
+
|
|
3
|
+
Level A is the codify pipeline for changes that land in a single config file inside
|
|
4
|
+
`core/config/`. No new TypeScript files are created. The entire ceremony is: snapshot the target
|
|
5
|
+
file, propose the edit, write the edit, validate, and roll back on failure.
|
|
6
|
+
|
|
7
|
+
This pipeline is called by domain operations (identity, customers, offerings, roles, goals,
|
|
8
|
+
techStack, systems, actions, labels, and legacy feature compatibility) after the user has confirmed the proposed change. The caller provides
|
|
9
|
+
the specific field/block being changed, the proposed new value, and the target file.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Pipeline
|
|
14
|
+
|
|
15
|
+
### Step 1: Snapshot
|
|
16
|
+
|
|
17
|
+
Before any write, read `TARGET_FILE` and keep the full file content in memory as the rollback
|
|
18
|
+
snapshot. Do not write any file during this step.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Read(TARGET_FILE)
|
|
22
|
+
-- store as ROLLBACK_SNAPSHOT
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`TARGET_FILE` is the value the caller provides in the Caller Contract (see below). When the
|
|
26
|
+
project has not been split yet, callers pass the default
|
|
27
|
+
`core/config/organization-model.ts`.
|
|
28
|
+
|
|
29
|
+
### Step 2: Apply the edit
|
|
30
|
+
|
|
31
|
+
Use the Edit tool to apply the caller's proposed change to `TARGET_FILE`.
|
|
32
|
+
|
|
33
|
+
Rules for the edit:
|
|
34
|
+
|
|
35
|
+
- Edit only the specific field or block the caller specified. Do not reformat or restructure
|
|
36
|
+
unrelated sections.
|
|
37
|
+
- For edits targeting `profile.ts`: preserve all other keys in `defineOrganizationModel({...})`
|
|
38
|
+
exactly as they are.
|
|
39
|
+
- Maintain the existing code style (trailing commas, quote style, indentation) of the file.
|
|
40
|
+
- If the target field does not yet exist in the file, add it as a new property in the appropriate
|
|
41
|
+
position (following the declared domain order in the schema).
|
|
42
|
+
|
|
43
|
+
### Step 3: TypeScript type-check
|
|
44
|
+
|
|
45
|
+
Run the type-check for the operations package:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pnpm -C operations check-types
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Capture stdout and stderr. If the command exits non-zero, proceed to Step 5 (rollback).
|
|
52
|
+
|
|
53
|
+
### Step 4: Runtime schema validation
|
|
54
|
+
|
|
55
|
+
Confirm that the adapter's output passes `OrganizationModelSchema.parse()`. The adapter calls
|
|
56
|
+
`resolveOrganizationModel()` internally, which merges defaults with overrides and then parses the
|
|
57
|
+
result. A successful `check-types` pass is strong evidence that the schema is valid, but
|
|
58
|
+
cross-reference checks (segment ID refs in offerings, role reporting refs, period ordering in
|
|
59
|
+
goals) are runtime-only.
|
|
60
|
+
|
|
61
|
+
If the project exposes a validation script (e.g. `pnpm -C operations check`), run that too:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm -C operations check
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If either validation step fails, proceed to Step 5 (rollback).
|
|
68
|
+
|
|
69
|
+
### Step 5: Rollback (on failure only)
|
|
70
|
+
|
|
71
|
+
If Step 3 or Step 4 failed:
|
|
72
|
+
|
|
73
|
+
1. Write the ROLLBACK_SNAPSHOT content back to `TARGET_FILE` verbatim (use the Write tool with
|
|
74
|
+
the exact snapshot content).
|
|
75
|
+
2. Confirm the file has been restored by checking that the content matches the snapshot.
|
|
76
|
+
3. Return the error message to the caller.
|
|
77
|
+
|
|
78
|
+
The caller is responsible for reporting the rollback to the user.
|
|
79
|
+
|
|
80
|
+
### Step 6: Success signal
|
|
81
|
+
|
|
82
|
+
If Steps 3 and 4 both passed, return a success signal to the caller with:
|
|
83
|
+
|
|
84
|
+
- The file edited (`TARGET_FILE`)
|
|
85
|
+
- The fields changed
|
|
86
|
+
- `Type-check: PASS`
|
|
87
|
+
- `Schema validation: PASS`
|
|
88
|
+
|
|
89
|
+
The caller formats and presents the final report.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Caller Contract
|
|
94
|
+
|
|
95
|
+
Callers must provide before invoking this pipeline:
|
|
96
|
+
|
|
97
|
+
- **Target file:** the sub-file path to snapshot and edit. Default (unsplit projects):
|
|
98
|
+
`core/config/organization-model.ts`. Split-project routing:
|
|
99
|
+
- `core/config/organization-model/profile.ts` for identity, customers, offerings, roles, goals
|
|
100
|
+
(and techStack/labels when those keys exist in `profile.ts`)
|
|
101
|
+
- `core/config/organization-model/systems.ts` for systems, actions, resources
|
|
102
|
+
- Callers use the default entry path when the domain does not yet have a dedicated sub-file
|
|
103
|
+
- **Target block:** the specific domain key or sub-key being changed (e.g. `identity`,
|
|
104
|
+
`customers.segments`, `roles.roles`, `resources.hubspot`)
|
|
105
|
+
- **Proposed value:** the new TypeScript literal to write for that block
|
|
106
|
+
- **Confirmed:** the user has already said yes to the proposed change
|
|
107
|
+
|
|
108
|
+
This pipeline does not ask the user any questions. All confirmation happens in the domain
|
|
109
|
+
operation before this pipeline is invoked.
|
|
@@ -89,19 +89,23 @@ customers: {
|
|
|
89
89
|
|
|
90
90
|
## Where it lives in the adapter
|
|
91
91
|
|
|
92
|
-
`core/config/organization-model.ts` under the `customers` key of
|
|
92
|
+
**Split projects:** `core/config/organization-model/profile.ts` under the `customers` key of
|
|
93
93
|
`defineOrganizationModel({...})`.
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
**Unsplit projects:** `core/config/organization-model.ts` under the same key.
|
|
96
|
+
|
|
97
|
+
To read current segments: open the appropriate file and inspect the `customers.segments` array,
|
|
98
|
+
or use `pnpm exec elevasis-sdk om:cat customers` (external project).
|
|
97
99
|
|
|
98
100
|
## Write path
|
|
99
101
|
|
|
100
102
|
To add, edit, or remove a segment, the `/om` skill runs the codify ceremony
|
|
101
103
|
(`operations/codify-level-a.md`): snapshot → propose → confirm → write → typecheck → Zod parse →
|
|
102
|
-
rollback on failure.
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
rollback on failure. Pass `targetFile` as `core/config/organization-model/profile.ts` for split
|
|
105
|
+
projects, or `core/config/organization-model.ts` for unsplit projects. Only the `segments` array
|
|
106
|
+
is written; no other keys in the target file are touched. When adding, append to the array. When
|
|
107
|
+
editing, replace the matching entry by `id`. When removing, filter it out — and surface any
|
|
108
|
+
dangling `targetSegmentIds` references first.
|
|
105
109
|
|
|
106
110
|
---
|
|
107
111
|
|
|
@@ -31,10 +31,14 @@ guidance that depends on it; prefer `by-system` everywhere.
|
|
|
31
31
|
For natural-language requests like "turn on lead gen", "disable SEO", or "enable CRM":
|
|
32
32
|
|
|
33
33
|
1. Treat the request as a System availability/routing change.
|
|
34
|
-
2. Read
|
|
35
|
-
|
|
34
|
+
2. Read the Systems config file to find the matching System entry or platform default constant
|
|
35
|
+
exposed by `@elevasis/core/organization-model`. For split projects this is
|
|
36
|
+
`core/config/organization-model/systems.ts`; for unsplit projects use
|
|
37
|
+
`core/config/organization-model.ts`.
|
|
36
38
|
3. Propose the exact availability/routing change in plain language.
|
|
37
|
-
4. After confirmation, run the Level A codify ceremony in `operations/codify-level-a.md
|
|
39
|
+
4. After confirmation, run the Level A codify ceremony in `operations/codify-level-a.md`, passing
|
|
40
|
+
`targetFile` as `core/config/organization-model/systems.ts` (split) or
|
|
41
|
+
`core/config/organization-model.ts` (unsplit).
|
|
38
42
|
|
|
39
43
|
Do not create new extension files for a simple on/off change.
|
|
40
44
|
|
|
@@ -98,19 +98,23 @@ goals: {
|
|
|
98
98
|
|
|
99
99
|
## Where it lives in the adapter
|
|
100
100
|
|
|
101
|
-
`core/config/organization-model.ts` under the `goals` key of
|
|
101
|
+
**Split projects:** `core/config/organization-model/profile.ts` under the `goals` key of
|
|
102
102
|
`defineOrganizationModel({...})`.
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
**Unsplit projects:** `core/config/organization-model.ts` under the same key.
|
|
105
|
+
|
|
106
|
+
To read current goals: open the appropriate file and inspect the `goals.objectives` array, or
|
|
107
|
+
use `pnpm exec elevasis-sdk om:cat goals` (external project).
|
|
106
108
|
|
|
107
109
|
## Write path
|
|
108
110
|
|
|
109
111
|
To add, edit, remove, or update progress on a goal, the `/om` skill runs the codify
|
|
110
112
|
ceremony (`operations/codify-level-a.md`): snapshot → propose → confirm → write → typecheck →
|
|
111
|
-
Zod parse → rollback on failure.
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
Zod parse → rollback on failure. Pass `targetFile` as
|
|
114
|
+
`core/config/organization-model/profile.ts` for split projects, or
|
|
115
|
+
`core/config/organization-model.ts` for unsplit projects. Only the `objectives` array is written;
|
|
116
|
+
no other keys in the target file are touched. For progress-only updates (changing `currentValue`
|
|
117
|
+
on an existing outcome), a targeted edit is preferred over rewriting the entire goals block.
|
|
114
118
|
|
|
115
119
|
---
|
|
116
120
|
|
|
@@ -74,18 +74,21 @@ identity: {
|
|
|
74
74
|
|
|
75
75
|
## Where it lives in the adapter
|
|
76
76
|
|
|
77
|
-
`core/config/organization-model.ts` under the `identity` key of
|
|
77
|
+
**Split projects:** `core/config/organization-model/profile.ts` under the `identity` key of
|
|
78
78
|
`defineOrganizationModel({...})`.
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
**Unsplit projects:** `core/config/organization-model.ts` under the same key.
|
|
81
|
+
|
|
82
|
+
To read the current values: open the appropriate file and inspect the `identity` block directly,
|
|
83
|
+
or use `pnpm exec elevasis-sdk om:cat identity` (external project).
|
|
82
84
|
|
|
83
85
|
## Write path
|
|
84
86
|
|
|
85
87
|
To edit any field, the `/om` skill runs the codify ceremony
|
|
86
88
|
(`operations/codify-level-a.md`): snapshot → propose → confirm → write → typecheck → Zod parse →
|
|
87
|
-
rollback on failure.
|
|
88
|
-
|
|
89
|
+
rollback on failure. Pass `targetFile` as `core/config/organization-model/profile.ts` for split
|
|
90
|
+
projects, or `core/config/organization-model.ts` for unsplit projects. Only the confirmed fields
|
|
91
|
+
are written; no other top-level keys in the target file are touched.
|
|
89
92
|
|
|
90
93
|
---
|
|
91
94
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
knowledge nodes, registry entries, and sidebar surfaces in the OrganizationModel. Labels control what users see in the UI and what
|
|
5
5
|
agents say when narrating state. Editing a label does not change the entry's `id` or
|
|
6
6
|
`semanticClass` -- only the human-readable display string. This is Level A only (config-only
|
|
7
|
-
edits to `core/config
|
|
7
|
+
edits to a single file under `core/config/`).
|
|
8
8
|
|
|
9
9
|
## What carries labels
|
|
10
10
|
|
|
@@ -76,6 +76,22 @@ navigation.sidebar.primary:
|
|
|
76
76
|
sales.crm: label "Pipeline" -> "Deal Pipeline"
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
## Where it lives
|
|
80
|
+
|
|
81
|
+
**Split projects:** the target file depends on what carries the label being edited:
|
|
82
|
+
|
|
83
|
+
- Status/stage entries and System entries -- `core/config/organization-model/systems.ts`
|
|
84
|
+
- Sidebar navigation surfaces -- `core/config/organization-model/navigation.ts`
|
|
85
|
+
- Business-profile domain entries (customers, offerings, roles, goals) -- `core/config/organization-model/profile.ts`
|
|
86
|
+
|
|
87
|
+
**Unsplit projects:** `core/config/organization-model.ts` for all label edits.
|
|
88
|
+
|
|
89
|
+
Pass the appropriate path as `targetFile` when invoking `operations/codify-level-a.md`.
|
|
90
|
+
|
|
91
|
+
**Note:** `labels` is not currently authored as a standalone top-level domain key in either the
|
|
92
|
+
template or reference tenant model. Label fields are inline properties on the entries listed
|
|
93
|
+
above. Do not invent a top-level `labels` key in `profile.ts`.
|
|
94
|
+
|
|
79
95
|
## Validation gate
|
|
80
96
|
|
|
81
97
|
Every label change must pass before codify completes:
|
|
@@ -88,20 +88,24 @@ offerings: {
|
|
|
88
88
|
|
|
89
89
|
## Where it lives in the adapter
|
|
90
90
|
|
|
91
|
-
`core/config/organization-model.ts` under the `offerings` key of
|
|
91
|
+
**Split projects:** `core/config/organization-model/profile.ts` under the `offerings` key of
|
|
92
92
|
`defineOrganizationModel({...})`.
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
**Unsplit projects:** `core/config/organization-model.ts` under the same key.
|
|
95
|
+
|
|
96
|
+
To read current products: open the appropriate file and inspect the `offerings.products` array,
|
|
97
|
+
or use `pnpm exec elevasis-sdk om:cat offerings` (external project).
|
|
96
98
|
|
|
97
99
|
## Write path
|
|
98
100
|
|
|
99
101
|
To add, edit, or remove a product, the `/om` skill runs the codify ceremony
|
|
100
102
|
(`operations/codify-level-a.md`): snapshot → propose → confirm → write → typecheck → Zod parse →
|
|
101
|
-
rollback on failure.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
rollback on failure. Pass `targetFile` as `core/config/organization-model/profile.ts` for split
|
|
104
|
+
projects, or `core/config/organization-model.ts` for unsplit projects. Only the `products` array
|
|
105
|
+
is written; no other keys in the target file are touched. Before writing, the skill verifies all
|
|
106
|
+
`targetSegmentIds` and `deliverySystemId` references resolve. When adding, append to the array.
|
|
107
|
+
When editing, replace by `id`. When removing, filter out — and surface any dangling references
|
|
108
|
+
first.
|
|
105
109
|
|
|
106
110
|
---
|
|
107
111
|
|