@samuelfaj/distill 1.4.6 → 1.4.7

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
@@ -23,6 +23,8 @@ D inspect remotes + MR meta
23
23
  R merge/update may block w/o token
24
24
  ```
25
25
 
26
+ Inline variables such as `workspace=#w3` and `version=#v1` are learned into DSL memory and reused in later prompts.
27
+
26
28
  `/distill` also has DSL memory:
27
29
 
28
30
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@samuelfaj/distill",
3
- "version": "1.4.6",
3
+ "version": "1.4.7",
4
4
  "description": "Compress command output for downstream LLMs.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -16,11 +16,11 @@
16
16
  "node": ">=18"
17
17
  },
18
18
  "optionalDependencies": {
19
- "@samuelfaj/distill-darwin-arm64": "1.4.6",
20
- "@samuelfaj/distill-darwin-x64": "1.4.6",
21
- "@samuelfaj/distill-linux-arm64": "1.4.6",
22
- "@samuelfaj/distill-linux-x64": "1.4.6",
23
- "@samuelfaj/distill-win32-x64": "1.4.6"
19
+ "@samuelfaj/distill-darwin-arm64": "1.4.7",
20
+ "@samuelfaj/distill-darwin-x64": "1.4.7",
21
+ "@samuelfaj/distill-linux-arm64": "1.4.7",
22
+ "@samuelfaj/distill-linux-x64": "1.4.7",
23
+ "@samuelfaj/distill-win32-x64": "1.4.7"
24
24
  },
25
25
  "publishConfig": {
26
26
  "access": "public"
@@ -165,6 +165,35 @@ C PATH pkg bin => repo patch ignored
165
165
  R missing token => merge blocked
166
166
  ```
167
167
 
168
+ ## Variable Dict
169
+
170
+ Every thread must use DSL/Dict when it helps compression.
171
+ Start with `Dict:` when meanings are not already shared.
172
+ Define short thread variables inline when a noun will repeat:
173
+
174
+ ```text
175
+ S npm workspace=#w3 version=#v1 sync no-op
176
+ D patch=#p1 package=#p2 manifests mechanically
177
+ D regen lock after #p2 manifest sync
178
+ N no release tag before clean verify
179
+ ```
180
+
181
+ After definition, use the variable:
182
+
183
+ ```text
184
+ D inspect #w3 config
185
+ D bump #v1 in #p2 manifests
186
+ ```
187
+
188
+ Rules:
189
+
190
+ - variable key format: `#` + letter + digit, for example `#w3`
191
+ - one stable meaning per variable inside the thread
192
+ - do not define variables for secrets, people, IDs, paths, URLs, or one-off terms
193
+ - do not redefine an active variable; add a new key if meaning changed
194
+ - inline `#` variables are active immediately after explicit assignment
195
+ - learn reusable variables with `Dict+` or transcript learning when available
196
+
168
197
  ## Good Response Forms
169
198
 
170
199
  Tiny status:
@@ -206,7 +235,12 @@ R not committed
206
235
 
207
236
  ## Glossary And Memory
208
237
 
209
- Keep an internal alias dict per conversation. Do not create files.
238
+ Use two memory layers:
239
+
240
+ - thread dict: internal aliases for the current conversation
241
+ - persisted dict: entries saved by `distill dsl learn`, `distill dsl learn-thread --stdin`, or explicit user action
242
+
243
+ Do not manually create memory files. Let the `distill` CLI own JSON memory writes.
210
244
 
211
245
  Use aliases only when they stay obvious:
212
246
 
@@ -245,7 +279,15 @@ Dict: S=state C=context D=action R=risk O=outcome N=no-go P=proof 1=failing-test
245
279
  Dict+: A1=authentication bug fix
246
280
  ```
247
281
 
248
- Expire learned terms mentally if they stop appearing. A term should not become part of thread DSL unless it appears at least twice in a short window or the user explicitly approves it.
282
+ Persisted learned terms start as candidates and promote only through lifecycle rules. A term should not become part of active DSL unless it appears at least twice in a short window or the user explicitly approves it.
283
+
284
+ At every thread end or handoff, when transcript export is available, run:
285
+
286
+ ```bash
287
+ distill dsl learn-thread --stdin < transcript.txt
288
+ ```
289
+
290
+ This analyzes repeated usage, rejects sensitive/noisy terms, asks the configured reviewer model for strict JSON, and persists only compact candidates.
249
291
 
250
292
  ## Tool Calls
251
293