@elevasis/sdk 1.15.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +2325 -124
- package/dist/index.d.ts +410 -473
- package/dist/index.js +96 -44
- package/dist/node/index.d.ts +69 -0
- package/dist/node/index.js +273 -0
- package/dist/test-utils/index.d.ts +473 -466
- package/dist/types/worker/platform.d.ts +2 -9
- package/package.json +12 -3
- package/reference/_navigation.md +23 -1
- package/reference/_reference-manifest.json +98 -0
- package/reference/claude-config/rules/agent-start-here.md +13 -0
- package/reference/claude-config/rules/organization-model.md +40 -40
- package/reference/claude-config/rules/organization-os.md +16 -16
- package/reference/claude-config/rules/vibe.md +13 -13
- package/reference/claude-config/skills/knowledge/SKILL.md +253 -0
- package/reference/claude-config/skills/{configure → knowledge}/operations/codify-level-a.md +100 -100
- package/reference/claude-config/skills/{configure → knowledge}/operations/codify-level-b.md +158 -158
- package/reference/claude-config/skills/knowledge/operations/customers.md +109 -0
- package/reference/claude-config/skills/knowledge/operations/features.md +113 -0
- package/reference/claude-config/skills/knowledge/operations/goals.md +118 -0
- package/reference/claude-config/skills/knowledge/operations/identity.md +93 -0
- package/reference/claude-config/skills/knowledge/operations/labels.md +89 -0
- package/reference/claude-config/skills/knowledge/operations/offerings.md +109 -0
- package/reference/claude-config/skills/knowledge/operations/roles.md +99 -0
- package/reference/claude-config/skills/knowledge/operations/techStack.md +102 -0
- package/reference/claude-config/skills/run-ui/SKILL.md +73 -0
- package/reference/claude-config/skills/setup/SKILL.md +270 -270
- package/reference/claude-config/skills/tutorial/SKILL.md +249 -0
- package/reference/claude-config/skills/tutorial/progress-template.md +74 -0
- package/reference/claude-config/skills/tutorial/technical.md +1309 -0
- package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -0
- package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +71 -0
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -0
- package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +59 -0
- package/reference/deployment/index.mdx +5 -5
- package/reference/examples/organization-model.ts +40 -0
- package/reference/framework/index.mdx +1 -1
- package/reference/framework/tutorial-system.mdx +86 -173
- package/reference/packages/core/src/knowledge/README.md +32 -0
- package/reference/packages/ui/src/knowledge/README.md +31 -0
- package/reference/packages/ui/src/theme/presets/README.md +19 -0
- package/reference/scaffold/core/organization-model.mdx +1 -1
- package/reference/scaffold/recipes/add-a-feature.md +1 -1
- package/reference/scaffold/recipes/customize-crm-actions.md +433 -433
- package/reference/scaffold/recipes/customize-organization-model.md +3 -3
- package/reference/scaffold/recipes/extend-lead-gen.md +90 -55
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +1 -1
- package/reference/scaffold/recipes/index.md +6 -0
- package/reference/scaffold/reference/contracts.md +1265 -1154
- package/reference/scaffold/reference/feature-registry.md +2 -1
- package/reference/scaffold/ui/composition-extensibility.mdx +17 -0
- package/reference/claude-config/skills/configure/SKILL.md +0 -98
- package/reference/claude-config/skills/configure/operations/customers.md +0 -150
- package/reference/claude-config/skills/configure/operations/features.md +0 -162
- package/reference/claude-config/skills/configure/operations/goals.md +0 -147
- package/reference/claude-config/skills/configure/operations/identity.md +0 -133
- package/reference/claude-config/skills/configure/operations/labels.md +0 -128
- package/reference/claude-config/skills/configure/operations/offerings.md +0 -159
- package/reference/claude-config/skills/configure/operations/roles.md +0 -153
- package/reference/claude-config/skills/configure/operations/techStack.md +0 -139
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tutorial
|
|
3
|
+
description: |
|
|
4
|
+
Persona-aware onboarding tutorial that forks into a vibe-coder track (zero technical
|
|
5
|
+
vocabulary, agent does all the work) or a technical track (full SDK depth, code-first).
|
|
6
|
+
On first invocation, asks one gate question to determine the user's track and persists the
|
|
7
|
+
choice to .claude/memory/profile.md. Subsequent invocations skip the question and display
|
|
8
|
+
the track menu with current progress markers. Supports /tutorial switch (flip track) and
|
|
9
|
+
/tutorial status (display-only).
|
|
10
|
+
argument-hint: "[switch | status]"
|
|
11
|
+
context: fork
|
|
12
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Tutorial
|
|
16
|
+
|
|
17
|
+
Persona-aware onboarding. Forks at first invocation into a **vibe-coder track** (non-technical,
|
|
18
|
+
agent handles everything silently) or a **technical track** (developer-focused, full SDK depth).
|
|
19
|
+
|
|
20
|
+
**Usage:** `/tutorial` | `/tutorial switch` | `/tutorial status`
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Architecture Note
|
|
25
|
+
|
|
26
|
+
`profile.md` is read at session start alongside `.claude/rules/agent-start-here.md`. The rules
|
|
27
|
+
layer uses the track choice to adjust tone, vocabulary, and tool-call visibility project-wide.
|
|
28
|
+
This router does not enforce that tone -- it only writes profile.md and loads the right track
|
|
29
|
+
file. The project-wide tone effect is handled by the rules layer reading profile.md on each
|
|
30
|
+
session start.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Step 1: Parse the Argument
|
|
35
|
+
|
|
36
|
+
Check whether the invocation included an argument:
|
|
37
|
+
|
|
38
|
+
- `/tutorial switch` -- go to [Switch Track](#switch-track)
|
|
39
|
+
- `/tutorial status` -- go to [Status Display](#status-display) (no prompt afterward)
|
|
40
|
+
- `/tutorial` (no argument) -- continue to Step 2
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 2: Check for Existing Profile
|
|
45
|
+
|
|
46
|
+
Read `.claude/memory/profile.md`.
|
|
47
|
+
|
|
48
|
+
- **File does not exist (first invocation):** go to [First Invocation](#first-invocation)
|
|
49
|
+
- **File exists:** go to [Returning Invocation](#returning-invocation)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## First Invocation
|
|
54
|
+
|
|
55
|
+
### Ask the Gate Question
|
|
56
|
+
|
|
57
|
+
Print verbatim:
|
|
58
|
+
|
|
59
|
+
> "Are you here to **build automations by describing what you want** (and I handle the technical
|
|
60
|
+
> side), or are you a **developer** who'll edit code directly?"
|
|
61
|
+
|
|
62
|
+
Wait for the user's answer. Accept natural-language replies -- map to one of two tracks:
|
|
63
|
+
|
|
64
|
+
| User says (examples) | Track |
|
|
65
|
+
| ---------------------------------------------------------------- | ------------ |
|
|
66
|
+
| "describe what I want", "non-technical", "you handle it", "vibe" | `vibe-coder` |
|
|
67
|
+
| "developer", "edit code", "technical", "build myself", "code" | `technical` |
|
|
68
|
+
|
|
69
|
+
If the answer is ambiguous, ask once: "Just to confirm -- do you want me to handle the technical
|
|
70
|
+
side, or will you be editing code directly?"
|
|
71
|
+
|
|
72
|
+
### Persist the Profile
|
|
73
|
+
|
|
74
|
+
Write `.claude/memory/profile.md` using the template below. Select the tone-implications block
|
|
75
|
+
that matches the chosen track.
|
|
76
|
+
|
|
77
|
+
**For vibe-coder track:**
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
# Project Profile
|
|
81
|
+
|
|
82
|
+
**Track:** vibe-coder
|
|
83
|
+
**Selected at:** YYYY-MM-DD
|
|
84
|
+
**Switch tracks:** Run `/tutorial switch` to change.
|
|
85
|
+
|
|
86
|
+
## Tone Implications
|
|
87
|
+
|
|
88
|
+
In this project, always:
|
|
89
|
+
- Say "automation" instead of workflow / agent / resource
|
|
90
|
+
- Say "the information your automation needs" instead of schema / Zod / type
|
|
91
|
+
- Say "make it live" or "publish" instead of deploy
|
|
92
|
+
- Say "your business profile" instead of organization model / config
|
|
93
|
+
- Say "account connection" instead of credential
|
|
94
|
+
- Say "your dashboard" or "your map" instead of Operations / Command Center / Command View
|
|
95
|
+
- Say "your approval queue" instead of HITL / approval gate
|
|
96
|
+
- Never mention repo / monorepo / git
|
|
97
|
+
- Never mention TypeScript / pnpm / CLI
|
|
98
|
+
- Say "the tool the automation uses" instead of adapter / platform tool
|
|
99
|
+
- Say "updating your profile together" instead of /knowledge ceremony
|
|
100
|
+
- Run slash commands silently on the user's behalf -- never expose command names or code
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**For technical track:**
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
# Project Profile
|
|
107
|
+
|
|
108
|
+
**Track:** technical
|
|
109
|
+
**Selected at:** YYYY-MM-DD
|
|
110
|
+
**Switch tracks:** Run `/tutorial switch` to change.
|
|
111
|
+
|
|
112
|
+
## Tone Implications
|
|
113
|
+
|
|
114
|
+
Code-first communication. Use current command names and SDK terminology without hand-holding.
|
|
115
|
+
No vocabulary substitutions. Slash commands may be surfaced directly. Full technical depth.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Initialize Progress File
|
|
119
|
+
|
|
120
|
+
Read `.claude/memory/tutorial-progress.md`.
|
|
121
|
+
|
|
122
|
+
- If the file does not exist, read `.claude/skills/tutorial/progress-template.md` and write its
|
|
123
|
+
contents verbatim to `.claude/memory/tutorial-progress.md`. If `progress-template.md` is also
|
|
124
|
+
missing (sibling agent has not yet created it), write a minimal stub:
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
# Tutorial Progress
|
|
128
|
+
|
|
129
|
+
**Vibe-coder track**
|
|
130
|
+
|
|
131
|
+
- [ ] 1 Welcome
|
|
132
|
+
- [ ] 2 How to talk to me
|
|
133
|
+
- [ ] 3 Your business profile
|
|
134
|
+
- [ ] 4 Your first automation
|
|
135
|
+
- [ ] 5 Your dashboard
|
|
136
|
+
- [ ] 6 Your approval queue
|
|
137
|
+
- [ ] 7 Changing things later
|
|
138
|
+
- [ ] 8 When things go wrong
|
|
139
|
+
|
|
140
|
+
**Technical track**
|
|
141
|
+
|
|
142
|
+
- [ ] 1 What is this workspace
|
|
143
|
+
- [ ] 2 The skill layer
|
|
144
|
+
- [ ] 3 The vibe layer
|
|
145
|
+
- [ ] 4 Echo workflow tour
|
|
146
|
+
- [ ] 5 Custom workflow with schemas
|
|
147
|
+
- [ ] 6 Platform tools and credentials
|
|
148
|
+
- [ ] 7 Multi-step and conditionals
|
|
149
|
+
- [ ] 8 Going to production
|
|
150
|
+
- [ ] 9 /knowledge ceremony
|
|
151
|
+
- [ ] 10 Features and labels
|
|
152
|
+
- [ ] 11 Entity extensions
|
|
153
|
+
- [ ] 12 HITL
|
|
154
|
+
- [ ] 13 Schedules
|
|
155
|
+
- [ ] 14 Notifications + integrations
|
|
156
|
+
- [ ] 15 Error handling
|
|
157
|
+
- [ ] 16 LLM and agents
|
|
158
|
+
- [ ] 17 Composition
|
|
159
|
+
- [ ] 18 Rules, memory, scaffold registry
|
|
160
|
+
- [ ] 19 Template lifecycle and /git-sync
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- If the file already exists, leave it unchanged.
|
|
164
|
+
|
|
165
|
+
### Load Track and Show Menu
|
|
166
|
+
|
|
167
|
+
Read the matching track file:
|
|
168
|
+
|
|
169
|
+
- `vibe-coder` track: `.claude/skills/tutorial/vibe-coder.md`
|
|
170
|
+
- `technical` track: `.claude/skills/tutorial/technical.md`
|
|
171
|
+
|
|
172
|
+
Read `.claude/memory/tutorial-progress.md` and apply progress markers to the menu (see
|
|
173
|
+
[Progress Markers](#progress-markers)). Display the menu. Prompt: "Pick a number to start."
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Returning Invocation
|
|
178
|
+
|
|
179
|
+
Read `.claude/memory/profile.md` and extract the **Track** field.
|
|
180
|
+
|
|
181
|
+
Read `.claude/memory/tutorial-progress.md`.
|
|
182
|
+
|
|
183
|
+
Load the matching track file:
|
|
184
|
+
|
|
185
|
+
- `vibe-coder` track: `.claude/skills/tutorial/vibe-coder.md`
|
|
186
|
+
- `technical` track: `.claude/skills/tutorial/technical.md`
|
|
187
|
+
|
|
188
|
+
Apply progress markers to the menu (see [Progress Markers](#progress-markers)). Display the
|
|
189
|
+
menu. Prompt: "Pick a number to continue, or type a number to jump to any lesson."
|
|
190
|
+
|
|
191
|
+
Wait for the user to pick a number, then follow that lesson's instructions from the track file.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Progress Markers
|
|
196
|
+
|
|
197
|
+
When rendering any menu, annotate each item using the markers from `tutorial-progress.md`:
|
|
198
|
+
|
|
199
|
+
| Marker in progress file | Menu display |
|
|
200
|
+
| ----------------------- | ------------ |
|
|
201
|
+
| `[ ]` | `[ ]` |
|
|
202
|
+
| `[>]` | `[>]` |
|
|
203
|
+
| `[x] YYYY-MM-DD` | `[x]` |
|
|
204
|
+
|
|
205
|
+
Read the progress file, match items by lesson number and track section, and substitute the
|
|
206
|
+
marker inline. Items with no matching entry display `[ ]`.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Switch Track
|
|
211
|
+
|
|
212
|
+
Print:
|
|
213
|
+
|
|
214
|
+
> "You're currently on the **{current-track}** track. Switching will show you the
|
|
215
|
+
> **{other-track}** menu. Your progress for each track is saved separately and will not be lost.
|
|
216
|
+
> Switch?"
|
|
217
|
+
|
|
218
|
+
Wait for confirmation. On yes:
|
|
219
|
+
|
|
220
|
+
1. Read `.claude/memory/profile.md`.
|
|
221
|
+
2. Update the **Track** field to the other track name.
|
|
222
|
+
3. Update the **Selected at** date to today.
|
|
223
|
+
4. Replace the Tone Implications block with the block for the new track (see [First Invocation](#first-invocation) for both blocks).
|
|
224
|
+
5. Write the updated profile.md.
|
|
225
|
+
6. Load the new track file and display the menu with current progress markers.
|
|
226
|
+
7. Prompt: "Pick a number to start, or press Enter to begin at lesson 1."
|
|
227
|
+
|
|
228
|
+
On no: print "No change made." and stop.
|
|
229
|
+
|
|
230
|
+
Do not modify `tutorial-progress.md` -- it tracks per-track progress independently.
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Status Display
|
|
235
|
+
|
|
236
|
+
Same as [Returning Invocation](#returning-invocation) but do not show a number-prompt afterward.
|
|
237
|
+
If no profile exists yet, print:
|
|
238
|
+
|
|
239
|
+
> "No track selected yet. Run `/tutorial` to get started."
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Error States
|
|
244
|
+
|
|
245
|
+
- **Track file missing** (`vibe-coder.md` or `technical.md` not found): print "Track content
|
|
246
|
+
file is not yet available. It may still be generating -- try again in a moment." Do not
|
|
247
|
+
attempt to generate the content; it belongs to the sibling track files.
|
|
248
|
+
- **progress-template.md missing**: write the minimal stub documented in [First Invocation](#first-invocation). Do not fail.
|
|
249
|
+
- **profile.md malformed**: treat as missing and run the gate question again.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Tutorial Progress
|
|
2
|
+
|
|
3
|
+
This file lives at `.claude/memory/tutorial-progress.md` once `/tutorial` runs for the first time.
|
|
4
|
+
It tracks per-track progress separately so users can switch tracks without losing state.
|
|
5
|
+
|
|
6
|
+
**Started:** {YYYY-MM-DD}
|
|
7
|
+
**Last session:** {YYYY-MM-DD}
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Vibe-Coder Track
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Your Tutorial
|
|
15
|
+
==============
|
|
16
|
+
1 Welcome -- what this place does for you [ ]
|
|
17
|
+
2 How to talk to me [ ]
|
|
18
|
+
3 Your business profile [ ]
|
|
19
|
+
4 Your first automation [ ]
|
|
20
|
+
5 Your dashboard -- where everything lives [ ]
|
|
21
|
+
6 Your approval queue -- signing off on things [ ]
|
|
22
|
+
7 Changing things later [ ]
|
|
23
|
+
8 When things go wrong [ ]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Technical Track
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
SECTION A -- The workspace (3 items)
|
|
32
|
+
1 What is this workspace [ ]
|
|
33
|
+
2 The skill layer -- slash commands you'll use [ ]
|
|
34
|
+
3 The vibe layer -- ambient intent classification [ ]
|
|
35
|
+
|
|
36
|
+
SECTION B -- Build your first thing (5 items)
|
|
37
|
+
4 Echo workflow tour [ ]
|
|
38
|
+
5 Custom workflow with schemas [ ]
|
|
39
|
+
6 Platform tools and credentials [ ]
|
|
40
|
+
7 Multi-step and conditionals [ ]
|
|
41
|
+
8 Going to production [ ]
|
|
42
|
+
|
|
43
|
+
SECTION C -- The Organization Model (3 items)
|
|
44
|
+
9 /knowledge ceremony -- identity, customers, [ ]
|
|
45
|
+
offerings via the layered flow
|
|
46
|
+
10 Features and labels [ ]
|
|
47
|
+
11 Entity extensions -- BaseProject, BaseDeal [ ]
|
|
48
|
+
|
|
49
|
+
SECTION D -- Modules (load on demand) (6 items)
|
|
50
|
+
12 HITL [ ]
|
|
51
|
+
13 Schedules [ ]
|
|
52
|
+
14 Notifications + integrations [ ]
|
|
53
|
+
15 Error handling [ ]
|
|
54
|
+
16 LLM and agents [ ]
|
|
55
|
+
17 Composition (execution.trigger) [ ]
|
|
56
|
+
|
|
57
|
+
SECTION E -- Power user (2 items)
|
|
58
|
+
18 Rules, memory, scaffold registry [ ]
|
|
59
|
+
19 Template lifecycle and /git-sync [ ]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Completed Lessons
|
|
65
|
+
|
|
66
|
+
| Track | Item | Title | Completed | Duration |
|
|
67
|
+
| ---------- | ---- | ----- | --------- | -------- |
|
|
68
|
+
| _none yet_ | | | | |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Capability Observations
|
|
73
|
+
|
|
74
|
+
(The teaching agent jots brief notes here, e.g. "user navigated Command Center confidently" or "user wanted code shown in lesson 4 -- flagged as candidate for /tutorial switch")
|