lazyclaude-ai 0.1.3 → 0.1.4
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 +23 -8
- package/README_ko-KR.md +22 -7
- package/RELEASE_CHECKLIST.md +10 -0
- package/cover.png +0 -0
- package/docs/hooks.md +5 -2
- package/package.json +1 -1
- package/plugins/lazyclaude/bin/lazyclaude-hook.js +14 -9
package/README.md
CHANGED
|
@@ -48,6 +48,17 @@ Future package releases still require explicit user approval.
|
|
|
48
48
|
npx --yes lazyclaude-ai install
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
If you are currently inside this repository checkout, which has the same
|
|
52
|
+
package name as the registry package, `npx --yes lazyclaude-ai@0.1.3 install`
|
|
53
|
+
can resolve the local same-name source checkout and fail with
|
|
54
|
+
`sh: lazyclaude-ai: command not found`. From a fresh directory, the normal
|
|
55
|
+
install command works:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cd /tmp
|
|
59
|
+
npx --yes lazyclaude-ai@0.1.3 install
|
|
60
|
+
```
|
|
61
|
+
|
|
51
62
|
Validate the installed plugin:
|
|
52
63
|
|
|
53
64
|
```bash
|
|
@@ -68,8 +79,9 @@ npm install -g lazyclaude-ai
|
|
|
68
79
|
lazyclaude install
|
|
69
80
|
```
|
|
70
81
|
|
|
71
|
-
If you need the explicit `npm exec` form
|
|
72
|
-
confuse the registry package with
|
|
82
|
+
If you need the explicit `npm exec` form while standing inside the source
|
|
83
|
+
checkout, use a fresh prefix so npm does not confuse the registry package with
|
|
84
|
+
a same-name source checkout:
|
|
73
85
|
|
|
74
86
|
```bash
|
|
75
87
|
npm exec --prefix "$(mktemp -d)" --yes --package lazyclaude-ai -- lazyclaude install
|
|
@@ -111,9 +123,12 @@ $start-work plans/lazyclaude-retrofit.md
|
|
|
111
123
|
```
|
|
112
124
|
|
|
113
125
|
Expected behavior: LazyClaude's prompt hook adds `ULTRAWORK MODE ENABLED`
|
|
114
|
-
context
|
|
115
|
-
|
|
116
|
-
|
|
126
|
+
context and shows `LazyClaude ULW hook active` as a visible hook message. The
|
|
127
|
+
hook also tells Claude to treat plain `ulw` as `/lazyclaude:ulw-loop` /
|
|
128
|
+
`Skill(ulw-loop)` semantics before ordinary task execution, then the matching
|
|
129
|
+
skill and agent instructions steer Claude toward test-first work, native goal
|
|
130
|
+
handling, manual QA evidence, cleanup receipts, and explicit approval before
|
|
131
|
+
future release steps.
|
|
117
132
|
|
|
118
133
|
LazyClaude does not auto-type `/goal` or send slash command text for you.
|
|
119
134
|
Instead, the hook and ULW skills add run-context guidance: use Claude Code's
|
|
@@ -123,9 +138,9 @@ completion or a genuine blocker. For large independent work, the guidance also
|
|
|
123
138
|
points Claude toward Dynamic workflow orchestration and Dynamic worktree
|
|
124
139
|
isolation.
|
|
125
140
|
|
|
126
|
-
Plain `ulw` is hook context activation
|
|
127
|
-
tool invocation in
|
|
128
|
-
you want explicit LazyClaude skill activation:
|
|
141
|
+
Plain `ulw` is hook context activation. Claude may still show it as hook
|
|
142
|
+
guidance rather than a separate Skill tool invocation in history. Use visible
|
|
143
|
+
namespaced commands when you want explicit LazyClaude skill activation:
|
|
129
144
|
|
|
130
145
|
```text
|
|
131
146
|
/lazyclaude:ulw-loop <what you want executed with evidence>
|
package/README_ko-KR.md
CHANGED
|
@@ -52,6 +52,17 @@
|
|
|
52
52
|
npx --yes lazyclaude-ai install
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
현재 위치가 이 저장소 checkout이면, registry package와 같은 package name을
|
|
56
|
+
가진 same-name source checkout 안에 있는 상태입니다. 이 경우
|
|
57
|
+
`npx --yes lazyclaude-ai@0.1.3 install`이 local checkout을 먼저 해석해서
|
|
58
|
+
`sh: lazyclaude-ai: command not found`로 실패할 수 있습니다. 새 폴더에서는
|
|
59
|
+
일반 설치 명령이 정상 동작합니다.
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
cd /tmp
|
|
63
|
+
npx --yes lazyclaude-ai@0.1.3 install
|
|
64
|
+
```
|
|
65
|
+
|
|
55
66
|
설치 상태를 확인합니다.
|
|
56
67
|
|
|
57
68
|
```bash
|
|
@@ -73,7 +84,8 @@ lazyclaude install
|
|
|
73
84
|
```
|
|
74
85
|
|
|
75
86
|
현재 checkout처럼 package 이름이 같은 폴더 안에서 `npm exec`를 직접 쓸
|
|
76
|
-
때는
|
|
87
|
+
때는 registry package와 same-name source checkout이 섞이지 않도록 fresh
|
|
88
|
+
prefix를 주는 편이 안전합니다.
|
|
77
89
|
|
|
78
90
|
```bash
|
|
79
91
|
npm exec --prefix "$(mktemp -d)" --yes --package lazyclaude-ai -- lazyclaude install
|
|
@@ -115,9 +127,11 @@ $start-work plans/lazyclaude-retrofit.md
|
|
|
115
127
|
```
|
|
116
128
|
|
|
117
129
|
기대 동작은 LazyClaude prompt hook이 `ULTRAWORK MODE ENABLED` 컨텍스트를
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
130
|
+
추가하고 `LazyClaude ULW hook active`라는 visible hook message를 보여주는
|
|
131
|
+
것입니다. 또한 plain `ulw`를 일반 작업 실행 전 `/lazyclaude:ulw-loop` /
|
|
132
|
+
`Skill(ulw-loop)` semantics로 처리하라고 Claude에게 지시합니다. 그 뒤 skill
|
|
133
|
+
및 agent 지시문이 Claude를 test-first 작업, native goal 처리, 실제 수동 QA
|
|
134
|
+
증거, cleanup receipt, 향후 release step의 명시적 승인 쪽으로 유도합니다.
|
|
121
135
|
|
|
122
136
|
LazyClaude는 `/goal`을 대신 입력하거나 slash command text를 자동 전송하지
|
|
123
137
|
않습니다. 대신 hook과 ULW skill이 run context를 보강합니다. Claude Code의
|
|
@@ -127,9 +141,10 @@ goal이 없을 때만 `create_goal`을 호출하며, `update_goal`은 검증 완
|
|
|
127
141
|
workflow orchestration과 Dynamic worktree isolation도 함께 고려하도록
|
|
128
142
|
유도합니다.
|
|
129
143
|
|
|
130
|
-
단순히 `ulw`라고 입력하는 것은 hook context activation
|
|
131
|
-
history
|
|
132
|
-
LazyClaude skill activation을 보고 싶다면 namespaced
|
|
144
|
+
단순히 `ulw`라고 입력하는 것은 hook context activation입니다. Claude Code
|
|
145
|
+
history에는 별도 Skill tool invocation이 아니라 hook guidance로 보일 수
|
|
146
|
+
있습니다. 명시적인 LazyClaude skill activation을 보고 싶다면 namespaced
|
|
147
|
+
command를 사용합니다.
|
|
133
148
|
|
|
134
149
|
```text
|
|
135
150
|
/lazyclaude:ulw-loop <증거 기반으로 실행할 작업>
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -43,6 +43,16 @@ local marketplace metadata needed by `claude plugin details`. Do not ask users
|
|
|
43
43
|
to type a generated command that shells out to `npx --yes lazyclaude-ai path` for
|
|
44
44
|
normal npm installs.
|
|
45
45
|
|
|
46
|
+
Run fresh-machine QA from a fresh directory, not from this repository checkout.
|
|
47
|
+
Inside the same-name source checkout, `npx --yes lazyclaude-ai@0.1.3 install`
|
|
48
|
+
can resolve the local package and fail with `sh: lazyclaude-ai: command not
|
|
49
|
+
found`. Use `cd /tmp` for the fresh directory scenario, or use the explicit
|
|
50
|
+
fresh-prefix form:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm exec --prefix "$(mktemp -d)" --yes --package lazyclaude-ai -- lazyclaude install
|
|
54
|
+
```
|
|
55
|
+
|
|
46
56
|
## Quiet Public NPM Package Release Or Update
|
|
47
57
|
|
|
48
58
|
Use this track only when the user explicitly approves making a new package
|
package/cover.png
CHANGED
|
Binary file
|
package/docs/hooks.md
CHANGED
|
@@ -25,8 +25,11 @@ $start-work
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
When a trigger is present, the hook returns additional context containing
|
|
28
|
-
`ULTRAWORK MODE ENABLED
|
|
29
|
-
executed as a
|
|
28
|
+
`ULTRAWORK MODE ENABLED` and a visible `LazyClaude ULW hook active` system
|
|
29
|
+
message. That context is guidance for Claude Code; it is not executed as a
|
|
30
|
+
command. The guidance tells Claude to treat plain `ulw` as
|
|
31
|
+
`/lazyclaude:ulw-loop` / `Skill(ulw-loop)` semantics before ordinary task
|
|
32
|
+
execution.
|
|
30
33
|
|
|
31
34
|
LazyClaude follows the LazyCodex goal pattern as model-facing run context, not
|
|
32
35
|
as slash-command injection. If Claude Code exposes the native goal surface, the
|
package/package.json
CHANGED
|
@@ -21,20 +21,25 @@ const hookEventNames = {
|
|
|
21
21
|
"post-compact": "PostCompact",
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const writeContext = (additionalContext) => {
|
|
24
|
+
const writeContext = (additionalContext, systemMessage) => {
|
|
25
|
+
const payload = {
|
|
26
|
+
continue: true,
|
|
27
|
+
hookSpecificOutput: {
|
|
28
|
+
hookEventName: hookEventNames[eventName],
|
|
29
|
+
additionalContext,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
if (systemMessage) {
|
|
33
|
+
payload.systemMessage = systemMessage;
|
|
34
|
+
}
|
|
25
35
|
console.log(
|
|
26
|
-
JSON.stringify(
|
|
27
|
-
continue: true,
|
|
28
|
-
hookSpecificOutput: {
|
|
29
|
-
hookEventName: hookEventNames[eventName],
|
|
30
|
-
additionalContext,
|
|
31
|
-
},
|
|
32
|
-
}),
|
|
36
|
+
JSON.stringify(payload),
|
|
33
37
|
);
|
|
34
38
|
};
|
|
35
39
|
|
|
36
40
|
const ultraworkContext = [
|
|
37
41
|
"ULTRAWORK MODE ENABLED.",
|
|
42
|
+
"Treat this prompt as an explicit request to use LazyClaude ulw-loop discipline now; load or follow /lazyclaude:ulw-loop / Skill(ulw-loop) semantics before ordinary task execution.",
|
|
38
43
|
"Use evidence-bound planning, tests, manual QA, and cleanup receipts.",
|
|
39
44
|
"Native goal integration: when Claude Code exposes /goal or model-facing goal tools, first inspect get_goal, call create_goal with an objective-only payload when no matching goal is active, and reserve update_goal for verified completion or a genuine blocker.",
|
|
40
45
|
"Do not auto-type or inject the user's slash commands; treat /goal as Claude Code's native goal surface, not as prompt text for this hook to send.",
|
|
@@ -54,7 +59,7 @@ switch (eventName) {
|
|
|
54
59
|
const prompt = typeof input.prompt === "string" ? input.prompt : "";
|
|
55
60
|
const activates = /\b(?:ultrawork|ulw)\b|\$(?:ulw-plan|ulw-loop|start-work)\b/u.test(prompt);
|
|
56
61
|
if (activates) {
|
|
57
|
-
writeContext(ultraworkContext);
|
|
62
|
+
writeContext(ultraworkContext, "LazyClaude ULW hook active: ulw-loop guidance injected.");
|
|
58
63
|
} else {
|
|
59
64
|
writeContext("LazyClaude prompt hook checked: no workflow activation.");
|
|
60
65
|
}
|