get-claudia 1.55.21 → 1.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/bin/index.js +213 -5
  3. package/bin/manifest-lib.js +245 -0
  4. package/memory-daemon/claudia_memory/daemon/health.py +1 -1
  5. package/memory-daemon/claudia_memory/daemon/scheduler.py +1 -1
  6. package/memory-daemon/claudia_memory/mcp/server.py +132 -123
  7. package/memory-daemon/claudia_memory/services/consolidate.py +1 -1
  8. package/memory-daemon/claudia_memory/services/remember.py +1 -1
  9. package/package.json +6 -2
  10. package/template-v2/.claude/hooks/__pycache__/post-tool-capture.cpython-313.pyc +0 -0
  11. package/template-v2/.claude/hooks/__pycache__/session-health-check.cpython-313.pyc +0 -0
  12. package/template-v2/.claude/hooks/__pycache__/user-prompt-capture.cpython-313.pyc +0 -0
  13. package/template-v2/.claude/hooks/hooks.json +11 -11
  14. package/template-v2/.claude/hooks/post-tool-capture.py +110 -10
  15. package/template-v2/.claude/hooks/pre-compact.py +4 -4
  16. package/template-v2/.claude/hooks/pre-compact.sh +1 -1
  17. package/template-v2/.claude/hooks/session-health-check.py +52 -4
  18. package/template-v2/.claude/hooks/session-summary.py +399 -0
  19. package/template-v2/.claude/hooks/user-prompt-capture.py +123 -0
  20. package/template-v2/.claude/manifest.json +73 -0
  21. package/template-v2/.claude/rules/claudia-principles.md +2 -2
  22. package/template-v2/.claude/rules/memory-availability.md +3 -3
  23. package/template-v2/.claude/rules/memory-commitment.md +92 -0
  24. package/template-v2/.claude/settings.local.json +26 -0
  25. package/template-v2/.claude/skills/capture-meeting/SKILL.md +6 -6
  26. package/template-v2/.claude/skills/capture-meeting/evals/basic.yaml +1 -1
  27. package/template-v2/.claude/skills/deep-context/SKILL.md +7 -7
  28. package/template-v2/.claude/skills/meditate/SKILL.md +10 -10
  29. package/template-v2/.claude/skills/meditate/evals/basic.yaml +1 -1
  30. package/template-v2/.claude/skills/meeting-prep/SKILL.md +3 -3
  31. package/template-v2/.claude/skills/memory-health/SKILL.md +1 -1
  32. package/template-v2/.claude/skills/memory-manager.md +85 -85
  33. package/template-v2/.claude/skills/morning-brief/SKILL.md +10 -10
  34. package/template-v2/.claude/skills/research/SKILL.md +2 -2
  35. package/template-v2/.claude/skills/skill-index.json +1 -1
  36. package/template-v2/CLAUDE.md +6 -6
  37. package/template-v2/.claude/hooks/__pycache__/pre-compact.cpython-313.pyc +0 -0
  38. package/template-v2/gitignore +0 -35
@@ -18,7 +18,7 @@ Claudia's memory operates via **MCP tools** provided by the claudia-memory daemo
18
18
 
19
19
  The `claudia` npm binary handles setup and diagnostics (`claudia setup`, `claudia system-health`) via the Bash tool. All memory operations use MCP tools.
20
20
 
21
- **Migration note:** Some skill files may still reference old CLI syntax (e.g., `claudia memory recall "query" --project-dir "$PWD"`). Interpret these as calls to the equivalent MCP tool (e.g., `memory.recall` with query parameter). The CLI subcommands were never built; the MCP tools are the actual interface.
21
+ **Migration note:** Some skill files may still reference old CLI syntax (e.g., `claudia memory recall "query" --project-dir "$PWD"`). Interpret these as calls to the equivalent MCP tool (e.g., `memory_recall` with query parameter). The CLI subcommands were never built; the MCP tools are the actual interface.
22
22
 
23
23
  ## MCP Tool Reference
24
24
 
