@fingerskier/augment 0.1.4 → 0.1.6
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 +94 -4
- package/dist/cli.d.ts +14 -1
- package/dist/cli.js +120 -1
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/client.d.ts +2 -0
- package/dist/daemon/client.js +6 -0
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/http.js +38 -0
- package/dist/daemon/http.js.map +1 -1
- package/dist/dashboard/assets.d.ts +18 -0
- package/dist/dashboard/assets.js +359 -0
- package/dist/dashboard/assets.js.map +1 -0
- package/dist/db.d.ts +1 -0
- package/dist/db.js +4 -0
- package/dist/db.js.map +1 -1
- package/dist/hooks.d.ts +53 -0
- package/dist/hooks.js +216 -0
- package/dist/hooks.js.map +1 -0
- package/dist/install.js +48 -0
- package/dist/install.js.map +1 -1
- package/dist/mcp/server.js +6 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/files.d.ts +1 -0
- package/dist/memory/files.js +5 -1
- package/dist/memory/files.js.map +1 -1
- package/dist/recall.d.ts +29 -0
- package/dist/recall.js +32 -0
- package/dist/recall.js.map +1 -0
- package/dist/service.d.ts +11 -1
- package/dist/service.js +74 -9
- package/dist/service.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/docs/FEATURES.md +14 -0
- package/docs/verify-memory-flow.md +112 -0
- package/integrations/claude/CLAUDE.md +58 -56
- package/package.json +2 -1
package/dist/service.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DEFAULT_MEMORY_HARD_LIMIT_CHARS, DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_MAX_CHARS } from "./constants.js";
|
|
1
|
+
import { DEFAULT_MEMORY_HARD_LIMIT_CHARS, DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_MAX_CHARS, DEFAULT_SEARCH_MIN_SCORE, } from "./constants.js";
|
|
2
2
|
import { ensureConfigDirs } from "./config.js";
|
|
3
3
|
import { AugmentDatabase } from "./db.js";
|
|
4
4
|
import { TransformersEmbeddingProvider } from "./embeddings.js";
|
|
5
|
-
import { normalizeKind, normalizeLinkType, memoryRelativePath, readMemory, writeMemory } from "./memory/files.js";
|
|
5
|
+
import { deleteMemoryFile, normalizeKind, normalizeLinkType, memoryRelativePath, readMemory, writeMemory } from "./memory/files.js";
|
|
6
6
|
import { inferProjectName } from "./memory/project.js";
|
|
7
7
|
import { findMemoryFiles } from "./memory/scan.js";
|
|
8
8
|
import { clamp01, cosineSimilarity, lexicalScore } from "./util/text.js";
|
|
@@ -128,6 +128,55 @@ export class AugmentService {
|
|
|
128
128
|
}
|
|
129
129
|
return memory;
|
|
130
130
|
}
|
|
131
|
+
async listMemoriesByProject(projectId) {
|
|
132
|
+
await this.init();
|
|
133
|
+
return this.db.listMemoriesForProject(projectId);
|
|
134
|
+
}
|
|
135
|
+
/** Project node plus its memories and the links among them — the dashboard subgraph. */
|
|
136
|
+
async projectGraph(projectId) {
|
|
137
|
+
await this.init();
|
|
138
|
+
const project = await this.db.getProjectById(projectId);
|
|
139
|
+
if (!project) {
|
|
140
|
+
throw new Error(`Unknown project_id: ${projectId}`);
|
|
141
|
+
}
|
|
142
|
+
const memories = await this.db.listMemoriesForProject(projectId);
|
|
143
|
+
const ids = new Set(memories.map((memory) => memory.id));
|
|
144
|
+
const links = (await this.db.getAllLinks()).filter((link) => ids.has(link.from_memory_id) && ids.has(link.to_memory_id));
|
|
145
|
+
return { project, memories, links };
|
|
146
|
+
}
|
|
147
|
+
async deleteMemory(id) {
|
|
148
|
+
await this.init();
|
|
149
|
+
const memory = await this.read(id);
|
|
150
|
+
await deleteMemoryFile(this.config.memoryRoot, memory.relative_path);
|
|
151
|
+
await this.db.deleteMemory(id);
|
|
152
|
+
// Scrub inbound frontmatter references in other memories so a future memory
|
|
153
|
+
// recreated at this deterministic path can't silently inherit links that were
|
|
154
|
+
// pointing at the now-deleted one. `unlink` rewrites source frontmatter for the
|
|
155
|
+
// same reason; deletion needs the analogous cleanup.
|
|
156
|
+
await this.scrubInboundLinks(memory.relative_path);
|
|
157
|
+
await this.db.rebuildLinks();
|
|
158
|
+
return { id, relative_path: memory.relative_path, text: `deleted memory ${id} at ${memory.relative_path}` };
|
|
159
|
+
}
|
|
160
|
+
/** Remove every frontmatter link pointing at `targetPath` from all other memories. */
|
|
161
|
+
async scrubInboundLinks(targetPath) {
|
|
162
|
+
for (const memory of await this.db.listMemories()) {
|
|
163
|
+
if (!memory.links.some((link) => link.to === targetPath)) {
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const frontmatter = normalizeMemoryFrontmatter({
|
|
167
|
+
project: memory.project_name,
|
|
168
|
+
kind: memory.kind,
|
|
169
|
+
name: memory.name,
|
|
170
|
+
tags: memory.tags,
|
|
171
|
+
links: memory.links.filter((link) => link.to !== targetPath),
|
|
172
|
+
created_at: memory.created_at,
|
|
173
|
+
updated_at: new Date().toISOString(),
|
|
174
|
+
});
|
|
175
|
+
await writeMemory(this.config.memoryRoot, memory.relative_path, frontmatter, memory.body);
|
|
176
|
+
const parsed = await readMemory(this.config.memoryRoot, memory.relative_path);
|
|
177
|
+
await this.db.upsertMemory(parsed);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
131
180
|
async link(fromMemoryId, toMemoryId, typeInput) {
|
|
132
181
|
await this.init();
|
|
133
182
|
const from = await this.read(fromMemoryId);
|
|
@@ -186,6 +235,7 @@ export class AugmentService {
|
|
|
186
235
|
await this.init();
|
|
187
236
|
const limit = input.limit ?? DEFAULT_SEARCH_LIMIT;
|
|
188
237
|
const maxChars = input.max_chars ?? DEFAULT_SEARCH_MAX_CHARS;
|
|
238
|
+
const minScore = clamp01(input.min_score ?? DEFAULT_SEARCH_MIN_SCORE);
|
|
189
239
|
const includeLinked = input.include_linked ?? true;
|
|
190
240
|
const memories = (await this.db.listMemories()).filter((memory) => !input.kinds || input.kinds.includes(memory.kind));
|
|
191
241
|
const embeddings = await this.db.getAllEmbeddings();
|
|
@@ -226,12 +276,12 @@ export class AugmentService {
|
|
|
226
276
|
}
|
|
227
277
|
}
|
|
228
278
|
const results = Array.from(direct.values())
|
|
229
|
-
.filter((result) => result.score
|
|
279
|
+
.filter((result) => result.score >= minScore)
|
|
230
280
|
.sort((a, b) => b.score - a.score)
|
|
231
281
|
.slice(0, limit);
|
|
232
282
|
return {
|
|
233
283
|
results,
|
|
234
|
-
text: renderSearchText(input.query, results, maxChars),
|
|
284
|
+
text: renderSearchText(input.query, input.project_name, results, maxChars),
|
|
235
285
|
};
|
|
236
286
|
}
|
|
237
287
|
async findSimilarMemory(projectId, kind, content) {
|
|
@@ -287,6 +337,20 @@ function normalizedCosine(queryEmbedding, memoryEmbedding) {
|
|
|
287
337
|
}
|
|
288
338
|
return clamp01((cosineSimilarity(queryEmbedding, memoryEmbedding) + 1) / 2);
|
|
289
339
|
}
|
|
340
|
+
// Marks a result that did not originate in the querying project so the consuming
|
|
341
|
+
// agent can discount injected memory it didn't author. Because AUGMENT_MEMORY_ROOT
|
|
342
|
+
// is a shared, multi-author store, cross-project recall is also cross-author: a
|
|
343
|
+
// relevance floor alone can't stop a *genuinely relevant* foreign memory, so the
|
|
344
|
+
// provenance has to travel with the text. Empty string when same-project, or when
|
|
345
|
+
// no querying project is known (provenance is undeterminable).
|
|
346
|
+
function provenanceLabel(projectName, memoryProjectName) {
|
|
347
|
+
if (!projectName || memoryProjectName === projectName) {
|
|
348
|
+
return "";
|
|
349
|
+
}
|
|
350
|
+
const queryOrg = projectName.split("/")[0];
|
|
351
|
+
const memoryOrg = memoryProjectName.split("/")[0];
|
|
352
|
+
return queryOrg && queryOrg === memoryOrg ? " provenance:foreign-cross-repo" : " provenance:foreign-cross-org";
|
|
353
|
+
}
|
|
290
354
|
function metadataScoreFor(projectName, memory) {
|
|
291
355
|
if (!projectName) {
|
|
292
356
|
return clamp01(memory.density * 0.02);
|
|
@@ -314,13 +378,17 @@ function linkWeight(type) {
|
|
|
314
378
|
return 0.3;
|
|
315
379
|
}
|
|
316
380
|
}
|
|
317
|
-
function renderSearchText(query, results, maxChars) {
|
|
381
|
+
function renderSearchText(query, projectName, results, maxChars) {
|
|
382
|
+
if (results.length === 0) {
|
|
383
|
+
return `No memory met the relevance threshold for \`${query}\`. Nothing injected.\n`;
|
|
384
|
+
}
|
|
318
385
|
const parts = [`Relevant memories for \`${query}\`:\n`];
|
|
319
386
|
let used = parts[0].length;
|
|
320
387
|
for (const result of results) {
|
|
321
388
|
const memory = result.memory;
|
|
389
|
+
const provenance = provenanceLabel(projectName, memory.project_name);
|
|
322
390
|
const linkAnnotation = result.linkedFrom && result.linkType ? ` link:${result.linkType} linked_from:${result.linkedFrom}` : "";
|
|
323
|
-
const header = `[memory:${memory.id} kind:${memory.kind} project:${memory.project_name} path:${memory.relative_path} score:${result.score.toFixed(2)}${linkAnnotation}]\n`;
|
|
391
|
+
const header = `[memory:${memory.id} kind:${memory.kind} project:${memory.project_name}${provenance} path:${memory.relative_path} score:${result.score.toFixed(2)}${linkAnnotation}]\n`;
|
|
324
392
|
const block = `${header}${memory.body.trim()}\n`;
|
|
325
393
|
if (used + block.length > maxChars) {
|
|
326
394
|
if (parts.length === 1) {
|
|
@@ -331,9 +399,6 @@ function renderSearchText(query, results, maxChars) {
|
|
|
331
399
|
parts.push(block);
|
|
332
400
|
used += block.length;
|
|
333
401
|
}
|
|
334
|
-
if (parts.length === 1) {
|
|
335
|
-
parts.push("No relevant memories found.\n");
|
|
336
|
-
}
|
|
337
402
|
return parts.join("\n");
|
|
338
403
|
}
|
|
339
404
|
//# sourceMappingURL=service.js.map
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -66,6 +66,12 @@ export interface SearchInput {
|
|
|
66
66
|
max_chars?: number;
|
|
67
67
|
kinds?: MemoryKind[];
|
|
68
68
|
include_linked?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Minimum blended relevance score (0..1) a result must reach. Defaults to
|
|
71
|
+
* DEFAULT_SEARCH_MIN_SCORE. Set 0 to disable the floor and return whatever
|
|
72
|
+
* ranks highest; raise it to demand a stronger match.
|
|
73
|
+
*/
|
|
74
|
+
min_score?: number;
|
|
69
75
|
}
|
|
70
76
|
export interface SearchResult {
|
|
71
77
|
memory: MemoryRecord;
|
|
@@ -77,6 +83,11 @@ export interface SearchResult {
|
|
|
77
83
|
linkedFrom?: number;
|
|
78
84
|
linkType?: LinkType;
|
|
79
85
|
}
|
|
86
|
+
export interface ProjectGraph {
|
|
87
|
+
project: ProjectRecord;
|
|
88
|
+
memories: MemoryRecord[];
|
|
89
|
+
links: LinkRecord[];
|
|
90
|
+
}
|
|
80
91
|
export interface UpsertInput {
|
|
81
92
|
project_id: number;
|
|
82
93
|
memory_id?: number;
|
package/docs/FEATURES.md
CHANGED
|
@@ -136,6 +136,7 @@ Inputs:
|
|
|
136
136
|
max_chars?: number;
|
|
137
137
|
kinds?: Array<"ISSUE" | "ARCH" | "TODO" | "SPEC" | "WORK">;
|
|
138
138
|
include_linked?: boolean;
|
|
139
|
+
min_score?: number; // 0..1 relevance floor; default 0.4, 0 disables
|
|
139
140
|
}
|
|
140
141
|
```
|
|
141
142
|
|
|
@@ -146,7 +147,20 @@ Behavior:
|
|
|
146
147
|
annotations.
|
|
147
148
|
- May use the CWD project as a modest metadata boost, but cross-project results
|
|
148
149
|
are allowed based on score.
|
|
150
|
+
- Labels the provenance of each result relative to the querying project: a memory
|
|
151
|
+
from another repo in the same org is marked `provenance:foreign-cross-repo`, and
|
|
152
|
+
one from another org `provenance:foreign-cross-org`. The shared memory store is
|
|
153
|
+
multi-author, so cross-project recall is also cross-author — the marker lets the
|
|
154
|
+
consuming agent discount memory it did not author (a relevance floor alone can't
|
|
155
|
+
stop a genuinely-relevant foreign memory).
|
|
149
156
|
- Prioritizes linked memories without requiring them.
|
|
157
|
+
- Applies a minimum relevance threshold (`min_score`, default
|
|
158
|
+
`DEFAULT_SEARCH_MIN_SCORE` = 0.4) and **abstains** when nothing clears it —
|
|
159
|
+
returning no results and a "nothing injected" message rather than surfacing an
|
|
160
|
+
unrelated memory. An orthogonal/unrelated memory floors at ~0.275, so the
|
|
161
|
+
default sits above that floor. Pass `min_score: 0` to disable the floor (never
|
|
162
|
+
abstain), or raise it to demand a stronger match. The default is provisional
|
|
163
|
+
and intended for calibration against the real embedding model.
|
|
150
164
|
- Does not summarize or extract arbitrary excerpts.
|
|
151
165
|
|
|
152
166
|
### `upsert`
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Verifying the auto-memory flow
|
|
2
|
+
|
|
3
|
+
Augment now *enforces* the memory loop through host lifecycle hooks rather than
|
|
4
|
+
relying on the agent to remember to call the MCP tools:
|
|
5
|
+
|
|
6
|
+
| Event | Hook command | Effect |
|
|
7
|
+
| ------------------ | ---------------------------------- | ------ |
|
|
8
|
+
| `SessionStart` | `augment hook session-start` | Warms the daemon and registers the project. |
|
|
9
|
+
| `UserPromptSubmit` | `augment hook user-prompt-submit` | Recalls relevant memory and injects it as `additionalContext` **before** the model sees the prompt. |
|
|
10
|
+
| `PreToolUse` | `augment hook pre-tool-use` | Recalls **additional** memory keyed to the matched tool action (the edited file / the Bash command) and injects it as `additionalContext`. Matcher-scoped to `Edit\|Write\|Bash` to bound the hot path; injection-only (never blocks, gates, or rewrites a tool call). |
|
|
11
|
+
| `Stop` | `augment hook stop` | Blocks the turn **once** with a directive to upsert a memory, then allows the stop (loop-guarded per turn). |
|
|
12
|
+
|
|
13
|
+
`PreToolUse` fires before **every matched** tool call, so it is the only hook with a tool-name
|
|
14
|
+
`matcher` (the others fire once per prompt/turn). Two host nuances: on Claude the injected text
|
|
15
|
+
rides alongside the *tool result* on the next model request (it supplements, rather than precedes,
|
|
16
|
+
the action); on Codex builds older than ~0.124.0 `PreToolUse` `additionalContext` is rejected and
|
|
17
|
+
silently dropped (the tool still runs). It is purely additive — `UserPromptSubmit` remains the
|
|
18
|
+
guaranteed memory path on both hosts.
|
|
19
|
+
|
|
20
|
+
The same `hooks/hooks.json` ships in both the Claude Code and Codex plugins
|
|
21
|
+
(Codex copied Claude's event names + stdin/stdout contract), so one set of
|
|
22
|
+
handlers serves both hosts.
|
|
23
|
+
|
|
24
|
+
This doc is the test process. Run the layers top-to-bottom; each is cheaper and
|
|
25
|
+
more isolated than the one below it.
|
|
26
|
+
|
|
27
|
+
## 1. Automated (no network, no host) — `npm test`
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
npm test
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Covers:
|
|
34
|
+
- `test/hooks.test.ts` — the stdin→stdout contract of every hook event
|
|
35
|
+
(UserPromptSubmit envelope, PreToolUse tool-query derivation + injection-only
|
|
36
|
+
envelope, Stop block-once loop guard, fail-open paths).
|
|
37
|
+
- `test/recall.test.ts` — recall degrades to `""` on any failure (a hook must
|
|
38
|
+
never break the agent).
|
|
39
|
+
- `test/cli.test.ts` — the `recall` and `hook` CLI commands.
|
|
40
|
+
- `test/install.test.ts` — the installer writes `hooks/hooks.json` for both hosts.
|
|
41
|
+
- `test/integration/memory-flow.test.ts` — a planted memory flows
|
|
42
|
+
upsert → index → `recall()` → UserPromptSubmit **and** PreToolUse envelopes, against a **real**
|
|
43
|
+
`AugmentService` (real store + sqlite index), using the deterministic hash
|
|
44
|
+
embedder. Proves the wiring end-to-end without a model download.
|
|
45
|
+
|
|
46
|
+
## 2. CLI smoke (real daemon + real embeddings, one machine)
|
|
47
|
+
|
|
48
|
+
Build first, then drive the real daemon by hand. Use a throwaway memory root so
|
|
49
|
+
you don't pollute your real memories:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
npm run build
|
|
53
|
+
export AUGMENT_MEMORY_ROOT="$(mktemp -d)" # PowerShell: $env:AUGMENT_MEMORY_ROOT = (New-Item -ItemType Directory -Path $env:TEMP\augver -Force).FullName
|
|
54
|
+
|
|
55
|
+
# Plant a memory (project_id 1 after the first init), then recall it.
|
|
56
|
+
node ./dist/bin/augment.js recall "the deploy pipeline" # prints recalled text (empty until something is stored)
|
|
57
|
+
|
|
58
|
+
# Exercise the hook handlers exactly as a host would (JSON on stdin):
|
|
59
|
+
echo '{"user_input":"fix the deploy pipeline","cwd":"."}' | node ./dist/bin/augment.js hook user-prompt-submit
|
|
60
|
+
# -> {"hookSpecificOutput":{"hookEventName":"UserPromptSubmit","additionalContext":"## Augment memory ..."}} (or nothing if no match)
|
|
61
|
+
|
|
62
|
+
# PreToolUse keys the query off the tool action (Bash -> command, Edit/Write -> file_path):
|
|
63
|
+
echo '{"tool_name":"Bash","tool_input":{"command":"deploy the pipeline"},"cwd":"."}' | node ./dist/bin/augment.js hook pre-tool-use
|
|
64
|
+
# -> {"hookSpecificOutput":{"hookEventName":"PreToolUse","additionalContext":"## Augment memory ..."}} (or nothing if no match)
|
|
65
|
+
echo '{"tool_name":"Read","tool_input":{"file_path":"x"}}' | node ./dist/bin/augment.js hook pre-tool-use
|
|
66
|
+
# -> (empty) Read isn't in the installed matcher; even if invoked it derives a query but stays injection-only
|
|
67
|
+
|
|
68
|
+
echo '{"session_id":"s","prompt_id":"p"}' | node ./dist/bin/augment.js hook stop
|
|
69
|
+
# -> {"decision":"block","reason":"Before ending this turn, record durable memory ..."}
|
|
70
|
+
echo '{"session_id":"s","prompt_id":"p"}' | node ./dist/bin/augment.js hook stop
|
|
71
|
+
# -> (empty) second stop for the same turn is allowed — proves the loop guard
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The first `recall`/`hook user-prompt-submit` call auto-starts the daemon and, on
|
|
75
|
+
a cold machine, downloads the bge-small model — so the very first run is slow.
|
|
76
|
+
This is real-model retrieval; ranking quality (not just wiring) is what you're
|
|
77
|
+
eyeballing here.
|
|
78
|
+
|
|
79
|
+
## 3. Real project (host-level hook firing)
|
|
80
|
+
|
|
81
|
+
1. Install into a repo (or user scope):
|
|
82
|
+
```sh
|
|
83
|
+
npm exec --yes --package @fingerskier/augment -- augment install all --scope repo --memory-root "<your shared memory root>"
|
|
84
|
+
```
|
|
85
|
+
2. Confirm the plugin is actually installed/enabled — hooks only fire when the
|
|
86
|
+
plugin is active:
|
|
87
|
+
- **Claude Code:** `/plugin` → `augment` listed and enabled. The installer
|
|
88
|
+
best-effort-registers it via the `claude` CLI; if that was skipped, run the
|
|
89
|
+
printed `/plugin marketplace add … && /plugin install …` commands.
|
|
90
|
+
- **Codex:** plugin-shipped hooks need a **one-time trust** — run `/hooks` and
|
|
91
|
+
approve the augment hooks. (Managed/enterprise distribution can pre-trust;
|
|
92
|
+
a plain plugin install cannot.)
|
|
93
|
+
3. Observe the loop on a real task:
|
|
94
|
+
- **Inject:** start a session and give a task that matches something in your
|
|
95
|
+
memory. The recalled block ("## Augment memory (recalled for this task)")
|
|
96
|
+
should appear in the model's context — confirm it influenced the answer.
|
|
97
|
+
- **Capture:** finish the task. The Stop hook should prompt the agent to
|
|
98
|
+
`upsert` a WORK/ARCH/ISSUE/TODO/SPEC memory; confirm a new file appears under
|
|
99
|
+
your memory root and that `augment recall` surfaces it next time.
|
|
100
|
+
|
|
101
|
+
## Known caveats (logged, not blockers)
|
|
102
|
+
|
|
103
|
+
- **Per-prompt latency.** Each hook shells out via `npm exec --yes` (self-bootstrapping,
|
|
104
|
+
matches the MCP server). On UserPromptSubmit that adds startup overhead before
|
|
105
|
+
every prompt. A direct-node invocation is a planned optimization.
|
|
106
|
+
- **Claude hook activation depends on plugin install.** The MCP server is also
|
|
107
|
+
direct-registered (so the tools always exist), but the hooks live in the plugin;
|
|
108
|
+
if the plugin isn't installed, the loop degrades to the CLAUDE.md prose guidance.
|
|
109
|
+
- **Retrieval floor calibration.** Real bge-small cosine is mis-normalized
|
|
110
|
+
(`(cos+1)/2`), so abstention is weaker than intended on the real model — see
|
|
111
|
+
`.council/memory/retrieval-quality-roadmap.md`. The flow still injects; it just
|
|
112
|
+
may inject loosely-related memory. Tracked separately.
|
|
@@ -1,56 +1,58 @@
|
|
|
1
|
-
# Augment Memory Workflow
|
|
2
|
-
|
|
3
|
-
When the Augment MCP server is configured, use it as the local project memory.
|
|
4
|
-
|
|
5
|
-
## Session Start
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Before
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## Memory Triggers
|
|
20
|
-
|
|
21
|
-
Call `upsert` whenever one of these durable events happens:
|
|
22
|
-
|
|
23
|
-
- A requirement, API contract, data model, or tool contract is clarified:
|
|
24
|
-
use `SPEC`.
|
|
25
|
-
- An implementation approach, tradeoff, transport choice, persistence model, or
|
|
26
|
-
architecture decision is made: use `ARCH`.
|
|
27
|
-
- A bug, risk, failing behavior, or blocker is discovered: use `ISSUE`.
|
|
28
|
-
- Follow-up work is intentionally deferred: use `TODO`.
|
|
29
|
-
- A meaningful implementation milestone is completed: use `WORK`.
|
|
30
|
-
- A test scenario, regression case, or verification rule is learned: use `SPEC`
|
|
31
|
-
or `WORK`, whichever is more durable.
|
|
32
|
-
|
|
33
|
-
## Links
|
|
34
|
-
|
|
35
|
-
After creating or updating a memory:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
##
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
|
|
1
|
+
# Augment Memory Workflow
|
|
2
|
+
|
|
3
|
+
When the Augment MCP server is configured, use it as the local project memory.
|
|
4
|
+
|
|
5
|
+
## Session Start
|
|
6
|
+
|
|
7
|
+
1. Call `init_project`.
|
|
8
|
+
2. Call `search` with the user's task summary.
|
|
9
|
+
3. Read exact memories when search results identify likely governing context.
|
|
10
|
+
|
|
11
|
+
## Before Code Changes
|
|
12
|
+
|
|
13
|
+
1. Search for the file, component, command, error, or behavior being touched.
|
|
14
|
+
2. If the work depends on a prior decision, read and follow the relevant `SPEC`
|
|
15
|
+
or `ARCH` memory.
|
|
16
|
+
3. If no relevant memory exists but the task creates a durable requirement or
|
|
17
|
+
decision, create one before implementation.
|
|
18
|
+
|
|
19
|
+
## Memory Triggers
|
|
20
|
+
|
|
21
|
+
Call `upsert` whenever one of these durable events happens:
|
|
22
|
+
|
|
23
|
+
- A requirement, API contract, data model, or tool contract is clarified:
|
|
24
|
+
use `SPEC`.
|
|
25
|
+
- An implementation approach, tradeoff, transport choice, persistence model, or
|
|
26
|
+
architecture decision is made: use `ARCH`.
|
|
27
|
+
- A bug, risk, failing behavior, or blocker is discovered: use `ISSUE`.
|
|
28
|
+
- Follow-up work is intentionally deferred: use `TODO`.
|
|
29
|
+
- A meaningful implementation milestone is completed: use `WORK`.
|
|
30
|
+
- A test scenario, regression case, or verification rule is learned: use `SPEC`
|
|
31
|
+
or `WORK`, whichever is more durable.
|
|
32
|
+
|
|
33
|
+
## Links
|
|
34
|
+
|
|
35
|
+
After creating or updating a memory:
|
|
36
|
+
|
|
37
|
+
1. Use `link` when a memory implements, depends on, blocks, parents, or relates
|
|
38
|
+
to another memory.
|
|
39
|
+
2. Prefer linking new `WORK` notes to the `SPEC`, `ARCH`, `ISSUE`, or `TODO`
|
|
40
|
+
they address.
|
|
41
|
+
|
|
42
|
+
## Session Finish
|
|
43
|
+
|
|
44
|
+
For every non-trivial session:
|
|
45
|
+
|
|
46
|
+
1. Upsert a concise `WORK` memory with what changed, key files, and verification.
|
|
47
|
+
2. Upsert or update `TODO` memories for known remaining work.
|
|
48
|
+
3. Link the final `WORK` memory to the relevant planning/decision memories.
|
|
49
|
+
|
|
50
|
+
## Guardrails
|
|
51
|
+
|
|
52
|
+
- Do not store secrets, credentials, tokens, or private keys.
|
|
53
|
+
- Do not store huge logs, dependency dumps, generated files, or full source files.
|
|
54
|
+
- Keep each memory focused; split large notes before calling `upsert`.
|
|
55
|
+
- Treat numeric memory IDs as local handles. Relative paths are the durable identity.
|
|
56
|
+
- Use returned search text directly as context; do not ask Augment to summarize.
|
|
57
|
+
- Do not create memories for trivial edits, transient exploration, or facts that
|
|
58
|
+
are already obvious from the current diff.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fingerskier/augment",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Local RAG memory system for coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@libsql/client": "^0.15.15",
|
|
31
31
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
32
32
|
"chokidar": "^4.0.3",
|
|
33
|
+
"cytoscape": "^3.34.0",
|
|
33
34
|
"gray-matter": "^4.0.3",
|
|
34
35
|
"zod": "^3.25.76"
|
|
35
36
|
},
|