@elevasis/sdk 1.44.3 → 1.46.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 (259) hide show
  1. package/dist/cli.cjs +35026 -30226
  2. package/dist/index.d.ts +1786 -808
  3. package/dist/index.js +789 -739
  4. package/dist/node/index.d.ts +105 -181
  5. package/dist/node/index.js +2 -2
  6. package/dist/test-utils/index.d.ts +901 -359
  7. package/dist/test-utils/index.js +587 -824
  8. package/dist/worker/index.d.ts +12685 -0
  9. package/dist/worker/index.js +188 -216
  10. package/package.json +4 -7
  11. package/reference/_navigation.md +161 -22
  12. package/reference/_reference-manifest.json +228 -4
  13. package/reference/claude-config.md +8 -0
  14. package/reference/core/exports.mdx +2 -0
  15. package/reference/core/index.mdx +3 -3
  16. package/reference/examples/organization-model.ts +117 -111
  17. package/reference/index.mdx +4 -4
  18. package/reference/packages/core/src/business/README.md +4 -1
  19. package/reference/packages/core/src/content/README.md +19 -0
  20. package/reference/packages/core/src/organization-model/README.md +148 -149
  21. package/reference/packages/core/src/organization-model/readiness/README.md +42 -0
  22. package/reference/packages/ui/src/features/README.md +28 -28
  23. package/reference/rules/active-change-index.md +40 -54
  24. package/reference/rules/agent-runtime.md +81 -0
  25. package/reference/rules/agent-start-here.md +71 -163
  26. package/reference/rules/deployment.md +33 -10
  27. package/reference/rules/error-handling.md +26 -0
  28. package/reference/rules/execution.md +13 -0
  29. package/reference/rules/frontend.md +10 -3
  30. package/reference/rules/observability.md +9 -1
  31. package/reference/rules/operations.md +26 -17
  32. package/reference/rules/organization-model.md +74 -88
  33. package/reference/rules/organization-os.md +71 -88
  34. package/reference/rules/package-taxonomy.md +11 -2
  35. package/reference/rules/platform.md +13 -7
  36. package/reference/rules/shared-types.md +36 -0
  37. package/reference/rules/task-tracking.md +30 -5
  38. package/reference/rules/ui.md +145 -3
  39. package/reference/rules/vibe-intents.md +271 -0
  40. package/reference/rules/vibe.md +17 -243
  41. package/reference/scaffold/core/organization-graph.mdx +112 -99
  42. package/reference/scaffold/core/organization-model.mdx +231 -215
  43. package/reference/scaffold/operations/propagation-pipeline.md +16 -17
  44. package/reference/scaffold/operations/scaffold-maintenance.md +22 -20
  45. package/reference/scaffold/operations/workflow-recipes.md +72 -20
  46. package/reference/scaffold/recipes/add-a-feature.md +156 -146
  47. package/reference/scaffold/recipes/add-a-resource.md +123 -117
  48. package/reference/scaffold/recipes/customize-crm-actions.md +28 -13
  49. package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
  50. package/reference/scaffold/recipes/customize-organization-model.md +161 -149
  51. package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
  52. package/reference/scaffold/recipes/extend-content.md +265 -0
  53. package/reference/scaffold/recipes/extend-crm.md +16 -11
  54. package/reference/scaffold/recipes/extend-lead-gen.md +37 -21
  55. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
  56. package/reference/scaffold/recipes/index.md +6 -3
  57. package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
  58. package/reference/scaffold/reference/contracts.md +30 -56
  59. package/reference/scaffold/reference/feature-registry.md +3 -0
  60. package/reference/scaffold/reference/glossary.md +4 -4
  61. package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
  62. package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
  63. package/reference/scaffold/ui/customization.md +2 -2
  64. package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
  65. package/reference/scaffold/ui/feature-shell.mdx +277 -62
  66. package/reference/scaffold/ui/recipes.md +229 -197
  67. package/reference/sdk/cli-management.mdx +166 -33
  68. package/reference/sdk/cli.mdx +90 -13
  69. package/reference/sdk/concepts.mdx +2 -0
  70. package/reference/sdk/define-builders.mdx +76 -0
  71. package/reference/sdk/deployment/command-center.mdx +6 -2
  72. package/reference/sdk/deployment/execution-reference.mdx +64 -186
  73. package/reference/sdk/deployment/index.mdx +2 -0
  74. package/reference/sdk/exports.mdx +4 -4
  75. package/reference/sdk/framework/agent.mdx +52 -116
  76. package/reference/sdk/framework/index.mdx +46 -65
  77. package/reference/sdk/framework/project-structure.mdx +150 -205
  78. package/reference/sdk/framework/tutorial-system.mdx +2 -2
  79. package/reference/sdk/human-in-the-loop.mdx +152 -0
  80. package/reference/sdk/index.mdx +6 -7
  81. package/reference/sdk/platform-tools/adapters-platform.mdx +3 -1
  82. package/reference/sdk/platform-tools/index.mdx +12 -0
  83. package/reference/sdk/platform-tools/type-safety.mdx +4 -0
  84. package/reference/sdk/project-deployment-spec.mdx +131 -0
  85. package/reference/sdk/resources/index.mdx +21 -7
  86. package/reference/sdk/resources/patterns.mdx +54 -24
  87. package/reference/sdk/resources/types.mdx +7 -4
  88. package/reference/sdk/templates/data-enrichment.mdx +7 -3
  89. package/reference/sdk/templates/email-sender.mdx +139 -135
  90. package/reference/sdk/templates/lead-scorer.mdx +5 -1
  91. package/reference/sdk/templates/pdf-generator.mdx +155 -151
  92. package/reference/sdk/templates/recurring-job.mdx +195 -189
  93. package/reference/sdk/templates/text-classifier.mdx +4 -0
  94. package/reference/sdk/templates/web-scraper.mdx +139 -135
  95. package/reference/spine/spine-primer.md +135 -96
  96. package/reference/ui/exports.mdx +1 -0
  97. package/reference/ui/index.mdx +14 -7
  98. package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
  99. package/dist/types/worker/adapters/apify.d.ts +0 -14
  100. package/dist/types/worker/adapters/approval.d.ts +0 -23
  101. package/dist/types/worker/adapters/attio.d.ts +0 -22
  102. package/dist/types/worker/adapters/clickup.d.ts +0 -22
  103. package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
  104. package/dist/types/worker/adapters/crm.d.ts +0 -20
  105. package/dist/types/worker/adapters/dropbox.d.ts +0 -14
  106. package/dist/types/worker/adapters/email.d.ts +0 -25
  107. package/dist/types/worker/adapters/execution.d.ts +0 -22
  108. package/dist/types/worker/adapters/gmail.d.ts +0 -14
  109. package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
  110. package/dist/types/worker/adapters/index.d.ts +0 -33
  111. package/dist/types/worker/adapters/instantly.d.ts +0 -14
  112. package/dist/types/worker/adapters/lead.d.ts +0 -28
  113. package/dist/types/worker/adapters/list.d.ts +0 -9
  114. package/dist/types/worker/adapters/llm.d.ts +0 -45
  115. package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
  116. package/dist/types/worker/adapters/notification.d.ts +0 -28
  117. package/dist/types/worker/adapters/pdf.d.ts +0 -22
  118. package/dist/types/worker/adapters/projects.d.ts +0 -20
  119. package/dist/types/worker/adapters/resend.d.ts +0 -14
  120. package/dist/types/worker/adapters/scheduler.d.ts +0 -25
  121. package/dist/types/worker/adapters/signature-api.d.ts +0 -14
  122. package/dist/types/worker/adapters/storage.d.ts +0 -33
  123. package/dist/types/worker/adapters/stripe.d.ts +0 -14
  124. package/dist/types/worker/adapters/tomba.d.ts +0 -14
  125. package/dist/types/worker/index.d.ts +0 -60
  126. package/dist/types/worker/platform.d.ts +0 -90
  127. package/dist/types/worker/utils.d.ts +0 -9
  128. package/reference/claude-config/Overview.md +0 -230
  129. package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
  130. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
  131. package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
  132. package/reference/claude-config/registries/graph-skills.json +0 -4
  133. package/reference/claude-config/registries/knowledge-flags.json +0 -154
  134. package/reference/claude-config/registries/skill-coverage.json +0 -20
  135. package/reference/claude-config/rules/active-change-index.md +0 -22
  136. package/reference/claude-config/rules/agent-start-here.md +0 -22
  137. package/reference/claude-config/rules/deployment.md +0 -22
  138. package/reference/claude-config/rules/error-handling.md +0 -22
  139. package/reference/claude-config/rules/execution.md +0 -22
  140. package/reference/claude-config/rules/frontend.md +0 -22
  141. package/reference/claude-config/rules/observability.md +0 -22
  142. package/reference/claude-config/rules/operations.md +0 -22
  143. package/reference/claude-config/rules/organization-model.md +0 -22
  144. package/reference/claude-config/rules/organization-os.md +0 -22
  145. package/reference/claude-config/rules/package-taxonomy.md +0 -22
  146. package/reference/claude-config/rules/platform.md +0 -22
  147. package/reference/claude-config/rules/shared-types.md +0 -22
  148. package/reference/claude-config/rules/task-tracking.md +0 -22
  149. package/reference/claude-config/rules/topbar-actions.md +0 -70
  150. package/reference/claude-config/rules/ui.md +0 -22
  151. package/reference/claude-config/rules/vibe.md +0 -22
  152. package/reference/claude-config/scripts/statusline-command.js +0 -18
  153. package/reference/claude-config/settings.json +0 -30
  154. package/reference/claude-config/skills/client/SKILL.md +0 -201
  155. package/reference/claude-config/skills/deploy/SKILL.md +0 -159
  156. package/reference/claude-config/skills/dsp/SKILL.md +0 -66
  157. package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
  158. package/reference/claude-config/skills/explore/SKILL.md +0 -78
  159. package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
  160. package/reference/claude-config/skills/om/SKILL.md +0 -475
  161. package/reference/claude-config/skills/om/operations/build.md +0 -237
  162. package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
  163. package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
  164. package/reference/claude-config/skills/om/operations/customers.md +0 -114
  165. package/reference/claude-config/skills/om/operations/features.md +0 -88
  166. package/reference/claude-config/skills/om/operations/goals.md +0 -123
  167. package/reference/claude-config/skills/om/operations/identity.md +0 -97
  168. package/reference/claude-config/skills/om/operations/labels.md +0 -110
  169. package/reference/claude-config/skills/om/operations/offerings.md +0 -114
  170. package/reference/claude-config/skills/om/operations/roles.md +0 -104
  171. package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
  172. package/reference/claude-config/skills/om/operations/techStack.md +0 -38
  173. package/reference/claude-config/skills/project/SKILL.md +0 -1114
  174. package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
  175. package/reference/claude-config/skills/save/SKILL.md +0 -183
  176. package/reference/claude-config/skills/setup/SKILL.md +0 -290
  177. package/reference/claude-config/skills/status/SKILL.md +0 -59
  178. package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
  179. package/reference/claude-config/skills/sync/SKILL.md +0 -47
  180. package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
  181. package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
  182. package/reference/claude-config/skills/tutorial/technical.md +0 -1303
  183. package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
  184. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
  185. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
  186. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
  187. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
  188. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
  189. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
  190. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
  191. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
  192. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
  193. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
  194. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
  195. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
  196. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
  197. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
  198. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
  199. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
  200. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
  201. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
  202. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
  203. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
  204. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
  205. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
  206. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
  207. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
  208. package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
  209. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
  210. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
  211. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
  212. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
  213. package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
  214. package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
  215. package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
  216. package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
  217. package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
  218. package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
  219. package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
  220. package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
  221. package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
  222. package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
  223. package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
  224. package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
  225. package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
  226. package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
  227. package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
  228. package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
  229. package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
  230. package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
  231. package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
  232. package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
  233. package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
  234. package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
  235. package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
  236. package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
  237. package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
  238. package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
  239. package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
  240. package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
  241. package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
  242. package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
  243. package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
  244. package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
  245. package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
  246. package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
  247. package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
  248. package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
  249. package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
  250. package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
  251. package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
  252. package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
  253. package/reference/claude-config/sync-notes/2026-08-03-agent-prose-escape-normalization.md +0 -88
  254. package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
  255. package/reference/claude-config/sync-notes/README.md +0 -43
  256. package/reference/sdk/framework/interaction-guidance.mdx +0 -182
  257. package/reference/sdk/framework/memory.mdx +0 -326
  258. package/reference/sdk/framework/resource-documentation.mdx +0 -90
  259. package/reference/sdk/roadmap.mdx +0 -164
