@elevasis/sdk 1.32.0 → 1.33.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +617 -376
- package/dist/index.d.ts +3 -4
- package/dist/index.js +15 -3
- package/dist/node/index.d.ts +1 -2
- package/dist/test-utils/index.d.ts +0 -1
- package/dist/test-utils/index.js +14 -2
- package/package.json +3 -3
- package/reference/claude-config/Overview.md +123 -0
- package/reference/claude-config/registries/skill-coverage.json +19 -0
- package/reference/claude-config/skills/client/SKILL.md +201 -0
- package/reference/claude-config/skills/elevasis/SKILL.md +244 -235
- package/reference/claude-config/skills/om/SKILL.md +56 -5
- package/reference/claude-config/skills/om/operations/features.md +12 -5
- package/reference/claude-config/skills/om/operations/scaffold.md +10 -0
- package/reference/claude-config/skills/setup/SKILL.md +9 -0
- package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +27 -0
- package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +45 -0
- package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +34 -0
- package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +34 -0
- package/reference/rules/agent-start-here.md +8 -2
- package/reference/rules/organization-os.md +11 -7
- package/reference/rules/package-taxonomy.md +4 -0
- package/reference/scaffold/core/organization-graph.mdx +9 -8
- package/reference/scaffold/operations/propagation-pipeline.md +13 -9
- package/reference/scaffold/operations/scaffold-maintenance.md +8 -7
- package/reference/scaffold/recipes/customize-knowledge-browser.md +23 -26
- package/reference/scaffold/reference/feature-registry.md +1 -1
- package/reference/scaffold/ui/composition-extensibility.mdx +1 -1
- package/reference/sdk/cli-management.mdx +2 -2
- package/reference/sdk/framework/agent.mdx +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Nest `projects` under `platform` (fleet-wide OM reparent)
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The shared `@elevasis/ui` `deliveryManifest` now emits `systemId: 'platform.projects'` (it consumes the republished `@elevasis/core` constant `PROJECTS_SYSTEM_ID`, which flipped from `'projects'` to `'platform.projects'`). Any tenant Organization Model that still declares a **root-level** `projects` system will fail `validateManifests` on boot once it installs the new `@elevasis/ui`, because the delivery manifest references a `systemId` that does not exist in the tenant OM.
|
|
6
|
+
|
|
7
|
+
This is a fleet-wide convention change: `projects` is now a child of `platform` (canonical id `platform.projects`) everywhere — Elevasis, the template, and every derived tenant.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- Every tenant whose `core/config/organization-model/` declares a root `projects` system (work-item / checkpoint shape) and a root `platform` system to nest it under.
|
|
12
|
+
- Confirmed in this train: `ZentaraHQ`, `nirvana-marketing`. Run the verification below in any other derived project before installing the new `@elevasis/ui`.
|
|
13
|
+
|
|
14
|
+
## Required actions
|
|
15
|
+
|
|
16
|
+
Apply these in your own `core/config/organization-model/` (this is project-owned OM content — `/external sync` does NOT overwrite it; reparent it yourself via `/om`):
|
|
17
|
+
|
|
18
|
+
1. **Reparent the system.** In `systems.ts`, move the `projects` system block under the existing `platform` system. Set `id: 'platform.projects'` and add `parentSystemId: 'platform'`. Leave the object key, route `path`, and icon as-is.
|
|
19
|
+
2. **Rewrite ontology IDs.** Change every `projects:*` ontology id to `platform.projects:*` (objects, links, actions, catalogs, events, surfaces) — including all cross-references (`ownerSystemId`, `objectType`, `catalogType`, `from`/`to`).
|
|
20
|
+
3. **Navigation.** In `navigation.ts`, update any `targets: { systems: ['projects'] }` to `['platform.projects']`.
|
|
21
|
+
4. **Profile / roles.** In `profile.ts` (or `roles.ts`), update `deliveryFeatureId` / role `responsibleFor` references from `projects` to `platform.projects`.
|
|
22
|
+
5. **Tests.** Update `core/config/organization-model.test.ts`, `organization-model.contract.test.ts`, and `ui/src/routes/__tests__/__root.test.tsx` assertions that reference the `projects` system id, parent, or ontology ids.
|
|
23
|
+
6. **Install + reparent together.** Bump `@elevasis/core` and `@elevasis/ui` (see the dependency baseline written by `/external sync`), reparent the OM in the **same** change, then `pnpm -C core test` and `pnpm -C ui check-types` before booting the app. Do not install the new `@elevasis/ui` while the OM still has root `projects`.
|
|
24
|
+
|
|
25
|
+
Route file paths (`ui/src/routes/projects*.tsx`) stay at `/projects`; only OM ids and nav/profile targets change.
|
|
26
|
+
|
|
27
|
+
## Verification
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 1. Find any remaining root projects references
|
|
31
|
+
grep -rn "'projects'\|projects:" core/config/organization-model ui/src/routes
|
|
32
|
+
|
|
33
|
+
# 2. Template-family coherence
|
|
34
|
+
pnpm -C core test
|
|
35
|
+
pnpm -C ui check-types
|
|
36
|
+
pnpm -C ui test:contracts
|
|
37
|
+
|
|
38
|
+
# 3. Boot must not throw validateManifests (deliveryManifest systemId must resolve)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`platform.projects` must resolve as a child System of `platform`, and the delivery surface must render under it.
|
|
42
|
+
|
|
43
|
+
## Not handled by /git-sync
|
|
44
|
+
|
|
45
|
+
`/git-sync` and `/external sync` will deliver the new `@elevasis/core` + `@elevasis/ui` dependency baselines and this note, but they will **not** edit your `core/config/organization-model/` — tenant OM content is project-owned (`sync-preservation`). The reparent in steps 1-5 is manual per tenant. Installing the new `@elevasis/ui` without doing the reparent first will crash the app on boot.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Skill autogen and `/client` skill
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This train adds the template `/client` skill, a generated `.claude/Overview.md` skill and bundled-rules inventory, `skill-coverage.json`, and capability-query guidance that points agents to `elevasis-sdk cli` as the live command surface.
|
|
6
|
+
|
|
7
|
+
It also ships new `@elevasis/sdk` CLI support for `skill:scaffold` and `skill:check-coverage`, and extends `elevasis-sdk check` so future CLI domains cannot land without either skill ownership or an explicit waiver.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- Every template-derived project that carries `.claude/` skills from `external/_template`.
|
|
12
|
+
- Projects that use `elevasis-sdk check` as their local validation gate.
|
|
13
|
+
- Operators using Claude Code skills to discover or manage clients through the existing `client:*` CLI domain.
|
|
14
|
+
|
|
15
|
+
## Required actions
|
|
16
|
+
|
|
17
|
+
1. Run the prepared external sync so `.claude/skills/client/`, `.claude/Overview.md`, `.claude/registries/skill-coverage.json`, and the updated setup/elevasis skill guidance are copied from the template.
|
|
18
|
+
2. Install the new `@elevasis/sdk` baseline in `operations/package.json` after the SDK publish stage.
|
|
19
|
+
3. Run `pnpm -C operations exec elevasis-sdk check` in each project to verify skill coverage against the live CLI catalog.
|
|
20
|
+
4. Use `elevasis-sdk cli` when answering "what can I do?" or auditing available CLI domains; do not rely on stale prose inventories.
|
|
21
|
+
|
|
22
|
+
## Verification
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pnpm -C operations exec elevasis-sdk cli client
|
|
26
|
+
pnpm -C operations exec elevasis-sdk check
|
|
27
|
+
pnpm -C operations exec elevasis-sdk skill:check-coverage
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The project should contain `.claude/skills/client/SKILL.md`, `.claude/Overview.md`, and `.claude/registries/skill-coverage.json` after sync.
|
|
31
|
+
|
|
32
|
+
## Not handled by /git-sync
|
|
33
|
+
|
|
34
|
+
`/git-sync` does not infer skill coverage or regenerate local command inventories. It can deliver the synced files, but maintainers still need to install the new SDK baseline and run the verification commands above. Project-owned `CLAUDE.md` content remains verify-only; the authoritative generated inventory is `.claude/Overview.md`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Scaffold registry lane severity annotations
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This train adds `sync_lane_severity` annotations to the scaffold registry schema and moves external sync lane-severity ownership from hardcoded script sets into registry metadata.
|
|
6
|
+
|
|
7
|
+
The change is intended to keep project sync behavior the same while making the registry the single edit point for paths that need critical manual-merge handling or optional-feature-selection treatment.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- Template-derived projects that use `/external sync` or `pnpm sync:apply` from the Elevasis monorepo.
|
|
12
|
+
- Projects that receive `@elevasis/core` package-baseline updates through `core/package.json` or `operations/package.json`.
|
|
13
|
+
- Operators reviewing external-sync plans that mention critical manual-merge or optional-feature-selection paths.
|
|
14
|
+
|
|
15
|
+
## Required actions
|
|
16
|
+
|
|
17
|
+
1. Run the prepared external sync from the release train so this note reaches derived projects.
|
|
18
|
+
2. After the `@elevasis/core` publish stage, install the prepared core package baseline in template-derived project package files.
|
|
19
|
+
3. Review any sync plan lane labels against the registry entry metadata before widening a manifest or applying catch-up work.
|
|
20
|
+
|
|
21
|
+
No project-authored Organization Model content should be overwritten for this train.
|
|
22
|
+
|
|
23
|
+
## Verification
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pnpm sync:verify
|
|
27
|
+
pnpm exec tsx scripts/external/sync-apply.ts --all --dry-run --manifest apps/docs/content/docs/in-progress/active-development/sdk-changes/ship/_external-sync-prep.json --strict-manifest
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The strict manifest dry-run should authorize only the prepared sync note and the core package-baseline cascades.
|
|
31
|
+
|
|
32
|
+
## Not handled by /git-sync
|
|
33
|
+
|
|
34
|
+
`/git-sync` can deliver committed file changes, but it does not publish `@elevasis/core`, install package baselines, validate scaffold registry metadata, or enforce manifest-scoped external-sync write authorization.
|
|
@@ -65,7 +65,6 @@ Once project continuity is resolved (or confirmed irrelevant), the template is n
|
|
|
65
65
|
- `operations/` -- Elevasis SDK resources deployed to the platform
|
|
66
66
|
- `core/` -- runtime-agnostic shared contracts and organization model adaptation
|
|
67
67
|
- `.claude/` -- local agent rules, skills, and hooks
|
|
68
|
-
- `client-workspace/` -- optional separate knowledge workspace for richer team knowledge management
|
|
69
68
|
- `node_modules/@elevasis/sdk/reference/scaffold/` -- SDK reference scaffold: canonical recipes, UI patterns, gating model, contracts, and glossary. Entry point: `index.mdx`.
|
|
70
69
|
|
|
71
70
|
## Discovery Order
|
|
@@ -157,7 +156,7 @@ Load first:
|
|
|
157
156
|
- `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` (scaffold index -- contracts, gating patterns, glossary)
|
|
158
157
|
- `core/config/README.md`
|
|
159
158
|
- `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
|
|
160
|
-
- typed feature/surface constants from `@elevasis/core/organization-model` -- `
|
|
159
|
+
- typed feature/surface constants from `@elevasis/core/organization-model` -- `SALES_FEATURE_ID`, `PROSPECTING_FEATURE_ID`, `PROJECTS_FEATURE_ID`, `OPERATIONS_FEATURE_ID`, `MONITORING_FEATURE_ID`, `SETTINGS_FEATURE_ID`, `SEO_FEATURE_ID`, `SALES_PIPELINE_SURFACE_ID`, `PROSPECTING_LISTS_SURFACE_ID`, `PROJECTS_INDEX_SURFACE_ID`, `OPERATIONS_COMMAND_VIEW_SURFACE_ID`. Use these typed constants instead of magic strings when overriding feature/surface IDs.
|
|
161
160
|
- `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-crm.md` -- CRM is an Organization OS + UI + hooks + workflow-adapter surface; read this before extending CRM structure.
|
|
162
161
|
- `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md` -- lead gen is an Organization OS + UI + hooks + workflow-adapter surface; read this before extending lead-gen lists, members, artifacts, or state transitions.
|
|
163
162
|
- `node_modules/@elevasis/sdk/reference/scaffold/recipes/customize-crm-actions.md` -- CRM action buttons are not `sales.actions` org-model config in v1; use the recipe's provider/custom-button path.
|
|
@@ -269,6 +268,13 @@ If a hand-authored doc conflicts with source or published package docs, trust so
|
|
|
269
268
|
- Do not trust stable docs blindly when `.claude/rules/active-change-index.md` flags related in-progress architecture work.
|
|
270
269
|
- Do not write `resume_context` into task-doc frontmatter. DB is canonical; write via `project:task:save` or the inline editor in Command Center.
|
|
271
270
|
|
|
271
|
+
## Capability Surface
|
|
272
|
+
|
|
273
|
+
When a user asks what skills or commands are available, do NOT answer from recollection.
|
|
274
|
+
|
|
275
|
+
- **Skill inventory:** Read `.claude/Overview.md` — it is the authoritative list of skills available in this project.
|
|
276
|
+
- **Live CLI capability:** Run `pnpm elevasis-sdk cli` — it outputs every command and domain currently registered in the SDK, grouped by domain.
|
|
277
|
+
|
|
272
278
|
## Operations-Only Projects
|
|
273
279
|
|
|
274
280
|
Some projects derived from this template are operations-only. They have `operations/` (or a top-level `src/`) but NO `ui/`, NO `core/config/organization-model.ts`, and NO frontend. Finding none of these is not missing scaffolding -- it is by design.
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Organization OS orientation -- the semantic contract layer relating Systems, Actions, ontology, resources, policies, roles, goals, and knowledge; consumed via published @elevasis/core / @elevasis/sdk
|
|
3
|
+
---
|
|
1
4
|
<!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
|
|
2
5
|
<!-- Regenerate: pnpm scaffold:sync -->
|
|
3
6
|
|
|
7
|
+
|
|
4
8
|
# Organization OS
|
|
5
9
|
|
|
6
10
|
Organization OS is the semantic contract layer defining how organizations, Systems, Actions, ontology, resources, policies, roles, goals, knowledge, and runtime surfaces relate. This project consumes Organization OS through published `@elevasis/core` / `@elevasis/sdk` configuration and does not maintain the monorepo schema.
|
|
@@ -38,11 +42,11 @@ Do not confuse `System.apiInterface` with ontology `interface` records. Ontology
|
|
|
38
42
|
|
|
39
43
|
Some legacy UI feature constants and consumer-facing route keys are intentionally unchanged for compatibility:
|
|
40
44
|
|
|
41
|
-
| Old field | New field | Legacy key (unchanged) |
|
|
42
|
-
| ---------- | ------------- | ---------------------- |
|
|
43
|
-
| `crm` | `sales` | `'crm'` | `
|
|
44
|
-
| `leadGen` | `prospecting` | `'lead-gen'` | `
|
|
45
|
-
| `delivery` | `projects` | `'projects'` | `PROJECTS_FEATURE_ID`
|
|
45
|
+
| Old field | New field | Legacy key (unchanged) | Published constant |
|
|
46
|
+
| ---------- | ------------- | ---------------------- | ------------------------ |
|
|
47
|
+
| `crm` | `sales` | `'crm'` | `SALES_FEATURE_ID` |
|
|
48
|
+
| `leadGen` | `prospecting` | `'lead-gen'` | `PROSPECTING_FEATURE_ID` |
|
|
49
|
+
| `delivery` | `projects` | `'projects'` | `PROJECTS_FEATURE_ID` |
|
|
46
50
|
|
|
47
51
|
## Reference Documentation
|
|
48
52
|
|
|
@@ -79,8 +83,8 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
79
83
|
## Published Subpaths and Constants
|
|
80
84
|
|
|
81
85
|
- `@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.
|
|
82
|
-
-
|
|
83
|
-
- Headline surface IDs: `
|
|
86
|
+
- Feature IDs: `SALES_FEATURE_ID`, `PROSPECTING_FEATURE_ID`, `PROJECTS_FEATURE_ID`, `OPERATIONS_FEATURE_ID`, `MONITORING_FEATURE_ID`, `SETTINGS_FEATURE_ID`, `SEO_FEATURE_ID`
|
|
87
|
+
- Headline surface IDs: `SALES_PIPELINE_SURFACE_ID`, `PROSPECTING_LISTS_SURFACE_ID`, `PROJECTS_INDEX_SURFACE_ID`, `OPERATIONS_COMMAND_VIEW_SURFACE_ID`
|
|
84
88
|
- Reality domain types: `OrganizationModelIdentity`, `OrganizationModelCustomers`, `OrganizationModelCustomerSegment`, `OrganizationModelOfferings`, `OrganizationModelProduct`, `OrganizationModelRoles`, `OrganizationModelRole`, `OrganizationModelGoals`, `OrganizationModelObjective`, `OrganizationModelKeyResult`
|
|
85
89
|
- TechStack: `TechStackEntrySchema`, `OrganizationModelTechStackEntry`
|
|
86
90
|
- Use constants instead of magic strings when overriding the org model.
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Package taxonomy (consumer view) -- external projects consume the published @elevasis/* surface only; workspace-internal @repo/elevasis-* packages are not installable here
|
|
3
|
+
---
|
|
1
4
|
<!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
|
|
2
5
|
<!-- Regenerate: pnpm scaffold:sync -->
|
|
3
6
|
|
|
7
|
+
|
|
4
8
|
# Package Taxonomy (Consumer View)
|
|
5
9
|
|
|
6
10
|
External projects consume the **published `@elevasis/*` surface only**. The Elevasis monorepo also has workspace-internal `@repo/elevasis-*` packages — those are NOT installable here and should never appear in your imports or `package.json`.
|
|
@@ -46,17 +46,18 @@ Edge kinds:
|
|
|
46
46
|
|
|
47
47
|
- `contains`
|
|
48
48
|
- `references`
|
|
49
|
-
- `maps_to`
|
|
50
|
-
- `uses`
|
|
51
|
-
- `governs`
|
|
52
|
-
- `
|
|
53
|
-
- `
|
|
54
|
-
- `
|
|
55
|
-
- `emits`
|
|
49
|
+
- `maps_to`
|
|
50
|
+
- `uses`
|
|
51
|
+
- `governs`
|
|
52
|
+
- `links`
|
|
53
|
+
- `affects`
|
|
54
|
+
- `emits`
|
|
56
55
|
- `originates_from`
|
|
57
56
|
- `triggers`
|
|
58
57
|
- `applies_to`
|
|
59
|
-
- `effects`
|
|
58
|
+
- `effects`
|
|
59
|
+
|
|
60
|
+
`governed-by` is a Knowledge Graph route verb for traversing incoming `governs` edges; it is not an Organization Graph edge kind.
|
|
60
61
|
|
|
61
62
|
System nodes come from the id-keyed `OrganizationModel.systems` map. Their graph IDs use `system:<id>`, such as `system:sales.crm`.
|
|
62
63
|
|
|
@@ -31,15 +31,19 @@ Layer 3: Sync Verification (pnpm sync:verify)
|
|
|
31
31
|
|
|
32
32
|
## Layer 1: Source Generation
|
|
33
33
|
|
|
34
|
-
`pnpm scaffold:sync` is the meta-script that regenerates all derived documentation and validates the output. It chains
|
|
35
|
-
|
|
36
|
-
| Script
|
|
37
|
-
|
|
|
38
|
-
| `generate
|
|
39
|
-
| `generate
|
|
40
|
-
| `
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
`pnpm scaffold:sync` is the meta-script that regenerates all derived documentation and validates the output. It chains seven sub-scripts:
|
|
35
|
+
|
|
36
|
+
| Script | Input | Output |
|
|
37
|
+
| ---------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| `scaffold:generate` | Scaffold contract and feature-registry sources | `packages/core/src/reference/_generated/**`, `packages/ui/src/scaffold/_generated/feature-registry.md` |
|
|
39
|
+
| `knowledge:generate` | Elevasis core knowledge nodes and UI knowledge body sources | Generated knowledge nodes and UI knowledge bodies |
|
|
40
|
+
| `gen:sdk-catalog` | SDK catalog source definitions | SDK catalog artifacts |
|
|
41
|
+
| `gen:sdk-adapters` | SDK adapter definitions | SDK adapter artifacts |
|
|
42
|
+
| `copy-docs` | SDK docs, package-owned reference docs, scaffold docs, and `_template/.claude` config | `packages/sdk/reference/**` copied docs and scaffold reference bundle |
|
|
43
|
+
| `sdk-ref:generate` | SDK manifest and navigation sources | `packages/sdk/reference/_reference-manifest.json`, `packages/sdk/reference/_navigation.md` |
|
|
44
|
+
| `sdk-ref:check` | Generated SDK reference artifacts | Freshness validation for `packages/sdk/reference/_reference-manifest.json` and `_navigation.md` |
|
|
45
|
+
|
|
46
|
+
The final `sdk-ref:check` step validates that the reference artifacts are consistent. Exit 1 if drifted.
|
|
43
47
|
|
|
44
48
|
### Trigger Points
|
|
45
49
|
|
|
@@ -99,13 +99,14 @@ Generated files should never be edited manually. If the output is wrong, fix the
|
|
|
99
99
|
|
|
100
100
|
## SDK Build Pipeline (Reference Copy)
|
|
101
101
|
|
|
102
|
-
`packages/sdk/scripts/copy-reference-docs.mjs` runs during `pnpm --filter @elevasis/sdk build` and has
|
|
103
|
-
|
|
104
|
-
1. **Phase 1:** Copies SDK public docs from `apps/docs/content/docs/sdk/` with link rewriting and MDX escape stripping
|
|
105
|
-
2. **Phase 2:** Copies package-owned reference docs declared in reference manifests
|
|
106
|
-
3. **Phase 3:** Copies scaffold docs from co-located package sources using the `SCAFFOLD_COPIES` map
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
`packages/sdk/scripts/copy-reference-docs.mjs` runs during `pnpm --filter @elevasis/sdk build` and has four phases:
|
|
103
|
+
|
|
104
|
+
1. **Phase 1:** Copies SDK public docs from `apps/docs/content/docs/sdk/` with link rewriting and MDX escape stripping
|
|
105
|
+
2. **Phase 2:** Copies package-owned reference docs declared in reference manifests
|
|
106
|
+
3. **Phase 3:** Copies scaffold docs from co-located package sources using the `SCAFFOLD_COPIES` map
|
|
107
|
+
4. **Phase 4:** Copies `external/_template/.claude` into `packages/sdk/reference/claude-config` for tenant-facing agent configuration
|
|
108
|
+
|
|
109
|
+
The output lands in `packages/sdk/reference/` which is included in the npm package's `files` array. External projects access it via `node_modules/@elevasis/sdk/reference/`.
|
|
109
110
|
|
|
110
111
|
---
|
|
111
112
|
|
|
@@ -321,44 +321,42 @@ The sidebar (managed by the manifest) continues to operate normally. Tree clicks
|
|
|
321
321
|
|
|
322
322
|
**Own everything:** Skip `knowledgeManifest` and build your own route tree as described in the Replace section above. Call `@elevasis/core/knowledge` directly for data and supply your own dispatcher.
|
|
323
323
|
|
|
324
|
-
### Overriding Per-Kind Views
|
|
324
|
+
### Overriding Per-Kind Views
|
|
325
325
|
|
|
326
|
-
If you want the default dispatcher behavior for most kinds but need a custom layout for one kind,
|
|
326
|
+
If you want the default dispatcher behavior for most kinds but need a custom layout for one kind, wrap the exported `DescribeNodeView` and intercept the specific kind before falling back to the platform dispatcher:
|
|
327
327
|
|
|
328
328
|
```tsx
|
|
329
|
-
import {
|
|
330
|
-
|
|
331
|
-
SystemDescribeView,
|
|
332
|
-
} from '@elevasis/ui/knowledge'
|
|
329
|
+
import { DescribeNodeView, SystemDescribeView } from '@elevasis/ui/knowledge'
|
|
330
|
+
import type { DescribeNodeViewProps } from '@elevasis/ui/knowledge'
|
|
333
331
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
<MyFeatureDetailView node={node} graph={graph} onNavigateToNode={onNavigateToNode} />
|
|
339
|
-
),
|
|
340
|
-
// 'knowledge', 'resource', 'organization', and the default fallback
|
|
341
|
-
// are handled by the platform unless you override them here.
|
|
342
|
-
})
|
|
343
|
-
```
|
|
332
|
+
function MyDescribeNodeView(props: DescribeNodeViewProps) {
|
|
333
|
+
if (props.node.kind === 'system') {
|
|
334
|
+
return <MyFeatureDetailView node={props.node} graph={props.graph} onNavigateToNode={props.onNavigateToNode} />
|
|
335
|
+
}
|
|
344
336
|
|
|
345
|
-
|
|
337
|
+
return <DescribeNodeView {...props} />
|
|
338
|
+
}
|
|
339
|
+
```
|
|
346
340
|
|
|
347
|
-
|
|
341
|
+
`MyDescribeNodeView` has the same props interface as `DescribeNodeView` (`node`, `graph`, `onNavigateToNode`, plus optional context props). You can drop it anywhere the default dispatcher is used.
|
|
348
342
|
|
|
349
|
-
|
|
343
|
+
The platform kind-specific components (`KnowledgeNodeView`, `SystemDescribeView`, etc.) are exported from `@elevasis/ui/knowledge` so you can compose them inside your wrapper rather than replacing them from scratch:
|
|
350
344
|
|
|
351
345
|
```tsx
|
|
352
|
-
|
|
353
|
-
|
|
346
|
+
function MyDescribeNodeView(props: DescribeNodeViewProps) {
|
|
347
|
+
if (props.node.kind === 'system') {
|
|
348
|
+
return (
|
|
354
349
|
<>
|
|
355
350
|
{/* Platform view for the standard fields */}
|
|
356
|
-
|
|
351
|
+
<SystemDescribeView {...props} />
|
|
357
352
|
{/* Project-specific extension panel below */}
|
|
358
|
-
|
|
353
|
+
<MySystemAuditPanel systemId={props.node.id} />
|
|
359
354
|
</>
|
|
360
|
-
|
|
361
|
-
}
|
|
355
|
+
)
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return <DescribeNodeView {...props} />
|
|
359
|
+
}
|
|
362
360
|
```
|
|
363
361
|
|
|
364
362
|
### Phase 1.5 Exports Reference
|
|
@@ -368,7 +366,6 @@ The following exports are added in Phase 1.5 on top of the exports table above:
|
|
|
368
366
|
| Export | Package | Purpose |
|
|
369
367
|
| ------------------------------ | ------------------------ | ---------------------------------------------------------------------------- |
|
|
370
368
|
| `DescribeNodeView` | `@elevasis/ui/knowledge` | Default graph-node dispatcher; routes by `node.kind` |
|
|
371
|
-
| `createDescribeNodeDispatcher` | `@elevasis/ui/knowledge` | Factory for per-kind overrides; returns a `DescribeNodeView`-shape component |
|
|
372
369
|
| `SystemDescribeView` | `@elevasis/ui/knowledge` | Minimal System node view: path, icon, lifecycle, hierarchy, edges |
|
|
373
370
|
| `ResourceDescribeView` | `@elevasis/ui/knowledge` | Minimal resource node view: resourceType, description, edges |
|
|
374
371
|
| `OrganizationDescribeView` | `@elevasis/ui/knowledge` | Minimal organization node view: label, edges |
|
|
@@ -15,7 +15,7 @@ description: Auto-generated catalog of registered system manifests. Do not edit
|
|
|
15
15
|
| System Key | System ID | Nav Label | Domains | Routes |
|
|
16
16
|
| --- | --- | --- | --- | --- |
|
|
17
17
|
| `crm` | `sales.crm` | — | — | — |
|
|
18
|
-
| `delivery` | `projects` | — | — | — |
|
|
18
|
+
| `delivery` | `platform.projects` | — | — | — |
|
|
19
19
|
| `knowledge` | `—` | — | — | — |
|
|
20
20
|
| `lead-gen` | `sales.lead-gen` | — | — | — |
|
|
21
21
|
| `monitoring` | `—` | — | — | — |
|
|
@@ -226,7 +226,7 @@ See [recipes/customize-knowledge-browser.md](../recipes/customize-knowledge-brow
|
|
|
226
226
|
Phase 1.5 adds two further extension surfaces documented in the same recipe file under the "Phase 1.5" section:
|
|
227
227
|
|
|
228
228
|
- **Extending the SegmentedControl** -- supply a `segments` prop to `KnowledgeSidebarMiddle` to add custom mount-axis tabs beyond the default five (By Feature, By Kind, By Owner, Governs, Governed By).
|
|
229
|
-
- **Replacing `DescribeNodeView`** -- override the `/knowledge/:nodeId` route component to swap the entire main-pane dispatcher, or
|
|
229
|
+
- **Replacing `DescribeNodeView`** -- override the `/knowledge/:nodeId` route component to swap the entire main-pane dispatcher, or wrap `DescribeNodeView` from `@elevasis/ui/knowledge` to intercept specific node-kind views while falling back to the platform defaults for the rest.
|
|
230
230
|
|
|
231
231
|
## What Not to Do
|
|
232
232
|
|
|
@@ -14,8 +14,8 @@ This page covers the domain management commands for `elevasis-sdk`. For core SDK
|
|
|
14
14
|
This CLI family is SDK-first, but it is not semantically standalone. It operates on the same Organization OS contract that the shared delivery UI uses:
|
|
15
15
|
|
|
16
16
|
- UI manifest key: `delivery`
|
|
17
|
-
- Organization model
|
|
18
|
-
- Default surface: `projects.index`
|
|
17
|
+
- Organization model System ID: `PROJECTS_SYSTEM_ID` (`platform.projects`)
|
|
18
|
+
- Default surface: `PROJECTS_INDEX_SURFACE_ID` (`platform.projects.index`)
|
|
19
19
|
- Semantic domain fields: `organizationModel.delivery`
|
|
20
20
|
- Core entity/capability IDs: `delivery.project`, `delivery.milestone`, `delivery.task`, `delivery.projects.view`
|
|
21
21
|
|
|
@@ -78,7 +78,7 @@ The following skills ship with every Elevasis SDK project and are committed to v
|
|
|
78
78
|
|
|
79
79
|
**`/project`** -- Project-management routing for milestones, tasks, notes, and status. It should call the canonical `elevasis-sdk project:*` CLI surface rather than inventing a parallel workflow.
|
|
80
80
|
|
|
81
|
-
That routing is interface-first, not a separate semantic model. `/project` should treat the SDK CLI as the operational entrypoint for the Organization OS delivery/projects contract: `deliveryManifest` in the shared UI, `
|
|
81
|
+
That routing is interface-first, not a separate semantic model. `/project` should treat the SDK CLI as the operational entrypoint for the Organization OS delivery/projects contract: `deliveryManifest` in the shared UI, `PROJECTS_SYSTEM_ID` (`platform.projects`) in the organization model, and `organizationModel.delivery` for project/milestone/task status semantics.
|
|
82
82
|
|
|
83
83
|
When these command families overlap conceptually, use this boundary:
|
|
84
84
|
|