@litfamily/litopencode 1.0.9 → 1.0.10

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
@@ -1,6 +1,6 @@
1
- <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitOpenCode robot wakes with glowing eyes and a lit frame, then LITFAMILY and KEEP THE WORK LIT. light up." /></picture></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitOpenCode robot wakes with glowing eyes and a lit frame, then LITFAMILY and KEEP THE WORK LIT. light up." /></picture></p>
2
2
 
3
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
3
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
4
4
 
5
5
  <details>
6
6
  <summary>Copy ASCII logo</summary>
@@ -32,20 +32,20 @@
32
32
 
33
33
  # LitOpenCode
34
34
 
35
- [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/README-Ko-KR.md)
35
+ [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/README-Ko-KR.md)
36
36
 
37
37
  **Keep the work lit.**
38
38
 
39
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE display type" /></p>
40
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode clay mark" /></p>
39
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE display type" /></p>
40
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode clay mark" /></p>
41
41
 
42
42
  <p align="center">
43
- <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/badge-version.svg" alt="1.0.9" /></a>
44
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
43
+ <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/badge-version.svg" alt="1.0.10" /></a>
44
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
45
45
  </p>
46
46
 
47
47
  <p align="center">
48
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> Docs</a> &nbsp; <a href="#install">Install</a> &nbsp; <a href="#skills-at-a-glance">Skills</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
48
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> Docs</a> &nbsp; <a href="#install">Install</a> &nbsp; <a href="#skills-at-a-glance">Skills</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
49
49
  </p>
50
50
 
51
51
  ## What is LitOpenCode
@@ -75,10 +75,10 @@ npm exec --package @litfamily/litopencode@latest -- litopencode install --yes
75
75
  Installation registers the plugin and native command/skill files under your OpenCode
76
76
  config root. Routes live in `~/.config/opencode/litopencode.json`; `XDG_CONFIG_HOME`
77
77
  changes that root. Existing custom routes remain user-owned. See the
