@elevasis/sdk 0.5.13 → 0.5.15
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 +745 -409
- package/dist/index.d.ts +32 -0
- package/dist/index.js +68 -0
- package/dist/templates.js +254 -37
- package/dist/worker/index.js +3 -7
- package/package.json +1 -1
- package/reference/cli.mdx +568 -505
- package/reference/concepts.mdx +4 -43
- package/reference/deployment/api.mdx +297 -297
- package/reference/deployment/command-center.mdx +9 -12
- package/reference/deployment/index.mdx +7 -7
- package/reference/framework/agent.mdx +6 -18
- package/reference/framework/interaction-guidance.mdx +182 -182
- package/reference/framework/memory.mdx +3 -24
- package/reference/framework/project-structure.mdx +277 -298
- package/reference/framework/tutorial-system.mdx +13 -44
- package/reference/getting-started.mdx +152 -148
- package/reference/index.mdx +28 -14
- package/reference/platform-tools/adapters.mdx +868 -1072
- package/reference/platform-tools/index.mdx +3 -3
- package/reference/resources/index.mdx +339 -341
- package/reference/resources/patterns.mdx +355 -354
- package/reference/resources/types.mdx +207 -207
- package/reference/roadmap.mdx +163 -147
- package/reference/runtime.mdx +2 -25
- package/reference/troubleshooting.mdx +223 -210
|
@@ -58,10 +58,7 @@ Relationships are edges in the graph. Declare them in `OrganizationResources`:
|
|
|
58
58
|
|
|
59
59
|
```typescript
|
|
60
60
|
const org: OrganizationResources = {
|
|
61
|
-
workflows:
|
|
62
|
-
'score-lead': scoreLeadWorkflow,
|
|
63
|
-
'send-proposal': sendProposalWorkflow,
|
|
64
|
-
},
|
|
61
|
+
workflows: [scoreLeadWorkflow, sendProposalWorkflow],
|
|
65
62
|
relationships: {
|
|
66
63
|
'score-lead': {
|
|
67
64
|
triggers: {
|
|
@@ -131,22 +128,22 @@ The Command Queue surfaces all pending Human-in-the-Loop (HITL) approval request
|
|
|
131
128
|
- Approve or reject with an optional comment
|
|
132
129
|
- See the history of past decisions
|
|
133
130
|
|
|
134
|
-
**How it connects to your code:** Approval requests appear when a workflow step calls `approval.
|
|
131
|
+
**How it connects to your code:** Approval requests appear when a workflow step calls `approval.create()`. The workflow pauses at that step and waits for a decision.
|
|
135
132
|
|
|
136
133
|
```typescript
|
|
137
134
|
import { approval } from '@elevasis/sdk/worker'
|
|
138
135
|
|
|
139
|
-
const
|
|
140
|
-
|
|
136
|
+
const task = await approval.create({
|
|
137
|
+
actions: [
|
|
138
|
+
{ id: 'approve', label: 'Approve', type: 'primary' },
|
|
139
|
+
{ id: 'reject', label: 'Reject', type: 'danger' },
|
|
140
|
+
],
|
|
141
141
|
context: { dealId, proposalUrl },
|
|
142
|
+
description: 'Approve proposal before sending',
|
|
142
143
|
})
|
|
143
|
-
|
|
144
|
-
if (result.approved) {
|
|
145
|
-
// continue
|
|
146
|
-
}
|
|
147
144
|
```
|
|
148
145
|
|
|
149
|
-
> **SDK takeaway:** Use `approval.
|
|
146
|
+
> **SDK takeaway:** Use `approval.create()` to create approval gates. Provide rich `context` so reviewers have what they need to decide.
|
|
150
147
|
|
|
151
148
|
---
|
|
152
149
|
|
|
@@ -12,7 +12,7 @@ Deploying your resources makes them live on the Elevasis platform and immediatel
|
|
|
12
12
|
|
|
13
13
|
When you run `elevasis-sdk deploy`, the CLI performs these steps in order:
|
|
14
14
|
|
|
15
|
-
1. **Authenticate** -- calls the API with your `
|
|
15
|
+
1. **Authenticate** -- calls the API with your `ELEVASIS_PLATFORM_KEY` to verify credentials and resolve your organization name
|
|
16
16
|
2. **Validate** -- runs your `src/index.ts` through `ResourceRegistry`, catching the same errors as the platform
|
|
17
17
|
3. **Bundle** -- uses esbuild to produce a single self-contained `dist/bundle.js` file (~50-200 KB) containing your code and all dependencies
|
|
18
18
|
4. **Upload** -- sends the bundle and resource metadata to the platform via `POST /api/external/deploy`
|
|
@@ -88,10 +88,10 @@ The `ElevasConfig` type is exported from `@elevasis/sdk`. You can leave the conf
|
|
|
88
88
|
|
|
89
89
|
## Environment Variables
|
|
90
90
|
|
|
91
|
-
| Variable
|
|
92
|
-
|
|
|
93
|
-
| `
|
|
94
|
-
| `ELEVASIS_API_URL`
|
|
91
|
+
| Variable | Required | Description |
|
|
92
|
+
| ----------------------- | -------- | --------------------------------------------------------------------------- |
|
|
93
|
+
| `ELEVASIS_PLATFORM_KEY` | Yes | Your `sk_...` API key. Used for authentication and organization resolution. |
|
|
94
|
+
| `ELEVASIS_API_URL` | No | Override the API base URL. Useful for pointing at a staging environment. |
|
|
95
95
|
|
|
96
96
|
The CLI also accepts a `--api-url` flag on every command, which takes priority over `ELEVASIS_API_URL`.
|
|
97
97
|
|
|
@@ -101,10 +101,10 @@ The CLI also accepts a `--api-url` flag on every command, which takes priority o
|
|
|
101
101
|
2. `ELEVASIS_API_URL` environment variable
|
|
102
102
|
3. `NODE_ENV`-based default (production: `https://api.elevasis.io`, development: localhost)
|
|
103
103
|
|
|
104
|
-
**Setting `
|
|
104
|
+
**Setting `ELEVASIS_PLATFORM_KEY` via `.env` file:**
|
|
105
105
|
|
|
106
106
|
```
|
|
107
|
-
|
|
107
|
+
ELEVASIS_PLATFORM_KEY=sk_***
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Place `.env` in your project root. The CLI reads it automatically. Never commit this file.
|
|
@@ -140,28 +140,16 @@ The agent does not prompt for confirmation on minor updates. Major changes (leve
|
|
|
140
140
|
|
|
141
141
|
Six 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.
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
| ----------------------- | --------- | ------------------------------- | ------------------------------------------------------------------- |
|
|
145
|
-
| `sdk-patterns.md` | MANAGED | Any file in `src/` | SDK imports, source structure, runtime, typed adapter patterns |
|
|
146
|
-
| `docs-authoring.md` | MANAGED | Any `.mdx` file in `docs/` | MDX escaping, frontmatter requirements, doc structure |
|
|
147
|
-
| `memory-conventions.md` | MANAGED | Any file in `.claude/memory/` | What belongs in memory, structure, pruning |
|
|
148
|
-
| `project-map.md` | MANAGED | `docs/project-map.mdx` | Auto-generated map conventions, do not edit manually |
|
|
149
|
-
| `task-tracking.md` | MANAGED | Any file in `docs/in-progress/` | `/work` command, task doc format, status values |
|
|
150
|
-
| `workspace-patterns.md` | INIT_ONLY | Any file in the project | Project-specific patterns (starts empty, grows via error promotion) |
|
|
143
|
+
The two files you will interact with directly:
|
|
151
144
|
|
|
152
|
-
|
|
145
|
+
- **`sdk-patterns.md`** (MANAGED) -- Injected when editing `src/`. Covers SDK imports, source structure, runtime, and typed adapter patterns. Updated by `elevasis-sdk update`.
|
|
146
|
+
- **`workspace-patterns.md`** (INIT_ONLY) -- Injected project-wide. Starts empty; grows via error promotion (3+ recurrences of the same error become a rule). Never overwritten by updates.
|
|
153
147
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
The `CLAUDE.md` Interaction Guidance section translates skill dimensions from `memory/profile/skills.md` into concrete behavior rules. Rather than fixed tiers, the agent adapts per dimension:
|
|
148
|
+
Four additional MANAGED rules (`docs-authoring.md`, `memory-conventions.md`, `project-map.md`, `task-tracking.md`) are injected contextually for docs, memory, and task files. These are maintained by the SDK and require no user action.
|
|
157
149
|
|
|
158
|
-
|
|
159
|
-
- **Show complete code for lower-programming users.** Users below intermediate programming level get full working files, never fragments they can't place.
|
|
160
|
-
- **Explain "why" before "how" for users new to automation.** Users comfortable with code get SDK-specific pattern focus instead.
|
|
161
|
-
- **Leverage domain expertise.** If the user knows sales but not code, ask for business process descriptions and translate.
|
|
162
|
-
- **Log observed growth.** When the agent observes the user doing something they previously needed help with, add an entry to `skills.md` Growth Log.
|
|
150
|
+
## Interaction Guidance
|
|
163
151
|
|
|
164
|
-
For
|
|
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).
|
|
165
153
|
|
|
166
154
|
---
|
|
167
155
|
|
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Interaction Guidance"
|
|
3
|
-
description: "Full dimensional adaptation rules per skill axis -- platform navigation, API integration, automation concepts, domain expertise -- with growth tracking protocol"
|
|
4
|
-
loadWhen: "Unsure how to adapt for a skill combination"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
This reference defines how to adapt every interaction based on the dimensions in `.claude/memory/profile/skills.md`. Read it when the compact directive in CLAUDE.md is not enough to decide how to handle an unusual skill combination.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Skill Dimensions
|
|
12
|
-
|
|
13
|
-
The user profile stores four independent skill dimensions. Each dimension has its own adaptation rules. Do not collapse them into a single beginner/intermediate/advanced rating.
|
|
14
|
-
|
|
15
|
-
### Platform Navigation (none / oriented / comfortable)
|
|
16
|
-
|
|
17
|
-
**none** -- Never used the Command Center. Does not know where pages are.
|
|
18
|
-
|
|
19
|
-
- Walk through each page step by step before directing the user there
|
|
20
|
-
- Provide exact navigation paths (e.g., "Open the Command Center, then click Execution Runner in the left sidebar")
|
|
21
|
-
- Explain what each page does before asking them to use it
|
|
22
|
-
- Do not assume they can find a page by name alone
|
|
23
|
-
|
|
24
|
-
**oriented** -- Has explored the Command Center, knows the main sections.
|
|
25
|
-
|
|
26
|
-
- Reference pages by name (Execution Runner, Command Queue, Task Scheduler)
|
|
27
|
-
- Briefly remind the user what a page does on first mention in a session
|
|
28
|
-
- Trust them to navigate once you name the destination
|
|
29
|
-
|
|
30
|
-
**comfortable** -- Regularly uses the Command Center without guidance.
|
|
31
|
-
|
|
32
|
-
- Reference pages by name only, no reminders needed
|
|
33
|
-
- Focus on advanced filtering, schedule types, and log detail navigation
|
|
34
|
-
- Trust them to explore and navigate independently
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
### API and Integration (none / basic / proficient)
|
|
39
|
-
|
|
40
|
-
**none** -- Has not called an API directly. Uses tools with built-in integrations.
|
|
41
|
-
|
|
42
|
-
- Explain what credentials are and why they exist before any integration code
|
|
43
|
-
- Walk through credential creation in the platform command center step by step
|
|
44
|
-
- Explain what "calling an API" means in plain English
|
|
45
|
-
- Explain why `.env` exists and what `
|
|
46
|
-
- Do not assume they understand HTTP methods, JSON, or authentication headers
|
|
47
|
-
|
|
48
|
-
**basic** -- Has used APIs with documentation or built simple integrations.
|
|
49
|
-
|
|
50
|
-
- Show `platform.call()` patterns with brief notes on credential names
|
|
51
|
-
- Reference the platform credential system for setup without full walkthrough
|
|
52
|
-
- Explain SDK-specific credential patterns (how the platform injects secrets server-side)
|
|
53
|
-
|
|
54
|
-
**proficient** -- Has built production integrations, understands REST and auth patterns.
|
|
55
|
-
|
|
56
|
-
- Just the code and credential name
|
|
57
|
-
- Trust them to set up credentials in the command center without guidance
|
|
58
|
-
- Focus on SDK-specific behavior (timeout, error types, server-side injection)
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
### Automation Concepts (none / low-code / custom)
|
|
63
|
-
|
|
64
|
-
**none** -- Has not used automation tools. Thinks in manual processes.
|
|
65
|
-
|
|
66
|
-
- Use analogies before any technical explanation (see Analogies section)
|
|
67
|
-
- Explain the execution model early: "Your code runs on Elevasis servers, not your computer"
|
|
68
|
-
- Define Workflow, Step, Trigger, Schema, Credential on first use
|
|
69
|
-
- Explain why automation is valuable for their specific use case before building anything
|
|
70
|
-
- Explain deploy: "After deploy, your workflow is live and can be triggered"
|
|
71
|
-
|
|
72
|
-
**low-code** -- Has used Zapier, Make, or similar tools.
|
|
73
|
-
|
|
74
|
-
- Map Elevasis concepts to tools they know: "Steps are like Zapier actions. The workflow is the Zap."
|
|
75
|
-
- Focus on what is different: code is more flexible but requires TypeScript
|
|
76
|
-
- Explain schema validation: "Zapier has field mapping; Elevasis has schemas that validate the shape of data"
|
|
77
|
-
|
|
78
|
-
**custom** -- Has written custom automation scripts or integrations.
|
|
79
|
-
|
|
80
|
-
- Skip analogies
|
|
81
|
-
- Focus on the SDK execution model: worker threads, postMessage, ephemeral processes
|
|
82
|
-
- Explain the credential security model (server-side injection, no env vars in workers)
|
|
83
|
-
- Discuss error handling patterns and retry behavior
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
### Domain Expertise
|
|
88
|
-
|
|
89
|
-
Domain expertise is not a code skill. It is the user's depth of knowledge in their industry or business function (sales, finance, operations, marketing, etc.).
|
|
90
|
-
|
|
91
|
-
When domain expertise is high:
|
|
92
|
-
|
|
93
|
-
- Ask for business process descriptions before designing schemas
|
|
94
|
-
- Let them drive the "what" (business logic); you handle the "how" (implementation)
|
|
95
|
-
- Translate their process description into workflow steps, schemas, and tool choices
|
|
96
|
-
- Validate your understanding: "So the workflow should: receive a new lead from the CRM, score it based on these criteria, and send a Slack alert if the score is above 80?"
|
|
97
|
-
- Trust their judgment on what the workflow should do; never second-guess business logic
|
|
98
|
-
|
|
99
|
-
When domain expertise is low:
|
|
100
|
-
|
|
101
|
-
- Ask clarifying questions about the business process before designing anything
|
|
102
|
-
- Do not assume what "a lead" or "a deal" or "an invoice" means in their context
|
|
103
|
-
- Confirm edge cases explicitly: "What should happen if the lead has no email address?"
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Analogies for Non-Technical Users
|
|
108
|
-
|
|
109
|
-
Use these when programming level is none or minimal, or when automation level is none.
|
|
110
|
-
|
|
111
|
-
| Concept
|
|
112
|
-
|
|
|
113
|
-
| Workflow
|
|
114
|
-
| Step
|
|
115
|
-
| Schema
|
|
116
|
-
| Deployment
|
|
117
|
-
| Execution
|
|
118
|
-
| Platform tool | A kitchen appliance: you use the mixer (tool) without knowing how it works inside
|
|
119
|
-
| Credential
|
|
120
|
-
| Assembly line | Raw material goes in one end (input), each station does one job (step), finished product comes out (output) |
|
|
121
|
-
|
|
122
|
-
Choose the analogy that fits the user's domain. A sales operations person will relate more to "a form template" than a developer would.
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## Growth Tracking Protocol
|
|
127
|
-
|
|
128
|
-
### Observations
|
|
129
|
-
|
|
130
|
-
During each session, note behaviors that reveal skill level changes. Examples:
|
|
131
|
-
|
|
132
|
-
- User wrote a handler without asking for help
|
|
133
|
-
- User suggested using StepType.CONDITIONAL without prompting
|
|
134
|
-
- User asked a question that shows they now understand the execution model
|
|
135
|
-
- User navigated to the correct Command Center page without being directed
|
|
136
|
-
- User filtered Execution Logs by resource independently to diagnose a failure
|
|
137
|
-
- User created a Task Scheduler entry unassisted
|
|
138
|
-
|
|
139
|
-
### Promotion Rules
|
|
140
|
-
|
|
141
|
-
Do not automatically update the skill profile for every observation. Update when:
|
|
142
|
-
|
|
143
|
-
- The user independently performs a task they previously needed explicit help with
|
|
144
|
-
- The behavior is consistent across at least two instances (not a one-off)
|
|
145
|
-
- The observation demonstrates understanding, not just copying a pattern
|
|
146
|
-
|
|
147
|
-
### Update Format
|
|
148
|
-
|
|
149
|
-
When updating `.claude/memory/profile/skills.md` Growth Log:
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
| Date | Observation | Dimension | Change |
|
|
153
|
-
| 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Also update the dimension's Level and Since fields in the Dimensions table.
|
|
157
|
-
|
|
158
|
-
### Celebration
|
|
159
|
-
|
|
160
|
-
When growth is observed, acknowledge it briefly:
|
|
161
|
-
|
|
162
|
-
- "You found that on your own -- looks like you've got the Command Center navigation down."
|
|
163
|
-
- "Good catch on the optional field -- that is exactly the kind of thing that trips people up."
|
|
164
|
-
|
|
165
|
-
Keep it natural. One sentence is enough. Do not over-celebrate.
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## When This Reference is Needed
|
|
170
|
-
|
|
171
|
-
Load this file when:
|
|
172
|
-
|
|
173
|
-
- Starting `/meta init` to understand how to phrase the competency assessment questions
|
|
174
|
-
- The user's skill combination is unusual and the compact CLAUDE.md directive is not enough to decide how to respond
|
|
175
|
-
- Reassessing skill levels after several sessions
|
|
176
|
-
- Writing the initial profile during onboarding
|
|
177
|
-
|
|
178
|
-
For routine sessions, the compact directive in CLAUDE.md plus the user's stored `skills.md` is sufficient.
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
**Last Updated:** 2026-02-26
|
|
1
|
+
---
|
|
2
|
+
title: "Interaction Guidance"
|
|
3
|
+
description: "Full dimensional adaptation rules per skill axis -- platform navigation, API integration, automation concepts, domain expertise -- with growth tracking protocol"
|
|
4
|
+
loadWhen: "Unsure how to adapt for a skill combination"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This reference defines how to adapt every interaction based on the dimensions in `.claude/memory/profile/skills.md`. Read it when the compact directive in CLAUDE.md is not enough to decide how to handle an unusual skill combination.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Skill Dimensions
|
|
12
|
+
|
|
13
|
+
The user profile stores four independent skill dimensions. Each dimension has its own adaptation rules. Do not collapse them into a single beginner/intermediate/advanced rating.
|
|
14
|
+
|
|
15
|
+
### Platform Navigation (none / oriented / comfortable)
|
|
16
|
+
|
|
17
|
+
**none** -- Never used the Command Center. Does not know where pages are.
|
|
18
|
+
|
|
19
|
+
- Walk through each page step by step before directing the user there
|
|
20
|
+
- Provide exact navigation paths (e.g., "Open the Command Center, then click Execution Runner in the left sidebar")
|
|
21
|
+
- Explain what each page does before asking them to use it
|
|
22
|
+
- Do not assume they can find a page by name alone
|
|
23
|
+
|
|
24
|
+
**oriented** -- Has explored the Command Center, knows the main sections.
|
|
25
|
+
|
|
26
|
+
- Reference pages by name (Execution Runner, Command Queue, Task Scheduler)
|
|
27
|
+
- Briefly remind the user what a page does on first mention in a session
|
|
28
|
+
- Trust them to navigate once you name the destination
|
|
29
|
+
|
|
30
|
+
**comfortable** -- Regularly uses the Command Center without guidance.
|
|
31
|
+
|
|
32
|
+
- Reference pages by name only, no reminders needed
|
|
33
|
+
- Focus on advanced filtering, schedule types, and log detail navigation
|
|
34
|
+
- Trust them to explore and navigate independently
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### API and Integration (none / basic / proficient)
|
|
39
|
+
|
|
40
|
+
**none** -- Has not called an API directly. Uses tools with built-in integrations.
|
|
41
|
+
|
|
42
|
+
- Explain what credentials are and why they exist before any integration code
|
|
43
|
+
- Walk through credential creation in the platform command center step by step
|
|
44
|
+
- Explain what "calling an API" means in plain English
|
|
45
|
+
- Explain why `.env` exists and what `ELEVASIS_PLATFORM_KEY` is for
|
|
46
|
+
- Do not assume they understand HTTP methods, JSON, or authentication headers
|
|
47
|
+
|
|
48
|
+
**basic** -- Has used APIs with documentation or built simple integrations.
|
|
49
|
+
|
|
50
|
+
- Show `platform.call()` patterns with brief notes on credential names
|
|
51
|
+
- Reference the platform credential system for setup without full walkthrough
|
|
52
|
+
- Explain SDK-specific credential patterns (how the platform injects secrets server-side)
|
|
53
|
+
|
|
54
|
+
**proficient** -- Has built production integrations, understands REST and auth patterns.
|
|
55
|
+
|
|
56
|
+
- Just the code and credential name
|
|
57
|
+
- Trust them to set up credentials in the command center without guidance
|
|
58
|
+
- Focus on SDK-specific behavior (timeout, error types, server-side injection)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### Automation Concepts (none / low-code / custom)
|
|
63
|
+
|
|
64
|
+
**none** -- Has not used automation tools. Thinks in manual processes.
|
|
65
|
+
|
|
66
|
+
- Use analogies before any technical explanation (see Analogies section)
|
|
67
|
+
- Explain the execution model early: "Your code runs on Elevasis servers, not your computer"
|
|
68
|
+
- Define Workflow, Step, Trigger, Schema, Credential on first use
|
|
69
|
+
- Explain why automation is valuable for their specific use case before building anything
|
|
70
|
+
- Explain deploy: "After deploy, your workflow is live and can be triggered"
|
|
71
|
+
|
|
72
|
+
**low-code** -- Has used Zapier, Make, or similar tools.
|
|
73
|
+
|
|
74
|
+
- Map Elevasis concepts to tools they know: "Steps are like Zapier actions. The workflow is the Zap."
|
|
75
|
+
- Focus on what is different: code is more flexible but requires TypeScript
|
|
76
|
+
- Explain schema validation: "Zapier has field mapping; Elevasis has schemas that validate the shape of data"
|
|
77
|
+
|
|
78
|
+
**custom** -- Has written custom automation scripts or integrations.
|
|
79
|
+
|
|
80
|
+
- Skip analogies
|
|
81
|
+
- Focus on the SDK execution model: worker threads, postMessage, ephemeral processes
|
|
82
|
+
- Explain the credential security model (server-side injection, no env vars in workers)
|
|
83
|
+
- Discuss error handling patterns and retry behavior
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Domain Expertise
|
|
88
|
+
|
|
89
|
+
Domain expertise is not a code skill. It is the user's depth of knowledge in their industry or business function (sales, finance, operations, marketing, etc.).
|
|
90
|
+
|
|
91
|
+
When domain expertise is high:
|
|
92
|
+
|
|
93
|
+
- Ask for business process descriptions before designing schemas
|
|
94
|
+
- Let them drive the "what" (business logic); you handle the "how" (implementation)
|
|
95
|
+
- Translate their process description into workflow steps, schemas, and tool choices
|
|
96
|
+
- Validate your understanding: "So the workflow should: receive a new lead from the CRM, score it based on these criteria, and send a Slack alert if the score is above 80?"
|
|
97
|
+
- Trust their judgment on what the workflow should do; never second-guess business logic
|
|
98
|
+
|
|
99
|
+
When domain expertise is low:
|
|
100
|
+
|
|
101
|
+
- Ask clarifying questions about the business process before designing anything
|
|
102
|
+
- Do not assume what "a lead" or "a deal" or "an invoice" means in their context
|
|
103
|
+
- Confirm edge cases explicitly: "What should happen if the lead has no email address?"
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Analogies for Non-Technical Users
|
|
108
|
+
|
|
109
|
+
Use these when programming level is none or minimal, or when automation level is none.
|
|
110
|
+
|
|
111
|
+
| Concept | Analogy |
|
|
112
|
+
| ------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
113
|
+
| Workflow | A recipe: ingredients go in (input), steps are instructions, finished dish comes out (output) |
|
|
114
|
+
| Step | One instruction in a recipe: "add salt," "stir for 2 minutes" |
|
|
115
|
+
| Schema | A form template: it defines what fields exist and what type of data each field accepts |
|
|
116
|
+
| Deployment | Publishing: like publishing a document so others can access it |
|
|
117
|
+
| Execution | One run: like baking the recipe once |
|
|
118
|
+
| Platform tool | A kitchen appliance: you use the mixer (tool) without knowing how it works inside |
|
|
119
|
+
| Credential | A key: you give Elevasis the key to your Gmail account; it unlocks the door when needed |
|
|
120
|
+
| Assembly line | Raw material goes in one end (input), each station does one job (step), finished product comes out (output) |
|
|
121
|
+
|
|
122
|
+
Choose the analogy that fits the user's domain. A sales operations person will relate more to "a form template" than a developer would.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Growth Tracking Protocol
|
|
127
|
+
|
|
128
|
+
### Observations
|
|
129
|
+
|
|
130
|
+
During each session, note behaviors that reveal skill level changes. Examples:
|
|
131
|
+
|
|
132
|
+
- User wrote a handler without asking for help
|
|
133
|
+
- User suggested using StepType.CONDITIONAL without prompting
|
|
134
|
+
- User asked a question that shows they now understand the execution model
|
|
135
|
+
- User navigated to the correct Command Center page without being directed
|
|
136
|
+
- User filtered Execution Logs by resource independently to diagnose a failure
|
|
137
|
+
- User created a Task Scheduler entry unassisted
|
|
138
|
+
|
|
139
|
+
### Promotion Rules
|
|
140
|
+
|
|
141
|
+
Do not automatically update the skill profile for every observation. Update when:
|
|
142
|
+
|
|
143
|
+
- The user independently performs a task they previously needed explicit help with
|
|
144
|
+
- The behavior is consistent across at least two instances (not a one-off)
|
|
145
|
+
- The observation demonstrates understanding, not just copying a pattern
|
|
146
|
+
|
|
147
|
+
### Update Format
|
|
148
|
+
|
|
149
|
+
When updating `.claude/memory/profile/skills.md` Growth Log:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
| Date | Observation | Dimension | Change |
|
|
153
|
+
| 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Also update the dimension's Level and Since fields in the Dimensions table.
|
|
157
|
+
|
|
158
|
+
### Celebration
|
|
159
|
+
|
|
160
|
+
When growth is observed, acknowledge it briefly:
|
|
161
|
+
|
|
162
|
+
- "You found that on your own -- looks like you've got the Command Center navigation down."
|
|
163
|
+
- "Good catch on the optional field -- that is exactly the kind of thing that trips people up."
|
|
164
|
+
|
|
165
|
+
Keep it natural. One sentence is enough. Do not over-celebrate.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## When This Reference is Needed
|
|
170
|
+
|
|
171
|
+
Load this file when:
|
|
172
|
+
|
|
173
|
+
- Starting `/meta init` to understand how to phrase the competency assessment questions
|
|
174
|
+
- The user's skill combination is unusual and the compact CLAUDE.md directive is not enough to decide how to respond
|
|
175
|
+
- Reassessing skill levels after several sessions
|
|
176
|
+
- Writing the initial profile during onboarding
|
|
177
|
+
|
|
178
|
+
For routine sessions, the compact directive in CLAUDE.md plus the user's stored `skills.md` is sufficient.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
**Last Updated:** 2026-02-26
|
|
@@ -150,15 +150,6 @@ Valid levels per dimension:
|
|
|
150
150
|
| Proactive guidance | yes |
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
#### What Profile-as-Memory Eliminates
|
|
154
|
-
|
|
155
|
-
Storing profile data in the memory system instead of a separate JSON file removes:
|
|
156
|
-
|
|
157
|
-
- The `.claude/profile.json` file entirely
|
|
158
|
-
- A separate JSON schema to maintain
|
|
159
|
-
- A separate read path at session start -- profile and memory index are unified under `memory/index.md`
|
|
160
|
-
- Onboarding questions baked into `CLAUDE.md` that write JSON -- `/meta init` writes markdown instead
|
|
161
|
-
|
|
162
153
|
### Root Index
|
|
163
154
|
|
|
164
155
|
`memory/index.md` is the only file read at session start. It lists all topics with their last-updated dates, giving the agent enough context to know what has been recorded without loading any detail.
|
|
@@ -198,7 +189,7 @@ Subdirectory entries link to their `index.md` rather than the directory itself.
|
|
|
198
189
|
## Resources
|
|
199
190
|
|
|
200
191
|
- `echo` (workflow, dev) -- echoes input, starter resource
|
|
201
|
-
- `lead-scorer` (workflow,
|
|
192
|
+
- `lead-scorer` (workflow, prod) -- scores leads from Attio
|
|
202
193
|
|
|
203
194
|
## Deploy History
|
|
204
195
|
|
|
@@ -249,7 +240,7 @@ Each category file is a table of known error patterns with resolutions:
|
|
|
249
240
|
|
|
250
241
|
| Last Seen | Error | Resolution | Occurrences |
|
|
251
242
|
| --- | --- | --- | --- |
|
|
252
|
-
| 2026-02-25 | `
|
|
243
|
+
| 2026-02-25 | `ELEVASIS_PLATFORM_KEY not set` | Added key to `.env` | 2 |
|
|
253
244
|
| 2026-02-26 | `Schema validation: missing outputSchema` | Added Zod output schema to workflow | 1 |
|
|
254
245
|
```
|
|
255
246
|
|
|
@@ -328,19 +319,7 @@ If an error pattern recurs 3 or more times, promote it to a rule in the `CLAUDE.
|
|
|
328
319
|
|
|
329
320
|
## Relationship to Claude Code Auto-Memory
|
|
330
321
|
|
|
331
|
-
Claude Code
|
|
332
|
-
|
|
333
|
-
| Aspect | Auto-Memory (`MEMORY.md`) | Project Memory (`.claude/memory/`) |
|
|
334
|
-
| ----------------- | ---------------------------------- | ------------------------------------------------ |
|
|
335
|
-
| Maintained by | Claude Code platform | CLAUDE.md instructions |
|
|
336
|
-
| Scope | Organic discoveries | Explicit project state |
|
|
337
|
-
| Portability | Machine-specific | Gitignored (personal to each developer) |
|
|
338
|
-
| Content | General patterns | Deployment state, resources, credentials, errors |
|
|
339
|
-
| User control | Implicit | Explicit (can read, edit, delete) |
|
|
340
|
-
| Session load cost | Full file (truncated at 200 lines) | Root index only (~5 lines); detail on-demand |
|
|
341
|
-
| Scaling | Single file, truncated | Hierarchical tree, unlimited depth |
|
|
342
|
-
|
|
343
|
-
Both should be active. Auto-memory captures things the agent notices organically. Project memory captures structured project state that `CLAUDE.md` explicitly instructs the agent to record.
|
|
322
|
+
Claude Code's auto-memory (`MEMORY.md`) and project memory (`.claude/memory/`) are complementary -- both should be active. Auto-memory captures organic discoveries; project memory captures structured project state that `CLAUDE.md` explicitly instructs the agent to record.
|
|
344
323
|
|
|
345
324
|
---
|
|
346
325
|
|