lithermes-ai 0.5.0

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.
Files changed (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +245 -0
  3. package/README_Ko-KR.md +245 -0
  4. package/assets/lithermes-plugin/NOTICE.md +37 -0
  5. package/assets/lithermes-plugin/README.md +40 -0
  6. package/assets/lithermes-plugin/__init__.py +179 -0
  7. package/assets/lithermes-plugin/core.py +853 -0
  8. package/assets/lithermes-plugin/litgoal/__init__.py +10 -0
  9. package/assets/lithermes-plugin/litgoal/cli.py +133 -0
  10. package/assets/lithermes-plugin/litgoal/hook.py +48 -0
  11. package/assets/lithermes-plugin/litgoal/model.py +171 -0
  12. package/assets/lithermes-plugin/litgoal/runtime.py +273 -0
  13. package/assets/lithermes-plugin/litgoal/store.py +93 -0
  14. package/assets/lithermes-plugin/litgoal/tools.py +228 -0
  15. package/assets/lithermes-plugin/payload-version.json +471 -0
  16. package/assets/lithermes-plugin/plugin.yaml +9 -0
  17. package/assets/lithermes-plugin/skills/ai-slop-remover/SKILL.md +142 -0
  18. package/assets/lithermes-plugin/skills/comment-checker/SKILL.md +50 -0
  19. package/assets/lithermes-plugin/skills/debugging/SKILL.md +116 -0
  20. package/assets/lithermes-plugin/skills/debugging/references/methodology/00-setup.md +108 -0
  21. package/assets/lithermes-plugin/skills/debugging/references/methodology/02-investigate.md +121 -0
  22. package/assets/lithermes-plugin/skills/debugging/references/methodology/04-oracle-triple.md +136 -0
  23. package/assets/lithermes-plugin/skills/debugging/references/methodology/05-escalate.md +69 -0
  24. package/assets/lithermes-plugin/skills/debugging/references/methodology/06-fix.md +116 -0
  25. package/assets/lithermes-plugin/skills/debugging/references/methodology/08-qa.md +94 -0
  26. package/assets/lithermes-plugin/skills/debugging/references/methodology/09-cleanup.md +164 -0
  27. package/assets/lithermes-plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +229 -0
  28. package/assets/lithermes-plugin/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
  29. package/assets/lithermes-plugin/skills/debugging/references/runtimes/go.md +252 -0
  30. package/assets/lithermes-plugin/skills/debugging/references/runtimes/native-binary.md +484 -0
  31. package/assets/lithermes-plugin/skills/debugging/references/runtimes/node.md +260 -0
  32. package/assets/lithermes-plugin/skills/debugging/references/runtimes/python.md +248 -0
  33. package/assets/lithermes-plugin/skills/debugging/references/runtimes/rust.md +234 -0
  34. package/assets/lithermes-plugin/skills/debugging/references/tools/ghidra.md +212 -0
  35. package/assets/lithermes-plugin/skills/debugging/references/tools/playwright-cli.md +194 -0
  36. package/assets/lithermes-plugin/skills/debugging/references/tools/pwndbg.md +263 -0
  37. package/assets/lithermes-plugin/skills/debugging/references/tools/pwntools.md +265 -0
  38. package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +77 -0
  39. package/assets/lithermes-plugin/skills/lit-plan/SKILL.md +374 -0
  40. package/assets/lithermes-plugin/skills/litgoal/.gitkeep +0 -0
  41. package/assets/lithermes-plugin/skills/litgoal/SKILL.md +207 -0
  42. package/assets/lithermes-plugin/skills/litwork/SKILL.md +262 -0
  43. package/assets/lithermes-plugin/skills/lsp/SKILL.md +53 -0
  44. package/assets/lithermes-plugin/skills/programming/SKILL.md +463 -0
  45. package/assets/lithermes-plugin/skills/programming/references/go/README.md +90 -0
  46. package/assets/lithermes-plugin/skills/programming/references/go/backend-stack.md +641 -0
  47. package/assets/lithermes-plugin/skills/programming/references/go/bootstrap.md +328 -0
  48. package/assets/lithermes-plugin/skills/programming/references/go/bubbletea-v2.md +360 -0
  49. package/assets/lithermes-plugin/skills/programming/references/go/cobra-stack.md +468 -0
  50. package/assets/lithermes-plugin/skills/programming/references/go/concurrency.md +362 -0
  51. package/assets/lithermes-plugin/skills/programming/references/go/data-modeling.md +329 -0
  52. package/assets/lithermes-plugin/skills/programming/references/go/error-handling.md +359 -0
  53. package/assets/lithermes-plugin/skills/programming/references/go/golangci-strict.md +236 -0
  54. package/assets/lithermes-plugin/skills/programming/references/go/grpc-connect.md +375 -0
  55. package/assets/lithermes-plugin/skills/programming/references/go/libraries.md +337 -0
  56. package/assets/lithermes-plugin/skills/programming/references/go/one-liners.md +202 -0
  57. package/assets/lithermes-plugin/skills/programming/references/go/sqlc-pgx.md +471 -0
  58. package/assets/lithermes-plugin/skills/programming/references/go/testing.md +467 -0
  59. package/assets/lithermes-plugin/skills/programming/references/go/type-patterns.md +298 -0
  60. package/assets/lithermes-plugin/skills/programming/references/python/README.md +314 -0
  61. package/assets/lithermes-plugin/skills/programming/references/python/async-anyio.md +442 -0
  62. package/assets/lithermes-plugin/skills/programming/references/python/data-modeling.md +233 -0
  63. package/assets/lithermes-plugin/skills/programming/references/python/data-processing.md +133 -0
  64. package/assets/lithermes-plugin/skills/programming/references/python/error-handling.md +218 -0
  65. package/assets/lithermes-plugin/skills/programming/references/python/fastapi-stack.md +316 -0
  66. package/assets/lithermes-plugin/skills/programming/references/python/httpx2-optimization.md +360 -0
  67. package/assets/lithermes-plugin/skills/programming/references/python/libraries.md +307 -0
  68. package/assets/lithermes-plugin/skills/programming/references/python/one-liners.md +268 -0
  69. package/assets/lithermes-plugin/skills/programming/references/python/orjson-stack.md +378 -0
  70. package/assets/lithermes-plugin/skills/programming/references/python/pydantic-ai.md +285 -0
  71. package/assets/lithermes-plugin/skills/programming/references/python/pyproject-strict.md +232 -0
  72. package/assets/lithermes-plugin/skills/programming/references/python/textual-tui.md +201 -0
  73. package/assets/lithermes-plugin/skills/programming/references/python/type-patterns.md +176 -0
  74. package/assets/lithermes-plugin/skills/programming/references/rust/README.md +317 -0
  75. package/assets/lithermes-plugin/skills/programming/references/rust/async-tokio.md +299 -0
  76. package/assets/lithermes-plugin/skills/programming/references/rust/axum-stack.md +467 -0
  77. package/assets/lithermes-plugin/skills/programming/references/rust/cargo-strict.md +317 -0
  78. package/assets/lithermes-plugin/skills/programming/references/rust/clap-stack.md +409 -0
  79. package/assets/lithermes-plugin/skills/programming/references/rust/concurrency.md +375 -0
  80. package/assets/lithermes-plugin/skills/programming/references/rust/libraries.md +439 -0
  81. package/assets/lithermes-plugin/skills/programming/references/rust/one-liners.md +291 -0
  82. package/assets/lithermes-plugin/skills/programming/references/rust/proptest-insta.md +429 -0
  83. package/assets/lithermes-plugin/skills/programming/references/rust/type-state.md +354 -0
  84. package/assets/lithermes-plugin/skills/programming/references/rust/unsafe-discipline.md +250 -0
  85. package/assets/lithermes-plugin/skills/programming/references/rust/zero-cost-safety.md +527 -0
  86. package/assets/lithermes-plugin/skills/programming/references/rust-ub/README.md +289 -0
  87. package/assets/lithermes-plugin/skills/programming/references/rust-ub/miri-sanitizers-loom.md +411 -0
  88. package/assets/lithermes-plugin/skills/programming/references/rust-ub/ub-taxonomy.md +269 -0
  89. package/assets/lithermes-plugin/skills/programming/references/typescript/README.md +195 -0
  90. package/assets/lithermes-plugin/skills/programming/references/typescript/backend-hono.md +672 -0
  91. package/assets/lithermes-plugin/skills/programming/references/typescript/bootstrap.md +199 -0
  92. package/assets/lithermes-plugin/skills/programming/references/typescript/data-modeling.md +202 -0
  93. package/assets/lithermes-plugin/skills/programming/references/typescript/error-handling.md +169 -0
  94. package/assets/lithermes-plugin/skills/programming/references/typescript/tsconfig-strict.md +152 -0
  95. package/assets/lithermes-plugin/skills/programming/references/typescript/type-patterns.md +196 -0
  96. package/assets/lithermes-plugin/skills/programming/scripts/go/check-no-excuse-rules.sh +173 -0
  97. package/assets/lithermes-plugin/skills/programming/scripts/go/new-project.py +138 -0
  98. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/.editorconfig +13 -0
  99. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/.golangci.yml +95 -0
  100. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/AGENTS.md.tmpl +24 -0
  101. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/README.md.tmpl +12 -0
  102. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/Taskfile.yml +40 -0
  103. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/ci.yml +37 -0
  104. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/config.go +24 -0
  105. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/gitignore +15 -0
  106. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/main.go.tmpl +22 -0
  107. package/assets/lithermes-plugin/skills/programming/scripts/go/templates/run.go +15 -0
  108. package/assets/lithermes-plugin/skills/programming/scripts/python/check-no-excuse-rules.py +687 -0
  109. package/assets/lithermes-plugin/skills/programming/scripts/python/new-project.py +172 -0
  110. package/assets/lithermes-plugin/skills/programming/scripts/python/new-script.py +116 -0
  111. package/assets/lithermes-plugin/skills/programming/scripts/rust/check-no-excuse-rules.py +296 -0
  112. package/assets/lithermes-plugin/skills/programming/scripts/rust/check-no-excuse-rules.sh +158 -0
  113. package/assets/lithermes-plugin/skills/programming/scripts/rust/new-project.py +175 -0
  114. package/assets/lithermes-plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +282 -0
  115. package/assets/lithermes-plugin/skills/programming/scripts/typescript/new-project.ts +177 -0
  116. package/assets/lithermes-plugin/skills/refactor/SKILL.md +770 -0
  117. package/assets/lithermes-plugin/skills/remove-ai-slops/SKILL.md +335 -0
  118. package/assets/lithermes-plugin/skills/review-work/SKILL.md +562 -0
  119. package/assets/lithermes-plugin/skills/rules/SKILL.md +41 -0
  120. package/assets/lithermes-plugin/skills/start-work/SKILL.md +332 -0
  121. package/bin/lithermes.js +8 -0
  122. package/cover.png +0 -0
  123. package/package.json +39 -0
  124. package/src/cli.js +129 -0
  125. package/src/lib/check.js +94 -0
  126. package/src/lib/config.js +170 -0
  127. package/src/lib/files.js +65 -0
  128. package/src/lib/hermesDiscovery.js +50 -0
  129. package/src/lib/hud.js +121 -0
  130. package/src/lib/install.js +159 -0
  131. package/src/lib/patch.js +153 -0
  132. package/src/lib/skins.js +113 -0
  133. package/src/lib/spinner.js +104 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 wjgoarxiv
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,245 @@
1
+ <p align="center"><img src="./cover.png" width="100%" /></p>
2
+
3
+ <h1 align="center">LitHermes</h1>
4
+
5
+ <p align="center">
6
+ Install evidence-first Litwork commands into Hermes Agent with one <code>npx</code> or <code>bunx</code> command.
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/package/lithermes-ai"><img src="https://img.shields.io/npm/v/lithermes-ai?color=14b8a6" alt="npm version" /></a>
11
+ <a href="https://github.com/wjgoarxiv/lithermes"><img src="https://img.shields.io/badge/GitHub-lithermes-111827" alt="GitHub repository" /></a>
12
+ <img src="https://img.shields.io/badge/Hermes-Agent-6366f1" alt="Hermes Agent" />
13
+ <img src="https://img.shields.io/badge/license-MIT-0f766e" alt="MIT license" />
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="#quick-start">Quick Start</a> ·
18
+ <a href="#what-you-get">What You Get</a> ·
19
+ <a href="#install">Install</a> ·
20
+ <a href="#verify">Verify</a> ·
21
+ <a href="#telegram-gateway">Telegram Gateway</a> ·
22
+ <a href="./README_Ko-KR.md">한국어</a>
23
+ </p>
24
+
25
+ > This is the npm package source for LitHermes. It installs the Hermes plugin that provides `/lit`, `/lit-loop`, `/lit-plan`, and gateway-friendly aliases.
26
+
27
+ ## Quick Start
28
+
29
+ Run a doctor check first:
30
+
31
+ ```sh
32
+ npx lithermes-ai doctor
33
+ bunx lithermes-ai doctor
34
+ ```
35
+
36
+ Install the plugin:
37
+
38
+ ```sh
39
+ npx lithermes-ai install --yes
40
+ ```
41
+
42
+ Restart any running Hermes CLI or Hermes gateway process. Then open Hermes and try:
43
+
44
+ ```text
45
+ /lit 이 폴더에 뭐가 있는지 정리해줘
46
+ /lit-plan lithermes를 더 안전하게 배포하는 플랜 세워줘
47
+ ```
48
+
49
+ ## What You Get
50
+
51
+ - `/lit`: start an Litwork loop immediately.
52
+ - `/lit-loop`: explicit alias for the same execution loop.
53
+ - `/lit-plan`: create a durable implementation plan.
54
+ - `/litwork-loop` and `/litwork-plan`: longer aliases.
55
+ - `/lit_loop` and `/lit_plan`: gateway-friendly aliases for Telegram dispatch.
56
+ - Native `/goal` binding: Hermes has no model-facing goal tools, so `/lit`, `/lit-loop`, and `/lit-plan` bind the native standing `/goal` via the session goal manager (persists across turns; native evidence-judge decides completion). Criteria + evidence use the durable `goal_*` tools.
57
+ - Interactive install spinner keeps terminal installs lively while redirected or scripted installs stay plain; use `npx lithermes-ai install --yes --no-spinner` for quiet terminal installs.
58
+ - `start-work`: open or dry-run a LitHermes plan inside Hermes.
59
+ - LitHermes workflow skill set: `ai-slop-remover`, `comment-checker`,
60
+ `debugging`, `frontend-ui-ux`, `lsp`, `programming`, `refactor`,
61
+ `remove-ai-slops`, `review-work`, `rules`, `start-work`, `lit-plan`,
62
+ `litgoal`, and `litwork` are installed as `lithermes:*` skills.
63
+ - The full plugin payload — the `pre_llm_call` / `subagent_stop` /
64
+ `on_session_start` hooks, every skill, and the durable goal tooling — ships in
65
+ the bundle exactly as installed, so each release is reproducible and auditable.
66
+
67
+ ## Requirements
68
+
69
+ - Hermes Agent already installed on the machine.
70
+ - Node.js 18 or newer for `npx`.
71
+ - Bun if you want to use `bunx`.
72
+ - Write access to the Hermes home directory, normally `~/.hermes`.
73
+
74
+ The default install target is:
75
+
76
+ ```text
77
+ ~/.hermes/plugins/lithermes
78
+ ~/.hermes/config.yaml
79
+ ```
80
+
81
+ Use `--hermes-home PATH` if your Hermes home is somewhere else.
82
+
83
+ ## Install
84
+
85
+ Preview changes without writing anything:
86
+
87
+ ```sh
88
+ npx lithermes-ai install --dry-run
89
+ ```
90
+
91
+ Install with npm:
92
+
93
+ ```sh
94
+ npx lithermes-ai install --yes
95
+ ```
96
+
97
+ Install with Bun:
98
+
99
+ ```sh
100
+ bunx lithermes-ai install --yes
101
+ ```
102
+
103
+ Install into a custom Hermes home:
104
+
105
+ ```sh
106
+ npx lithermes-ai install --yes --hermes-home /path/to/.hermes
107
+ ```
108
+
109
+ LitHermes refuses to mutate Hermes config unless you pass `--yes`. If `~/.hermes/plugins/lithermes` already exists but was not created by this installer, installation stops instead of overwriting user files.
110
+
111
+ ## Verify
112
+
113
+ Check the package and Hermes compatibility:
114
+
115
+ ```sh
116
+ npx lithermes-ai doctor
117
+ bunx lithermes-ai doctor
118
+ ```
119
+
120
+ Check an installed plugin:
121
+
122
+ ```sh
123
+ npx lithermes-ai check --offline
124
+ ```
125
+
126
+ Expected successful output includes:
127
+
128
+ ```text
129
+ LitHermes check PASS
130
+ commands: lit, lit-loop, lit-plan
131
+ ```
132
+
133
+ For gateway compatibility checks:
134
+
135
+ ```sh
136
+ npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
137
+ ```
138
+
139
+ Expected successful output includes:
140
+
141
+ ```text
142
+ gateway /lit_loop PASS
143
+ gateway /lit_plan PASS
144
+ ```
145
+
146
+ ## Hermes Goal Tools
147
+
148
+ Hermes exposes no model-facing goal tools. LitHermes binds the native standing `/goal` for you through the session goal manager when you start an Litwork run, so it persists across turns and the native evidence-judge decides completion. Success criteria and evidence are tracked with the durable `goal_*` tools and `hermes lithermes goal status`.
149
+
150
+ That means a recent Hermes Agent can continue the same LitHermes work across turns instead of stopping after the command creates a run directory or plan file.
151
+
152
+ ## Telegram Gateway
153
+
154
+ LitHermes does not contact Telegram during install. It only installs the Hermes plugin and checks whether the local Hermes gateway source supports plugin command dispatch.
155
+
156
+ After installing:
157
+
158
+ 1. Restart the Hermes gateway process.
159
+ 2. In Telegram, send `/lit_loop your task`.
160
+ 3. For planning-only work, send `/lit_plan your task`.
161
+
162
+ If Telegram does not recognize the command, run:
163
+
164
+ ```sh
165
+ npx lithermes-ai doctor --hermes-repo /path/to/hermes-agent
166
+ ```
167
+
168
+ If `cli payload dispatch`, `tui payload dispatch`, or `gateway underscore dispatch` is not `PASS`, update Hermes or use the patch fallback below.
169
+
170
+ ## Patch Fallback
171
+
172
+ When LitHermes can find `~/.hermes/hermes-agent`, `install --yes` attempts known compatibility patches automatically and writes backups first. Use the explicit form when Hermes lives elsewhere, or add `--no-patch-installed-hermes` if you only want to copy the plugin.
173
+
174
+ ```sh
175
+ npx lithermes-ai install --yes --patch-installed-hermes --hermes-repo /path/to/hermes-agent
176
+ ```
177
+
178
+ The patch path writes `.lithermes.bak` backups and a rollback manifest under the Hermes home.
179
+
180
+ Rollback patches:
181
+
182
+ ```sh
183
+ npx lithermes-ai uninstall --yes --rollback-patches
184
+ ```
185
+
186
+ ## Uninstall
187
+
188
+ Remove only manifest-owned LitHermes files and remove the config entry:
189
+
190
+ ```sh
191
+ npx lithermes-ai uninstall --yes
192
+ ```
193
+
194
+ Uninstall intentionally preserves unrelated files in `~/.hermes/plugins`.
195
+
196
+ ## Troubleshooting
197
+
198
+ ### `Hermes installation not found`
199
+
200
+ Pass the Hermes home explicitly:
201
+
202
+ ```sh
203
+ npx lithermes-ai doctor --hermes-home /path/to/.hermes
204
+ ```
205
+
206
+ ### Commands do not appear inside Hermes
207
+
208
+ Restart Hermes. Plugin discovery is loaded by the running process, so an already-open CLI or gateway may not see a newly installed plugin.
209
+
210
+ Then check:
211
+
212
+ ```sh
213
+ npx lithermes-ai check --offline
214
+ ```
215
+
216
+ ### Telegram `/lit_loop` does not respond
217
+
218
+ Run:
219
+
220
+ ```sh
221
+ npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
222
+ ```
223
+
224
+ If the gateway check fails, update Hermes or use the explicit patch fallback.
225
+
226
+ ### Bun local tarball testing
227
+
228
+ Current Bun versions may not execute a local tarball directly with `bunx ./file.tgz`. For local release testing, install the tarball into a temp project and run the binary:
229
+
230
+ ```sh
231
+ bun init -y
232
+ bun add ./lithermes-*.tgz
233
+ bunx --no-install lithermes doctor
234
+ ```
235
+
236
+ ## Release Checklist
237
+
238
+ ```sh
239
+ npm test
240
+ npm pack --dry-run --json
241
+ npm publish --access public
242
+ npx --yes lithermes@latest doctor
243
+ ```
244
+
245
+ Security note: `npx` and `bunx` execute package code. Use `doctor` and `--dry-run` first when installing on a sensitive Hermes host.
@@ -0,0 +1,245 @@
1
+ <p align="center"><img src="./cover.png" width="100%" /></p>
2
+
3
+ <h1 align="center">LitHermes</h1>
4
+
5
+ <p align="center">
6
+ Hermes Agent에 evidence-first Litwork 명령을 설치하는 <code>npx</code>/<code>bunx</code> 패키지입니다.
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/package/lithermes-ai"><img src="https://img.shields.io/npm/v/lithermes-ai?color=14b8a6" alt="npm version" /></a>
11
+ <a href="https://github.com/wjgoarxiv/lithermes"><img src="https://img.shields.io/badge/GitHub-lithermes-111827" alt="GitHub repository" /></a>
12
+ <img src="https://img.shields.io/badge/Hermes-Agent-6366f1" alt="Hermes Agent" />
13
+ <img src="https://img.shields.io/badge/license-MIT-0f766e" alt="MIT license" />
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="#빠른-시작">빠른 시작</a> ·
18
+ <a href="#무엇이-설치되나요">무엇이 설치되나요</a> ·
19
+ <a href="#설치">설치</a> ·
20
+ <a href="#확인">확인</a> ·
21
+ <a href="#텔레그램-게이트웨이">텔레그램 게이트웨이</a> ·
22
+ <a href="./README.md">English</a>
23
+ </p>
24
+
25
+ > 이 문서는 LitHermes npm package 사용 설명서입니다. 설치 후 Hermes에서 `/lit`, `/lit-loop`, `/lit-plan`을 사용할 수 있고, Hermes gateway에서는 `/lit_loop`, `/lit_plan` alias도 사용할 수 있습니다.
26
+
27
+ ## 빠른 시작
28
+
29
+ 먼저 현재 Hermes 환경이 LitHermes를 받을 수 있는지 확인합니다.
30
+
31
+ ```sh
32
+ npx lithermes-ai doctor
33
+ bunx lithermes-ai doctor
34
+ ```
35
+
36
+ 설치합니다.
37
+
38
+ ```sh
39
+ npx lithermes-ai install --yes
40
+ ```
41
+
42
+ 실행 중인 Hermes CLI 또는 Hermes gateway를 재시작합니다. 그 다음 Hermes에서 이렇게 사용합니다.
43
+
44
+ ```text
45
+ /lit 이 폴더에 뭐가 있는지 정리해줘
46
+ /lit-plan lithermes를 더 안전하게 배포하는 플랜 세워줘
47
+ ```
48
+
49
+ ## 무엇이 설치되나요
50
+
51
+ - `/lit`: Litwork loop를 바로 시작합니다.
52
+ - `/lit-loop`: 같은 실행 loop를 명시적으로 호출합니다.
53
+ - `/lit-plan`: 구현 계획을 먼저 세웁니다.
54
+ - `/litwork-loop`, `/litwork-plan`: 긴 이름의 alias입니다.
55
+ - `/lit_loop`, `/lit_plan`: Telegram dispatch에 맞춘 gateway alias입니다.
56
+ - 네이티브 `/goal` 바인딩: Hermes에는 model-facing goal tool이 없으므로 `/lit`, `/lit-loop`, `/lit-plan`은 세션 goal manager를 통해 네이티브 standing `/goal`을 대신 설정합니다(턴을 넘어 유지되고 네이티브 evidence-judge가 완료를 판정). success criteria와 증거는 durable `goal_*` 도구로 추적합니다.
57
+ - interactive install spinner가 terminal 설치는 더 생동감 있게 보여주고, redirect/script 설치는 기존처럼 plain output을 유지합니다. 조용한 terminal 설치가 필요하면 `npx lithermes-ai install --yes --no-spinner`를 사용합니다.
58
+ - `start-work`: LitHermes plan을 Hermes 작업으로 엽니다.
59
+ - LitHermes workflow skill set: `ai-slop-remover`, `comment-checker`,
60
+ `debugging`, `frontend-ui-ux`, `lsp`, `programming`, `refactor`,
61
+ `remove-ai-slops`, `review-work`, `rules`, `start-work`, `lit-plan`,
62
+ `litgoal`, `litwork`가 `lithermes:*` skill로 함께 설치됩니다.
63
+ - 전체 plugin payload — `pre_llm_call` / `subagent_stop` / `on_session_start`
64
+ hook, 모든 skill, durable goal tooling — 이 설치 상태 그대로 번들에 들어가므로,
65
+ 각 릴리스는 재현 가능하고 감사할 수 있습니다.
66
+
67
+ ## 요구 사항
68
+
69
+ - Hermes Agent가 이미 설치되어 있어야 합니다.
70
+ - `npx` 사용 시 Node.js 18 이상이 필요합니다.
71
+ - `bunx` 사용 시 Bun이 필요합니다.
72
+ - 보통 `~/.hermes`인 Hermes home에 쓸 수 있어야 합니다.
73
+
74
+ 기본 설치 위치는 다음과 같습니다.
75
+
76
+ ```text
77
+ ~/.hermes/plugins/lithermes
78
+ ~/.hermes/config.yaml
79
+ ```
80
+
81
+ Hermes home이 다른 위치라면 `--hermes-home PATH`를 사용하세요.
82
+
83
+ ## 설치
84
+
85
+ 실제로 쓰기 전에 변경될 내용을 미리 봅니다.
86
+
87
+ ```sh
88
+ npx lithermes-ai install --dry-run
89
+ ```
90
+
91
+ npm으로 설치합니다.
92
+
93
+ ```sh
94
+ npx lithermes-ai install --yes
95
+ ```
96
+
97
+ Bun으로 설치합니다.
98
+
99
+ ```sh
100
+ bunx lithermes-ai install --yes
101
+ ```
102
+
103
+ Hermes home을 직접 지정합니다.
104
+
105
+ ```sh
106
+ npx lithermes-ai install --yes --hermes-home /path/to/.hermes
107
+ ```
108
+
109
+ LitHermes는 `--yes`가 없으면 Hermes config를 수정하지 않습니다. 또한 `~/.hermes/plugins/lithermes`가 이미 있는데 이 installer가 만든 파일이 아니면, 사용자 파일을 덮어쓰지 않고 멈춥니다.
110
+
111
+ ## 확인
112
+
113
+ 패키지와 Hermes 호환성을 확인합니다.
114
+
115
+ ```sh
116
+ npx lithermes-ai doctor
117
+ bunx lithermes-ai doctor
118
+ ```
119
+
120
+ 설치된 plugin을 확인합니다.
121
+
122
+ ```sh
123
+ npx lithermes-ai check --offline
124
+ ```
125
+
126
+ 성공하면 다음과 비슷하게 보입니다.
127
+
128
+ ```text
129
+ LitHermes check PASS
130
+ commands: lit, lit-loop, lit-plan
131
+ ```
132
+
133
+ gateway 호환성까지 확인하려면:
134
+
135
+ ```sh
136
+ npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
137
+ ```
138
+
139
+ 성공하면 다음 문구가 포함됩니다.
140
+
141
+ ```text
142
+ gateway /lit_loop PASS
143
+ gateway /lit_plan PASS
144
+ ```
145
+
146
+ ## Hermes Goal Tools
147
+
148
+ Hermes는 model-facing goal tool을 제공하지 않습니다. LitHermes는 Litwork run을 시작할 때 세션 goal manager를 통해 네이티브 standing `/goal`을 대신 설정하며, 이는 턴을 넘어 유지되고 네이티브 evidence-judge가 완료를 판정합니다. success criteria와 증거는 durable `goal_*` 도구와 `hermes lithermes goal status`로 추적합니다.
149
+
150
+ 따라서 최신 Hermes Agent에서는 command가 run directory나 plan file만 만들고 멈추지 않고, 같은 LitHermes 작업을 여러 turn에 걸쳐 이어갈 수 있습니다.
151
+
152
+ ## 텔레그램 게이트웨이
153
+
154
+ LitHermes 설치 과정은 Telegram에 접속하지 않습니다. 로컬 Hermes plugin을 설치하고, Hermes gateway 소스가 plugin command dispatch를 지원하는지만 확인합니다.
155
+
156
+ 설치 후:
157
+
158
+ 1. Hermes gateway 프로세스를 재시작합니다.
159
+ 2. Telegram에서 `/lit_loop 할 일`을 보냅니다.
160
+ 3. 계획만 세우고 싶다면 `/lit_plan 할 일`을 보냅니다.
161
+
162
+ Telegram에서 명령이 동작하지 않으면 다음을 실행하세요.
163
+
164
+ ```sh
165
+ npx lithermes-ai doctor --hermes-repo /path/to/hermes-agent
166
+ ```
167
+
168
+ `cli payload dispatch`, `tui payload dispatch`, `gateway underscore dispatch` 중 하나라도 `PASS`가 아니라면 Hermes를 업데이트하거나 아래 patch fallback을 사용하세요.
169
+
170
+ ## Patch Fallback
171
+
172
+ LitHermes가 `~/.hermes/hermes-agent`를 찾을 수 있으면 `install --yes` 과정에서 알려진 호환성 patch를 자동으로 시도하고 먼저 백업을 남깁니다. Hermes checkout이 다른 위치에 있으면 아래처럼 명시적으로 지정하세요. plugin만 복사하고 싶다면 `--no-patch-installed-hermes`를 붙이면 됩니다.
173
+
174
+ ```sh
175
+ npx lithermes-ai install --yes --patch-installed-hermes --hermes-repo /path/to/hermes-agent
176
+ ```
177
+
178
+ patch fallback은 `.lithermes.bak` 백업과 Hermes home 아래 rollback manifest를 남깁니다.
179
+
180
+ patch를 되돌리려면:
181
+
182
+ ```sh
183
+ npx lithermes-ai uninstall --yes --rollback-patches
184
+ ```
185
+
186
+ ## 삭제
187
+
188
+ installer manifest가 소유한 LitHermes 파일만 제거하고 config entry를 지웁니다.
189
+
190
+ ```sh
191
+ npx lithermes-ai uninstall --yes
192
+ ```
193
+
194
+ `~/.hermes/plugins` 안의 관련 없는 파일은 보존됩니다.
195
+
196
+ ## 문제 해결
197
+
198
+ ### `Hermes installation not found`
199
+
200
+ Hermes home을 직접 지정하세요.
201
+
202
+ ```sh
203
+ npx lithermes-ai doctor --hermes-home /path/to/.hermes
204
+ ```
205
+
206
+ ### Hermes 안에서 명령이 보이지 않음
207
+
208
+ Hermes를 재시작하세요. 이미 실행 중인 CLI나 gateway는 새로 설치된 plugin을 바로 보지 못할 수 있습니다.
209
+
210
+ 그 다음 확인합니다.
211
+
212
+ ```sh
213
+ npx lithermes-ai check --offline
214
+ ```
215
+
216
+ ### Telegram `/lit_loop`가 반응하지 않음
217
+
218
+ 다음을 실행하세요.
219
+
220
+ ```sh
221
+ npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
222
+ ```
223
+
224
+ gateway check가 실패하면 Hermes를 업데이트하거나 명시적 patch fallback을 사용하세요.
225
+
226
+ ### Bun local tarball 테스트
227
+
228
+ 현재 Bun 버전에서는 `bunx ./file.tgz`처럼 local tarball을 바로 실행하는 방식이 일관되게 동작하지 않을 수 있습니다. 로컬 release smoke는 temp project에 tarball을 설치한 뒤 binary를 실행하세요.
229
+
230
+ ```sh
231
+ bun init -y
232
+ bun add ./lithermes-*.tgz
233
+ bunx --no-install lithermes doctor
234
+ ```
235
+
236
+ ## Release Checklist
237
+
238
+ ```sh
239
+ npm test
240
+ npm pack --dry-run --json
241
+ npm publish --access public
242
+ npx --yes lithermes@latest doctor
243
+ ```
244
+
245
+ 보안 메모: `npx`와 `bunx`는 package code를 실행합니다. 민감한 Hermes host에 설치할 때는 먼저 `doctor`와 `--dry-run`을 사용하세요.
@@ -0,0 +1,37 @@
1
+ # Notice
2
+
3
+ This plugin is a Hermes-native adaptation of the bundled workflow reference:
4
+
5
+ - Repository: bundled workflow reference
6
+ - Reference commit inspected for this port:
7
+ `3fb8802e314dc0a1f23481dd3782cdca26b92dc2`
8
+
9
+ The runtime implementation here is not a vendored upstream runtime. LitHermes
10
+ re-implements command dispatch against Hermes' plugin, hook, skill, and LSP
11
+ surfaces.
12
+
13
+ The bundled skill markdown is adapted from MIT-licensed workflow guidance, with
14
+ Hermes-specific command mapping for `/lit`,
15
+ `/lit-loop`, `/lit-plan`, `/lit_loop`, and `/lit_plan`.
16
+
17
+ ## MIT License Notice
18
+
19
+ Copyright (c) 2026 Yeongyu Kim
20
+
21
+ Permission is hereby granted, free of charge, to any person obtaining a copy
22
+ of this software and associated documentation files (the "Software"), to deal
23
+ in the Software without restriction, including without limitation the rights
24
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
25
+ copies of the Software, and to permit persons to whom the Software is
26
+ furnished to do so, subject to the following conditions:
27
+
28
+ The above copyright notice and this permission notice shall be included in all
29
+ copies or substantial portions of the Software.
30
+
31
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
32
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
33
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
34
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
35
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
36
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
37
+ SOFTWARE.
@@ -0,0 +1,40 @@
1
+ # lithermes
2
+
3
+ Hermes-native workflow tools for plan-first execution, evidence ledgers, and
4
+ first-class Hermes skills:
5
+
6
+ - `/lit-plan` and `/litwork-plan` create durable plans in `plans/`, then forward a
7
+ goal bootstrap to the Hermes agent instead of stopping at plan creation.
8
+ - `/lit-loop` and `/litwork-loop` create run state under
9
+ `.hermes/lithermes/runs/` and dispatch the task back to the Hermes agent.
10
+ - `/start-work` opens or dry-runs a plan against a workspace.
11
+ - The `pre_llm_call` hook injects an Litwork directive when the user says
12
+ `lit` or `litwork`. Hermes has no model-facing goal tools, so a direct
13
+ `lit <task>` (and the /lit command) binds the native standing `/goal` via the
14
+ session goal manager; criteria + evidence use the durable `goal_*` tools.
15
+ - Explicit skills are available as:
16
+ `lithermes:ai-slop-remover`, `lithermes:comment-checker`,
17
+ `lithermes:debugging`, `lithermes:frontend-ui-ux`, `lithermes:lsp`,
18
+ `lithermes:programming`, `lithermes:refactor`,
19
+ `lithermes:remove-ai-slops`, `lithermes:review-work`,
20
+ `lithermes:rules`, `lithermes:start-work`, `lithermes:lit-plan`,
21
+ `lithermes:litgoal`, and `lithermes:litwork`.
22
+ - Delegation fans lanes out through the native `delegate_task` tool (children
23
+ run in parallel, the parent blocks for all); there is no named-agent registry
24
+ and no per-child model selection.
25
+
26
+ Enable with:
27
+
28
+ ```yaml
29
+ plugins:
30
+ enabled:
31
+ - lithermes
32
+ ```
33
+
34
+ ## Reference
35
+
36
+ The bundled workflow reference is adapted for LitHermes command names and
37
+ Hermes gateway behavior. LitHermes runs entirely on Hermes-native primitives
38
+ (`delegate_task`, the durable `goal_*` tools, and the `pre_llm_call` /
39
+ `subagent_stop` / `on_session_start` hooks) and ships no external
40
+ prompt-runtime installer in the plugin payload.