@elevasis/sdk 1.20.1 → 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.
Files changed (58) hide show
  1. package/dist/cli.cjs +3388 -1530
  2. package/dist/index.d.ts +412 -149
  3. package/dist/index.js +955 -721
  4. package/dist/node/index.d.ts +0 -3
  5. package/dist/node/index.js +22 -49
  6. package/dist/test-utils/index.d.ts +395 -128
  7. package/dist/test-utils/index.js +599 -368
  8. package/dist/worker/index.js +536 -323
  9. package/package.json +4 -4
  10. package/reference/_navigation.md +9 -7
  11. package/reference/_reference-manifest.json +1 -1
  12. package/reference/claude-config/rules/agent-start-here.md +4 -0
  13. package/reference/claude-config/rules/frontend.md +2 -2
  14. package/reference/claude-config/rules/organization-model.md +44 -2
  15. package/reference/claude-config/rules/organization-os.md +12 -12
  16. package/reference/claude-config/rules/ui.md +14 -14
  17. package/reference/claude-config/rules/vibe.md +37 -33
  18. package/reference/claude-config/skills/explore/SKILL.md +6 -6
  19. package/reference/claude-config/skills/knowledge/SKILL.md +73 -29
  20. package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +1 -1
  21. package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +25 -24
  22. package/reference/claude-config/skills/knowledge/operations/features.md +56 -93
  23. package/reference/claude-config/skills/knowledge/operations/labels.md +19 -14
  24. package/reference/claude-config/skills/knowledge/operations/offerings.md +6 -6
  25. package/reference/claude-config/skills/save/SKILL.md +2 -2
  26. package/reference/claude-config/skills/setup/SKILL.md +1 -1
  27. package/reference/claude-config/skills/tutorial/technical.md +23 -26
  28. package/reference/claude-config/skills/tutorial/vibe-coder.md +9 -9
  29. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -0
  30. package/reference/cli.mdx +140 -0
  31. package/reference/deployment/provided-features.mdx +29 -15
  32. package/reference/examples/organization-model.ts +1 -1
  33. package/reference/packages/core/src/knowledge/README.md +8 -7
  34. package/reference/packages/core/src/organization-model/README.md +66 -26
  35. package/reference/packages/ui/src/provider/README.md +5 -5
  36. package/reference/scaffold/core/organization-graph.mdx +16 -15
  37. package/reference/scaffold/core/organization-model.mdx +89 -41
  38. package/reference/scaffold/index.mdx +9 -9
  39. package/reference/scaffold/operations/propagation-pipeline.md +3 -3
  40. package/reference/scaffold/operations/scaffold-maintenance.md +11 -11
  41. package/reference/scaffold/recipes/add-a-feature.md +26 -24
  42. package/reference/scaffold/recipes/add-a-resource.md +10 -14
  43. package/reference/scaffold/recipes/customize-crm-actions.md +439 -439
  44. package/reference/scaffold/recipes/customize-knowledge-browser.md +384 -0
  45. package/reference/scaffold/recipes/customize-organization-model.md +72 -44
  46. package/reference/scaffold/recipes/extend-crm.md +40 -39
  47. package/reference/scaffold/recipes/extend-lead-gen.md +15 -16
  48. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +34 -30
  49. package/reference/scaffold/recipes/index.md +13 -12
  50. package/reference/scaffold/recipes/query-the-knowledge-graph.md +200 -0
  51. package/reference/scaffold/reference/contracts.md +362 -99
  52. package/reference/scaffold/reference/feature-registry.md +9 -20
  53. package/reference/scaffold/reference/glossary.md +18 -18
  54. package/reference/scaffold/ui/composition-extensibility.mdx +23 -23
  55. package/reference/scaffold/ui/customization.md +11 -11
  56. package/reference/scaffold/ui/feature-flags-and-gating.md +8 -8
  57. package/reference/scaffold/ui/feature-shell.mdx +19 -19
  58. 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.20.1",