@@ -290,227 +290,105 @@ The SDK CLI wraps all execution endpoints. Use these commands instead of calling
290
290
 
291
291
  ## UI Execution
292
292
 
293
- `@elevasis/ui` ships a set of components and hooks that let your custom React pages trigger workflow and agent executions without wiring up API calls manually. This section is for template users building interactive resource pages in `external/_template` who want to add Run buttons, input forms, and execution result displays.
293
+ `@elevasis/ui` ships components and hooks that let your custom React pages trigger workflow and agent executions without wiring up API calls manually. This section is for template users building interactive resource pages who want to add Run buttons, input forms, and execution result displays.
294
294
 
295
- The API comes in three tiers: a convenience one-tag component that handles everything, a controlled form primitive for custom modal chrome, and low-level hooks for fully custom rendering. Most template pages need only the first tier.
295
+ Two published pieces cover triggering: `useExecuteAsync` (the mutation) and `ExecuteWorkflowModal` (the modal chrome). You supply the input UI -- there is no built-in form renderer. `@elevasis/ui/features/operations` also publishes ready-made panels (`ExecutionPanel`, `WorkflowExecutionPanel`, `AgentExecutionPanel`) for when you want an execution history view rather than a trigger.
296
296
 
297
- ### Quick Start -- `ResourceExecuteDialog`
297
+ ### `useExecuteAsync`
298
298
 
