@elevasis/sdk 1.22.0 → 1.23.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.
Files changed (41) hide show
  1. package/dist/cli.cjs +980 -42
  2. package/dist/index.d.ts +1221 -220
  3. package/dist/index.js +390 -15
  4. package/dist/test-utils/index.d.ts +964 -211
  5. package/dist/test-utils/index.js +257 -14
  6. package/dist/worker/index.js +122 -14
  7. package/package.json +3 -3
  8. package/reference/claude-config/rules/operations.md +3 -3
  9. package/reference/claude-config/rules/organization-model.md +88 -85
  10. package/reference/claude-config/rules/organization-os.md +104 -104
  11. package/reference/claude-config/rules/vibe.md +235 -235
  12. package/reference/claude-config/skills/om/SKILL.md +324 -0
  13. package/reference/claude-config/skills/{knowledge → om}/operations/customers.md +110 -109
  14. package/reference/claude-config/skills/{knowledge → om}/operations/features.md +77 -76
  15. package/reference/claude-config/skills/{knowledge → om}/operations/goals.md +119 -118
  16. package/reference/claude-config/skills/{knowledge → om}/operations/identity.md +94 -93
  17. package/reference/claude-config/skills/{knowledge → om}/operations/labels.md +94 -94
  18. package/reference/claude-config/skills/{knowledge → om}/operations/offerings.md +110 -109
  19. package/reference/claude-config/skills/{knowledge → om}/operations/roles.md +100 -99
  20. package/reference/claude-config/skills/{knowledge → om}/operations/techStack.md +30 -30
  21. package/reference/claude-config/skills/project/SKILL.md +1088 -1088
  22. package/reference/claude-config/skills/setup/SKILL.md +275 -275
  23. package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
  24. package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
  25. package/reference/claude-config/skills/tutorial/technical.md +1303 -1303
  26. package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
  27. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +7 -4
  28. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +52 -0
  29. package/reference/examples/organization-model.ts +26 -2
  30. package/reference/scaffold/core/organization-model.mdx +16 -11
  31. package/reference/scaffold/recipes/add-a-feature.md +28 -26
  32. package/reference/scaffold/recipes/add-a-resource.md +26 -16
  33. package/reference/scaffold/recipes/customize-organization-model.md +5 -3
  34. package/reference/scaffold/recipes/extend-lead-gen.md +9 -9
  35. package/reference/scaffold/recipes/index.md +1 -1
  36. package/reference/scaffold/recipes/query-the-knowledge-graph.md +189 -185
  37. package/reference/scaffold/reference/contracts.md +139 -101
  38. package/reference/scaffold/reference/glossary.md +74 -72
  39. package/reference/claude-config/skills/knowledge/SKILL.md +0 -345
  40. /package/reference/claude-config/skills/{knowledge → om}/operations/codify-level-a.md +0 -0
  41. /package/reference/claude-config/skills/{knowledge → om}/operations/codify-level-b.md +0 -0
@@ -1,71 +1,71 @@
1
1
  <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
2
2
  <!-- Regenerate: pnpm scaffold:sync -->
3
3
 
4
- ---
4
+ ---
5
5
  title: Query the Knowledge Graph
6
6
  description: Use the `knowledge:*` CLI subcommands on `elevasis-sdk` (external projects) and `elevasis` (monorepo) to browse, inspect, and traverse the OrganizationModel knowledge graph via six mount axes.
