@elevasis/sdk 1.44.3 → 1.45.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 (246) hide show
  1. package/dist/cli.cjs +991 -650
  2. package/dist/index.d.ts +1045 -509
  3. package/dist/index.js +738 -688
  4. package/dist/node/index.d.ts +105 -97
  5. package/dist/test-utils/index.d.ts +42 -28
  6. package/dist/test-utils/index.js +514 -783
  7. package/dist/worker/index.d.ts +12112 -0
  8. package/dist/worker/index.js +121 -182
  9. package/package.json +6 -9
  10. package/reference/_navigation.md +151 -21
  11. package/reference/_reference-manifest.json +186 -4
  12. package/reference/claude-config.md +8 -0
  13. package/reference/core/index.mdx +3 -3
  14. package/reference/examples/organization-model.ts +117 -111
  15. package/reference/index.mdx +4 -4
  16. package/reference/rules/active-change-index.md +40 -54
  17. package/reference/rules/agent-runtime.md +81 -0
  18. package/reference/rules/agent-start-here.md +71 -163
  19. package/reference/rules/deployment.md +33 -10
  20. package/reference/rules/error-handling.md +26 -0
  21. package/reference/rules/execution.md +13 -0
  22. package/reference/rules/frontend.md +10 -3
  23. package/reference/rules/observability.md +9 -1
  24. package/reference/rules/operations.md +26 -17
  25. package/reference/rules/organization-model.md +74 -88
  26. package/reference/rules/organization-os.md +71 -88
  27. package/reference/rules/package-taxonomy.md +11 -2
  28. package/reference/rules/platform.md +13 -7
  29. package/reference/rules/shared-types.md +15 -0
  30. package/reference/rules/task-tracking.md +30 -5
  31. package/reference/rules/ui.md +145 -3
  32. package/reference/rules/vibe-intents.md +271 -0
  33. package/reference/rules/vibe.md +17 -243
  34. package/reference/scaffold/core/organization-graph.mdx +111 -97
  35. package/reference/scaffold/core/organization-model.mdx +234 -214
  36. package/reference/scaffold/operations/propagation-pipeline.md +1 -1
  37. package/reference/scaffold/operations/scaffold-maintenance.md +19 -18
  38. package/reference/scaffold/operations/workflow-recipes.md +71 -19
  39. package/reference/scaffold/recipes/add-a-feature.md +156 -146
  40. package/reference/scaffold/recipes/add-a-resource.md +123 -117
  41. package/reference/scaffold/recipes/customize-crm-actions.md +25 -10
  42. package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
  43. package/reference/scaffold/recipes/customize-organization-model.md +161 -149
  44. package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
  45. package/reference/scaffold/recipes/extend-crm.md +16 -11
  46. package/reference/scaffold/recipes/extend-lead-gen.md +25 -7
  47. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
  48. package/reference/scaffold/recipes/index.md +2 -2
  49. package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
  50. package/reference/scaffold/reference/contracts.md +12 -1
  51. package/reference/scaffold/reference/glossary.md +3 -3
  52. package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
  53. package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
  54. package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
  55. package/reference/scaffold/ui/feature-shell.mdx +279 -62
  56. package/reference/scaffold/ui/recipes.md +229 -197
  57. package/reference/sdk/cli-management.mdx +77 -29
  58. package/reference/sdk/concepts.mdx +2 -0
  59. package/reference/sdk/define-builders.mdx +76 -0
  60. package/reference/sdk/deployment/command-center.mdx +6 -2
  61. package/reference/sdk/deployment/execution-reference.mdx +64 -186
  62. package/reference/sdk/deployment/index.mdx +2 -0
  63. package/reference/sdk/exports.mdx +4 -4
  64. package/reference/sdk/framework/agent.mdx +49 -119
  65. package/reference/sdk/framework/index.mdx +46 -65
  66. package/reference/sdk/framework/project-structure.mdx +150 -205
  67. package/reference/sdk/framework/tutorial-system.mdx +2 -2
  68. package/reference/sdk/human-in-the-loop.mdx +152 -0
  69. package/reference/sdk/index.mdx +6 -7
  70. package/reference/sdk/platform-tools/index.mdx +12 -0
  71. package/reference/sdk/platform-tools/type-safety.mdx +4 -0
  72. package/reference/sdk/project-deployment-spec.mdx +131 -0
  73. package/reference/sdk/resources/index.mdx +21 -7
  74. package/reference/sdk/resources/patterns.mdx +54 -24
  75. package/reference/sdk/resources/types.mdx +7 -4
  76. package/reference/sdk/templates/data-enrichment.mdx +7 -3
  77. package/reference/sdk/templates/email-sender.mdx +139 -135
  78. package/reference/sdk/templates/lead-scorer.mdx +5 -1
  79. package/reference/sdk/templates/pdf-generator.mdx +155 -151
  80. package/reference/sdk/templates/recurring-job.mdx +195 -189
  81. package/reference/sdk/templates/text-classifier.mdx +4 -0
  82. package/reference/sdk/templates/web-scraper.mdx +139 -135
  83. package/reference/spine/spine-primer.md +135 -96
  84. package/reference/ui/index.mdx +14 -7
  85. package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
  86. package/dist/types/worker/adapters/apify.d.ts +0 -14
  87. package/dist/types/worker/adapters/approval.d.ts +0 -23
  88. package/dist/types/worker/adapters/attio.d.ts +0 -22
  89. package/dist/types/worker/adapters/clickup.d.ts +0 -22
  90. package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
  91. package/dist/types/worker/adapters/crm.d.ts +0 -20
  92. package/dist/types/worker/adapters/dropbox.d.ts +0 -14
  93. package/dist/types/worker/adapters/email.d.ts +0 -25
  94. package/dist/types/worker/adapters/execution.d.ts +0 -22
  95. package/dist/types/worker/adapters/gmail.d.ts +0 -14
  96. package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
  97. package/dist/types/worker/adapters/index.d.ts +0 -33
  98. package/dist/types/worker/adapters/instantly.d.ts +0 -14
  99. package/dist/types/worker/adapters/lead.d.ts +0 -28
  100. package/dist/types/worker/adapters/list.d.ts +0 -9
  101. package/dist/types/worker/adapters/llm.d.ts +0 -45
  102. package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
  103. package/dist/types/worker/adapters/notification.d.ts +0 -28
  104. package/dist/types/worker/adapters/pdf.d.ts +0 -22
  105. package/dist/types/worker/adapters/projects.d.ts +0 -20
  106. package/dist/types/worker/adapters/resend.d.ts +0 -14
  107. package/dist/types/worker/adapters/scheduler.d.ts +0 -25
  108. package/dist/types/worker/adapters/signature-api.d.ts +0 -14
  109. package/dist/types/worker/adapters/storage.d.ts +0 -33
  110. package/dist/types/worker/adapters/stripe.d.ts +0 -14
  111. package/dist/types/worker/adapters/tomba.d.ts +0 -14
  112. package/dist/types/worker/index.d.ts +0 -60
  113. package/dist/types/worker/platform.d.ts +0 -90
  114. package/dist/types/worker/utils.d.ts +0 -9
  115. package/reference/claude-config/Overview.md +0 -230
  116. package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
  117. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
  118. package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
  119. package/reference/claude-config/registries/graph-skills.json +0 -4
  120. package/reference/claude-config/registries/knowledge-flags.json +0 -154
  121. package/reference/claude-config/registries/skill-coverage.json +0 -20
  122. package/reference/claude-config/rules/active-change-index.md +0 -22
  123. package/reference/claude-config/rules/agent-start-here.md +0 -22
  124. package/reference/claude-config/rules/deployment.md +0 -22
  125. package/reference/claude-config/rules/error-handling.md +0 -22
  126. package/reference/claude-config/rules/execution.md +0 -22
  127. package/reference/claude-config/rules/frontend.md +0 -22
  128. package/reference/claude-config/rules/observability.md +0 -22
  129. package/reference/claude-config/rules/operations.md +0 -22
  130. package/reference/claude-config/rules/organization-model.md +0 -22
  131. package/reference/claude-config/rules/organization-os.md +0 -22
  132. package/reference/claude-config/rules/package-taxonomy.md +0 -22
  133. package/reference/claude-config/rules/platform.md +0 -22
  134. package/reference/claude-config/rules/shared-types.md +0 -22
  135. package/reference/claude-config/rules/task-tracking.md +0 -22
  136. package/reference/claude-config/rules/topbar-actions.md +0 -70
  137. package/reference/claude-config/rules/ui.md +0 -22
  138. package/reference/claude-config/rules/vibe.md +0 -22
  139. package/reference/claude-config/scripts/statusline-command.js +0 -18
  140. package/reference/claude-config/settings.json +0 -30
  141. package/reference/claude-config/skills/client/SKILL.md +0 -201
  142. package/reference/claude-config/skills/deploy/SKILL.md +0 -159
  143. package/reference/claude-config/skills/dsp/SKILL.md +0 -66
  144. package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
  145. package/reference/claude-config/skills/explore/SKILL.md +0 -78
  146. package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
  147. package/reference/claude-config/skills/om/SKILL.md +0 -475
  148. package/reference/claude-config/skills/om/operations/build.md +0 -237
  149. package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
  150. package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
  151. package/reference/claude-config/skills/om/operations/customers.md +0 -114
  152. package/reference/claude-config/skills/om/operations/features.md +0 -88
  153. package/reference/claude-config/skills/om/operations/goals.md +0 -123
  154. package/reference/claude-config/skills/om/operations/identity.md +0 -97
  155. package/reference/claude-config/skills/om/operations/labels.md +0 -110
  156. package/reference/claude-config/skills/om/operations/offerings.md +0 -114
  157. package/reference/claude-config/skills/om/operations/roles.md +0 -104
  158. package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
  159. package/reference/claude-config/skills/om/operations/techStack.md +0 -38
  160. package/reference/claude-config/skills/project/SKILL.md +0 -1114
  161. package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
  162. package/reference/claude-config/skills/save/SKILL.md +0 -183
  163. package/reference/claude-config/skills/setup/SKILL.md +0 -290
  164. package/reference/claude-config/skills/status/SKILL.md +0 -59
  165. package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
  166. package/reference/claude-config/skills/sync/SKILL.md +0 -47
  167. package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
  168. package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
  169. package/reference/claude-config/skills/tutorial/technical.md +0 -1303
  170. package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
  171. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
  172. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
  173. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
  174. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
  175. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
  176. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
  177. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
  178. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
  179. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
  180. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
  181. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
  182. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
  183. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
  184. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
  185. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
  186. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
  187. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
  188. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
  189. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
  190. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
  191. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
  192. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
  193. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
  194. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
  195. package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
  196. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
  197. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
  198. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
  199. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
  200. package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
  201. package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
  202. package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
  203. package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
  204. package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
  205. package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
  206. package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
  207. package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
  208. package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
  209. package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
  210. package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
  211. package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
  212. package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
  213. package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
  214. package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
  215. package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
  216. package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
  217. package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
  218. package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
  219. package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
  220. package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
  221. package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
  222. package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
  223. package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
  224. package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
  225. package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
  226. package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
  227. package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
  228. package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
  229. package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
  230. package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
  231. package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
  232. package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
  233. package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
  234. package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
  235. package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
  236. package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
  237. package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
  238. package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
  239. package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
  240. package/reference/claude-config/sync-notes/2026-08-03-agent-prose-escape-normalization.md +0 -88
  241. package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
  242. package/reference/claude-config/sync-notes/README.md +0 -43
  243. package/reference/sdk/framework/interaction-guidance.mdx +0 -182
  244. package/reference/sdk/framework/memory.mdx +0 -326
  245. package/reference/sdk/framework/resource-documentation.mdx +0 -90
  246. package/reference/sdk/roadmap.mdx +0 -164