299
- `ResourceExecuteDialog` combines a modal shell, an input form, mutation state, and result display into a single component. Drop it next to a Button and you have a working Run dialog in about fifteen lines.
299
+ `useExecuteAsync()` is a TanStack Query mutation that POSTs to the execution engine and resolves to `{ executionId, status, resourceId }`.
300
300
 
301
301
  ```tsx
302
- import { useState } from 'react'
303
- import { Button } from '@mantine/core'
304
- import { ResourceExecuteDialog } from '@elevasis/ui/features/operations'
305
- import { useNavigate } from '@tanstack/react-router'
306
-
307
- const resource = {
308
- resourceId: 'qualify-lead-workflow',
309
- resourceType: 'workflow' as const,
310
- name: 'Qualify Lead',
311
- formSchema: {
312
- fields: [
313
- { name: 'email', label: 'Lead email', type: 'text', required: true },
314
- { name: 'company', label: 'Company', type: 'text', required: false },
315
- ],
316
- },
317
- }
318
-
319
- export function QualifyLeadPage() {
320
- const [opened, setOpened] = useState(false)
321
- const navigate = useNavigate()
302
+ import { useExecuteAsync } from '@elevasis/ui/hooks'
322
303
 
323
- return (
324
- <>
325
- <Button onClick={() => setOpened(true)}>Run</Button>
304
+ const { mutateAsync, mutate, isPending, error, data, reset } = useExecuteAsync()
326
305
 
327
- <ResourceExecuteDialog
328
- opened={opened}
329
- onClose={() => setOpened(false)}
330
- resource={resource}
331
- onViewExecution={(executionId) =>
332
- navigate({ to: '/logs/$executionId', params: { executionId } })
333
- }
334
- />
335
- </>
336
- )
337
- }
306
+ await mutateAsync({
307
+ resourceId: 'qualify-lead-workflow',
308
+ resourceType: 'workflow',
309
+ input: { email: 'lead@example.com' }
310
+ })
338
311
  ```
339
312
 
340
- What the user sees when they click Run:
341
-
342
- - A modal opens titled "Run workflow" with the resource ID displayed.
343
- - The form renders one field per entry in `formSchema.fields`. Required fields show validation errors on submit.
344
- - On submit, a loading overlay appears while the POST is in flight.
345
- - On success, a teal confirmation card shows the execution ID. A "View execution" button calls `onViewExecution` with that ID.
346
- - On error, a red alert shows the error message with a "Try again" option.
313
+ `ExecuteAsyncParams`:
347
314
 
348
- If `formSchema` is omitted or has no fields, the form skips to a single "Run" button with the message "This workflow takes no input."
315
+ | Field | Type | Notes |
316
+ | -------------- | -------------- | -------------------------------------------------------- |
317
+ | `resourceId` | `string` | Deployed resource ID |
318
+ | `resourceType` | `ResourceType` | `'workflow'` or `'agent'` |
319
+ | `input` | `unknown` | Passed through to the resource's input schema |
320
+ | `listId` | `string` | Optional; also attaches the execution to a lead-gen list |
349
321
 
350
- ### The Three-Tier API
322
+ On success it invalidates the executions list query keyed by organization plus `resourceId`, so any `useExecutions` query on the page refreshes automatically.
351
323
 
352
- | Tier | Component / Hook | Use case |
353
- | --------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------- |
354
- | Convenience | `ResourceExecuteDialog` | One-tag Run button + modal + form. Parent only manages `opened` state. |
355
- | Controlled form | `ResourceExecuteForm` | Custom modal chrome; parent owns the mutation and decides where to show results. |
356
- | Low-level | `ExecuteWorkflowModal` + `useExecuteAsync` | Fully custom rendering, non-standard modal behavior, or composing execution into a larger flow. |
324
+ ### `ExecuteWorkflowModal`
357
325
 
358
- Start with `ResourceExecuteDialog`. Move down the tiers only when you need something the convenience component cannot do.
359
-
360
- ### Controlled Usage with `ResourceExecuteForm`
361
-
362
- Use `ResourceExecuteForm` when you want to own the modal or display the result somewhere outside the dialog -- for example, rendering the execution ID inline on the page after submission.
363
-
364
- `ResourceExecuteForm` accepts `onSubmit` and `isPending` from the parent. The parent calls `useExecuteAsync()` directly and passes `mutateAsync` as the submit handler.
326
+ `ExecuteWorkflowModal` is a Mantine Modal pre-wired with a loading overlay, a success card (execution ID plus a "View execution" button), and an error alert. Pass your input UI as `children`.
365
327
 
