@litfamily/lithermes 1.0.11 → 1.0.12

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,16 +1,16 @@
1
- <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitHermes 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/lithermes@1.0.12/readme-assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitHermes 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/lithermes@1.0.11/readme-assets/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
3
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
4
4
 
5
5
  <p align="center">
6
- <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/badge-version.svg" alt="1.0.11" /></a>
7
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/badge-license.svg" alt="MIT license" /></a>
6
+ <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/badge-version.svg" alt="1.0.12" /></a>
7
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/badge-license.svg" alt="MIT license" /></a>
8
8
  </p>
9
9
 
10
10
  <p align="center">
11
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/docs/guide.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-book-open.svg" width="16" alt="" /> Guide</a> &nbsp;
12
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-play.svg" width="16" alt="" /> Ignition film</a> &nbsp;
13
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
11
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/docs/guide.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-book-open.svg" width="16" alt="" /> Guide</a> &nbsp;
12
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-play.svg" width="16" alt="" /> Ignition film</a> &nbsp;
13
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
14
14
  </p>
15
15
 
16
16
  # LitHermes
@@ -19,7 +19,7 @@
19
19
 
20
20
  A plugin for **Hermes Agent**. Add `lit` to a request, and Hermes plans the task, does it, checks it, and leaves a note the next session can pick up.
21
21
 
