@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.
@@ -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.requestApproval()`. The workflow pauses at that step and waits for a decision.
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 result = await approval.requestApproval({
140
- title: 'Approve proposal before sending',
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.requestApproval()` to create approval gates. Provide rich `context` so reviewers have what they need to decide.
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 `ELEVASIS_API_KEY` to verify credentials and resolve your organization name
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 | Required | Description |
92
- | ------------------ | -------- | --------------------------------------------------------------------------- |
93
- | `ELEVASIS_API_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. |
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 `ELEVASIS_API_KEY` via `.env` file:**
104
+ **Setting `ELEVASIS_PLATFORM_KEY` via `.env` file:**
105
105
 
106
106
  ```
107
- ELEVASIS_API_KEY=sk_***
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
- | File | Type | When Injected | What It Covers |
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
- MANAGED rules are updated by `elevasis-sdk update` when the SDK ships a new version. `workspace-patterns.md` is INIT_ONLY -- it belongs to the project and is never overwritten. When an error recurs 3+ times, the agent promotes a fix into this file so future sessions learn from past mistakes.
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
- ## Interaction Guidance
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
- - **Match vocabulary to level.** Avoid jargon for beginners; be precise for experts. Define technical terms in parentheses the first time they appear.
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 detailed per-dimension adaptation rules, read `reference/developer/interaction-guidance.mdx`.
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 `ELEVASIS_API_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
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, production) -- scores leads from Attio
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 | `ELEVASIS_API_KEY not set` | Added key to `.env` | 2 |
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 maintains its own auto-memory at `~/.claude/projects/{hash}/memory/MEMORY.md`. Project memory is complementary, not a replacement.
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