366
328
  ```tsx
367
329
  import { useState } from 'react'
368
- import { Modal, Button, Text } from '@mantine/core'
369
- import { ResourceExecuteForm } from '@elevasis/ui/features/operations'
330
+ import { Button, TextInput } from '@mantine/core'
331
+ import { ExecuteWorkflowModal } from '@elevasis/ui/features/operations'
370
332
  import { useExecuteAsync } from '@elevasis/ui/hooks'
333
+ import { useNavigate } from '@tanstack/react-router'
371
334
 
372
- const formSchema = {
373
- fields: [
374
- { name: 'topic', label: 'Topic', type: 'text', required: true },
375
- ],
376
- }
377
-
378
- export function CustomRunPanel() {
335
+ export function QualifyLeadPage() {
379
336
  const [opened, setOpened] = useState(false)
380
- const mutation = useExecuteAsync()
381
-
382
- const handleSubmit = async (input: Record<string, unknown>) => {
383
- await mutation.mutateAsync({
384
- resourceId: 'research-agent',
385
- resourceType: 'agent',
386
- input,
387
- })
388
- }
337
+ const [email, setEmail] = useState('')
338
+ const navigate = useNavigate()
339
+ const { mutateAsync, isPending, error, data, reset } = useExecuteAsync()
389
340
 
390
341
  return (
391
342
  <>
392
- <Button onClick={() => setOpened(true)}>Run agent</Button>
393
-
394
- {mutation.data && (
395
- <Text size="sm">Started: {mutation.data.executionId}</Text>
396
- )}
397
-
398
- <Modal opened={opened} onClose={() => setOpened(false)} title="Run research agent">
399
- <ResourceExecuteForm
400
- formSchema={formSchema}
401
- onSubmit={handleSubmit}
402
- isPending={mutation.isPending}
403
- disabled={mutation.isPending}
404
- submitLabel="Start research"
405
- />
406
- </Modal>
343
+ <Button onClick={() => setOpened(true)}>Run</Button>
344
+
345
+ <ExecuteWorkflowModal
346
+ opened={opened}
347
+ onClose={() => setOpened(false)}
348
+ resource={{ resourceId: 'qualify-lead-workflow', resourceType: 'workflow', name: 'Qualify Lead' }}
349
+ isPending={isPending}
350
+ error={error}
351
+ result={data ?? null}
352
+ onReset={reset}
353
+ onViewExecution={(executionId) => navigate({ to: '/logs/$executionId', params: { executionId } })}
354
+ >
355
+ <TextInput label="Lead email" value={email} onChange={(e) => setEmail(e.currentTarget.value)} />
356
+ <Button
357
+ mt="md"
358
+ loading={isPending}
359
+ onClick={() => mutateAsync({ resourceId: 'qualify-lead-workflow', resourceType: 'workflow', input: { email } })}
360
+ >
361
+ Run
362
+ </Button>
363
+ </ExecuteWorkflowModal>
407
364
  </>
408
365
  )
409
366
  }
410
367
  ```
411
368
 
412
- `ResourceExecuteForm` props:
413
-
414
- | Prop | Type | Default | Notes |
415
- | ------------- | ------------------------------------ | -------- | ------------------------------------ |
416
- | `formSchema` | `SerializedExecutionFormSchema` | required | Drives field rendering |
417
- | `onSubmit` | `(input) => void | Promise<void>` | required | Called with mapped field values |
418
- | `isPending` | `boolean` | `false` | Shows loading state on submit button |
419
- | `disabled` | `boolean` | `false` | Disables all fields and button |
420
- | `submitLabel` | `string` | `'Run'` | Button label when not pending |
421
-
422
- ### Low-Level: Hooks and `ExecuteWorkflowModal`
423
-
424
- For complete rendering control, use `useExecuteAsync` and `ExecuteWorkflowModal` independently. `ExecuteWorkflowModal` is a Mantine Modal pre-wired with a loading overlay, a success card (execution ID + "View execution" button), and an error alert. You pass `children` for the input area.
425
-
426
- ```tsx
427
- import { ExecuteWorkflowModal } from '@elevasis/ui/features/operations'
428
- import { useExecuteAsync } from '@elevasis/ui/hooks'
369
+ `ExecuteWorkflowModalProps`:
429
370
 
430
- const { mutateAsync, isPending, error, data, reset } = useExecuteAsync()
431
-
432
- <ExecuteWorkflowModal
433
- opened={opened}
434
- onClose={() => setOpened(false)}
435
- resource={{ resourceId: 'my-workflow', resourceType: 'workflow', name: 'My Workflow' }}
436
- isPending={isPending}
437
- error={error}
438
- result={data ?? null}
439
- onViewExecution={handleViewExecution}
440
- onReset={reset}
441
- >
442
- {/* your custom form or content here */}
443
- </ExecuteWorkflowModal>
444
- ```
371
+ | Prop | Type | Default | Notes |
372
+ | ----------------- | ------------------------------- | -------- | ---------------------------------------------------- |
373
+ | `opened` | `boolean` | required | Modal visibility |
374
+ | `onClose` | `() => void` | required | Ignored while `isPending` |
375
+ | `resource` | `ExecuteWorkflowModalResource` | required | `{ resourceId, resourceType, name? }` |
376
+ | `isPending` | `boolean` | `false` | Shows the loading overlay and locks dismissal |
377
+ | `error` | `Error | null` | -- | Renders the error alert |
378
+ | `result` | `ExecuteAsyncResult | null` | -- | Renders the success card |
379
+ | `onViewExecution` | `(executionId: string) => void` | -- | Adds the "View execution" button to the success card |
380
+ | `onReset` | `() => void` | -- | Backs the "Try again" action |
381
+ | `children` | `ReactNode` | -- | Your input UI |
445
382
 
446
383
  The modal locks close interactions (click-outside, Escape, close button) while `isPending` is true, preventing accidental dismissal mid-execution.
447
384
 
