@elevasis/sdk 1.28.1 → 1.30.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 +1611 -595
- package/dist/index.d.ts +105 -1
- package/dist/index.js +30 -25
- package/dist/node/index.d.ts +84 -1
- package/dist/test-utils/index.d.ts +102 -1
- package/dist/test-utils/index.js +242 -23
- package/dist/worker/index.js +1 -0
- package/package.json +4 -4
- package/reference/_navigation.md +4 -4
- package/reference/_reference-manifest.json +8 -8
- package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +3 -3
- package/reference/claude-config/rules/topbar-actions.md +70 -0
- package/reference/claude-config/skills/om/SKILL.md +18 -1
- package/reference/claude-config/skills/tutorial/technical.md +5 -5
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
- package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +45 -45
- package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +52 -52
- package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +33 -33
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -32
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -43
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -40
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -61
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +49 -49
- package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +31 -31
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +42 -42
- package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +33 -33
- package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +37 -37
- package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +28 -0
- package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +43 -43
- package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +26 -0
- package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +33 -0
- package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +35 -0
- package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +49 -0
- package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +47 -0
- package/reference/core/exports.mdx +16 -0
- package/reference/core/index.mdx +58 -0
- package/reference/examples/organization-model.ts +18 -0
- package/reference/index.mdx +36 -67
- package/reference/rules/organization-model.md +4 -1
- package/reference/rules/organization-os.md +7 -1
- package/reference/rules/ui.md +207 -207
- package/reference/rules/vibe.md +52 -18
- package/reference/scaffold/index.mdx +9 -7
- package/reference/scaffold/operations/propagation-pipeline.md +152 -152
- package/reference/scaffold/operations/scaffold-maintenance.md +14 -4
- package/reference/scaffold/reference/contracts.md +423 -338
- package/reference/scaffold/reference/glossary.md +14 -2
- package/reference/scaffold/reference/system-interface-capabilities.md +50 -0
- package/reference/{cli-management.mdx → sdk/cli-management.mdx} +159 -13
- package/reference/{cli.mdx → sdk/cli.mdx} +68 -12
- package/reference/sdk/exports.mdx +14 -0
- package/reference/sdk/index.mdx +93 -0
- package/reference/sdk/platform-tools/adapters-integration.mdx +25 -0
- package/reference/sdk/platform-tools/adapters-platform.mdx +24 -0
- package/reference/{platform-tools → sdk/platform-tools}/index.mdx +9 -30
- package/reference/{resources → sdk/resources}/patterns.mdx +29 -11
- package/reference/ui/exports.mdx +60 -0
- package/reference/ui/index.mdx +75 -0
- package/reference/platform-tools/adapters-integration.mdx +0 -300
- package/reference/platform-tools/adapters-platform.mdx +0 -552
- /package/reference/claude-config/skills/deploy/{skill.md → SKILL.md} +0 -0
- /package/reference/{concepts.mdx → sdk/concepts.mdx} +0 -0
- /package/reference/{deployment → sdk/deployment}/command-center.mdx +0 -0
- /package/reference/{deployment → sdk/deployment}/execution-reference.mdx +0 -0
- /package/reference/{deployment → sdk/deployment}/index.mdx +0 -0
- /package/reference/{framework → sdk/framework}/agent.mdx +0 -0
- /package/reference/{framework → sdk/framework}/index.mdx +0 -0
- /package/reference/{framework → sdk/framework}/interaction-guidance.mdx +0 -0
- /package/reference/{framework → sdk/framework}/memory.mdx +0 -0
- /package/reference/{framework → sdk/framework}/project-structure.mdx +0 -0
- /package/reference/{framework → sdk/framework}/resource-documentation.mdx +0 -0
- /package/reference/{framework → sdk/framework}/tutorial-system.mdx +0 -0
- /package/reference/{getting-started.mdx → sdk/getting-started.mdx} +0 -0
- /package/reference/{platform-tools → sdk/platform-tools}/type-safety.mdx +0 -0
- /package/reference/{resources → sdk/resources}/index.mdx +0 -0
- /package/reference/{resources → sdk/resources}/types.mdx +0 -0
- /package/reference/{roadmap.mdx → sdk/roadmap.mdx} +0 -0
- /package/reference/{runtime.mdx → sdk/runtime.mdx} +0 -0
- /package/reference/{templates → sdk/templates}/data-enrichment.mdx +0 -0
- /package/reference/{templates → sdk/templates}/email-sender.mdx +0 -0
- /package/reference/{templates → sdk/templates}/index.mdx +0 -0
- /package/reference/{templates → sdk/templates}/lead-scorer.mdx +0 -0
- /package/reference/{templates → sdk/templates}/pdf-generator.mdx +0 -0
- /package/reference/{templates → sdk/templates}/recurring-job.mdx +0 -0
- /package/reference/{templates → sdk/templates}/text-classifier.mdx +0 -0
- /package/reference/{templates → sdk/templates}/web-scraper.mdx +0 -0
- /package/reference/{troubleshooting.mdx → sdk/troubleshooting.mdx} +0 -0
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
# Knowledge Bundle Ship-Train
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The Knowledge Map (Browser, CLI, skill, icons, external parity) is being shipped as a coordinated bundle. The Organization Model now treats `knowledge` as a first-class graph domain with `kind`-discriminated nodes (`playbook` / `strategy` / `reference`) connected to features and capabilities through `governs` edges. A new `/knowledge` skill absorbs the prior `/configure` skill as a unified intent-inferring surface (read + describe + codify + toggle); `/configure` is tombstoned via `sync-delete-manifest.json`. A new `knowledge:*` CLI subcommand suite ships on both `elevasis` and `elevasis-sdk` over a shared `@repo/core/knowledge/queries` data layer. The Knowledge Browser is wired into `@elevasis/ui` with reusable primitives (`KnowledgeBrowser`, `KnowledgeTree`, `DescribeNodeView`, `KindChip`, `NodeHeader`, `NodeDescribeShell`, etc.) and a build-time MDX codegen pipeline at `@elevasis/sdk/node`. A unified semantic icon-token catalog lives at `@elevasis/core/organization-model` and is shared across core, SDK, UI, Command Center, and external projects. External-parity work makes the bundle zero-config for tenant projects: a dual-mode Vite plugin walks up to `.elevasis`, runs the two-codegen pipeline in-process, and writes artifacts the published Browser already imports -- no flags, no paths, no recipe steps.
|
|
6
|
-
|
|
7
|
-
## Applies to
|
|
8
|
-
|
|
9
|
-
All template-derived projects that consume `@elevasis/sdk`, `@elevasis/core`, or `@elevasis/ui`. Specifically:
|
|
10
|
-
|
|
11
|
-
- `nirvana-marketing`
|
|
12
|
-
- `ZentaraHQ`
|
|
13
|
-
- Any future external SDK consumer derived from the `_template` baseline
|
|
14
|
-
|
|
15
|
-
## Required actions
|
|
16
|
-
|
|
17
|
-
1. Pull template changes with `/git-sync` after this train publishes so the refreshed knowledge wiring (template OM defaults, starter `welcome.mdx`, vite plugin pre-wiring, `/knowledge` skill, `/configure` tombstone, scaffold recipe) reaches the project.
|
|
18
|
-
|
|
19
|
-
2. **`/configure` is gone.** The skill was absorbed into `/knowledge`. `/git-sync` removes `external/_template/.claude/skills/configure/` (and its 10 operations files) via `sync-delete-manifest.json` (wave: `knowledge-skill`). Update any tenant-side automation, prompts, or docs that still reference `/configure` -- replace with `/knowledge`. The skill is intent-inferring: classify by natural language (read / describe / codify / toggle), not by verb namespace.
|
|
20
|
-
|
|
21
|
-
3. **`/knowledge` ceremony is unchanged.** The codify ceremony (snapshot -> propose -> confirm -> write -> validate -> rollback) and the two-level model (Level A config-only edits vs. Level B new Zod extension files) are preserved bit-for-bit. The current skill body lives at `.claude/skills/om/SKILL.md` with operations under `.claude/skills/om/operations/` (renamed from the former knowledge skill path), including `codify-level-a.md`, `codify-level-b.md`, plus 8 domain references (`identity`, `customers`, `offerings`, `roles`, `goals`, `techStack`, `features`, `labels`).
|
|
22
|
-
|
|
23
|
-
4. **Vite plugin is pre-wired.** `external/_template/ui/vite.config.ts` imports and spreads `elevasisVite()` from `@elevasis/ui/vite`. After `/git-sync`, the plugin auto-discovers the project via `.elevasis` walk-up, runs both knowledge codegens in-process, and writes:
|
|
24
|
-
- `core/config/knowledge/_generated/nodes.ts`
|
|
25
|
-
- `core/config/knowledge/_generated/knowledge-bodies.tsx`
|
|
26
|
-
- `core/config/knowledge/_generated/knowledge-search-index.json`
|
|
27
|
-
|
|
28
|
-
Same behavior in `vite dev` and `vite build`. No flags, no manual codegen step required for the bundle to work.
|
|
29
|
-
|
|
30
|
-
5. **Starter knowledge node lands.** `core/config/knowledge/nodes/welcome.mdx` ships in the template so a fresh clone has a non-empty Browser on first `pnpm -C ui dev`. Replace with tenant-authored MDX nodes as the project codifies real organizational knowledge. Tenant nodes go under `core/config/knowledge/nodes/**/*.mdx` with frontmatter declaring `id`, `kind`, `title`, optional `icon` (semantic token), and an MDX body. Default fallback icons by `kind` apply when `icon` is omitted.
|
|
31
|
-
|
|
32
|
-
6. **Knowledge baseline propagates to the OM.** `core/config/organization-model.ts` now includes baseline knowledge defaults imported from `@elevasis/core/organization-model`. The merge-aware Tier 2 sync preserves tenant overrides while picking up the baseline. After `/git-sync`, verify `resolveOrganizationModel()` still parses (Zod) and `pnpm -C ui exec tsc --noEmit` passes.
|
|
33
|
-
|
|
34
|
-
7. **`knowledge:*` CLI subcommands are available.** From inside the project (any subdirectory):
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
pnpm exec elevasis-sdk knowledge:ls /by-feature/sales/crm
|
|
38
|
-
pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook
|
|
39
|
-
pnpm exec elevasis-sdk knowledge:cat <node-id>
|
|
40
|
-
pnpm exec elevasis-sdk knowledge:graph <node-id>
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
These walk up to `.elevasis`, load the project's OM (with tenant nodes), and print results. Output flags: default text, `--json` envelope, `--ids-only` for piping. The Knowledge Browser sidebar copy buttons emit matching skill-resolvable commands (`/knowledge read <node-id>`, `/knowledge read-folder feature:<id>`, `/knowledge read-folder kind:<kind>`).
|
|
44
|
-
|
|
45
|
-
8. **Semantic icon tokens replace ad-hoc strings.** When authoring or editing nodes (OM or MDX frontmatter), use semantic tokens from the catalog: `nav.*`, `knowledge.*`, `feature.*`, `resource.*`, `integration.*`, plus `custom.*` namespace for tenant extensions. `IconNameSchema` validates them. The UI renders via Tabler mappings in `@elevasis/ui/icons`; library names (`IconBook`, etc.) stay out of the OM/MDX surface.
|
|
46
|
-
|
|
47
|
-
9. **Rebuild and type-check:**
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
pnpm install
|
|
51
|
-
pnpm -C ui build
|
|
52
|
-
pnpm -C ui exec tsc --noEmit
|
|
53
|
-
pnpm -C operations exec tsc --noEmit
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
The first `vite dev` or `vite build` after sync triggers the in-process codegen automatically. To regenerate codegen artifacts manually (one-shot, not normally required):
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
pnpm exec elevasis-sdk knowledge:generate
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Verification
|
|
63
|
-
|
|
64
|
-
After applying all actions above:
|
|
65
|
-
|
|
66
|
-
- `/configure` skill directory is absent: `external/<project>/.claude/skills/configure/` does not exist after sync.
|
|
67
|
-
- `/om` skill is present at `.claude/skills/om/SKILL.md` with the operation files under `.claude/skills/om/operations/`.
|
|
68
|
-
- `core/config/knowledge/nodes/welcome.mdx` exists; `core/config/knowledge/_generated/` has been populated by the vite plugin (3 files).
|
|
69
|
-
- `pnpm -C ui dev` boots; navigating to `/knowledge` renders the Browser with the welcome node visible in the tree.
|
|
70
|
-
- The 5 mount axes resolve: `/knowledge`, `/knowledge/by-feature/$path`, `/knowledge/by-kind/$kind`, `/knowledge/by-owner/$id`, `/knowledge/graph/$nodeId/governs|governed-by`.
|
|
71
|
-
- `pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook` returns text output without error.
|
|
72
|
-
- `pnpm install` completes cleanly with no unresolved peer warnings.
|
|
73
|
-
- `pnpm -C ui exec tsc --noEmit` passes; `pnpm -C operations exec tsc --noEmit` passes.
|
|
74
|
-
|
|
75
|
-
## Not handled by /git-sync
|
|
76
|
-
|
|
77
|
-
`/git-sync` propagates template-authored files (package baselines, `welcome.mdx` starter node, generated `_generated/` files, `/knowledge` skill, `/configure` tombstones, vite.config.ts wiring, scaffold recipe doc) but does NOT:
|
|
78
|
-
|
|
79
|
-
- Author tenant-specific knowledge MDX nodes. The starter `welcome.mdx` is illustrative; real organizational playbooks, strategies, and reference docs need to be hand-authored under `core/config/knowledge/nodes/**/*.mdx`. Use `/knowledge` for ceremony when codifying.
|
|
80
|
-
- Regenerate `_generated/` artifacts on its own. The vite plugin runs the codegens automatically on next `vite dev` / `vite build`. To regenerate manually before booting, run `pnpm exec elevasis-sdk knowledge:generate`.
|
|
81
|
-
- Migrate references in tenant code from `/configure` to `/knowledge`. Search the project for `/configure` mentions in `.claude/`, `docs/`, `README.md`, prompts, and CI scripts; rewrite to `/knowledge`. The tombstone deletes the skill files but does not edit downstream references.
|
|
82
|
-
- Replace tenant-authored icon strings with semantic tokens. Existing nodes that carried library-specific icon names (`IconBook`, etc.) will continue to render via fallback, but the canonical surface is semantic tokens. Migrate at-touched nodes to `knowledge.*` / `feature.*` / `nav.*` / `custom.*` over time.
|
|
83
|
-
- Clear the Vite module-graph cache (`ui/node_modules/.vite`). After upgrading the bundle, clear this directory manually and restart the dev server before verifying the Browser renders -- stale cache can mask a successful generation.
|
|
1
|
+
# Knowledge Bundle Ship-Train
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The Knowledge Map (Browser, CLI, skill, icons, external parity) is being shipped as a coordinated bundle. The Organization Model now treats `knowledge` as a first-class graph domain with `kind`-discriminated nodes (`playbook` / `strategy` / `reference`) connected to features and capabilities through `governs` edges. A new `/knowledge` skill absorbs the prior `/configure` skill as a unified intent-inferring surface (read + describe + codify + toggle); `/configure` is tombstoned via `sync-delete-manifest.json`. A new `knowledge:*` CLI subcommand suite ships on both `elevasis` and `elevasis-sdk` over a shared `@repo/core/knowledge/queries` data layer. The Knowledge Browser is wired into `@elevasis/ui` with reusable primitives (`KnowledgeBrowser`, `KnowledgeTree`, `DescribeNodeView`, `KindChip`, `NodeHeader`, `NodeDescribeShell`, etc.) and a build-time MDX codegen pipeline at `@elevasis/sdk/node`. A unified semantic icon-token catalog lives at `@elevasis/core/organization-model` and is shared across core, SDK, UI, Command Center, and external projects. External-parity work makes the bundle zero-config for tenant projects: a dual-mode Vite plugin walks up to `.elevasis`, runs the two-codegen pipeline in-process, and writes artifacts the published Browser already imports -- no flags, no paths, no recipe steps.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
All template-derived projects that consume `@elevasis/sdk`, `@elevasis/core`, or `@elevasis/ui`. Specifically:
|
|
10
|
+
|
|
11
|
+
- `nirvana-marketing`
|
|
12
|
+
- `ZentaraHQ`
|
|
13
|
+
- Any future external SDK consumer derived from the `_template` baseline
|
|
14
|
+
|
|
15
|
+
## Required actions
|
|
16
|
+
|
|
17
|
+
1. Pull template changes with `/git-sync` after this train publishes so the refreshed knowledge wiring (template OM defaults, starter `welcome.mdx`, vite plugin pre-wiring, `/knowledge` skill, `/configure` tombstone, scaffold recipe) reaches the project.
|
|
18
|
+
|
|
19
|
+
2. **`/configure` is gone.** The skill was absorbed into `/knowledge`. `/git-sync` removes `external/_template/.claude/skills/configure/` (and its 10 operations files) via `sync-delete-manifest.json` (wave: `knowledge-skill`). Update any tenant-side automation, prompts, or docs that still reference `/configure` -- replace with `/knowledge`. The skill is intent-inferring: classify by natural language (read / describe / codify / toggle), not by verb namespace.
|
|
20
|
+
|
|
21
|
+
3. **`/knowledge` ceremony is unchanged.** The codify ceremony (snapshot -> propose -> confirm -> write -> validate -> rollback) and the two-level model (Level A config-only edits vs. Level B new Zod extension files) are preserved bit-for-bit. The current skill body lives at `.claude/skills/om/SKILL.md` with operations under `.claude/skills/om/operations/` (renamed from the former knowledge skill path), including `codify-level-a.md`, `codify-level-b.md`, plus 8 domain references (`identity`, `customers`, `offerings`, `roles`, `goals`, `techStack`, `features`, `labels`).
|
|
22
|
+
|
|
23
|
+
4. **Vite plugin is pre-wired.** `external/_template/ui/vite.config.ts` imports and spreads `elevasisVite()` from `@elevasis/ui/vite`. After `/git-sync`, the plugin auto-discovers the project via `.elevasis` walk-up, runs both knowledge codegens in-process, and writes:
|
|
24
|
+
- `core/config/knowledge/_generated/nodes.ts`
|
|
25
|
+
- `core/config/knowledge/_generated/knowledge-bodies.tsx`
|
|
26
|
+
- `core/config/knowledge/_generated/knowledge-search-index.json`
|
|
27
|
+
|
|
28
|
+
Same behavior in `vite dev` and `vite build`. No flags, no manual codegen step required for the bundle to work.
|
|
29
|
+
|
|
30
|
+
5. **Starter knowledge node lands.** `core/config/knowledge/nodes/welcome.mdx` ships in the template so a fresh clone has a non-empty Browser on first `pnpm -C ui dev`. Replace with tenant-authored MDX nodes as the project codifies real organizational knowledge. Tenant nodes go under `core/config/knowledge/nodes/**/*.mdx` with frontmatter declaring `id`, `kind`, `title`, optional `icon` (semantic token), and an MDX body. Default fallback icons by `kind` apply when `icon` is omitted.
|
|
31
|
+
|
|
32
|
+
6. **Knowledge baseline propagates to the OM.** `core/config/organization-model.ts` now includes baseline knowledge defaults imported from `@elevasis/core/organization-model`. The merge-aware Tier 2 sync preserves tenant overrides while picking up the baseline. After `/git-sync`, verify `resolveOrganizationModel()` still parses (Zod) and `pnpm -C ui exec tsc --noEmit` passes.
|
|
33
|
+
|
|
34
|
+
7. **`knowledge:*` CLI subcommands are available.** From inside the project (any subdirectory):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pnpm exec elevasis-sdk knowledge:ls /by-feature/sales/crm
|
|
38
|
+
pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook
|
|
39
|
+
pnpm exec elevasis-sdk knowledge:cat <node-id>
|
|
40
|
+
pnpm exec elevasis-sdk knowledge:graph <node-id>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
These walk up to `.elevasis`, load the project's OM (with tenant nodes), and print results. Output flags: default text, `--json` envelope, `--ids-only` for piping. The Knowledge Browser sidebar copy buttons emit matching skill-resolvable commands (`/knowledge read <node-id>`, `/knowledge read-folder feature:<id>`, `/knowledge read-folder kind:<kind>`).
|
|
44
|
+
|
|
45
|
+
8. **Semantic icon tokens replace ad-hoc strings.** When authoring or editing nodes (OM or MDX frontmatter), use semantic tokens from the catalog: `nav.*`, `knowledge.*`, `feature.*`, `resource.*`, `integration.*`, plus `custom.*` namespace for tenant extensions. `IconNameSchema` validates them. The UI renders via Tabler mappings in `@elevasis/ui/icons`; library names (`IconBook`, etc.) stay out of the OM/MDX surface.
|
|
46
|
+
|
|
47
|
+
9. **Rebuild and type-check:**
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pnpm install
|
|
51
|
+
pnpm -C ui build
|
|
52
|
+
pnpm -C ui exec tsc --noEmit
|
|
53
|
+
pnpm -C operations exec tsc --noEmit
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The first `vite dev` or `vite build` after sync triggers the in-process codegen automatically. To regenerate codegen artifacts manually (one-shot, not normally required):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pnpm exec elevasis-sdk knowledge:generate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
|
|
64
|
+
After applying all actions above:
|
|
65
|
+
|
|
66
|
+
- `/configure` skill directory is absent: `external/<project>/.claude/skills/configure/` does not exist after sync.
|
|
67
|
+
- `/om` skill is present at `.claude/skills/om/SKILL.md` with the operation files under `.claude/skills/om/operations/`.
|
|
68
|
+
- `core/config/knowledge/nodes/welcome.mdx` exists; `core/config/knowledge/_generated/` has been populated by the vite plugin (3 files).
|
|
69
|
+
- `pnpm -C ui dev` boots; navigating to `/knowledge` renders the Browser with the welcome node visible in the tree.
|
|
70
|
+
- The 5 mount axes resolve: `/knowledge`, `/knowledge/by-feature/$path`, `/knowledge/by-kind/$kind`, `/knowledge/by-owner/$id`, `/knowledge/graph/$nodeId/governs|governed-by`.
|
|
71
|
+
- `pnpm exec elevasis-sdk knowledge:ls /by-kind/playbook` returns text output without error.
|
|
72
|
+
- `pnpm install` completes cleanly with no unresolved peer warnings.
|
|
73
|
+
- `pnpm -C ui exec tsc --noEmit` passes; `pnpm -C operations exec tsc --noEmit` passes.
|
|
74
|
+
|
|
75
|
+
## Not handled by /git-sync
|
|
76
|
+
|
|
77
|
+
`/git-sync` propagates template-authored files (package baselines, `welcome.mdx` starter node, generated `_generated/` files, `/knowledge` skill, `/configure` tombstones, vite.config.ts wiring, scaffold recipe doc) but does NOT:
|
|
78
|
+
|
|
79
|
+
- Author tenant-specific knowledge MDX nodes. The starter `welcome.mdx` is illustrative; real organizational playbooks, strategies, and reference docs need to be hand-authored under `core/config/knowledge/nodes/**/*.mdx`. Use `/knowledge` for ceremony when codifying.
|
|
80
|
+
- Regenerate `_generated/` artifacts on its own. The vite plugin runs the codegens automatically on next `vite dev` / `vite build`. To regenerate manually before booting, run `pnpm exec elevasis-sdk knowledge:generate`.
|
|
81
|
+
- Migrate references in tenant code from `/configure` to `/knowledge`. Search the project for `/configure` mentions in `.claude/`, `docs/`, `README.md`, prompts, and CI scripts; rewrite to `/knowledge`. The tombstone deletes the skill files but does not edit downstream references.
|
|
82
|
+
- Replace tenant-authored icon strings with semantic tokens. Existing nodes that carried library-specific icon names (`IconBook`, etc.) will continue to render via fallback, but the canonical surface is semantic tokens. Migrate at-touched nodes to `knowledge.*` / `feature.*` / `nav.*` / `custom.*` over time.
|
|
83
|
+
- Clear the Vite module-graph cache (`ui/node_modules/.vite`). After upgrading the bundle, clear this directory manually and restart the dev server before verifying the Browser renders -- stale cache can mask a successful generation.
|
package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
# Organization Model Ontology Refactor
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The template now demonstrates the Organization Model ontology and topology bridge. New semantic contracts should be authored in `System.ontology`; executable Resources bind through `resource.ontology.actions` and optional `resource.ontology.primaryAction`; durable operational wiring belongs in `organizationModel.topology.relationships`. Legacy `entities`, `actions`, and `System.content` remain compatibility mirrors for current consumers.
|
|
6
|
-
|
|
7
|
-
## Applies to
|
|
8
|
-
|
|
9
|
-
- `core/config/organization-model.ts`
|
|
10
|
-
- `core/config/organization-model.test.ts`
|
|
11
|
-
- `core/config/organization-model.contract.test.ts`
|
|
12
|
-
- `core/config/README.md`
|
|
13
|
-
- `operations/src/index.ts`
|
|
14
|
-
- `operations/src/resource-registry.test.ts`
|
|
15
|
-
- `operations/src/README.md`
|
|
16
|
-
- `.claude/rules/organization-model.md`
|
|
17
|
-
- `.claude/rules/operations.md`
|
|
18
|
-
|
|
19
|
-
## Required actions
|
|
20
|
-
|
|
21
|
-
1. Preserve system-colocated ontology scopes when syncing template organization-model changes.
|
|
22
|
-
2. Migrate Resource descriptors from `ontology.implements` / `actionKey` to `ontology.actions` / `ontology.primaryAction`; keep `codeRefs` with the Resource descriptor.
|
|
23
|
-
3. Preserve `organizationModel.topology.relationships` when syncing template organization-model changes; keep secrets, credential values, provider webhook mechanics, and per-run state outside the OM.
|
|
24
|
-
4. Keep `entities`, `actions`, and `System.content` aligned as compatibility mirrors until downstream consumers move fully to compiled ontology indexes.
|
|
25
|
-
5. Do not overwrite project-owned `core/config/extensions/**` files.
|
|
26
|
-
|
|
27
|
-
## Verification
|
|
28
|
-
|
|
29
|
-
Run the template verification lane after applying this sync:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pnpm -C external/_template/core test
|
|
33
|
-
pnpm -C external/_template/core exec tsc --noEmit
|
|
34
|
-
pnpm -C external/_template/operations check
|
|
35
|
-
pnpm -C external/_template/operations check-types
|
|
36
|
-
pnpm -C external/_template/operations test
|
|
37
|
-
pnpm sync:verify --pre
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Not handled by /git-sync
|
|
41
|
-
|
|
42
|
-
- Choosing project-specific ontology IDs for tenant-owned systems.
|
|
43
|
-
- Choosing project-specific topology relationships for tenant-owned workflows, checkpoints, integrations, or schedules.
|
|
44
|
-
- Migrating project-owned extension files under `core/config/extensions/**`.
|
|
45
|
-
- Retiring compatibility mirrors before the full internal, SDK, scaffold, and external template-family green cycle.
|
|
1
|
+
# Organization Model Ontology Refactor
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The template now demonstrates the Organization Model ontology and topology bridge. New semantic contracts should be authored in `System.ontology`; executable Resources bind through `resource.ontology.actions` and optional `resource.ontology.primaryAction`; durable operational wiring belongs in `organizationModel.topology.relationships`. Legacy `entities`, `actions`, and `System.content` remain compatibility mirrors for current consumers.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
- `core/config/organization-model.ts`
|
|
10
|
+
- `core/config/organization-model.test.ts`
|
|
11
|
+
- `core/config/organization-model.contract.test.ts`
|
|
12
|
+
- `core/config/README.md`
|
|
13
|
+
- `operations/src/index.ts`
|
|
14
|
+
- `operations/src/resource-registry.test.ts`
|
|
15
|
+
- `operations/src/README.md`
|
|
16
|
+
- `.claude/rules/organization-model.md`
|
|
17
|
+
- `.claude/rules/operations.md`
|
|
18
|
+
|
|
19
|
+
## Required actions
|
|
20
|
+
|
|
21
|
+
1. Preserve system-colocated ontology scopes when syncing template organization-model changes.
|
|
22
|
+
2. Migrate Resource descriptors from `ontology.implements` / `actionKey` to `ontology.actions` / `ontology.primaryAction`; keep `codeRefs` with the Resource descriptor.
|
|
23
|
+
3. Preserve `organizationModel.topology.relationships` when syncing template organization-model changes; keep secrets, credential values, provider webhook mechanics, and per-run state outside the OM.
|
|
24
|
+
4. Keep `entities`, `actions`, and `System.content` aligned as compatibility mirrors until downstream consumers move fully to compiled ontology indexes.
|
|
25
|
+
5. Do not overwrite project-owned `core/config/extensions/**` files.
|
|
26
|
+
|
|
27
|
+
## Verification
|
|
28
|
+
|
|
29
|
+
Run the template verification lane after applying this sync:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pnpm -C external/_template/core test
|
|
33
|
+
pnpm -C external/_template/core exec tsc --noEmit
|
|
34
|
+
pnpm -C external/_template/operations check
|
|
35
|
+
pnpm -C external/_template/operations check-types
|
|
36
|
+
pnpm -C external/_template/operations test
|
|
37
|
+
pnpm sync:verify --pre
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Not handled by /git-sync
|
|
41
|
+
|
|
42
|
+
- Choosing project-specific ontology IDs for tenant-owned systems.
|
|
43
|
+
- Choosing project-specific topology relationships for tenant-owned workflows, checkpoints, integrations, or schedules.
|
|
44
|
+
- Migrating project-owned extension files under `core/config/extensions/**`.
|
|
45
|
+
- Retiring compatibility mirrors before the full internal, SDK, scaffold, and external template-family green cycle.
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
# OM Skill Rename + Write Family Release Train
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This release train renames the tenant `/knowledge` skill to `/om` and broadens it, ports `om:search` / `om:describe` to the `elevasis-sdk` CLI, and bumps the `@elevasis/core` and `@elevasis/sdk` dependency baselines. The template `.claude` skill surface changed shape (a directory was renamed and slash-command references were rewritten across CLAUDE.md, rules, and adjacent skills), and `@elevasis/core` / `@elevasis/sdk` published new exports and CLI commands. Ordinary git merge does not reconcile a managed `.claude` skill rename or pull republished package baselines, so template-derived projects need an operative note.
|
|
6
|
-
|
|
7
|
-
This note covers the `om-skill` workstream (the `/knowledge` -> `/om` rename + SDK CLI port) and the package-baseline cascades from the same train (`@elevasis/core` minor from `om-skill` + `om-create-skill`; `@elevasis/sdk` minor from `om-skill`). It does NOT cover the unrelated Shared-UI-Migration changes under `external/_template/ui/**`, which are a separate workstream and not part of this train.
|
|
8
|
-
|
|
9
|
-
## Applies to
|
|
10
|
-
|
|
11
|
-
- `external/_template/.claude/skills/om/SKILL.md` (renamed from `external/_template/.claude/skills/knowledge/SKILL.md`; canonical 5-bucket decision tree with the tenant Codify/Toggle ceremony preserved)
|
|
12
|
-
- `external/_template/.claude/skills/om/operations/*.md` (10 files moved from `knowledge/operations/`; `elevasis-sdk knowledge:*` references rewritten to `elevasis-sdk om:*`, `/knowledge` footers rewritten to `/om`)
|
|
13
|
-
- `external/_template/.claude/skills/knowledge/` (DELETED — directory removed; tombstone, do not re-create on sync)
|
|
14
|
-
- `external/_template/CLAUDE.md` (Slash Commands table — `/knowledge` -> `/om`)
|
|
15
|
-
- `external/_template/.claude/rules/{organization-model,organization-os,vibe}.md` (slash-command references)
|
|
16
|
-
- `external/_template/.claude/skills/{setup,project,tutorial}/*.md` (slash-command references)
|
|
17
|
-
- `external/_template/core/package.json` (`@elevasis/core` baseline -> 0.25.0)
|
|
18
|
-
- `external/_template/operations/package.json` (`@elevasis/core` -> 0.25.0 and `@elevasis/sdk` -> 1.23.0 baselines)
|
|
19
|
-
|
|
20
|
-
Package baselines become concrete only after the `core` and `sdk` publish stages of `/sdk ship` complete; the `.claude` skill rename is template-authored and already present in `external/_template`.
|
|
21
|
-
|
|
22
|
-
## Required actions
|
|
23
|
-
|
|
24
|
-
1. Apply the managed `.claude` skill rename atomically: create `.claude/skills/om/` (SKILL.md + `operations/`) and delete the former knowledge skill directory in the same sync. Never leave both directories present — two skills advertising the same scope is the exact confusion the rename removes.
|
|
25
|
-
2. Preserve any tenant-owned Codify/Toggle ceremony content in the project's `om/SKILL.md` Write-Power section; do not overwrite project-authored knowledge node content under `core/config/knowledge/**` (the content directory is separate from the slash-command name).
|
|
26
|
-
3. Rewrite `/knowledge` -> `/om` and `elevasis-sdk knowledge:*` -> `elevasis-sdk om:*` references in managed surfaces only; `knowledge:*` CLI aliases remain valid, so do not hard-fail on legacy invocations in project-owned files.
|
|
27
|
-
4. After the `/sdk ship` publish stages land, bump the `@elevasis/core` (0.25.0) and `@elevasis/sdk` (1.23.0) baselines in `core/package.json` and `operations/package.json`, then reinstall.
|
|
28
|
-
5. The `/om` write sub-skill family (`verify` / `create` / `rename` / `deprecate`) is intentionally NOT ported to the tenant template in this train (deferred to a dedicated task). Do not scaffold those tenant operations from this sync.
|
|
29
|
-
|
|
30
|
-
## Verification
|
|
31
|
-
|
|
32
|
-
Run the template verification lane after applying this sync:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
pnpm sync:verify --pre
|
|
36
|
-
pnpm external:verify
|
|
37
|
-
pnpm -C external/_template/operations check-types
|
|
38
|
-
pnpm -C external/_template/operations test
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Then confirm in each downstream project:
|
|
42
|
-
|
|
43
|
-
- `.claude/skills/om/` exists with `SKILL.md` + `operations/`; the former knowledge skill directory is gone.
|
|
44
|
-
- `elevasis-sdk om:search "<query>"` and `elevasis-sdk om:describe <id>` resolve against the tenant's organization model; legacy `elevasis-sdk knowledge:*` still aliases.
|
|
45
|
-
- `@elevasis/core` resolves to >= 0.25.0 and `@elevasis/sdk` to >= 1.23.0.
|
|
46
|
-
|
|
47
|
-
## Not handled by /git-sync
|
|
48
|
-
|
|
49
|
-
- Publishing `@elevasis/core` (0.25.0) or `@elevasis/sdk` (1.23.0) — owned by `/sdk ship` publish stages.
|
|
50
|
-
- Redeploying the SDK resources bundle (`elevasis-operations`) after the `@elevasis/sdk` publish.
|
|
51
|
-
- Tenant-specific conflict resolution in dirty external project worktrees, including reconciling any project-authored edits to the former `knowledge/SKILL.md`.
|
|
52
|
-
- The unrelated Shared-UI-Migration changes under `external/_template/ui/**` (separate workstream; not in this train's scope).
|
|
1
|
+
# OM Skill Rename + Write Family Release Train
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This release train renames the tenant `/knowledge` skill to `/om` and broadens it, ports `om:search` / `om:describe` to the `elevasis-sdk` CLI, and bumps the `@elevasis/core` and `@elevasis/sdk` dependency baselines. The template `.claude` skill surface changed shape (a directory was renamed and slash-command references were rewritten across CLAUDE.md, rules, and adjacent skills), and `@elevasis/core` / `@elevasis/sdk` published new exports and CLI commands. Ordinary git merge does not reconcile a managed `.claude` skill rename or pull republished package baselines, so template-derived projects need an operative note.
|
|
6
|
+
|
|
7
|
+
This note covers the `om-skill` workstream (the `/knowledge` -> `/om` rename + SDK CLI port) and the package-baseline cascades from the same train (`@elevasis/core` minor from `om-skill` + `om-create-skill`; `@elevasis/sdk` minor from `om-skill`). It does NOT cover the unrelated Shared-UI-Migration changes under `external/_template/ui/**`, which are a separate workstream and not part of this train.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- `external/_template/.claude/skills/om/SKILL.md` (renamed from `external/_template/.claude/skills/knowledge/SKILL.md`; canonical 5-bucket decision tree with the tenant Codify/Toggle ceremony preserved)
|
|
12
|
+
- `external/_template/.claude/skills/om/operations/*.md` (10 files moved from `knowledge/operations/`; `elevasis-sdk knowledge:*` references rewritten to `elevasis-sdk om:*`, `/knowledge` footers rewritten to `/om`)
|
|
13
|
+
- `external/_template/.claude/skills/knowledge/` (DELETED — directory removed; tombstone, do not re-create on sync)
|
|
14
|
+
- `external/_template/CLAUDE.md` (Slash Commands table — `/knowledge` -> `/om`)
|
|
15
|
+
- `external/_template/.claude/rules/{organization-model,organization-os,vibe}.md` (slash-command references)
|
|
16
|
+
- `external/_template/.claude/skills/{setup,project,tutorial}/*.md` (slash-command references)
|
|
17
|
+
- `external/_template/core/package.json` (`@elevasis/core` baseline -> 0.25.0)
|
|
18
|
+
- `external/_template/operations/package.json` (`@elevasis/core` -> 0.25.0 and `@elevasis/sdk` -> 1.23.0 baselines)
|
|
19
|
+
|
|
20
|
+
Package baselines become concrete only after the `core` and `sdk` publish stages of `/sdk ship` complete; the `.claude` skill rename is template-authored and already present in `external/_template`.
|
|
21
|
+
|
|
22
|
+
## Required actions
|
|
23
|
+
|
|
24
|
+
1. Apply the managed `.claude` skill rename atomically: create `.claude/skills/om/` (SKILL.md + `operations/`) and delete the former knowledge skill directory in the same sync. Never leave both directories present — two skills advertising the same scope is the exact confusion the rename removes.
|
|
25
|
+
2. Preserve any tenant-owned Codify/Toggle ceremony content in the project's `om/SKILL.md` Write-Power section; do not overwrite project-authored knowledge node content under `core/config/knowledge/**` (the content directory is separate from the slash-command name).
|
|
26
|
+
3. Rewrite `/knowledge` -> `/om` and `elevasis-sdk knowledge:*` -> `elevasis-sdk om:*` references in managed surfaces only; `knowledge:*` CLI aliases remain valid, so do not hard-fail on legacy invocations in project-owned files.
|
|
27
|
+
4. After the `/sdk ship` publish stages land, bump the `@elevasis/core` (0.25.0) and `@elevasis/sdk` (1.23.0) baselines in `core/package.json` and `operations/package.json`, then reinstall.
|
|
28
|
+
5. The `/om` write sub-skill family (`verify` / `create` / `rename` / `deprecate`) is intentionally NOT ported to the tenant template in this train (deferred to a dedicated task). Do not scaffold those tenant operations from this sync.
|
|
29
|
+
|
|
30
|
+
## Verification
|
|
31
|
+
|
|
32
|
+
Run the template verification lane after applying this sync:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm sync:verify --pre
|
|
36
|
+
pnpm external:verify
|
|
37
|
+
pnpm -C external/_template/operations check-types
|
|
38
|
+
pnpm -C external/_template/operations test
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then confirm in each downstream project:
|
|
42
|
+
|
|
43
|
+
- `.claude/skills/om/` exists with `SKILL.md` + `operations/`; the former knowledge skill directory is gone.
|
|
44
|
+
- `elevasis-sdk om:search "<query>"` and `elevasis-sdk om:describe <id>` resolve against the tenant's organization model; legacy `elevasis-sdk knowledge:*` still aliases.
|
|
45
|
+
- `@elevasis/core` resolves to >= 0.25.0 and `@elevasis/sdk` to >= 1.23.0.
|
|
46
|
+
|
|
47
|
+
## Not handled by /git-sync
|
|
48
|
+
|
|
49
|
+
- Publishing `@elevasis/core` (0.25.0) or `@elevasis/sdk` (1.23.0) — owned by `/sdk ship` publish stages.
|
|
50
|
+
- Redeploying the SDK resources bundle (`elevasis-operations`) after the `@elevasis/sdk` publish.
|
|
51
|
+
- Tenant-specific conflict resolution in dirty external project worktrees, including reconciling any project-authored edits to the former `knowledge/SKILL.md`.
|
|
52
|
+
- The unrelated Shared-UI-Migration changes under `external/_template/ui/**` (separate workstream; not in this train's scope).
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
# SDK Boundary Consolidation Release Train
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This train publishes the SDK boundary consolidation work and updates the template to consume more of the published Elevasis SDK family instead of carrying local boilerplate. It also carries the Organization Model bridge retirement and typed-contract hardening that the ship train depends on.
|
|
6
|
-
|
|
7
|
-
## Applies to
|
|
8
|
-
|
|
9
|
-
- Template UI shells derived from `external/_template/ui`.
|
|
10
|
-
- Template operations packages that depend on `@elevasis/sdk`.
|
|
11
|
-
- Template core packages that depend on `@elevasis/core`.
|
|
12
|
-
- Projects that still carry copied `.claude/rules/*.md` files instead of SDK reference pointers.
|
|
13
|
-
|
|
14
|
-
## Required actions
|
|
15
|
-
|
|
16
|
-
- Refresh package baselines after publishing `@elevasis/core`, `@elevasis/ui`, and `@elevasis/sdk`.
|
|
17
|
-
- Adopt `ElevasisAuthenticatedShell` from `@elevasis/ui/app` in template-derived root routes.
|
|
18
|
-
- Replace local UI test/store/query-client helpers with `@elevasis/ui/test-utils`, `@elevasis/ui/test-utils/setup`, `createElevasisAppStore`, and `createElevasisQueryClient`.
|
|
19
|
-
- Keep project-specific Claude guidance as compatibility stubs that point at `@elevasis/sdk/reference/rules/`.
|
|
20
|
-
- Treat `System.ontology.catalogTypes` and `System.config` as canonical Organization Model authoring surfaces; do not reintroduce `System.content`.
|
|
21
|
-
|
|
22
|
-
## Verification
|
|
23
|
-
|
|
24
|
-
- `pnpm sdk:verify-release`
|
|
25
|
-
- `pnpm scaffold:verify`
|
|
26
|
-
- `pnpm verify:scaffold-reference`
|
|
27
|
-
- `pnpm sync:verify`
|
|
28
|
-
- `pnpm org-os:verify`
|
|
29
|
-
- Template UI typecheck and tests from the source workstream.
|
|
30
|
-
|
|
31
|
-
## Not handled by /git-sync
|
|
32
|
-
|
|
33
|
-
`/git-sync` does not publish npm packages, deploy the operations resource bundle, or decide whether project-owned files should adopt a template baseline. Those steps remain owned by `/sdk ship` and the prepared external-sync manifest.
|
|
1
|
+
# SDK Boundary Consolidation Release Train
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This train publishes the SDK boundary consolidation work and updates the template to consume more of the published Elevasis SDK family instead of carrying local boilerplate. It also carries the Organization Model bridge retirement and typed-contract hardening that the ship train depends on.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
- Template UI shells derived from `external/_template/ui`.
|
|
10
|
+
- Template operations packages that depend on `@elevasis/sdk`.
|
|
11
|
+
- Template core packages that depend on `@elevasis/core`.
|
|
12
|
+
- Projects that still carry copied `.claude/rules/*.md` files instead of SDK reference pointers.
|
|
13
|
+
|
|
14
|
+
## Required actions
|
|
15
|
+
|
|
16
|
+
- Refresh package baselines after publishing `@elevasis/core`, `@elevasis/ui`, and `@elevasis/sdk`.
|
|
17
|
+
- Adopt `ElevasisAuthenticatedShell` from `@elevasis/ui/app` in template-derived root routes.
|
|
18
|
+
- Replace local UI test/store/query-client helpers with `@elevasis/ui/test-utils`, `@elevasis/ui/test-utils/setup`, `createElevasisAppStore`, and `createElevasisQueryClient`.
|
|
19
|
+
- Keep project-specific Claude guidance as compatibility stubs that point at `@elevasis/sdk/reference/rules/`.
|
|
20
|
+
- Treat `System.ontology.catalogTypes` and `System.config` as canonical Organization Model authoring surfaces; do not reintroduce `System.content`.
|
|
21
|
+
|
|
22
|
+
## Verification
|
|
23
|
+
|
|
24
|
+
- `pnpm sdk:verify-release`
|
|
25
|
+
- `pnpm scaffold:verify`
|
|
26
|
+
- `pnpm verify:scaffold-reference`
|
|
27
|
+
- `pnpm sync:verify`
|
|
28
|
+
- `pnpm org-os:verify`
|
|
29
|
+
- Template UI typecheck and tests from the source workstream.
|
|
30
|
+
|
|
31
|
+
## Not handled by /git-sync
|
|
32
|
+
|
|
33
|
+
`/git-sync` does not publish npm packages, deploy the operations resource bundle, or decide whether project-owned files should adopt a template baseline. Those steps remain owned by `/sdk ship` and the prepared external-sync manifest.
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# Organization Model Define Helpers Release Train
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This train publishes `@elevasis/core` 0.28.0, which adds a generic `defineDomainRecord<TSchema>(schema, entries)` helper plus eleven domain-specific authoring wrappers (`defineAction`/`defineActions`, `defineEntity`/`defineEntities`, `defineSystem`/`defineSystems`, `defineCustomer`/`defineCustomers`, `defineOffering`/`defineOfferings`, `defineRole`/`defineRoles`, `defineGoal`/`defineGoals`, `defineStatus`/`defineStatuses`, `definePolicy`/`definePolicies`, `defineKnowledgeNode`/`defineKnowledgeNodes`). The audit that motivated this train (package vs. project boundary) found that projects were hand-rolling the "validate every entry against its schema, then return an id-keyed map" pattern in multiple places — the helpers eliminate that duplication and make validation uniform.
|
|
6
|
-
|
|
7
|
-
After this publish, the template's `external/_template/core/config/organization-model.ts` drops 6 local `TemplateX` type aliases and 2 local helper redefinitions in favor of the published equivalents.
|
|
8
|
-
|
|
9
|
-
## Applies to
|
|
10
|
-
|
|
11
|
-
- `external/_template/core/config/organization-model.ts` (template authoring surface)
|
|
12
|
-
- Any downstream tenant project derived from `_template` that still carries local `TemplateActionRef` / `TemplateActionEntry` / `TemplateEntityEntry` / `TemplateSystemEntry` / `TemplateResourceOntologyBinding` / `TemplateWorkflowResourceEntry` aliases, or local `listAllSystems` / `toDomainRecord` helpers
|
|
13
|
-
- `external/_template/core/package.json` and `external/_template/operations/package.json` (baseline cascade — both pin `@elevasis/core`)
|
|
14
|
-
|
|
15
|
-
## Required actions
|
|
16
|
-
|
|
17
|
-
- Refresh `@elevasis/core` to 0.28.0 in `core/package.json` and `operations/package.json` (caret range picks it up automatically; `pnpm install` to actualize).
|
|
18
|
-
- Drop the 6 `TemplateX` type aliases from `core/config/organization-model.ts` and import the canonical types from `@elevasis/core/organization-model` instead: `ActionRef`, `OrganizationAction`, `Entity`, `OrganizationModelSystemEntry`, `ResourceOntologyBinding`, `WorkflowResourceEntry`.
|
|
19
|
-
- Drop the local `listAllSystems` and `toDomainRecord` helpers; use `listAllSystems` and `defineDomainRecord` from `@elevasis/core/organization-model`.
|
|
20
|
-
- Keep `TemplateWorkflowResourceEntry` ONLY as an intersection that adds the `systemId` compat mirror plus required `title`/`description`: `WorkflowResourceEntry & { systemId: string; title: string; description: string }`. This compat mirror is the sole justified divergence.
|
|
21
|
-
- Author calls that build domain records should migrate from the hand-rolled `toDomainRecord(entries)` form to the validating `defineDomainRecord(Schema, entries)` form, or use the domain-specific `defineActions`, `defineEntities`, etc. wrappers where applicable.
|
|
22
|
-
|
|
23
|
-
## Verification
|
|
24
|
-
|
|
25
|
-
- `pnpm -C core check-types`
|
|
26
|
-
- `pnpm -C operations check-types`
|
|
27
|
-
- `pnpm -C ui check-types`
|
|
28
|
-
- Run `pnpm sync:verify` from the monorepo root after `/external sync --all` propagates.
|
|
29
|
-
|
|
30
|
-
## Not handled by /git-sync
|
|
31
|
-
|
|
32
|
-
`/git-sync` does not republish `@elevasis/core`, edit your `core/config/organization-model.ts` for you, or migrate hand-rolled `toDomainRecord` call sites to `defineDomainRecord`. Those edits are intentional authoring changes; review them in a normal PR. The `pnpm install` after the dependency bump IS handled.
|
|
1
|
+
# Organization Model Define Helpers Release Train
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This train publishes `@elevasis/core` 0.28.0, which adds a generic `defineDomainRecord<TSchema>(schema, entries)` helper plus eleven domain-specific authoring wrappers (`defineAction`/`defineActions`, `defineEntity`/`defineEntities`, `defineSystem`/`defineSystems`, `defineCustomer`/`defineCustomers`, `defineOffering`/`defineOfferings`, `defineRole`/`defineRoles`, `defineGoal`/`defineGoals`, `defineStatus`/`defineStatuses`, `definePolicy`/`definePolicies`, `defineKnowledgeNode`/`defineKnowledgeNodes`). The audit that motivated this train (package vs. project boundary) found that projects were hand-rolling the "validate every entry against its schema, then return an id-keyed map" pattern in multiple places — the helpers eliminate that duplication and make validation uniform.
|
|
6
|
+
|
|
7
|
+
After this publish, the template's `external/_template/core/config/organization-model.ts` drops 6 local `TemplateX` type aliases and 2 local helper redefinitions in favor of the published equivalents.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- `external/_template/core/config/organization-model.ts` (template authoring surface)
|
|
12
|
+
- Any downstream tenant project derived from `_template` that still carries local `TemplateActionRef` / `TemplateActionEntry` / `TemplateEntityEntry` / `TemplateSystemEntry` / `TemplateResourceOntologyBinding` / `TemplateWorkflowResourceEntry` aliases, or local `listAllSystems` / `toDomainRecord` helpers
|
|
13
|
+
- `external/_template/core/package.json` and `external/_template/operations/package.json` (baseline cascade — both pin `@elevasis/core`)
|
|
14
|
+
|
|
15
|
+
## Required actions
|
|
16
|
+
|
|
17
|
+
- Refresh `@elevasis/core` to 0.28.0 in `core/package.json` and `operations/package.json` (caret range picks it up automatically; `pnpm install` to actualize).
|
|
18
|
+
- Drop the 6 `TemplateX` type aliases from `core/config/organization-model.ts` and import the canonical types from `@elevasis/core/organization-model` instead: `ActionRef`, `OrganizationAction`, `Entity`, `OrganizationModelSystemEntry`, `ResourceOntologyBinding`, `WorkflowResourceEntry`.
|
|
19
|
+
- Drop the local `listAllSystems` and `toDomainRecord` helpers; use `listAllSystems` and `defineDomainRecord` from `@elevasis/core/organization-model`.
|
|
20
|
+
- Keep `TemplateWorkflowResourceEntry` ONLY as an intersection that adds the `systemId` compat mirror plus required `title`/`description`: `WorkflowResourceEntry & { systemId: string; title: string; description: string }`. This compat mirror is the sole justified divergence.
|
|
21
|
+
- Author calls that build domain records should migrate from the hand-rolled `toDomainRecord(entries)` form to the validating `defineDomainRecord(Schema, entries)` form, or use the domain-specific `defineActions`, `defineEntities`, etc. wrappers where applicable.
|
|
22
|
+
|
|
23
|
+
## Verification
|
|
24
|
+
|
|
25
|
+
- `pnpm -C core check-types`
|
|
26
|
+
- `pnpm -C operations check-types`
|
|
27
|
+
- `pnpm -C ui check-types`
|
|
28
|
+
- Run `pnpm sync:verify` from the monorepo root after `/external sync --all` propagates.
|
|
29
|
+
|
|
30
|
+
## Not handled by /git-sync
|
|
31
|
+
|
|
32
|
+
`/git-sync` does not republish `@elevasis/core`, edit your `core/config/organization-model.ts` for you, or migrate hand-rolled `toDomainRecord` call sites to `defineDomainRecord`. Those edits are intentional authoring changes; review them in a normal PR. The `pnpm install` after the dependency bump IS handled.
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# Access Model And Right Panel Host
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
This release train replaces the retired feature-access route guards with the unified Access Model and adds the shared right-panel host plus shared Notes view to the template UI. Downstream projects need to accept the new package baselines and reconcile any project-owned routes or dashboard surfaces that still use the old `SystemGuard` / `createFeatureAccessHook` pattern.
|
|
6
|
-
|
|
7
|
-
## Applies to
|
|
8
|
-
|
|
9
|
-
Template-derived projects that use `@elevasis/ui` route guards, dashboard feature availability, right-panel UI, Notes, or template-managed route files under `ui/src/routes/**` and `ui/src/features/**`.
|
|
10
|
-
|
|
11
|
-
Projects without custom route guards or right-panel customizations can accept the template updates normally, then run the verification gates below.
|
|
12
|
-
|
|
13
|
-
## Required actions
|
|
14
|
-
|
|
15
|
-
1. Pull the prepared template/package updates with `/git-sync` after the SDK ship train publishes `@elevasis/core` and `@elevasis/ui`.
|
|
16
|
-
2. Replace project-owned `SystemGuard`, `SurfaceGuard`, `AdminGuard`, `createFeatureAccessHook`, `useOrganizationPermissions`, and `useHasPermission` usages with `AccessGuard`, `useAccess`, and `AccessKeys`.
|
|
17
|
-
3. Keep app-local right-panel registries project-owned, but compose them with `RightPanelProvider`, `RightPanelLayer`, and shared views from `@elevasis/ui/features/right-panel-host` and `@elevasis/ui/features/notes`.
|
|
18
|
-
4. Preserve tenant-specific route content, Organization Model Systems, and custom dashboard cards while updating their access checks to the new Access Model.
|
|
19
|
-
5. Do not import workspace packages such as `@repo/core` or `@repo/ui` from external projects. Use the published `@elevasis/*` packages.
|
|
20
|
-
|
|
21
|
-
## Verification
|
|
22
|
-
|
|
23
|
-
Run the project baseline gates after syncing:
|
|
24
|
-
|
|
25
|
-
```powershell
|
|
26
|
-
pnpm -C ui check-types
|
|
27
|
-
pnpm -C ui build
|
|
28
|
-
pnpm -C ui test
|
|
29
|
-
pnpm -C core test
|
|
30
|
-
pnpm test
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
For projects with custom route guards, also grep for retired access APIs:
|
|
34
|
-
|
|
35
|
-
```powershell
|
|
36
|
-
rg "SystemGuard|SurfaceGuard|AdminGuard|createFeatureAccessHook|useOrganizationPermissions|useHasPermission" ui/src
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
For projects adopting the right-panel host, open the app shell and confirm the panel trigger opens Notes, closes cleanly, preserves width on desktop, and does not hide project-owned navigation controls.
|
|
40
|
-
|
|
41
|
-
## Not handled by /git-sync
|
|
42
|
-
|
|
43
|
-
`/git-sync` updates template-propagated files and package baselines. It does not rewrite project-owned custom routes, custom dashboard widgets, custom right-panel views, tenant Organization Model entries, or tenant-specific access semantics. Those remain project-authored decisions that must be migrated to the Access Model by the downstream maintainer.
|
|
1
|
+
# Access Model And Right Panel Host
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This release train replaces the retired feature-access route guards with the unified Access Model and adds the shared right-panel host plus shared Notes view to the template UI. Downstream projects need to accept the new package baselines and reconcile any project-owned routes or dashboard surfaces that still use the old `SystemGuard` / `createFeatureAccessHook` pattern.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
Template-derived projects that use `@elevasis/ui` route guards, dashboard feature availability, right-panel UI, Notes, or template-managed route files under `ui/src/routes/**` and `ui/src/features/**`.
|
|
10
|
+
|
|
11
|
+
Projects without custom route guards or right-panel customizations can accept the template updates normally, then run the verification gates below.
|
|
12
|
+
|
|
13
|
+
## Required actions
|
|
14
|
+
|
|
15
|
+
1. Pull the prepared template/package updates with `/git-sync` after the SDK ship train publishes `@elevasis/core` and `@elevasis/ui`.
|
|
16
|
+
2. Replace project-owned `SystemGuard`, `SurfaceGuard`, `AdminGuard`, `createFeatureAccessHook`, `useOrganizationPermissions`, and `useHasPermission` usages with `AccessGuard`, `useAccess`, and `AccessKeys`.
|
|
17
|
+
3. Keep app-local right-panel registries project-owned, but compose them with `RightPanelProvider`, `RightPanelLayer`, and shared views from `@elevasis/ui/features/right-panel-host` and `@elevasis/ui/features/notes`.
|
|
18
|
+
4. Preserve tenant-specific route content, Organization Model Systems, and custom dashboard cards while updating their access checks to the new Access Model.
|
|
19
|
+
5. Do not import workspace packages such as `@repo/core` or `@repo/ui` from external projects. Use the published `@elevasis/*` packages.
|
|
20
|
+
|
|
21
|
+
## Verification
|
|
22
|
+
|
|
23
|
+
Run the project baseline gates after syncing:
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
pnpm -C ui check-types
|
|
27
|
+
pnpm -C ui build
|
|
28
|
+
pnpm -C ui test
|
|
29
|
+
pnpm -C core test
|
|
30
|
+
pnpm test
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For projects with custom route guards, also grep for retired access APIs:
|
|
34
|
+
|
|
35
|
+
```powershell
|
|
36
|
+
rg "SystemGuard|SurfaceGuard|AdminGuard|createFeatureAccessHook|useOrganizationPermissions|useHasPermission" ui/src
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
For projects adopting the right-panel host, open the app shell and confirm the panel trigger opens Notes, closes cleanly, preserves width on desktop, and does not hide project-owned navigation controls.
|
|
40
|
+
|
|
41
|
+
## Not handled by /git-sync
|
|
42
|
+
|
|
43
|
+
`/git-sync` updates template-propagated files and package baselines. It does not rewrite project-owned custom routes, custom dashboard widgets, custom right-panel views, tenant Organization Model entries, or tenant-specific access semantics. Those remain project-authored decisions that must be migrated to the Access Model by the downstream maintainer.
|