superlocalmemory 4.1.21 → 4.1.22
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 +3 -3
- package/CHANGELOG.md +111 -0
- package/README.md +53 -8
- package/package.json +3 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/.cursor-plugin/plugin.json +24 -0
- package/plugin/CLAUDE.md +3 -3
- package/plugin/agents/slm-governance-advisor.md +1 -1
- package/plugin/agents/slm-loop-runner.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +1 -1
- package/plugin/agents/slm-optimize-advisor.md +1 -1
- package/plugin/assets/logo.svg +36 -0
- package/plugin/cursor-skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin/cursor-skills/slm-recall/SKILL.md +333 -0
- package/plugin/cursor-skills/slm-remember/SKILL.md +273 -0
- package/plugin/cursor-skills/slm-scope/SKILL.md +176 -0
- package/plugin/cursor-skills/slm-session/SKILL.md +271 -0
- package/plugin/hooks/hooks.json +9 -9
- package/plugin/mcp.cursor.json +23 -0
- package/plugin/requirements-cpu-torch.txt +13 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/ensure-venv.sh +45 -3
- package/plugin/scripts/slm-launch +93 -9
- package/plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/plugin/skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin/skills/slm-cache/SKILL.md +1 -1
- package/plugin/skills/slm-compress/SKILL.md +1 -1
- package/plugin/skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin/skills/slm-governance/SKILL.md +1 -1
- package/plugin/skills/slm-graph/SKILL.md +1 -1
- package/plugin/skills/slm-loop/SKILL.md +1 -1
- package/plugin/skills/slm-mesh/SKILL.md +1 -1
- package/plugin/skills/slm-profile/SKILL.md +3 -2
- package/plugin/skills/slm-recall/SKILL.md +1 -1
- package/plugin/skills/slm-remember/SKILL.md +1 -1
- package/plugin/skills/slm-scope/SKILL.md +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin/skills/slm-status/SKILL.md +1 -1
- package/plugin-src/agents/slm-memory-advisor.md +1 -1
- package/plugin-src/agents/slm-optimize-advisor.md +1 -1
- package/plugin-src/rules/AGENTS.md +1 -1
- package/plugin-src/skills/slm-bot-memory/SKILL.md +139 -0
- package/plugin-src/skills/slm-cache/SKILL.md +1 -1
- package/plugin-src/skills/slm-compress/SKILL.md +1 -1
- package/plugin-src/skills/slm-getting-started-bot/SKILL.md +138 -0
- package/plugin-src/skills/slm-governance/SKILL.md +1 -1
- package/plugin-src/skills/slm-graph/SKILL.md +1 -1
- package/plugin-src/skills/slm-loop/SKILL.md +1 -1
- package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
- package/plugin-src/skills/slm-profile/SKILL.md +3 -2
- package/plugin-src/skills/slm-recall/SKILL.md +1 -1
- package/plugin-src/skills/slm-remember/SKILL.md +1 -1
- package/plugin-src/skills/slm-scope/SKILL.md +1 -1
- package/plugin-src/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/skills/slm-status/SKILL.md +1 -1
- package/scripts/postinstall.js +107 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slm-remember
|
|
3
|
+
description: Capture durable facts, decisions, constraints, and gotchas into SuperLocalMemory. Use when the user says "remember that", "save this decision", "note this constraint", or when a session produces a conclusion worth persisting across sessions. Always recall first to avoid duplicates.
|
|
4
|
+
when_to_use: |
|
|
5
|
+
- "Remember that we use JWT with 1h expiry"
|
|
6
|
+
- "Save this architectural decision"
|
|
7
|
+
- "Store the constraint that X must not Y"
|
|
8
|
+
- "Note this as a gotcha / blocker / convention"
|
|
9
|
+
- After making a non-obvious decision during a coding session
|
|
10
|
+
- After resolving a bug whose root cause should be persisted
|
|
11
|
+
allowed-tools: remember, recall, update_memory, Bash
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# slm-remember — Capture Durable Facts
|
|
15
|
+
|
|
16
|
+
Store atomic, durable facts into SuperLocalMemory for retrieval in future
|
|
17
|
+
sessions. One fact per call. Recall before you remember.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## What to store (and what not to)
|
|
22
|
+
|
|
23
|
+
**Store:**
|
|
24
|
+
- Architectural decisions ("Decided to use Postgres not MySQL — reason: JSONB support")
|
|
25
|
+
- Project conventions ("All API routes follow /api/v1/resource/{id} pattern")
|
|
26
|
+
- Hard constraints ("Never expose raw SQL errors to the HTTP response")
|
|
27
|
+
- Resolved gotchas ("Ollama needs keep_alive=-1 or it unloads the model between calls")
|
|
28
|
+
- Security rules ("Rate limit all public endpoints at 100 req/min")
|
|
29
|
+
|
|
30
|
+
**Do not store:**
|
|
31
|
+
- Transient context that is only relevant within this conversation
|
|
32
|
+
- Large blobs of code or full file contents (those belong in the project, not memory)
|
|
33
|
+
- Facts the project README already captures
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Recall-before-remember (mandatory discipline)
|
|
38
|
+
|
|
39
|
+
Before calling `remember`, always call `recall` first with the core terms of
|
|
40
|
+
what you are about to store. If a near-duplicate exists:
|
|
41
|
+
|
|
42
|
+
- Use `update_memory(fact_id, content)` to refine the existing fact instead
|
|
43
|
+
of creating a new one.
|
|
44
|
+
- Only call `remember` when no sufficiently similar fact is found.
|
|
45
|
+
|
|
46
|
+
Duplicates degrade retrieval quality for every future session.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## MCP-first workflow
|
|
51
|
+
|
|
52
|
+
### 1. Check for duplicates first
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
recall(query="JWT token expiry auth", limit=5, session_id="<sid>")
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If a near-duplicate is returned:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
update_memory(
|
|
62
|
+
fact_id="f8a2bc91",
|
|
63
|
+
content="JWT tokens use 1h expiry for API access tokens; refresh tokens 30d (updated 2026-06-16)",
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`update_memory` returns `{"success": true, "fact_id": "f8a2bc91", "content": "..."}`.
|
|
68
|
+
|
|
69
|
+
### 2. Store a new fact
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
remember(
|
|
73
|
+
content="Decided to use JWT with 1h expiry for API auth; refresh tokens persist 30 days",
|
|
74
|
+
tags="auth,security,decision",
|
|
75
|
+
project="superlocalmemory",
|
|
76
|
+
importance=8,
|
|
77
|
+
session_id="<sid>",
|
|
78
|
+
)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Real response shape:
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"success": true,
|
|
85
|
+
"fact_ids": ["c9d4e112"],
|
|
86
|
+
"count": 1,
|
|
87
|
+
"pending": false,
|
|
88
|
+
"message": "Stored (recallable now; enriching async)."
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
When `pending: true`, the daemon was offline at save time; the fact enters a
|
|
93
|
+
pending queue and becomes recallable once the daemon is back. Do not re-save.
|
|
94
|
+
|
|
95
|
+
**Never claim "saved" unless `success: true` is in the response.**
|
|
96
|
+
|
|
97
|
+
### 3. Parameter reference
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
remember(
|
|
101
|
+
content: str, # required — the atomic fact to store
|
|
102
|
+
tags: str = "", # comma-separated tags, e.g. "auth,security,gotcha"
|
|
103
|
+
project: str = "", # project scope, e.g. "superlocalmemory"
|
|
104
|
+
importance: int = 5,# 1–10; see scale below
|
|
105
|
+
session_id: str = "",# from session_init; attributes the write to this session
|
|
106
|
+
session_date: str = "",# when the memory is ABOUT, if not today
|
|
107
|
+
scope: str = None, # v3.6.15 multi-scope: "personal" (default) | "shared" | "global"
|
|
108
|
+
shared_with: str = "",# comma-separated profile_ids for scope="shared"
|
|
109
|
+
idempotency_key: str = "",# replaying the same key will not store a second copy
|
|
110
|
+
)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
> **Multi-scope (v3.6.15, opt-in):** leave `scope` unset for `personal` (private to
|
|
114
|
+
> this profile — the default, identical to 3.6.14). `"global"` is visible to every
|
|
115
|
+
> profile on the machine; `"shared"` is visible to the profiles in `shared_with`.
|
|
116
|
+
> See [docs/shared-memory.md](../../../docs/shared-memory.md).
|
|
117
|
+
|
|
118
|
+
**importance scale:**
|
|
119
|
+
- 1–3: Low — passing notes, ideas, soft preferences
|
|
120
|
+
- 4–6: Normal — patterns, conventions, standard decisions (default: 5)
|
|
121
|
+
- 7–8: High — architectural decisions, integration contracts, known gotchas
|
|
122
|
+
- 9–10: Critical — security rules, blockers, irreversible decisions
|
|
123
|
+
|
|
124
|
+
Use 7–10 only for facts that would cause real damage if forgotten.
|
|
125
|
+
|
|
126
|
+
### 4. Date a memory to when it happened
|
|
127
|
+
|
|
128
|
+
`session_date` says **when the memory is about**, as distinct from when you
|
|
129
|
+
wrote it. Omit it and the memory is dated today.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
remember(
|
|
133
|
+
content="The outage on the payments queue was caused by a stale DNS entry",
|
|
134
|
+
tags="incident,payments,postmortem",
|
|
135
|
+
project="platform",
|
|
136
|
+
session_date="2026-08-14", # YYYY-MM-DD, or a full ISO 8601 timestamp
|
|
137
|
+
session_id="<sid>",
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Use it whenever you are writing something down after the fact — a postmortem, a
|
|
142
|
+
decision taken in a meeting last week, a migration that ran on a known date.
|
|
143
|
+
Time-filtered recall (`window="7d"`, `window="2026-07-01..2026-07-31"`) reads
|
|
144
|
+
event time, so a mis-dated memory is one a time-scoped question cannot find.
|
|
145
|
+
|
|
146
|
+
`session_date` does not change what **kind** of memory it is. A memory that
|
|
147
|
+
describes something planned — "the migration is scheduled for Tuesday", "the
|
|
148
|
+
certificate expires on 2026-09-01" — is stored as a **prospective** memory, and
|
|
149
|
+
recall reports it as `"fact_type": "prospective"`. That is inferred from how the
|
|
150
|
+
content reads, not from the date you pass. Stores written before 4.1.0 spelled
|
|
151
|
+
this type `"temporal"`; that value still reads correctly and needs nothing from
|
|
152
|
+
you.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### 5. One fact per call
|
|
157
|
+
|
|
158
|
+
Store one atomic fact per `remember` call. Do not concatenate multiple unrelated
|
|
159
|
+
points into a single content string — they will be hard to update individually
|
|
160
|
+
and harder to retrieve cleanly. If you have three separate decisions, make three
|
|
161
|
+
calls.
|
|
162
|
+
|
|
163
|
+
### 6. Always set tags and project
|
|
164
|
+
|
|
165
|
+
Untagged, unscoped facts are harder to retrieve and harder to manage. Minimum:
|
|
166
|
+
set `tags` to one or two relevant terms and `project` to the repo/product name.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Deleting stale facts via CLI
|
|
171
|
+
|
|
172
|
+
For deletion, the CLI is the authoritative surface. The MCP `forget` tool in
|
|
173
|
+
v3.6.14 runs an Ebbinghaus decay cycle — it does NOT delete by query. For
|
|
174
|
+
targeted deletion, use the CLI:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Preview what would be deleted (always do this first)
|
|
178
|
+
slm forget "<query>" --dry-run [--json]
|
|
179
|
+
|
|
180
|
+
# Execute deletion after confirming the preview
|
|
181
|
+
slm forget "<query>" --yes [--json]
|
|
182
|
+
|
|
183
|
+
# Delete a specific fact by exact ID (use when you have the fact_id)
|
|
184
|
+
slm delete <fact_id> --yes [--json]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Flags verified in source (main.py):
|
|
188
|
+
- `slm forget`: positional `query`, `--dry-run`, `--yes` / `-y`, `--json`
|
|
189
|
+
- `slm delete`: positional `fact_id`, `--yes` / `-y`, `--json`
|
|
190
|
+
|
|
191
|
+
Always run `--dry-run` first and review the preview before passing `--yes`.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## CLI fallback (when MCP is unavailable)
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Store a fact
|
|
199
|
+
slm remember "<content>" [--tags a,b,c] [--json]
|
|
200
|
+
|
|
201
|
+
# Store a shared/global fact (v3.6.15, opt-in)
|
|
202
|
+
slm remember "<content>" --scope global
|
|
203
|
+
slm remember "<content>" --scope shared --shared-with alice,bob
|
|
204
|
+
|
|
205
|
+
# Flags verified in source (main.py): --tags, --json, --sync, --scope, --shared-with
|
|
206
|
+
# --sync: wait for full enrichment before returning (default is async)
|
|
207
|
+
# --scope: personal (default) | shared | global ; --shared-with: profile ids for shared
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Flags that do NOT exist** on `slm remember`:
|
|
211
|
+
`--importance`, `--project`, `--format` — these are MCP-only params or fabricated.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Update vs forget discipline
|
|
216
|
+
|
|
217
|
+
| Scenario | Action |
|
|
218
|
+
|----------|--------|
|
|
219
|
+
| Fact is still true but needs refinement | `update_memory(fact_id, new_content)` |
|
|
220
|
+
| Fact is superseded or wrong | `slm forget "<query>" --dry-run` then `--yes` |
|
|
221
|
+
| Duplicate found that matches recall result | `update_memory` on the existing one |
|
|
222
|
+
| Fact has a known ID and is clearly obsolete | `slm delete <fact_id> --yes` |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Multi-scope sharing (v3.6.15+, opt-in)
|
|
227
|
+
|
|
228
|
+
Every `remember` call defaults to `personal` scope — private to the active profile.
|
|
229
|
+
To share a fact with other profiles on the same machine, set the `scope` parameter:
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
# Share with every profile on this machine
|
|
233
|
+
remember(
|
|
234
|
+
content="API rate limit is 100 req/min per tenant",
|
|
235
|
+
tags="api,limits,shared",
|
|
236
|
+
project="platform",
|
|
237
|
+
scope="global", # visible to all profiles
|
|
238
|
+
session_id="<sid>",
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
# Share with specific profiles only
|
|
242
|
+
remember(
|
|
243
|
+
content="Staging DB migration runs Fridays 22:00 UTC",
|
|
244
|
+
tags="db,ops",
|
|
245
|
+
scope="shared",
|
|
246
|
+
shared_with="work-profile,devops-profile",
|
|
247
|
+
session_id="<sid>",
|
|
248
|
+
)
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**Only set scope when the user explicitly asks to share.** The default
|
|
252
|
+
`personal` scope is identical to single-profile SLM. See `slm-scope` for the
|
|
253
|
+
complete sharing model and when to use each scope.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Profile-aware storage (v3.8.0+)
|
|
258
|
+
|
|
259
|
+
`remember` always stores in the active profile's namespace. To write to a
|
|
260
|
+
different workspace, use `switch_profile` first. See `slm-profile`.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Related skills
|
|
265
|
+
|
|
266
|
+
- `slm-recall` — retrieve what was remembered
|
|
267
|
+
- `slm-session` — session lifecycle; session_id is required for attribution
|
|
268
|
+
- `slm-scope` — complete guide to personal / shared / global scopes
|
|
269
|
+
- `slm-profile` — workspace isolation and profile switching
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
*SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slm-scope
|
|
3
|
+
description: Controls memory visibility across profiles — personal (private, default), shared (selected profiles), or global (all profiles on this machine). Default is always personal. Only change scope when the user explicitly asks to share a memory across workspaces. Works with both remember (write scope) and recall (read scope flags).
|
|
4
|
+
when_to_use: |
|
|
5
|
+
- "Share this memory with the team profile"
|
|
6
|
+
- "Store this globally so all my agents can see it"
|
|
7
|
+
- "Recall anything shared from the work profile"
|
|
8
|
+
- "Can other agents on this machine see my memories?"
|
|
9
|
+
- User explicitly asks to cross-profile share a fact or see shared facts
|
|
10
|
+
- Enterprise setup where multiple profiles collaborate
|
|
11
|
+
allowed-tools: remember, recall, search, list_recent, Bash
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# slm-scope — Memory Scope and Sharing Model
|
|
15
|
+
|
|
16
|
+
SuperLocalMemory is profile-isolated by default. Every profile is a fully
|
|
17
|
+
independent memory namespace. The scope model adds controlled, opt-in sharing
|
|
18
|
+
between profiles on the same machine — it is never active unless you explicitly
|
|
19
|
+
set it.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## The Three Scopes
|
|
24
|
+
|
|
25
|
+
| Scope | Visibility | When to use |
|
|
26
|
+
|-------|-----------|-------------|
|
|
27
|
+
| `personal` | Active profile only | Default — all facts. Never set explicitly. |
|
|
28
|
+
| `shared` | Active profile + `shared_with` profiles | Team handoffs, shared project context |
|
|
29
|
+
| `global` | Every profile on this machine | Machine-wide conventions, org-wide rules |
|
|
30
|
+
|
|
31
|
+
**The default is always `personal`.** A fact stored without a `scope` argument
|
|
32
|
+
is private to the profile that stored it. Recall without scope flags returns only
|
|
33
|
+
personal facts. This is identical to single-profile SLM.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Opt-in is mandatory
|
|
38
|
+
|
|
39
|
+
Never set `scope="shared"` or `scope="global"` (or the recall equivalents
|
|
40
|
+
`include_shared`, `include_global`) unless the user explicitly asks you to share
|
|
41
|
+
or read across profiles. This is a hard rule — scope expansion is an action with
|
|
42
|
+
team-wide or machine-wide impact, and it must always be user-initiated.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Writing a shared or global fact
|
|
47
|
+
|
|
48
|
+
### share with specific profiles
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
remember(
|
|
52
|
+
content="API gateway rate limit is 1000 req/min per client",
|
|
53
|
+
tags="api,limits,ops",
|
|
54
|
+
project="platform",
|
|
55
|
+
importance=8,
|
|
56
|
+
session_id="<sid>",
|
|
57
|
+
scope="shared",
|
|
58
|
+
shared_with="devops-profile,backend-profile",
|
|
59
|
+
)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`shared_with` is a comma-separated list of profile IDs that should be able to
|
|
63
|
+
recall this fact. Use `slm status` to see the current profile name — that is the
|
|
64
|
+
`profile_id` to supply.
|
|
65
|
+
|
|
66
|
+
### share with all profiles on the machine
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
remember(
|
|
70
|
+
content="All services must enforce TLS 1.3 minimum",
|
|
71
|
+
tags="security,tls,global",
|
|
72
|
+
project="infra",
|
|
73
|
+
importance=9,
|
|
74
|
+
session_id="<sid>",
|
|
75
|
+
scope="global",
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`scope="global"` makes the fact visible to every profile on this machine. Use
|
|
80
|
+
this only for machine-wide conventions (security rules, org-wide constraints).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Reading shared or global facts
|
|
85
|
+
|
|
86
|
+
By default, `recall` returns only the active profile's personal facts. To surface
|
|
87
|
+
shared and global facts, pass the opt-in flags:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
recall(
|
|
91
|
+
query="rate limiting rules",
|
|
92
|
+
limit=20,
|
|
93
|
+
include_global=True, # include global-scope facts
|
|
94
|
+
include_shared=True, # include facts shared with this profile
|
|
95
|
+
session_id="<sid>",
|
|
96
|
+
)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You can opt in to either or both flags independently. Only the active profile's
|
|
100
|
+
permitted shared facts are returned — you cannot read another profile's personal
|
|
101
|
+
facts.
|
|
102
|
+
|
|
103
|
+
### CLI equivalents
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Recall with global facts included
|
|
107
|
+
slm recall "rate limiting rules" --include-global
|
|
108
|
+
|
|
109
|
+
# Recall with shared facts included
|
|
110
|
+
slm recall "rate limiting rules" --include-shared
|
|
111
|
+
|
|
112
|
+
# Both
|
|
113
|
+
slm recall "rate limiting rules" --include-global --include-shared
|
|
114
|
+
|
|
115
|
+
# Store a global fact
|
|
116
|
+
slm remember "TLS 1.3 minimum" --scope global
|
|
117
|
+
|
|
118
|
+
# Store a shared fact (shared-with is a comma-separated list of profile IDs)
|
|
119
|
+
slm remember "API rate limit 1000/min" --scope shared --shared-with devops,backend
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
CLI flags verified in source: `--include-global` / `--no-global`, `--include-shared` / `--no-shared`,
|
|
123
|
+
`--scope personal|shared|global`, `--shared-with <profile-ids>`.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Configuring scope defaults
|
|
128
|
+
|
|
129
|
+
Per-profile defaults live in `mode_a/b/c.json` configuration. To make a profile
|
|
130
|
+
always include global facts without passing flags each time:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"recall": {
|
|
135
|
+
"include_global": true,
|
|
136
|
+
"include_shared": false
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Changing the default requires editing the profile config directly — this is an
|
|
142
|
+
admin-level operation.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Enterprise governance
|
|
147
|
+
|
|
148
|
+
In a governed workspace (admin/member/viewer roles), scope expansion may be
|
|
149
|
+
restricted:
|
|
150
|
+
- **Viewers** cannot write `scope="global"` facts — their writes are always `personal`.
|
|
151
|
+
- **Members** can write `scope="shared"` with profiles in their access list.
|
|
152
|
+
- **Admins** can write `scope="global"` unrestricted.
|
|
153
|
+
|
|
154
|
+
See `slm-governance` for the full enterprise behavior model.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Scope deletion and retention
|
|
159
|
+
|
|
160
|
+
A `scope="global"` fact deleted by one profile is deleted for all profiles. A
|
|
161
|
+
`scope="shared"` fact is deleted from all profiles that had access to it.
|
|
162
|
+
Use `slm forget "<query>" --dry-run` before any deletion involving shared facts
|
|
163
|
+
to review the impact. See `slm-remember` for the full deletion discipline.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Related skills
|
|
168
|
+
|
|
169
|
+
- `slm-remember` — full fact storage reference including scope parameters
|
|
170
|
+
- `slm-recall` — full retrieval reference including include_global/include_shared
|
|
171
|
+
- `slm-profile` — what a profile is and how to switch between them
|
|
172
|
+
- `slm-governance` — enterprise role restrictions on scope
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
*SuperLocalMemory v4.1.22 · Qualixar · AGPL-3.0-or-later*
|