448
- Source: `packages/ui/src/features/operations/executions/ExecuteWorkflowModal.tsx`, `packages/ui/src/hooks/executions/useExecuteAsync.ts`
449
-
450
- ### Zod-Validated Execution with `useExecuteWorkflow`
451
-
452
- `useExecuteWorkflow` wraps `useExecuteAsync` with a Zod parse step before the POST. Use it when you are constructing input programmatically (not from a form) and want to catch schema mismatches before they reach the API.
453
-
454
- ```tsx
455
- import { z } from 'zod'
456
- import { useExecuteWorkflow } from '@elevasis/ui/hooks'
457
-
458
- const inputSchema = z.object({
459
- email: z.string().email(),
460
- score: z.number().min(0).max(100),
461
- })
462
-
463
- function useScoredExecution() {
464
- return useExecuteWorkflow({ schema: inputSchema })
465
- }
466
-
467
- // In a component:
468
- const { execute, isPending, data, error } = useScoredExecution()
469
-
470
- await execute({
471
- resourceId: 'score-lead-workflow',
472
- resourceType: 'workflow',
473
- input: { email: 'lead@example.com', score: 72 },
474
- })
475
- ```
476
-
477
- If `input` fails the Zod parse, `execute` throws synchronously with the message `"Invalid workflow input: ..."` before making any network request. The `mutation` object on the return value is the underlying `useExecuteAsync` mutation, giving you full TanStack Query state if needed.
478
-
479
- Prefer `useExecuteWorkflow` over raw `useExecuteAsync` when:
480
-
481
- - Input is assembled from multiple sources (not a single form submit).
482
- - You want TypeScript inference on the input shape via `z.infer`.
483
- - You want a clear validation error message rather than a 400 from the API.
484
-
485
- Source: `packages/ui/src/hooks/executions/useExecuteWorkflow.ts`
486
-
487
- ### Input Forms
488
-
489
- `ResourceExecuteDialog` and `ResourceExecuteForm` auto-render form fields from `formSchema.fields`. Each field is a `SerializedFormField` with at minimum `name`, `label`, and `type`.
490
-
491
- Supported field types:
492
-
493
- - `text` -- single-line text input
494
- - `textarea` -- multi-line text input
495
- - `number` -- numeric input
496
- - `select` -- dropdown with `options` array
497
- - `checkbox` -- boolean toggle; defaults to `false`
498
- - `radio` -- radio group with `options` array
499
- - `richtext` -- rich text editor
500
-
501
- Required fields (`required: true`) are validated on submit. Custom field-to-input-key remapping is supported via `formSchema.fieldMappings` -- a `Record<string, string>` that renames field values before they are passed to `onSubmit`.
502
-
503
- If `formSchema` is undefined, an empty object, or has `fields: []`, the form skips rendering fields entirely and shows "This workflow takes no input." with a single Run button.
504
-
505
385
  ### Error and Result Handling
506
386
 
507
- Mutation state flows automatically into the modal chrome when using `ResourceExecuteDialog` or `ExecuteWorkflowModal`:
387
+ Mutation state flows into the modal chrome automatically:
508
388
 
509
389
  - **Success** -- a teal alert card displays the execution ID from `result.executionId`. If `onViewExecution` is provided, a "View execution" button calls it with the ID. This is the recommended way to deep-link to the Execution Logs page.
510
- - **Error** -- a red alert displays `error.message`. A "Try again" button calls `onReset`, which clears the mutation state and re-shows the form.
511
- - **Pending** -- a blur overlay covers the form area while the POST is in flight. The modal cannot be dismissed during this state.
512
-
513
- `useExecuteAsync` also invalidates the executions list query on success (keyed by `organizationId` + `resourceId`), so any `useExecutions` query on the page refreshes automatically.
390
+ - **Error** -- a red alert displays `error.message`. A "Try again" button calls `onReset`, which clears the mutation state and re-shows the children.
391
+ - **Pending** -- a blur overlay covers the content area while the POST is in flight. The modal cannot be dismissed during this state.
514
392
 
515
393
  ---
516
394
 
@@ -248,6 +248,8 @@ Host apps still own TanStack route registration, topbar behavior, branding, auth
248
248
 
249
249
  Manifest `systemId` values must match Organization Model System IDs. Sidebar placement is authored in the Organization Model navigation domain:
250
250
 
