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
@@ -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 `memory.file` MCP tool with:
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 `memory.batch` MCP tool with the reviewed operations array
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 `memory.batch` or `memory.remember` MCP tools:
104
+ After extracting memories (facts, commitments) via the `memory_batch` or `memory_remember` MCP tools:
105
105
 
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.
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 `memory.remember` MCP tool
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** (`memory.file` MCP tool called with full content)
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 memory.file before extracting"
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 `memory.deep_context` MCP tool with the target entity or topic. This compound tool executes the full pipeline server-side in a single call:
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 `memory.about` and `memory.recall` MCP tools sequentially:
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. `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)
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 `memory.reflections` MCP tool to see what already exists
44
- - Call the `memory.session_context` MCP tool for recent context (if available)
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 `memory.end_session` MCP tool with:
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 `memory.reflections` MCP tool for explicit retrieval
207
- - The `memory.session_context` MCP tool includes relevant reflections
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 `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
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 `memory.reflections` MCP tool
249
- 2. Call the `memory.reflections` MCP tool with action: "delete", id: <id> to delete
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 `memory.reflections` MCP tool with limit: 50
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 memory.end_session with narrative, facts, and reflections"
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 `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.
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: `memory.about` for the entity, then `memory.recall` for broader context.
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 `memory.deep_context` result (or `people/[person].md` as fallback):
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 `memory.system_health` MCP tool or direct SQLite queries with the schema above.
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