@pcircle/memesh 4.5.0 → 4.6.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/.claude-plugin/marketplace.json +5 -3
- package/.claude-plugin/plugin.json +6 -4
- package/.mcp.json +1 -1
- package/AGENTS.md +95 -0
- package/README.de.md +130 -39
- package/README.md +188 -43
- package/README.zh-TW.md +133 -41
- package/dashboard/dist/index.html +9 -9
- package/dist/cli/view-live.js +3 -3
- package/dist/core/analytics.d.ts +3 -3
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/auto-tagger.d.ts.map +1 -1
- package/dist/core/auto-tagger.js +4 -9
- package/dist/core/auto-tagger.js.map +1 -1
- package/dist/core/briefing.d.ts +8 -0
- package/dist/core/briefing.d.ts.map +1 -0
- package/dist/core/briefing.js +91 -0
- package/dist/core/briefing.js.map +1 -0
- package/dist/core/capture-flag.d.ts +5 -0
- package/dist/core/capture-flag.d.ts.map +1 -0
- package/dist/core/capture-flag.js +10 -0
- package/dist/core/capture-flag.js.map +1 -0
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/conflict-candidates.d.ts +20 -0
- package/dist/core/conflict-candidates.d.ts.map +1 -0
- package/dist/core/conflict-candidates.js +79 -0
- package/dist/core/conflict-candidates.js.map +1 -0
- package/dist/core/conflict-judge.d.ts +47 -0
- package/dist/core/conflict-judge.d.ts.map +1 -0
- package/dist/core/conflict-judge.js +189 -0
- package/dist/core/conflict-judge.js.map +1 -0
- package/dist/core/demo.d.ts +2 -2
- package/dist/core/demo.d.ts.map +1 -1
- package/dist/core/demo.js.map +1 -1
- package/dist/core/digest-validator.d.ts.map +1 -1
- package/dist/core/digest-validator.js +3 -5
- package/dist/core/digest-validator.js.map +1 -1
- package/dist/core/doctor.d.ts +3 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +207 -85
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts +20 -9
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +416 -58
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts +7 -5
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +38 -9
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/extractor.d.ts.map +1 -1
- package/dist/core/extractor.js +2 -1
- package/dist/core/extractor.js.map +1 -1
- package/dist/core/failure-analyzer.d.ts.map +1 -1
- package/dist/core/failure-analyzer.js +7 -12
- package/dist/core/failure-analyzer.js.map +1 -1
- package/dist/core/graph.d.ts +4 -4
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js.map +1 -1
- package/dist/core/install-channel.d.ts +1 -1
- package/dist/core/install-channel.d.ts.map +1 -1
- package/dist/core/install-channel.js +16 -5
- package/dist/core/install-channel.js.map +1 -1
- package/dist/core/install-hooks.d.ts +6 -0
- package/dist/core/install-hooks.d.ts.map +1 -1
- package/dist/core/install-hooks.js +0 -0
- package/dist/core/install-hooks.js.map +1 -1
- package/dist/core/json-utils.d.ts +1 -0
- package/dist/core/json-utils.d.ts.map +1 -1
- package/dist/core/json-utils.js +19 -10
- package/dist/core/json-utils.js.map +1 -1
- package/dist/core/kg-backfill.d.ts +3 -4
- package/dist/core/kg-backfill.d.ts.map +1 -1
- package/dist/core/kg-backfill.js +1 -4
- package/dist/core/kg-backfill.js.map +1 -1
- package/dist/core/lesson-engine.d.ts +1 -0
- package/dist/core/lesson-engine.d.ts.map +1 -1
- package/dist/core/lesson-engine.js +1 -0
- package/dist/core/lesson-engine.js.map +1 -1
- package/dist/core/lifecycle.d.ts +4 -4
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +15 -22
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/llm-client.d.ts.map +1 -1
- package/dist/core/llm-client.js +3 -6
- package/dist/core/llm-client.js.map +1 -1
- package/dist/core/llm-telemetry.d.ts +4 -4
- package/dist/core/llm-telemetry.d.ts.map +1 -1
- package/dist/core/llm-telemetry.js +1 -1
- package/dist/core/llm-telemetry.js.map +1 -1
- package/dist/core/memory-tool.d.ts.map +1 -1
- package/dist/core/memory-tool.js +8 -4
- package/dist/core/memory-tool.js.map +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +41 -17
- package/dist/core/operations.js.map +1 -1
- package/dist/core/paths.d.ts +3 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +67 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/patterns.d.ts +2 -2
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/project-tags.d.ts +3 -3
- package/dist/core/project-tags.d.ts.map +1 -1
- package/dist/core/project-tags.js.map +1 -1
- package/dist/core/projects.d.ts +2 -2
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js.map +1 -1
- package/dist/core/prompt-safety.d.ts +1 -0
- package/dist/core/prompt-safety.d.ts.map +1 -1
- package/dist/core/prompt-safety.js +7 -0
- package/dist/core/prompt-safety.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +27 -30
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +45 -4
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/setup.d.ts +29 -0
- package/dist/core/setup.d.ts.map +1 -0
- package/dist/core/setup.js +127 -0
- package/dist/core/setup.js.map +1 -0
- package/dist/core/stats.d.ts +2 -2
- package/dist/core/stats.d.ts.map +1 -1
- package/dist/core/stats.js.map +1 -1
- package/dist/core/task-state-store.d.ts +17 -0
- package/dist/core/task-state-store.d.ts.map +1 -0
- package/dist/core/task-state-store.js +45 -0
- package/dist/core/task-state-store.js.map +1 -0
- package/dist/core/task-state.d.ts +19 -0
- package/dist/core/task-state.d.ts.map +1 -0
- package/dist/core/task-state.js +91 -0
- package/dist/core/task-state.js.map +1 -0
- package/dist/core/time-utils.d.ts +2 -0
- package/dist/core/time-utils.d.ts.map +1 -0
- package/dist/core/time-utils.js +14 -0
- package/dist/core/time-utils.js.map +1 -0
- package/dist/core/title.d.ts +5 -0
- package/dist/core/title.d.ts.map +1 -0
- package/dist/core/title.js +14 -0
- package/dist/core/title.js.map +1 -0
- package/dist/core/transcript-extractor.d.ts +5 -6
- package/dist/core/transcript-extractor.d.ts.map +1 -1
- package/dist/core/transcript-extractor.js +4 -24
- package/dist/core/transcript-extractor.js.map +1 -1
- package/dist/core/transcript-source.d.ts.map +1 -1
- package/dist/core/transcript-source.js +2 -3
- package/dist/core/transcript-source.js.map +1 -1
- package/dist/core/types.d.ts +21 -7
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/work-topology.d.ts +33 -0
- package/dist/core/work-topology.d.ts.map +1 -0
- package/dist/core/work-topology.js +183 -0
- package/dist/core/work-topology.js.map +1 -0
- package/dist/db.d.ts +5 -10
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +194 -196
- package/dist/db.js.map +1 -1
- package/dist/knowledge-graph.d.ts +4 -2
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +68 -49
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/skills-manifest.json +61 -36
- package/dist/storage/conflicts.d.ts +3 -3
- package/dist/storage/conflicts.d.ts.map +1 -1
- package/dist/storage/conflicts.js +2 -7
- package/dist/storage/conflicts.js.map +1 -1
- package/dist/storage/fts-index.d.ts +6 -4
- package/dist/storage/fts-index.d.ts.map +1 -1
- package/dist/storage/fts-index.js +16 -4
- package/dist/storage/fts-index.js.map +1 -1
- package/dist/storage/schema.d.ts +20 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +274 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/sqlite.d.ts +20 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +64 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/vector-index.d.ts +3 -0
- package/dist/storage/vector-index.d.ts.map +1 -0
- package/dist/storage/vector-index.js +7 -0
- package/dist/storage/vector-index.js.map +1 -0
- package/dist/transports/cli/cli.d.ts +1 -4
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +494 -76
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/retired-routes.d.ts.map +1 -1
- package/dist/transports/http/retired-routes.js +1 -0
- package/dist/transports/http/retired-routes.js.map +1 -1
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +243 -323
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +48 -94
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +77 -56
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +31 -40
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +31 -37
- package/dist/transports/schemas.js.map +1 -1
- package/hooks/hooks.json +0 -10
- package/llms-install.md +138 -0
- package/package.json +19 -18
- package/scripts/hooks/_generated/capture-flag.js +17 -0
- package/scripts/hooks/_generated/core-paths.js +67 -1
- package/scripts/hooks/_generated/fts-index.js +16 -4
- package/scripts/hooks/_generated/schema.js +281 -0
- package/scripts/hooks/_generated/sqlite.js +71 -0
- package/scripts/hooks/_generated/task-state.js +98 -0
- package/scripts/hooks/_generated/time-utils.js +21 -0
- package/scripts/hooks/_generated/title.js +21 -0
- package/scripts/hooks/_generated/work-topology.js +190 -0
- package/scripts/hooks/_shared.js +269 -534
- package/scripts/hooks/post-commit.js +55 -10
- package/scripts/hooks/pre-compact.js +22 -7
- package/scripts/hooks/pre-edit-recall.js +9 -11
- package/scripts/hooks/session-start.js +230 -106
- package/scripts/hooks/session-summary.js +176 -73
- package/scripts/hooks/user-prompt-intent.js +3 -2
- package/skills/memesh/SKILL.md +97 -77
- package/README.es.md +0 -470
- package/README.fr.md +0 -462
- package/README.ja.md +0 -470
- package/README.ko.md +0 -470
- package/README.pt.md +0 -462
- package/README.th.md +0 -463
- package/README.vi.md +0 -462
- package/README.zh-CN.md +0 -469
- package/dist/cli/view.d.ts +0 -3
- package/dist/cli/view.d.ts.map +0 -1
- package/dist/cli/view.js +0 -523
- package/dist/cli/view.js.map +0 -1
- package/dist/core/skill-usage-log.d.ts +0 -11
- package/dist/core/skill-usage-log.d.ts.map +0 -1
- package/dist/core/skill-usage-log.js +0 -125
- package/dist/core/skill-usage-log.js.map +0 -1
- package/dist/core/verifier.d.ts +0 -40
- package/dist/core/verifier.d.ts.map +0 -1
- package/dist/core/verifier.js +0 -206
- package/dist/core/verifier.js.map +0 -1
- package/dist/mcp/launcher.d.ts +0 -3
- package/dist/mcp/launcher.d.ts.map +0 -1
- package/dist/mcp/launcher.js +0 -37
- package/dist/mcp/launcher.js.map +0 -1
- package/scripts/hooks/pre-bash-orchestration-nudge.js +0 -155
- package/scripts/postinstall-rebuild.mjs +0 -41
- package/skills/agentic-orchestration/SKILL.md +0 -399
package/skills/memesh/SKILL.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memesh
|
|
3
|
-
description: Use MeMesh to remember, recall, and manage AI knowledge across sessions. Triggers when the user asks to remember something, recall past decisions, forget outdated info, learn from mistakes, or analyze work patterns. Also triggers proactively when you make important decisions, fix bugs, or learn lessons worth preserving.
|
|
3
|
+
description: Use MeMesh to remember, recall, and manage AI knowledge across sessions. Triggers when the user asks to remember something, recall past decisions, forget outdated info, learn from mistakes, or analyze work patterns. Also triggers when the user asks "what do you remember", "where did we leave off", or wants to catch up on a project; when a session starts and project context is needed; and proactively when you make important decisions, fix bugs, or learn lessons worth preserving.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# MeMesh — AI Memory Management
|
|
8
8
|
|
|
9
|
-
Persistent memory
|
|
9
|
+
Persistent memory for AI agents. The point is continuity: the next session starts where this one stopped, instead of re-spending thousands of tokens re-discovering project state — and the human never has to re-explain it.
|
|
10
10
|
|
|
11
11
|
## How to Access (auto-detect)
|
|
12
12
|
|
|
@@ -23,40 +23,74 @@ Persistent memory layer for AI agents. Remember decisions, recall context, learn
|
|
|
23
23
|
|
|
24
24
|
All examples below use CLI. MCP tools accept the same parameters as JSON objects.
|
|
25
25
|
|
|
26
|
+
## The Loop
|
|
27
|
+
|
|
28
|
+
Four moments. Everything else in this file is detail.
|
|
29
|
+
|
|
30
|
+
**SESSION START → load the briefing (once).**
|
|
31
|
+
Call the `briefing` MCP tool or run `memesh briefing`. It returns the assembled
|
|
32
|
+
work topology: where the work was left off (goal / next / blocked / done),
|
|
33
|
+
decisions and direction, lessons not to repeat, what is known, recent activity.
|
|
34
|
+
One call is cheaper than re-exploring the repo to reconstruct the same picture.
|
|
35
|
+
Exception: under Claude Code the session-start hook has ALREADY injected this
|
|
36
|
+
exact block — do not call it again (see "What's Already Automatic").
|
|
37
|
+
|
|
38
|
+
**USER STATES a goal, next step, or blocker → record it immediately.**
|
|
39
|
+
```bash
|
|
40
|
+
memesh task --goal "Ship the work-topology injection" --next "Open the PR once CI is green"
|
|
41
|
+
memesh task --blocked "Waiting on the Windows runner"
|
|
42
|
+
memesh task --blocked "" # blocker resolved — empty string clears the field
|
|
43
|
+
```
|
|
44
|
+
Fields: `--goal` `--next` `--blocked` `--done` (MCP tool: `task_state`).
|
|
45
|
+
Record ONLY what the user actually said. This state is injected at the top of
|
|
46
|
+
the next session and read as fact — a goal you guessed from which files were
|
|
47
|
+
edited reaches that session with nothing to correct it. If it was not said,
|
|
48
|
+
leave the field out.
|
|
49
|
+
|
|
50
|
+
**SESSION END or milestone → make the task state match reality.**
|
|
51
|
+
`memesh task` (no flags) shows exactly what the next session will be told.
|
|
52
|
+
If "next" is now done, record what is actually next; if the blocker cleared,
|
|
53
|
+
clear it.
|
|
54
|
+
|
|
55
|
+
**USER ASKS "what do you remember / where were we" → briefing, then relay.**
|
|
56
|
+
Run `memesh briefing` (or `--project <name>`) and answer from it. For specific
|
|
57
|
+
follow-up questions, use `recall`.
|
|
58
|
+
|
|
26
59
|
## What's Already Automatic (Claude Code Plugin Hooks)
|
|
27
60
|
|
|
28
61
|
If MeMesh is installed as a Claude Code plugin, these happen **without any action from you**:
|
|
29
62
|
|
|
30
63
|
| Hook | When | What it does |
|
|
31
64
|
|------|------|-------------|
|
|
32
|
-
| **SessionStart** | Every session begins |
|
|
33
|
-
| **PreToolUse (Edit)** | Before editing files | Injects memories related to the file or project |
|
|
34
|
-
| **
|
|
35
|
-
| **
|
|
36
|
-
| **PostToolUse (Commit)** | After `git commit` | Auto-tracks commit with diff stats as a memory entity |
|
|
65
|
+
| **SessionStart** | Every session begins | Injects the briefing: task state → lessons → project memories → recent activity |
|
|
66
|
+
| **PreToolUse (Edit/Write)** | Before editing files | Injects memories related to the file or project |
|
|
67
|
+
| **UserPromptSubmit** | When you submit a prompt | Detects "remember this" intent (5 languages) and reminds Claude to use memesh |
|
|
68
|
+
| **PostToolUse (Bash)** | After `git commit` | Auto-tracks the commit with diff stats as a memory entity |
|
|
37
69
|
| **Stop** | Session ends | Auto-captures session knowledge + runs LLM failure analysis → lessons |
|
|
38
|
-
| **PreCompact** | Before context compaction | Saves important knowledge before
|
|
70
|
+
| **PreCompact** | Before context compaction | Saves important knowledge before history is compressed |
|
|
39
71
|
|
|
40
|
-
**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
72
|
+
Because of the SessionStart hook: **in Claude Code, do NOT call `briefing` at
|
|
73
|
+
session start — it is already in your context.** Call it only mid-session
|
|
74
|
+
(context was compacted, or the user asks what you remember) or on hosts
|
|
75
|
+
without these hooks (other MCP clients, shell-only agents). Double-injection
|
|
76
|
+
spends the very tokens this system exists to save.
|
|
45
77
|
|
|
46
|
-
|
|
78
|
+
Hooks capture what *happened*. You still act manually for what they cannot
|
|
79
|
+
know: what the user **meant** (task state), deliberate decisions and lessons,
|
|
80
|
+
and retiring outdated info.
|
|
47
81
|
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
### Proactive triggers — do these WITHOUT being asked
|
|
82
|
+
## Proactive triggers — do these WITHOUT being asked
|
|
51
83
|
|
|
52
84
|
| Situation | Action |
|
|
53
85
|
|-----------|--------|
|
|
86
|
+
| User states what they're working on / what's next / what's blocking | `memesh task --goal "…"` / `--next "…"` / `--blocked "…"` |
|
|
54
87
|
| Design decision made | `memesh remember --name "auth-choice" --type decision --obs "Use OAuth 2.0 with PKCE" --tags "project:myapp"` |
|
|
55
88
|
| Bug fixed | `memesh learn --error "what broke" --fix "what fixed it" --root-cause "why" --severity major` |
|
|
56
|
-
| Pattern established | `memesh remember --name "validation-pattern" --type pattern --obs "Always use Zod"` |
|
|
57
89
|
| Starting work on a feature | `memesh recall "feature-name" --json` |
|
|
58
90
|
| User asks "what did we decide?" | `memesh recall "topic" --tag "project:myapp"` |
|
|
59
|
-
|
|
|
91
|
+
| User asks "where did we leave off?" | `memesh briefing` → relay it |
|
|
92
|
+
| Info is outdated | New memory with `--supersedes "old-name"`, or `memesh forget` |
|
|
93
|
+
| Context about the user's work habits needed | `user_patterns` MCP tool (MCP/HTTP only — no CLI command) |
|
|
60
94
|
|
|
61
95
|
### When NOT to remember
|
|
62
96
|
- Trivial implementation details (variable names, import paths)
|
|
@@ -70,83 +104,69 @@ If MeMesh is installed as a Claude Code plugin, these happen **without any actio
|
|
|
70
104
|
memesh learn \
|
|
71
105
|
--error "SIGSEGV when running vitest with threads" \
|
|
72
106
|
--fix "Use pool: 'forks' instead of 'threads' for native modules" \
|
|
73
|
-
--root-cause "
|
|
74
|
-
--prevention "Check if test framework supports native modules before choosing pool" \
|
|
107
|
+
--root-cause "the native module is not thread-safe" \
|
|
108
|
+
--prevention "Check if the test framework supports native modules before choosing pool" \
|
|
75
109
|
--severity major
|
|
76
110
|
```
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### You need context before working
|
|
80
|
-
```bash
|
|
81
|
-
memesh recall "authentication" --json
|
|
82
|
-
memesh recall --tag "project:myapp" --limit 10
|
|
83
|
-
memesh recall --cross-project # search across all projects
|
|
84
|
-
```
|
|
85
|
-
Results are ranked by relevance, recency, frequency, confidence, and recall impact.
|
|
111
|
+
Creates a `lesson_learned` entity. Lessons are surfaced as **proactive warnings** at the next session start.
|
|
86
112
|
|
|
87
113
|
### A decision was just made
|
|
88
114
|
```bash
|
|
89
115
|
memesh remember \
|
|
90
|
-
--name "db-choice
|
|
91
|
-
--
|
|
116
|
+
--name "db-choice" --type decision \
|
|
117
|
+
--title "SQLite for local-first storage" \
|
|
92
118
|
--obs "Use SQLite for local-first" "Rejected PostgreSQL due to deployment complexity" \
|
|
93
119
|
--tags "project:myapp" "topic:database"
|
|
94
120
|
```
|
|
121
|
+
Use a **stable name** (`db-choice`, not `db-choice-2026-08-16`): reusing the
|
|
122
|
+
name appends to the same entity instead of scattering duplicates. `--title` is
|
|
123
|
+
the human-readable headline; the name stays the machine key. If this replaces
|
|
124
|
+
an older decision, add `--supersedes "old-db-choice"`.
|
|
95
125
|
Types: `decision` `pattern` `lesson_learned` `bug_fix` `architecture` `convention` `feature` `best_practice` `concept` `tool` `note`
|
|
96
126
|
|
|
97
|
-
###
|
|
127
|
+
### You need context on a specific topic
|
|
98
128
|
```bash
|
|
99
|
-
memesh
|
|
100
|
-
memesh
|
|
129
|
+
memesh recall "authentication" --json
|
|
130
|
+
memesh recall --tag "project:myapp" --limit 10
|
|
131
|
+
memesh recall --cross-project # search across all projects
|
|
101
132
|
```
|
|
102
|
-
|
|
133
|
+
Query words are OR-ed and ranked by relevance — a naturally phrased question
|
|
134
|
+
works; extra words narrow the ranking, not the result set.
|
|
103
135
|
|
|
104
|
-
###
|
|
136
|
+
### Old info needs updating
|
|
105
137
|
```bash
|
|
106
|
-
memesh
|
|
107
|
-
memesh
|
|
108
|
-
memesh dream list # review what it proposed
|
|
109
|
-
memesh dream show <id> # inspect one proposal in full before accepting
|
|
110
|
-
memesh dream accept <id> # apply one, or: memesh dream reject <id>
|
|
138
|
+
memesh forget --name "auth-approach" --observation "Use JWT" # remove one fact only
|
|
139
|
+
memesh forget --name "old-auth-approach" # archive the whole entity
|
|
111
140
|
```
|
|
112
|
-
|
|
113
|
-
than deleted. Requires Smart Mode configured. Works on episodic memories
|
|
114
|
-
(commits, session notes) — lessons, decisions, architecture notes and pinned
|
|
115
|
-
entities are never touched.
|
|
141
|
+
Both are soft (recoverable) — nothing is permanently removed.
|
|
116
142
|
|
|
117
|
-
|
|
118
|
-
|
|
143
|
+
### Memories are getting verbose or stale
|
|
144
|
+
Use the **memesh-review** skill: it analyzes health, finds stale, conflicting
|
|
145
|
+
and redundant memories, and proposes cleanup (including `memesh dream`, the
|
|
146
|
+
reviewed digest pipeline). Do not hand-compress memories yourself.
|
|
119
147
|
|
|
120
|
-
### Backup
|
|
148
|
+
### Backup, share, health
|
|
121
149
|
```bash
|
|
122
150
|
memesh export --tag "project:myapp" > memories.json
|
|
123
|
-
memesh import memories.json --merge skip
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
### Check MeMesh health
|
|
127
|
-
```bash
|
|
128
|
-
memesh status # version, search level, embeddings
|
|
129
|
-
memesh config list # current configuration
|
|
151
|
+
memesh import memories.json --merge skip # skip | overwrite | append
|
|
152
|
+
memesh status # version, search level, embeddings
|
|
153
|
+
memesh reindex # rebuild embeddings after provider change
|
|
130
154
|
```
|
|
131
155
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
2. **Tag by project** — Always include `project:<name>` tag
|
|
150
|
-
3. **Use `--json`** — When you need to parse output programmatically
|
|
151
|
-
4. **Learn from every bug** — Every fix is a future warning. Use `learn`, not just `remember`.
|
|
152
|
-
5. **Don't over-remember** — Decisions that took > 5 minutes. Patterns worth preserving. Not trivia.
|
|
156
|
+
## Memory hygiene
|
|
157
|
+
|
|
158
|
+
1. **Stable names append.** Remembering under an existing name adds
|
|
159
|
+
observations and dedupes tags — it never replaces the entity. Reuse the
|
|
160
|
+
name to grow one memory; do not mint `-v2` / dated variants of it.
|
|
161
|
+
2. **`supersedes` retires the loser.** When a new memory replaces an old one,
|
|
162
|
+
record it with `--supersedes <old-name>` (MCP: a relation of type
|
|
163
|
+
`supersedes`). The old entity is archived — recoverable, out of recall.
|
|
164
|
+
3. **`contradicts` flags real conflicts.** When two memories cannot both be
|
|
165
|
+
true and neither is clearly wrong yet, link them with `--contradicts`
|
|
166
|
+
(MCP: relation type `contradicts`). Both surface as a conflict on every
|
|
167
|
+
recall until someone resolves it.
|
|
168
|
+
4. **Prefer observation-level forgetting.** `forget --observation "…"` removes
|
|
169
|
+
one wrong fact and keeps the entity. Plain `forget` archives the whole
|
|
170
|
+
entity out of visibility — use it only when everything in it is dead.
|
|
171
|
+
5. **Tag by project** (`project:<name>`) and **be specific** — "Use OAuth 2.0
|
|
172
|
+
with PKCE", not "auth stuff decided".
|