@@ -1,73 +0,0 @@
1
- ---
2
- name: run-ui
3
- description: Start the project's Vite UI dev server on port 4300 in the background, surfacing the URL once it's ready. Detects port conflicts and asks before killing the holder.
4
- ---
5
-
6
- # Run UI
7
-
8
- Start `ui/` dev server (`pnpm -C ui dev`) in the background on port 4300 and surface the URL when Vite reports ready.
9
-
10
- **Usage:** `/run-ui`
11
-
12
- The Vite config in `ui/vite.config.ts` pins port 4300 with `strictPort: true`, so a conflict is a hard fail — the skill resolves the conflict before launching.
13
-
14
- ## Process
15
-
16
- ### Step 1: Probe port 4300
17
-
18
- Run via PowerShell tool (Windows-native, cleanest):
19
-
20
- ```powershell
21
- $conn = Get-NetTCPConnection -LocalPort 4300 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1
22
- if ($conn) {
23
- $proc = Get-Process -Id $conn.OwningProcess -ErrorAction SilentlyContinue
24
- $cmd = (Get-CimInstance Win32_Process -Filter "ProcessId = $($conn.OwningProcess)" -ErrorAction SilentlyContinue).CommandLine
25
- "PID=$($conn.OwningProcess) NAME=$($proc.ProcessName) CMD=$cmd"
26
- } else {
27
- "FREE"
28
- }
29
- ```
30
-
31
- ### Step 2: Branch on probe result
32
-
33
- - **`FREE`** → go to Step 3.
34
- - **Holder is our Vite** (CMD contains `vite` or `node` running from this project's `ui/`) → port is already serving the app. Skip launch and surface `http://localhost:4300/` directly. Done.
35
- - **Holder is something else** → ask the user:
36
-
37
- > "Port 4300 is held by `<NAME>` (PID `<PID>`). Kill it and start the dev server? (y/n)"
38
-
39
- On `n`, abort with no further action. On `y`, run `Stop-Process -Id <PID> -Force` then continue to Step 3.
40
-
41
- ### Step 3: Launch dev server in background
42
-
43
- Use Bash tool with `run_in_background: true`:
44
-
45
- ```bash
46
- pnpm -C ui dev
47
- ```
48
-
49
- Capture the returned shell ID.
50
-
51
- ### Step 4: Wait for ready signal
52
-
53
- Poll the background shell output (read every ~2s) for Vite's ready line — typically:
54
-
55
- ```
56
- ➜ Local: http://localhost:4300/
57
- ```
58
-
59
- or `ready in <N>ms`.
60
-
61
- Stop polling on the first match. Hard cap: ~15 seconds (≈7 reads). If no ready signal arrives, surface the last 20 lines of background output so the user can debug, and leave the background process running.
62
-
63
- ### Step 5: Report
64
-
65
- On success:
66
-
67
- ```
68
- UI dev server running
69
- Local: http://localhost:4300/
70
- Shell: <bg-shell-id>
71
- ```
72
-
73
- On timeout, prepend a one-line note ("Vite did not report ready within 15s — last output:") before the captured tail.
@@ -1,183 +0,0 @@
1
- ---
2
- name: save
3
- description: Auto-manage project documentation and persist task resume context from conversation
4
- ---
5
-
6
- # Save
7
-
8
- Auto-manage project documentation from conversation context, and fan out conversation signals to the canonical project system (`prj_tasks.resume_context`, `prj_notes`) via the `elevasis-sdk` CLI.
9
-
10
- ## Canonical Sources of Truth
11
-
12
- - **Task resume context (DB):** `prj_tasks.resume_context` is canonical. Agents write it via `elevasis-sdk project:task:save`. Humans edit it via the inline task editor in Command Center. **Never** stash resume context into task-doc frontmatter.
13
- - **Task-doc frontmatter:** ONLY `title`, `description`, `status`. No `resume_context`, no files-modified, no next-steps arrays -- those belong in the DB.
14
- - **Project notes (DB):** `prj_notes` via `elevasis-sdk project:note:create`. Typed notes (`status_update` / `issue` / `blocker` / `call_note`) are the durable record of conversation signals.
15
-
16
- ## Process
17
-
18
- ### Step 1: Resolve Project + Task Context
19
-
20
- Before doing anything else, determine the active project / task:
21
-
22
- 1. Look for an active task-doc frontmatter in the current conversation or the most recently edited file. Expected frontmatter:
23
-
24
- ```yaml
25
- ---
26
- title: Short title
27
- description: One-line summary
28
- status: planned | in-progress | blocked | complete
29
- ---
30
- ```
31
-
32
- 2. If the task doc references a project/task UUID anywhere in its body (link, callout, or prior save output), capture those IDs.
33
- 3. If no task / project context is resolvable, PROMPT the user:
34
- - "Which project is this work under?" (accepts slug or UUID)
35
- - "Is there an existing task I should attach this to? (task UUID, or 'new')"
36
-
37
- Do not guess. Without a task ID, skip Step 4 (DB resume-context save) but still perform Steps 2, 3, 5, 6, 7.
38
-
39
- ### Step 2: Analyze Conversation
40
-
41
- Review the current conversation to identify:
42
-
43
- 1. **New knowledge** -- architecture decisions, feature implementations, bug fixes, discoveries
44
- 2. **Changed state** -- what was in-progress that is now complete, what new work started
45
- 3. **Stale docs** -- information in existing docs that is now outdated
46
- 4. **Signal events** -- blocker hit, status update worth recording, issue uncovered, call outcome
47
- 5. **OS contract paths touched** -- scan files read/written/edited for any of these signals:
48
- - `core/config/organization-model.ts` -> Foundations layer, Organization Model
49
- - `core/types/index.ts` -> Foundations layer, Workflow Contracts
50
- - `ui/src/routes/__root.tsx` -> UI Shell Runtime composition
51
- - `ui/src/features/**/manifest.ts` or any file defining a `SystemModule` -> Systems layer
52
- - `operations/src/index.ts` or `operations/elevasis.config.ts` -> core/Deployment (DeploymentSpec)
53
- - Any file inside `ui/src/features/<feature>/` combined with manifest, nav, or sidebar changes -> Features + Toolkit layers
54
-
55
- Record which OS layers were touched: `foundations`, `systems`, `shell-runtime`, `toolkit`, `deployment`. If none matched, OS awareness stays dormant for the rest of this run.
56
-
57
- ### Step 3: Update Knowledge Docs
58
-
59
- Scan for unindexed or stale knowledge docs and draft creates / updates / moves. This template does not have a `docs/` tree — look for any local knowledge files (`.claude/rules/`, `operations/src/README.md`, `core/`, or project-specific docs the user has created). All edits are on knowledge/architecture/feature docs -- NOT on task resume state (that flows to the DB in Step 4).
60
-
61
- Determine what needs to happen:
62
-
63
- - **Create** new docs for significant new knowledge (new features, architecture decisions) -- place them wherever this project actually keeps such notes (a README next to the relevant code, or a project-created notes location); this template has no `docs/` tree, so do not create or assume one
64
- - **Update** existing docs with corrections, completions, or new details
65
- - **Move** docs between directories (e.g., `ui/` to `operations/` when ownership shifts)
66
- - **Delete** docs that are fully obsolete (rare -- prefer updating)
67
-
68
- **Frontmatter requirement (any doc this step creates or updates):**
69
-
70
- ```markdown
71
- ---
72
- title: Short descriptive title
73
- description: One-line summary of what this doc covers
74
- ---
75
- ```
76
-
77
- In-progress task docs additionally require `status`:
78
-
79
- ```markdown
80
- ---
81
- title: Feature Name
82
- description: What this task is about
83
- status: planned | in-progress | blocked | complete
84
- ---
85
- ```
86
-
87
- No other fields. Do NOT add `resume_context`, `files_modified`, or `next_steps` to frontmatter -- those flow to the DB via Step 4.
88
-
89
- **Doc structure rules:**
90
-
91
- - All docs are `.md` (not `.mdx` -- this template has no Fumadocs/MDX pipeline)
92
- - Keep docs focused -- one topic per file
93
- - Use markdown tables for structured data
94
- - Include "Last Updated: YYYY-MM-DD" at the bottom of modified docs
95
-
96
- **OS layer annotation:** If OS contract paths were touched (Step 2), include an `## Organization OS Impact` section in any newly created architecture doc:
97
-
98
- ```markdown
99
- ## Organization OS Impact
100
-
101
- Touched contracts: [list files]
102
- Affected layers: [list of layers]
103
- Cross-reference: `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/glossary.md`
104
- Downstream: template consumer adapters may need review.
105
- ```
106
-
107
- Dispatch a `general-purpose` subagent with the plan, conversation context, and these rules. The subagent must read each target file before editing.
108
-
109
- ### Step 4: Persist Task Resume Context to DB
110
-
111
- If Step 1 resolved a task ID, save the current state to `prj_tasks.resume_context` via the SDK CLI. This is the canonical persistence step and must run every `/save` invocation that has a task in scope:
112
-
113
- ```bash
114
- pnpm elevasis-sdk project:task:save <task-uuid> \
115
- --current-state "<concise prose summary of where we are>" \
116
- --next-steps "<concise prose of the next concrete action>" \
117
- --files-modified '["path/one.ts","path/two.tsx"]' \
118
- --key-docs '["operations/src/foo/index.ts","core/config/organization-model.ts"]' \
119
- --tools '["project:task:save","project:note:create"]'
120
- ```
121
-
122
- Arg rules:
123
-
124
- - `--current-state` (required) -- terse, present-tense "what is true right now". Prefer latest state over accumulated history.
125
- - `--next-steps` -- single next concrete action another agent could execute without re-deriving intent.
126
- - `--files-modified` -- JSON array of uncommitted / just-changed file paths (relative to project root).
127
- - `--key-docs` -- JSON array of doc paths an agent should re-read to resume.
128
- - `--tools` -- JSON array of tool / CLI names used this session that are worth flagging.
129
-
130
- The endpoint is `PATCH /api/external/tasks/<id>/resume-context` and merges (does not replace) provided fields. Omit any arg that has nothing meaningful to record.
131
-
132
- ### Step 5: Create Typed Project Notes on Signal Events
133
-
134
- For each signal event identified in Step 2, create a typed `prj_note`. One CLI call per note:
135
-
136
- ```bash
137
- pnpm elevasis-sdk project:note:create \
138
- --project <project-uuid> \
139
- --task <task-uuid> # optional, omit if not scoped to a task \
140
- --type <note-type> \
141
- --content "<what happened, why it matters, any next action>"
142
- ```
143
-
144
- Note-type mapping (use the first type that matches, in this order):
145
-
146
- - **`blocker`** -- work cannot proceed without external action (decision, credential, fix elsewhere, upstream change). Always create if detected. Trigger phrases: "I'm stuck", "blocked on", "can't proceed until", "waiting on <X>". When detected AND a task ID is in scope, ALSO fire a status transition -- see Step 5a below.
147
- - **`issue`** -- bug, regression, unexpected failure, contract mismatch. Include reproduction context in `--content`.
148
- - **`status_update`** -- milestone-level progress worth flagging to the human operator (phase complete, substantial deliverable landed, direction change). Keep it substantive -- `/save` runs shouldn't emit a status_update every turn.
149
- - **`call_note`** -- only if the conversation is transcribing a live client / stakeholder call.
150
-
151
- If no signal rises to note-worthy, skip this step entirely. Do not create filler notes.
152
-
153
- ### Step 5a: Blocker Signal -> Task Status Transition
154
-
155
- Run this ONLY when Step 5 created a `blocker` note AND Step 1 resolved a task ID. It's the second half of the "I'm stuck" fanout: the note captures the why, this call flips the task's lifecycle state so it surfaces as blocked in portfolio views.
156
-
157
- ```bash
158
- pnpm elevasis-sdk project:task:update <task-uuid> --status blocked
159
- ```
160
-
161
- Rules:
162
-
163
- - **Explicit task ID only** -- use the UUID resolved in Step 1. Do not re-derive or guess. If no task is in scope, skip this step (the blocker note still ships without it).
164
- - **Best-effort** -- if the CLI returns non-2xx, surface a single warning line in Step 7 ("Warning: could not transition task <id> to blocked: <reason>") and continue. Do not retry, do not block the rest of `/save`.
165
- - **Idempotent** -- if the task is already `blocked`, the update is a no-op. Fire it anyway; do not pre-check.
166
- - **Order** -- the `blocker` note (Step 5) creates first; this transition follows. Keeps the note attached to the task even if the status update later fails.
167
-
168
- ### Step 6: Report
169
-
170
- Summarize:
171
-
172
- - Knowledge docs created / updated / moved / deleted
173
- - Task ID written to (Step 4): `resume_context.last_saved` timestamp from the CLI response
174
- - Notes created (Step 5): count, types, IDs
175
- - OS classification (if applicable): layers detected, contracts touched
176
- - Any files skipped due to missing frontmatter (Step 3 subagent should have added it)
177
- - Any follow-ups for the human operator
178
-
179
- ## Failure Modes
180
-
181
- - **No task in scope + user declines to provide one:** proceed with Steps 2, 3, 6, 7; skip Step 4; still allow Step 5 if a `--project` UUID is available.
182
- - **`project:task:save` returns non-2xx:** surface the error in the report, do not retry silently; Step 5 and Step 6 still run.
183
- - **Knowledge doc edits fail to write:** surface the error; any edits already applied are on disk and not lost.
@@ -1,290 +0,0 @@
1
- ---
2
- name: setup
3
- description: First-time project setup — detect and replace template placeholders, install dependencies, verify build, then hand off to /om for org-model configuration
4
- argument-hint: ""
5
- ---
6
-
7
- # Setup
8
-
9
- First-time project setup for projects cloned directly from the template. Handles placeholder replacement, dependency install, and build verification. After bootstrap, delegates org-model configuration to `/om`.
10
-
11
- **Usage:** `/setup`
12
-
13
- ---
14
-
15
- ## State Detection (Run Before Anything Else)
16
-
17
- Before collecting any information or running any steps, determine which state the project is in. Read these files:
18
-
19
- - `package.json` — look for `__PROJECT_SLUG__` in the `name` field
20
- - `CLAUDE.md` — look for `__PROJECT_NAME__` (the title) and `__PROJECT_DESCRIPTION__` (the Project section) AND check whether `{CLIENT_CONTEXT}` and `{USER_PREFERENCES}` are still literal placeholder strings
21
- - `ui/package.json` — look for `__PROJECT_SLUG__`
22
- - `ui/index.html` — look for `__PROJECT_NAME__`
23
-
24
- **State A — Virgin (placeholders present):** One or more of the above placeholder strings is found. Run the full bootstrap flow (Steps 1–7 below), then hand off to `/om`.
25
-
26
- **State B — Already bootstrapped, org-model at defaults:** No placeholders found, but `core/config/organization-model.ts` contains only the default display naming override (just `identity.organizationName`, `identity.productName`, `identity.shortName`, with legacy `branding.*` fallback values — no customers, offerings, roles, goals, or techStack overrides). Print:
27
-
28
- ```
29
- This project is already set up. The organization model has not been configured yet.
30
- Running /om to set up your organization profile...
31
- ```
32
-
33
- Then execute `/om` (the full layered flow) and stop.
34
-
35
- **State C — Fully configured:** No placeholders found AND `core/config/organization-model.ts` has at least one non-default business domain populated (customers, offerings, roles, goals, techStack, or identity fields beyond display naming/client brief). Print:
36
-
37
- ```
38
- This project is already configured. To update your organization profile, run /om.
39
- To re-verify the build, run the checks below.
40
- ```
41
-
42
- Offer to run the verification checks (Steps 6b–6e) if the user wants them. Do not re-ask any questions. Do not re-run placeholder replacement. Stop after verification.
43
-
44
- ---
45
-
46
- ## Full Bootstrap Flow (State A Only)
47
-
48
- ### Step 1: Collect Project Info
49
-
50
- Ask the user for three values:
51
-
52
- 1. **Slug** — lowercase, hyphens only (e.g., `acme-dashboard`). Default to the basename of the current working directory.
53
- 2. **Human-readable name** — used in titles, docs, and CLAUDE.md (e.g., `Acme Dashboard`).
54
- 3. **Short description** — one sentence, used in `package.json` and CLAUDE.md (e.g., `Client dashboard for Acme Corp.`).
55
-
56
- Confirm the values before proceeding:
57
-
58
- ```
59
- Configuring project with:
60
- Slug: <slug>
61
- Name: <name>
62
- Description: <description>
63
- Date: <YYYY-MM-DD>
64
-
65
- Proceed? (yes/no)
66
- ```
67
-
68
- ### Step 2: Get to Know the User and Client
69
-
70
- Transition naturally after confirming the project values: "Now let me learn a bit about you and the client so I can be more helpful going forward."
71
-
72
- **About the user (ask conversationally, one at a time):**
73
-
74
- 1. **Name** -- "What's your first name?"
75
- 2. **Role** -- "What's your role?" (e.g., founder, developer, project lead)
76
- 3. **Technical level** -- "How comfortable are you with technical stuff? No wrong answer -- just helps me know how to explain things."
77
- 4. **Communication style** -- "When I explain things or write docs, do you prefer short and to-the-point, or more detailed with context?"
78
-
79
- Use their name naturally from this point on.
80
-
81
- **About the client/company this project is for:**
82
-
83
- 5. **Company name** -- "Who's this project for? What's the company name?"
84
- 6. **What they do** -- "What does {company} do? Just a sentence or two."
85
- 7. **Industry** -- "What industry or space are they in?"
86
- 8. **Key context** -- "Anything else that would help me understand the project context? Key stakeholders, business goals, important constraints -- whatever comes to mind. (Totally fine to skip, we can add this as we go.)"
87
-
88
- React to what they share, ask natural follow-ups if something is interesting or unclear. Don't make it feel like a form.
89
-
90
- After gathering, confirm:
91
-
92
- ```
93
- Got it! Here's what I captured:
94
-
95
- User: {name} ({role}, {technical level}, prefers {style})
96
-
97
- Client: {company}
98
- {what they do}
99
- Industry: {industry}
100
- {any additional context}
101
-
102
- Look good?
103
- ```
104
-
105
- ### Step 3: Replace Placeholders
106
-
107
- Search ALL files in the project matching these extensions: `.ts`, `.tsx`, `.js`, `.mjs`, `.json`, `.md`, `.mdx`, `.html`, `.yaml`, `.yml`, `.css`, `.env.example`
108
-
109
- **HARD EXCLUSION -- `.claude/` is off-limits (read this before scanning any file list):**
110
-
111
- Do NOT scan, read-for-replacement, or edit ANY file under `.claude/` -- this includes `.claude/skills/**` (including this very `setup/SKILL.md` file), `.claude/rules/**`, `.claude/agents/**`, `.claude/hooks/**`, `.claude/registries/**`, `.claude/sync-notes/**`, `.claude/logs/**`, `.claude/Overview.md`, and `.claude/settings.json`. These are agent scaffold, not template content -- they describe the agent's own tooling and must never have their placeholder text (e.g. `__PROJECT_NAME__`, `__DATE__`, tenant names used as worked examples) substituted. Substituting them corrupts the scaffold and breaks every future re-run of `/setup` and other skills that reference this file.
112
-
113
- The allowlist of directories to scan is exactly: project root files (`package.json`, `CLAUDE.md`, `.env.example`), `ui/**`, `operations/**`, `core/**`. Also exclude `node_modules/`, `dist/`, `.tanstack/`, `pnpm-lock.yaml`, and `.git/` within those trees.
114
-
115
- If you are about to open or write any file whose path starts with `.claude/`, stop -- that file is out of scope for this step, with zero exceptions.
116
-
117
- For each matching file (from the allowlist above, outside `.claude/`), replace all occurrences of:
118
-
119
- | Placeholder | Replace with |
120
- | ------------------------------ | ----------------------- |
121
- | `__PROJECT_NAME__` | human-readable name |
122
- | `__PROJECT_SLUG__` | slug |
123
- | `__PROJECT_DESCRIPTION__` | description |
124
- | `__DATE__` | today's date YYYY-MM-DD |
125
- | `TEMPLATE_PROJECT_NAME` | human-readable name |
126
- | `TEMPLATE_PROJECT_DESCRIPTION` | description |
127
-
128
- Use the Read tool to read each file, then the Edit tool (with `replace_all: true`) or Write tool to apply the replacements. Read each file before writing.
129
-
130
- After all replacements, re-scan the four key files from State Detection to verify zero placeholders remain. If any are still present, report them by file and fix immediately.
131
-
132
- ### Step 4: Populate CLAUDE.md Knowledge Sections
133
-
134
- **Idempotency check (MANDATORY before writing):** Read `CLAUDE.md` and check whether `{CLIENT_CONTEXT}` and `{USER_PREFERENCES}` are still literal placeholder strings. Only write if they are still placeholders. If either section is already filled in (user or a previous run already populated it), skip that section entirely — do not overwrite.
135
-
136
- **`{CLIENT_CONTEXT}`** -- replace with a single line (only if still a placeholder):
137
-
138
- ```markdown
139
- **{company name}** — {what they do, one sentence}
140
- ```
141
-
142
- **`{USER_PREFERENCES}`** -- replace with a table (only if still a placeholder):
143
-
144
- ```markdown
145
- | Name | Role | Technical Level | Communication |
146
- | ------ | ------ | --------------- | ------------- |
147
- | {name} | {role} | {level} | {preference} |
148
- ```
149
-
150
- If the user skipped any knowledge questions, fill in what was provided and omit what wasn't -- don't leave placeholder text behind.
151
-
152
- ### Step 5: Write Client Brief to Org Model
153
-
154
- **Idempotency check:** Read `core/config/organization-model.ts` and inspect `identity.clientBrief`. If the field is already a non-empty string, skip this step entirely — do not overwrite.
155
-
156
- If the field is empty or absent, compose the client brief from the information gathered in Step 2:
157
-
158
- ```markdown
159
- **Company:** {company name}
160
- **Industry:** {industry}
161
- **Description:** {what they do}
162
-
163
- ## Additional Context
164
-
165
- {any additional context shared — key stakeholders, business goals, constraints, etc. If nothing was shared, write "No additional context provided yet. Update this as the project evolves."}
166
- ```
167
-
168
- Propose the composed content to the user before writing (read → propose → confirm → write — the same ceremony `/om` uses):
169
-
170
- ```
171
- Here's the client brief I'll write into identity.clientBrief:
172
-
173
- ---
174
- {composed content}
175
- ---
176
-
177
- Write this? (yes/no)
178
- ```
179
-
180
- On confirmation, use the Edit tool to replace the `clientBrief: ''` value in `core/config/organization-model.ts` with a template literal containing the composed markdown. Use a regular string (backtick or single-quoted multi-line) — ensure the closing quote and trailing comma are correct TypeScript.
181
-
182
- After the edit, run:
183
-
184
- ```bash
185
- pnpm -C core test
186
- ```
187
-
188
- If type-check fails, report the error and do not proceed to Step 6 until it is resolved.
189
-
190
- ### Step 6: Install and Verify
191
-
192
- #### Step 6a: Install Dependencies
193
-
194
- ```bash
195
- pnpm install
196
- ```
197
-
198
- This generates the project's own `pnpm-lock.yaml`. Report success or any errors.
199
-
200
- #### Step 6b–6e: Verify Build
201
-
202
- Run all checks sequentially (stop and report on first failure, but attempt all):
203
-
204
- ```bash
205
- pnpm -C ui check-types
206
- pnpm -C ui build
207
- pnpm -C operations check
208
- pnpm -C operations check-types
209
- ```
210
-
211
- For each check, record PASS or FAIL. If a check fails, read the output and report the error clearly. Do not silently skip failures.
212
-
213
- ### Step 7: Bootstrap Report
214
-
215
- ```
216
- You're all set, {name}!
217
- ========================
218
- Project: <Human Name>
219
- Slug: <slug>
220
- Client: <company name> (<industry>)
221
-
222
- Verification:
223
- [PASS/FAIL] Type-check (ui)
224
- [PASS/FAIL] Production build (ui)
225
- [PASS/FAIL] Resource validation (operations)
226
- [PASS/FAIL] Type-check (operations)
227
- ```
228
-
229
- If any verification step failed, add an Errors section listing each failure with its output.
230
-
231
- ### Step 8: Hand Off to /om
232
-
233
- After a successful bootstrap, transition to the org-model configuration flow. Print:
234
-
235
- ```
236
- Bootstrap complete. Now let's set up your organization profile.
237
- ```
238
-
239
- Then execute `/om` (the full layered flow, no argument). This is where identity, customers, offerings, roles, goals, and techStack are configured. Do not attempt to collect or write org-model data here — that ceremony belongs entirely to /om.
240
-
241
- If the user wants to skip org-model setup for now, they can stop here and run `/om` later.
242
-
243
- ---
244
-
245
- ## Error Recovery
246
-
247
- If placeholder replacement leaves stragglers:
248
-
249
- ```
250
- Placeholder Cleanup Required
251
- =============================
252
- Remaining: <list files and placeholders>
253
- Action: Re-applying replacements to affected files...
254
- ```
255
-
256
- Fix each remaining occurrence before proceeding to Step 6a.
257
-
258
- ---
259
-
260
- ## Idempotency Guarantees
261
-
262
- Running `/setup` more than once is safe:
263
-
264
- - **Placeholder replacement** only runs when placeholders are detected (State A). It is skipped entirely in States B and C.
265
- - **CLAUDE.md knowledge sections** (`{CLIENT_CONTEXT}`, `{USER_PREFERENCES}`) are checked before writing. If already replaced, the write is skipped.
266
- - **`identity.clientBrief`** is only written when the field is empty. A non-empty field is never overwritten by `/setup`. The write uses a read → propose → confirm ceremony before touching the file.
267
- - **All other org-model fields** (`core/config/organization-model.ts`) are never written by `/setup`. All other org-model edits go through `/om`, which has its own diff-preview and confirm ceremony.
268
-
269
- ---
270
-
271
- ## Relationship to /om
272
-
273
- `/setup` is a thin bootstrap wrapper. It:
274
-
275
- 1. Replaces scaffold placeholders (project name, slug, description)
276
- 2. Fills lightweight CLAUDE.md knowledge sections (user and client basics, idempotent)
277
- 3. Writes the client brief into `identity.clientBrief` in the org model (confirm-before-write, idempotent)
278
- 4. Installs dependencies and verifies the build
279
- 5. Hands off to `/om` for full org-model configuration
280
-
281
- `/om` owns all other structural org-model editing (identity fields beyond clientBrief, customers, offerings, roles, goals, techStack, systems, actions, labels, and legacy feature compatibility). It is idempotent, confirm-before-overwrite, and includes a runtime validation gate. Re-run `/om` any time organizational reality changes — no need to re-run `/setup`.
282
-
283
- ---
284
-
285
- ## Capability Surface
286
-
287
- When a user asks what skills or commands are available, do NOT answer from recollection.
288
-
289
- - **Skill inventory:** Read `.claude/Overview.md` — it is the authoritative list of skills available in this project.
290
- - **Live CLI capability:** Run `pnpm elevasis-sdk cli` — it outputs every command and domain currently registered in the SDK, grouped by domain.
@@ -1,59 +0,0 @@
1
- ---
2
- name: status
3
- description: Quick project health check
4
- ---
5
-
6
- # Status
7
-
8
- Quick project health check.
9
-
10
- **Usage:** `/status`
11
-
12
- ## Process
13
-
14
- ### Step 1: Gather Data
15
-
16
- Run in parallel:
17
-
18
- 1. `git status` - working tree state
19
- 2. `git log --oneline -5` - recent commits
20
- 3. `pnpm test` - test results (root `test` script runs `ui`, `operations`, and `core` checks/tests)
21
- 4. `pnpm -C ui lint` - type check (root has no `lint` script; `lint` only exists in `ui/package.json`)
22
-
23
- ### Step 2: Check Active Work
24
-
25
- 1. Query active project work via `pnpm elevasis-sdk project:list --status active --pretty` and `pnpm elevasis-sdk project:list --status blocked --pretty` - active project/task count lives in the DB
26
-
27
- ### Step 3: Report
28
-
29
- ```
30
- Project Status
31
- ==============
32
-
33
- Git
34
- ---
35
- Branch: <branch>
36
- Clean: Yes/No (N uncommitted changes)
37
- Last commit: <hash> - <message> (<date>)
38
-
39
- Tests
40
- -----
41
- Result: All passing / N failures
42
- Details: [if failures, list them]
43
-
44
- Types
45
- -----
46
- Result: Clean / N errors
47
- Details: [if errors, list them]
48
-
49
- Docs
50
- ----
51
- Architecture: N docs
52
- Features: N docs
53
-
54
- Active Work (DB)
55
- ----------------
56
- Projects: N active, N blocked
57
- - [client 1] (status)
58
- - [client 2] (status)
59
- ```