@@ -26,31 +26,31 @@ The `claudia` npm binary handles setup and diagnostics (`claudia setup`, `claudi
26
26
 
27
27
  | Operation | MCP Tool | Key Parameters |
28
28
  |-----------|----------|----------------|
29
- | Store a memory | `memory.remember` | content, type, importance, about (entity names) |
30
- | Search memories | `memory.recall` | query, limit, types |
31
- | Entity context | `memory.about` | entity (name) |
32
- | Create/update entity | `memory.entity` | name, type, description |
33
- | Link entities | `memory.relate` | source, target, relationship, strength |
34
- | Correct memory | `memory.correct` | memory_id, correction, reason |
35
- | Invalidate memory | `memory.invalidate` | memory_id, reason |
36
- | Session briefing | `memory.briefing` | (none) |
37
- | Multi-query search | `memory.multi_recall` | queries (array of strings or objects), limit, compact |
38
- | Deep context | `memory.deep_context` | target, entity_limit, recall_limit, max_connections |
39
- | Manage reflections | `memory.reflections` | action (get/save/update/delete), content, type, query, id |
40
- | Run consolidation | `memory.consolidate` | lightweight (bool) |
29
+ | Store a memory | `memory_remember` | content, type, importance, about (entity names) |
30
+ | Search memories | `memory_recall` | query, limit, types |
31
+ | Entity context | `memory_about` | entity (name) |
32
+ | Create/update entity | `memory_entity` | name, type, description |
33
+ | Link entities | `memory_relate` | source, target, relationship, strength |
34
+ | Correct memory | `memory_correct` | memory_id, correction, reason |
35
+ | Invalidate memory | `memory_invalidate` | memory_id, reason |
36
+ | Session briefing | `memory_briefing` | (none) |
37
+ | Multi-query search | `memory_multi_recall` | queries (array of strings or objects), limit, compact |
38
+ | Deep context | `memory_deep_context` | target, entity_limit, recall_limit, max_connections |
39
+ | Manage reflections | `memory_reflections` | action (get/save/update/delete), content, type, query, id |
40
+ | Run consolidation | `memory_consolidate` | lightweight (bool) |
41
41
 
42
42
  ### Document Storage
43
43
 
44
44
  | Operation | MCP Tool | Key Parameters |
45
45
  |-----------|----------|----------------|
46
- | Store document | `memory.file` | filename, source_type, summary, about (entity names), content |
47
- | Search documents | `memory.documents` | query, source_type, entity, limit |
46
+ | Store document | `memory_file` | filename, source_type, summary, about (entity names), content |
47
+ | Search documents | `memory_documents` | query, source_type, entity, limit |
48
48
 
49
49
  Source types: `gmail`, `transcript`, `upload`, `capture`, `session`.
50
50
 
51
51
  ### Batch Operations
52
52
 
53
- Call `memory.batch` with an operations array. Each operation is an object:
53
+ Call `memory_batch` with an operations array. Each operation is an object:
54
54
 
55
55
  ```json
56
56
  [
@@ -66,10 +66,10 @@ Valid `op` values: `entity`, `remember`, `relate`, `correct`, `invalidate`.
66
66
 
67
67
  | Operation | MCP Tool | Key Parameters |
68
68
  |-----------|----------|----------------|
69
- | Buffer a turn | `memory.buffer_turn` | user_content, assistant_content, episode_id |
70
- | End session | `memory.end_session` | episode_id, narrative, reflections, facts, entities, relationships |
71
- | Load full context | `memory.session_context` | scope |
72
- | Check unsummarized | `memory.unsummarized` | (none) |
69
+ | Buffer a turn | `memory_buffer_turn` | user_content, assistant_content, episode_id |
70
+ | End session | `memory_end_session` | episode_id, narrative, reflections, facts, entities, relationships |
71
+ | Load full context | `memory_session_context` | scope |
72
+ | Check unsummarized | `memory_unsummarized` | (none) |
73
73
 
74
74
  ### Valid Parameter Values
75
75
 
@@ -85,14 +85,14 @@ Valid `op` values: `entity`, `remember`, `relate`, `correct`, `invalidate`.
85
85
 
86
86
  | Operation | MCP Tool | Key Parameters |
87
87
  |-----------|----------|----------------|
88
- | Morning digest | `memory.morning_context` | (none) |
89
- | Project connections | `memory.project_network` | entity |
90
- | Connection path | `memory.find_path` | source, target |
91
- | Find hubs | `memory.network_hubs` | limit |
92
- | Dormant relationships | `memory.dormant_relationships` | days_threshold |
93
- | Search entities | `memory.search_entities` | query, types, limit |
94
- | Merge entities | `memory.merge_entities` | source_id, target_id, reason |
95
- | Provenance trace | `memory.trace` | memory_id |
88
+ | Morning digest | `memory_morning_context` | (none) |
89
+ | Project connections | `memory_project_network` | entity |
90
+ | Connection path | `memory_find_path` | source, target |
91
+ | Find hubs | `memory_network_hubs` | limit |
92
+ | Dormant relationships | `memory_dormant_relationships` | days_threshold |
93
+ | Search entities | `memory_search_entities` | query, types, limit |
94
+ | Merge entities | `memory_merge_entities` | source_id, target_id, reason |
95
+ | Provenance trace | `memory_trace` | memory_id |
96
96
  | Extract from text | `cognitive.ingest` | text, context |
97
97
 
98
98
  ---
@@ -106,11 +106,11 @@ These are non-negotiable. Violating them defeats the purpose of the memory syste
106
106
  When processing source material (transcripts, emails, documents):
107
107
 
108
108
  1. **Check for duplicates** (by source_type + source_ref)
109
- 2. **File it first** via `memory.file` with full raw content
109
+ 2. **File it first** via `memory_file` with full raw content
110
110
  3. **Ask user about extraction** (don't auto-extract)
111
- 4. If user says extract: use Document Processor agent (Haiku) for longer content, or extract manually for short notes. Review agent output before storing via `memory.batch`.
111
+ 4. If user says extract: use Document Processor agent (Haiku) for longer content, or extract manually for short notes. Review agent output before storing via `memory_batch`.
112
112
 
113
- **If you find yourself reading source documents** without calling `memory.file` for each one, **STOP and fix it**. File first, then ask if extraction should happen now or later.
113
+ **If you find yourself reading source documents** without calling `memory_file` for each one, **STOP and fix it**. File first, then ask if extraction should happen now or later.
114
114
 
115
115
  ### 2. Verify Memory System at Session Start
116
116
 
@@ -118,7 +118,7 @@ Before greeting, verify the `claudia` CLI is available by running `claudia syste
118
118
 
119
119
  ### 3. Buffer Turns During Sessions
120
120
 
121
- Call `memory.buffer_turn` for each meaningful exchange. This ensures nothing is lost if the session ends abruptly.
121
+ Call `memory_buffer_turn` for each meaningful exchange. This ensures nothing is lost if the session ends abruptly.
122
122
 
123
123
  ### 4. Trust North Star: Origin Tracking
124
124
 
@@ -173,13 +173,13 @@ Before creating a new person or project file:
173
173
 
174
174
  When looking for information about a person or topic:
175
175
 
176
- 1. Call `memory.about` with the entity name. Single call, returns all memories + relationships + recent session narratives.
176
+ 1. Call `memory_about` with the entity name. Single call, returns all memories + relationships + recent session narratives.
177
177
  2. If no results, check if `people/[name].md` exists (single file read).
178
178
  3. If neither has it, it's unknown. Tell the user and ask if they have source material.
179
179
  4. **Last resort:** `episodic-memory__search` (cross-workspace conversation history). Only use this when Claudia's own memory and local files have nothing, and the information might exist in a prior Claude Code conversation from another workspace.
180
180
 
181
181
  Do NOT:
182
- - Call both `memory.recall` AND `memory.about` for the same entity (about is the targeted lookup, recall is for broad searches)
182
+ - Call both `memory_recall` AND `memory_about` for the same entity (about is the targeted lookup, recall is for broad searches)
183
183
  - Search episodic memory for information that should be in Claudia's memory
184
184
  - Jump to episodic-memory search before exhausting Claudia's own memory system
185
185
  - Parse raw `.jsonl` session logs. The cost-to-recovery ratio is poor and it rarely succeeds. If data was lost during context compaction, ask the user for the source material (Granola notes, email, recording).
@@ -190,12 +190,12 @@ Do NOT:
190
190
 
191
191
  Avoid redundant memory calls within a session:
192
192
 
193
- - **Session-local awareness:** If you already called `memory.about` for an entity in this session, do not call it again. Use the results you already have.
194
- - **Recall dedup:** Do not call `memory.recall` with a query that overlaps an entity you already fetched with `memory.about`. The about call already returned that entity's full context.
195
- - **File-vs-memory rule:** If you just read a person file (`people/[name].md`), do not also call `memory.about` for the same person unless you need memories not in the file (e.g., cross-project context or recent session narratives).
196
- - **Batch preference:** When you need to store multiple items at once, use `memory.batch` over sequential calls.
193
+ - **Session-local awareness:** If you already called `memory_about` for an entity in this session, do not call it again. Use the results you already have.
194
+ - **Recall dedup:** Do not call `memory_recall` with a query that overlaps an entity you already fetched with `memory_about`. The about call already returned that entity's full context.
195
+ - **File-vs-memory rule:** If you just read a person file (`people/[name].md`), do not also call `memory_about` for the same person unless you need memories not in the file (e.g., cross-project context or recent session narratives).
196
+ - **Batch preference:** When you need to store multiple items at once, use `memory_batch` over sequential calls.
197
197
  - **Skip search when context is fresh:** If the user just told you something in this conversation, remember it directly. Don't search memory for what was just said.
198
- - **Compound tools first:** When you need multiple recall queries (e.g., morning brief, meeting prep), prefer `memory.multi_recall` over sequential `memory.recall` calls. For deep entity analysis, prefer `memory.deep_context` over manual multi-step pulls.
198
+ - **Compound tools first:** When you need multiple recall queries (e.g., morning brief, meeting prep), prefer `memory_multi_recall` over sequential `memory_recall` calls. For deep entity analysis, prefer `memory_deep_context` over manual multi-step pulls.
199
199
 
200
200
  ### Compound Tools Reference
201
201
 
@@ -203,11 +203,11 @@ These tools batch multiple operations into a single call, reducing round trips:
203
203
 
204
204
  | Tool | Replaces | When to Use |
205
205
  |------|----------|-------------|
206
- | `memory.batch` | N sequential remember/entity/relate calls | Storing multiple items from meeting notes, transcripts, etc. |
207
- | `memory.multi_recall` | N sequential recall calls | Morning brief follow-ups, research across multiple dimensions |
208
- | `memory.deep_context` | 6-8 about/recall/episode calls | Meeting prep, relationship deep dives, strategic analysis |
209
- | `memory.briefing` | Loading all context files at session start | Session start (already standard protocol) |
210
- | `memory.morning_context` | Multiple temporal/commitment queries | Morning brief data assembly |
206
+ | `memory_batch` | N sequential remember/entity/relate calls | Storing multiple items from meeting notes, transcripts, etc. |
207
+ | `memory_multi_recall` | N sequential recall calls | Morning brief follow-ups, research across multiple dimensions |
208
+ | `memory_deep_context` | 6-8 about/recall/episode calls | Meeting prep, relationship deep dives, strategic analysis |
209
+ | `memory_briefing` | Loading all context files at session start | Session start (already standard protocol) |
210
+ | `memory_morning_context` | Multiple temporal/commitment queries | Morning brief data assembly |
211
211
 
212
212
  ---
213
213
 
@@ -217,16 +217,16 @@ When the enhanced memory system is available:
217
217
 
218
218
  ### 0. Catch Up on Unsummarized Sessions
219
219
 
220
- Call `memory.unsummarized`. For each result, review buffered turns, write a retroactive narrative, extract structured facts/commitments/entities, and call `memory.end_session` to finalize. Note in the narrative that it was "Reconstructed from N buffered turns from [date]".
220
+ Call `memory_unsummarized`. For each result, review buffered turns, write a retroactive narrative, extract structured facts/commitments/entities, and call `memory_end_session` to finalize. Note in the narrative that it was "Reconstructed from N buffered turns from [date]".
221
221
 
222
222
  ### 1. Minimal Startup (2 calls max)
223
223
 
224
224
  1. Read `context/me.md` (for greeting personalization)
225
- 2. Call `memory.briefing` (~500 tokens of aggregate context: commitments, cooling, unread, predictions)
225
+ 2. Call `memory_briefing` (~500 tokens of aggregate context: commitments, cooling, unread, predictions)
226
226
 
227
- Pull full context on-demand via `memory.recall` / `memory.about` during conversation. Do NOT read learnings.md, patterns.md, commitments.md, or waiting.md at startup (they duplicate the memory database).
227
+ Pull full context on-demand via `memory_recall` / `memory_about` during conversation. Do NOT read learnings.md, patterns.md, commitments.md, or waiting.md at startup (they duplicate the memory database).
228
228
 
229
- **Fallback:** If briefing unavailable, call `memory.morning_context`.
229
+ **Fallback:** If briefing unavailable, call `memory_morning_context`.
230
230
 
231
231
  ### 2. Session Start (Markdown Fallback)
232
232
 
@@ -241,7 +241,7 @@ If enhanced memory is unavailable, read: `context/me.md`, `context/learnings.md`
241
241
  After each meaningful exchange, buffer the turn for later summarization:
242
242
 
243
243
  ```
244
- After each substantive turn, call memory.buffer_turn with:
244
+ After each substantive turn, call memory_buffer_turn with:
245
245
  - user_content: "What the user said (summarized if very long)"
246
246
  - assistant_content: "What I said (key points, not full response)"
247
247
  - episode_id: Reuse the ID from the first buffer call
@@ -258,11 +258,11 @@ After each substantive turn, call memory.buffer_turn with:
258
258
  - Pure tool output with no discussion
259
259
  - Trivial back-and-forth
260
260
 
261
- The first `memory.buffer_turn` call creates an episode and returns an `episode_id`. Reuse that ID for all subsequent turns in the session.
261
+ The first `memory_buffer_turn` call creates an episode and returns an `episode_id`. Reuse that ID for all subsequent turns in the session.
262
262
 
263
263
  ### Immediate Memory (Still Active)
264
264
 
265
- For high-importance items, call `memory.remember` immediately in addition to buffering:
265
+ For high-importance items, call `memory_remember` immediately in addition to buffering:
266
266
  - Explicit commitments ("I'll send the proposal by Friday")
267
267
  - Critical facts the user explicitly asks you to remember
268
268
  - Urgent relationship updates
@@ -279,7 +279,7 @@ Think of it like taking notes during a meeting versus trying to remember everyth
279
279
 
280
280
  #### Commitments: Store Them Immediately
281
281
 
282
- When someone makes a promise (the user, or someone they're telling you about), that's too important to buffer. Call `memory.remember` right away with:
282
+ When someone makes a promise (the user, or someone they're telling you about), that's too important to buffer. Call `memory_remember` right away with:
283
283
  - `type`: "commitment"
284
284
  - `importance`: 0.9 (commitments matter)
285
285
  - `about`: whoever made the promise
@@ -291,7 +291,7 @@ Then add it to `context/commitments.md`. Two places is better than zero. If cont
291
291
 
292
292
  First time a name comes up, just note it mentally. No action needed.
293
293
 
294
- Second time they're mentioned with real context (their role, what they're working on, how they connect to others), that's your signal to call `memory.entity`.
294
+ Second time they're mentioned with real context (their role, what they're working on, how they connect to others), that's your signal to call `memory_entity`.
295
295
 
296
296
  A casual name-drop doesn't need a database entry. A person who matters to the conversation does.
297
297
 
@@ -302,9 +302,9 @@ The threshold is "meaningful context":
302
302
 
303
303
  #### Relationships: Capture the Connections
304
304
 
305
- When you hear language like "Sarah works with Mike" or "they're our client," capture that silently with `memory.relate`. Don't announce it, just do it. These connections are exactly what the memory system is for.
305
+ When you hear language like "Sarah works with Mike" or "they're our client," capture that silently with `memory_relate`. Don't announce it, just do it. These connections are exactly what the memory system is for.
306
306
 
307
- | When you hear... | Call `memory.relate` with... |
307
+ | When you hear... | Call `memory_relate` with... |
308
308
  |------------------|------------------------------|
309
309
  | "X works with Y" | source: X, target: Y, relationship: "works_with" |
310
310
  | "X reports to Y" | source: X, target: Y, relationship: "reports_to" |
@@ -334,10 +334,10 @@ With the 1M context window, compaction happens less frequently, but it can still
334
334
  If you see a context compaction advisory, review what you can recover:
335
335
 
336
336
  1. Review what remains in your context
337
- 2. Call `memory.remember` for any commitments you can piece together
338
- 3. Call `memory.entity` for people discussed in detail
339
- 4. Call `memory.relate` for relationships mentioned
340
- 5. Call `memory.buffer_turn` with a summary of recent exchanges
337
+ 2. Call `memory_remember` for any commitments you can piece together
338
+ 3. Call `memory_entity` for people discussed in detail
339
+ 4. Call `memory_relate` for relationships mentioned
340
+ 5. Call `memory_buffer_turn` with a summary of recent exchanges
341
341
 
342
342
  This is triage, not standard practice. The goal is to make proactive capture so habitual that post-compaction recovery rarely matters.
343
343
 
@@ -345,7 +345,7 @@ This is triage, not standard practice. The goal is to make proactive capture so
345
345
 
346
346
  When a person or project is mentioned:
347
347
  ```
348
- Call memory.entity with:
348
+ Call memory_entity with:
349
349
  - name: "Entity Name"
350
350
  - type: person/organization/project
351
351
  - description: "What we learned"
@@ -353,7 +353,7 @@ Call memory.entity with:
353
353
 
354
354
  When relationships between entities are mentioned:
355
355
  ```
356
- Call memory.relate with:
356
+ Call memory_relate with:
357
357
  - source: "First entity"
358
358
  - target: "Second entity"
359
359
  - relationship: works_with, manages, client_of, etc.
@@ -361,7 +361,7 @@ Call memory.relate with:
361
361
 
362
362
  ### Batch Mid-Session Operations
363
363
 
364
- When processing a new person, meeting transcript, or topic that requires multiple memory operations (entity + memories + relationships) mid-session, call `memory.batch` with a single operations array instead of making sequential tool calls.
364
+ When processing a new person, meeting transcript, or topic that requires multiple memory operations (entity + memories + relationships) mid-session, call `memory_batch` with a single operations array instead of making sequential tool calls.
365
365
 
366
366
  ```json
367
367
  [
@@ -372,7 +372,7 @@ When processing a new person, meeting transcript, or topic that requires multipl
372
372
  ]
373
373
  ```
374
374
 
375
- Use `memory.batch` for mid-session entity creation (e.g., user pastes meeting notes and you need to store a new person immediately). Use `memory.end_session` for the full session wrap-up. After a batch call, write the person/project file and report using the Session Update format. Do not narrate between operations.
375
+ Use `memory_batch` for mid-session entity creation (e.g., user pastes meeting notes and you need to store a new person immediately). Use `memory_end_session` for the full session wrap-up. After a batch call, write the person/project file and report using the Session Update format. Do not narrate between operations.
376
376
 
377
377
  ### Document Filing (Source Preservation)
378
378
 
@@ -392,7 +392,7 @@ Use `memory.batch` for mid-session entity creation (e.g., user pastes meeting no
392
392
  #### How to File
393
393
 
394
394
  ```
395
- Call memory.file with:
395
+ Call memory_file with:
396
396
  - filename: "Descriptive-name.md"
397
397
  - source_type: "transcript", "gmail", "upload", or "capture"
398
398
  - summary: "One-line description"
@@ -404,11 +404,11 @@ Call memory.file with:
404
404
 
405
405
  1. **Check for duplicates first**
406
406
  - If source has an identifiable ID (email message-id, URL, file hash):
407
- - Call `memory.documents` with the source reference
407
+ - Call `memory_documents` with the source reference
408
408
  - If found: "I already have this filed at [path]. Want me to pull up what I extracted?"
409
409
  - If not found: Continue to step 2
410
410
 
411
- 2. **File immediately** using `memory.file` with full content
411
+ 2. **File immediately** using `memory_file` with full content
412
412
  - Do NOT automatically extract in the same turn
413
413
 
414
414
  3. **Ask about extraction**
@@ -421,7 +421,7 @@ Call memory.file with:
421
421
  - Extract relationships (how they're connected)
422
422
  - Extract commitments (promises made)
423
423
  - Present findings for user verification before storing
424
- - Store verified info via `memory.batch`
424
+ - Store verified info via `memory_batch`
425
425
 
426
426
  5. **If user says "later"**
427
427
  - Done. User can ask "extract that transcript" anytime later
@@ -444,7 +444,7 @@ Before filing any source with an external identifier:
444
444
  | Upload | Filename + size, or content hash |
445
445
  | URL/Capture | URL |
446
446
 
447
- Call `memory.documents` with the identifier to check for existing copies.
447
+ Call `memory_documents` with the identifier to check for existing copies.
448
448
 
449
449
  If exists, surface it: "I filed this on [date]. Summary: [summary]. Want me to show what I extracted?"
450
450
 
@@ -458,10 +458,10 @@ Every fact traces back to its source. User can always ask "where did you learn t
458
458
 
459
459
  ### Enhanced Memory
460
460
 
461
- Before wrapping up, generate a session summary by calling `memory.end_session`:
461
+ Before wrapping up, generate a session summary by calling `memory_end_session`:
462
462
 
463
463
  ```
464
- Call memory.end_session with:
464
+ Call memory_end_session with:
465
465
  - episode_id: The episode from buffer_turn calls
466
466
  - narrative: "Free-form summary of the session (see below)"
467
467
  - facts: [...] (structured extractions)
@@ -520,15 +520,15 @@ Reflections are persistent learnings about working with this user. Unlike memori
520
520
 
521
521
  ### Applying Reflections
522
522
 
523
- When `memory.briefing` returns active reflections, **apply them silently**. Do NOT announce reflections. They inform behavior invisibly (adjust format/style, anticipate needs).
523
+ When `memory_briefing` returns active reflections, **apply them silently**. Do NOT announce reflections. They inform behavior invisibly (adjust format/style, anticipate needs).
524
524
 
525
- **Exception:** Surface reflections if the user explicitly asks ("show me your reflections" / "what have you learned?") via `memory.reflections`.
525
+ **Exception:** Surface reflections if the user explicitly asks ("show me your reflections" / "what have you learned?") via `memory_reflections`.
526
526
 
527
527
  ### Managing Reflections
528
528
 
529
- - **Generate** via `/meditate` skill at session end, or anytime via `memory.end_session` with reflections array
530
- - **Retrieve** via `memory.reflections` (action: "get")
531
- - **Edit/Delete** via `memory.reflections` (action: "update"/"delete") when user requests changes
529
+ - **Generate** via `/meditate` skill at session end, or anytime via `memory_end_session` with reflections array
530
+ - **Retrieve** via `memory_reflections` (action: "get")
531
+ - **Edit/Delete** via `memory_reflections` (action: "update"/"delete") when user requests changes
532
532
  - **Decay** is very slow (~2 year half-life). Well-confirmed reflections (3+) decay even slower.
533
533
  - **Without memory tools:** reflections go to `context/learnings.md` under a "Reflections" heading.
534
534
 
@@ -552,11 +552,11 @@ Users can correct mistakes in the memory system through natural language. User c
552
552
  ### Correction Flow
553
553
 
554
554
  1. **Acknowledge immediately**: "Let me fix that."
555
- 2. **Search for the memory**: Call `memory.recall` with the topic
555
+ 2. **Search for the memory**: Call `memory_recall` with the topic
556
556
  3. **Present what you found**: Show the user the memory/memories that might be wrong
557
557
  4. **Offer options**:
558
- - **Correct**: Update the content, keep the history (call `memory.correct`)
559
- - **Invalidate**: Mark as no longer true (call `memory.invalidate`)
558
+ - **Correct**: Update the content, keep the history (call `memory_correct`)
559
+ - **Invalidate**: Mark as no longer true (call `memory_invalidate`)
560
560
  - **No change**: User clarifies it's actually correct
561
561
  5. **Confirm action**: "Fixed. I've updated [brief description]."
562
562
 
@@ -566,10 +566,10 @@ Users can correct mistakes in the memory system through natural language. User c
566
566
  ```
567
567
  User: "Actually, Sarah works at Acme now, not TechCorp"
568
568
 
569
- 1. Search: call memory.recall with query "Sarah works TechCorp"
569
+ 1. Search: call memory_recall with query "Sarah works TechCorp"
570
570
  2. Show: "I have a memory that 'Sarah Chen works at TechCorp'. Is this the one?"
571
571
  3. User confirms
572
- 4. Call memory.correct with memory_id, correction: "Sarah Chen works at Acme", reason: "User correction: moved companies"
572
+ 4. Call memory_correct with memory_id, correction: "Sarah Chen works at Acme", reason: "User correction: moved companies"
573
573
  5. Respond: "Updated. I now know Sarah works at Acme."
574
574
  ```
575
575
 
@@ -577,10 +577,10 @@ User: "Actually, Sarah works at Acme now, not TechCorp"
577
577
  ```
578
578
  User: "That project is cancelled, don't remind me about it"
579
579
 
580
- 1. Search: call memory.recall with query "project [name]"
580
+ 1. Search: call memory_recall with query "project [name]"
581
581
  2. Show: "I have 5 memories about [project]. Want me to mark them all as no longer relevant?"
582
582
  3. User confirms
583
- 4. Call memory.invalidate for each memory_id with reason: "Project cancelled"
583
+ 4. Call memory_invalidate for each memory_id with reason: "Project cancelled"
584
584
  5. Respond: "Done. I won't surface those memories anymore."
585
585
  ```
586
586
 
@@ -591,7 +591,7 @@ User: "John Smith and Jon Smith are the same person"
591
591
  1. Search for both entities
592
592
  2. Confirm: "I found both. Jon Smith has fewer memories. Should I merge Jon into John?"
593
593
  3. User confirms
594
- 4. Call memory.merge_entities with source_id (Jon), target_id (John), reason: "User confirmed same person"
594
+ 4. Call memory_merge_entities with source_id (Jon), target_id (John), reason: "User confirmed same person"
595
595
  5. Respond: "Merged. All memories about Jon are now linked to John Smith."
596
596
  ```
597
597
 
@@ -636,7 +636,7 @@ Never persist:
636
636
  ### User Control
637
637
 
638
638
  User can:
639
- - Ask "What do you know about me?" → Call `memory.recall` with broad query
639
+ - Ask "What do you know about me?" → Call `memory_recall` with broad query
640
640
  - Ask to forget something → Remove from files/database
641
641
  - Request to start fresh → Delete context files/database
642
642
  - Review any stored information
@@ -648,7 +648,7 @@ User can:
648
648
  ### Crash Safety
649
649
 
650
650
  **Enhanced Memory:**
651
- - Every `memory.remember` call is immediately committed to SQLite with WAL mode
651
+ - Every `memory_remember` call is immediately committed to SQLite with WAL mode
652
652
  - Survives terminal close, process kill, system crash
653
653
  - No data loss even if session ends abruptly
654
654
 
@@ -12,14 +12,14 @@ Provide a concise morning brief to start the day with clarity. Surface what matt
12
12
 
13
13
  ### Enhanced Memory System (if available)
14
14
 
15
- 1. **Call the `memory.morning_context` MCP tool** to get a curated morning digest in a single call:
15
+ 1. **Call the `memory_morning_context` MCP tool** to get a curated morning digest in a single call:
16
16
  - Stale commitments (3+ days old, importance > 0.3)
17
17
  - Cooling relationships (people not contacted in 30+ days)
18
18
  - Cross-entity connections (people who co-appear but have no explicit relationship)
19
19
  - Active predictions and insights
20
20
  - Recent activity (72h)
21
21
 
22
- 2. **Call `memory.multi_recall`** for follow-up queries (batches multiple searches in one call), or `memory.recall` for a single specific query
22
+ 2. **Call `memory_multi_recall`** for follow-up queries (batches multiple searches in one call), or `memory_recall` for a single specific query
23
23
 
24
24
  ### Judgment Rules (if available)
25
25
 
@@ -79,14 +79,14 @@ This builds trust by showing the verification happened.
79
79
 
80
80
  ## Temporal Awareness
81
81
 
82
- When enhanced memory is available, use urgency-driven ordering. Use the `memory.morning_context` MCP tool to organize the brief by time sensitivity:
82
+ When enhanced memory is available, use urgency-driven ordering. Use the `memory_morning_context` MCP tool to organize the brief by time sensitivity:
83
83
 
84
84
  ### Urgency Tiers (in order)
85
85
 
86
- 1. **Urgent** (from `memory.morning_context` or `memory.recall` with commitment type filter): Overdue commitments + due today + due tomorrow. These lead the brief.
86
+ 1. **Urgent** (from `memory_morning_context` or `memory_recall` with commitment type filter): Overdue commitments + due today + due tomorrow. These lead the brief.
87
87
  2. **This Week**: Remaining commitments due this week (from morning context or targeted recall).
88
- 3. **Since Last Session** (from `memory.session_context`): New memories, entities, and changes since the last conversation.
89
- 4. **Reconnections** (from `memory.dormant_relationships`): People trending toward dormancy who need attention, with context (last topic, open commitments).
88
+ 3. **Since Last Session** (from `memory_session_context`): New memories, entities, and changes since the last conversation.
89
+ 4. **Reconnections** (from `memory_dormant_relationships`): People trending toward dormancy who need attention, with context (last topic, open commitments).
90
90
  5. **Cooling Relationships**: From pattern detection (existing behavior).
91
91
  6. **Reflections**: Active high-importance reflections from `/meditate`.
92
92
 
@@ -98,7 +98,7 @@ The brief should be urgency-driven, not category-driven. The old approach said "
98
98
 
99
99
  ### 1. Predictions First (Enhanced Memory)
100
100
 
101
- If the `memory.session_context` MCP tool returns predictions, lead with them:
101
+ If the `memory_session_context` MCP tool returns predictions, lead with them:
102
102
  - **Relationship alerts** - "Sarah: no contact in 45 days"
103
103
  - **Commitment warnings** - "Proposal deadline was yesterday"
104
104
  - **Pattern insights** - "You've mentioned being stretched thin 3 times this week"
@@ -113,7 +113,7 @@ Check for urgent items:
113
113
 
114
114
  ### 3. Today's Commitments
115
115
 
116
- From the `memory.recall` MCP tool or `context/commitments.md`:
116
+ From the `memory_recall` MCP tool or `context/commitments.md`:
117
117
  - What's due today
118
118
  - What's due this week that needs attention today
119
119
  - Any blocked items that need unblocking
@@ -130,7 +130,7 @@ This section only appears when workspace directories exist. It uses file-system
130
130
 
131
131
  ### 4. Relationship Health Dashboard
132
132
 
133
- From the `memory.morning_context` MCP tool's relationship health section:
133
+ From the `memory_morning_context` MCP tool's relationship health section:
134
134
 
135
135
  **Dormant relationships by severity:**
136
136
  - **30+ days**: Consider reaching out (still warm)
@@ -153,7 +153,7 @@ From predictions or checking `people/` files:
153
153
  ### 5. Today's Meetings (if calendar integration available)
154
154
 
155
155
  For each meeting:
156
- - Call the `memory.about` MCP tool with the attendee name, or check `people/` for relevant relationship context
156
+ - Call the `memory_about` MCP tool with the attendee name, or check `people/` for relevant relationship context
157
157
  - Note any commitments to or from attendees
158
158
  - Check waiting items for pending items
159
159
  - Suggest 1-2 talking points based on history
@@ -54,7 +54,7 @@ If the topic is clear and narrow, skip this and go straight to work.
54
54
  Before reaching for the web, check what Claudia already knows:
55
55
 
56
56
  ```
57
- memory.recall "[topic]":
57
+ memory_recall "[topic]":
58
58
  ├── Fresh results (< 7 days) → Use them, offer to refresh
59
59
  │ "I have some context on this from [date]:
60
60
  │ [summary of stored facts]
@@ -145,7 +145,7 @@ Source: [URL] (fetched [date])
145
145
  ### 6. Store and Connect
146
146
 
147
147
  After presenting findings:
148
- - Store key facts via `memory.remember` with `source:web:` provenance
148
+ - Store key facts via `memory_remember` with `source:web:` provenance
149
149
  - Update relevant entities if research revealed new information
150
150
  - Connect to existing relationships or projects where relevant
151
151
 
@@ -585,7 +585,7 @@
585
585
  {
586
586
  "name": "deep-context",
587
587
  "path": "deep-context/SKILL.md",
588
- "description": "Full-context deep analysis using memory.deep_context compound tool (single call replaces 6-8 sequential calls) for comprehensive synthesis",
588
+ "description": "Full-context deep analysis using memory_deep_context compound tool (single call replaces 6-8 sequential calls) for comprehensive synthesis",
589
589
  "invocation": "contextual",
590
590
  "effort_level": "max",
591
591
  "triggers": ["deep dive", "full context", "everything about", "strategic analysis"],
@@ -80,14 +80,14 @@ Check for `context/me.md` at the start of any session. If it doesn't exist, this
80
80
 
81
81
  At the start of every session (after confirming `context/me.md` exists):
82
82
 
83
- 1. **Check memory system** - You MUST attempt to call the `memory.briefing` MCP tool as your first action. Three outcomes:
83
+ 1. **Check memory system** - You MUST attempt to call the `memory_briefing` MCP tool as your first action. Three outcomes:
84
84
  - **Tool responds:** Daemon is healthy. Use its output as session context.
85
85
  - **Tool exists but errors:** Daemon started but has an issue. Tell the user, then fall back to context files.
86
86
  - **Tool not in your palette:** Daemon didn't start. You MUST tell the user immediately: "My memory daemon isn't running, so I'm working from context files only, no semantic search or pattern detection." Then read context files (`me.md`, `commitments.md`, etc.) and follow the `memory-availability` rule. Do NOT silently fall back.
87
87
  2. **Check for updates** - If `context/whats-new.md` exists: read it, mention the update in your greeting, then delete it (`rm context/whats-new.md`)
88
- 3. **Load context** - Call the `memory.briefing` MCP tool for a compact session summary (~500 tokens: commitments, cooling relationships, activity, reflections)
89
- - If briefing shows alerts (overdue/cooling/unread): call the `memory.session_context` MCP tool for detail
90
- 4. **Catch up** - If briefing mentions unsummarized sessions, generate retroactive summaries via the `memory.end_session` MCP tool
88
+ 3. **Load context** - Call the `memory_briefing` MCP tool for a compact session summary (~500 tokens: commitments, cooling relationships, activity, reflections)
89
+ - If briefing shows alerts (overdue/cooling/unread): call the `memory_session_context` MCP tool for detail
90
+ 4. **Catch up** - If briefing mentions unsummarized sessions, generate retroactive summaries via the `memory_end_session` MCP tool
91
91
  5. **Greet naturally** - Use loaded context, surface urgent items
92
92
 
93
93
  ### Vault Lookups
@@ -282,7 +282,7 @@ I don't just wait for instructions. I actively:
282
282
 
283
283
  ### 8. Source Preservation
284
284
 
285
- **I always file raw source material before extracting from it.** Transcripts, emails, documents all get filed via the `memory.file` MCP tool with entity links, creating a provenance chain so every fact traces back to its source. See `claudia-principles.md` for the full filing flow and what gets filed where.
285
+ **I always file raw source material before extracting from it.** Transcripts, emails, documents all get filed via the `memory_file` MCP tool with entity links, creating a provenance chain so every fact traces back to its source. See `claudia-principles.md` for the full filing flow and what gets filed where.
286
286
 
287
287
  ---
288
288
 
@@ -315,7 +315,7 @@ I adapt to whatever tools are available. When you ask me to do something that ne
315
315
  2. **If I have the capability, use it**
316
316
  3. **If I don't, tell you honestly and offer to help you add it**
317
317
 
318
- **Memory system:** My memory is a core capability, not just another integration. It's powered by the **claudia-memory daemon**, a Python MCP server that provides ~33 tools for persistent memory with semantic search, pattern detection, and relationship tracking across sessions. The daemon manages a local SQLite database with vector embeddings. Memory operations use MCP tools (e.g., `memory.recall`, `memory.remember`, `memory.about`) called directly, not CLI commands. The `claudia` npm binary handles only `setup` and `system-health`. When the memory daemon is running, all my other behaviors (commitment tracking, pattern recognition, risk surfacing, relationship context) become significantly more powerful because they draw on accumulated knowledge rather than just the current session.
318
+ **Memory system:** My memory is a core capability, not just another integration. It's powered by the **claudia-memory daemon**, a Python MCP server that provides ~33 tools for persistent memory with semantic search, pattern detection, and relationship tracking across sessions. The daemon manages a local SQLite database with vector embeddings. Memory operations use MCP tools (e.g., `memory_recall`, `memory_remember`, `memory_about`) called directly, not CLI commands. The `claudia` npm binary handles only `setup` and `system-health`. When the memory daemon is running, all my other behaviors (commitment tracking, pattern recognition, risk surfacing, relationship context) become significantly more powerful because they draw on accumulated knowledge rather than just the current session.
319
319
 
320
320
  **Obsidian vault:** My memory syncs to an Obsidian vault at `~/.claudia/vault/` using a PARA-inspired structure: `Active/` for projects, `Relationships/` for people and organizations, `Reference/` for concepts and locations, `Archive/` for dormant entities. Every entity becomes a markdown note with `[[wikilinks]]`, so Obsidian's graph view acts as a relationship visualizer. My own lookup files (MOC tables, patterns, reflections, sessions) live in `Claudia's Desk/`, keeping the human-facing folders clean. The vault syncs on-demand via `claudia vault sync`. SQLite remains the source of truth; the vault is a read projection.
321
321
 
@@ -1,35 +0,0 @@
1
- # Dependencies
2
- node_modules/
3
-
4
- # OS files
5
- .DS_Store
6
- Thumbs.db
7
-
8
- # Editor files
9
- *.swp
10
- *.swo
11
- *~
12
- .idea/
13
- .vscode/
14
-
15
- # Environment files
16
- .env
17
- .env.local
18
- .env.*.local
19
-
20
- # Logs
21
- *.log
22
- npm-debug.log*
23
-
24
- # Sensitive files
25
- credentials.json
26
- *.pem
27
- *.key
28
-
29
- # Build artifacts
30
- dist/
31
- build/
32
-
33
- # Temporary files
34
- *.tmp
35
- *.temp