7
- ---
8
-
9
- # Query the Knowledge Graph
10
-
11
- The `knowledge:*` subcommands expose the OrganizationModel as a virtual filesystem. Paths are query strings -- `/by-system/sales/crm/` dispatches to a graph query, not a directory on disk. Three verbs cover all access patterns: `ls` (list), `cat` (read a node body), and `graph` (traverse edges).
12
-
13
- Both CLIs share the same query layer (`@repo/core/knowledge/queries`). The only difference is which OrganizationModel they load:
14
-
15
- - `elevasis-sdk` -- runs from inside `external/<project>/`, walks up to `.elevasis`, loads the project's `core/config/organization-model.ts`.
16
- - `elevasis` -- runs from the monorepo root, loads `canonicalOrganizationModel` from `@repo/elevasis-core`.
17
-
18
- ## Before you start
19
-
20
- The `knowledge:*` commands require `elevasis-sdk >= 1.4.0`. Check with:
21
-
22
- ```bash
23
- pnpm exec elevasis-sdk --version
24
- ```
25
-
26
- If you are running on Windows, **use PowerShell** for all `knowledge:*` commands. MSYS Bash rewrites the leading `/by-system/...` path argument to a Windows filesystem path, mangling the query. PowerShell passes the argument through verbatim.
27
-
28
- ## Three Verbs
29
-
30
- | Verb | Behavior |
31
- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------- |
32
- | `knowledge:ls <path>` | List nodes or edges for the mount. Default: id + summary table. `--json` for the wrapped envelope. `--ids-only` for piping. |
33
- | `knowledge:cat <id>` | Print a node's raw MDX `body` to stdout. |
34
- | `knowledge:graph <id>` | Show outgoing and incoming edges for a node, grouped by edge kind. |
35
-
36
- All three accept `--json` for machine-readable output. `knowledge:ls` additionally accepts `--ids-only` to print one node ID per line.
37
-
7
+ ---
8
+
9
+ # Query the Knowledge Graph
10
+
11
+ The `knowledge:*` subcommands expose the OrganizationModel as a virtual filesystem. Paths are query strings -- `/by-system/sales/crm/` dispatches to a graph query, not a directory on disk. Three verbs cover all access patterns: `ls` (list), `cat` (read a node body), and `graph` (traverse edges).
12
+
13
+ Both CLIs share the same query layer (`@repo/core/knowledge/queries`). The only difference is which OrganizationModel they load:
14
+
15
+ - `elevasis-sdk` -- runs from inside `external/<project>/`, walks up to `.elevasis`, loads the project's `core/config/organization-model.ts`.
16
+ - `elevasis` -- runs from the monorepo root, loads `canonicalOrganizationModel` from `@repo/elevasis-core`.
17
+
18
+ ## Before you start
19
+
20
+ The `knowledge:*` commands require `elevasis-sdk >= 1.4.0`. Check with:
21
+
22
+ ```bash
23
+ pnpm exec elevasis-sdk --version
24
+ ```
25
+
26
+ If you are running on Windows, **use PowerShell** for all `knowledge:*` commands. MSYS Bash rewrites the leading `/by-system/...` path argument to a Windows filesystem path, mangling the query. PowerShell passes the argument through verbatim.
27
+
28
+ ## Three Verbs
29
+
30
+ | Verb | Behavior |
31
+ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------- |
32
+ | `knowledge:ls <path>` | List nodes or edges for the mount. Default: id + summary table. `--json` for the wrapped envelope. `--ids-only` for piping. |
33
+ | `knowledge:cat <id>` | Print a node's raw MDX `body` to stdout. |
34
+ | `knowledge:graph <id>` | Show outgoing and incoming edges for a node, grouped by edge kind. |
35
+
36
+ All three accept `--json` for machine-readable output. `knowledge:ls` additionally accepts `--ids-only` to print one node ID per line.
37
+
38
38
  ## Six Mount Axes
39
39
 
40
40
  The path argument to `knowledge:ls` determines the query. Six axes are available:
41
41
 