78
- [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#install) for custom roots,
78
+ [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#install) for custom roots,
79
79
  provider choices, terminal policy, and unattended setup.
80
80
 
81
- This checkout is `@litfamily/litopencode@1.0.9`. Registry `@latest` can differ; inspect it with
81
+ This checkout is `@litfamily/litopencode@1.0.10`. Registry `@latest` can differ; inspect it with
82
82
  `npm view @litfamily/litopencode version` when an exact version matters.
83
83
 
84
84
  ## First use
@@ -133,9 +133,9 @@ Use `lit` or `/lit` to start a bounded task; `handoff` or `/lit-handoff` carries
133
133
 
134
134
  When a Lit route activates, the reply starts with a bold ignition line. The plugin requests a six-second warning toast with five micro-logo rows and a final `🔥 LIT IGNITED · <discipline> 🔥` line when the environment supports mark glyphs; otherwise, it shows only that line.
135
135
 
136
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode ignition apparatus" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode continuity apparatus" /></p>
136
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode ignition apparatus" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode continuity apparatus" /></p>
137
137
 
138
- <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/poster.png" width="720" alt="Ignition motion poster" /></a></p>
138
+ <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/poster.png" width="720" alt="Ignition motion poster" /></a></p>
139
139
 
140
140
  The poster opens the optional film; this README keeps motion opt-in.
141
141
 
@@ -190,192 +190,192 @@ Each row shows what a skill produces, how to open it, and what you get.
190
190
  <table>
191
191
  <tr><th>What it looks like</th><th>Skill</th><th>What you get</th></tr>
192
192
  <tr>
193
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/litwork.webp" width="240" alt="Add lit to a request. The work goes Frame, Ground, Plan, Execute, Verify, Review, Recap." /></td>
193
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/litwork.webp" width="240" alt="Add lit to a request. The work goes Frame, Ground, Plan, Execute, Verify, Review, Recap." /></td>
194
194
  <td><code>litwork</code> · <code>workflow-loop</code><br /><sub><code>lit</code> · <code>/litwork</code></sub></td>
195
195
  <td>Add <code>lit</code> to a request. The work goes Frame, Ground, Plan, Execute, Verify, Review, Recap.</td>
196
196
  </tr>
197
197
  <tr>
198
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/durable-litgoal.webp" width="240" alt="One goal with checkable criteria, kept on disk when OpenCode has no native goal." /></td>
198
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/durable-litgoal.webp" width="240" alt="One goal with checkable criteria, kept on disk when OpenCode has no native goal." /></td>
199
199
  <td><code>durable-litgoal</code><br /><sub><code>/litgoal</code> · <code>/lit-goal</code></sub></td>
200
200
  <td>One goal with checkable criteria, kept on disk when OpenCode has no native goal.</td>
201
201
  </tr>
202
202
  <tr>
203
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-plan.webp" width="240" alt="A checklist that stops at an approval gate. The lit-plan agent cannot edit files or run shell commands." /></td>
203
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-plan.webp" width="240" alt="A checklist that stops at an approval gate. The lit-plan agent cannot edit files or run shell commands." /></td>
204
204
  <td><code>lit-plan</code><br /><sub><code>/lit-plan</code></sub></td>
205
205
  <td>A checklist that stops at an approval gate. The lit-plan agent cannot edit files or run shell commands.</td>
206
206
  </tr>
207
207
  <tr>
208
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/start-work.webp" width="240" alt="Runs an approved plan slice by slice. A stale grant or revision stops the run." /></td>
208
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/start-work.webp" width="240" alt="Runs an approved plan slice by slice. A stale grant or revision stops the run." /></td>
209
209
  <td><code>start-work</code><br /><sub><code>/start-work</code></sub></td>
210
210
  <td>Runs an approved plan slice by slice. A stale grant or revision stops the run.</td>
211
211
  </tr>
212
212
  <tr>
213
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/review-work.webp" width="240" alt="Five review lanes: findings by severity, then pass, fail or not-run for each lane." /></td>
213
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/review-work.webp" width="240" alt="Five review lanes: findings by severity, then pass, fail or not-run for each lane." /></td>
214
214
  <td><code>review-work</code><br /><sub><code>/review-work</code></sub></td>
215
215
  <td>Five review lanes: findings by severity, then pass, fail or not-run for each lane.</td>
216
216
  </tr>
217
217
  <tr>
218
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/litresearch.webp" width="240" alt="Research in waves, with claim receipts and uncertainty kept." /></td>
218
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/litresearch.webp" width="240" alt="Research in waves, with claim receipts and uncertainty kept." /></td>
219
219
  <td><code>litresearch</code><br /><sub><code>lit research &lt;question&gt;</code> · <code>/litresearch</code></sub></td>
220
220
  <td>Research in waves, with claim receipts and uncertainty kept.</td>
221
221
  </tr>
222
222
  <tr>
223
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/doctor-installer.webp" width="240" alt="Installs LitOpenCode into OpenCode. --dry-run previews the change and writes nothing." /></td>
223
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/doctor-installer.webp" width="240" alt="Installs LitOpenCode into OpenCode. --dry-run previews the change and writes nothing." /></td>
224
224
  <td><code>doctor-installer</code><br /><sub><code>litopencode install</code> · <code>litopencode doctor</code></sub></td>
225
225
  <td>Installs LitOpenCode into OpenCode. <code>--dry-run</code> previews the change and writes nothing.</td>
226
226
  </tr>
227
227
  <tr>
228
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-fetch.webp" width="240" alt="Fetches a public page behind SSRF guards and returns a named verdict." /></td>
228
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-fetch.webp" width="240" alt="Fetches a public page behind SSRF guards and returns a named verdict." /></td>
229
229
  <td><code>lit-fetch</code><br /><sub><code>/lit-fetch</code> · <code>litopencode fetch-public &lt;url&gt; --json</code></sub></td>
230
230
  <td>Fetches a public page behind SSRF guards and returns a named verdict.</td>
231
231
  </tr>
232
232
  <tr>
233
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-init.webp" width="240" alt="Writes sparse AGENTS.md guides, only where the code needs one." /></td>
233
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-init.webp" width="240" alt="Writes sparse AGENTS.md guides, only where the code needs one." /></td>
234
234
  <td><code>lit-init</code><br /><sub><code>/lit-init</code></sub></td>
235
235
  <td>Writes sparse AGENTS.md guides, only where the code needs one.</td>
236
236
  </tr>
237
237
  <tr>
238
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-crucible.webp" width="240" alt="Pressure-tests a brief before planning. Only the risks that survive critique reach the plan." /></td>
238
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-crucible.webp" width="240" alt="Pressure-tests a brief before planning. Only the risks that survive critique reach the plan." /></td>
239
239
  <td><code>lit-crucible</code><br /><sub><code>/lit-crucible</code></sub></td>
240
240
  <td>Pressure-tests a brief before planning. Only the risks that survive critique reach the plan.</td>
241
241
  </tr>
242
242
  <tr>
243
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/refactor.webp" width="240" alt="Restructures code while tests pin its behavior before and after every step." /></td>
243
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/refactor.webp" width="240" alt="Restructures code while tests pin its behavior before and after every step." /></td>
244
244
  <td><code>refactor</code><br /><sub><code>/refactor</code></sub></td>
245
245
  <td>Restructures code while tests pin its behavior before and after every step.</td>
246
246
  </tr>
247
247
  <tr>
248
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-burnoff.webp" width="240" alt="Cleans AI-written bloat out of a change set after tests lock what it does." /></td>
248
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-burnoff.webp" width="240" alt="Cleans AI-written bloat out of a change set after tests lock what it does." /></td>
249
249
  <td><code>lit-burnoff</code><br /><sub><code>/lit-burnoff</code></sub></td>
250
250
  <td>Cleans AI-written bloat out of a change set after tests lock what it does.</td>
251
251
  </tr>
252
252
  <tr>
253
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-burnoff-file.webp" width="240" alt="Cleans one just-edited file against its own diff." /></td>
253
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-burnoff-file.webp" width="240" alt="Cleans one just-edited file against its own diff." /></td>
254
254
  <td><code>lit-burnoff-file</code><br /><sub><code>/lit-burnoff-file</code></sub></td>
255
255
  <td>Cleans one just-edited file against its own diff.</td>
256
256
  </tr>
257
257
  <tr>
258
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-code.webp" width="240" alt="Minimum-first code with Given/When/Then tests and a cleanup receipt." /></td>
258
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-code.webp" width="240" alt="Minimum-first code with Given/When/Then tests and a cleanup receipt." /></td>
259
259
  <td><code>lit-code</code><br /><sub><code>/lit-code</code></sub></td>
260
260
  <td>Minimum-first code with Given/When/Then tests and a cleanup receipt.</td>
261
261
  </tr>
262
262
  <tr>
263
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/debugging.webp" width="240" alt="Reproduces the bug, tests at least three explanations, and fixes only the confirmed cause." /></td>
263
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/debugging.webp" width="240" alt="Reproduces the bug, tests at least three explanations, and fixes only the confirmed cause." /></td>
264
264
  <td><code>debugging</code><br /><sub><code>/debugging</code></sub></td>
265
265
  <td>Reproduces the bug, tests at least three explanations, and fixes only the confirmed cause.</td>
266
266
  </tr>
267
267
  <tr>
268
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-commit.webp" width="240" alt="Splits your changes into atomic commits in the repo's own style and leaves unrelated work alone." /></td>
268
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-commit.webp" width="240" alt="Splits your changes into atomic commits in the repo's own style and leaves unrelated work alone." /></td>
269
269
  <td><code>lit-commit</code><br /><sub><code>/lit-commit</code></sub></td>
270
270
  <td>Splits your changes into atomic commits in the repo's own style and leaves unrelated work alone.</td>
271
271
  </tr>
272
272
  <tr>
273
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lsp.webp" width="240" alt="Reads diagnostics from the language server OpenCode already has. LitOpenCode ships no server." /></td>
273
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lsp.webp" width="240" alt="Reads diagnostics from the language server OpenCode already has. LitOpenCode ships no server." /></td>
274
274
  <td><code>lsp</code><br /><sub><code>/lsp</code></sub></td>
275
275
  <td>Reads diagnostics from the language server OpenCode already has. LitOpenCode ships no server.</td>
276
276
  </tr>
277
277
  <tr>
278
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lsp-setup.webp" width="240" alt="Proposes one install command when no server covers a file type, then waits for your approval." /></td>
278
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lsp-setup.webp" width="240" alt="Proposes one install command when no server covers a file type, then waits for your approval." /></td>
279
279
  <td><code>lsp-setup</code><br /><sub><code>/lsp-setup</code></sub></td>
280
280
  <td>Proposes one install command when no server covers a file type, then waits for your approval.</td>
281
281
  </tr>
282
282
  <tr>
283
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/rules.webp" width="240" alt="Loads repository rules in two lanes: once for the session, and again for files you edit." /></td>
283
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/rules.webp" width="240" alt="Loads repository rules in two lanes: once for the session, and again for files you edit." /></td>
284
284
  <td><code>rules</code><br /><sub><code>/rules</code></sub></td>
285
285
  <td>Loads repository rules in two lanes: once for the session, and again for files you edit.</td>
286
286
  </tr>
287
287
  <tr>
288
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/deep-interview.webp" width="240" alt="One question per round until non-goals and decision boundaries are explicit." /></td>
288
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/deep-interview.webp" width="240" alt="One question per round until non-goals and decision boundaries are explicit." /></td>
289
289
  <td><code>deep-interview</code><br /><sub><code>/deep-interview</code></sub></td>
290
290
  <td>One question per round until non-goals and decision boundaries are explicit.</td>
291
291
  </tr>
292
292
  <tr>
293
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/structural-search.webp" width="240" alt="Finds code by syntax shape behind a verified engine. Anything else is labelled TEXTUAL." /></td>
293
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/structural-search.webp" width="240" alt="Finds code by syntax shape behind a verified engine. Anything else is labelled TEXTUAL." /></td>
294
294
  <td><code>structural-search</code><br /><sub><code>/structural-search</code></sub></td>
295
295
  <td>Finds code by syntax shape behind a verified engine. Anything else is labelled TEXTUAL.</td>
296
296
  </tr>
297
297
  <tr>
298
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/browser-drive.webp" width="240" alt="Drives a real page after verifying the browser driver. If there is none, it says so." /></td>
298
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/browser-drive.webp" width="240" alt="Drives a real page after verifying the browser driver. If there is none, it says so." /></td>
299
299
  <td><code>browser-drive</code><br /><sub><code>/browser-drive</code></sub></td>
300
300
  <td>Drives a real page after verifying the browser driver. If there is none, it says so.</td>
301
301
  </tr>
302
302
  <tr>
303
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-humanizer.webp" width="240" alt="Rewrites stiff model prose in English or Korean. Facts and hedges stay; filler goes." /></td>
303
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-humanizer.webp" width="240" alt="Rewrites stiff model prose in English or Korean. Facts and hedges stay; filler goes." /></td>
304
304
  <td><code>lit-humanizer</code><br /><sub><code>/lit-humanizer</code></sub></td>
305
305
  <td>Rewrites stiff model prose in English or Korean. Facts and hedges stay; filler goes.</td>
306
306
  </tr>
307
307
  <tr>
308
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-recap.webp" width="240" alt="A read-only summary: done, in progress, blocked, where the evidence is, what comes next." /></td>
308
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-recap.webp" width="240" alt="A read-only summary: done, in progress, blocked, where the evidence is, what comes next." /></td>
309
309
  <td><code>lit-recap</code><br /><sub><code>/lit-recap</code></sub></td>
310
310
  <td>A read-only summary: done, in progress, blocked, where the evidence is, what comes next.</td>
311
311
  </tr>
312
312
  <tr>
313
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-comprehend.webp" width="240" alt="An explainer page for agent-written work: intuition first, then the walkthrough, then a short quiz." /></td>
313
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-comprehend.webp" width="240" alt="An explainer page for agent-written work: intuition first, then the walkthrough, then a short quiz." /></td>
314
314
  <td><code>lit-comprehend</code><br /><sub><code>/lit-comprehend</code></sub></td>
315
315
  <td>An explainer page for agent-written work: intuition first, then the walkthrough, then a short quiz.</td>
316
316
  </tr>
317
317
  <tr>
318
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-handoff.webp" width="240" alt="Type handoff to get a continuation file the next session can read and resume from." /></td>
318
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-handoff.webp" width="240" alt="Type handoff to get a continuation file the next session can read and resume from." /></td>
319
319
  <td><code>lit-handoff</code><br /><sub><code>handoff</code> · <code>/lit-handoff</code></sub></td>
320
320
  <td>Type <code>handoff</code> to get a continuation file the next session can read and resume from.</td>
321
321
  </tr>
322
322
  <tr>
323
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-scientific-visualization.webp" width="240" alt="A journal-sized figure with vector and 600 DPI exports. The chart type follows the data." /></td>
323
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-scientific-visualization.webp" width="240" alt="A journal-sized figure with vector and 600 DPI exports. The chart type follows the data." /></td>
324
324
  <td><code>lit-scientific-visualization</code><br /><sub><code>/lit-scientific-visualization</code></sub></td>
325
325
  <td>A journal-sized figure with vector and 600 DPI exports. The chart type follows the data.</td>
326
326
  </tr>
327
327
  <tr>
328
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-diagram-drawer.webp" width="240" alt="A checked, editable diagram for slides and documents, with PNG and Office-safe SVG exports." /></td>
328
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-diagram-drawer.webp" width="240" alt="A checked, editable diagram for slides and documents, with PNG and Office-safe SVG exports." /></td>
329
329
  <td><code>lit-diagram-drawer</code><br /><sub><code>skill picker</code></sub></td>
330
330
  <td>A checked, editable diagram for slides and documents, with PNG and Office-safe SVG exports.</td>
331
331
  </tr>
332
332
  <tr>
333
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-pptx.webp" width="240" alt="Ask for slides with lit and get an editable PowerPoint deck from a Markdown source, AZURE-PRO by default. A QA gate and a rendered check follow. It is also in the skill picker." /></td>
333
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-pptx.webp" width="240" alt="Ask for slides with lit and get an editable PowerPoint deck from a Markdown source, AZURE-PRO by default. A QA gate and a rendered check follow. It is also in the skill picker." /></td>
334
334
  <td><code>lit-pptx</code><br /><sub><code>skill picker</code></sub></td>
335
335
  <td>Ask for slides with <code>lit</code> and get an editable PowerPoint deck from a Markdown source, AZURE-PRO by default. A QA gate and a rendered check follow. It is also in the skill picker.</td>
336
336
  </tr>
337
337
  <tr>
338
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-docx.webp" width="240" alt="Ask for a report with lit and get a styled Word file with its Markdown source; Korean text uses korean-generic. Lint and a rendered page check follow. It is also in the skill picker." /></td>
338
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-docx.webp" width="240" alt="Ask for a report with lit and get a styled Word file with its Markdown source; Korean text uses korean-generic. Lint and a rendered page check follow. It is also in the skill picker." /></td>
339
339
  <td><code>lit-docx</code><br /><sub><code>skill picker</code></sub></td>
340
340
  <td>Ask for a report with <code>lit</code> and get a styled Word file with its Markdown source; Korean text uses korean-generic. Lint and a rendered page check follow. It is also in the skill picker.</td>
341
341
  </tr>
342
342
  <tr>
343
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/autoresearch.webp" width="240" alt="An approved, budgeted experiment loop. Each round changes one thing and keeps or reverts it." /></td>
343
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/autoresearch.webp" width="240" alt="An approved, budgeted experiment loop. Each round changes one thing and keeps or reverts it." /></td>
344
344
  <td><code>autoresearch</code><br /><sub><code>/autoresearch</code> · <code>/autoresearch-&lt;mode&gt;</code></sub></td>
345
345
  <td>An approved, budgeted experiment loop. Each round changes one thing and keeps or reverts it.</td>
346
346
  </tr>
347
347
  <tr>
348
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/autoconference.webp" width="240" alt="A budgeted research conference: separate researchers, reviewers, and a synthesis that keeps disagreement." /></td>
348
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/autoconference.webp" width="240" alt="A budgeted research conference: separate researchers, reviewers, and a synthesis that keeps disagreement." /></td>
349
349
  <td><code>autoconference</code><br /><sub><code>/autoconference</code> · <code>/autoconference-&lt;mode&gt;</code></sub></td>
350
350
  <td>A budgeted research conference: separate researchers, reviewers, and a synthesis that keeps disagreement.</td>
351
351
  </tr>
352
352
  <tr>
353
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/wikify.webp" width="240" alt="Keeps reviewed project knowledge on disk and answers later questions from it, with sources." /></td>
353
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/wikify.webp" width="240" alt="Keeps reviewed project knowledge on disk and answers later questions from it, with sources." /></td>
354
354
  <td><code>wikify</code><br /><sub><code>/wikify-ingest</code> · <code>/wikify-query</code></sub></td>
355
355
  <td>Keeps reviewed project knowledge on disk and answers later questions from it, with sources.</td>
356
356
  </tr>
357
357
  <tr>
358
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/frontend-ui-ux.webp" width="240" alt="Builds a working interface and checks it with a measured probe in seven views: four widths, dark, reduced motion and 200% zoom. Open it from the skill picker." /></td>
358
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/frontend-ui-ux.webp" width="240" alt="Builds a working interface and checks it with a measured probe in seven views: four widths, dark, reduced motion and 200% zoom. Open it from the skill picker." /></td>
359
359
  <td><code>frontend-ui-ux</code><br /><sub><code>skill picker</code></sub></td>
360
360
  <td>Builds a working interface and checks it with a measured probe in seven views: four widths, dark, reduced motion and 200% zoom. Open it from the skill picker.</td>
361
361
  </tr>
362
362
  <tr>
363
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/readme-studio.webp" width="240" alt="A factual README with an inspected cover and outlined type. Open it from the skill picker." /></td>
363
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/readme-studio.webp" width="240" alt="A factual README with an inspected cover and outlined type. Open it from the skill picker." /></td>
364
364
  <td><code>readme-studio</code><br /><sub><code>skill picker</code></sub></td>
365
365
  <td>A factual README with an inspected cover and outlined type. Open it from the skill picker.</td>
366
366
  </tr>
367
367
  <tr>
368
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/lit-typographic-motion.webp" width="240" alt="Ask for a video with lit. It writes a treatment, then draws a stage page or sets the words in motion; the film is gated and looked at before delivery. It is also in the skill picker." /></td>
368
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/lit-typographic-motion.webp" width="240" alt="Ask for a video with lit. It writes a treatment, then draws a stage page or sets the words in motion; the film is gated and looked at before delivery. It is also in the skill picker." /></td>
369
369
  <td><code>lit-typographic-motion</code><br /><sub><code>skill picker</code></sub></td>
370
370
  <td>Ask for a video with <code>lit</code>. It writes a treatment, then draws a stage page or sets the words in motion; the film is gated and looked at before delivery. It is also in the skill picker.</td>
371
371
  </tr>
372
372
  <tr>
373
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/visual-qa.webp" width="240" alt="Checks a real screen with evidence and adds no write access. Open it from the skill picker." /></td>
373
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/visual-qa.webp" width="240" alt="Checks a real screen with evidence and adds no write access. Open it from the skill picker." /></td>
374
374
  <td><code>visual-qa</code><br /><sub><code>skill picker</code></sub></td>
375
375
  <td>Checks a real screen with evidence and adds no write access. Open it from the skill picker.</td>
376
376
  </tr>
377
377
  <tr>
378
- <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/skills/automatic-guards.webp" width="240" alt="Runs on its own: registers the LitOpenCode agents, checks comments after edits, and blocks unscoped “always better” claims." /></td>
378
+ <td><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/skills/automatic-guards.webp" width="240" alt="Runs on its own: registers the LitOpenCode agents, checks comments after edits, and blocks unscoped “always better” claims." /></td>
379
379
  <td><code>agent-roster</code> · <code>reference-benchmark-claims</code> · <code>native-goal-verdict</code> · <code>search-workflow-ideas</code> · <code>release-guardrails</code> · <code>comment-checker</code> · <code>tool-guards</code><br /><sub>runs on its own</sub></td>
380
380
  <td>Runs on its own: registers the LitOpenCode agents, checks comments after edits, and blocks unscoped “always better” claims.</td>
381
381
  </tr>
@@ -422,38 +422,38 @@ Interface round, desktop view:
422
422
 
423
423
  | Task | Baseline | LitOpenCode |
424
424
  |---|---|---|
425
- | S3 | ![S3 baseline budget dashboard, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S3/baseline-desktop.webp) | ![S3 LitOpenCode budget dashboard, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S3/lit-desktop.webp) |
426
- | S4 | ![S4 baseline café landing page, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S4/baseline-desktop.webp) | ![S4 LitOpenCode café landing page, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S4/lit-desktop.webp) |
427
- | S11 | ![S11 baseline meeting-room booking app, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S11/baseline-desktop.webp) | ![S11 LitOpenCode meeting-room booking app, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S11/lit-desktop.webp) |
425
+ | S3 | ![S3 baseline budget dashboard, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S3/baseline-desktop.webp) | ![S3 LitOpenCode budget dashboard, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S3/lit-desktop.webp) |
426
+ | S4 | ![S4 baseline café landing page, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S4/baseline-desktop.webp) | ![S4 LitOpenCode café landing page, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S4/lit-desktop.webp) |
427
+ | S11 | ![S11 baseline meeting-room booking app, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S11/baseline-desktop.webp) | ![S11 LitOpenCode meeting-room booking app, desktop](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S11/lit-desktop.webp) |
428
428
 
429
429
  <details>
430
430
  <summary>Phone views</summary>
431
431
 
432
432
  | Task | Baseline | LitOpenCode |
433
433
  |---|---|---|
434
- | S3 | ![S3 baseline budget dashboard, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S3/baseline-phone.webp) | ![S3 LitOpenCode budget dashboard, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S3/lit-phone.webp) |
435
- | S4 | ![S4 baseline café landing page, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S4/baseline-phone.webp) | ![S4 LitOpenCode café landing page, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S4/lit-phone.webp) |
436
- | S11 | ![S11 baseline meeting-room booking app, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S11/baseline-phone.webp) | ![S11 LitOpenCode meeting-room booking app, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S11/lit-phone.webp) |
434
+ | S3 | ![S3 baseline budget dashboard, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S3/baseline-phone.webp) | ![S3 LitOpenCode budget dashboard, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S3/lit-phone.webp) |
435
+ | S4 | ![S4 baseline café landing page, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S4/baseline-phone.webp) | ![S4 LitOpenCode café landing page, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S4/lit-phone.webp) |
436
+ | S11 | ![S11 baseline meeting-room booking app, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S11/baseline-phone.webp) | ![S11 LitOpenCode meeting-room booking app, phone](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S11/lit-phone.webp) |
437
437
 
438
438
  </details>
439
439
 
440
440
  S5, lit slides. The baseline wrote Markdown only, so it has nothing rendered to show:
441
441
 
442
- ![S5 LitOpenCode PowerPoint slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S5/lit-slides.webp)
442
+ ![S5 LitOpenCode PowerPoint slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S5/lit-slides.webp)
443
443
 
444
444
  S8, baseline slides, then lit slides:
445
445
 
446
- ![S8 baseline quarterly results slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S8/baseline-slides.webp)
446
+ ![S8 baseline quarterly results slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S8/baseline-slides.webp)
447
447
 
448
- ![S8 LitOpenCode quarterly results slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S8/lit-slides.webp)
448
+ ![S8 LitOpenCode quarterly results slides](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S8/lit-slides.webp)
449
449
 
450
450
  S9, lit pages. The baseline answered in the chat without a file:
451
451
 
452
- ![S9 LitOpenCode new product plan pages](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S9/lit-pages.webp)
452
+ ![S9 LitOpenCode new product plan pages](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S9/lit-pages.webp)
453
453
 
454
454
  S7, the lit diagram:
455
455
 
456
- ![S7 LitOpenCode order, payment and shipping diagram](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/ab/S7/lit-diagram.webp)
456
+ ![S7 LitOpenCode order, payment and shipping diagram](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/ab/S7/lit-diagram.webp)
457
457
 
458
458
  ## Commands
459
459
 
@@ -489,9 +489,9 @@ remain source-attribution records.
489
489
  | `/lit-korean` | Improve Korean prose without changing its meaning. |
490
490
  | `/lit-scientific-visualization` | Use the packaged scientific-visualization workflow. |
491
491
 
492
- The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#core-commands) covers
492
+ The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#core-commands) covers
493
493
  Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules engine.
494
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/migration.md#skill-id-renames) explain the one-release skill aliases.
494
+ [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/migration.md#skill-id-renames) explain the one-release skill aliases.
495
495
 
496
496
  ## Safety and updates
497
497
 
@@ -502,7 +502,42 @@ Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules e
502
502
  check. Use `--no-auto-update` or `LITOPENCODE_NO_AUTO_UPDATE=1` to disable automatic updates.
503
503
  - Skill learning requires an explicit apply command. Its review, mutation, rollback, and
504
504
  curator boundaries support POSIX; on Windows those boundaries fail closed. Install,
505
- doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#skill-learning-loop).
505
+ doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#skill-learning-loop).
506
+
507
+ ## Jev skill hint (optional)
508
+
509
+ This hint is off by default. When it is on, each eligible chat turn asks Jev, TypeSafe's hosted
510
+ typed-decision model, which LitOpenCode skill fits the prompt. If Jev names one of LitOpenCode's
511
+ own skills with enough confidence, the turn gets one advisory line naming that skill. The model
512
+ still decides whether to load it; the hint grants no permission and starts no tool. Slash
513
+ commands, child sessions, turns a lit route already claimed, and prompts under four characters
514
+ are skipped.
515
+
516
+ To turn it on, set both variables in the environment that starts OpenCode:
517
+
518
+ ```sh
519
+ export LITOPENCODE_JEV=1
520
+ export TYPESAFE_API_KEY=<your own TypeSafe key>
521
+ ```
522
+
523
+ - **Turning it on sends each eligible prompt to TypeSafe (typesafe.ai).** The prompt is cut to
524
+ 2,000 characters, and home paths, e-mail addresses and token-shaped strings are replaced
525
+ before it is sent. Files, tool output and earlier turns are not sent.
526
+ - Anything in the prompt without a token shape is sent as written, for example hostnames,
527
+ customer names, or a password that is not written as `password=...`.
528
+ - Because `TYPESAFE_API_KEY` is exported in the shell that starts OpenCode, the agent's own tools
529
+ can read it. Use a key made only for this feature, with a low spending limit.
530
+ - TypeSafe bills your own account, at about $0.04 per million input tokens.
531
+ - Each request stops after 1.5 seconds and is not retried. If it fails, the turn continues as
532
+ usual, with one short note the first time in a session.
533
+ - `litopencode doctor` reports `Jev skill hint: off`, `on`, or
534
+ `flag on but TYPESAFE_API_KEY missing`. It never shows the key.
535
+ - When a turn gets a hint, OpenCode shows a short toast such as `Jev → lit-humanizer (0.27s)`
536
+ with the skill and the request time; there is no toast when the feature is off or no skill fits.
537
+ - On the first eligible turn of each session, a `✦ Jev skill hint is ON` toast shows once so you know the hint is active.
538
+ - To turn it off, unset `LITOPENCODE_JEV` or set it to anything other than `1`.
539
+
540
+ Tuning variables and the debug trace are in the [Jev skill hint reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#jev-skill-hint-optional).
506
541
 
507
542
  ## Troubleshooting
508
543
 
@@ -514,12 +549,12 @@ Inspect package and configuration health with:
514
549
  npm exec --package @litfamily/litopencode@latest -- litopencode doctor
515
550
  ```
516
551
 
517
- See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#install).
552
+ See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#install).
518
553
 
519
554
  Install and `doctor` report when `<root>/skills` is a symlink (and its git-repository
520
555
  warning) and any same-named skill shadowing it in `~/.agents/skills`, `~/.claude/skills`,
521
556
  or a project skills directory. See
522
- [symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#symlinked-native-skills-root-and-shadow-copies).
557
+ [symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#symlinked-native-skills-root-and-shadow-copies).
523
558
 
524
559
  ## Uninstall
525
560
 
@@ -535,7 +570,7 @@ npm uninstall -g @litfamily/litopencode
535
570
  Review installed command/skill files before removing installer-owned copies; preserve
536
571
  user-created files and edits. Keep `litopencode.json` if you still need its routes, and
537
572
  keep project `.litopencode/` ledgers if you plan to resume. Restart OpenCode after removal.
538
- See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md#remove).
573
+ See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md#remove).
539
574
 
540
575
  ## License
541
576
 
@@ -545,25 +580,25 @@ MIT
545
580
 
546
581
  ### Documentation
547
582
 
548
- - [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference.md): models, permissions, host hooks, all skills, learning loop, and reproducible verification.
549
- - [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/reference-Ko-KR.md)
550
- - [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/migration.md)
551
- - [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/lit-mark.md)
552
- - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/CHANGELOG.md)
583
+ - [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference.md): models, permissions, host hooks, all skills, learning loop, and reproducible verification.
584
+ - [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/reference-Ko-KR.md)
585
+ - [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/migration.md)
586
+ - [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/lit-mark.md)
587
+ - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/CHANGELOG.md)
553
588
  - Maintainer release checklist (repository only)
554
589
 
555
- - [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/CONTRIBUTING.md) · [Support](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/SUPPORT.md) · [Security](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/SECURITY.md)
556
- - [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/CODE_OF_CONDUCT.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/privacy.md)
590
+ - [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/CONTRIBUTING.md) · [Support](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/SUPPORT.md) · [Security](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/SECURITY.md)
591
+ - [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/CODE_OF_CONDUCT.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/privacy.md)
557
592
 
558
593
  ### LITFAMILY
559
594
 
560
- ![Five armored machines representing LitClaude, LitHermes, LitCodex, LitOpenCode and LitGrok](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/litfamily-machines.png)
595
+ ![Five armored machines representing LitClaude, LitHermes, LitCodex, LitOpenCode and LitGrok](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/litfamily-machines.png)
561
596
 
562
597
  LitClaude · LitHermes · LitCodex · LitOpenCode · LitGrok.
563
598
  Five armored machines for five independent products, each working in its own host.
564
599
 
565
600
  ### Ignition motion
566
601
 
567
- [![Ignition motion graphic poster](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/ignition-film.mp4)
602
+ [![Ignition motion graphic poster](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/ignition-film.mp4)
568
603
 
569
- [Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/ignition-film.mp4) · [Animated GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/ignition-readme.gif) · [Lucide icon license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.9/docs/assets/readme/JetBrainsMono-OFL.txt)
604
+ [Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/ignition-film.mp4) · [Animated GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/ignition-readme.gif) · [Lucide icon license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.10/docs/assets/readme/JetBrainsMono-OFL.txt)
@@ -1,6 +1,7 @@
1
1
  import type { Hooks, PluginInput } from "@opencode-ai/plugin";
2
2
  import type { SessionLookup } from "./session-lineage.ts";
3
3
  import type { BoundedAuthorityOptions } from "./bounded-authority.ts";
4
+ import { type JevSkillHintPart } from "./jev-skill-hint.ts";
4
5
  export { litHandoffPromptInjection, scientificVisualizationPromptInjection } from "./activation-managed-prompts.ts";
5
6
  export { litActivationBanner } from "./activation-prompt-utils.ts";
6
7
  export { litLoopPromptInjection, litPlanPromptInjection } from "./activation-primary-prompts.ts";
@@ -9,6 +10,12 @@ export { comprehendPromptInjection, debuggingPromptInjection, deepInterviewPromp
9
10
  type ChatMessageHook = NonNullable<Hooks["chat.message"]>;
10
11
  type ActivationToastClient = Pick<PluginInput["client"], "tui">;
11
12
  export declare function showActivationToast(client: ActivationToastClient | undefined, skillId: string, env?: NodeJS.ProcessEnv): void;
13
+ /**
14
+ * One quiet `info` toast per hinted turn; notes, `none` and silent turns never reach it. On the first
15
+ * eligible turn of a session (`announce`) the standout ON notice goes out instead, with that turn's hint
16
+ * as its body: the TUI keeps a single toast, so a second one would replace the notice at once.
17
+ */
18
+ export declare function showJevSkillHintToast(client: ActivationToastClient | undefined, hint: JevSkillHintPart | undefined, announce?: boolean): void;
12
19
  export type ChatMessageActivationOptions = {
13
20
  readonly getSession?: SessionLookup;
14
21
  readonly hostArgv?: readonly string[];
@@ -17,11 +24,10 @@ export type ChatMessageActivationOptions = {
17
24
  readonly onScientificVisualizationActivation?: (sessionID: string) => void;
18
25
  readonly onRootUserTurn?: (sessionID: string) => void | Promise<void>;
19
26
  readonly onSkillActivation?: (sessionID: string, skillId: string, appendedLit?: boolean) => void | Promise<void>;
20
- readonly trustedInjectedSkill?: (sessionID: string, parts: readonly {
21
- readonly type: string;
22
- readonly metadata?: {
23
- readonly [key: string]: unknown;
24
- };
25
- }[]) => string | undefined;
27
+ /** Consumes the skill a trusted command activation recorded for this session, if any. */
28
+ readonly trustedInjectedSkill?: (sessionID: string) => string | undefined;
29
+ /** Consumes the mark `command.execute.before` left for this session's next message. */
30
+ readonly isCommandTurn?: (sessionID: string) => boolean;
31
+ readonly skillHint?: (sessionID: string, promptText: string) => Promise<JevSkillHintPart | undefined>;
26
32
  };
27
33
  export declare function createChatMessageActivationHook(projectRoot: string, options?: ChatMessageActivationOptions): ChatMessageHook;