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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Memory Commitment
|
|
2
|
+
|
|
3
|
+
This rule is always active. Follow it silently. Do not cite this file by name in conversation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The principle
|
|
8
|
+
|
|
9
|
+
**Save canonical facts to memory IMMEDIATELY when they emerge. Do not batch to /meditate.**
|
|
10
|
+
|
|
11
|
+
The memory database is what makes information recoverable across sessions. Artifacts on disk (markdown files, GitHub repos, PDFs) are not searchable from future sessions unless I happen to remember the path. Memory entries with proper entity links surface through both semantic search and entity browsing.
|
|
12
|
+
|
|
13
|
+
If a fact lives only in a file, it does not exist for future-me.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Save now when ANY of these happen
|
|
18
|
+
|
|
19
|
+
1. **User states a canonical fact** that is unlikely to change: hex code, URL, EIN, address, password location, locked decision, version number, identifier, credential location.
|
|
20
|
+
|
|
21
|
+
2. **User shares substantive source material** (>500 words, a transcript, a document, a brief, a prompt, a strategy doc). File it via `memory_file` BEFORE extracting from it.
|
|
22
|
+
|
|
23
|
+
3. **User overrides or corrects a stored memory or preference.** The correction is more important than the original. Save it with high importance and reference what it supersedes.
|
|
24
|
+
|
|
25
|
+
4. **A new project, repo, entity, integration, credential, or tool is created** during the session. Create the entity, then attach facts about it.
|
|
26
|
+
|
|
27
|
+
5. **User uses a trigger phrase**: "lock this in," "remember this," "this is canonical," "this is locked," "save this for later," "important to remember," "for the record," "don't forget."
|
|
28
|
+
|
|
29
|
+
6. **A judgment-relevant decision is made** (priorities, escalations, overrides, surfacing rules, delegation preferences). These also feed `context/judgment.yaml` via /meditate, but the fact itself goes into memory immediately.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## The test
|
|
34
|
+
|
|
35
|
+
Before deciding "I'll save this later," ask:
|
|
36
|
+
|
|
37
|
+
> **If I came back tomorrow with no transcript, would I need this fact to do good work?**
|
|
38
|
+
|
|
39
|
+
If yes, save it now. The test is meant to be cheap to apply: when in doubt, save.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## How to save
|
|
44
|
+
|
|
45
|
+
| Need | Tool | Use when |
|
|
46
|
+
|------|------|----------|
|
|
47
|
+
| One fact | `memory_remember` | Single fact emerges in conversation |
|
|
48
|
+
| Bundled save (entity + facts + relationships) | `memory_batch` | Processing a substantive artifact, transcript, document, or multi-fact moment |
|
|
49
|
+
| Raw source material before extraction | `memory_file` | User shares a document, transcript, email, brief |
|
|
50
|
+
| New relationship between entities | `memory_relate` | Two existing entities connect in a new way |
|
|
51
|
+
| Verify or build on prior memory | `memory_recall` / `memory_about` | Before saving, check if a related memory exists to update instead of duplicate |
|
|
52
|
+
|
|
53
|
+
**Prefer `memory_batch` over multiple `memory_remember` calls.** One round-trip handles entity creation, fact-saves, and relationships together. Faster, cleaner, less likely to be skipped.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## What NOT to save
|
|
58
|
+
|
|
59
|
+
Per the data-freshness rule:
|
|
60
|
+
|
|
61
|
+
- Volatile counts, statuses, progress numbers ("13K subscribers," "9 interviews completed," "94% stall rate")
|
|
62
|
+
- Dated state snapshots that can be re-derived from source files
|
|
63
|
+
- Anything that should live in a context file or canonical source instead
|
|
64
|
+
- Information already documented in CLAUDE.md or auto-memory MEMORY.md
|
|
65
|
+
|
|
66
|
+
When you encounter a useful but volatile fact, save a **pointer** to where the canonical source lives, not the value itself. Example: instead of "subscriber count is 13,000," save "subscriber count lives on the live homepage; check there for current."
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Substantive-artifact discipline
|
|
71
|
+
|
|
72
|
+
When producing a substantive artifact (brand bible, multi-doc plan, comprehensive analysis, custom skill, deployed integration), end the artifact-production block with a memory commitment pass:
|
|
73
|
+
|
|
74
|
+
1. List the canonical facts the artifact embodies.
|
|
75
|
+
2. Call `memory_batch` to save them as one bundle, with proper entity links and source context referencing the artifact location.
|
|
76
|
+
3. Mark the highest-leverage fact as `critical: true` only when it's a personal-identity-class fact (life motto, ethical lock, security-relevant rule).
|
|
77
|
+
|
|
78
|
+
The artifact lives on disk. The facts must live in memory too.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Why this rule exists
|
|
83
|
+
|
|
84
|
+
A common failure mode: an agent produces a multi-file artifact (brand bible, integration setup, comprehensive plan) over the course of a session. The artifact contains canonical facts (color palettes, credentials, decisions, URLs). End-of-session reflection captures only high-level reflections, not the specific facts. Days later, when those facts are needed again, they exist only on disk and the agent has no way to surface them through memory queries.
|
|
85
|
+
|
|
86
|
+
Result: the same facts get re-elicited, re-decided, re-committed. The memory system was the substrate, but it was treated as the afterthought.
|
|
87
|
+
|
|
88
|
+
This rule prevents that pattern.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
*Memory is the substrate, not the afterthought. Save as you go.*
|
|
@@ -39,6 +39,32 @@
|
|
|
39
39
|
}
|
|
40
40
|
]
|
|
41
41
|
}
|
|
42
|
+
],
|
|
43
|
+
"UserPromptSubmit": [
|
|
44
|
+
{
|
|
45
|
+
"matcher": "",
|
|
46
|
+
"hooks": [
|
|
47
|
+
{
|
|
48
|
+
"type": "command",
|
|
49
|
+
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/user-prompt-capture.py\" 2>/dev/null || python \"$CLAUDE_PROJECT_DIR/.claude/hooks/user-prompt-capture.py\" 2>/dev/null || true",
|
|
50
|
+
"timeout": 3000,
|
|
51
|
+
"statusMessage": ""
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"SessionEnd": [
|
|
57
|
+
{
|
|
58
|
+
"matcher": "",
|
|
59
|
+
"hooks": [
|
|
60
|
+
{
|
|
61
|
+
"type": "command",
|
|
62
|
+
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/session-summary.py\" 2>/dev/null || python \"$CLAUDE_PROJECT_DIR/.claude/hooks/session-summary.py\" 2>/dev/null || true",
|
|
63
|
+
"timeout": 10000,
|
|
64
|
+
"statusMessage": "Generating daily session summary..."
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
42
68
|
]
|
|
43
69
|
}
|
|
44
70
|
}
|
|
@@ -30,7 +30,7 @@ User provides one of:
|
|
|
30
30
|
|
|
31
31
|
**Always file the raw transcript/notes FIRST.** This is not optional. Source preservation creates provenance: every extracted fact can trace back to where it came from.
|
|
32
32
|
|
|
33
|
-
Call the `
|
|
33
|
+
Call the `memory_file` MCP tool with:
|
|
34
34
|
- `filename`: "YYYY-MM-DD-[person]-[topic].md"
|
|
35
35
|
- `source_type`: "transcript"
|
|
36
36
|
- `summary`: "Brief 1-line summary of the meeting"
|
|
@@ -71,7 +71,7 @@ The file is automatically routed to the right folder:
|
|
|
71
71
|
- Confirm entity names match existing entities
|
|
72
72
|
- Adjust or remove any questionable extractions
|
|
73
73
|
|
|
74
|
-
4. Call the `
|
|
74
|
+
4. Call the `memory_batch` MCP tool with the reviewed operations array
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
**Fallback: Manual extraction** (use when agent is unavailable or for very short notes)
|
|
@@ -101,9 +101,9 @@ The file is automatically routed to the right folder:
|
|
|
101
101
|
|
|
102
102
|
### 4. Link Provenance
|
|
103
103
|
|
|
104
|
-
After extracting memories (facts, commitments) via the `
|
|
104
|
+
After extracting memories (facts, commitments) via the `memory_batch` or `memory_remember` MCP tools:
|
|
105
105
|
|
|
106
|
-
Call the `
|
|
106
|
+
Call the `memory_file` MCP tool with the `memory_ids` parameter set to the IDs of the memories you extracted. This links the stored transcript to the memories extracted from it, creating the provenance chain: memory -> document -> file on disk.
|
|
107
107
|
|
|
108
108
|
Now the user can ask "where did you learn that Sarah prefers async communication?" and you can point to the exact transcript.
|
|
109
109
|
|
|
@@ -128,7 +128,7 @@ For each participant in the meeting:
|
|
|
128
128
|
|
|
129
129
|
- Add new commitments to `context/commitments.md` (ask for confirmation on wording and deadline)
|
|
130
130
|
- Add new waiting items to `context/waiting.md`
|
|
131
|
-
- If memory MCP tools are available, also store via the `
|
|
131
|
+
- If memory MCP tools are available, also store via the `memory_remember` MCP tool
|
|
132
132
|
|
|
133
133
|
#### 5c. Update workspace files (if applicable)
|
|
134
134
|
|
|
@@ -226,7 +226,7 @@ Ask for confirmation on:
|
|
|
226
226
|
|
|
227
227
|
## Quality Checklist
|
|
228
228
|
|
|
229
|
-
- [ ] **Raw transcript/notes filed** (`
|
|
229
|
+
- [ ] **Raw transcript/notes filed** (`memory_file` MCP tool called with full content)
|
|
230
230
|
- [ ] Memories linked to source document (provenance chain complete)
|
|
231
231
|
- [ ] Every action item has an owner
|
|
232
232
|
- [ ] Every commitment has a deadline (even approximate)
|
|
@@ -5,7 +5,7 @@ prompts:
|
|
|
5
5
|
- prompt: "Here are my notes from a call with Sarah Chen about the Q4 roadmap. She mentioned they're moving to microservices, the migration is due by March 15. I promised to send her our API docs by Friday. Also met her colleague James Wright who leads the platform team."
|
|
6
6
|
expectations:
|
|
7
7
|
- "extracts at least one commitment (send API docs by Friday)"
|
|
8
|
-
- "files the source material via
|
|
8
|
+
- "files the source material via memory_file before extracting"
|
|
9
9
|
- "identifies Sarah Chen and James Wright as entities"
|
|
10
10
|
- "detects the March 15 deadline"
|
|
11
11
|
- "uses structured output format with emoji headers"
|
|
@@ -18,7 +18,7 @@ Comprehensive deep analysis that leverages the full context window. Pulls memori
|
|
|
18
18
|
|
|
19
19
|
## The Deep Pull
|
|
20
20
|
|
|
21
|
-
Call the `
|
|
21
|
+
Call the `memory_deep_context` MCP tool with the target entity or topic. This compound tool executes the full pipeline server-side in a single call:
|
|
22
22
|
|
|
23
23
|
1. **Entity core** (limit=50): Everything known about the target (memories, relationships, metadata)
|
|
24
24
|
2. **Semantic recall** (limit=50): Broad search to catch indirect references and related topics
|
|
@@ -44,13 +44,13 @@ All limits are configurable via the tool's input:
|
|
|
44
44
|
|
|
45
45
|
### Fallback (when memory daemon is unavailable)
|
|
46
46
|
|
|
47
|
-
If the MCP tool is not available, execute these queries manually using `
|
|
47
|
+
If the MCP tool is not available, execute these queries manually using `memory_about` and `memory_recall` MCP tools sequentially:
|
|
48
48
|
|
|
49
|
-
1. `
|
|
50
|
-
2. `
|
|
51
|
-
3. `
|
|
52
|
-
4. `
|
|
53
|
-
5. `
|
|
49
|
+
1. `memory_about` with the target (limit=50)
|
|
50
|
+
2. `memory_recall` with the target (limit=50)
|
|
51
|
+
3. `memory_about` for each of the top 3 connected entities (limit=10)
|
|
52
|
+
4. `memory_recall` with types=["observation","learning","commitment"] (limit=30)
|
|
53
|
+
5. `memory_recall` for "session with [target]" (limit=20)
|
|
54
54
|
6. Deduplicate by memory ID across all steps
|
|
55
55
|
|
|
56
56
|
If the memory daemon itself is down, fall back to reading `context/` files and `people/*.md` directly. Note degraded mode in output.
|
|
@@ -40,8 +40,8 @@ Silently retrieve:
|
|
|
40
40
|
- Existing reflections to avoid duplication
|
|
41
41
|
- Active commitments and relationship states
|
|
42
42
|
|
|
43
|
-
- Call the `
|
|
44
|
-
- Call the `
|
|
43
|
+
- Call the `memory_reflections` MCP tool to see what already exists
|
|
44
|
+
- Call the `memory_session_context` MCP tool for recent context (if available)
|
|
45
45
|
|
|
46
46
|
### Step 2: Generate Reflections
|
|
47
47
|
|
|
@@ -148,7 +148,7 @@ User responses:
|
|
|
148
148
|
|
|
149
149
|
### Step 5: Store and Close
|
|
150
150
|
|
|
151
|
-
Call the `
|
|
151
|
+
Call the `memory_end_session` MCP tool with:
|
|
152
152
|
- `narrative`: Brief session summary
|
|
153
153
|
- `reflections`: Array of approved reflections with type, content, and optional about fields
|
|
154
154
|
- Other structured extractions (facts, commitments, entities) as needed
|
|
@@ -203,8 +203,8 @@ When similar reflections accumulate over time:
|
|
|
203
203
|
### Retrieval
|
|
204
204
|
|
|
205
205
|
Reflections surface through:
|
|
206
|
-
- The `
|
|
207
|
-
- The `
|
|
206
|
+
- The `memory_reflections` MCP tool for explicit retrieval
|
|
207
|
+
- The `memory_session_context` MCP tool includes relevant reflections
|
|
208
208
|
- Semantic search matches reflections to current context
|
|
209
209
|
|
|
210
210
|
---
|
|
@@ -236,8 +236,8 @@ User: "That thing you learned about me preferring bullet points -
|
|
|
236
236
|
that's only for technical content, not conversations."
|
|
237
237
|
|
|
238
238
|
Claudia:
|
|
239
|
-
1. Call the `
|
|
240
|
-
2. Call the `
|
|
239
|
+
1. Call the `memory_reflections` MCP tool with query: "bullet points" to find the reflection
|
|
240
|
+
2. Call the `memory_reflections` MCP tool with action: "update", id: <id>, content: "..." to update
|
|
241
241
|
3. Confirm: "Updated. I'll keep that distinction in mind."
|
|
242
242
|
```
|
|
243
243
|
|
|
@@ -245,8 +245,8 @@ Claudia:
|
|
|
245
245
|
User: "Delete the reflection about Monday mornings"
|
|
246
246
|
|
|
247
247
|
Claudia:
|
|
248
|
-
1. Search for the reflection via `
|
|
249
|
-
2. Call the `
|
|
248
|
+
1. Search for the reflection via `memory_reflections` MCP tool
|
|
249
|
+
2. Call the `memory_reflections` MCP tool with action: "delete", id: <id> to delete
|
|
250
250
|
3. Confirm: "Done, I've removed that."
|
|
251
251
|
```
|
|
252
252
|
|
|
@@ -254,7 +254,7 @@ Claudia:
|
|
|
254
254
|
User: "Show me all your reflections about me"
|
|
255
255
|
|
|
256
256
|
Claudia:
|
|
257
|
-
1. Call the `
|
|
257
|
+
1. Call the `memory_reflections` MCP tool with limit: 50
|
|
258
258
|
2. Format nicely with timeline info
|
|
259
259
|
3. Offer to edit or delete any
|
|
260
260
|
```
|
|
@@ -8,7 +8,7 @@ prompts:
|
|
|
8
8
|
- "generates reflections, not just a session summary"
|
|
9
9
|
- "captures communication preferences observed during the session"
|
|
10
10
|
- "extracts judgment rules from decisions (e.g., pricing approach)"
|
|
11
|
-
- "calls
|
|
11
|
+
- "calls memory_end_session with narrative, facts, and reflections"
|
|
12
12
|
- "narrative captures emotional tone (frustration about pricing)"
|
|
13
13
|
- "identifies unresolved threads worth revisiting"
|
|
14
14
|
|
|
@@ -21,12 +21,12 @@ Or naturally:
|
|
|
21
21
|
|
|
22
22
|
### Primary: Deep Context (one call)
|
|
23
23
|
|
|
24
|
-
Call the `
|
|
24
|
+
Call the `memory_deep_context` MCP tool with the person's name. This returns everything in one round trip: entity info, all memories, connected entities, temporal items (commitments, observations), and episode history. Use this data for all sections below.
|
|
25
25
|
|
|
26
|
-
If deep_context is unavailable, fall back to sequential calls: `
|
|
26
|
+
If deep_context is unavailable, fall back to sequential calls: `memory_about` for the entity, then `memory_recall` for broader context.
|
|
27
27
|
|
|
28
28
|
### 1. Person Context
|
|
29
|
-
From `
|
|
29
|
+
From `memory_deep_context` result (or `people/[person].md` as fallback):
|
|
30
30
|
- Role and organization
|
|
31
31
|
- Relationship history
|
|
32
32
|
- Last contact and topics
|
|
@@ -38,7 +38,7 @@ Provide a dashboard view of the memory system's health, including entity counts,
|
|
|
38
38
|
|
|
39
39
|
### Step 1: Gather Statistics
|
|
40
40
|
|
|
41
|
-
Use the `
|
|
41
|
+
Use the `memory_system_health` MCP tool or direct SQLite queries with the schema above.
|
|
42
42
|
|
|
43
43
|
Alternatively, use the Claudia CLI to get current system state:
|
|
44
44
|
|