42
- | Path prefix | Query | Returns |
43
- | ------------------------------ | ----------------------------- | --------------------------------------------------- |
44
- | `/by-system/<dotted-id>/` | `bySystem(graph, systemId)` | nodes with incoming `governs` edges to this system |
45
- | `/by-ontology/<ontology-id>/` | `byOntology(graph, ontologyId)` | nodes with incoming `governs` edges to this ontology record |
46
- | `/by-kind/<kind>/` | `byKind(graph, kind)` | nodes where `node.kind === kind` |
47
- | `/by-owner/<id>/` | `byOwner(graph, ownerId)` | nodes where `node.ownerIds.includes(id)` |
48
- | `/graph/<nodeId>/governs/` | `governs(graph, nodeId)` | outgoing `governs` edges from `nodeId` |
49
- | `/graph/<nodeId>/governed-by/` | `governedBy(graph, nodeId)` | incoming `governs` edges to `nodeId` |
50
-
51
- ## Examples
52
-
53
- Each example is shown for both CLIs.
54
-
55
- ### 1. List by system (`/by-system/<dotted-id>/`)
56
-
57
- List all knowledge nodes that govern the `sales.crm` system:
58
-
59
- ```bash
60
- # External project (from inside external/<project>/)
61
- pnpm exec elevasis-sdk knowledge:ls /by-system/sales.crm/
62
-
63
- # Monorepo (from monorepo root)
64
- pnpm exec elevasis knowledge:ls /by-system/sales.crm/
65
- ```
66
-
67
- Nested system ids use dots, not slashes: `sales.crm`, `sales.lead-gen`, `projects`.
68
-
42
+ | Path prefix | Query | Returns |
43
+ | ------------------------------ | ------------------------------- | ----------------------------------------------------------- |
44
+ | `/by-system/<dotted-id>/` | `bySystem(graph, systemId)` | nodes with incoming `governs` edges to this system |
45
+ | `/by-ontology/<ontology-id>/` | `byOntology(graph, ontologyId)` | nodes with incoming `governs` edges to this ontology record |
46
+ | `/by-kind/<kind>/` | `byKind(graph, kind)` | nodes where `node.kind === kind` |
47
+ | `/by-owner/<id>/` | `byOwner(graph, ownerId)` | nodes where `node.ownerIds.includes(id)` |
48
+ | `/graph/<nodeId>/governs/` | `governs(graph, nodeId)` | outgoing `governs` edges from `nodeId` |
49
+ | `/graph/<nodeId>/governed-by/` | `governedBy(graph, nodeId)` | incoming `governs` edges to `nodeId` |
50
+
51
+ ## Examples
52
+
53
+ Each example is shown for both CLIs.
54
+
55
+ ### 1. List by system (`/by-system/<dotted-id>/`)
56
+
57
+ List all knowledge nodes that govern the `sales.crm` system:
58
+
59
+ ```bash
60
+ # External project (from inside external/<project>/)
61
+ pnpm exec elevasis-sdk knowledge:ls /by-system/sales.crm/
62
+
63
+ # Monorepo (from monorepo root)
64
+ pnpm exec elevasis knowledge:ls /by-system/sales.crm/
65
+ ```
66
+
67
+ Nested system ids use dots, not slashes: `sales.crm`, `sales.lead-gen`, `projects`.
68
+
69
69
  ### 2. List by ontology (`/by-ontology/<ontology-id>/`)
70
70
 
71
71
  List all knowledge nodes that govern the CRM deal ontology record:
@@ -81,112 +81,117 @@ pnpm exec elevasis knowledge:ls /by-ontology/sales.crm:object/deal
81
81
  Ontology IDs use `system.path:kind/local-id` or `global:kind/local-id`. Slash-containing ontology IDs are part of the query path; use PowerShell on Windows so the leading `/by-ontology/...` path is not rewritten by MSYS Bash.
82
82
 
83
83
  ### 3. List by kind (`/by-kind/<kind>/`)
84
-
85
- List all nodes of kind `playbook`:
86
-
87
- ```bash
88
- # External project
89
- pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook
90
-
91
- # Monorepo
92
- pnpm exec elevasis knowledge:ls /by-kind/playbook
93
- ```
94
-
95
- Common kinds: `playbook`, `strategy`, and `reference`. The available kinds are defined on `OrgKnowledgeNode.kind` in `@elevasis/core/knowledge`.
96
-
97
- Machine-readable output for piping:
98
-
99
- ```bash
100
- pnpm exec elevasis knowledge:ls /by-kind/playbook --ids-only
101
- ```
102
-
84
+
85
+ List all nodes of kind `playbook`:
86
+
87
+ ```bash
88
+ # External project
89
+ pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook
90
+
91
+ # Monorepo
92
+ pnpm exec elevasis knowledge:ls /by-kind/playbook
93
+ ```
94
+
95
+ Common kinds: `playbook`, `strategy`, and `reference`. The available kinds are defined on `OrgKnowledgeNode.kind` in `@elevasis/core/knowledge`.
96
+
97
+ Machine-readable output for piping:
98
+
99
+ ```bash
100
+ pnpm exec elevasis knowledge:ls /by-kind/playbook --ids-only
101
+ ```
102
+
103
103
  ### 4. List by owner (`/by-owner/<id>/`)
104
-
105
- List all knowledge nodes owned by a specific member or team:
106
-
107
- ```bash
108
- # External project
109
- pnpm exec elevasis-sdk knowledge:ls /by-owner/operations-team
110
-
111
- # Monorepo
112
- pnpm exec elevasis knowledge:ls /by-owner/operations-team
113
- ```
114
-
115
- The `<id>` matches against `node.ownerIds`. Owner IDs are declared on each knowledge node in the OrganizationModel.
116
-
104
+
105
+ List all knowledge nodes owned by a specific member or team:
106
+
107
+ ```bash
108
+ # External project
109
+ pnpm exec elevasis-sdk knowledge:ls /by-owner/operations-team
110
+
111
+ # Monorepo
112
+ pnpm exec elevasis knowledge:ls /by-owner/operations-team
113
+ ```
114
+
115
+ The `<id>` matches against `node.ownerIds`. Owner IDs are declared on each knowledge node in the OrganizationModel.
116
+
117
117
  ### 5. Traverse outgoing edges (`/graph/<nodeId>/governs/`)
