File size: 1,454 Bytes
26a284a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# forget worked examples

## 1. Delete a leaked secret

User: "Forget that note where I pasted the API key."

Search:

```json
memory_smart_search { "query": "api key", "limit": 20 }
```

Response:

```json
{
  "results": [
    { "id": "abc12345", "sessionId": "7f3a9c21", "title": "Pasted staging API key",
      "narrative": "STAGING_KEY=sk-live-..." }
  ]
}
```

Present and gate:

> Found 1 match:
> - `abc12345` (session `7f3a9c2`) "Pasted staging API key"
>
> Delete this memory? (yes/no)

After the user says yes:

```json
memory_governance_delete { "memoryIds": ["abc12345"], "reason": "user privacy request" }
```

Response:

```json
{ "deleted": 1 }
```

Present:

> Deleted 1 memory (`abc12345`).

## 2. Drop a whole session's observations

User: "Delete everything from the throwaway spike session."

Search, identify the session, then collect every memory id in it:

```json
memory_smart_search { "query": "spike prototype throwaway", "limit": 20 }
```

Response has 4 results all with `sessionId: c98f1100`. Show all four, get a yes,
then pass every id:

```json
memory_governance_delete {
  "memoryIds": ["m1", "m2", "m3", "m4"],
  "reason": "drop throwaway spike session"
}
```

Never send `{ "sessionId": "c98f1100" }`; the MCP deletes by memory id only.

## 3. User declines

User: "Actually, on second thought, keep them."

Do not call delete. Confirm:

> Understood, nothing deleted. The 4 memories from session `c98f110` are intact.