lazyclaude-ai 0.1.17 → 0.2.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.
- package/CHANGELOG.md +23 -1
- package/README.md +58 -19
- package/README_ko-KR.md +59 -19
- package/RELEASE_CHECKLIST.md +30 -10
- package/bin/lazyclaude-ai.js +11 -21
- package/cover.png +0 -0
- package/docs/agents.md +16 -0
- package/docs/hooks.md +17 -3
- package/docs/migration.md +32 -3
- package/docs/workflow-compatibility-audit.md +41 -5
- package/package.json +1 -2
- package/plugins/lazyclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/lazyclaude/agents/librarian-researcher.md +4 -0
- package/plugins/lazyclaude/agents/oracle-verifier.md +4 -0
- package/plugins/lazyclaude/agents/qa-runner.md +4 -0
- package/plugins/lazyclaude/agents/quality-reviewer.md +5 -0
- package/plugins/lazyclaude/bin/lazyclaude-hook.js +8 -1
- package/plugins/lazyclaude/bin/lazyclaude-hud.js +11 -18
- package/plugins/lazyclaude/commands/review-work.md +35 -0
- package/plugins/lazyclaude/commands/start-work.md +15 -0
- package/plugins/lazyclaude/commands/ultragoal.md +30 -0
- package/plugins/lazyclaude/commands/ulw-loop.md +16 -0
- package/plugins/lazyclaude/commands/ulw-plan.md +13 -0
- package/plugins/lazyclaude/lib/hud-accent-palette.mjs +26 -0
- package/plugins/lazyclaude/lib/ultragoal/cli.mjs +266 -0
- package/plugins/lazyclaude/lib/ultragoal/ledger.mjs +12 -0
- package/plugins/lazyclaude/lib/ultragoal/paths.mjs +7 -0
- package/plugins/lazyclaude/lib/ultragoal/state.mjs +52 -0
- package/plugins/lazyclaude/skills/review-work/SKILL.md +255 -38
- package/plugins/lazyclaude/skills/start-work/SKILL.md +32 -7
- package/plugins/lazyclaude/skills/ultragoal/SKILL.md +181 -59
- package/plugins/lazyclaude/skills/ulw-loop/SKILL.md +27 -9
- package/plugins/lazyclaude/skills/ulw-plan/SKILL.md +26 -8
- package/scripts/doctor.mjs +14 -1
- package/scripts/qa-portable-install.sh +16 -3
- package/REFERENCE.md +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.0 - 2026-06-03
|
|
4
|
+
|
|
5
|
+
- Align the package and Claude plugin manifests to `lazyclaude-ai@0.2.0` for
|
|
6
|
+
the workflow parity release candidate.
|
|
7
|
+
- Add the `review-work` 5-lane review route and document its goal/constraint
|
|
8
|
+
verification, hands-on QA execution, code quality, security, and local-first
|
|
9
|
+
context mining lanes.
|
|
10
|
+
- Add the `ultragoal` CLI/runtime surface for durable criteria, evidence,
|
|
11
|
+
checkpoints, steering, and review blocker records under `.omo/ultragoal/`.
|
|
12
|
+
- Keep the release boundary explicit: this version is prepared for verification
|
|
13
|
+
and publication approval, but no npm publish or marketplace publication is claimed
|
|
14
|
+
here.
|
|
15
|
+
|
|
16
|
+
## 0.1.18 - 2026-06-02
|
|
17
|
+
|
|
18
|
+
- Shorten the HUD into compact HUD bars with a three-cell context gauge and
|
|
19
|
+
two-cell rate-limit gauges for tighter Claude Code status-line space.
|
|
20
|
+
- Replace muted installer choices with vivid HUD color choices and shared
|
|
21
|
+
mini-HUD previews for all ten brand accent themes.
|
|
22
|
+
- Apply the selected accent as a broader brand accent across separators,
|
|
23
|
+
labels, brackets, reset text, and git metadata.
|
|
24
|
+
|
|
3
25
|
## 0.1.17 - 2026-06-02
|
|
4
26
|
|
|
5
27
|
- Render a dense bracketed context bar in the HUD, for example
|
|
@@ -65,7 +87,7 @@
|
|
|
65
87
|
checks without requiring install state.
|
|
66
88
|
- Align package, plugin, README, HUD examples, release checklist, and cover image
|
|
67
89
|
generation to `lazyclaude-ai@0.1.11`.
|
|
68
|
-
- Refresh
|
|
90
|
+
- Refresh README, reference metadata, and workflow
|
|
69
91
|
compatibility audit wording.
|
|
70
92
|
- Deepen trigger-specific hook routing for `$ulw-plan`, `$ulw-loop`, and
|
|
71
93
|
`$start-work`, with safer post-edit diagnostic guidance.
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
<p align="center">
|
|
11
11
|
<img src="https://img.shields.io/badge/npm-lazyclaude--ai-cb3837" />
|
|
12
|
-
<img src="https://img.shields.io/badge/version-0.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.2.0-2ea44f" />
|
|
13
13
|
<img src="https://img.shields.io/badge/Claude%20Code-plugin-blueviolet" />
|
|
14
14
|
<img src="https://img.shields.io/badge/license-MIT-blue" />
|
|
15
15
|
</p>
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
> `lazyclaude@lazyclaude-ai`, so normal `claude` launches can load the
|
|
23
23
|
> LazyClaude skills and hooks without a long `--plugin-dir` command.
|
|
24
24
|
|
|
25
|
-
This checkout is prepared as `lazyclaude-ai@0.
|
|
26
|
-
convenience. The repo can remain
|
|
25
|
+
This checkout is prepared as `lazyclaude-ai@0.2.0` for personal install
|
|
26
|
+
convenience. The repo can remain quiet; preparing npm package metadata here does
|
|
27
27
|
not imply public repo promotion, marketplace publication, or advertisement.
|
|
28
|
-
Future package releases still require explicit user approval.
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
Future package releases still require explicit user approval. The v0.2.0
|
|
29
|
+
workflow parity materials describe LazyClaude in its own terms and do not claim
|
|
30
|
+
that npm publication has completed.
|
|
31
31
|
|
|
32
32
|
## Features
|
|
33
33
|
|
|
@@ -35,9 +35,16 @@ its own terms.
|
|
|
35
35
|
- **ULW prompt hooks** - type `ulw`, `ultrawork`, `$ulw-plan`, or `$ulw-loop`
|
|
36
36
|
- **Deep interview mode** - type `/deep-interview` or `$deep-interview` to
|
|
37
37
|
turn broad intent into a spec before planning or implementation
|
|
38
|
+
- **v0.2.0 workflow parity** - adds `review-work` 5-lane review discipline and
|
|
39
|
+
ultragoal runtime docs without claiming a package publication has completed
|
|
40
|
+
- **5-lane review** - `/review-work` checks goal/constraint verification,
|
|
41
|
+
hands-on QA execution, code quality, security, and local-first context mining
|
|
38
42
|
- **Native goal guidance** - ULW context points Claude toward `/goal` or
|
|
39
43
|
model-facing `get_goal`, `create_goal`, and delayed `update_goal` when those
|
|
40
44
|
surfaces exist, and gives a clear fallback when goal tools are unavailable
|
|
45
|
+
- **Ultragoal CLI/state** - `plugins/lazyclaude/lib/ultragoal/` records durable
|
|
46
|
+
criteria, evidence, checkpoints, steering, and review blockers under
|
|
47
|
+
`.omo/ultragoal/`
|
|
41
48
|
- **Dynamic workflow/worktree guidance** - large or parallel tasks are steered
|
|
42
49
|
toward Claude Code Dynamic workflow orchestration and Dynamic worktree
|
|
43
50
|
isolation
|
|
@@ -53,8 +60,9 @@ its own terms.
|
|
|
53
60
|
- **MCP and LSP helpers** - plugin-local stdio MCP plus TypeScript-family LSP doctor
|
|
54
61
|
- **LazyClaude HUD** - npm install configures a compact Claude Code statusLine
|
|
55
62
|
based on `pretty-claude-hud`, branded as `[💤LAZYCLAUDE vX.Y.Z]`, with
|
|
56
|
-
install-time color selection, live previews,
|
|
57
|
-
low-usage rate-limit bars,
|
|
63
|
+
install-time vivid color selection, live mini-HUD previews, compact context
|
|
64
|
+
bars, visible low-usage rate-limit bars, broader brand accent coverage, and
|
|
65
|
+
spaced reset countdowns
|
|
58
66
|
- **Safe uninstall** - removes only LazyClaude-managed state
|
|
59
67
|
|
|
60
68
|
## Quick Start
|
|
@@ -66,8 +74,8 @@ npx --yes lazyclaude-ai install
|
|
|
66
74
|
```
|
|
67
75
|
|
|
68
76
|
During an interactive `npx` install, LazyClaude shows every HUD brand color as
|
|
69
|
-
a live terminal preview and writes the selected accent into the managed
|
|
70
|
-
`statusLine` command. Animated installs also use colored setup, plugin,
|
|
77
|
+
a vivid live terminal preview and writes the selected accent into the managed
|
|
78
|
+
Claude `statusLine` command. Animated installs also use colored setup, plugin,
|
|
71
79
|
marketplace, registry, and cache labels so progress is easier to scan.
|
|
72
80
|
Noninteractive installs keep deterministic plain `INSTALL_STEP` lines.
|
|
73
81
|
|
|
@@ -80,7 +88,7 @@ install command works:
|
|
|
80
88
|
|
|
81
89
|
```bash
|
|
82
90
|
cd /tmp
|
|
83
|
-
npx --yes lazyclaude-ai@0.
|
|
91
|
+
npx --yes lazyclaude-ai@0.2.0 install
|
|
84
92
|
```
|
|
85
93
|
|
|
86
94
|
Validate the installed plugin:
|
|
@@ -93,14 +101,16 @@ The installer also sets Claude Code's `statusLine` command to the packaged
|
|
|
93
101
|
LazyClaude HUD. A typical no-color render starts like:
|
|
94
102
|
|
|
95
103
|
```text
|
|
96
|
-
[💤LAZYCLAUDE v0.
|
|
104
|
+
[💤LAZYCLAUDE v0.2.0] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
97
105
|
```
|
|
98
106
|
|
|
99
107
|
The `↻` suffix is a compact rate-limit reset countdown. It is separated from
|
|
100
108
|
the percentage for readability, and low non-zero percentages still get a
|
|
101
|
-
partial bar glyph instead of looking empty.
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
partial bar glyph instead of looking empty. The context bar uses three cells
|
|
110
|
+
and the rate-limit bars use two cells so the HUD stays tight in Claude Code's
|
|
111
|
+
status-line space. Claude Code reports reset windows as epoch seconds, and
|
|
112
|
+
LazyClaude also accepts ISO reset timestamps for compatibility with test
|
|
113
|
+
fixtures and older status-line helpers.
|
|
104
114
|
|
|
105
115
|
To override the accent without the picker, set `LAZYCLAUDE_HUD_ACCENT` to one
|
|
106
116
|
of `cyan`, `blue`, `teal`, `green`, `lavender`, `rose`, `gold`, `orange`,
|
|
@@ -164,6 +174,10 @@ $ulw-loop <what you want executed with evidence>
|
|
|
164
174
|
/ulw-loop <what you want executed with evidence>
|
|
165
175
|
$deep-interview <what needs clarification>
|
|
166
176
|
/deep-interview <what needs clarification>
|
|
177
|
+
$review-work <scope to review>
|
|
178
|
+
/review-work <scope to review>
|
|
179
|
+
$ultragoal <goal operation>
|
|
180
|
+
/ultragoal <goal operation>
|
|
167
181
|
$start-work plans/lazyclaude-retrofit.md
|
|
168
182
|
/start-work plans/lazyclaude-retrofit.md
|
|
169
183
|
```
|
|
@@ -192,6 +206,30 @@ Code's available orchestration surfaces: when `Workflow` is exposed, call the
|
|
|
192
206
|
`EnterWorktree`. If only the CLI surface is available for a fresh isolated lane,
|
|
193
207
|
use `claude --worktree <short-name> --tmux`.
|
|
194
208
|
|
|
209
|
+
For v0.2.0 workflow parity, `review-work` is the dedicated review route. It is a
|
|
210
|
+
5-lane review: goal/constraint verification, hands-on QA execution, code
|
|
211
|
+
quality, security, and local-first context mining. The lanes bind to
|
|
212
|
+
`oracle-verifier`, `qa-runner`, `quality-reviewer`, and `librarian-researcher`,
|
|
213
|
+
then aggregate evidence into a PASS, FAIL, or NEEDS-CONTEXT verdict. Manual-QA
|
|
214
|
+
channels must write artifacts, and every tmux session, server, port, browser
|
|
215
|
+
tab, or temp directory needs a cleanup receipt before review completion.
|
|
216
|
+
|
|
217
|
+
`ultragoal` is the durable local state route for long goals. The runtime lives
|
|
218
|
+
in `plugins/lazyclaude/lib/ultragoal/`, stores state in `.omo/ultragoal/`, and
|
|
219
|
+
keeps current docs/test reads authoritative when stale state disagrees with the
|
|
220
|
+
checkout. Common commands are:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
lazyclaude ultragoal create-goals --brief "<brief>" --json
|
|
224
|
+
lazyclaude ultragoal record-evidence --criterion <id> --status pass --json '{"artifact":"...","cleanup":"..."}'
|
|
225
|
+
lazyclaude ultragoal checkpoint --status active --note "<progress>" --json
|
|
226
|
+
lazyclaude ultragoal steer --kind scope --note "<what changed and why>" --json
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
`record-review-blockers` captures unresolved review findings. Malformed JSON,
|
|
230
|
+
unknown criteria, corrupt state, and invalid steering kinds return controlled
|
|
231
|
+
errors instead of silently reporting success.
|
|
232
|
+
|
|
195
233
|
Plain `ulw` is hook context activation. Claude may still show it as hook
|
|
196
234
|
guidance rather than a separate Skill tool invocation in history. Use visible
|
|
197
235
|
namespaced commands when you want explicit LazyClaude skill activation:
|
|
@@ -200,6 +238,8 @@ namespaced commands when you want explicit LazyClaude skill activation:
|
|
|
200
238
|
/lazyclaude:ulw-loop <what you want executed with evidence>
|
|
201
239
|
/lazyclaude:ulw-plan <what you want planned>
|
|
202
240
|
/lazyclaude:deep-interview <what needs clarification>
|
|
241
|
+
/lazyclaude:review-work <scope to review>
|
|
242
|
+
/lazyclaude:ultragoal <goal operation>
|
|
203
243
|
/lazyclaude:start-work plans/lazyclaude-retrofit.md
|
|
204
244
|
```
|
|
205
245
|
|
|
@@ -290,7 +330,6 @@ version probe evidence instead of failing mysteriously.
|
|
|
290
330
|
| MCP | `plugins/lazyclaude/.mcp.json` |
|
|
291
331
|
| LSP | `plugins/lazyclaude/.lsp.json` |
|
|
292
332
|
|
|
293
|
-
See `README_ko-KR.md` for Korean setup notes, `
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
for release notes.
|
|
333
|
+
See `README_ko-KR.md` for Korean setup notes, `docs/migration.md` for the
|
|
334
|
+
workflow migration table, `docs/workflow-compatibility-audit.md` for the current
|
|
335
|
+
compatibility audit, and `CHANGELOG.md` for release notes.
|
package/README_ko-KR.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</p>
|
|
10
10
|
<p align="center">
|
|
11
11
|
<img src="https://img.shields.io/badge/npm-lazyclaude--ai-cb3837" />
|
|
12
|
-
<img src="https://img.shields.io/badge/version-0.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.2.0-2ea44f" />
|
|
13
13
|
<img src="https://img.shields.io/badge/Claude%20Code-plugin-blueviolet" />
|
|
14
14
|
<img src="https://img.shields.io/badge/license-MIT-blue" />
|
|
15
15
|
</p>
|
|
@@ -26,13 +26,12 @@
|
|
|
26
26
|
> 설치되므로, 매번 긴 `--plugin-dir` 없이 일반 `claude` 실행에서
|
|
27
27
|
> LazyClaude skill과 hook을 불러올 수 있습니다.
|
|
28
28
|
|
|
29
|
-
현재 checkout은 `lazyclaude-ai@0.
|
|
30
|
-
빠르게 설치하기 위한 개인용
|
|
31
|
-
|
|
32
|
-
등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
33
|
-
진행합니다.
|
|
34
|
-
|
|
35
|
-
표현으로 정리되어 있습니다.
|
|
29
|
+
현재 checkout은 `lazyclaude-ai@0.2.0` 배포 준비용으로 정리되어 있습니다. 목적은
|
|
30
|
+
다른 PC에서도 빠르게 설치하기 위한 개인용 package metadata를 갖추는 것입니다.
|
|
31
|
+
npm package metadata를 준비했다고 해서 홍보, 공개 저장소 운영, Claude
|
|
32
|
+
marketplace 등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
33
|
+
승인 후에 진행합니다. v0.2.0 workflow parity material은 LazyClaude 자체의
|
|
34
|
+
표현으로 정리되어 있으며, npm publish가 완료됐다고 주장하지 않습니다.
|
|
36
35
|
|
|
37
36
|
## 기능
|
|
38
37
|
|
|
@@ -40,9 +39,17 @@ v0.1.17 release material은 source-origin-free 상태이며 LazyClaude 자체의
|
|
|
40
39
|
- **ULW prompt hook** - `ulw`, `ultrawork`, `$ulw-plan`, `$ulw-loop` 트리거
|
|
41
40
|
- **Deep interview mode** - `/deep-interview` 또는 `$deep-interview`로 넓고
|
|
42
41
|
모호한 의도를 먼저 spec으로 정리한 뒤 계획/구현으로 넘김
|
|
42
|
+
- **v0.2.0 workflow parity** - package publish가 끝났다고 말하지 않으면서
|
|
43
|
+
`review-work` 5-lane review discipline과 ultragoal runtime 문서를 추가
|
|
44
|
+
- **5-lane review** - `/review-work`가 goal/constraint verification,
|
|
45
|
+
hands-on QA execution, code quality, security, local-first context mining을
|
|
46
|
+
한 번에 점검
|
|
43
47
|
- **Native goal guidance** - Claude Code가 `/goal` 또는 `get_goal`,
|
|
44
48
|
`create_goal`, `update_goal` 같은 goal surface를 제공하면 이를 우선
|
|
45
49
|
사용하도록 유도하고, goal tools are unavailable 상황의 fallback도 명시
|
|
50
|
+
- **Ultragoal CLI/state** - `plugins/lazyclaude/lib/ultragoal/`가 durable
|
|
51
|
+
criteria, evidence, checkpoint, steering, review blocker를 `.omo/ultragoal/`
|
|
52
|
+
아래에 기록
|
|
46
53
|
- **Dynamic workflow/worktree guidance** - 크거나 병렬적인 작업은 Claude
|
|
47
54
|
Code Dynamic workflow와 Dynamic worktree 격리 쪽으로 유도
|
|
48
55
|
- **Claude skills** - LazyClaude 스타일을 더 풍부하게 옮긴 corpus:
|
|
@@ -57,8 +64,9 @@ v0.1.17 release material은 source-origin-free 상태이며 LazyClaude 자체의
|
|
|
57
64
|
- **MCP와 LSP helper** - plugin-local stdio MCP와 TypeScript 계열 LSP doctor
|
|
58
65
|
- **LazyClaude HUD** - npm install 시 `pretty-claude-hud` 기반의 compact
|
|
59
66
|
Claude Code statusLine을 `[💤LAZYCLAUDE vX.Y.Z]` 브랜드로 자동 설정하고,
|
|
60
|
-
설치 중 색상 선택, 즉시 미리보기,
|
|
61
|
-
비어 보이지 않는 rate-limit bar,
|
|
67
|
+
설치 중 눈에 잘 띄는 색상 선택, 즉시 mini-HUD 미리보기, compact context
|
|
68
|
+
bar, 낮은 사용량도 비어 보이지 않는 rate-limit bar, 더 넓은 brand accent
|
|
69
|
+
적용 범위, 간격이 있는 reset countdown을 제공
|
|
62
70
|
- **안전한 uninstall** - LazyClaude가 관리한 상태만 제거
|
|
63
71
|
|
|
64
72
|
## 빠른 시작
|
|
@@ -69,8 +77,8 @@ v0.1.17 release material은 source-origin-free 상태이며 LazyClaude 자체의
|
|
|
69
77
|
npx --yes lazyclaude-ai install
|
|
70
78
|
```
|
|
71
79
|
|
|
72
|
-
interactive `npx` 설치에서는 LazyClaude가 HUD brand color 후보를
|
|
73
|
-
터미널 색상으로 바로 보여주고, 선택한 accent를 Claude의 managed
|
|
80
|
+
interactive `npx` 설치에서는 LazyClaude가 HUD brand color 후보를 더 선명한
|
|
81
|
+
실제 터미널 색상으로 바로 보여주고, 선택한 accent를 Claude의 managed
|
|
74
82
|
`statusLine` command에 저장합니다. animated install에서는 setup, plugin,
|
|
75
83
|
marketplace, registry, cache label도 색상으로 구분해서 진행 상황을 더 쉽게
|
|
76
84
|
스캔할 수 있습니다. noninteractive install은 deterministic한 plain
|
|
@@ -85,7 +93,7 @@ checkout을 먼저 해석해서 `sh: lazyclaude-ai: command not found`로 실패
|
|
|
85
93
|
|
|
86
94
|
```bash
|
|
87
95
|
cd /tmp
|
|
88
|
-
npx --yes lazyclaude-ai@0.
|
|
96
|
+
npx --yes lazyclaude-ai@0.2.0 install
|
|
89
97
|
```
|
|
90
98
|
|
|
91
99
|
설치 상태를 확인합니다.
|
|
@@ -98,13 +106,15 @@ installer는 Claude Code의 `statusLine` command도 packaged LazyClaude HUD로
|
|
|
98
106
|
설정합니다. 색상을 제거한 예시는 다음처럼 시작합니다.
|
|
99
107
|
|
|
100
108
|
```text
|
|
101
|
-
[💤LAZYCLAUDE v0.
|
|
109
|
+
[💤LAZYCLAUDE v0.2.0] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
102
110
|
```
|
|
103
111
|
|
|
104
112
|
`↻` 표시는 rate-limit reset까지 남은 시간을 짧게 보여주는 countdown입니다.
|
|
105
113
|
percentage와는 한 칸 띄워서 읽기 쉽게 만들었고, 낮은 non-zero 사용량도
|
|
106
|
-
partial bar glyph로 표시되어 비어 보이지 않습니다.
|
|
107
|
-
|
|
114
|
+
partial bar glyph로 표시되어 비어 보이지 않습니다. context bar는 3칸,
|
|
115
|
+
rate-limit bar는 2칸으로 줄여 Claude Code status-line 공간을 덜 차지합니다.
|
|
116
|
+
Claude Code가 제공하는 epoch seconds 형태와 ISO timestamp 형태를 모두
|
|
117
|
+
해석합니다.
|
|
108
118
|
|
|
109
119
|
picker 없이 색상을 지정하려면 설치 전에 `LAZYCLAUDE_HUD_ACCENT`를
|
|
110
120
|
`cyan`, `blue`, `teal`, `green`, `lavender`, `rose`, `gold`, `orange`,
|
|
@@ -168,6 +178,10 @@ $ulw-loop <증거 기반으로 실행할 작업>
|
|
|
168
178
|
/ulw-loop <증거 기반으로 실행할 작업>
|
|
169
179
|
$deep-interview <명확화가 필요한 작업>
|
|
170
180
|
/deep-interview <명확화가 필요한 작업>
|
|
181
|
+
$review-work <검토할 범위>
|
|
182
|
+
/review-work <검토할 범위>
|
|
183
|
+
$ultragoal <goal operation>
|
|
184
|
+
/ultragoal <goal operation>
|
|
171
185
|
$start-work plans/lazyclaude-retrofit.md
|
|
172
186
|
/start-work plans/lazyclaude-retrofit.md
|
|
173
187
|
```
|
|
@@ -195,6 +209,30 @@ goal이 없을 때만 `create_goal`을 호출하며, `update_goal`은 검증 완
|
|
|
195
209
|
model-facing worktree를 필요로 하면 `EnterWorktree`를 사용합니다. CLI surface만
|
|
196
210
|
가능한 새 격리 lane에서는 `claude --worktree <short-name> --tmux`를 사용합니다.
|
|
197
211
|
|
|
212
|
+
v0.2.0 workflow parity에서 `review-work`는 전용 review route입니다. 5-lane
|
|
213
|
+
review는 goal/constraint verification, hands-on QA execution, code quality,
|
|
214
|
+
security, local-first context mining을 포함합니다. 각 lane은
|
|
215
|
+
`oracle-verifier`, `qa-runner`, `quality-reviewer`, `librarian-researcher`에
|
|
216
|
+
연결되고, 증거를 모아 PASS, FAIL, NEEDS-CONTEXT verdict로 정리합니다.
|
|
217
|
+
Manual-QA channels는 artifact를 남겨야 하며 tmux session, server, port,
|
|
218
|
+
browser tab, temp directory는 completion 전에 cleanup receipt를 남겨야 합니다.
|
|
219
|
+
|
|
220
|
+
`ultragoal`은 긴 목표를 위한 durable local state route입니다. runtime은
|
|
221
|
+
`plugins/lazyclaude/lib/ultragoal/`에 있고 state는 `.omo/ultragoal/` 아래에
|
|
222
|
+
남깁니다. stale state가 checkout과 어긋나면 current docs/test reads를
|
|
223
|
+
기준으로 판단합니다. 자주 쓰는 명령은 다음과 같습니다.
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
lazyclaude ultragoal create-goals --brief "<brief>" --json
|
|
227
|
+
lazyclaude ultragoal record-evidence --criterion <id> --status pass --json '{"artifact":"...","cleanup":"..."}'
|
|
228
|
+
lazyclaude ultragoal checkpoint --status active --note "<progress>" --json
|
|
229
|
+
lazyclaude ultragoal steer --kind scope --note "<what changed and why>" --json
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
`record-review-blockers`는 해결되지 않은 review finding을 기록합니다.
|
|
233
|
+
malformed JSON, unknown criterion, corrupt state, invalid steering kind는
|
|
234
|
+
성공처럼 보이지 않고 controlled error로 실패해야 합니다.
|
|
235
|
+
|
|
198
236
|
단순히 `ulw`라고 입력하는 것은 hook context activation입니다. Claude Code
|
|
199
237
|
history에는 별도 Skill tool invocation이 아니라 hook guidance로 보일 수
|
|
200
238
|
있습니다. 명시적인 LazyClaude skill activation을 보고 싶다면 namespaced
|
|
@@ -204,6 +242,8 @@ command를 사용합니다.
|
|
|
204
242
|
/lazyclaude:ulw-loop <증거 기반으로 실행할 작업>
|
|
205
243
|
/lazyclaude:ulw-plan <계획이 필요한 작업>
|
|
206
244
|
/lazyclaude:deep-interview <명확화가 필요한 작업>
|
|
245
|
+
/lazyclaude:review-work <검토할 범위>
|
|
246
|
+
/lazyclaude:ultragoal <goal operation>
|
|
207
247
|
/lazyclaude:start-work plans/lazyclaude-retrofit.md
|
|
208
248
|
```
|
|
209
249
|
|
|
@@ -296,6 +336,6 @@ probe evidence를 남깁니다.
|
|
|
296
336
|
| MCP | `plugins/lazyclaude/.mcp.json` |
|
|
297
337
|
| LSP | `plugins/lazyclaude/.lsp.json` |
|
|
298
338
|
|
|
299
|
-
영문 설명은 `README.md`,
|
|
300
|
-
|
|
301
|
-
`
|
|
339
|
+
영문 설명은 `README.md`, workflow migration 표는 `docs/migration.md`, 현재
|
|
340
|
+
compatibility audit은 `docs/workflow-compatibility-audit.md`, release notes는
|
|
341
|
+
`CHANGELOG.md`를 참고하세요.
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# LazyClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: `lazyclaude-ai@0.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
Status: `lazyclaude-ai@0.2.0` is the current release candidate for deep workflow parity.
|
|
4
|
+
`package.json` is aligned to `0.2.0`, and
|
|
5
|
+
`plugins/lazyclaude/.claude-plugin/plugin.json` is aligned to `0.2.0`.
|
|
6
|
+
|
|
7
|
+
This release carries the v0.2.0 workflow parity surfaces: `review-work` 5-lane
|
|
8
|
+
review, ultragoal runtime state, local-first context mining, Manual-QA channels,
|
|
9
|
+
cleanup receipts, and explicit publish boundary guidance. The package retains
|
|
10
|
+
the recent install, hook, and HUD work from `0.1.12`, `0.1.13`, `0.1.14`,
|
|
11
|
+
`0.1.15`, `0.1.16`, `0.1.17`, and `0.1.18`, while `0.2.0` is the next publishable target
|
|
10
12
|
when explicitly approved.
|
|
11
13
|
|
|
12
14
|
DO NOT publish a new version of LazyClaude, run `npm publish`, push release
|
|
@@ -24,17 +26,34 @@ public repo promotion, or a public launch campaign.
|
|
|
24
26
|
- `npm run qa:portable`
|
|
25
27
|
- `npm run pack:dry-run`
|
|
26
28
|
|
|
27
|
-
## Local
|
|
29
|
+
## Local Checkout Use
|
|
28
30
|
|
|
29
31
|
Use this track when testing from the current checkout:
|
|
30
32
|
|
|
31
33
|
1. Run `npm test`.
|
|
32
34
|
2. Run `npm run validate:plugin`.
|
|
33
35
|
3. Run `npm run qa:tmux`.
|
|
34
|
-
4.
|
|
36
|
+
4. Run `node bin/lazyclaude-ai.js ultragoal --help`.
|
|
37
|
+
5. Start Claude Code with `claude --plugin-dir ./plugins/lazyclaude`.
|
|
35
38
|
|
|
36
39
|
No npm publication is required for this track.
|
|
37
40
|
|
|
41
|
+
## v0.2.0 Workflow Parity Gates
|
|
42
|
+
|
|
43
|
+
Before requesting publication approval, confirm these artifacts from the current
|
|
44
|
+
checkout:
|
|
45
|
+
|
|
46
|
+
- `package.json` version is `0.2.0`.
|
|
47
|
+
- `plugins/lazyclaude/.claude-plugin/plugin.json` version is `0.2.0`.
|
|
48
|
+
- `plugins/lazyclaude/commands/review-work.md` documents the 5-lane review.
|
|
49
|
+
- `plugins/lazyclaude/commands/ultragoal.md` documents durable goal state.
|
|
50
|
+
- `plugins/lazyclaude/lib/ultragoal/` ships the runtime CLI/state modules.
|
|
51
|
+
- `node bin/lazyclaude-ai.js ultragoal --help` prints durable state commands.
|
|
52
|
+
- `npm pack --dry-run --json` includes runtime payloads and excludes local
|
|
53
|
+
`.omo/`, `.omc/`, and `evidence/` state.
|
|
54
|
+
- `.omo/ulw-loop/evidence/v020-red-contracts.txt` or equivalent RED evidence
|
|
55
|
+
exists for the workflow parity contracts before GREEN evidence.
|
|
56
|
+
|
|
38
57
|
## Fresh Machine NPM Install Use
|
|
39
58
|
|
|
40
59
|
Use this track after an approved npm package version exists:
|
|
@@ -66,7 +85,8 @@ Use this track only when the user explicitly approves making a new package
|
|
|
66
85
|
version installable through `npm`, `npx`, and `bunx`.
|
|
67
86
|
|
|
68
87
|
1. Confirm the target package name and version with the user.
|
|
69
|
-
2. Review `
|
|
88
|
+
2. Review `README.md`, `README_ko-KR.md`, `docs/migration.md`, and
|
|
89
|
+
`docs/workflow-compatibility-audit.md` for neutral release wording.
|
|
70
90
|
3. Run `npm whoami` and confirm the intended npm account.
|
|
71
91
|
4. Re-run the full local verification set from a clean checkout:
|
|
72
92
|
- `npm test`
|
package/bin/lazyclaude-ai.js
CHANGED
|
@@ -14,12 +14,14 @@ import { homedir } from "node:os";
|
|
|
14
14
|
import { dirname, join, resolve } from "node:path";
|
|
15
15
|
import { createInterface } from "node:readline/promises";
|
|
16
16
|
import { fileURLToPath } from "node:url";
|
|
17
|
+
import { HUD_ACCENT_THEMES, normalizeHudAccent, themeForAccent } from "../plugins/lazyclaude/lib/hud-accent-palette.mjs";
|
|
18
|
+
import { runUltragoalCli } from "../plugins/lazyclaude/lib/ultragoal/cli.mjs";
|
|
17
19
|
|
|
18
20
|
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
19
21
|
const packageJson = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
|
20
22
|
const version = packageJson.version;
|
|
21
23
|
|
|
22
|
-
const usage = `Usage: lazyclaude-ai [--dry-run] <install|doctor|path|run|update|uninstall> [...args]
|
|
24
|
+
const usage = `Usage: lazyclaude-ai [--dry-run] <install|doctor|path|run|update|uninstall|ultragoal> [...args]
|
|
23
25
|
lazyclaude-ai --version
|
|
24
26
|
|
|
25
27
|
Commands:
|
|
@@ -27,6 +29,7 @@ Commands:
|
|
|
27
29
|
doctor Validate the installed LazyClaude plugin path.
|
|
28
30
|
path Print the installed Claude plugin path.
|
|
29
31
|
run -- ... Run Claude Code after the global plugin install.
|
|
32
|
+
ultragoal Manage ultragoal runtime state and evidence.
|
|
30
33
|
update Reinstall this package version and refresh the Claude plugin registry.
|
|
31
34
|
uninstall Remove LazyClaude-managed install state.
|
|
32
35
|
`;
|
|
@@ -63,19 +66,7 @@ const knownExternalLspPlugins = {
|
|
|
63
66
|
"gopls-lsp@claude-plugins-official": ["gopls"],
|
|
64
67
|
};
|
|
65
68
|
const spinnerFrames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
66
|
-
const hudAccentThemes =
|
|
67
|
-
{ name: "cyan", code: 81, mood: "LazyClaude default" },
|
|
68
|
-
{ name: "blue", code: 74, mood: "calm terminal" },
|
|
69
|
-
{ name: "teal", code: 66, mood: "muted productivity" },
|
|
70
|
-
{ name: "green", code: 71, mood: "classic shell" },
|
|
71
|
-
{ name: "lavender", code: 139, mood: "quiet purple" },
|
|
72
|
-
{ name: "rose", code: 132, mood: "soft contrast" },
|
|
73
|
-
{ name: "gold", code: 136, mood: "warm focus" },
|
|
74
|
-
{ name: "orange", code: 173, mood: "high energy" },
|
|
75
|
-
{ name: "slate", code: 60, mood: "low saturation" },
|
|
76
|
-
{ name: "gray", code: 245, mood: "monochrome" },
|
|
77
|
-
];
|
|
78
|
-
const hudAccentNames = new Set(hudAccentThemes.map((theme) => theme.name));
|
|
69
|
+
const hudAccentThemes = HUD_ACCENT_THEMES;
|
|
79
70
|
|
|
80
71
|
const printUsage = () => {
|
|
81
72
|
process.stderr.write(usage);
|
|
@@ -161,12 +152,8 @@ const writeClaudeSettings = (settings, home = claudeHome()) => {
|
|
|
161
152
|
writeFileSync(settingsPath, `${JSON.stringify(settings, null, 2)}\n`);
|
|
162
153
|
};
|
|
163
154
|
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
return hudAccentNames.has(normalized) ? normalized : "cyan";
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
const hudAccentPreview = (theme) => `\x1b[38;5;${theme.code}m[💤LAZYCLAUDE v${version}]\x1b[0m`;
|
|
155
|
+
const hudAccentPreview = (theme) =>
|
|
156
|
+
`\x1b[38;5;${theme.code}m[💤LAZYCLAUDE v${version}] | O4.8 │ ctx [▌░░] 18%/1000k │ 5h [▏░] 4%\x1b[0m`;
|
|
170
157
|
|
|
171
158
|
const shouldPromptHudAccent = () => {
|
|
172
159
|
if (process.env.LAZYCLAUDE_HUD_ACCENT_PROMPT === "1") return true;
|
|
@@ -195,7 +182,7 @@ const chooseHudAccent = async () => {
|
|
|
195
182
|
if (trimmed && selected === "cyan" && trimmed !== "cyan" && byIndex === undefined) {
|
|
196
183
|
process.stdout.write("HUD_COLOR_WARNING: unknown color; using cyan\n");
|
|
197
184
|
}
|
|
198
|
-
process.stdout.write(`HUD_COLOR_SELECTED: ${selected} ${hudAccentPreview(
|
|
185
|
+
process.stdout.write(`HUD_COLOR_SELECTED: ${selected} ${hudAccentPreview(themeForAccent(selected))}\n`);
|
|
199
186
|
return selected;
|
|
200
187
|
} finally {
|
|
201
188
|
rl.close();
|
|
@@ -631,6 +618,9 @@ const main = async () => {
|
|
|
631
618
|
case "run":
|
|
632
619
|
runClaude(parsed);
|
|
633
620
|
break;
|
|
621
|
+
case "ultragoal":
|
|
622
|
+
process.exit(runUltragoalCli(parsed.rest));
|
|
623
|
+
break;
|
|
634
624
|
case "uninstall":
|
|
635
625
|
uninstall(parsed);
|
|
636
626
|
break;
|
package/cover.png
CHANGED
|
Binary file
|
package/docs/agents.md
CHANGED
|
@@ -16,6 +16,22 @@ The planner is deliberately constrained because the safest Claude Code retrofit
|
|
|
16
16
|
keeps planning separate from mutation. Executor and QA agents can act only
|
|
17
17
|
inside the plan and evidence contract.
|
|
18
18
|
|
|
19
|
+
## Review Work Routing
|
|
20
|
+
|
|
21
|
+
The v0.2.0 workflow parity review route uses five evidence lanes:
|
|
22
|
+
|
|
23
|
+
| Review lane | Agent routing | Required evidence |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| goal/constraint verification | `oracle-verifier` with `review-work` and `rules` | Goal, non-goals, acceptance criteria, publish boundary, and constraints checked against current docs/test reads. |
|
|
26
|
+
| hands-on QA execution | `qa-runner` with `start-work` and `review-work` | Automated test output, Manual-QA channels, artifacts, and cleanup receipt. |
|
|
27
|
+
| code quality | `quality-reviewer` with `review-work` and `programming` | Findings-first code review focused on regressions and maintainability. |
|
|
28
|
+
| security | `quality-reviewer` with `review-work` and `programming` | Prompt injection, malformed input, local state, and unsafe command handling risks. |
|
|
29
|
+
| local-first context mining | `librarian-researcher` with `rules` | Local checkout, docs, tests, and ledgers checked before external references. |
|
|
30
|
+
|
|
31
|
+
The aggregate verdict is PASS, FAIL, or NEEDS-CONTEXT. Broad review work may
|
|
32
|
+
use Dynamic workflow when Claude Code exposes it; isolated edits can use
|
|
33
|
+
`claude --worktree <short-name> --tmux` when a separate checkout is required.
|
|
34
|
+
|
|
19
35
|
## Local Use
|
|
20
36
|
|
|
21
37
|
Load the plugin from this checkout:
|
package/docs/hooks.md
CHANGED
|
@@ -28,6 +28,12 @@ $ulw-loop
|
|
|
28
28
|
$deep-interview
|
|
29
29
|
/deep-interview
|
|
30
30
|
/lazyclaude:deep-interview
|
|
31
|
+
$review-work
|
|
32
|
+
/review-work
|
|
33
|
+
/lazyclaude:review-work
|
|
34
|
+
$ultragoal
|
|
35
|
+
/ultragoal
|
|
36
|
+
/lazyclaude:ultragoal
|
|
31
37
|
$start-work
|
|
32
38
|
/start-work
|
|
33
39
|
/lazyclaude:start-work
|
|
@@ -79,12 +85,20 @@ These are real Claude Code command files in `plugins/lazyclaude/commands/`.
|
|
|
79
85
|
before `/ulw-plan` when a request lacks non-goals, decision boundaries, or
|
|
80
86
|
acceptance criteria.
|
|
81
87
|
|
|
88
|
+
`/review-work` and `$review-work` load `/lazyclaude:review-work` /
|
|
89
|
+
`Skill(review-work)`. That route runs the v0.2.0 workflow parity 5-lane review:
|
|
90
|
+
goal/constraint verification, hands-on QA execution, code quality, security,
|
|
91
|
+
and local-first context mining. `/ultragoal` and `$ultragoal` load
|
|
92
|
+
`/lazyclaude:ultragoal` / `Skill(ultragoal)` for durable local goal state and
|
|
93
|
+
the ultragoal CLI.
|
|
94
|
+
|
|
82
95
|
## Safety
|
|
83
96
|
|
|
84
97
|
Hooks parse JSON from stdin and return JSON to Claude Code. The hook does not
|
|
85
|
-
execute prompt text and does not echo prompt text into the returned context
|
|
86
|
-
|
|
87
|
-
a shell command through the hook
|
|
98
|
+
execute prompt text and does not echo prompt text into the returned context;
|
|
99
|
+
prompt text is not executed or echoed. The ultrawork detector returns constant
|
|
100
|
+
workflow guidance, so a prompt cannot become a shell command through the hook
|
|
101
|
+
response. Malformed hook input and malformed ultragoal JSON should surface a controlled error instead of a misleading success response.
|
|
88
102
|
|
|
89
103
|
## Local Smoke
|
|
90
104
|
|
package/docs/migration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# LazyClaude Migration
|
|
2
2
|
|
|
3
|
-
LazyClaude maps
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
LazyClaude maps workflow disciplines into Claude Code-native surfaces. The goal
|
|
4
|
+
is behavior parity where Claude Code exposes the same kind of surface, and a
|
|
5
|
+
conservative local fallback where it does not.
|
|
6
6
|
|
|
7
7
|
| Reference surface | Claude Code surface | LazyClaude implementation |
|
|
8
8
|
| --- | --- | --- |
|
|
@@ -11,6 +11,8 @@ of surface, and a conservative local fallback where it does not.
|
|
|
11
11
|
| Ultrawork plan mode | Claude Code skill plus planner agent | `ulw-plan` and `prometheus-planner` |
|
|
12
12
|
| Clarification interview | Claude Code skill plus command | `deep-interview` asks one Socratic question per round, persists state under `deep-interview/`, and hands a spec to planning or execution |
|
|
13
13
|
| Execution loop | Claude Code skill plus executor agent | `ulw-loop`, `start-work`, and `boulder-executor` |
|
|
14
|
+
| 5-lane review | Claude Code command, skill, and agents | `review-work` runs goal/constraint verification, hands-on QA execution, code quality, security, and local-first context mining |
|
|
15
|
+
| Durable goal runtime | Package CLI plus local state | `ultragoal` writes criteria, evidence, checkpoints, steering, and blockers under `.omo/ultragoal/` |
|
|
14
16
|
| Goal-tool guidance | Claude Code native goal surface | `/goal` when user-selected, or model-facing `get_goal`, `create_goal`, and verified-final `update_goal` guidance when exposed |
|
|
15
17
|
| Parallel orchestration | Claude Code Dynamic workflow and Dynamic worktree surfaces | Call `Workflow` for broad independent work when exposed; use `EnterWorktree` or the CLI worktree path for risky or parallel edits |
|
|
16
18
|
| Hooks | Claude Code hooks | `plugins/lazyclaude/hooks/hooks.json` |
|
|
@@ -70,6 +72,33 @@ execution, bind each lane to criteria and evidence, and use `EnterWorktree` for
|
|
|
70
72
|
isolated model-facing worktree lanes. When only the CLI surface is available,
|
|
71
73
|
the concrete isolated-lane launch form is `claude --worktree <short-name> --tmux`.
|
|
72
74
|
|
|
75
|
+
## v0.2.0 Review And Ultragoal Parity
|
|
76
|
+
|
|
77
|
+
The v0.2.0 workflow parity surface is local-first and evidence-bound. It does
|
|
78
|
+
not imply that an npm publish or remote marketplace publication has happened.
|
|
79
|
+
`/review-work`, `$review-work`, and `/lazyclaude:review-work` run the 5-lane
|
|
80
|
+
review contract: goal/constraint verification, hands-on QA execution, code
|
|
81
|
+
quality, security, and local-first context mining. Manual-QA channels must
|
|
82
|
+
produce artifacts, and all spawned sessions, servers, ports, browser tabs, and
|
|
83
|
+
temp directories need a cleanup receipt before completion.
|
|
84
|
+
|
|
85
|
+
`/ultragoal`, `$ultragoal`, and `/lazyclaude:ultragoal` bind long work to the
|
|
86
|
+
ultragoal runtime in `plugins/lazyclaude/lib/ultragoal/`. The local state lives
|
|
87
|
+
under `.omo/ultragoal/`, and current docs/test reads are the authority if stale
|
|
88
|
+
state contradicts the checkout.
|
|
89
|
+
|
|
90
|
+
Use these CLI commands for durable state:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
lazyclaude ultragoal create-goals --brief "<brief>" --json
|
|
94
|
+
lazyclaude ultragoal record-evidence --criterion <id> --status pass --json '{"artifact":"...","cleanup":"..."}'
|
|
95
|
+
lazyclaude ultragoal checkpoint --status active --note "<progress>" --json
|
|
96
|
+
lazyclaude ultragoal steer --kind scope --note "<what changed and why>" --json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Malformed evidence JSON, unknown criteria, corrupt state, or invalid steering
|
|
100
|
+
kinds must fail with a controlled error.
|
|
101
|
+
|
|
73
102
|
If OMC/omc is already installed in Claude Code, keep it disabled or start a
|
|
74
103
|
separate Claude Code session without OMC while testing LazyClaude. This repo no
|
|
75
104
|
longer ships a root marketplace skeleton; direct `--plugin-dir` loading avoids
|