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 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, use a fresh prefix so npm does not
72
- confuse the registry package with a same-name source checkout:
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, then the matching skill and agent instructions steer Claude toward
115
- test-first work, native goal handling, manual QA evidence, cleanup receipts,
116
- and explicit approval before future release steps.
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, so it may not show a separate Skill
127
- tool invocation in Claude Code history. Use visible namespaced commands when
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
- 때는 fresh prefix를 주는 편이 안전합니다.
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
- 추가하고, skill agent 지시문이 Claude를 test-first 작업, native goal
119
- 처리, 실제 수동 QA 증거, cleanup receipt, 향후 release step의 명시적 승인
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이므로 Claude Code
131
- history 별도 Skill tool invocation으로 보이지 않을 있습니다. 명시적인
132
- LazyClaude skill activation을 보고 싶다면 namespaced command를 사용합니다.
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 <증거 기반으로 실행할 작업>
@@ -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`. That context is guidance for Claude Code; it is not
29
- executed as a command.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazyclaude-ai",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Claude Code-native LazyCodex-style workflow distribution.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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
  }