@elevasis/sdk 0.5.12 → 0.5.14

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 (37) hide show
  1. package/dist/cli.cjs +144 -118
  2. package/dist/index.d.ts +19 -253
  3. package/dist/index.js +20 -9
  4. package/dist/templates.js +62 -59
  5. package/dist/types/worker/adapters/index.d.ts +0 -1
  6. package/dist/worker/index.js +47 -53
  7. package/package.json +1 -1
  8. package/reference/_navigation.md +13 -57
  9. package/reference/{cli/index.mdx → cli.mdx} +568 -505
  10. package/reference/concepts.mdx +164 -0
  11. package/reference/deployment/api.mdx +297 -297
  12. package/reference/deployment/command-center.mdx +226 -0
  13. package/reference/deployment/index.mdx +158 -153
  14. package/reference/framework/agent.mdx +156 -151
  15. package/reference/framework/index.mdx +182 -103
  16. package/reference/{developer → framework}/interaction-guidance.mdx +182 -182
  17. package/reference/framework/memory.mdx +326 -347
  18. package/reference/framework/project-structure.mdx +277 -298
  19. package/reference/framework/tutorial-system.mdx +222 -0
  20. package/reference/{getting-started/index.mdx → getting-started.mdx} +152 -148
  21. package/reference/index.mdx +131 -114
  22. package/reference/platform-tools/adapters.mdx +868 -929
  23. package/reference/platform-tools/index.mdx +354 -195
  24. package/reference/resources/index.mdx +339 -336
  25. package/reference/resources/patterns.mdx +355 -354
  26. package/reference/resources/types.mdx +207 -207
  27. package/reference/{roadmap/index.mdx → roadmap.mdx} +163 -147
  28. package/reference/{runtime/index.mdx → runtime.mdx} +173 -141
  29. package/reference/{troubleshooting/common-errors.mdx → troubleshooting.mdx} +223 -210
  30. package/dist/types/worker/adapters/trello.d.ts +0 -14
  31. package/reference/concepts/index.mdx +0 -203
  32. package/reference/deployment/command-center-ui.mdx +0 -151
  33. package/reference/deployment/command-view.mdx +0 -154
  34. package/reference/framework/documentation.mdx +0 -92
  35. package/reference/platform-tools/examples.mdx +0 -170
  36. package/reference/runtime/limits.mdx +0 -75
  37. package/reference/security/credentials.mdx +0 -141
