@elevasis/sdk 1.22.1 → 1.24.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 (70) hide show
  1. package/dist/cli.cjs +5738 -6283
  2. package/dist/index.d.ts +187 -242
  3. package/dist/index.js +1830 -2912
  4. package/dist/node/index.d.ts +3722 -2
  5. package/dist/node/index.js +163 -1
  6. package/dist/test-utils/index.d.ts +61 -72
  7. package/dist/test-utils/index.js +240 -1479
  8. package/dist/types/worker/index.d.ts +2 -0
  9. package/dist/types/worker/utils.d.ts +9 -0
  10. package/dist/worker/index.js +261 -1487
  11. package/package.json +5 -4
  12. package/reference/_navigation.md +1 -0
  13. package/reference/claude-config/rules/active-change-index.md +11 -80
  14. package/reference/claude-config/rules/agent-start-here.md +11 -277
  15. package/reference/claude-config/rules/deployment.md +11 -57
  16. package/reference/claude-config/rules/error-handling.md +11 -56
  17. package/reference/claude-config/rules/execution.md +11 -40
  18. package/reference/claude-config/rules/frontend.md +11 -43
  19. package/reference/claude-config/rules/observability.md +11 -31
  20. package/reference/claude-config/rules/operations.md +11 -80
  21. package/reference/claude-config/rules/organization-model.md +7 -115
  22. package/reference/claude-config/rules/organization-os.md +8 -112
  23. package/reference/claude-config/rules/package-taxonomy.md +11 -33
  24. package/reference/claude-config/rules/platform.md +11 -42
  25. package/reference/claude-config/rules/shared-types.md +10 -48
  26. package/reference/claude-config/rules/task-tracking.md +11 -47
  27. package/reference/claude-config/rules/ui.md +11 -200
  28. package/reference/claude-config/rules/vibe.md +11 -235
  29. package/reference/claude-config/skills/om/SKILL.md +324 -0
  30. package/reference/claude-config/skills/{knowledge → om}/operations/customers.md +110 -109
  31. package/reference/claude-config/skills/{knowledge → om}/operations/features.md +77 -76
  32. package/reference/claude-config/skills/{knowledge → om}/operations/goals.md +119 -118
  33. package/reference/claude-config/skills/{knowledge → om}/operations/identity.md +94 -93
  34. package/reference/claude-config/skills/{knowledge → om}/operations/labels.md +94 -94
  35. package/reference/claude-config/skills/{knowledge → om}/operations/offerings.md +110 -109
  36. package/reference/claude-config/skills/{knowledge → om}/operations/roles.md +100 -99
  37. package/reference/claude-config/skills/{knowledge → om}/operations/techStack.md +30 -30
  38. package/reference/claude-config/skills/project/SKILL.md +1088 -1088
  39. package/reference/claude-config/skills/setup/SKILL.md +275 -275
  40. package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
  41. package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
  42. package/reference/claude-config/skills/tutorial/technical.md +1303 -1303
  43. package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
  44. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
  45. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +52 -0
  46. package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +33 -0
  47. package/reference/rules/active-change-index.md +83 -0
  48. package/reference/rules/agent-start-here.md +280 -0
  49. package/reference/rules/deployment.md +60 -0
  50. package/reference/rules/error-handling.md +59 -0
  51. package/reference/rules/execution.md +43 -0
  52. package/reference/rules/frontend.md +46 -0
  53. package/reference/rules/observability.md +34 -0
  54. package/reference/rules/operations.md +85 -0
  55. package/reference/rules/organization-model.md +119 -0
  56. package/reference/rules/organization-os.md +118 -0
  57. package/reference/rules/package-taxonomy.md +36 -0
  58. package/reference/rules/platform.md +45 -0
  59. package/reference/rules/shared-types.md +52 -0
  60. package/reference/rules/task-tracking.md +50 -0
  61. package/reference/rules/ui.md +203 -0
  62. package/reference/rules/vibe.md +238 -0
  63. package/reference/scaffold/core/organization-graph.mdx +4 -5
  64. package/reference/scaffold/core/organization-model.mdx +1 -1
  65. package/reference/scaffold/recipes/query-the-knowledge-graph.md +189 -185
  66. package/reference/scaffold/reference/contracts.md +108 -96
  67. package/reference/scaffold/reference/glossary.md +71 -69
  68. package/reference/claude-config/skills/knowledge/SKILL.md +0 -345
  69. /package/reference/claude-config/skills/{knowledge → om}/operations/codify-level-a.md +0 -0
  70. /package/reference/claude-config/skills/{knowledge → om}/operations/codify-level-b.md +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 skill body lives at `.claude/skills/knowledge/SKILL.md` (~245 lines) with 10 operations files: `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
- - `/knowledge` skill is present at `.claude/skills/knowledge/SKILL.md` with the 10 operations files under `.claude/skills/knowledge/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.
@@ -0,0 +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).
@@ -0,0 +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.
@@ -0,0 +1,83 @@
1
+ ---
2
+ description: Bridge between stable scaffold docs and higher-volatility in-progress architecture work that may override assumptions for agents working in the template
3
+ ---
4
+ <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
5
+ <!-- Regenerate: pnpm scaffold:sync -->
6
+
7
+
8
+ # Active Change Index
9
+
10
+ Use this rule to decide whether stable scaffold docs are enough, or whether you also need to load in-progress platform architecture docs from the monorepo.
11
+
12
+ > **Note:** Paths prefixed with `apps/` or `packages/` are monorepo-internal and unavailable in standalone projects. For those areas, use the stable scaffold docs under `node_modules/@elevasis/sdk/reference/scaffold/` as the primary reference. The monorepo paths are retained for contributors working within the monorepo.
13
+
14
+ ## Current Watch Areas
15
+
16
+ ### Organization OS
17
+
18
+ Use when the task touches:
19
+
20
+ - organization model semantics
21
+ - feature/provider runtime
22
+ - feature manifests or shell composition
23
+ - graph or command-view concepts
24
+ - downstream propagation of scaffold contract changes
25
+
26
+ Load:
27
+
28
+ - `apps/docs/content/docs/technical/architecture/core/organization-model/index.mdx`
29
+ - `apps/docs/content/docs/technical/architecture/core/organization-model/graph.mdx`
30
+ - `apps/docs/content/docs/technical/architecture/ui/feature-shell.mdx`
31
+ - `apps/docs/content/docs/technical/architecture/ui/composition-extensibility.mdx`
32
+
33
+ Stable scaffold docs affected:
34
+
35
+ - `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
36
+ - `.claude/rules/ui.md`
37
+ - `node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md`
38
+ - `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md`
39
+
40
+ ### Package Surface / Reference System
41
+
42
+ Use when the task touches:
43
+
44
+ - published `@elevasis/core`, `@elevasis/ui`, or `@elevasis/sdk` surfaces
45
+ - generated package maps
46
+ - contract drift between source and scaffold docs
47
+
48
+ Load:
49
+
50
+ - `packages/core/src/organization-model/README.md`
51
+ - `packages/ui/src/provider/README.md`
52
+ - `packages/ui/src/features/README.md`
53
+ - `packages/sdk/reference/_navigation.md`
54
+
55
+ Stable scaffold docs affected:
56
+
57
+ - `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
58
+
59
+ ### Resource / Topology Mapping
60
+
61
+ Use when the task touches:
62
+
63
+ - resource registration
64
+ - triggers, integrations, relationships, human checkpoints
65
+ - topology-aware navigation or impact analysis
66
+
67
+ Load:
68
+
69
+ - `operations/src/README.md`
70
+ - `operations/src/index.ts`
71
+
72
+ Stable scaffold docs affected:
73
+
74
+ - `.claude/rules/operations.md`
75
+
76
+ ## Working Rule
77
+
78
+ When a task touches one of the watch areas above:
79
+
80
+ 1. Read the stable scaffold doc.
81
+ 2. Read the listed in-progress or package-local source-of-truth docs.
82
+ 3. Prefer source and in-progress architecture docs if they disagree with scaffold prose.
83
+ 4. Flag drift instead of silently trusting the scaffold doc.
@@ -0,0 +1,280 @@
1
+ ---
2
+ description: Canonical first-read for agents entering the template scaffold -- project continuity, task-class routing, and boundary resolution
3
+ ---
4
+ <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
5
+ <!-- Regenerate: pnpm scaffold:sync -->
6
+
7
+
8
+ # Agent Start Here
9
+
10
+ Read this file first when entering a freshly scaffolded project.
11
+
12
+ ## Project Profile
13
+
14
+ Before doing anything else, check for `.claude/memory/profile.md`. It is created by `/tutorial` on first invocation and persists across sessions.
15
+
16
+ If present, read it. The file declares which onboarding **track** is active -- `vibe-coder` (non-technical user, agent does the work) or `technical` (developer, code-first) -- and ships a tone block describing how to communicate.
17
+
18
+ Apply the tone block to ALL agent output for the rest of the session, not just inside `/tutorial`:
19
+
20
+ - **vibe-coder track:** never use technical vocabulary in user-facing dialogue (workflow -> automation, deploy -> make it live, schema -> "the information your automation needs"). Tool calls are made silently -- do not narrate slash commands, file paths, or build steps. The full swap table lives in `profile.md`.
21
+ - **technical track:** code-first, current command surface, real file paths. The user reads diffs and stacktraces; do not over-explain.
22
+
23
+ If the file does not exist, the user has not run `/tutorial` yet. Proceed normally and note that running `/tutorial` would establish a project tone for future sessions.
24
+
25
+ ## First Action: Check Active Projects
26
+
27
+ Before loading any docs for a new session, check whether the user's ask resumes or relates to an in-flight client project. Project context (milestones, tasks, resume notes) is DB-canonical -- agents and CLI read/write it through the `elevasis-sdk project:*` surface.
28
+
29
+ 1. **Portfolio snapshot.** Run this first to see what is active or blocked:
30
+
31
+ ```bash
32
+ pnpm elevasis-sdk project:list --status active --pretty
33
+ pnpm elevasis-sdk project:list --status blocked --pretty
34
+ ```
35
+
36
+ 2. **Resume-style asks.** If the user says "continue", "pick up", references a client name, or names a task/milestone, resolve it via:
37
+
38
+ ```bash
39
+ pnpm elevasis-sdk project:work <query>
40
+ ```
41
+
42
+ `project:work` fuzzy-matches a project or task by name/ID and returns the current resume context -- the canonical continuity payload (current state, next steps, files modified, key docs).
43
+
44
+ 3. **Fresh non-project asks.** Only if the portfolio snapshot and the request show no overlap with active projects, fall back to the docs-index flow below. Even then, if the work will take more than a single file edit, offer to create a project first (`/project create` or `project:create`) so continuity is captured from the start.
45
+
46
+ ### Resume Context Source of Truth
47
+
48
+ `resume_context` lives in the `prj_tasks` table in the database, not in task-doc frontmatter. There is one source of truth:
49
+
50
+ - **Humans write** via the inline resume-context editor on the Project Detail page in Command Center.
51
+ - **Agents and the CLI write** via `pnpm elevasis-sdk project:task:save <task-id> --current-state ... --next-steps ... --files-modified ...`.
52
+ - **Readers** consume it via `project:work <query>` or `project:task:resume <id>`.
53
+
54
+ Do not write resume state into markdown frontmatter. Task-doc frontmatter is limited to `title`, `description`, and `status`.
55
+
56
+ ### Session-Start Dashboard
57
+
58
+ The session-start dashboard directive lives in `CLAUDE.md`. If you see it there, follow it on the first response of a session. This file (`agent-start-here` rule) is the drill-down reference layer; `CLAUDE.md` owns session bootstrap.
59
+
60
+ ## Template Surfaces
61
+
62
+ Once project continuity is resolved (or confirmed irrelevant), the template is not just an app starter. It is an agent operating environment with several distinct surfaces:
63
+
64
+ - `ui/` -- React frontend app and shell composition
65
+ - `operations/` -- Elevasis SDK resources deployed to the platform
66
+ - `core/` -- runtime-agnostic shared contracts and organization model adaptation
67
+ - `.claude/` -- local agent rules, skills, and hooks
68
+ - `client-workspace/` -- optional separate knowledge workspace for richer team knowledge management
69
+ - `node_modules/@elevasis/sdk/reference/scaffold/` -- SDK reference scaffold: canonical recipes, UI patterns, gating model, contracts, and glossary. Entry point: `index.mdx`.
70
+
71
+ ## Discovery Order
72
+
73
+ Use this order unless a more specific doc tells you otherwise:
74
+
75
+ 1. Complete the "First Action: Check Active Projects" flow above.
76
+ 2. Read `CLAUDE.md` for project rules, command surface, and navigation pointers.
77
+ 3. Read this rule and classify the task using the Task Classes below.
78
+ 4. Read `identity.clientBrief` from the OrganizationModel (`core/config/organization-model.ts`) for organization context and naming.
79
+ 5. Read the relevant structural map:
80
+ - Glob `node_modules/@elevasis/sdk/reference/` for published package surfaces
81
+ - 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
82
+ 6. For feature integration, resource authoring, or UI customization tasks, read `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` to find the canonical recipe or reference doc.
83
+ 7. Drill into the co-located local explainer for the abstraction boundary you are changing.
84
+ 8. Check the `.claude/rules/active-change-index.md` rule before trusting stable assumptions in areas that are under active architecture work.
85
+
86
+ ## SDK Reference Scaffold
87
+
88
+ Universal scaffold documentation (recipes, patterns, architecture, reference) has been centralized in the SDK reference. After `pnpm install`, the entry point is:
89
+
90
+ `node_modules/@elevasis/sdk/reference/scaffold/index.mdx`
91
+
92
+ This index links to all scaffold docs including pathway recipes, UI patterns, core architecture, and auto-generated contracts/feature registry.
93
+
94
+ For task classes that involve feature integration, resource authoring, or UI customization, start with the scaffold index rather than local docs.
95
+
96
+ ## Task Classes
97
+
98
+ Classify the request, then follow the load/inspect/verify sequence for that class.
99
+
100
+ ### 1. UI / Shell Work
101
+
102
+ Examples: add a page, change sidebar behavior, adjust feature visibility, update dashboard labels.
103
+
104
+ Load first:
105
+
106
+ - `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` (scaffold index -- UI recipes, feature flags, customization)
107
+ - `.claude/rules/ui.md`
108
+ - `ui/src/routes/README.md`
109
+ - `core/config/README.md`
110
+ - `node_modules/@elevasis/sdk/reference/scaffold/ui/recipes.md` -- specifically recipe 6 when building a "run this resource" surface
111
+ - `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-crm.md` -- when building or extending CRM pages, sidebars, hooks, workflows, or deal data surfaces
112
+ - `node_modules/@elevasis/sdk/reference/scaffold/recipes/extend-lead-gen.md` -- when building or extending lead-gen pages, sidebars, hooks, workflows, list/member state, or artifacts
113
+ - `node_modules/@elevasis/sdk/reference/scaffold/recipes/customize-crm-actions.md` -- when changing CRM deal action buttons or adding a workflow-backed deal action
114
+
115
+ Then inspect:
116
+
117
+ - `ui/src/routes/__root.tsx`
118
+ - `ui/src/config/*`
119
+ - relevant `ui/src/routes/*`
120
+ - relevant `ui/src/features/*`
121
+ - `core/config/organization-model.ts`
122
+
123
+ Verify with:
124
+
125
+ - route and manifest source
126
+ - any relevant package README from `packages/ui`
127
+
128
+ ### 2. Workflow / Agent / Operations Work
129
+
130
+ Examples: add a workflow, update an agent, change resource registration, understand deployable resources.
131
+
132
+ Load first:
133
+
134
+ - `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` (scaffold index -- workflow recipes, resource authoring)
135
+ - `.claude/rules/operations.md`
136
+ - `operations/src/README.md`
137
+
138
+ Then inspect:
139
+
140
+ - `operations/src/index.ts`
141
+ - relevant `operations/src/<feature>/*`
142
+ - `core/types/index.ts` -- workflow input/output Zod schemas
143
+ - `core/types/entities.ts` -- typed entity contracts (Project, Deal, etc.) extending `@elevasis/core/entities` base types. Read this when authoring a workflow that takes or returns these entities so the input/output schemas reference the canonical entity shapes rather than redeclaring them.
144
+ - `operations/elevasis.config.ts`
145
+
146
+ Verify with:
147
+
148
+ - 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
149
+ - local SDK guidance in `.claude/skills/elevasis/SKILL.md`
150
+
151
+ ### 3. Organization Model / Feature Access Work
152
+
153
+ Examples: rename a feature area, change quick access surfaces, map new business terms into the shell, adjust feature gating.
154
+
155
+ Load first:
156
+
157
+ - `node_modules/@elevasis/sdk/reference/scaffold/index.mdx` (scaffold index -- contracts, gating patterns, glossary)
158
+ - `core/config/README.md`
159
+ - `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
160
+ - typed feature/surface constants from `@elevasis/core/organization-model` -- `CRM_FEATURE_ID`, `LEAD_GEN_FEATURE_ID`, `PROJECTS_FEATURE_ID`, `OPERATIONS_FEATURE_ID`, `MONITORING_FEATURE_ID`, `SETTINGS_FEATURE_ID`, `SEO_FEATURE_ID`, `CRM_PIPELINE_SURFACE_ID`, `LEAD_GEN_LISTS_SURFACE_ID`, `PROJECTS_INDEX_SURFACE_ID`, `OPERATIONS_ORGANIZATION_GRAPH_SURFACE_ID`. Use these typed constants instead of magic strings when overriding feature/surface IDs.
161
+ - `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
+ - `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
+ - `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.
164
+ - `node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md`
165
+
166
+ Then inspect:
167
+
168
+ - `core/config/organization-model.ts`
169
+ - `core/config/organization-model.ts` -- Organization Model overrides plus Systems and Resources descriptors. Start here for feature labels, surface mapping, and resource identity/governance changes.
170
+ - `ui/src/routes/__root.tsx`
171
+ - `ui/src/lib/hooks/useFeatureAccess.ts`
172
+ - relevant nav config files
173
+
174
+ Verify with:
175
+
176
+ - published package docs for `@elevasis/core/organization-model`
177
+ - current scaffold routes and manifests
178
+
179
+ ### 4. Debugging / Impact Analysis
180
+
181
+ Examples: why is this automation disconnected, what does this workflow affect, what should I inspect before changing this resource.
182
+
183
+ Load first:
184
+
185
+ - `operations/src/README.md`
186
+ - `.claude/rules/active-change-index.md`
187
+ - 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
188
+ - 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`.
189
+
190
+ Then inspect:
191
+
192
+ - `operations/src/index.ts`
193
+ - resource definitions
194
+ - related UI route and feature files
195
+ - related core contracts
196
+ - pending HITL items via `elevasis-sdk queue:get <id>` before selecting or expiring an action
197
+ - recurring automation via `elevasis-sdk schedule:get <id>` before pausing, resuming, or cancelling it
198
+
199
+ Verify with:
200
+
201
+ - resource registration and relationship declarations
202
+ - generated maps
203
+ - package and source ownership boundaries
204
+ - `queue:*` or `schedule:*` CLI output when runtime state is part of the question
205
+
206
+ ### 5. Platform Extension / Package Contract Work
207
+
208
+ Examples: extend a published package contract, understand how a scaffold surface maps to `@elevasis/ui`, update a package-facing reference doc.
209
+
210
+ Load first:
211
+
212
+ - `.claude/rules/active-change-index.md`
213
+ - Glob `node_modules/@elevasis/sdk/reference/` for the current SDK package surface
214
+ - package README found via that glob
215
+
216
+ Then inspect:
217
+
218
+ - package source entrypoints
219
+ - package reference manifests
220
+ - scaffold files that consume that contract
221
+
222
+ Verify with:
223
+
224
+ - published package docs
225
+ - source exports
226
+ - scaffold consumption points
227
+
228
+ ## Boundary Resolution
229
+
230
+ Once the request is classified, determine which boundary owns the change:
231
+
232
+ - **Core boundary** -- semantics, aliases, labels, shared schemas
233
+ - **UI shell boundary** -- provider composition, manifests, navigation, route ownership
234
+ - **Operations boundary** -- deployable resource registration, workflow/agent contracts, topology
235
+ - **Package boundary** -- public exports, shared platform behavior, reusable contracts
236
+
237
+ If a task spans boundaries, start at the semantic boundary, then move to runtime composition, then to registration/deployment.
238
+
239
+ ## Main Boundaries
240
+
241
+ ### `core/config/organization-model.ts`
242
+
243
+ The semantic adaptation point between platform contracts and scaffold-local terminology. Start here for feature labels, legacy aliases, quick-access surfaces, and shell-facing organization semantics.
244
+
245
+ ### `ui/src/routes/__root.tsx`
246
+
247
+ The shell composition point. Start here for manifest mounting, provider wiring, app-local nav, and how the scaffold combines published feature surfaces with project-owned shell concerns.
248
+
249
+ ### `operations/src/index.ts`
250
+
251
+ The deployment aggregation point. Start here for what resources are registered and deployed as part of the scaffold.
252
+
253
+ ## Source of Truth
254
+
255
+ Trust these in order:
256
+
257
+ 1. Source code and published package docs
258
+ 2. Co-located boundary docs
259
+ 3. Generated structural maps
260
+ 4. Hand-authored template guidance
261
+ 5. In-progress architecture docs when `.claude/rules/active-change-index.md` says the area is actively evolving
262
+
263
+ If a hand-authored doc conflicts with source or published package docs, trust source and flag the doc drift.
264
+
265
+ ## Common Traps
266
+
267
+ - Do not assume feature directories are exhaustive without also checking `operations/src/index.ts` and `core/config/organization-model.ts` directly.
268
+ - Do not assume placeholder knowledge is sufficient for real client context. Read `identity.clientBrief` from the OrganizationModel (`core/config/organization-model.ts`).
269
+ - Do not trust stable docs blindly when `.claude/rules/active-change-index.md` flags related in-progress architecture work.
270
+ - 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
+
272
+ ## Operations-Only Projects
273
+
274
+ 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.
275
+
276
+ **What applies:** Only Task Classes 2 (Workflow / Agent / Operations Work) and 4 (Debugging / Impact Analysis) apply to operations-only projects. Task Classes 1 (UI / Shell Work), 3 (Organization Model / Feature Access Work), and 5 (Platform Extension / Package Contract Work) do not apply and can be skipped.
277
+
278
+ **Primary entrypoint:** For operations-only projects, the project's own `CLAUDE.md` and its Navigation table are the canonical first-read. This rule provides task-routing context but its full surface map is irrelevant for that project type.
279
+
280
+ **Signal:** The `CLAUDE.md` of an operations-only project includes `Project type: operations-only` in its `## Project` section. When you see this signal, skip all template surfaces that don't exist and go directly to the operations task class.