@elevasis/sdk 1.20.2 → 1.21.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 +3386 -1529
- package/dist/index.d.ts +412 -149
- package/dist/index.js +955 -721
- package/dist/node/index.d.ts +0 -3
- package/dist/node/index.js +21 -48
- package/dist/test-utils/index.d.ts +395 -128
- package/dist/test-utils/index.js +599 -368
- package/dist/worker/index.js +536 -323
- package/package.json +2 -2
- package/reference/_navigation.md +9 -7
- package/reference/_reference-manifest.json +1 -1
- package/reference/claude-config/rules/agent-start-here.md +4 -0
- package/reference/claude-config/rules/frontend.md +2 -2
- package/reference/claude-config/rules/organization-model.md +44 -2
- package/reference/claude-config/rules/organization-os.md +12 -12
- package/reference/claude-config/rules/ui.md +14 -14
- package/reference/claude-config/rules/vibe.md +37 -33
- package/reference/claude-config/skills/explore/SKILL.md +6 -6
- package/reference/claude-config/skills/knowledge/SKILL.md +73 -29
- package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +1 -1
- package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +25 -24
- package/reference/claude-config/skills/knowledge/operations/features.md +56 -93
- package/reference/claude-config/skills/knowledge/operations/labels.md +19 -14
- package/reference/claude-config/skills/knowledge/operations/offerings.md +6 -6
- package/reference/claude-config/skills/save/SKILL.md +2 -2
- package/reference/claude-config/skills/setup/SKILL.md +1 -1
- package/reference/claude-config/skills/tutorial/technical.md +23 -26
- package/reference/claude-config/skills/tutorial/vibe-coder.md +9 -9
- package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -0
- package/reference/cli.mdx +140 -0
- package/reference/deployment/provided-features.mdx +29 -15
- package/reference/examples/organization-model.ts +1 -1
- package/reference/packages/core/src/knowledge/README.md +8 -7
- package/reference/packages/core/src/organization-model/README.md +66 -26
- package/reference/packages/ui/src/provider/README.md +5 -5
- package/reference/scaffold/core/organization-graph.mdx +16 -15
- package/reference/scaffold/core/organization-model.mdx +89 -41
- package/reference/scaffold/index.mdx +9 -9
- package/reference/scaffold/operations/propagation-pipeline.md +3 -3
- package/reference/scaffold/operations/scaffold-maintenance.md +11 -11
- package/reference/scaffold/recipes/add-a-feature.md +26 -24
- package/reference/scaffold/recipes/add-a-resource.md +10 -14
- package/reference/scaffold/recipes/customize-crm-actions.md +439 -439
- package/reference/scaffold/recipes/customize-knowledge-browser.md +384 -0
- package/reference/scaffold/recipes/customize-organization-model.md +72 -44
- package/reference/scaffold/recipes/extend-crm.md +40 -39
- package/reference/scaffold/recipes/extend-lead-gen.md +15 -16
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +34 -30
- package/reference/scaffold/recipes/index.md +13 -12
- package/reference/scaffold/recipes/query-the-knowledge-graph.md +200 -0
- package/reference/scaffold/reference/contracts.md +362 -99
- package/reference/scaffold/reference/feature-registry.md +9 -20
- package/reference/scaffold/reference/glossary.md +18 -18
- package/reference/scaffold/ui/composition-extensibility.mdx +23 -23
- package/reference/scaffold/ui/customization.md +11 -11
- package/reference/scaffold/ui/feature-flags-and-gating.md +8 -8
- package/reference/scaffold/ui/feature-shell.mdx +19 -19
- package/reference/scaffold/ui/recipes.md +29 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.0",
|
|
4
4
|
"description": "SDK for building Elevasis organization resources",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"tsup": "^8.0.0",
|
|
58
58
|
"typescript": "5.9.2",
|
|
59
59
|
"zod": "^4.1.0",
|
|
60
|
-
"@repo/core": "0.
|
|
60
|
+
"@repo/core": "0.23.0",
|
|
61
61
|
"@repo/typescript-config": "0.0.0",
|
|
62
62
|
"@repo/eslint-config": "0.0.0"
|
|
63
63
|
},
|
package/reference/_navigation.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- @generated by scripts/monorepo/generate-reference-artifacts.js -- DO NOT EDIT -->
|
|
2
|
+
|
|
1
3
|
# SDK Reference Navigation
|
|
2
4
|
|
|
3
5
|
Auto-generated from the package reference manifests.
|
|
@@ -20,7 +22,7 @@ Package entries indexed: 55.
|
|
|
20
22
|
|
|
21
23
|
| Resource | Location | Description | When to Load |
|
|
22
24
|
| --- | --- | --- | --- |
|
|
23
|
-
| Knowledge | `packages/core/src/knowledge/README.md` | Published knowledge query layer:
|
|
25
|
+
| Knowledge | `packages/core/src/knowledge/README.md` | Published knowledge query layer: bySystem/byKind/byOwner/governs/governedBy queries, parsePath, and output formatters. | (not specified) |
|
|
24
26
|
|
|
25
27
|
## @elevasis/core / Organization Model
|
|
26
28
|
|
|
@@ -153,17 +155,17 @@ Universal scaffold documentation for all SDK projects. Source locations are co-l
|
|
|
153
155
|
| Document | Bundle Path | Description |
|
|
154
156
|
| --- | --- | --- |
|
|
155
157
|
| Scaffold Index | `scaffold/index.mdx` | Discovery entry point and navigation map |
|
|
156
|
-
| Add a
|
|
158
|
+
| Add a System | `scaffold/recipes/add-a-feature.md` | End-to-end system addition recipe |
|
|
157
159
|
| Add a Resource | `scaffold/recipes/add-a-resource.md` | Workflow/agent authoring recipe |
|
|
158
|
-
| Gate by
|
|
160
|
+
| Gate by System/Admin | `scaffold/recipes/gate-by-feature-or-admin.md` | Access control patterns |
|
|
159
161
|
| UI Recipes | `scaffold/ui/recipes.md` | Copy-paste UI recipes |
|
|
160
|
-
|
|
|
161
|
-
| Customizing
|
|
162
|
-
|
|
|
162
|
+
| System Flags & Gating | `scaffold/ui/feature-flags-and-gating.md` | Three-concept gating model |
|
|
163
|
+
| Customizing Systems | `scaffold/ui/customization.md` | Sidebar composition patterns |
|
|
164
|
+
| System Shell | `scaffold/ui/feature-shell.mdx` | SystemModule manifest and provider |
|
|
163
165
|
| Composition & Extensibility | `scaffold/ui/composition-extensibility.mdx` | Layout primitives and overrides |
|
|
164
166
|
| Organization Model | `scaffold/core/organization-model.mdx` | Semantic contract and schema |
|
|
165
167
|
| Organization Graph | `scaffold/core/organization-graph.mdx` | Graph derivation and Cytoscape |
|
|
166
168
|
| Workflow Recipes | `scaffold/operations/workflow-recipes.md` | Workflow anatomy and adapters |
|
|
167
169
|
| Glossary | `scaffold/reference/glossary.md` | Term definitions |
|
|
168
170
|
| Contracts | `scaffold/reference/contracts.md` | Auto-generated type contracts |
|
|
169
|
-
|
|
|
171
|
+
| System Registry | `scaffold/reference/feature-registry.md` | Auto-generated system catalog |
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"subpath": "./knowledge",
|
|
36
36
|
"kind": "subpath",
|
|
37
37
|
"title": "Knowledge",
|
|
38
|
-
"description": "Published knowledge query layer:
|
|
38
|
+
"description": "Published knowledge query layer: bySystem/byKind/byOwner/governs/governedBy queries, parsePath, and output formatters.",
|
|
39
39
|
"group": "Knowledge",
|
|
40
40
|
"order": 1,
|
|
41
41
|
"sourcePath": "packages/core/src/knowledge/index.ts",
|
|
@@ -182,6 +182,7 @@ Load first:
|
|
|
182
182
|
- `operations/src/README.md`
|
|
183
183
|
- `.claude/rules/active-change-index.md`
|
|
184
184
|
- Read `operations/src/index.ts` for deployment assembly, `core/config/organization-model.ts` for resource descriptors, or run `pnpm elevasis-sdk project:list --pretty` for live DB state
|
|
185
|
+
- For "why didn't this run?", "why is this still pending?", "what needs approval?", or schedule/queue debugging, inspect live operations state with `pnpm elevasis-sdk schedule:list --pretty`, `pnpm elevasis-sdk queue:list --status pending --pretty`, and `pnpm elevasis-sdk queue:status --pretty`.
|
|
185
186
|
|
|
186
187
|
Then inspect:
|
|
187
188
|
|
|
@@ -189,12 +190,15 @@ Then inspect:
|
|
|
189
190
|
- resource definitions
|
|
190
191
|
- related UI route and feature files
|
|
191
192
|
- related core contracts
|
|
193
|
+
- pending HITL items via `elevasis-sdk queue:get <id>` before selecting or expiring an action
|
|
194
|
+
- recurring automation via `elevasis-sdk schedule:get <id>` before pausing, resuming, or cancelling it
|
|
192
195
|
|
|
193
196
|
Verify with:
|
|
194
197
|
|
|
195
198
|
- resource registration and relationship declarations
|
|
196
199
|
- generated maps
|
|
197
200
|
- package and source ownership boundaries
|
|
201
|
+
- `queue:*` or `schedule:*` CLI output when runtime state is part of the question
|
|
198
202
|
|
|
199
203
|
### 5. Platform Extension / Package Contract Work
|
|
200
204
|
|
|
@@ -36,8 +36,8 @@ When building pages that display external data, use published `@elevasis/ui` com
|
|
|
36
36
|
## Detailed Reference
|
|
37
37
|
|
|
38
38
|
- `node_modules/@elevasis/sdk/reference/scaffold/ui/recipes.md` -- add a page, add a nav item, theme tokens, feature-scoped components, route patterns (static, nested, dynamic)
|
|
39
|
-
- `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md` -- `
|
|
39
|
+
- `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md` -- `systemKey` / `SystemGuard` / `AdminGuard` model
|
|
40
40
|
- `node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md` -- sidebar composition via manifest overrides
|
|
41
|
-
- `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` -- TypeScript shapes (`
|
|
41
|
+
- `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` -- TypeScript shapes (`SystemModule`, `NavItem`, `OrganizationModel`)
|
|
42
42
|
- `ui/src/config/theme.ts` -- theme configuration and CSS variable definitions
|
|
43
43
|
- `ui/src/config/nav-items.ts` -- sidebar navigation entries
|
|
@@ -9,7 +9,7 @@ paths:
|
|
|
9
9
|
|
|
10
10
|
`core/config/organization-model.ts` is the single source of truth for this
|
|
11
11
|
project's organizational identity -- it encodes customers, offerings, roles, goals,
|
|
12
|
-
|
|
12
|
+
Systems, Actions, statuses, and Resources descriptors that agents, workflows, and the
|
|
13
13
|
UI shell all consume at runtime.
|
|
14
14
|
|
|
15
15
|
## Preferred Entry Point: `/knowledge`
|
|
@@ -24,7 +24,7 @@ Direct edits to `organization-model.ts` are discouraged. Instead, use `/knowledg
|
|
|
24
24
|
is verified. On failure the file is rolled back automatically.
|
|
25
25
|
|
|
26
26
|
Use `/knowledge <domain>` for targeted edits: `identity`, `customers`, `offerings`,
|
|
27
|
-
`roles`, `goals`, `techStack`, `
|
|
27
|
+
`roles`, `goals`, `techStack`, `systems`, `actions`, or `labels`. Resource identity and
|
|
28
28
|
governance metadata belong in `resources.entries`; operations code derives runtime
|
|
29
29
|
`resourceId` / `type` from those descriptors.
|
|
30
30
|
|
|
@@ -43,3 +43,45 @@ to explicit user confirmation before scaffolding a new `.ts` file.
|
|
|
43
43
|
|
|
44
44
|
This is a soft guide, not a hard block. The ceremony exists to prevent silent schema
|
|
45
45
|
drift and to keep the model's editorial history visible.
|
|
46
|
+
|
|
47
|
+
## Resource System Attachment
|
|
48
|
+
|
|
49
|
+
Every resource in `organizationModel.resources.entries` declares which System it belongs to
|
|
50
|
+
via `systemPath` -- a dot-separated path that resolves against the OM system tree
|
|
51
|
+
(e.g. `"sys.lead-gen"`, `"business.sales.crm"`):
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
{
|
|
55
|
+
id: 'apify-website-crawl',
|
|
56
|
+
systemPath: 'sys.lead-gen', // canonical system attachment
|
|
57
|
+
kind: 'workflow',
|
|
58
|
+
...
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`systemPath` is validated at parse time by `SystemPathSchema` and cross-checked by
|
|
63
|
+
`OrganizationModelSchema.superRefine` -- an unresolvable path causes a Zod error at
|
|
64
|
+
schema validation. Use `getResourcesForSystem(model, path)` (from `@elevasis/core`) to
|
|
65
|
+
query resources for a system at runtime. Pass `{ includeDescendants: true }` to include
|
|
66
|
+
all descendant systems (segment-aware -- `'sales'` does NOT match `'salesforce.foo'`).
|
|
67
|
+
|
|
68
|
+
Some external templates may carry a `systemId` compatibility mirror while published
|
|
69
|
+
`@elevasis/core` releases catch up to the current source contract. Treat that field as
|
|
70
|
+
legacy adapter data only; author new resource relationships against `systemPath`.
|
|
71
|
+
|
|
72
|
+
Do not fetch resources for every system-oriented read by default. For agent workflows, start
|
|
73
|
+
with the user's requested OM/knowledge context and query resources only when the task involves
|
|
74
|
+
runtime ownership, executable implementation, observability, deployment, or resource governance.
|
|
75
|
+
Use the descendant rollup only when parent-system scope is intended.
|
|
76
|
+
|
|
77
|
+
`resource.category` and `resource.links[].nodeId` are **runtime filter overlays** -- they
|
|
78
|
+
drive UI faceted filtering in the Command Center but do NOT define system membership.
|
|
79
|
+
System membership is `systemPath` only.
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
// category and links power UI filter chips; systemPath is the
|
|
83
|
+
// canonical OM attachment used for graph edges and getResourcesForSystem queries.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
See `.claude/rules/system-shaping.md` (in the monorepo) for the substrate-shaping
|
|
87
|
+
propagation checklist that governs renames of this shape.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Organization OS
|
|
2
2
|
|
|
3
|
-
Organization OS is the semantic contract layer defining how organizations,
|
|
3
|
+
Organization OS is the semantic contract layer defining how organizations, Systems, Actions, domains, surfaces, entities, and resources relate. This project consumes Organization OS through published `@elevasis/core` / `@elevasis/sdk` configuration and does not maintain the monorepo schema.
|
|
4
4
|
|
|
5
5
|
## Key Files in This Project
|
|
6
6
|
|
|
7
7
|
- `core/config/organization-model.ts` -- project-specific org model definition, Systems, and Resources descriptor catalog (`organizationModel.resources.entries`)
|
|
8
8
|
- `core/config/extensions/` -- project-owned entity extension schemas
|
|
9
9
|
- `core/types/entities.ts` -- typed entity contracts (Project, Deal, etc.). Extends `BaseProject`, `BaseDeal` from `@elevasis/core/entities` with project-specific metadata. Read this when authoring workflows that operate on these entities.
|
|
10
|
-
- `ui/src/routes/__root.tsx` -- wires `
|
|
10
|
+
- `ui/src/routes/__root.tsx` -- wires `ElevasisSystemsProvider` with `canonicalOrganizationModel`
|
|
11
11
|
- `ui/src/app-config.ts` -- references the org model
|
|
12
12
|
- `operations/src/index.ts` -- `DeploymentSpec` registry for workflows and agents
|
|
13
13
|
|
|
@@ -15,21 +15,21 @@ Organization OS is the semantic contract layer defining how organizations, featu
|
|
|
15
15
|
|
|
16
16
|
As of the 2026-05 resource-governance expansion, `OrganizationModel` includes platform configuration, organizational reality, and governance domains:
|
|
17
17
|
|
|
18
|
-
**Platform configuration:** `
|
|
18
|
+
**Platform configuration:** `systems`, `actions`, `branding`, `navigation`, `sales` (formerly `crm`), `prospecting` (formerly `leadGen`), `projects` (formerly `delivery`)
|
|
19
19
|
|
|
20
20
|
**Organizational reality:** `identity`, `customers`, `offerings`, `roles`, `goals`
|
|
21
21
|
|
|
22
|
-
**Governance:** `
|
|
22
|
+
**Governance:** `resources` and System-to-Action relationships
|
|
23
23
|
|
|
24
24
|
**Vibe layer:** `statuses`, `operations`
|
|
25
25
|
|
|
26
|
-
Resource identity is authored once in `resources.entries`. Operations imports those descriptors and derives runtime `resourceId` / `type` while assembling the `DeploymentSpec`.
|
|
26
|
+
Resource identity is authored once in `resources.entries`. Each resource attaches to a System via `systemPath`; some templates may include a temporary `systemId` compatibility mirror for older published `@elevasis/core` packages. Operations imports those descriptors and derives runtime `resourceId` / `type` while assembling the `DeploymentSpec`.
|
|
27
27
|
|
|
28
28
|
### Domain Rename Note
|
|
29
29
|
|
|
30
|
-
Three field names changed in the 2026-04-20 expansion.
|
|
30
|
+
Three field names changed in the 2026-04-20 expansion. Legacy UI feature constants and consumer-facing route keys are unchanged:
|
|
31
31
|
|
|
32
|
-
| Old field | New field |
|
|
32
|
+
| Old field | New field | Legacy key (unchanged) | UI constant (unchanged) |
|
|
33
33
|
| ---------- | ------------- | ---------------------- | --------------------- |
|
|
34
34
|
| `crm` | `sales` | `'crm'` | `CRM_FEATURE_ID` |
|
|
35
35
|
| `leadGen` | `prospecting` | `'lead-gen'` | `LEAD_GEN_FEATURE_ID` |
|
|
@@ -46,7 +46,7 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
46
46
|
- `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` -- scaffold root and navigation
|
|
47
47
|
- `node_modules/@elevasis/sdk/reference/scaffold/core/organization-model.mdx` -- semantic contract, all 14 domains, adapter authoring, validation gate, `/knowledge` entry point
|
|
48
48
|
- `node_modules/@elevasis/sdk/reference/scaffold/core/organization-graph.mdx` -- graph derivation, node/edge taxonomy, lenses
|
|
49
|
-
- `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-shell.mdx` --
|
|
49
|
+
- `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-shell.mdx` -- SystemModule manifest, provider runtime
|
|
50
50
|
- `node_modules/@elevasis/sdk/reference/scaffold/ui/composition-extensibility.mdx` -- layout primitives, router abstraction
|
|
51
51
|
- `node_modules/@elevasis/sdk/reference/scaffold/ui/recipes.md` -- copy-paste UI recipes for pages, nav items, components
|
|
52
52
|
- `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md` -- three-concept gating model
|
|
@@ -68,8 +68,8 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
68
68
|
|
|
69
69
|
## Published Subpaths and Constants
|
|
70
70
|
|
|
71
|
-
- `@elevasis/core/organization-model` -- the curated organization-model barrel. Exports `defineOrganizationModel`, `resolveOrganizationModel`, `OrganizationModelSchema`, `DEFAULT_ORGANIZATION_MODEL`, organization-model types, and typed feature/surface constants.
|
|
72
|
-
-
|
|
71
|
+
- `@elevasis/core/organization-model` -- the curated organization-model barrel. Exports `defineOrganizationModel`, `resolveOrganizationModel`, `OrganizationModelSchema`, `DEFAULT_ORGANIZATION_MODEL`, organization-model types, and typed System/Action plus legacy UI feature/surface constants.
|
|
72
|
+
- Legacy UI feature IDs: `CRM_FEATURE_ID`, `LEAD_GEN_FEATURE_ID`, `PROJECTS_FEATURE_ID`, `OPERATIONS_FEATURE_ID`, `MONITORING_FEATURE_ID`, `SETTINGS_FEATURE_ID`, `SEO_FEATURE_ID`
|
|
73
73
|
- Headline surface IDs: `CRM_PIPELINE_SURFACE_ID`, `LEAD_GEN_LISTS_SURFACE_ID`, `PROJECTS_INDEX_SURFACE_ID`, `OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID`
|
|
74
74
|
- Reality domain types: `OrganizationModelIdentity`, `OrganizationModelCustomers`, `OrganizationModelCustomerSegment`, `OrganizationModelOfferings`, `OrganizationModelProduct`, `OrganizationModelRoles`, `OrganizationModelRole`, `OrganizationModelGoals`, `OrganizationModelObjective`, `OrganizationModelKeyResult`
|
|
75
75
|
- Vibe domain types: `OrganizationModelStatuses`, `OrganizationModelOperations`
|
|
@@ -83,7 +83,7 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
83
83
|
- **Building or extending CRM:** Start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-crm.md`. CRM spans Organization OS sales semantics, shared UI primitives, deal hooks, workflow adapters, and generated contracts.
|
|
84
84
|
- **Building or extending lead gen:** Start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md`. Lead gen spans Organization OS prospecting semantics, shared UI primitives, list/member hooks, artifact hooks, workflow adapters, and generated contracts.
|
|
85
85
|
- **Customizing CRM deal actions:** Follow `node_modules/@elevasis/sdk/reference/scaffold/recipes/customize-crm-actions.md`. Do not add `sales.actions` to the org model; the v1 server-side override surface is intentionally deferred.
|
|
86
|
-
- **Adding a
|
|
86
|
+
- **Adding or toggling a System:** Follow the current scaffold recipes when they mention UI features, but translate Organization OS changes to Systems, navigation surfaces, and Actions. Use `/knowledge systems` for availability/routing changes.
|
|
87
87
|
- **Adding a resource:** Follow `node_modules/@elevasis/sdk/reference/scaffold/recipes/add-a-resource.md`.
|
|
88
88
|
- **Extending entities:** Start with `core/types/entities.ts` for the demo extension pattern. Base shapes come from `@elevasis/core/entities`.
|
|
89
89
|
- **Authoring a workflow that takes a Project/Deal/etc.:** Reference entity types from `core/types/entities.ts` in the input schema -- do not redeclare them.
|
|
@@ -103,7 +103,7 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
103
103
|
- `/knowledge roles` -- role chart with responsibilities, reporting lines, and holders
|
|
104
104
|
- `/knowledge goals` -- organizational goals with period and measurable outcomes
|
|
105
105
|
- `/knowledge techStack` -- external-SaaS and integration context; resource identity still belongs in OM Resources descriptors
|
|
106
|
-
- `/knowledge
|
|
106
|
+
- `/knowledge systems` -- enable, disable, or add Systems; route invokable behavior through Actions
|
|
107
107
|
- `/knowledge labels` -- edit display labels on enum entries (statuses, stages)
|
|
108
108
|
|
|
109
109
|
Every write is gated: `resolveOrganizationModel()` must succeed (Zod cross-refs pass) and `pnpm -C operations check-types` must pass. On failure the change is rolled back.
|
|
@@ -10,16 +10,16 @@ paths:
|
|
|
10
10
|
|
|
11
11
|
## App Shell Overview
|
|
12
12
|
|
|
13
|
-
The template frontend is a React 19 + TanStack Router app that composes a local dashboard shell with published
|
|
13
|
+
The template frontend is a React 19 + TanStack Router app that composes a local dashboard shell with published System modules from `@elevasis/ui`.
|
|
14
14
|
|
|
15
15
|
The main join points are:
|
|
16
16
|
|
|
17
17
|
- `ui/src/main.tsx` -- boots the app with `ElevasisUIProvider`, query client, theme config, WorkOS AuthKit, notifications, and the generated route tree
|
|
18
|
-
- `ui/src/routes/__root.tsx` -- composes the authenticated shell with `
|
|
18
|
+
- `ui/src/routes/__root.tsx` -- composes the authenticated shell with `ElevasisSystemsProvider`, published System modules, app-local dashboard nav, shell runtime dependencies, and `SystemShell`
|
|
19
19
|
- `ui/src/config/nav-items.ts` -- keeps the host-local dashboard entry separate from the published feature manifests
|
|
20
|
-
- `core/config/organization-model.ts` -- is the template's semantic source of truth, adapting `@elevasis/core/organization-model` into the preserved branding, dashboard label, quick-access,
|
|
20
|
+
- `core/config/organization-model.ts` -- is the template's semantic source of truth, adapting `@elevasis/core/organization-model` into the preserved branding, dashboard label, quick-access, System labels, resource descriptors, and shell helpers
|
|
21
21
|
|
|
22
|
-
Published
|
|
22
|
+
Published System modules mounted by the template shell:
|
|
23
23
|
|
|
24
24
|
- `lead-gen`
|
|
25
25
|
- `crm`
|
|
@@ -30,7 +30,7 @@ Published feature manifests mounted by the template shell:
|
|
|
30
30
|
|
|
31
31
|
Important distinction:
|
|
32
32
|
|
|
33
|
-
- shared
|
|
33
|
+
- shared modules gate on current org-model System keys such as `sales.lead-gen` and `projects`
|
|
34
34
|
- template routes and local nav may still use legacy aliases such as `crm`, `lead-gen`, and `projects`
|
|
35
35
|
- `core/config/organization-model.ts` and `ui/src/lib/hooks/useFeatureAccess.ts` are the bridge between those two vocabularies
|
|
36
36
|
|
|
@@ -40,7 +40,7 @@ This template should be treated as the downstream reference implementation for t
|
|
|
40
40
|
|
|
41
41
|
- foundations owns the organization/runtime semantics
|
|
42
42
|
- `ui/src/config/nav-items.ts` preserves the host-local dashboard entry instead of pushing that concern into shared manifests
|
|
43
|
-
- `ui/src/routes/__root.tsx` threads `canonicalOrganizationModel` from foundations into `
|
|
43
|
+
- `ui/src/routes/__root.tsx` threads `canonicalOrganizationModel` from foundations into `ElevasisSystemsProvider` so the shared shell/runtime uses the same semantic source of truth as the local template helpers
|
|
44
44
|
- host-local customizations still stay local: dashboard remains app-owned nav, branding stays in app config, and quick-access/dashboard UX stays in the template app
|
|
45
45
|
|
|
46
46
|
## Auth and Initialization
|
|
@@ -126,10 +126,10 @@ Current top-level app sections:
|
|
|
126
126
|
Section guards currently follow this pattern:
|
|
127
127
|
|
|
128
128
|
- `ProtectedRoute` for all authenticated sections
|
|
129
|
-
- `
|
|
130
|
-
- provider-level shell gating for shared
|
|
129
|
+
- `SystemGuard` on sections that should hard-stop when a System is disabled: `crm`, `lead-gen`, `projects`, `operations`, and `monitoring`
|
|
130
|
+
- provider-level shell gating for shared System nav and sub-shell behavior
|
|
131
131
|
|
|
132
|
-
The app shell in `__root.tsx` derives visible nav from `shellModel.
|
|
132
|
+
The app shell in `__root.tsx` derives visible nav from `shellModel.systems` and `getSidebarLinks()`, filters admin-only entries locally using the signed-in profile, and passes `canonicalOrganizationModel` into `ElevasisSystemsProvider` so shared nav labels, paths, and graph runtime behavior resolve from the same foundations-backed semantic model.
|
|
133
133
|
|
|
134
134
|
## Dashboard and Feature Areas
|
|
135
135
|
|
|
@@ -165,14 +165,14 @@ The main template-owned customization surfaces are:
|
|
|
165
165
|
- `ui/src/config/background.tsx` -- shared background treatment
|
|
166
166
|
- `ui/src/config/loader.tsx` -- global loader element
|
|
167
167
|
- `ui/src/config/nav-items.ts` -- app-local nav entries, including the preserved dashboard/home entry
|
|
168
|
-
- `core/config/organization-model.ts` -- product labels,
|
|
168
|
+
- `core/config/organization-model.ts` -- product labels, System availability, resource descriptors, semantic surfaces, canonical-to-legacy surface aliases, and quick-access behavior
|
|
169
169
|
- `ui/src/config/README.md` -- the deeper guide for those config files
|
|
170
170
|
|
|
171
|
-
## Customizing
|
|
171
|
+
## Customizing System Sidebars
|
|
172
172
|
|
|
173
|
-
The template demonstrates one override pattern in `ui/src/routes/__root.tsx`: it extends `CRM_ITEMS` with a template-owned Reports link and replaces `crmManifest` with `customCrmManifest` in the
|
|
173
|
+
The template demonstrates one override pattern in `ui/src/routes/__root.tsx`: it extends `CRM_ITEMS` with a template-owned Reports link and replaces `crmManifest` with `customCrmManifest` in the System module array. The backing route lives at `ui/src/routes/crm/reports.tsx` -- delete both the nav item and the route if you don't need them.
|
|
174
174
|
|
|
175
|
-
Two customization layers are available for every shared
|
|
175
|
+
Two customization layers are available for every shared System sidebar:
|
|
176
176
|
|
|
177
177
|
1. **Nav-item shortcut (`items` prop)** -- when you just need to swap or extend the nav array, spread the published items constant and pass the result to `*SidebarMiddle`. The template's CRM customization uses this path.
|
|
178
178
|
|
|
@@ -189,7 +189,7 @@ Two customization layers are available for every shared feature sidebar:
|
|
|
189
189
|
|
|
190
190
|
`manifest.sidebar` accepts any component, so arbitrary customization is always available. The `items` prop is an abstraction barrier for the common case, not a limit.
|
|
191
191
|
|
|
192
|
-
See `node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md` for the decision tree, page-wrapping pattern, and delivery's three-section variant. For broader CRM extension work across pages, hooks, actions, workflows, and org-model boundaries, start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-crm.md`. For broader lead-gen extension work across pages, hooks, list/member state, artifacts, workflows, and org-model boundaries, start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md`. See `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` for `NavItem`, `
|
|
192
|
+
See `node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md` for the decision tree, page-wrapping pattern, and delivery's three-section variant. For broader CRM extension work across pages, hooks, actions, workflows, and org-model boundaries, start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-crm.md`. For broader lead-gen extension work across pages, hooks, list/member state, artifacts, workflows, and org-model boundaries, start with `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md`. See `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` for `NavItem`, `SystemModule`, CRM platform primitives, Lead Gen platform primitives, and related TypeScript shapes.
|
|
193
193
|
|
|
194
194
|
For CRM deal action buttons, read `node_modules/@elevasis/sdk/reference/scaffold/recipes/customize-crm-actions.md` before changing `crmActions`, `DealDetailPage`, `DealDrawer`, or custom workflow buttons. Start with the shared `crmActions` provider path for action visibility, labels, ordering, and render-time configuration. In v1, platform-known/default action endpoint behavior is server-constrained; use project-owned UI that calls the workflow directly when a custom key sits outside that server-dispatched set.
|
|
195
195
|
|
|
@@ -30,25 +30,27 @@ The user wants to record something new -- a task, a note, a piece of information
|
|
|
30
30
|
| ------------------------------------------------- | ------------------------------------------- |
|
|
31
31
|
| "Add a task to follow up with the Shopify client" | Explicit "add a task" with a described item |
|
|
32
32
|
| "Remember to run the campaign report on Friday" | "Remember to" signals something to persist |
|
|
33
|
+
| "Run the campaign report every Friday at 9am" | Repeating schedule vocabulary to persist |
|
|
33
34
|
| "Track this conversation as a deal note" | Explicit "track" with a described artifact |
|
|
34
35
|
|
|
35
|
-
**Agent action:** draft the capture in plain language, confirm with the user, then execute via `elevasis-sdk project:*` commands. Never write without confirmation.
|
|
36
|
+
**Agent action:** draft the capture in plain language, confirm with the user, then execute via `elevasis-sdk project:*` commands for project records or `elevasis-sdk schedule:create` for recurring automation. Use repetition vocabulary ("every", "daily", "weekly", "monthly") for schedules; one-shot future reminders stay project tasks with due dates. Never write without confirmation.
|
|
36
37
|
|
|
37
38
|
### 2. Query
|
|
38
39
|
|
|
39
40
|
The user wants to know something about current state -- task priorities, what is pending, what is running, what failed.
|
|
40
41
|
|
|
41
|
-
**Recognize by:** questions about the current list, status, or queue of things. Includes both static-model queries ("what
|
|
42
|
+
**Recognize by:** questions about the current list, status, or queue of things. Includes both static-model queries ("what systems are on?") and runtime-entity queries ("what's pending in the queue?"). Route Query to static-model sources (org model, Systems/Actions config) or runtime sources (operations domain) based on the referenced entity.
|
|
42
43
|
|
|
43
44
|
**Fixture examples:**
|
|
44
45
|
|
|
45
|
-
| Input
|
|
46
|
-
|
|
|
47
|
-
| "What should I work on next?"
|
|
48
|
-
| "What's pending in the HITL queue?"
|
|
49
|
-
| "What
|
|
46
|
+
| Input | Why it's Query |
|
|
47
|
+
| -------------------------------------------- | ------------------------------------------- |
|
|
48
|
+
| "What should I work on next?" | Asking for prioritized task list |
|
|
49
|
+
| "What's pending in the HITL queue?" | Runtime-entity query about operations state |
|
|
50
|
+
| "What runs this week?" | Runtime query about upcoming schedules |
|
|
51
|
+
| "What systems are enabled for this project?" | Static-model query about Systems config |
|
|
50
52
|
|
|
51
|
-
**Agent action:** read the relevant source
|
|
53
|
+
**Agent action:** read the relevant source and narrate the answer in plain language. Use org model or `project:*` for project state, `elevasis-sdk queue:list --status pending --pretty` and `queue:status --pretty` for HITL queue state, and `elevasis-sdk schedule:list --status active --pretty` for upcoming recurring automation. No writes.
|
|
52
54
|
|
|
53
55
|
### 3. Describe
|
|
54
56
|
|
|
@@ -61,10 +63,10 @@ The user wants the agent to explain something -- a scope, an entity, a concept w
|
|
|
61
63
|
| Input | Why it's Describe |
|
|
62
64
|
| ------------------------------------------ | ----------------------------------------------------- |
|
|
63
65
|
| "What's going on with the ZentaraHQ deal?" | Asking for a plain-language description of an entity |
|
|
64
|
-
| "Tell me about the CRM
|
|
66
|
+
| "Tell me about the CRM system" | Asking the agent to narrate what a model element does |
|
|
65
67
|
| "Where am I in this project?" | Asking for current scope narration |
|
|
66
68
|
|
|
67
|
-
**Agent action:** read the relevant org-model label, entity, or scope. Narrate in plain language using label fields from the model -- never invent vocabulary not present in the model. Phase-1 scope covers Model,
|
|
69
|
+
**Agent action:** read the relevant org-model label, entity, or scope. Narrate in plain language using label fields from the model -- never invent vocabulary not present in the model. Phase-1 scope covers Model, Systems/Actions, and Foundations layers only.
|
|
68
70
|
|
|
69
71
|
**Stage/state/catalog sub-routing:** when the noun being described is a stage, state, status
|
|
70
72
|
bucket, catalog entry, progress step, pipeline column, or similarly closed business vocabulary,
|
|
@@ -90,12 +92,14 @@ The user wants to change the status of a task or entity.
|
|
|
90
92
|
| "Done with the proposal draft" | "Done" + named artifact = status transition |
|
|
91
93
|
| "Stuck -- blocked waiting on client feedback" | "Stuck" + reason = blocked transition |
|
|
92
94
|
| "Mark the onboarding task as complete" | Explicit status-change vocabulary |
|
|
95
|
+
| "Approve the pending checkpoint" | Selects an action from the HITL queue |
|
|
96
|
+
| "Pause the Friday report" | Changes schedule state |
|
|
93
97
|
|
|
94
|
-
**Agent action:** identify the task or entity being transitioned, confirm the new status with the user, then apply
|
|
98
|
+
**Agent action:** identify the task, queue item, schedule, or entity being transitioned, confirm the new status/action with the user, then apply it via `elevasis-sdk project:task:save`, `elevasis-sdk queue:select <id> --action-id <id>`, `elevasis-sdk queue:expire <id>`, `elevasis-sdk schedule:pause <id>`, `schedule:resume <id>`, or `schedule:cancel <id>` as appropriate. Never auto-transition without confirmation if the target entity is ambiguous.
|
|
95
99
|
|
|
96
100
|
### 5. Navigate
|
|
97
101
|
|
|
98
|
-
The user wants to shift focus -- to a different task, project,
|
|
102
|
+
The user wants to shift focus -- to a different task, project, System, Action, or layer of the model.
|
|
99
103
|
|
|
100
104
|
**Recognize by:** focus-shift vocabulary -- "focus on", "let's look at", "switch to", "back to", "move to", "open", "go to" -- followed by a scope target.
|
|
101
105
|
|
|
@@ -123,7 +127,7 @@ The user describes organizational reality that is not yet expressed in the model
|
|
|
123
127
|
| "We track deal stage as discovery, scoping, proposal, closed" | Describes custom CRM stages that should replace defaults |
|
|
124
128
|
| "Add a project type called 'retainer' with monthly billing and a contract field" | Explicit request to add a new entity extension |
|
|
125
129
|
|
|
126
|
-
**Agent action:** delegate immediately to `/knowledge`. Do not attempt the ceremony yourself. Invoke with the relevant domain: `/knowledge
|
|
130
|
+
**Agent action:** delegate immediately to `/knowledge`. Do not attempt the ceremony yourself. Invoke with the relevant domain: `/knowledge sales` for deal/contact changes, `/knowledge projects` for project types, `/knowledge systems` for availability/routing toggles, and `/knowledge actions` for invokable operation changes. Plain-language summary of what was detected is acceptable before delegating, but the actual draft-confirm-write ceremony belongs to `/knowledge`.
|
|
127
131
|
|
|
128
132
|
**Stage/state/catalog impact preview:** if the Codify intent adds, renames, removes, reorders, or
|
|
129
133
|
re-scopes a stage, state, status bucket, catalog member, pipeline step, or progress vocabulary,
|
|
@@ -139,7 +143,7 @@ change and does not expose monorepo-only commands.
|
|
|
139
143
|
|
|
140
144
|
This routing applies to both codify levels (decision #21 -- Codify ceremony delegated to `/knowledge`):
|
|
141
145
|
|
|
142
|
-
- **Level A** (config-only edits to `organization-model.ts`,
|
|
146
|
+
- **Level A** (config-only edits to `organization-model.ts`, System availability/routing toggles, label renames): delegate to `/knowledge <domain>` immediately.
|
|
143
147
|
- **Level B** (new Zod extension files in `core/config/extensions/`): also delegate to `/knowledge <domain>`; `/knowledge` gates Level B to explicit user asks before scaffolding a new TS file.
|
|
144
148
|
|
|
145
149
|
Vibe detects the intent and delegates in both cases. It does not run either pipeline itself.
|
|
@@ -159,37 +163,37 @@ Heuristics for when to propose codification (passed to `/knowledge` as context):
|
|
|
159
163
|
|
|
160
164
|
### 7. Toggle
|
|
161
165
|
|
|
162
|
-
The user wants to enable or disable a
|
|
166
|
+
The user wants to enable or disable a System.
|
|
163
167
|
|
|
164
|
-
**Recognize by:**
|
|
168
|
+
**Recognize by:** system-control vocabulary -- "turn on", "enable", "disable", "turn off", "activate", "deactivate" -- followed by a System name or description.
|
|
165
169
|
|
|
166
170
|
**Fixture examples:**
|
|
167
171
|
|
|
168
|
-
| Input | Why it's Toggle
|
|
169
|
-
| ------------------------------- |
|
|
170
|
-
| "Turn on the lead-gen
|
|
171
|
-
| "Disable monitoring for now" | "Disable" +
|
|
172
|
-
| "We don't use SEO, turn it off" | Declarative + "turn it off" =
|
|
172
|
+
| Input | Why it's Toggle |
|
|
173
|
+
| ------------------------------- | -------------------------------------------- |
|
|
174
|
+
| "Turn on the lead-gen system" | Explicit "turn on" + System name |
|
|
175
|
+
| "Disable monitoring for now" | "Disable" + System reference |
|
|
176
|
+
| "We don't use SEO, turn it off" | Declarative + "turn it off" = System disable |
|
|
173
177
|
|
|
174
|
-
**Agent action:** delegate to `/knowledge
|
|
178
|
+
**Agent action:** delegate to `/knowledge systems`. The ceremony (confirm + edit `core/config/organization-model.ts` + typecheck) belongs to `/knowledge`, not to the ambient rule.
|
|
175
179
|
|
|
176
180
|
## Quick Reference Table
|
|
177
181
|
|
|
178
|
-
| Intent | Trigger signal
|
|
179
|
-
| ---------- |
|
|
180
|
-
| Capture | "add", "remember", "track", "log" + a thing
|
|
181
|
-
| Query | "what's next", "what's pending", "what failed", "what
|
|
182
|
-
| Describe | "what is", "tell me about", "explain", "where am I"
|
|
183
|
-
| Transition | "done", "stuck", "blocked", "finished", "complete"
|
|
184
|
-
| Navigate | "focus on", "switch to", "back to", "look at"
|
|
185
|
-
| Codify | "we are X", "we track Y", repeated attribute, "add type/field"
|
|
186
|
-
| Toggle | "enable", "disable", "turn on/off" +
|
|
182
|
+
| Intent | Trigger signal | Routed to |
|
|
183
|
+
| ---------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
184
|
+
| Capture | "add", "remember", "track", "log" + a thing | Agent -- draft + confirm + `project:*` or `schedule:create` CLI |
|
|
185
|
+
| Query | "what's next", "what's pending", "what failed", "what systems" | Agent -- read with `project:*`, `queue:*`, or `schedule:*` + narrate |
|
|
186
|
+
| Describe | "what is", "tell me about", "explain", "where am I" | Agent -- narrate from org model labels |
|
|
187
|
+
| Transition | "done", "stuck", "blocked", "finished", "complete", "approve", "pause" | Agent -- confirm + `project:task:save`, `queue:select`, or `schedule:*` |
|
|
188
|
+
| Navigate | "focus on", "switch to", "back to", "look at" | Agent -- update scope + narrate |
|
|
189
|
+
| Codify | "we are X", "we track Y", repeated attribute, "add type/field" | Delegate to `/knowledge \<domain>` |
|
|
190
|
+
| Toggle | "enable", "disable", "turn on/off" + system | Delegate to `/knowledge systems` |
|
|
187
191
|
|
|
188
192
|
## Source of Truth for Plain Language
|
|
189
193
|
|
|
190
194
|
All plain-language labels come from the OrganizationModel itself -- never from hardcoded strings in this rule file. Every status, entity kind, and layer name in the model carries an inline `label` field (e.g., `{ id: 'revision_requested', label: 'changes needed', semanticClass: 'blocked' }`). When narrating state or confirming an action, read the label from the model and use it verbatim. Do not invent synonyms or fallback vocabulary.
|
|
191
195
|
|
|
192
|
-
The unified manifest (delivered via `@elevasis/core/organization-model`) is the canonical vocabulary surface. Vibe classifies against it --
|
|
196
|
+
The unified manifest (delivered via `@elevasis/core/organization-model`) is the canonical vocabulary surface. Vibe classifies against it -- Systems, Actions, statuses, operations entities, and resource kinds are all discoverable from the manifest without hardcoding.
|
|
193
197
|
|
|
194
198
|
## Ambiguous Intent
|
|
195
199
|
|
|
@@ -218,7 +222,7 @@ Override per project in `core/config/organization-model.ts` under `vibe.classifi
|
|
|
218
222
|
This rule covers Phase 1 of the vibe layer rollout. The layers the ambient classifier can narrate and codify in Phase 1 are:
|
|
219
223
|
|
|
220
224
|
- Layer 1 (Model): narrate schema shape, propose codification edits via `/knowledge`
|
|
221
|
-
- Layer 4 (
|
|
225
|
+
- Layer 4 (Systems/Actions): describe which Systems are on/off, propose enabling one via `/knowledge`
|
|
222
226
|
- Layer 7 (Foundations): explain and edit `organization-model.ts` and `extensions/` via `/knowledge`
|
|
223
227
|
|
|
224
228
|
Layers 2 (Public API), 3 (UI Shell Runtime), 5 (Toolkit), and 6 (Graph) require runtime read APIs that are not yet available. Do not attempt to narrate or classify against those layers in Phase 1. If the user's input clearly references one of those layers, acknowledge the scope and explain that full support arrives in a later phase.
|
|
@@ -17,9 +17,9 @@ Before orienting, scan the user's query for Organization OS terminology. If any
|
|
|
17
17
|
|
|
18
18
|
**OS vocabulary triggers:**
|
|
19
19
|
|
|
20
|
-
-
|
|
20
|
+
- System layer: `system`, `systems`, `SystemModule`, `system key`, `system gate`, `system access`, `gate`, `gating`, `access`, `enable`, `disable`
|
|
21
21
|
- Shell / nav: `manifest`, `shell`, `sub-shell`, `sidebar`, `nav`, `navigation`, `route`
|
|
22
|
-
- Auth / guards: `guard`, `
|
|
22
|
+
- Auth / guards: `guard`, `SystemGuard`, `AdminGuard`, `ProtectedRoute`, `admin`
|
|
23
23
|
- Org model: `organization`, `org model`, `organization model`, `domain`, `surface`
|
|
24
24
|
- Foundations: `foundation`, `foundations`, `@core/`, `adapter`
|
|
25
25
|
- Platform ops: `workflow`, `agent`, `deployment`, `resource`
|
|
@@ -29,7 +29,7 @@ Before orienting, scan the user's query for Organization OS terminology. If any
|
|
|
29
29
|
1. Read `.claude/rules/active-change-index.md` immediately. If the target area is flagged as under active refactor, surface the watch-area warning to the user before proceeding — include the "Load:" doc paths listed in that entry so investigation does not rely on stale scaffold prose.
|
|
30
30
|
2. Build the OS context bundle to pass into Step 3:
|
|
31
31
|
- Always: `node_modules/@elevasis/sdk/reference/scaffold/reference/glossary.md`, `.claude/rules/active-change-index.md`, `.claude/rules/agent-start-here.md`
|
|
32
|
-
-
|
|
32
|
+
- Systems / Shell / Gating queries: add `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md` + `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
|
|
33
33
|
- Workflow / Operations queries: add `.claude/rules/operations.md` + glob `operations/src/**`
|
|
34
34
|
- Organization-model queries: add `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` + `core/config/README.md`
|
|
35
35
|
|
|
@@ -37,9 +37,9 @@ Before orienting, scan the user's query for Organization OS terminology. If any
|
|
|
37
37
|
|
|
38
38
|
| Query intent | Primary OS layers | Key reference |
|
|
39
39
|
| ---------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
40
|
-
| "Why doesn't my
|
|
41
|
-
| "How do I add a nav item?" |
|
|
42
|
-
| "How does admin gating work?" |
|
|
40
|
+
| "Why doesn't my system show up?" | Systems + UI Shell Runtime | `glossary.md` (SystemModule, SystemGuard), `feature-flags-and-gating.md` |
|
|
41
|
+
| "How do I add a nav item?" | Systems + Toolkit | `feature-flags-and-gating.md`, `contracts.md` |
|
|
42
|
+
| "How does admin gating work?" | Systems + UI Shell Runtime | `glossary.md` (AdminGuard, requiresAdmin, ProtectedRoute), `feature-flags-and-gating.md` |
|
|
43
43
|
| "What runs when this workflow triggers?" | Platform Public API + Operations | `.claude/rules/operations.md`, `resources.md` |
|
|
44
44
|
| "Why does the foundations adapter fail?" | Foundations | `glossary.md` (domain vs surface, settings asymmetry), `core/config/README.md` |
|
|
45
45
|
|