251
+ {/* doc-snippet:skip: illustrative excerpt, not a standalone compilable file */}
252
+
251
253
  ```ts
252
254
  systems: {
253
255
  dashboard: { id: 'dashboard', order: 10, label: 'Dashboard', lifecycle: 'active' },
@@ -8,7 +8,7 @@ description: "Auto-generated catalog of all published @elevasis/sdk subpath expo
8
8
 
9
9
  | Import | Title | Group | Description |
10
10
  | --- | --- | --- | --- |
11
- | `@elevasis/sdk` | SDK | Getting Started | Root SDK types, config, runtime errors, and registry surface. |
12
- | `@elevasis/sdk/worker` | Worker Runtime | Runtime | Worker runtime entrypoint, adapters, and platform execution surface. |
13
- | `@elevasis/sdk/test-utils` | Test Utils | Testing | Workflow runner, registry assertion, and typed adapter mocks for SDK consumers. |
14
- | `@elevasis/sdk/node` | Node Build Tooling | Tooling | Node-only build helpers: knowledge codegen and other fs/path/process utilities. Not browser-safe. |
11
+ | `@elevasis/sdk` | SDK | Getting Started | |
12
+ | `@elevasis/sdk/worker` | Worker Runtime | Runtime | |
13
+ | `@elevasis/sdk/test-utils` | Test Utils | Testing | |
14
+ | `@elevasis/sdk/node` | Node Build Tooling | Tooling | |
@@ -1,156 +1,92 @@
1
1
  ---
2
2
  title: Agent System
3
- description: CLAUDE.md drives all agent behavior -- project instructions, slash commands, memory-based developer profile, and three-tier adaptive guidance
3
+ description: The template's skill layer, the always-on ambient vibe classifier, the rules layer, and how project continuity is tracked through the elevasis-sdk project CLI, not files
4
4
  loadWhen: "Configuring agent behavior or capabilities"
5
5
  ---
6
6
 
7
- The agent system is the set of files that shape how Claude Code behaves in your SDK project. It consists of four parts: `CLAUDE.md` (the instruction file), slash commands (structured task entry points), the developer profile stored in `memory/profile/`, and the adaptive guidance rules that translate profile data into concrete agent behavior.
7
+ The agent system is the set of files that shape how Claude Code behaves in your SDK project. It consists of three parts: the skill layer (`.claude/skills/`, slash-command entry points), the rules layer (path-scoped operating context, mostly bundled with the installed `@elevasis/sdk` package), and the ambient vibe layer (an always-on natural-language intent classifier). `CLAUDE.md` carries only project identity and preferences -- session bootstrap belongs to the rules layer, not to `CLAUDE.md`.
8
8
 
9
9
  Nothing here requires configuration. The agent reads these files at session start and adapts automatically.
10
10
 
11
- ## CLAUDE.md
11
+ ## CLAUDE.md and Overview.md
12
12
 
13
- `CLAUDE.md` is the project instruction file for Claude Code. It is read at the start of every session and governs all agent behavior. In an Elevasis SDK project, it lives at the project root.
13
+ `CLAUDE.md` is project-owned and never overwritten by sync. It routes the agent to `agent-start-here.md` for session bootstrap, points to `.claude/Overview.md` for the full skill/rule/command surface, and carries two project-specific sections: **Client Context** and **User Preferences**. These are populated by `/setup` during first-time bootstrap and are not re-written on subsequent runs.
14
14
 
15
- The file is instruction-driven by design. Non-technical developers should never need to edit it. When the agent learns a new rule worth preserving -- such as an error pattern that recurs three times -- it promotes that rule into `CLAUDE.md` automatically.
15
+ `.claude/Overview.md` is template-owned and replaced on every `/git-sync`. It is the authoritative routing map: skill inventory, rule inventory, project structure, stack table, and command reference. When a user asks what skills or commands are available, the agent reads this file (or runs `elevasis-sdk cli` for live capability) rather than answering from memory.
16
16
 
17
- ### Sections
17
+ `OPERATIONS.md` and `CONNECTIONS.md` are also project-owned and never overwritten. `OPERATIONS.md` records tenant-specific operational quirks that override generic guidance -- for example, whether this tenant even has a working dev deploy target. `CONNECTIONS.md` records production wiring values (URLs, IDs, non-secret connection facts).
18
18
 
19
- The generated `CLAUDE.md` contains these sections:
19
+ ### Session Bootstrap
20
20
 
21
- - **Session Initialization** -- Checks the `<!-- initialized: false -->` auto-init flag; if false, runs `/meta init` automatically. Otherwise reads `memory/profile/skills.md` for adaptive behavior, reads `memory/index.md` for project context, checks if the template version is current, and suggests `/tutorial` for users with no Platform Navigation experience.
22
- - **Identity** -- Project orientation: what an Elevasis SDK project is, the developer's role, and how to adapt to non-technical users.
23
- - **Navigation** -- A table mapping concepts to file paths with load conditions (when to load each file). Includes SDK reference docs, credential model, error history, `docs/project-map.mdx`, and `docs/priorities.mdx`.
24
- - **Rules** -- Points to auto-loaded rule files in `.claude/rules/`. SDK patterns load automatically; project-specific patterns live in `workspace-patterns.md`. Includes error handling protocol.
25
- - **Interaction Guidance** -- Per-dimension behavior rules derived from `memory/profile/skills.md`. Covers vocabulary, code completeness, explanation depth, and growth logging.
26
- - **Commands** -- Table of the 4 slash commands (`/meta`, `/docs`, `/work`, `/tutorial`) with one-line purpose descriptions.
27
- - **Skills** -- Auto-trigger conditions for the `creds` skill.
28
- - **Maintaining Memory** -- Hierarchical structure, pruning rules, and what belongs in memory vs. `docs/` vs. `.claude/rules/`.
21
+ `.claude/rules/agent-start-here.md` is a thin pointer to the canonical rule body bundled with the installed SDK: `operations/node_modules/@elevasis/sdk/reference/rules/agent-start-here.md`. It is always-loaded and owns session bootstrap. The invariants it establishes:
29
22
 
30
- ### Session Initialization
23
+ - **Project context is DB-canonical.** Milestones, tasks, and resume notes are read and written only through `elevasis-sdk project:*` -- never through files. A session opens with `project:list --status active --pretty`, then `--status blocked`, and resolves "continue" or "pick up" requests with `project:work <query>`.
24
+ - **`OPERATIONS.md` outranks generic guidance.** Trust order: tenant `OPERATIONS.md`, then source and published package docs, then co-located boundary docs, then generated maps, then hand-authored template guidance.
25
+ - **Never answer "what can you do" from memory.** Skill inventory is `.claude/Overview.md`; live CLI capability is `elevasis-sdk cli`.
26
+ - **A missing `ui/` or `core/config/organization-model.ts` is not broken scaffolding.** Operations-only projects legitimately have neither.
31
27
 
32
- At the start of every session the agent runs these steps silently before responding:
28
+ There is no `<!-- initialized: false -->` flag and no `/meta init` flow in the current template. First-time bootstrap is the `/setup` skill (see below), which hands off to `/om` for organization-model configuration.
33
29
 
34
- 0. Check the `<!-- initialized: ... -->` flag at the top of `CLAUDE.md`. If `false`, run the `/meta init` flow automatically. If `true`, proceed with steps below.
35
- 1. Read `.claude/memory/profile/skills.md` -- adapt all responses to the user's assessed skill levels (see Interaction Guidance below).
36
- 2. Read `.claude/memory/index.md` if it exists -- drill into relevant topic files as needed, balancing context relevance against token usage.
37
- 3. Check the installed `@elevasis/sdk` template version against `templateVersion` in `elevasis.config.ts`. If the SDK has a newer version, notify the user and suggest running `/meta fix`.
38
- 4. If `.claude/memory/` does not exist, suggest running `/meta init` to set up the project.
39
- 5. If the user's Platform Navigation level is none (from skills.md) and `.claude/memory/tutorial-progress.md` does not exist, suggest `/tutorial`.
40
-
41
- ## Slash Commands
30
+ ## The Skill Layer
42
31
 
43
32
  Skills are Markdown instruction files in `.claude/skills/`. When you type `/skill-name` in a Claude Code session, the agent reads the corresponding `SKILL.md` and follows its instructions.
44
33
 
45
- The following skills ship with every Elevasis SDK project and are committed to version control so collaborators get the same experience:
46
-
47
- | Skill | File | Purpose |
48
- | ----------- | -------------------------- | -------------------------------------------------------- |
49
- | `/work` | `skills/work/SKILL.md` | Task tracking -- list, create, save, resume, complete |
50
- | `/elevasis` | `skills/elevasis/SKILL.md` | SDK operations -- check, deploy, exec |
51
- | `/deploy` | `skills/deploy/skill.md` | Full deploy pipeline (test, build, commit, push) |
52
- | `/setup` | `skills/setup/SKILL.md` | First-time project setup (placeholder replacement, deps) |
53
- | `/status` | `skills/status/SKILL.md` | Quick project health check |
54
- | `/continue` | `skills/continue/SKILL.md` | Resume in-progress work from docs |
55
- | `/project` | `skills/project/SKILL.md` | Route project management to `elevasis-sdk project:*` |
56
- | `/sync` | `skills/sync/SKILL.md` | Pull latest, wipe caches, fresh reinstall |
57
- | `/explore` | `skills/explore/SKILL.md` | Codebase exploration anchored to docs |
58
- | `/save` | `skills/save/SKILL.md` | Auto-manage docs from conversation context |
59
- | `/dsp` | `skills/dsp/SKILL.md` | Parallel agent dispatch for implementation tasks |
34
+ The template ships these skills, all committed to version control:
35
+
36
+ | Skill | Purpose |
37
+ | ----------------- | ------------------------------------------------------------------------------------------------ |
38
+ | `/client` | Client portfolio management -- list, resolve, inspect, and maintain client records |
39
+ | `/deploy` | Test, build, fix issues, then commit and push |
40
+ | `/dsp` | Dispatch subagents in parallel for implementation tasks |
41
+ | `/elevasis` | SDK operations -- check, deploy, execute, inspect, and debug resources |
42
+ | `/explore` | Codebase exploration anchored to project documentation |
43
+ | `/git-sync` | Pull latest changes, install when the dependency baseline moved, run baseline verification |
44
+ | `/om` | Organization Model ceremony -- read, codify, toggle, layered flow |
45
+ | `/project` | Portfolio- and project-level work management via `elevasis-sdk project:*` |
46
+ | `/run-ui` | Start the Vite UI dev server on port 4300 in the background |
47
+ | `/save` | Auto-manage project documentation and persist task resume context from conversation |
48
+ | `/setup` | First-time project setup -- placeholder replacement, deps, build verification, hand off to `/om` |
49
+ | `/status` | Quick project health check |
50
+ | `/submit-request` | Submit a structured request (bug, feature, support) to the platform |
51
+ | `/sync` | Fresh reinstall and cache reset after local dependency or cache drift |
52
+ | `/tutorial` | Persona-aware onboarding -- vibe-coder or technical track |
53
+
54
+ There is no `/meta`, `/docs`, or `/work` skill. The template's own boundary guidance splits overlapping responsibilities this way: `/project` updates or inspects shared project records, `/save` captures implementation progress and conversation-derived docs, and `/elevasis` (or the monorepo-side `/adev`) handles resource execution and debugging.
60
55
 
61
56
  ### Key Skills
62
57
 
63
- **`/setup`** -- First-time project setup. Replaces template placeholders, installs dependencies, configures `.env`, verifies the project, and optionally runs a first deploy.
64
-
65
- **`/deploy`** -- Full deploy pipeline: type-check, validate resources, commit, deploy (auto-regenerates `docs/index.md` and `docs/resources.md`), verify platform, and optionally push.
66
-
67
- **`/elevasis`** -- SDK operations entry point: `check` validates resource definitions, `deploy` bundles and uploads, `exec` runs a resource with input.
68
-
69
- **`/work`** -- File-based task lifecycle. Creates, resumes, saves, and completes task docs in `docs/in-progress/`. It tracks in-progress work state, not project records.
70
-
71
- **`/status`** -- Quick project health check: shows SDK version, deployed resources, last deploy date, and environment status.
72
-
73
- **`/save`** -- Auto-manages docs from conversation context: writes or updates docs based on what was discussed in the session.
74
-
75
- **`/explore`** -- Codebase exploration anchored to `docs/`. Reads the doc map first, then drills into source as needed.
76
-
77
- **`/continue`** -- Resumes in-progress work by reading `docs/in-progress/` and picking up where the last session left off.
78
-
79
- **`/project`** -- Project-management routing for milestones, tasks, notes, and status. It should call the canonical `elevasis-sdk project:*` CLI surface rather than inventing a parallel workflow.
80
-
81
- That routing is interface-first, not a separate semantic model. `/project` should treat the SDK CLI as the operational entrypoint for the Organization OS delivery/projects contract: `deliveryManifest` in the shared UI, `PROJECTS_SYSTEM_ID` (`platform.projects`) in the organization model, and `organizationModel.delivery` for project/milestone/task status semantics.
82
-
83
- When these command families overlap conceptually, use this boundary:
84
-
85
- - `/project` -- update or inspect project data in the shared Projects system
86
- - `/work` -- capture implementation progress and resume context in docs
87
- - `/adev` -- build, debug, test, or execute resources
88
-
89
- **`/dsp`** -- Dispatches subagents in parallel for implementation tasks that can run concurrently.
90
-
91
- **`/sync`** -- Pulls latest changes, wipes all `node_modules` and caches, and runs a fresh reinstall.
92
-
93
- ## Developer Profile
94
-
95
- The developer profile is stored in `.claude/memory/profile/` as a set of markdown files. It is gitignored -- personal to each developer, not shared with collaborators. Profile data lives in the memory system alongside error patterns, deployment state, and decisions.
96
-
97
- ### Onboarding Flow
98
-
99
- Profile data is created during `/meta init`. The command runs a 6-question assessment and writes the responses to `memory/profile/`:
100
-
101
- - **Identity & Goals (3 questions):** What the business does, what to automate, which tools are already in use.
102
- - **Competency (2 questions):** Command Center familiarity (maps to `platformNavigation`), automation tool familiarity (maps to `automation`). Two additional dimensions (`apiIntegration`, `domainExpertise`) are inferred from these answers.
103
- - **Communication (1 question):** Step-by-step explanations vs. concise answers.
104
-
105
- ### Profile Structure
106
-
107
- ```
108
- .claude/memory/profile/
109
- ├── index.md # Profile summary with links to sub-files
110
- ├── identity.md # Organization, industry, goals, integrations
111
- ├── skills.md # Skill dimensions (platformNavigation, apiIntegration, automation, domainExpertise)
112
- └── preferences.md # Verbosity, guidance style, interaction patterns
113
- ```
58
+ **`/setup`** -- First-time project bootstrap. Detects whether the project still has template placeholders (`__PROJECT_NAME__`, `__PROJECT_SLUG__`, and similar), collects project and client identity conversationally, replaces placeholders (everything under `.claude/` is explicitly excluded from replacement), fills the `CLAUDE.md` **Client Context** and **User Preferences** sections, writes `identity.clientBrief` in the organization model, installs dependencies, verifies the build, then hands off to `/om` for full organization-model configuration. All of its writes are idempotent -- re-running `/setup` on an already-bootstrapped project skips replacement and offers to re-verify only.
114
59
 
115
- `identity.md` records the organization name, industry, size, project goals, and known tool integrations. `skills.md` stores four skill dimensions as structured values (`platformNavigation`, `apiIntegration`, `automation`, `domainExpertise`) along with a Growth Log table. See [Interaction Guidance](interaction-guidance.mdx) for the full set of per-dimension adaptation rules. `preferences.md` stores verbosity (`detailed / concise`) and proactive guidance preference.
60
+ **`/om`** -- The only path to edits in `core/config/organization-model.ts`. Runs a snapshot-propose-confirm-write-validate-rollback ceremony rather than a direct file edit, because a change that passes TypeScript can still fail the model's Zod cross-reference validation (`resolveOrganizationModel()`).
116
61
 
117
- ### Auto-Update Triggers
62
+ **`/deploy`** -- Test, build, commit, push pipeline.
118
63
 
119
- The agent updates `memory/profile/` files when it observes:
64
+ **`/elevasis`** -- SDK operations entry point: `check` validates resource definitions, `deploy` bundles and uploads, `exec` runs a resource with input, plus `describe`, `logs`, and `creds`.
120
65
 
121
- - The user successfully completes an advanced task (level upgrade candidate in `skills.md`)
122
- - The user mentions new tools or integrations not in `identity.md`
123
- - The user explicitly asks to change preferences
66
+ **`/project`** -- Primary work-tracking entry point: portfolio orientation, intent detection (resume vs. new), and project/milestone/task/note lifecycle, all routed through the `elevasis-sdk project:*` CLI rather than files.
124
67
 
125
- The agent does not prompt for confirmation on minor updates. Major changes (level upgrades) are surfaced to the user before writing.
68
+ **`/git-sync`** -- Pulls the latest template changes, checks the installed `@elevasis/sdk` version against the declared range, reinstalls if the dependency baseline changed, and runs baseline verification (`ui check-types`, `ui build`, `operations check`, `operations check-types`). It stops after verifying -- it never auto-reconciles template drift or overwrites project-owned files. Release guidance is not delivered here; it ships inside the `@elevasis/sdk` reference bundle, which is always current for your installed version.
126
69
 
127
- ## Rules System
70
+ On a green verification it also **bumps your app version**. The literal lives in `ui/src/config/app-version.ts` (exported as `APP_VERSION`, consumed by `ui/src/config/app-config.ts` and rendered in the topbar), and the agent picks the segment by judging the whole run: **minor** for new capability or a changed `@elevasis/*` dependency baseline, **patch** for everything else. **Major is never automatic** -- if a run genuinely looks major the report says so and leaves the version alone.
128
71
 
129
- Ten rule files are scaffolded in `.claude/rules/`. Rule files are auto-injected by Claude Code when their path patterns match the current file being edited -- no manual loading needed.
72
+ The gate is **outgoing commits**, checked with `git rev-list --count @{u}..HEAD` before the bump commit is written. Nothing deploys off a run with nothing to push, so a pull-only run reports `Version: unchanged (nothing to push)` while a run with local commits and an empty pull does bump. The bump lands as its own `chore(ui): bump app version to x.y.z` commit and is not pushed. It is skipped when there is no upstream, when the pull or verification failed, when the project has no `ui/src/config/app-version.ts`, and inside the template itself.
130
73
 
131
- Rules injected for operations source files (`operations/src/`):
74
+ `app-version.ts` is a separate file from `app-config.ts` deliberately. It is registered `never-touch` / `verify-only`, so the sync engine protects your value; folding it back into `app-config.ts` -- a critical manual-merge surface -- would flag every project as behind the template on every sync for a difference that is working as intended.
132
75
 
133
- - **`platform.md`** -- SDK adapter patterns, typed adapters, platform tool usage.
134
- - **`error-handling.md`** -- Error types (`ExecutionError`, `PlatformToolError`), retry behavior.
135
- - **`execution.md`** -- Worker thread model, timeouts, concurrency, org isolation.
136
- - **`observability.md`** -- Logging with `context.logger`, step-level auto-logging, debugging.
137
- - **`deployment.md`** -- Deploy commands, dev vs prod, version bumping, common errors.
76
+ **`/tutorial`** -- Persona-aware onboarding; see [Tutorial System](tutorial-system.mdx) for the full lesson breakdown.
138
77
 
139
- Rules injected for docs files (`docs/`):
78
+ ## The Ambient Vibe Layer
140
79
 
141
- - **`docs.md`** -- Documentation structure, frontmatter conventions, auto-generated files.
142
- - **`task-tracking.md`** -- Task doc conventions, injected for in-progress files.
80
+ External projects run an always-on natural-language intent classifier -- there is no `/vibe` command and no activation phrase. Every message is silently classified into one of seven intents (Capture, Query, Describe, Transition, Navigate, Codify, Toggle) before the agent responds. Codify and Toggle detect intent and delegate immediately to `/om`; the classifier never runs the organization-model ceremony itself. The full classifier definition and fixture tables ship with the SDK at `operations/node_modules/@elevasis/sdk/reference/rules/vibe.md`. Vibe is explicitly off inside the monorepo, which uses the task-class routing in `agent-start-here.md` instead.
143
81
 
144
- Additional contextual rules:
82
+ ## The Rules Layer
145
83
 
146
- - **`frontend.md`** -- React/Mantine patterns, injected for UI source files.
147
- - **`shared-types.md`** -- Cross-runtime type conventions, injected for foundations files.
148
- - **`organization-os.md`** -- Organization model and feature shell conventions.
84
+ `.claude/rules/` in the git-tracked template holds short pointer files with `paths:` frontmatter that Claude Code auto-loads for matching files. The authoritative rule bodies ship with the installed `@elevasis/sdk` package at `operations/node_modules/@elevasis/sdk/reference/rules/` and update whenever the SDK dependency is bumped. Rules include `agent-start-here.md` (always-loaded), `vibe.md` (always-loaded), `organization-os.md`, `deployment.md`, `error-handling.md`, `execution.md`, `frontend.md`, `observability.md`, `operations.md`, `organization-model.md`, `platform.md`, `shared-types.md`, `task-tracking.md`, `ui.md`, and `active-change-index.md` (which flags areas under active platform change).
149
85
 
150
- ## Interaction Guidance
86
+ ## Template Version Tracking
151
87
 
152
- The `CLAUDE.md` Interaction Guidance section translates skill dimensions from `memory/profile/skills.md` into concrete behavior rules -- adapting vocabulary, code completeness, explanation depth, and growth logging per dimension. For the full set of per-dimension adaptation rules, see [Interaction Guidance](interaction-guidance.mdx).
88
+ The scaffold's version marker is `templateVersion` in the project-root `.elevasis` file (a flat YAML-like marker file, not `elevasis.config.ts`). `elevasis.config.ts` (`operations/elevasis.config.ts`) only accepts `defaultStatus` and `dev.port` -- it has no version field. To pull a template update, run `/git-sync`, not `/meta fix` (which does not exist in this template).
153
89
 
154
90
  ---
155
91
 
156
- **Last Updated:** 2026-04-17
92
+ **Last Updated:** 2026-08-06