@@ -1,347 +1,326 @@
1
- ---
2
- title: Memory System
3
- description: Cross-session project knowledge stored in .claude/memory/ -- deployment state, environment, decisions, and error patterns that persist between Claude Code sessions
4
- loadWhen: "Working with agent memory or session state"
5
- ---
6
-
7
- The memory system gives Claude Code a structured knowledge base for your project that survives across sessions. Deployment history, discovered credentials, architectural decisions, and error patterns are all written to `.claude/memory/` as the project evolves -- so the agent never starts from scratch.
8
-
9
- The `memory/` directory is gitignored and personal to each developer. The `profile/` subdirectory is created by `/meta init` during first-run setup. All other topics are created by the agent as the project evolves.
10
-
11
- ## Purpose
12
-
13
- Without project memory, the agent starts every session with only the context of the current conversation. It cannot remember that you already deployed yesterday, that a particular credential is configured, or that you encountered and solved a specific TypeScript error last week.
14
-
15
- With project memory, the agent loads a root index at session start, sees what has been recorded, and can retrieve detail on demand. Error patterns are matched before diagnosis. Deployment state is available before deploying again. The agent can say "I've seen this before -- here's the fix" instead of repeating the same diagnostic process.
16
-
17
- ## Architecture
18
-
19
- Memory is organized as a hierarchical index tree. Every directory has an `index.md` that maps to its children -- either content files or subdirectories with their own indexes.
20
-
21
- **The invariant:** A reader always starts at the root index and drills down. The agent reads `memory/index.md` at session start. It reads individual topic files on demand when the user asks about that topic or the agent is about to perform an action in that domain.
22
-
23
- **The scaling rule:** When a content file outgrows a single document, it graduates into a subdirectory:
24
-
25
- 1. `topic.md` becomes `topic/index.md` + sub-files
26
- 2. The parent index updates its link from `topic.md` to `topic/index.md`
27
- 3. The new sub-index maps to the sub-files
28
-
29
- This pattern is recursive. Subdirectories can split further as needed. The agent applies its own judgment about when a file has grown past usefulness as a single document.
30
-
31
- ### Starting Structure
32
-
33
- After `/meta init` and a first deployment, the structure looks like this:
34
-
35
- ```
36
- .claude/memory/
37
- ├── index.md # Root index -- read at session start
38
- ├── profile/ # Developer profile (created by /meta init)
39
- │ ├── index.md # Profile summary with links to sub-files
40
- │ ├── identity.md # Organization, industry, goals, integrations
41
- │ ├── skills.md # Skill dimensions and Growth Log
42
- │ └── preferences.md # Verbosity, guidance style, interaction patterns
43
- ├── deployment-state.md # Deploy IDs, resource inventory, org info
44
- ├── environment.md # Credentials, API keys, env vars
45
- ├── decisions.md # Architectural decisions and patterns
46
- └── errors/ # Subdirectory -- multiple categories
47
- ├── index.md # Error category summary with counts
48
- ├── deploy.md # Deployment error patterns
49
- ├── runtime.md # Runtime execution error patterns
50
- └── typescript.md # Type and build error patterns
51
- ```
52
-
53
- Profile tracking starts as a subdirectory because it has natural sub-topics from day one (identity, skills, preferences). Error tracking starts as a subdirectory because it naturally spans multiple categories. Other topics start as flat files.
54
-
55
- ### Grown Structure
56
-
57
- As a project matures, other topics may split:
58
-
59
- ```
60
- .claude/memory/
61
- ├── index.md
62
- ├── environment.md
63
- ├── decisions.md
64
- ├── deployment-state/ # Grew large enough to split
65
- │ ├── index.md
66
- │ ├── resources.md
67
- │ └── history.md
68
- └── errors/
69
- ├── index.md
70
- ├── deploy.md
71
- ├── typescript.md
72
- └── runtime/ # Runtime errors grew further
73
- ├── index.md
74
- ├── lead-scorer.md
75
- └── email-sender.md
76
- ```
77
-
78
- ## Memory Topics
79
-
80
- ### Developer Profile
81
-
82
- The `profile/` directory stores the developer's personal context -- organization details, skill levels, goals, and interaction preferences. It is created during `/meta init` guided setup and is the first thing the root index links to.
83
-
84
- ```
85
- .claude/memory/profile/
86
- ├── index.md # Profile summary with links to sub-files
87
- ├── identity.md # Organization, industry, goals, integrations
88
- ├── skills.md # Skill dimensions and Growth Log
89
- └── preferences.md # Verbosity, guidance style, interaction patterns
90
- ```
91
-
92
- **`identity.md`** records the organization name, industry, size, project goals, and known tool integrations. Example:
93
-
94
- ```markdown
95
- # Identity
96
-
97
- | Field | Value |
98
- | --- | --- |
99
- | Organization | Acme Corp |
100
- | Industry | E-commerce |
101
- | Size | 10-50 |
102
-
103
- ## Project Goals
104
-
105
- - Automate lead scoring from Attio CRM
106
- - Send follow-up emails via Resend
107
- - Weekly pipeline reports
108
-
109
- ## Known Integrations
110
-
111
- - Attio (CRM)
112
- - Resend (email)
113
- - Google Sheets (reporting)
114
- ```
115
-
116
- **`skills.md`** stores four skill dimensions as structured values so the Adaptive Guidance rules in [Interaction Guidance](../developer/interaction-guidance.mdx) can apply them consistently. It also tracks a Growth Log so the agent can detect when a level upgrade is warranted. Example:
117
-
118
- ```markdown
119
- # Skills
120
-
121
- | Dimension | Level | Since |
122
- | --- | --- | --- |
123
- | platformNavigation | oriented | 2026-02-25 |
124
- | apiIntegration | basic | 2026-02-25 |
125
- | automation | low-code | 2026-02-25 |
126
- | domainExpertise | high | 2026-02-25 |
127
-
128
- ## Growth Log
129
-
130
- | Date | Observation | Dimension | Change |
131
- | --- | --- | --- | --- |
132
- | 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
133
- ```
134
-
135
- Valid levels per dimension:
136
-
137
- - `platformNavigation`: none / oriented / comfortable
138
- - `apiIntegration`: none / basic / proficient
139
- - `automation`: none / low-code / custom
140
- - `domainExpertise`: high / low
141
-
142
- **`preferences.md`** stores verbosity and proactive guidance settings. Example:
143
-
144
- ```markdown
145
- # Preferences
146
-
147
- | Setting | Value |
148
- | --- | --- |
149
- | Verbosity | detailed |
150
- | Proactive guidance | yes |
151
- ```
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
- ### Root Index
163
-
164
- `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.
165
-
166
- ```markdown
167
- # Project Memory
168
-
169
- Agent-maintained cross-session knowledge base. Updated automatically.
170
-
171
- | Entry | Topic | Last Updated |
172
- | --- | --- | --- |
173
- | [profile/](profile/index.md) | Developer profile (skills, identity, preferences) | 2026-02-25 |
174
- | [deployment-state.md](deployment-state.md) | Deploy history, resource inventory, org info | 2026-02-25 |
175
- | [environment.md](environment.md) | Credentials, API keys, env vars | 2026-02-25 |
176
- | [decisions.md](decisions.md) | Architectural decisions and patterns | 2026-02-26 |
177
- | [errors/](errors/index.md) | Error patterns by category | 2026-02-26 |
178
- ```
179
-
180
- Subdirectory entries link to their `index.md` rather than the directory itself.
181
-
182
- ### Deployment State
183
-
184
- `deployment-state.md` tracks the most recent deploy and resource inventory. The agent updates it after every successful deployment.
185
-
186
- ```markdown
187
- # Deployment State
188
-
189
- ## Latest Deploy
190
-
191
- | Field | Value |
192
- | --- | --- |
193
- | Date | 2026-02-26 |
194
- | Deploy ID | dep_abc123 |
195
- | Resource count | 2 |
196
- | Organization | acme-corp |
197
-
198
- ## Resources
199
-
200
- - `echo` (workflow, dev) -- echoes input, starter resource
201
- - `lead-scorer` (workflow, production) -- scores leads from Attio
202
-
203
- ## Deploy History
204
-
205
- | Date | Deploy ID | Resources | Status |
206
- | --- | --- | --- | --- |
207
- | 2026-02-26 | dep_abc123 | 2 | success |
208
- | 2026-02-25 | dep_xyz789 | 1 | success |
209
- ```
210
-
211
- ### Environment
212
-
213
- `environment.md` records discovered credentials and environment variable status. The agent updates it when credentials are confirmed via the command center or deployment output.
214
-
215
- ### Decisions
216
-
217
- `decisions.md` captures architectural choices as a table: which tools were chosen, what patterns were established, and why. The agent adds a row when the user makes a significant decision during development.
218
-
219
- ## Error Tracking
220
-
221
- Error tracking is the first memory topic to outgrow a flat file. It starts as a subdirectory with one file per error category.
222
-
223
- ### Error Index
224
-
225
- `errors/index.md` provides a high-level summary of known error patterns by category. The agent reads this file (via the root index) at session start.
226
-
227
- ```markdown
228
- # Error Patterns
229
-
230
- Error pattern tracking by category. Updated when errors are diagnosed and resolved.
231
-
232
- | Entry | Category | Patterns | Total Occurrences | Last Seen |
233
- | --- | --- | --- | --- | --- |
234
- | [deploy.md](deploy.md) | Deployment | 2 | 3 | 2026-02-26 |
235
- | [runtime.md](runtime.md) | Runtime | 1 | 1 | 2026-02-26 |
236
- | [typescript.md](typescript.md) | TypeScript | 1 | 2 | 2026-02-25 |
237
- ```
238
-
239
- - **Patterns** -- count of unique error patterns in the category file
240
- - **Total Occurrences** -- sum of all occurrences across patterns
241
- - **Last Seen** -- most recent date any error in this category was seen
242
-
243
- ### Category Files
244
-
245
- Each category file is a table of known error patterns with resolutions:
246
-
247
- ```markdown
248
- # Deploy Errors
249
-
250
- | Last Seen | Error | Resolution | Occurrences |
251
- | --- | --- | --- | --- |
252
- | 2026-02-25 | `ELEVASIS_API_KEY not set` | Added key to `.env` | 2 |
253
- | 2026-02-26 | `Schema validation: missing outputSchema` | Added Zod output schema to workflow | 1 |
254
- ```
255
-
256
- Runtime errors include the resource name since the same error in different resources may have different causes:
257
-
258
- ```markdown
259
- # Runtime Errors
260
-
261
- | Last Seen | Resource | Error | Resolution | Occurrences |
262
- | --- | --- | --- | --- | --- |
263
- | 2026-02-26 | lead-scorer | `PlatformToolError: credential not found` | Set credential via `elevasis-sdk env set` | 1 |
264
- ```
265
-
266
- ### Error Resolution Flow
267
-
268
- When the agent encounters an error, it follows this sequence:
269
-
270
- 1. Checks `memory/errors/index.md` (already loaded via root index) for a matching category
271
- 2. If the relevant category has known patterns, reads the category file
272
- 3. If a match exists, applies the known resolution immediately -- "I've seen this before, here's the fix"
273
- 4. If no match exists, diagnoses normally, then logs the new pattern
274
-
275
- When the agent logs a resolved error:
276
-
277
- 1. Reads the relevant category file (e.g., `memory/errors/deploy.md`)
278
- 2. If the pattern already exists, increments `Occurrences` and updates `Last Seen`
279
- 3. If it is a new pattern, adds a new row
280
- 4. Updates the error index: recalculates `Patterns`, `Total Occurrences`, and `Last Seen`
281
- 5. If the category file does not exist yet, creates it and adds a row to the error index
282
-
283
- ## Scaling Rule
284
-
285
- When a file has grown past usefulness as a single document -- too many rows to scan, too many unrelated concerns, or too much context to load for a targeted lookup -- split it into a subdirectory.
286
-
287
- **Before split:**
288
-
289
- ```
290
- memory/
291
- ├── index.md
292
- └── deployment-state.md # entry: deployment-state.md
293
- ```
294
-
295
- **After split:**
296
-
297
- ```
298
- memory/
299
- ├── index.md # entry updated: deployment-state/ -> deployment-state/index.md
300
- └── deployment-state/
301
- ├── index.md
302
- ├── resources.md
303
- └── history.md
304
- ```
305
-
306
- The parent index link changes from `deployment-state.md` to `deployment-state/index.md`. The new sub-index maps to the sub-files. The agent applies this pattern at every depth level.
307
-
308
- ## Maintenance
309
-
310
- ### Pruning
311
-
312
- Keep content useful, not exhaustive:
313
-
314
- - Keep the most recent ~20 entries in tables that grow over time (deploy history, error patterns)
315
- - Drop patterns that have not recurred in 30 or more days unless the resolution was non-obvious
316
- - Summarize if patterns are worth preserving but detail is not
317
-
318
- ### Index Hygiene
319
-
320
- - If a file exists but is not in its parent index, add it
321
- - If an index references a missing file, remove the row
322
-
323
- The agent self-heals on read. Index hygiene is applied as part of normal session operation.
324
-
325
- ### Promotion
326
-
327
- If an error pattern recurs 3 or more times, promote it to a rule in the `CLAUDE.md` Rules section. Rules prevent errors rather than diagnosing them.
328
-
329
- ## Relationship to Claude Code Auto-Memory
330
-
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.
344
-
345
- ---
346
-
347
- **Last Updated:** 2026-02-25
1
+ ---
2
+ title: Memory System
3
+ description: Cross-session project knowledge stored in .claude/memory/ -- deployment state, environment, decisions, and error patterns that persist between Claude Code sessions
4
+ loadWhen: "Working with agent memory or session state"
5
+ ---
6
+
7
+ The memory system gives Claude Code a structured knowledge base for your project that survives across sessions. Deployment history, discovered credentials, architectural decisions, and error patterns are all written to `.claude/memory/` as the project evolves -- so the agent never starts from scratch.
8
+
9
+ The `memory/` directory is gitignored and personal to each developer. The `profile/` subdirectory is created by `/meta init` during first-run setup. All other topics are created by the agent as the project evolves.
10
+
11
+ ## Purpose
12
+
13
+ Without project memory, the agent starts every session with only the context of the current conversation. It cannot remember that you already deployed yesterday, that a particular credential is configured, or that you encountered and solved a specific TypeScript error last week.
14
+
15
+ With project memory, the agent loads a root index at session start, sees what has been recorded, and can retrieve detail on demand. Error patterns are matched before diagnosis. Deployment state is available before deploying again. The agent can say "I've seen this before -- here's the fix" instead of repeating the same diagnostic process.
16
+
17
+ ## Architecture
18
+
19
+ Memory is organized as a hierarchical index tree. Every directory has an `index.md` that maps to its children -- either content files or subdirectories with their own indexes.
20
+
21
+ **The invariant:** A reader always starts at the root index and drills down. The agent reads `memory/index.md` at session start. It reads individual topic files on demand when the user asks about that topic or the agent is about to perform an action in that domain.
22
+
23
+ **The scaling rule:** When a content file outgrows a single document, it graduates into a subdirectory:
24
+
25
+ 1. `topic.md` becomes `topic/index.md` + sub-files
26
+ 2. The parent index updates its link from `topic.md` to `topic/index.md`
27
+ 3. The new sub-index maps to the sub-files
28
+
29
+ This pattern is recursive. Subdirectories can split further as needed. The agent applies its own judgment about when a file has grown past usefulness as a single document.
30
+
31
+ ### Starting Structure
32
+
33
+ After `/meta init` and a first deployment, the structure looks like this:
34
+
35
+ ```
36
+ .claude/memory/
37
+ ├── index.md # Root index -- read at session start
38
+ ├── profile/ # Developer profile (created by /meta init)
39
+ │ ├── index.md # Profile summary with links to sub-files
40
+ │ ├── identity.md # Organization, industry, goals, integrations
41
+ │ ├── skills.md # Skill dimensions and Growth Log
42
+ │ └── preferences.md # Verbosity, guidance style, interaction patterns
43
+ ├── deployment-state.md # Deploy IDs, resource inventory, org info
44
+ ├── environment.md # Credentials, API keys, env vars
45
+ ├── decisions.md # Architectural decisions and patterns
46
+ └── errors/ # Subdirectory -- multiple categories
47
+ ├── index.md # Error category summary with counts
48
+ ├── deploy.md # Deployment error patterns
49
+ ├── runtime.md # Runtime execution error patterns
50
+ └── typescript.md # Type and build error patterns
51
+ ```
52
+
53
+ Profile tracking starts as a subdirectory because it has natural sub-topics from day one (identity, skills, preferences). Error tracking starts as a subdirectory because it naturally spans multiple categories. Other topics start as flat files.
54
+
55
+ ### Grown Structure
56
+
57
+ As a project matures, other topics may split:
58
+
59
+ ```
60
+ .claude/memory/
61
+ ├── index.md
62
+ ├── environment.md
63
+ ├── decisions.md
64
+ ├── deployment-state/ # Grew large enough to split
65
+ │ ├── index.md
66
+ │ ├── resources.md
67
+ │ └── history.md
68
+ └── errors/
69
+ ├── index.md
70
+ ├── deploy.md
71
+ ├── typescript.md
72
+ └── runtime/ # Runtime errors grew further
73
+ ├── index.md
74
+ ├── lead-scorer.md
75
+ └── email-sender.md
76
+ ```
77
+
78
+ ## Memory Topics
79
+
80
+ ### Developer Profile
81
+
82
+ The `profile/` directory stores the developer's personal context -- organization details, skill levels, goals, and interaction preferences. It is created during `/meta init` guided setup and is the first thing the root index links to.
83
+
84
+ ```
85
+ .claude/memory/profile/
86
+ ├── index.md # Profile summary with links to sub-files
87
+ ├── identity.md # Organization, industry, goals, integrations
88
+ ├── skills.md # Skill dimensions and Growth Log
89
+ └── preferences.md # Verbosity, guidance style, interaction patterns
90
+ ```
91
+
92
+ **`identity.md`** records the organization name, industry, size, project goals, and known tool integrations. Example:
93
+
94
+ ```markdown
95
+ # Identity
96
+
97
+ | Field | Value |
98
+ | --- | --- |
99
+ | Organization | Acme Corp |
100
+ | Industry | E-commerce |
101
+ | Size | 10-50 |
102
+
103
+ ## Project Goals
104
+
105
+ - Automate lead scoring from Attio CRM
106
+ - Send follow-up emails via Resend
107
+ - Weekly pipeline reports
108
+
109
+ ## Known Integrations
110
+
111
+ - Attio (CRM)
112
+ - Resend (email)
113
+ - Google Sheets (reporting)
114
+ ```
115
+
116
+ **`skills.md`** stores four skill dimensions as structured values so the Adaptive Guidance rules in [Interaction Guidance](interaction-guidance.mdx) can apply them consistently. It also tracks a Growth Log so the agent can detect when a level upgrade is warranted. Example:
117
+
118
+ ```markdown
119
+ # Skills
120
+
121
+ | Dimension | Level | Since |
122
+ | --- | --- | --- |
123
+ | platformNavigation | oriented | 2026-02-25 |
124
+ | apiIntegration | basic | 2026-02-25 |
125
+ | automation | low-code | 2026-02-25 |
126
+ | domainExpertise | high | 2026-02-25 |
127
+
128
+ ## Growth Log
129
+
130
+ | Date | Observation | Dimension | Change |
131
+ | --- | --- | --- | --- |
132
+ | 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
133
+ ```
134
+
135
+ Valid levels per dimension:
136
+
137
+ - `platformNavigation`: none / oriented / comfortable
138
+ - `apiIntegration`: none / basic / proficient
139
+ - `automation`: none / low-code / custom
140
+ - `domainExpertise`: high / low
141
+
142
+ **`preferences.md`** stores verbosity and proactive guidance settings. Example:
143
+
144
+ ```markdown
145
+ # Preferences
146
+
147
+ | Setting | Value |
148
+ | --- | --- |
149
+ | Verbosity | detailed |
150
+ | Proactive guidance | yes |
151
+ ```
152
+
153
+ ### Root Index
154
+
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.
156
+
157
+ ```markdown
158
+ # Project Memory
159
+
160
+ Agent-maintained cross-session knowledge base. Updated automatically.
161
+
162
+ | Entry | Topic | Last Updated |
163
+ | --- | --- | --- |
164
+ | [profile/](profile/index.md) | Developer profile (skills, identity, preferences) | 2026-02-25 |
165
+ | [deployment-state.md](deployment-state.md) | Deploy history, resource inventory, org info | 2026-02-25 |
166
+ | [environment.md](environment.md) | Credentials, API keys, env vars | 2026-02-25 |
167
+ | [decisions.md](decisions.md) | Architectural decisions and patterns | 2026-02-26 |
168
+ | [errors/](errors/index.md) | Error patterns by category | 2026-02-26 |
169
+ ```
170
+
171
+ Subdirectory entries link to their `index.md` rather than the directory itself.
172
+
173
+ ### Deployment State
174
+
175
+ `deployment-state.md` tracks the most recent deploy and resource inventory. The agent updates it after every successful deployment.
176
+
177
+ ```markdown
178
+ # Deployment State
179
+
180
+ ## Latest Deploy
181
+
182
+ | Field | Value |
183
+ | --- | --- |
184
+ | Date | 2026-02-26 |
185
+ | Deploy ID | dep_abc123 |
186
+ | Resource count | 2 |
187
+ | Organization | acme-corp |
188
+
189
+ ## Resources
190
+
191
+ - `echo` (workflow, dev) -- echoes input, starter resource
192
+ - `lead-scorer` (workflow, prod) -- scores leads from Attio
193
+
194
+ ## Deploy History
195
+
196
+ | Date | Deploy ID | Resources | Status |
197
+ | --- | --- | --- | --- |
198
+ | 2026-02-26 | dep_abc123 | 2 | success |
199
+ | 2026-02-25 | dep_xyz789 | 1 | success |
200
+ ```
201
+
202
+ ### Environment
203
+
204
+ `environment.md` records discovered credentials and environment variable status. The agent updates it when credentials are confirmed via the command center or deployment output.
205
+
206
+ ### Decisions
207
+
208
+ `decisions.md` captures architectural choices as a table: which tools were chosen, what patterns were established, and why. The agent adds a row when the user makes a significant decision during development.
209
+
210
+ ## Error Tracking
211
+
212
+ Error tracking is the first memory topic to outgrow a flat file. It starts as a subdirectory with one file per error category.
213
+
214
+ ### Error Index
215
+
216
+ `errors/index.md` provides a high-level summary of known error patterns by category. The agent reads this file (via the root index) at session start.
217
+
218
+ ```markdown
219
+ # Error Patterns
220
+
221
+ Error pattern tracking by category. Updated when errors are diagnosed and resolved.
222
+
223
+ | Entry | Category | Patterns | Total Occurrences | Last Seen |
224
+ | --- | --- | --- | --- | --- |
225
+ | [deploy.md](deploy.md) | Deployment | 2 | 3 | 2026-02-26 |
226
+ | [runtime.md](runtime.md) | Runtime | 1 | 1 | 2026-02-26 |
227
+ | [typescript.md](typescript.md) | TypeScript | 1 | 2 | 2026-02-25 |
228
+ ```
229
+
230
+ - **Patterns** -- count of unique error patterns in the category file
231
+ - **Total Occurrences** -- sum of all occurrences across patterns
232
+ - **Last Seen** -- most recent date any error in this category was seen
233
+
234
+ ### Category Files
235
+
236
+ Each category file is a table of known error patterns with resolutions:
237
+
238
+ ```markdown
239
+ # Deploy Errors
240
+
241
+ | Last Seen | Error | Resolution | Occurrences |
242
+ | --- | --- | --- | --- |
243
+ | 2026-02-25 | `ELEVASIS_PLATFORM_KEY not set` | Added key to `.env` | 2 |
244
+ | 2026-02-26 | `Schema validation: missing outputSchema` | Added Zod output schema to workflow | 1 |
245
+ ```
246
+
247
+ Runtime errors include the resource name since the same error in different resources may have different causes:
248
+
249
+ ```markdown
250
+ # Runtime Errors
251
+
252
+ | Last Seen | Resource | Error | Resolution | Occurrences |
253
+ | --- | --- | --- | --- | --- |
254
+ | 2026-02-26 | lead-scorer | `PlatformToolError: credential not found` | Set credential via `elevasis-sdk env set` | 1 |
255
+ ```
256
+
257
+ ### Error Resolution Flow
258
+
259
+ When the agent encounters an error, it follows this sequence:
260
+
261
+ 1. Checks `memory/errors/index.md` (already loaded via root index) for a matching category
262
+ 2. If the relevant category has known patterns, reads the category file
263
+ 3. If a match exists, applies the known resolution immediately -- "I've seen this before, here's the fix"
264
+ 4. If no match exists, diagnoses normally, then logs the new pattern
265
+
266
+ When the agent logs a resolved error:
267
+
268
+ 1. Reads the relevant category file (e.g., `memory/errors/deploy.md`)
269
+ 2. If the pattern already exists, increments `Occurrences` and updates `Last Seen`
270
+ 3. If it is a new pattern, adds a new row
271
+ 4. Updates the error index: recalculates `Patterns`, `Total Occurrences`, and `Last Seen`
272
+ 5. If the category file does not exist yet, creates it and adds a row to the error index
273
+
274
+ ## Scaling Rule
275
+
276
+ When a file has grown past usefulness as a single document -- too many rows to scan, too many unrelated concerns, or too much context to load for a targeted lookup -- split it into a subdirectory.
277
+
278
+ **Before split:**
279
+
280
+ ```
281
+ memory/
282
+ ├── index.md
283
+ └── deployment-state.md # entry: deployment-state.md
284
+ ```
285
+
286
+ **After split:**
287
+
288
+ ```
289
+ memory/
290
+ ├── index.md # entry updated: deployment-state/ -> deployment-state/index.md
291
+ └── deployment-state/
292
+ ├── index.md
293
+ ├── resources.md
294
+ └── history.md
295
+ ```
296
+
297
+ The parent index link changes from `deployment-state.md` to `deployment-state/index.md`. The new sub-index maps to the sub-files. The agent applies this pattern at every depth level.
298
+
299
+ ## Maintenance
300
+
301
+ ### Pruning
302
+
303
+ Keep content useful, not exhaustive:
304
+
305
+ - Keep the most recent ~20 entries in tables that grow over time (deploy history, error patterns)
306
+ - Drop patterns that have not recurred in 30 or more days unless the resolution was non-obvious
307
+ - Summarize if patterns are worth preserving but detail is not
308
+
309
+ ### Index Hygiene
310
+
311
+ - If a file exists but is not in its parent index, add it
312
+ - If an index references a missing file, remove the row
313
+
314
+ The agent self-heals on read. Index hygiene is applied as part of normal session operation.
315
+
316
+ ### Promotion
317
+
318
+ If an error pattern recurs 3 or more times, promote it to a rule in the `CLAUDE.md` Rules section. Rules prevent errors rather than diagnosing them.
319
+
320
+ ## Relationship to Claude Code Auto-Memory
321
+
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.
323
+
324
+ ---
325
+
326
+ **Last Updated:** 2026-02-25