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.
- package/CHANGELOG.md +79 -0
- package/bin/index.js +213 -5
- package/bin/manifest-lib.js +245 -0
- package/memory-daemon/claudia_memory/daemon/health.py +1 -1
- package/memory-daemon/claudia_memory/daemon/scheduler.py +1 -1
- package/memory-daemon/claudia_memory/mcp/server.py +132 -123
- package/memory-daemon/claudia_memory/services/consolidate.py +1 -1
- package/memory-daemon/claudia_memory/services/remember.py +1 -1
- package/package.json +6 -2
- package/template-v2/.claude/hooks/__pycache__/post-tool-capture.cpython-313.pyc +0 -0
- package/template-v2/.claude/hooks/__pycache__/session-health-check.cpython-313.pyc +0 -0
- package/template-v2/.claude/hooks/__pycache__/user-prompt-capture.cpython-313.pyc +0 -0
- package/template-v2/.claude/hooks/hooks.json +11 -11
- package/template-v2/.claude/hooks/post-tool-capture.py +110 -10
- package/template-v2/.claude/hooks/pre-compact.py +4 -4
- package/template-v2/.claude/hooks/pre-compact.sh +1 -1
- package/template-v2/.claude/hooks/session-health-check.py +52 -4
- package/template-v2/.claude/hooks/session-summary.py +399 -0
- package/template-v2/.claude/hooks/user-prompt-capture.py +123 -0
- package/template-v2/.claude/manifest.json +73 -0
- package/template-v2/.claude/rules/claudia-principles.md +2 -2
- package/template-v2/.claude/rules/memory-availability.md +3 -3
- package/template-v2/.claude/rules/memory-commitment.md +92 -0
- package/template-v2/.claude/settings.local.json +26 -0
- package/template-v2/.claude/skills/capture-meeting/SKILL.md +6 -6
- package/template-v2/.claude/skills/capture-meeting/evals/basic.yaml +1 -1
- package/template-v2/.claude/skills/deep-context/SKILL.md +7 -7
- package/template-v2/.claude/skills/meditate/SKILL.md +10 -10
- package/template-v2/.claude/skills/meditate/evals/basic.yaml +1 -1
- package/template-v2/.claude/skills/meeting-prep/SKILL.md +3 -3
- package/template-v2/.claude/skills/memory-health/SKILL.md +1 -1
- package/template-v2/.claude/skills/memory-manager.md +85 -85
- package/template-v2/.claude/skills/morning-brief/SKILL.md +10 -10
- package/template-v2/.claude/skills/research/SKILL.md +2 -2
- package/template-v2/.claude/skills/skill-index.json +1 -1
- package/template-v2/CLAUDE.md +6 -6
- package/template-v2/.claude/hooks/__pycache__/pre-compact.cpython-313.pyc +0 -0
- 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., `
|
|
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 | `
|
|
30
|
-
| Search memories | `
|
|
31
|
-
| Entity context | `
|
|
32
|
-
| Create/update entity | `
|
|
33
|
-
| Link entities | `
|
|
34
|
-
| Correct memory | `
|
|
35
|
-
| Invalidate memory | `
|
|
36
|
-
| Session briefing | `
|
|
37
|
-
| Multi-query search | `
|
|
38
|
-
| Deep context | `
|
|
39
|
-
| Manage reflections | `
|
|
40
|
-
| Run consolidation | `
|
|
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 | `
|
|
47
|
-
| Search documents | `
|
|
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 `
|
|
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 | `
|
|
70
|
-
| End session | `
|
|
71
|
-
| Load full context | `
|
|
72
|
-
| Check unsummarized | `
|
|
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 | `
|
|
89
|
-
| Project connections | `
|
|
90
|
-
| Connection path | `
|
|
91
|
-
| Find hubs | `
|
|
92
|
-
| Dormant relationships | `
|
|
93
|
-
| Search entities | `
|
|
94
|
-
| Merge entities | `
|
|
95
|
-
| Provenance trace | `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
194
|
-
- **Recall dedup:** Do not call `
|
|
195
|
-
- **File-vs-memory rule:** If you just read a person file (`people/[name].md`), do not also call `
|
|
196
|
-
- **Batch preference:** When you need to store multiple items at once, use `
|
|
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 `
|
|
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
|
-
| `
|
|
207
|
-
| `
|
|
208
|
-
| `
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
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 `
|
|
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 `
|
|
225
|
+
2. Call `memory_briefing` (~500 tokens of aggregate context: commitments, cooling, unread, predictions)
|
|
226
226
|
|
|
227
|
-
Pull full context on-demand via `
|
|
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 `
|
|
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
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
338
|
-
3. Call `
|
|
339
|
-
4. Call `
|
|
340
|
-
5. Call `
|
|
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
|
|
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
|
|
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 `
|
|
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 `
|
|
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
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
461
|
+
Before wrapping up, generate a session summary by calling `memory_end_session`:
|
|
462
462
|
|
|
463
463
|
```
|
|
464
|
-
Call
|
|
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 `
|
|
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 `
|
|
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 `
|
|
530
|
-
- **Retrieve** via `
|
|
531
|
-
- **Edit/Delete** via `
|
|
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 `
|
|
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 `
|
|
559
|
-
- **Invalidate**: Mark as no longer true (call `
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
89
|
-
4. **Reconnections** (from `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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
|
-
|
|
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 `
|
|
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
|
|
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"],
|
package/template-v2/CLAUDE.md
CHANGED
|
@@ -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 `
|
|
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 `
|
|
89
|
-
- If briefing shows alerts (overdue/cooling/unread): call the `
|
|
90
|
-
4. **Catch up** - If briefing mentions unsummarized sessions, generate retroactive summaries via the `
|
|
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 `
|
|
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., `
|
|
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
|
|
|
Binary file
|
package/template-v2/gitignore
DELETED
|
@@ -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
|