118
-
119
- List what a specific node governs (outgoing `governs` edges):
120
-
121
- ```bash
122
- # External project
123
- pnpm exec elevasis-sdk knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governs/
124
-
125
- # Monorepo
126
- pnpm exec elevasis knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governs/
127
- ```
128
-
129
- Knowledge node IDs use the `knowledge.<slug>` source id. Graph node IDs may be kind-prefixed,
130
- such as `knowledge:knowledge.new-vertical-launch-playbook` or `system:sales.crm`, when traversing
131
- graph edges.
132
-
118
+
119
+ List what a specific node governs (outgoing `governs` edges):
120
+
121
+ ```bash
122
+ # External project
123
+ pnpm exec elevasis-sdk knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governs/
124
+
125
+ # Monorepo
126
+ pnpm exec elevasis knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governs/
127
+ ```
128
+
129
+ Knowledge node IDs use the `knowledge.<slug>` source id. Graph node IDs may be kind-prefixed,
130
+ such as `knowledge:knowledge.new-vertical-launch-playbook` or `system:sales.crm`, when traversing
131
+ graph edges.
132
+
133
+ > **Note:** Graph node IDs like `system:sales.crm` are addresses in the knowledge graph API and
134
+ > are distinct from the Organization Model `resource.systemPath` field. A resource attaches to a
135
+ > System with `systemPath: 'sales.crm'` (no prefix); the same System appears in the graph as the
136
+ > node `system:sales.crm`. Do not author `system:`-prefixed values into `resource.systemPath`.
137
+
133
138
  ### 6. Traverse incoming edges (`/graph/<nodeId>/governed-by/`)
134
-
135
- List what governs a specific node (incoming `governs` edges):
136
-
137
- ```bash
138
- # External project
139
- pnpm exec elevasis-sdk knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governed-by/
140
-
141
- # Monorepo
142
- pnpm exec elevasis knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governed-by/
143
- ```
144
-
145
- ## Read a Node Body
146
-
147
- `knowledge:cat` prints the raw MDX `body` string for a node. The body is not rendered -- it is the source MDX as stored in the OrganizationModel.
148
-
149
- ```bash
150
- # External project
151
- pnpm exec elevasis-sdk knowledge:cat knowledge.new-vertical-launch-playbook
152
-
153
- # Monorepo
154
- pnpm exec elevasis knowledge:cat knowledge.new-vertical-launch-playbook
155
- ```
156
-
157
- Pipe to a pager for long bodies:
158
-
159
- ```bash
160
- pnpm exec elevasis knowledge:cat knowledge.platform-composition-patterns | less
161
- ```
162
-
163
- ## Inspect a Node's Edges
164
-
165
- `knowledge:graph` shows all edges for a node grouped by kind:
166
-
167
- ```bash
168
- # External project
169
- pnpm exec elevasis-sdk knowledge:graph knowledge.new-vertical-launch-playbook
170
-
171
- # Monorepo
172
- pnpm exec elevasis knowledge:graph knowledge.new-vertical-launch-playbook
173
- ```
174
-
175
- This combines the `governs` and `governed-by` views in one output, useful for understanding a node's full graph position.
176
-
177
- ## JSON Output
178
-
139
+
140
+ List what governs a specific node (incoming `governs` edges):
141
+
142
+ ```bash
143
+ # External project
144
+ pnpm exec elevasis-sdk knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governed-by/
145
+
146
+ # Monorepo
147
+ pnpm exec elevasis knowledge:ls /graph/knowledge.new-vertical-launch-playbook/governed-by/
148
+ ```
149
+
150
+ ## Read a Node Body
151
+
152
+ `knowledge:cat` prints the raw MDX `body` string for a node. The body is not rendered -- it is the source MDX as stored in the OrganizationModel.
153
+
154
+ ```bash
155
+ # External project
156
+ pnpm exec elevasis-sdk knowledge:cat knowledge.new-vertical-launch-playbook
157
+
158
+ # Monorepo
159
+ pnpm exec elevasis knowledge:cat knowledge.new-vertical-launch-playbook
160
+ ```
161
+
162
+ Pipe to a pager for long bodies:
163
+
164
+ ```bash
165
+ pnpm exec elevasis knowledge:cat knowledge.platform-composition-patterns | less
166
+ ```
167
+
168
+ ## Inspect a Node's Edges
169
+
170
+ `knowledge:graph` shows all edges for a node grouped by kind:
171
+
172
+ ```bash
173
+ # External project
174
+ pnpm exec elevasis-sdk knowledge:graph knowledge.new-vertical-launch-playbook
175
+
176
+ # Monorepo
177
+ pnpm exec elevasis knowledge:graph knowledge.new-vertical-launch-playbook
178
+ ```
179
+
180
+ This combines the `governs` and `governed-by` views in one output, useful for understanding a node's full graph position.
181
+
182
+ ## JSON Output
183
+
179
184
  All three verbs accept `--json`. `knowledge:ls --json` uses the wrapped envelope format:
180
-
181
- ```json
182
- {
183
- "path": "/by-system/sales.crm",
184
- "mount": "by-system",
185
- "args": ["sales.crm"],
186
- "results": [...]
187
- }
188
- ```
189
-
185
+
186
+ ```json
187
+ {
188
+ "path": "/by-system/sales.crm",
189
+ "mount": "by-system",
190
+ "args": ["sales.crm"],
191
+ "results": [...]
192
+ }
193
+ ```
194
+
190
195
  This is the format consumed by the `/knowledge` agent skill. Use it when scripting or building tooling that reads knowledge graph data programmatically.
191
196
 
192
197
  `knowledge:cat --json` returns the full knowledge node object, including the MDX `body`, links, owners, timestamps, and generated `sourceFilePath` when present.
@@ -200,28 +205,27 @@ This is the format consumed by the `/knowledge` agent skill. Use it when scripti
200
205
  "incoming": []
201
206
  }
202
207
  ```
203
-
204
- ```bash
205
- pnpm exec elevasis knowledge:ls /by-kind/playbook --json | jq '.results[].id'
206
- ```
207
-
208
- ## Windows Note
209
-
210
- On Windows, MSYS Bash rewrites path arguments starting with `/` to Windows filesystem paths before the CLI sees them. Use PowerShell:
211
-
212
- ```powershell
213
- # Correct on Windows -- PowerShell leaves the path arg intact
214
- pnpm exec elevasis knowledge:ls /by-kind/playbook
215
-
216
- # Wrong on Windows -- MSYS Bash mangles to C:\by-kind\playbook or similar
217
- bash -c "pnpm exec elevasis knowledge:ls /by-kind/playbook"
218
- ```
219
-
220
- All other `elevasis` and `elevasis-sdk` commands are unaffected; this gotcha is specific to path arguments that start with `/`.
221
-
222
- ## See Also
223
-
208
+
209
+ ```bash
210
+ pnpm exec elevasis knowledge:ls /by-kind/playbook --json | jq '.results[].id'
211
+ ```
212
+
213
+ ## Windows Note
214
+
215
+ On Windows, MSYS Bash rewrites path arguments starting with `/` to Windows filesystem paths before the CLI sees them. Use PowerShell:
216
+
217
+ ```powershell
218
+ # Correct on Windows -- PowerShell leaves the path arg intact
219
+ pnpm exec elevasis knowledge:ls /by-kind/playbook
220
+
221
+ # Wrong on Windows -- MSYS Bash mangles to C:\by-kind\playbook or similar
222
+ bash -c "pnpm exec elevasis knowledge:ls /by-kind/playbook"
223
+ ```
224
+
225
+ All other `elevasis` and `elevasis-sdk` commands are unaffected; this gotcha is specific to path arguments that start with `/`.
226
+
227
+ ## See Also
228
+
224
229
  - [Query functions API](../reference/contracts.md) -- `bySystem`, `byOntology`, `byKind`, `byOwner`, `governs`, `governedBy` TypeScript signatures
225
- - [Glossary](../reference/glossary.md) -- `systemId`, `nodeId`, `kind`, `ownerIds`
226
- - [Knowledge Browser](../../../../apps/docs/content/docs/in-progress/active-development/sdk-changes/knowledge/index.mdx) -- task doc for the full Knowledge Map bundle
227
-
230
+ - [Glossary](../reference/glossary.md) -- `systemId`, `nodeId`, `kind`, `ownerIds`
231
+ - [Knowledge Browser](../../../../apps/docs/content/docs/in-progress/active-development/sdk-changes/knowledge/index.mdx) -- task doc for the full Knowledge Map bundle