@vib795/agent-memory 0.1.12 → 0.1.13

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/README.md CHANGED
@@ -465,11 +465,27 @@ that drifts as the work progresses does not create a duplicate.
465
465
 
466
466
  ## Status
467
467
 
468
- Capture is **explicit**. You invoke it, or `/handoff` does; nothing fires on its own.
468
+ Capture is **judged, not scheduled.** You invoke it, `/handoff` does, or the agent
469
+ does on its own when a juncture has just passed — a decision settled, a constraint
470
+ found, a root cause identified, a convention agreed. It says so in one line and
471
+ carries on with what you actually asked:
472
+
473
+ ```
474
+ captured 2 notes [decision, constraint]
475
+ ```
476
+
477
+ Nothing fires on a timer, on a tool count, or on every reply. That distinction is the
478
+ whole design: a store full of task chatter is worse than an empty one, because it
479
+ buries the four notes that mattered. The judgment of what is durable belongs to the
480
+ model, in the turn where the context still exists; there is no keyword list deciding
481
+ it. And because a request is charged per prompt rather than per tool call, capture
482
+ that rides inside a turn you already paid for is free — which is why it can afford to
483
+ happen at the moment the knowledge is fresh instead of whenever someone remembers.
469
484
 
470
485
  Not built yet, by choice:
471
486
 
472
- - Automatic or ambient capture
487
+ - A capture-gap signal — the store knows when a note has gone stale, but not yet when
488
+ a repo has moved a hundred commits with nothing captured at all
473
489
  - Team sharing, multi-machine sync
474
490
  - An MCP server. It would read this same store, so it is an addition, not a rewrite.
475
491
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vib795/agent-memory",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "Durable cross-repo knowledge graph for GitHub Copilot and Claude Code. Markdown source of truth, disposable SQLite index, zero runtime dependencies.",
5
5
  "keywords": [
6
6
  "github-copilot",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: remember
3
3
  version: 0.1.0
4
- description: Capture durable project knowledge from the current conversation into the shared memory graph, so a later conversation in any window or repository already knows it. Use when the user says remember this, save this, note this for later, or /remember.
4
+ description: Capture durable project knowledge from this conversation into a cross-repo memory graph, so a later conversation anywhere already knows it. Use when the user says remember this, save this, note this for later, or /remember. Also invoke it unasked when a juncture passes - a decision settled, a constraint found, a root cause identified, a convention agreed - then say so in one line and carry on.
5
5
  license: MIT
6
6
  allowed-tools: Bash Read Write
7
7
  triggers:
@@ -25,11 +25,51 @@ call. Do not ask the user to confirm each node.
25
25
 
26
26
  ---
27
27
 
28
- ## Two forms
28
+ ## Three forms
29
29
 
30
30
  - **`/remember`** — you select the durable knowledge from the conversation so far.
31
31
  - **`/remember <what>`** — the user named the thing. Write that, with full context
32
32
  from the conversation, and write nothing unrelated to it.
33
+ - **Unasked** — you noticed a juncture pass and captured it without being told.
34
+
35
+ ### Capturing unasked
36
+
37
+ A memory that only grows when someone remembers to grow it stays thin, and thin is
38
+ how it dies: the one fact worth having is the one nobody stopped to write down.
39
+
40
+ Invoke this yourself the moment one of these has just happened, in the same turn:
41
+
42
+ - a **decision** was settled, and the reasons and rejected options are still in view
43
+ - a **constraint** surfaced — a blocked tool, a policy, an environment restriction
44
+ - a **root cause** was found, as opposed to a symptom worked around
45
+ - a **convention** was agreed, or discovered by reading the code
46
+
47
+ Do not capture on a timer, on a tool count, or at every reply. Those produce volume,
48
+ and volume is what makes a graph useless — a store full of task chatter is worse than
49
+ an empty one, because it buries the four notes that mattered.
50
+
51
+ Never capture: task status, what you are about to do next, anything already in the
52
+ graph, or anything that will be false next month. If you captured a juncture earlier
53
+ in this conversation, do not capture it again because it came up a second time.
54
+
55
+ **It is free, and that is the point.** A request is charged per prompt, not per tool
56
+ call, so capturing inside a turn you were already answering costs nothing. Only a
57
+ user typing `/remember` spends a request. That is the whole reason to do this
58
+ yourself rather than wait to be asked.
59
+
60
+ **Report it in one line, then carry on:**
61
+
62
+ ```
63
+ captured 2 notes [decision, constraint]
64
+ ```
65
+
66
+ At the end of the answer you were already giving. Do not print the JSON, do not
67
+ summarize what you wrote, and do not make it the subject of the reply — the user
68
+ asked you about something else and is still waiting for it. One line is enough for
69
+ them to know it happened and to run `/recall` if they want the detail.
70
+
71
+ If nothing durable happened, say nothing at all. Silence is the correct output for
72
+ most turns.
33
73
 
34
74
  ---
35
75