@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 +18 -2
- package/package.json +1 -1
- package/skills/remember/SKILL.md +42 -2
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 **
|
|
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
|
-
-
|
|
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.
|
|
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",
|
package/skills/remember/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remember
|
|
3
3
|
version: 0.1.0
|
|
4
|
-
description: Capture durable project knowledge from
|
|
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
|
-
##
|
|
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
|
|