3
+ "version": "1.21.0",
4
4
  "description": "SDK for building Elevasis organization resources",
5
5
  "type": "module",
6
6
  "bin": {
@@ -57,9 +57,9 @@
57
57
  "tsup": "^8.0.0",
58
58
  "typescript": "5.9.2",
59
59
  "zod": "^4.1.0",
60
- "@repo/core": "0.22.0",
61
- "@repo/eslint-config": "0.0.0",
62
- "@repo/typescript-config": "0.0.0"
60
+ "@repo/core": "0.23.0",
61
+ "@repo/typescript-config": "0.0.0",
62
+ "@repo/eslint-config": "0.0.0"
63
63
  },
64
64
  "scripts": {
65
65
  "lint": "eslint src --max-warnings 0",
@@ -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: byFeature/byKind/byOwner/governs/governedBy queries, parsePath, and output formatters. | (not specified) |
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 Feature | `scaffold/recipes/add-a-feature.md` | End-to-end feature addition recipe |
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 Feature/Admin | `scaffold/recipes/gate-by-feature-or-admin.md` | Access control patterns |
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
- | Feature Flags & Gating | `scaffold/ui/feature-flags-and-gating.md` | Three-concept gating model |
161
- | Customizing Features | `scaffold/ui/customization.md` | Sidebar composition patterns |
162
- | Feature Shell | `scaffold/ui/feature-shell.mdx` | FeatureModule manifest and provider |
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
- | Feature Registry | `scaffold/reference/feature-registry.md` | Auto-generated feature catalog |
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: byFeature/byKind/byOwner/governs/governedBy queries, parsePath, and output formatters.",
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` -- `featureKey` / `FeatureGuard` / `AdminGuard` model
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 (`FeatureModule`, `NavItem`, `OrganizationModel`)
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
- features, statuses, Systems, and Resources descriptors that agents, workflows, and the
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`, `features`, or `labels`. Resource identity and
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, features, domains, surfaces, entities, capabilities, and resources relate. This project consumes Organization OS through the SDK and foundations config.
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 `ElevasisFeaturesProvider` with `canonicalOrganizationModel`
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:** `features`, `branding`, `navigation`, `sales` (formerly `crm`), `prospecting` (formerly `leadGen`), `projects` (formerly `delivery`)
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:** `systems`, `resources`
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. Feature ID constants and consumer-facing feature IDs are unchanged:
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 | Feature ID (unchanged) | Constant (unchanged) |
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` -- FeatureModule manifest, provider runtime
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
- - Feature IDs: `CRM_FEATURE_ID`, `LEAD_GEN_FEATURE_ID`, `PROJECTS_FEATURE_ID`, `OPERATIONS_FEATURE_ID`, `MONITORING_FEATURE_ID`, `SETTINGS_FEATURE_ID`, `SEO_FEATURE_ID`
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 feature:** Follow `node_modules/@elevasis/sdk/reference/scaffold/recipes/add-a-feature.md`. For toggling an existing feature, use `/knowledge features`.
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 features` -- enable, disable, or add features
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 feature manifests from `@elevasis/ui`.
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 `ElevasisFeaturesProvider`, published feature manifests, app-local dashboard nav, shell runtime dependencies, and `FeatureShell`
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, feature-label, resource descriptors, and shell helpers
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 feature manifests mounted by the template shell:
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 manifests gate on grouped org-model keys such as `acquisition` and `delivery`
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 `ElevasisFeaturesProvider` so the shared shell/runtime uses the same semantic source of truth as the local template helpers
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
- - `FeatureGuard` on all feature sections that should hard-stop when a feature is disabled: `crm`, `lead-gen`, `projects`, `operations`, and `monitoring`
130
- - provider-level shell gating for shared feature nav and sub-shell behavior
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.navItems`, filters admin-only entries locally using the signed-in profile, and passes `canonicalOrganizationModel` into `ElevasisFeaturesProvider` so shared nav labels, paths, and graph runtime behavior resolve from the same foundations-backed semantic model.
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, feature enablement, resource descriptors, semantic surfaces, canonical-to-legacy surface aliases, and quick-access behavior
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 Feature Sidebars
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 feature manifest 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.
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 feature sidebar:
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`, `FeatureModule`, CRM platform primitives, Lead Gen platform primitives, and related TypeScript shapes.
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 features are on?") and runtime-entity queries ("what's pending in the queue?"). Route Query to static-model sources (org model, features config) or runtime sources (operations domain) based on the referenced entity.
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 | Why it's Query |
46
- | --------------------------------------------- | ------------------------------------------- |
47
- | "What should I work on next?" | Asking for prioritized task list |
48
- | "What's pending in the HITL queue?" | Runtime-entity query about operations state |
49
- | "What features are enabled for this project?" | Static-model query about features config |
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 (org model, `prj_tasks`, operations domain as available) and narrate the answer in plain language. No writes.
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 feature" | Asking the agent to narrate what a model element does |
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, Features, and Foundations layers only.
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 the transition via `elevasis-sdk project:task:save` or equivalent. Never auto-transition without confirmation if the target entity is ambiguous.
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, feature, or layer of the model.
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 crm` for deal/contact changes, `/knowledge projects` for project types, `/knowledge features` for feature toggles. Plain-language summary of what was detected is acceptable before delegating, but the actual draft-confirm-write ceremony belongs to `/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`, feature toggles, label renames): delegate to `/knowledge <domain>` immediately.
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 feature.
166
+ The user wants to enable or disable a System.
163
167
 
164
- **Recognize by:** feature-control vocabulary -- "turn on", "enable", "disable", "turn off", "activate", "deactivate" -- followed by a feature name or description.
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 feature" | Explicit "turn on" + feature name |
171
- | "Disable monitoring for now" | "Disable" + feature reference |
172
- | "We don't use SEO, turn it off" | Declarative + "turn it off" = feature disable |
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 features`. The ceremony (confirm + edit `core/config/organization-model.ts` + typecheck) belongs to `/knowledge`, not to the ambient rule.
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 | Routed to |
179
- | ---------- | --------------------------------------------------------------- | ------------------------------------------ |
180
- | Capture | "add", "remember", "track", "log" + a thing | Agent -- draft + confirm + `project:*` CLI |
181
- | Query | "what's next", "what's pending", "what failed", "what features" | Agent -- read + narrate |
182
- | Describe | "what is", "tell me about", "explain", "where am I" | Agent -- narrate from org model labels |
183
- | Transition | "done", "stuck", "blocked", "finished", "complete" | Agent -- confirm + `project:task:save` |
184
- | Navigate | "focus on", "switch to", "back to", "look at" | Agent -- update scope + narrate |
185
- | Codify | "we are X", "we track Y", repeated attribute, "add type/field" | Delegate to `/knowledge \<domain>` |
186
- | Toggle | "enable", "disable", "turn on/off" + feature | Delegate to `/knowledge features` |
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 -- capabilities, features, statuses, operations entities, and resource kinds are all discoverable from the manifest without hardcoding.
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 (Features): describe which features are on/off, propose enabling one via `/knowledge`
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
- - Feature layer: `feature`, `features`, `FeatureModule`, `feature key`, `feature gate`, `feature access`, `gate`, `gating`, `access`, `enable`, `disable`
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`, `FeatureGuard`, `AdminGuard`, `ProtectedRoute`, `admin`
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
- - Features / 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`
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 feature show up?" | Features + UI Shell Runtime | `glossary.md` (accessFeatureKey, FEATURE_KEY_ALIASES), `feature-flags-and-gating.md` |
41
- | "How do I add a nav item?" | Features + Toolkit | `feature-flags-and-gating.md`, `contracts.md` |
42
- | "How does admin gating work?" | Features + UI Shell Runtime | `glossary.md` (AdminGuard, requiresAdmin, ProtectedRoute), `feature-flags-and-gating.md` |
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