22
- **[Full guide, skills gallery and A/B results on GitHub](https://github.com/wjgoarxiv/lithermes#readme)** · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/README_Ko-KR.md)
22
+ **[Full guide, skills gallery and A/B results on GitHub](https://github.com/wjgoarxiv/lithermes#readme)** · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/README_Ko-KR.md)
23
23
 
24
24
  ## Install
25
25
 
@@ -29,9 +29,9 @@ You need Hermes Agent, Node.js 18 or later, and write access to your Hermes home
29
29
  npx --yes --package @litfamily/lithermes@latest -- lithermes install --yes --no-style
30
30
  ```
31
31
 
32
- The first `--yes` lets npx run the package; the second approves the changes to your Hermes configuration. `--no-style` skips the reply-style picker and leaves the Ignition skin alone. Nothing connects to Telegram during installation.
32
+ The command puts the plugin into your Hermes home and updates your Hermes configuration without stopping to ask. That is why `--yes` appears twice: the first lets npx run the package, and the second approves the configuration changes. `--no-style` skips the picker for how replies are written; the Ignition skin installs either way. Nothing connects to Telegram during installation.
33
33
 
34
- To try it apart from your usual setup, set `HERMES_HOME` to a new, empty directory before installing and start Hermes with the same value. Adding `--no-patch-installed-hermes` also keeps compatibility edits away from the Hermes installation outside that profile.
34
+ Want to try it away from your usual setup? Point `HERMES_HOME` at a new, empty directory before installing, and start Hermes with the same value. If the Hermes installation itself lives outside that trial profile, add `--no-patch-installed-hermes` so the installer leaves it without compatibility edits.
35
35
 
36
36
  ## Your first task
37
37
 
@@ -41,9 +41,9 @@ Restart the Hermes CLI or gateway, then type:
41
41
  lit Build a to-do list in one HTML file without external dependencies. Implement add, complete, and delete; record what you checked and what remains.
42
42
  ```
43
43
 
44
- The reply begins with exactly one `🔥 **LIT IGNITED · <discipline>** 🔥` line, so you can tell the route took. When it finishes, open the file and try each action yourself, and ask Hermes to separate what it actually checked from what is still unverified. Then run `/lit-handoff`. A new session in the same project can read that handoff and continue from it.
44
+ The reply opens with a single `🔥 **LIT IGNITED · <discipline>** 🔥` line. When you see it, LitHermes has picked up the task and the work has started. When it finishes, open the file and try each action yourself, and ask Hermes to separate what it actually checked from what is still unverified. Then run `/lit-handoff`. A new session in the same project can read that handoff and continue from it.
45
45
 
46
- The spark is the record you leave. It does not mean work keeps running after the session closes.
46
+ The spark is that record. Once the session closes, nothing carries on in the background; the next session picks the work up from the handoff.
47
47
 
48
48
  ## Routes you will use most
49
49
 
@@ -65,10 +65,10 @@ On a Telegram gateway, use `/lit_loop` and `/lit_plan`. Every skill also loads b
65
65
 
66
66
  ## Making more than code
67
67
 
68
- - **Reports and slides.** A report or presentation request with a bare `lit` goes to `lit-docx` or `lit-pptx`. You get DOCX, PPTX or both, with the Markdown source beside them. Korean documents default to the korean-generic profile and slides to AZURE-PRO with Pretendard, unless you choose otherwise. On first use the Office runtime installs pinned dependencies into a LitHermes cache.
69
- - **Diagrams.** `lit-diagram-drawer` makes conceptual and technical diagrams. Product pages stay with `frontend-ui-ux`, and plots of measured data with `lit-scientific-visualization`.
70
- - **Films.** `lit-typographic-motion` writes a treatment first, and when its gate passes you get a 60 fps film with a poster, a reduced-motion still and a QA report. Run `lithermes motion-runtime status` to check Chrome, ffmpeg, WebGL2 and fonts, and `lithermes motion-runtime install` to fetch dependencies ahead of time.
71
- - **Prose.** `lit-humanizer` revises Korean and English drafts while keeping their facts. Its detector checks reader-facing text written through Hermes `write_file` and `patch`: a block-tier finding can stop the write, and warnings are advice.
68
+ - **Reports and slides.** Ask for a report or a presentation with a bare `lit`, and it goes to `lit-docx` or `lit-pptx`. You get a DOCX, a PPTX or both, with the Markdown source beside them. Unless you choose otherwise, Korean documents use the korean-generic profile and slides use AZURE-PRO with Pretendard. The first time, the Office runtime installs the pinned tools it needs into a LitHermes cache.
69
+ - **Diagrams.** `lit-diagram-drawer` draws concept maps and technical diagrams. Product pages belong to `frontend-ui-ux`, and plots of measured data to `lit-scientific-visualization`.
70
+ - **Films.** `lit-typographic-motion` writes a treatment first. When the film passes its final check, you get a 60 fps film with a poster, a reduced-motion still and a QA report. A render never downloads anything, so its helper packages and fonts must already be cached. `lithermes install` tries to fetch them; if that was skipped or failed, run `lithermes motion-runtime install`. `lithermes motion-runtime status` shows whether Chrome, ffmpeg, WebGL2 and the fonts are ready.
71
+ - **Prose.** `lit-humanizer` revises Korean and English drafts while keeping their facts. Its detector reads what Hermes writes for people through `write_file` and `patch`. A serious (block-tier) finding can stop the write; a milder warning comes back as advice.
72
72
 
73
73
  ## What changes after install
74
74
 
@@ -76,8 +76,13 @@ On a Telegram gateway, use `/lit_loop` and `/lit_plan`. Every skill also loads b
76
76
  - The plugin goes into your Hermes home. After a restart, Hermes has new hooks, commands, skills and `goal_*` work tools.
77
77
  - Goals, plans and evidence are written to local records under `.hermes/lithermes/` in your project, where the next session can read them.
78
78
  - The Hermes CLI gains the Ignition skin. Choose it with `/skin lithermes-ignition` and restart, or use `/skin lithermes-tokyonight-day` on a light terminal and `/skin lithermes-tokyonight` on a dark one. A fresh interactive, color-capable install run with `--yes` selects Ignition only when `display.skin` is absent, and existing skin files are kept.
79
- - Update notices are cache-only, and you decide whether to act on them. The check runs at most once every 24 hours through `update-check.json`; `--offline`, `--json`, `--dry-run`, CI and piped streams never install updates. The notice suggests `npx --yes --package @litfamily/lithermes@<version> -- lithermes install --yes --no-hud`. Set `NO_UPDATE_NOTIFIER=1` or `LITHERMES_NO_UPDATE_CHECK=1` to turn the check off.
80
- - LitHermes routes the request; Hermes Agent still runs the model.
79
+ - LitHermes updates itself, carefully. When you run `lithermes install`, `check` or `doctor` in a terminal, or send the first message of an interactive Hermes CLI session, it asks the npm registry for the latest stable release. If that one is newer, LitHermes backs up your plugin folder, `config.yaml`, install record and skins folder, installs it, and runs `doctor --offline`. If the install fails, takes longer than 30 seconds or does not pass that check, the backup goes back and you keep your version. Restart Hermes to load a new one.
80
+ - Each update leaves `auto-update-journal.json` and `auto-update-receipt.json` in `<Hermes home>/lithermes/`, so you can see what happened. Nothing updates with `--offline`, `--json` or `--dry-run`, in CI, or when output is piped.
81
+ - Separately, LitHermes looks for a newer release in the background at most once every 24 hours and saves the answer in `update-check.json`; any update notice is read from there. It suggests a command such as `npx --yes --package @litfamily/lithermes@<version> -- lithermes install --yes --no-hud`, and running it is up to you.
82
+ - To install new versions yourself and keep the notice, set `LITHERMES_NO_AUTO_UPDATE=1`.
83
+ - To skip the update for one command, add `--no-auto-update` to `install`, `check` or `doctor`.
84
+ - To stop every version check, set `NO_UPDATE_NOTIFIER=1` or `LITHERMES_NO_UPDATE_CHECK=1`. Any value counts for these variables. The GitHub page explains the update step in full.
85
+ - LitHermes decides where a request goes; Hermes Agent still runs the model.
81
86
 
82
87
  ## Does it help?
83
88
 
@@ -101,7 +106,7 @@ The judge preferred the baseline in S1 and S8. What each side produced, the scre
101
106
 
102
107
  ## Optional: Jev skill hint
103
108
 
104
- This is off by default. With `LITHERMES_JEV=1` and your own `TYPESAFE_API_KEY` set in the environment Hermes runs in, LitHermes asks Jev, TypeSafe's hosted decision model, which bundled skill fits a plain prompt. The answer becomes one advisory line in that turn's context. The Hermes model still decides, and the hint grants no permission and starts no tool.
109
+ This is off by default. With `LITHERMES_JEV=1` and your own `TYPESAFE_API_KEY` set in the environment Hermes runs in, LitHermes asks Jev, TypeSafe's hosted decision model, which bundled skill fits a plain prompt. The answer is added to that turn's context as one line of advice. It is only a suggestion: the Hermes model still decides, and the hint cannot grant permissions or start tools.
105
110
 
106
111
  While it is on, each eligible prompt is sent to TypeSafe (typesafe.ai), truncated to 2,000 characters, with home paths, email addresses and token-shaped strings redacted. Anything without a token shape is sent as written, such as hostnames, customer names, and passwords not written as `password=...`. In gateway mode, other participants' messages in a chat are eligible too. The agent's own tools can read the exported key, so use a dedicated key with a low spend limit; TypeSafe bills your account, at about $0.04 per million input tokens. Each request stops after 1.5 seconds with no retry, and a failed request leaves the turn unchanged.
107
112
 
@@ -114,13 +119,14 @@ npx --package @litfamily/lithermes -- lithermes doctor --offline
114
119
  npx --package @litfamily/lithermes -- lithermes uninstall --yes
115
120
  ```
116
121
 
117
- If compatibility patches were installed, add `--rollback-patches` when uninstalling. Uninstalling leaves the skin files and `display.skin` in place; `npx --package @litfamily/lithermes -- lithermes hud off` clears that choice and keeps the files.
122
+ `doctor --offline` checks the install without going online. If the installer made compatibility edits to Hermes, add `--rollback-patches` when uninstalling to undo them. Uninstalling keeps the skin files and your `display.skin` choice; `npx --package @litfamily/lithermes -- lithermes hud off` clears the choice and keeps the files.
118
123
 
119
- - Preview configuration changes with `lithermes install --dry-run`. Code, quotations and copied commands remain inert data, and secrets are redacted before persistence or model handoff.
120
- - Native `/goal` is user-managed and unobserved. Durable `goal_*` state is authoritative; there is no automatic update, clear, or resume of native `/goal`.
121
- - Hermes uses one global child model route. Per-task model overrides and named reviewer routes are unavailable, and a configuration receipt does not prove which route a child actually ran on.
122
- - If Lit skills seem to be missing, ask Hermes to call its `skills_list` tool and look for LitHermes entries. The filesystem-only `/skills` listing may differ by host version. An import error in the Hermes log is a loading failure, not a missing pip package to install on a guess.
123
- - If a same-named skill elsewhere shadows a LitHermes one, `lithermes doctor` prints a `skill shadow check: WARNING` line. Load the LitHermes copy as `lithermes:<name>`. The warning never changes doctor's exit status.
124
+ - To see what the installer would change before it changes anything, run `lithermes install --dry-run`.
125
+ - Code, quotations and commands you paste in are treated as text to read, never as instructions. Secrets are masked before anything is saved or passed to a model.
126
+ - Hermes' own `/goal` belongs to you: LitHermes does not watch it and never updates, clears or resumes it. LitHermes goes by the goals it saves through its `goal_*` tools.
127
+ - Hermes sends every helper through one shared model setting, so there is no per-task model and no separate reviewer model. The installer's report shows what was configured; only the receipt of a real `delegate_task` run proves which model a helper used.
128
+ - If Lit skills seem to be missing, ask Hermes to call its `skills_list` tool and look for LitHermes entries; the `/skills` command only reads the filesystem, and its list can differ by Hermes version. An import error in the Hermes log means the plugin failed to load. Keep the message rather than installing pip packages on a guess.
129
+ - If a same-named skill elsewhere hides a LitHermes one, `lithermes doctor` prints a `skill shadow check: WARNING` line. Load the LitHermes copy as `lithermes:<name>`. The warning leaves doctor's exit status as it was.
124
130
 
125
131
  ## Learn more
126
132
 
package/README_Ko-KR.md CHANGED
@@ -1,16 +1,16 @@
1
- <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/cover-motion.webp" width="100%" alt="LitFamily 모션 커버: 다섯 로봇 패널이 차례로 켜지고, LitHermes 로봇의 눈과 테두리가 빛난 뒤 LITFAMILY와 KEEP THE WORK LIT. 문구가 밝아지는 영상" /></picture></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/cover-motion.webp" width="100%" alt="LitFamily 모션 커버: 다섯 로봇 패널이 차례로 켜지고, LitHermes 로봇의 눈과 테두리가 빛난 뒤 LITFAMILY와 KEEP THE WORK LIT. 문구가 밝아지는 영상" /></picture></p>
2
2
 
3
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
3
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
4
4
 
5
5
  <p align="center">
6
- <a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/badge-version.svg" alt="1.0.11" /></a>
7
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/badge-license.svg" alt="MIT license" /></a>
6
+ <a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/badge-version.svg" alt="1.0.12" /></a>
7
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/badge-license.svg" alt="MIT license" /></a>
8
8
  </p>
9
9
 
10
10
  <p align="center">
11
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/docs/guide.ko.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-book-open.svg" width="16" alt="" /> 안내</a> &nbsp;
12
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-play.svg" width="16" alt="" /> Ignition 영상</a> &nbsp;
13
- <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/readme-assets/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
11
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/docs/guide.ko.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-book-open.svg" width="16" alt="" /> 안내</a> &nbsp;
12
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-play.svg" width="16" alt="" /> Ignition 영상</a> &nbsp;
13
+ <a href="https://github.com/wjgoarxiv/lithermes/blob/main/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/readme-assets/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
14
14
  </p>
15
15
 
16
16
  # LitHermes
@@ -19,7 +19,7 @@
19
19
 
20
20
  **Hermes Agent**용 플러그인입니다. 요청에 `lit`을 붙이면 Hermes가 작업을 계획하고, 실행하고, 확인한 뒤 다음 세션이 이어받을 기록을 남깁니다.
21
21
 
22
- **[전체 안내, 스킬 갤러리, A/B 결과는 GitHub에서](https://github.com/wjgoarxiv/lithermes/blob/main/README_Ko-KR.md)** · [English](https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.11/README.md)
22
+ **[전체 안내, 스킬 갤러리, A/B 결과는 GitHub에서](https://github.com/wjgoarxiv/lithermes/blob/main/README_Ko-KR.md)** · [English](https://cdn.jsdelivr.net/npm/@litfamily/lithermes@1.0.12/README.md)
23
23
 
24
24
  ## 설치
25
25
 
@@ -29,9 +29,9 @@ Hermes Agent와 Node.js 18 이상, 그리고 Hermes 홈(기본 `~/.hermes`)에
29
29
  npx --yes --package @litfamily/lithermes@latest -- lithermes install --yes --no-style
30
30
  ```
31
31
 
32
- 첫 번째 `--yes`는 npx가 패키지를 실행하도록, 두 번째는 Hermes 설정 변경을 승인합니다. `--no-style`은 답변 문체 선택만 건너뛰고 Ignition 스킨은 그대로 둡니다. 설치 중에 Telegram에 연결하지 않습니다.
32
+ 이 명령은 플러그인을 Hermes 홈에 넣고 Hermes 설정을 고치는데, 중간에 묻느라 멈추지 않습니다. 그래서 `--yes`가 두 번 들어갑니다. 앞의 것은 npx가 패키지를 실행하도록 허락하고, 뒤의 것은 설정 변경을 승인합니다. `--no-style`은 답변 문체를 고르는 화면을 건너뜁니다. Ignition 스킨은 어느 쪽이든 설치됩니다. 설치하는 동안 Telegram에는 연결하지 않습니다.
33
33
 
34
- 평소 환경과 떼어 놓고 써 보려면 설치 전에 `HERMES_HOME`을 새 빈 디렉터리로 지정하고, Hermes를 시작할 때도 같은 값을 쓰세요. `--no-patch-installed-hermes`를 붙이면 그 프로필 밖의 Hermes 설치본에도 호환성 패치를 적용하지 않습니다.
34
+ 평소 환경과 떼어 놓고 먼저 써 보고 싶다면, 설치 전에 `HERMES_HOME`을 비어 있는 새 디렉터리로 지정하고 Hermes를 시작할 때도 같은 값을 쓰세요. Hermes 설치본 자체가 그 시험용 프로필 밖에 있다면 `--no-patch-installed-hermes`를 붙이세요. 설치 프로그램이 그 설치본에는 호환성 수정을 하지 않습니다.
35
35
 
36
36
  ## 첫 작업
37
37
 
@@ -41,9 +41,9 @@ Hermes CLI 또는 gateway를 다시 시작한 뒤 이렇게 입력해 보세요.
41
41
  lit 외부 의존성 없이 HTML 파일 하나로 할 일 목록을 만들어줘. 추가·완료·삭제를 구현하고 확인한 내용과 다음 행동을 남겨줘.
42
42
  ```
43
43
 
44
- 응답은 다른 내용보다 먼저 `🔥 **LIT IGNITED · <discipline>** 🔥` 한 줄을 정확히 한 번 표시하므로, 경로가 잡혔는지 바로 알 수 있습니다. 작업이 끝나면 파일을 직접 열어 각 동작을 눌러 보고, 실제로 확인한 내용과 아직 확인하지 못한 내용을 나눠 달라고 Hermes에 요청하세요. 그다음 `/lit-handoff`를 실행하세요. 같은 프로젝트의 새 세션은 그 인계 기록을 읽고 이어갈 수 있습니다.
44
+ 응답 첫 줄에 `🔥 **LIT IGNITED · <discipline>** 🔥`가 한 번 나옵니다. 이 줄이 보이면 LitHermes가 요청을 받아 작업을 시작한 것입니다. 작업이 끝나면 파일을 직접 열어 각 동작을 눌러 보고, 실제로 확인한 내용과 아직 확인하지 못한 내용을 나눠 달라고 Hermes에 요청하세요. 그다음 `/lit-handoff`를 실행하세요. 같은 프로젝트의 새 세션은 그 인계 기록을 읽고 이어갈 수 있습니다.
45
45
 
46
- 불씨는 남겨 둔 기록을 뜻합니다. 세션이 끝난 뒤에도 작업이 계속 돌아간다는 뜻은 아닙니다.
46
+ 불씨란 이렇게 남겨 둔 기록입니다. 세션을 닫으면 뒤에서 따로 돌아가는 작업은 없고, 다음 세션이 인계 기록을 읽고 이어받습니다.
47
47
 
48
48
  ## 자주 쓰는 경로
49
49
 
@@ -65,18 +65,23 @@ Telegram gateway에서는 `/lit_loop`와 `/lit_plan`을 쓰세요. 모든 스킬
65
65
 
66
66
  ## 코드 밖의 결과물
67
67
 
68
- - **보고서와 발표자료.** 보고서나 발표자료 요청에 단독 `lit`을 붙이면 `lit-docx`나 `lit-pptx`로 넘어갑니다. DOCX, PPTX 또는 둘 다 만들고 Markdown 원본을 옆에 둡니다. 한국어 문서는 korean-generic 프로필, 발표자료는 AZURE-PRO·Pretendard가 기본이며, 직접 고르면 그 설정이 우선합니다. Office 런타임은 처음 쓸 때 고정된 의존성을 LitHermes 캐시에 설치합니다.
69
- - **다이어그램.** `lit-diagram-drawer`가 개념도와 기술 다이어그램을 만듭니다. 제품 화면은 `frontend-ui-ux`, 측정한 데이터 그래프는 `lit-scientific-visualization`이 맡습니다.
70
- - **영상.** `lit-typographic-motion`은 트리트먼트부터 쓰고, QA를 통과하면 포스터·움직임 축소용 정지 이미지·검사 보고서가 딸린 60fps 영상을 냅니다. `lithermes motion-runtime status`로 Chrome·ffmpeg·WebGL2·폰트 상태를 확인하고, `lithermes motion-runtime install`로 의존성을 미리 받아 둘 수 있습니다.
71
- - **글 다듬기.** `lit-humanizer`는 사실을 지키며 한국어와 영어 초안을 다듬습니다. 감지기는 Hermes `write_file`과 `patch`로 쓰는 독자용 텍스트를 검사해, 차단 등급 발견이 있으면 쓰기를 막을 수 있고 주의 등급은 조언으로 전합니다.
68
+ - **보고서와 발표자료.** 보고서나 발표자료를 부탁하면서 단독 `lit`을 붙이면 `lit-docx`나 `lit-pptx`가 맡습니다. DOCX나 PPTX, 또는 둘 다 나오고 Markdown 원본이 옆에 남습니다. 따로 고르지 않으면 한국어 문서는 korean-generic 프로필을, 발표자료는 AZURE-PRO와 Pretendard를 씁니다. 처음 쓸 때는 Office 런타임이 필요한 도구를 고정된 버전으로 LitHermes 캐시에 설치합니다.
69
+ - **다이어그램.** `lit-diagram-drawer`가 개념도와 기술 다이어그램을 그립니다. 제품 화면은 `frontend-ui-ux`, 측정한 데이터 그래프는 `lit-scientific-visualization`이 맡습니다.
70
+ - **영상.** `lit-typographic-motion`은 트리트먼트부터 씁니다. 마지막 검사를 통과하면 포스터, 움직임 축소용 정지 이미지, 검사 보고서가 딸린 60fps 영상이 나옵니다. 렌더링 중에는 아무것도 내려받지 않으므로 보조 패키지와 폰트가 미리 캐시에 있어야 합니다. `lithermes install`이 이것을 받아 두려고 시도하고, 건너뛰었거나 실패했다면 `lithermes motion-runtime install`을 실행하면 됩니다. Chrome, ffmpeg, WebGL2, 폰트가 준비됐는지는 `lithermes motion-runtime status`로 볼 수 있습니다.
71
+ - **글 다듬기.** `lit-humanizer`는 사실을 지키며 한국어와 영어 초안을 다듬습니다. 감지기는 Hermes가 `write_file`과 `patch`로 쓰는, 사람이 읽을 글을 살핍니다. 심각한 문제(차단 등급)가 보이면 쓰기를 멈출 수 있고, 가벼운 문제(주의 등급)는 조언으로 돌려줍니다.
72
72
 
73
73
  ## 설치 후 달라지는 것
74
74
 
75
75
  - 플러그인이 Hermes 홈에 들어갑니다. 다시 시작하면 Hermes에 훅, 명령, 스킬, `goal_*` 작업 도구가 생깁니다.
76
76
  - 목표·계획·근거는 프로젝트의 `.hermes/lithermes/` 아래 로컬 기록으로 남고, 다음 세션이 이 기록을 읽을 수 있습니다.
77
- - Hermes CLI에 Ignition 스킨이 생깁니다. `/skin lithermes-ignition`을 고르고 다시 시작하세요. 밝은 터미널에는 `/skin lithermes-tokyonight-day`, 어두운 터미널에는 `/skin lithermes-tokyonight`가 맞습니다. 색상을 지원하는 대화형 환경에서 `--yes`로 처음 설치하면 `display.skin`이 비어 있을 때만 Ignition을 고르고, 기존 스킨 파일은 보존합니다.
78
- - 업데이트 안내는 캐시만 쓰며, 따를지는 직접 정합니다. 확인은 `update-check.json`을 통해 24시간에 한 번까지만 하고, `--offline`, `--json`, `--dry-run`, CI, 파이프 출력에서는 업데이트를 설치하지 않습니다. 안내에는 `npx --yes --package @litfamily/lithermes@<version> -- lithermes install --yes --no-hud` 명령이 나옵니다. `NO_UPDATE_NOTIFIER=1` 또는 `LITHERMES_NO_UPDATE_CHECK=1`로 확인을 끌 수 있습니다.
79
- - 요청 경로는 LitHermes가 안내하고, 모델 실행은 여전히 Hermes Agent가 맡습니다.
77
+ - Hermes CLI에 Ignition 스킨이 생깁니다. `/skin lithermes-ignition`을 고르고 다시 시작하세요. 밝은 터미널에는 `/skin lithermes-tokyonight-day`, 어두운 터미널에는 `/skin lithermes-tokyonight`가 맞습니다. 색상을 지원하는 대화형 환경에서 `--yes`로 처음 설치하면 설정에 `display.skin` 항목이 아예 없을 때만 Ignition을 고르고, 기존 스킨 파일은 보존합니다.
78
+ - LitHermes는 스스로, 그리고 조심스럽게 업데이트합니다. 터미널에서 `lithermes install`, `check`, `doctor`를 실행하거나 대화형 Hermes CLI 세션에서 첫 메시지를 보내면 npm 레지스트리에 최신 안정 버전을 물어봅니다. 더 새로운 버전이 있으면 플러그인 폴더, `config.yaml`, 설치 기록, 스킨 폴더를 백업한 뒤 설치하고 `doctor --offline`을 실행합니다. 설치가 실패하거나 30초를 넘기거나 이 점검을 통과하지 못하면 백업을 복원해서 쓰던 버전이 남습니다. 새 버전을 불러오려면 Hermes를 다시 시작하세요.
79
+ - 업데이트할 때마다 `<Hermes 홈>/lithermes/`에 `auto-update-journal.json`과 `auto-update-receipt.json`이 남아서 무슨 일이 있었는지 볼 수 있습니다. `--offline`, `--json`, `--dry-run`을 붙였거나 CI에서 돌거나 출력을 파이프로 넘길 때는 업데이트하지 않습니다.
80
+ - 이와는 따로, LitHermes는 새 버전이 나왔는지 백그라운드에서 24시간에 한 번까지만 확인해 그 결과를 `update-check.json`에 저장해 둡니다. 안내할 때는 이 파일을 읽고, 안내에는 `npx --yes --package @litfamily/lithermes@<version> -- lithermes install --yes --no-hud` 같은 명령이 나옵니다. 실행할지는 직접 정하면 됩니다.
81
+ - 새 버전을 직접 설치하면서 안내는 계속 받고 싶다면 `LITHERMES_NO_AUTO_UPDATE=1`을 설정하세요.
82
+ - 명령 한 번만 건너뛰려면 `install`, `check`, `doctor`에 `--no-auto-update`를 붙이세요.
83
+ - 버전 확인을 모두 멈추려면 `NO_UPDATE_NOTIFIER=1` 또는 `LITHERMES_NO_UPDATE_CHECK=1`을 설정하세요. 이 변수들은 어떤 값이든 똑같이 적용됩니다. 업데이트 과정의 자세한 설명은 GitHub 문서에 있습니다.
84
+ - 요청을 어디로 보낼지는 LitHermes가 정하고, 모델은 여전히 Hermes Agent가 돌립니다.
80
85
 
81
86
  ## 정말 도움이 되나요?
82
87
 
@@ -100,9 +105,9 @@ Telegram gateway에서는 `/lit_loop`와 `/lit_plan`을 쓰세요. 모든 스킬
100
105
 
101
106
  ## 선택 기능: Jev 스킬 힌트
102
107
 
103
- 기본값은 꺼짐입니다. Hermes가 실행되는 환경에 `LITHERMES_JEV=1`과 본인의 `TYPESAFE_API_KEY`를 설정하면, LitHermes가 TypeSafe의 호스팅 결정 모델 Jev에게 평범한 프롬프트에 맞는 번들 스킬을 묻습니다. 답은 그 턴의 컨텍스트에 조언 한 줄로 들어갑니다. 스킬을 불러올지는 여전히 Hermes 모델이 정하며, 힌트는 권한을 주거나 도구를 실행하지 않습니다.
108
+ 기본값은 꺼짐입니다. Hermes가 실행되는 환경에 `LITHERMES_JEV=1`과 본인의 `TYPESAFE_API_KEY`를 설정하면, LitHermes가 TypeSafe의 호스팅 결정 모델 Jev에게 평범한 프롬프트에 맞는 번들 스킬을 묻습니다. 답은 그 턴의 컨텍스트에 조언 한 줄로 붙습니다. 어디까지나 제안이라, 스킬을 불러올지는 여전히 Hermes 모델이 정하고 힌트로 권한을 주거나 도구를 실행할 수는 없습니다.
104
109
 
105
- 켜 두면 조건에 맞는 프롬프트마다 2,000자로 자르고 홈 경로, 이메일 주소, 토큰 형태의 문자열을 가린 뒤 TypeSafe(typesafe.ai)로 보냅니다. 토큰 형태가 아닌 내용, 예를 들어 호스트 이름, 고객 이름, `password=...` 형식이 아닌 비밀번호는 쓴 그대로 전송됩니다. 게이트웨이 모드에서는 대화방의 다른 참여자가 보낸 메시지도 전송 대상입니다. export한 키는 에이전트의 도구도 읽을 수 있으니, 이 기능 전용 키를 쓰고 사용 한도를 낮게 잡으세요. 비용은 TypeSafe가 본인 계정에 청구하며 입력 토큰 100만 개당 약 0.04달러입니다. 요청은 1.5초가 지나면 재시도 없이 멈추고, 실패해도 턴은 그대로 진행됩니다.
110
+ 켜 두면 조건에 맞는 프롬프트마다 2,000자로 자르고 홈 경로, 이메일 주소, 토큰 형태의 문자열을 가린 뒤 TypeSafe(typesafe.ai)로 보냅니다. 다만 호스트 이름이나 고객 이름처럼 토큰 형태가 아닌 내용과 `password=...` 형식이 아닌 비밀번호는 가려지지 않고 쓴 그대로 전송됩니다. 게이트웨이 모드라면 대화방의 다른 참여자가 보낸 메시지도 전송 대상에 들어갑니다. export한 키는 에이전트의 도구도 읽을 수 있으니 이 기능 전용 키를 쓰고 사용 한도를 낮게 잡으세요. 비용은 TypeSafe가 본인 계정에 청구하며 입력 토큰 100만 개당 약 0.04달러입니다. 요청은 1.5초가 지나면 재시도 없이 멈추고, 실패해도 턴은 그대로 진행됩니다.
106
111
 
107
112
  켜져 있으면 세션의 첫 답변이 `✦ Jev skill hint ON`으로 시작합니다. Hermes 세션 안에서 `hermes lithermes status`와 `hermes lithermes doctor`를 실행하면 그 세션의 마지막 힌트가 `Jev skill hint: on — last hint lit-humanizer (0.43s)`나 `on — no hint yet`처럼 표시됩니다. 세션 밖에서는 `on — no session`, 그 밖에는 `off` 또는 `flag on but TYPESAFE_API_KEY missing`이 나옵니다. 끄려면 `LITHERMES_JEV`를 해제하거나 `1`이 아닌 값으로 바꾸세요. 자세한 내용은 GitHub README와 [개인정보 안내](https://github.com/wjgoarxiv/lithermes/blob/main/docs/privacy.md)에 있습니다.
108
113
 
@@ -113,13 +118,14 @@ npx --package @litfamily/lithermes -- lithermes doctor --offline
113
118
  npx --package @litfamily/lithermes -- lithermes uninstall --yes
114
119
  ```
115
120
 
116
- 호환성 패치를 적용했다면 삭제할 때 `--rollback-patches`를 추가하세요. 삭제한 뒤에도 스킨 파일과 `display.skin`은 남습니다. `npx --package @litfamily/lithermes -- lithermes hud off`로 선택만 지우고 파일은 그대로 둘 수 있습니다.
121
+ `doctor --offline`은 인터넷에 나가지 않고 설치 상태를 확인합니다. 설치 프로그램이 Hermes에 호환성 수정을 했다면 삭제할 때 `--rollback-patches`를 붙여 되돌리세요. 삭제해도 스킨 파일과 `display.skin` 선택은 남습니다. `npx --package @litfamily/lithermes -- lithermes hud off`를 실행하면 선택만 지우고 파일은 그대로 둡니다.
117
122
 
118
- - `lithermes install --dry-run`으로 설정 변경을 미리 볼 수 있습니다. 코드·인용문·복사한 명령은 실행 지시로 다루지 않으며, 비밀값은 저장하거나 모델에 넘기기 전에 가립니다.
119
- - native `/goal`은 사용자가 관리하며 플러그인은 관찰하지 않습니다. durable `goal_*` 상태가 기준이며, native `/goal`을 자동으로 갱신·초기화·재개하지 않습니다.
120
- - Hermes 하위 모델은 공통 모델 경로 하나를 씁니다. 작업별 모델 재정의와 지정 reviewer 경로는 지원하지 않으며, 설정 receipt가 child가 실제로 어떤 경로로 실행됐는지 증명하지는 않습니다.
121
- - Lit 스킬이 보이지 않으면 Hermes에 `skills_list` 도구를 호출해 LitHermes 항목을 찾아 달라고 하세요. 파일시스템만 조회하는 `/skills` 목록은 호스트 버전에 따라 다를 수 있습니다. Hermes 로그의 import 오류는 플러그인 로딩 실패이지, 추측으로 pip 패키지를 설치하라는 뜻이 아닙니다.
122
- - 다른 곳의 같은 이름 스킬이 LitHermes 스킬을 가리면 `lithermes doctor`가 `skill shadow check: WARNING` 줄을 출력합니다. `lithermes:<name>`으로 명시해 불러오세요. 이 경고는 doctor의 종료 상태를 바꾸지 않습니다.
123
+ - 설치 프로그램이 무엇을 바꿀지 미리 보고 싶다면 `lithermes install --dry-run`을 실행하세요.
124
+ - 붙여 넣은 코드, 인용문, 명령은 읽을 글로만 다루고 지시로 받아들이지 않습니다. 비밀값은 저장하거나 모델에 넘기기 전에 가립니다.
125
+ - Hermes에 원래 있는 `/goal`은 사용자가 직접 관리합니다. LitHermes는 이것을 지켜보지 않고, 대신 갱신하거나 지우거나 다시 이어 주지도 않습니다. LitHermes는 `goal_*` 도구로 저장한 자기 목표를 기준으로 삼습니다.
126
+ - Hermes는 보조 작업을 모두 공통 모델 설정 하나로 보내므로, 작업마다 모델을 고르거나 리뷰 전용 모델을 둘 수 없습니다. 설치 보고서에는 설정한 값만 나오고, 어떤 모델이 실제로 쓰였는지는 실제 `delegate_task` 실행 기록으로만 확인됩니다.
127
+ - Lit 스킬이 보이지 않으면 Hermes에 `skills_list` 도구를 불러 LitHermes 항목을 찾아 달라고 하세요. `/skills` 명령은 파일시스템만 읽어서 Hermes 버전에 따라 목록이 다를 수 있습니다. Hermes 로그의 import 오류는 플러그인을 불러오지 못했다는 뜻입니다. 짐작으로 pip 패키지를 설치하기보다 오류 메시지를 보관해 두세요.
128
+ - 다른 곳의 같은 이름 스킬이 LitHermes 스킬을 가리면 `lithermes doctor`가 `skill shadow check: WARNING` 줄을 출력합니다. `lithermes:<name>`으로 불러오세요. 이 경고가 doctor의 종료 상태를 바꾸지는 않습니다.
123
129
 
124
130
  ## 더 알아보기
125
131
 
@@ -1,7 +1,7 @@
1
1
  {
2
- "syncedAt": "2026-09-28T21:55:31.052Z",
2
+ "syncedAt": "2026-09-29T02:14:12.728Z",
3
3
  "source": "bundled-payload",
4
- "sourceHash": "25fbdba47d28edfb0f71177235d65a489f959423d188880475e0f5ea078c3b5b",
4
+ "sourceHash": "922dc8d31ecbb44b556d77f7e9732122f21874fd88b8f4092126d11629612d95",
5
5
  "files": [
6
6
  {
7
7
  "path": "NOTICE.md",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  {
179
179
  "path": "plugin.yaml",
180
- "sha256": "88ed50f08649700ce16cc80a3114b97075237943eebcef5315ac4c8a9553c22b"
180
+ "sha256": "0d24e632fe966bd75f7bb5a7161634d0f9a4c3e522ab9e083aa93572f2e3a4db"
181
181
  },
182
182
  {
183
183
  "path": "provider_metrics.py",
@@ -1281,7 +1281,7 @@
1281
1281
  },
1282
1282
  {
1283
1283
  "path": "skills/frontend-ui-ux/references/complete-contract.md",
1284
- "sha256": "a3cd90e0b048a6aa6dca0bcbfdc3ff0108d390e28c0348e2f7ae885fc12a8350"
1284
+ "sha256": "92e1d3b87dfddf73f8c373fdc137eb43ba2290a711d244bbc5aff5d397df1557"
1285
1285
  },
1286
1286
  {
1287
1287
  "path": "skills/frontend-ui-ux/references/composition.md",
@@ -4149,7 +4149,7 @@
4149
4149
  },
4150
4150
  {
4151
4151
  "path": "skills/visual-qa/references/complete-contract.md",
4152
- "sha256": "a5dad79ce8fe3496f0f5590d0843abb55be2a53df53cde28a2b8cee8337de40e"
4152
+ "sha256": "200a7ae9d81a3a14ae72aa78a22ebd991bd5ed36c615d2e2fb4b2073591ae0cb"
4153
4153
  },
4154
4154
  {
4155
4155
  "path": "skills/visual-qa/schemas/evidence-manifest-v1alpha1.schema.json",
@@ -1,5 +1,5 @@
1
1
  name: lithermes
2
- version: 1.0.11
2
+ version: 1.0.12
3
3
  description: "Hermes-native workflow toolkit: litgoal durable runtime, 5-lane review orchestrator, Litwork commands, skills, and prompt steering."
4
4
  author: "LitHermes contributors"
5
5
  kind: standalone
@@ -445,7 +445,7 @@ isolated Hermes home. Use `--hermes-home`; never `--home`.
445
445
 
446
446
  ```text
447
447
  $ node packages/lithermes-installer/bin/lithermes.js install --yes --offline --no-hud --hermes-home "$ISOLATED"
448
- Installed LitHermes 1.0.11
448
+ Installed LitHermes 1.0.12
449
449
  plugin: $ISOLATED/plugins/lithermes
450
450
  model config: updated
451
451
 
@@ -462,7 +462,7 @@ installed payload: PASS
462
462
  enabled config: PASS
463
463
 
464
464
  $ hermes lithermes doctor
465
- [OK] plugin.yaml readable (version 1.0.11)
465
+ [OK] plugin.yaml readable (version 1.0.12)
466
466
  [OK] skills bundled: 36
467
467
  [OK] litgoal durable runtime importable
468
468
  ```
@@ -485,7 +485,7 @@ isolated Hermes home. Use `--hermes-home`; never `--home`.
485
485
 
486
486
  ```text
487
487
  $ node packages/lithermes-installer/bin/lithermes.js install --yes --offline --no-hud --hermes-home "$ISOLATED"
488
- Installed LitHermes 1.0.11
488
+ Installed LitHermes 1.0.12
489
489
  plugin: $ISOLATED/plugins/lithermes
490
490
  model config: updated
491
491
 
@@ -502,7 +502,7 @@ installed payload: PASS
502
502
  enabled config: PASS
503
503
 
504
504
  $ hermes lithermes doctor
505
- [OK] plugin.yaml readable (version 1.0.11)
505
+ [OK] plugin.yaml readable (version 1.0.12)
506
506
  [OK] skills bundled: 36
507
507
  [OK] litgoal durable runtime importable
508
508
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litfamily/lithermes",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "npx/bunx installer for the LitHermes Hermes plugin",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.11"><title>release: 1.0.11</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.11</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.12"><title>release: 1.0.12</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.12</text></g></svg>