lazyclaude-ai 0.1.4 → 0.1.5
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 +17 -8
- package/README_ko-KR.md +17 -8
- package/RELEASE_CHECKLIST.md +3 -3
- package/docs/hooks.md +14 -3
- package/docs/migration.md +11 -4
- package/package.json +1 -1
- package/plugins/lazyclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/lazyclaude/bin/lazyclaude-hook.js +4 -3
- package/plugins/lazyclaude/commands/start-work.md +21 -0
- package/plugins/lazyclaude/commands/ulw-loop.md +24 -0
- package/plugins/lazyclaude/commands/ulw-plan.md +22 -0
- package/plugins/lazyclaude/skills/start-work/SKILL.md +11 -3
- package/plugins/lazyclaude/skills/ulw-loop/SKILL.md +13 -5
- package/plugins/lazyclaude/skills/ulw-plan/SKILL.md +5 -2
- package/scripts/qa-portable-install.sh +1 -1
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.1.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.1.5-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>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
> [!NOTE]
|
|
20
20
|
> LazyClaude is a quiet personal distribution for bringing LazyCodex-style prompt engineering into Claude Code. It installs as `lazyclaude@lazyclaude-ai`, so normal `claude` launches can load the LazyClaude skills and hooks without a long `--plugin-dir` command.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
This checkout is prepared as `lazyclaude-ai@0.1.5` for personal install
|
|
23
23
|
convenience. The repo can remain private and quiet; publishing to npm here does
|
|
24
24
|
not imply public repo promotion, marketplace publication, or advertisement.
|
|
25
25
|
Future package releases still require explicit user approval.
|
|
@@ -30,7 +30,7 @@ Future package releases still require explicit user approval.
|
|
|
30
30
|
- **ULW prompt hooks** - type `ulw`, `ultrawork`, `$ulw-plan`, or `$ulw-loop`
|
|
31
31
|
- **Native goal guidance** - ULW context points Claude toward `/goal` or
|
|
32
32
|
model-facing `get_goal`, `create_goal`, and delayed `update_goal` when those
|
|
33
|
-
surfaces exist
|
|
33
|
+
surfaces exist, and gives a clear fallback when goal tools are unavailable
|
|
34
34
|
- **Dynamic workflow/worktree guidance** - large or parallel tasks are steered
|
|
35
35
|
toward Claude Code Dynamic workflow orchestration and Dynamic worktree
|
|
36
36
|
isolation
|
|
@@ -49,14 +49,14 @@ npx --yes lazyclaude-ai install
|
|
|
49
49
|
```
|
|
50
50
|
|
|
51
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.
|
|
52
|
+
package name as the registry package, `npx --yes lazyclaude-ai@0.1.5 install`
|
|
53
53
|
can resolve the local same-name source checkout and fail with
|
|
54
54
|
`sh: lazyclaude-ai: command not found`. From a fresh directory, the normal
|
|
55
55
|
install command works:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
cd /tmp
|
|
59
|
-
npx --yes lazyclaude-ai@0.1.
|
|
59
|
+
npx --yes lazyclaude-ai@0.1.5 install
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
Validate the installed plugin:
|
|
@@ -134,9 +134,14 @@ LazyClaude does not auto-type `/goal` or send slash command text for you.
|
|
|
134
134
|
Instead, the hook and ULW skills add run-context guidance: use Claude Code's
|
|
135
135
|
native goal surface when available, inspect `get_goal`, call `create_goal` only
|
|
136
136
|
when no matching goal is active, and reserve `update_goal` for verified
|
|
137
|
-
completion or a genuine blocker.
|
|
138
|
-
|
|
139
|
-
|
|
137
|
+
completion or a genuine blocker. When goal tools are unavailable or not exposed,
|
|
138
|
+
LazyClaude now tells Claude to say that plainly and ask you to bind the native
|
|
139
|
+
session goal with an exact `/goal <completion condition>` before long execution.
|
|
140
|
+
For large independent work, LazyClaude applies the same principle to Claude
|
|
141
|
+
Code's available orchestration surfaces: when `Workflow` is exposed, call the
|
|
142
|
+
`Workflow` tool; when isolated edits need a model-facing worktree lane, use
|
|
143
|
+
`EnterWorktree`. If only the CLI surface is available for a fresh isolated lane,
|
|
144
|
+
use `claude --worktree <short-name> --tmux`.
|
|
140
145
|
|
|
141
146
|
Plain `ulw` is hook context activation. Claude may still show it as hook
|
|
142
147
|
guidance rather than a separate Skill tool invocation in history. Use visible
|
|
@@ -148,6 +153,10 @@ namespaced commands when you want explicit LazyClaude skill activation:
|
|
|
148
153
|
/lazyclaude:start-work plans/lazyclaude-retrofit.md
|
|
149
154
|
```
|
|
150
155
|
|
|
156
|
+
Those namespaced commands are shipped as real Claude Code command files under
|
|
157
|
+
`plugins/lazyclaude/commands/`, so `/lazyclaude:ulw-loop` should load the
|
|
158
|
+
command body, then the matching skill guidance.
|
|
159
|
+
|
|
151
160
|
## Commands
|
|
152
161
|
|
|
153
162
|
| Command | Purpose |
|
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.1.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.1.5-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>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
> [!NOTE]
|
|
24
24
|
> LazyClaude는 LazyCodex 스타일의 prompt engineering을 Claude Code로 가져오기 위한 조용한 개인용 배포판입니다. `lazyclaude@lazyclaude-ai`로 설치되므로, 매번 긴 `--plugin-dir` 없이 일반 `claude` 실행에서 LazyClaude skill과 hook을 불러올 수 있습니다.
|
|
25
25
|
|
|
26
|
-
현재
|
|
26
|
+
현재 checkout은 `lazyclaude-ai@0.1.5` 배포용으로 준비되어 있습니다. 목적은 다른 PC에서도
|
|
27
27
|
빠르게 설치하기 위한 개인용 배포물입니다. 저장소는 비공개 저장소로
|
|
28
28
|
유지할 수 있고, npm 배포가 곧 홍보, 공개 저장소 운영, Claude marketplace
|
|
29
29
|
등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적 승인 후에
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
- **ULW prompt hook** - `ulw`, `ultrawork`, `$ulw-plan`, `$ulw-loop` 트리거
|
|
36
36
|
- **Native goal guidance** - Claude Code가 `/goal` 또는 `get_goal`,
|
|
37
37
|
`create_goal`, `update_goal` 같은 goal surface를 제공하면 이를 우선
|
|
38
|
-
사용하도록
|
|
38
|
+
사용하도록 유도하고, goal tools are unavailable 상황의 fallback도 명시
|
|
39
39
|
- **Dynamic workflow/worktree guidance** - 크거나 병렬적인 작업은 Claude
|
|
40
40
|
Code Dynamic workflow와 Dynamic worktree 격리 쪽으로 유도
|
|
41
41
|
- **Claude skills** - `ulw-plan`, `ulw-loop`, `start-work`, `rules`, `lsp`, `programming`, `review-work`
|
|
@@ -54,13 +54,13 @@ npx --yes lazyclaude-ai install
|
|
|
54
54
|
|
|
55
55
|
현재 위치가 이 저장소 checkout이면, registry package와 같은 package name을
|
|
56
56
|
가진 same-name source checkout 안에 있는 상태입니다. 이 경우
|
|
57
|
-
`npx --yes lazyclaude-ai@0.1.
|
|
57
|
+
`npx --yes lazyclaude-ai@0.1.5 install`이 local checkout을 먼저 해석해서
|
|
58
58
|
`sh: lazyclaude-ai: command not found`로 실패할 수 있습니다. 새 폴더에서는
|
|
59
59
|
일반 설치 명령이 정상 동작합니다.
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
62
|
cd /tmp
|
|
63
|
-
npx --yes lazyclaude-ai@0.1.
|
|
63
|
+
npx --yes lazyclaude-ai@0.1.5 install
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
설치 상태를 확인합니다.
|
|
@@ -137,9 +137,14 @@ LazyClaude는 `/goal`을 대신 입력하거나 slash command text를 자동 전
|
|
|
137
137
|
않습니다. 대신 hook과 ULW skill이 run context를 보강합니다. Claude Code의
|
|
138
138
|
native goal surface가 있으면 `get_goal`을 먼저 확인하고, matching active
|
|
139
139
|
goal이 없을 때만 `create_goal`을 호출하며, `update_goal`은 검증 완료 또는
|
|
140
|
-
진짜 blocker가 있을 때까지 미루도록 안내합니다.
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
진짜 blocker가 있을 때까지 미루도록 안내합니다. goal tools are unavailable,
|
|
141
|
+
즉 model-facing goal tools가 이 Claude Code session에 노출되지 않은 경우에는
|
|
142
|
+
그 한계를 먼저 말하고, 긴 실행 전에 정확한 `/goal <completion condition>`로
|
|
143
|
+
native session goal을 묶어달라고 요청하도록 했습니다. 큰 독립 작업에서는
|
|
144
|
+
같은 원칙을 Claude Code가 노출한 orchestration surface에 적용합니다.
|
|
145
|
+
`Workflow`가 노출되면 `Workflow` tool을 호출하고, isolated edit lane이
|
|
146
|
+
model-facing worktree를 필요로 하면 `EnterWorktree`를 사용합니다. CLI surface만
|
|
147
|
+
가능한 새 격리 lane에서는 `claude --worktree <short-name> --tmux`를 사용합니다.
|
|
143
148
|
|
|
144
149
|
단순히 `ulw`라고 입력하는 것은 hook context activation입니다. Claude Code
|
|
145
150
|
history에는 별도 Skill tool invocation이 아니라 hook guidance로 보일 수
|
|
@@ -152,6 +157,10 @@ command를 사용합니다.
|
|
|
152
157
|
/lazyclaude:start-work plans/lazyclaude-retrofit.md
|
|
153
158
|
```
|
|
154
159
|
|
|
160
|
+
이 namespaced command들은 `plugins/lazyclaude/commands/` 아래 실제 Claude Code
|
|
161
|
+
command file로 배포됩니다. 따라서 `/lazyclaude:ulw-loop`는 command body를 먼저
|
|
162
|
+
로드하고, 이어서 대응 skill guidance를 따라가야 합니다.
|
|
163
|
+
|
|
155
164
|
## 명령어
|
|
156
165
|
|
|
157
166
|
| 명령어 | 용도 |
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# LazyClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: quiet public npm package
|
|
4
|
-
|
|
3
|
+
Status: this checkout is prepared for quiet public npm package
|
|
4
|
+
`lazyclaude-ai@0.1.5` after explicit user approval.
|
|
5
5
|
|
|
6
6
|
DO NOT publish a new version of LazyClaude, run `npm publish`, push release
|
|
7
7
|
tags, or add a remote Claude Code marketplace entry without explicit user
|
|
@@ -44,7 +44,7 @@ to type a generated command that shells out to `npx --yes lazyclaude-ai path` fo
|
|
|
44
44
|
normal npm installs.
|
|
45
45
|
|
|
46
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.
|
|
47
|
+
Inside the same-name source checkout, `npx --yes lazyclaude-ai@0.1.5 install`
|
|
48
48
|
can resolve the local package and fail with `sh: lazyclaude-ai: command not
|
|
49
49
|
found`. Use `cd /tmp` for the fresh directory scenario, or use the explicit
|
|
50
50
|
fresh-prefix form:
|
package/docs/hooks.md
CHANGED
|
@@ -38,9 +38,18 @@ matching goal is active, and delay `update_goal` until verified completion or a
|
|
|
38
38
|
genuine blocker. It may also point Claude toward the user-visible `/goal`
|
|
39
39
|
surface, but it does not auto-type `/goal` or send slash command text.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
If goal tools are unavailable or not exposed in the running Claude Code session,
|
|
42
|
+
the hook context tells Claude to say that explicitly and ask the user to bind the
|
|
43
|
+
native session goal with `/goal <completion condition>` before long execution.
|
|
44
|
+
LazyClaude then continues with its ledger fallback when the user declines or the
|
|
45
|
+
surface is absent.
|
|
46
|
+
|
|
47
|
+
For broad work, the same context ports the LazyCodex model-facing principle to
|
|
48
|
+
Claude Code's exposed orchestration surfaces: if `Workflow` is available, call
|
|
49
|
+
the `Workflow` tool before serial execution and bind every lane to evidence and
|
|
50
|
+
cleanup. If isolated edits need a model-facing worktree lane, use
|
|
51
|
+
`EnterWorktree`; when only the CLI surface is available, the actionable launch
|
|
52
|
+
form is `claude --worktree <short-name> --tmux`.
|
|
44
53
|
|
|
45
54
|
Plain `ulw` therefore activates hook context, not a visible Skill tool call.
|
|
46
55
|
For a visible LazyClaude command/skill invocation, use the namespaced Claude
|
|
@@ -52,6 +61,8 @@ Code commands:
|
|
|
52
61
|
/lazyclaude:start-work plans/lazyclaude-retrofit.md
|
|
53
62
|
```
|
|
54
63
|
|
|
64
|
+
These are real Claude Code command files in `plugins/lazyclaude/commands/`.
|
|
65
|
+
|
|
55
66
|
## Safety
|
|
56
67
|
|
|
57
68
|
Hooks parse JSON from stdin and return JSON to Claude Code. The hook does not
|
package/docs/migration.md
CHANGED
|
@@ -10,7 +10,7 @@ of surface, and a conservative local fallback where it does not.
|
|
|
10
10
|
| Codex ultrawork plan mode | Claude Code skill plus planner agent | `ulw-plan` and `prometheus-planner` |
|
|
11
11
|
| Codex execution loop | Claude Code skill plus executor agent | `ulw-loop`, `start-work`, and `boulder-executor` |
|
|
12
12
|
| Codex 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 |
|
|
13
|
-
| Codex parallel orchestration | Claude Code Dynamic workflow and Dynamic worktree surfaces |
|
|
13
|
+
| Codex 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 |
|
|
14
14
|
| Codex hooks | Claude Code hooks | `plugins/lazyclaude/hooks/hooks.json` |
|
|
15
15
|
| Codex MCP helpers | Claude Code plugin MCP config | `plugins/lazyclaude/.mcp.json` |
|
|
16
16
|
| Codex LSP integration | Claude Code plugin LSP config | `plugins/lazyclaude/.lsp.json` |
|
|
@@ -54,11 +54,18 @@ Claude to inspect `get_goal`, create a goal with `create_goal` only when no
|
|
|
54
54
|
matching active goal exists, and defer `update_goal` until the evidence gate has
|
|
55
55
|
passed or a real blocker is recorded.
|
|
56
56
|
|
|
57
|
+
Current Claude Code sessions may not expose model-facing goal tools to the
|
|
58
|
+
model. When goal tools are unavailable or not exposed, LazyClaude should not
|
|
59
|
+
pretend the native goal was bound. It should state the limitation and ask the
|
|
60
|
+
user to run `/goal <completion condition>` before long-running ULW execution.
|
|
61
|
+
|
|
57
62
|
When the user explicitly chooses Claude Code `/goal`, that native session goal
|
|
58
63
|
remains user-visible and user-controlled. LazyClaude does not auto-type
|
|
59
|
-
`/goal`. For multi-lane work, LazyClaude
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
`/goal`. For multi-lane work, LazyClaude follows the same model-facing tool
|
|
65
|
+
principle where Claude Code exposes it: call the `Workflow` tool before serial
|
|
66
|
+
execution, bind each lane to criteria and evidence, and use `EnterWorktree` for
|
|
67
|
+
isolated model-facing worktree lanes. When only the CLI surface is available,
|
|
68
|
+
the concrete isolated-lane launch form is `claude --worktree <short-name> --tmux`.
|
|
62
69
|
|
|
63
70
|
If OMC/omc is already installed in Claude Code, keep it disabled or start a
|
|
64
71
|
separate Claude Code session without OMC while testing LazyClaude. This repo no
|
package/package.json
CHANGED
|
@@ -41,10 +41,11 @@ const ultraworkContext = [
|
|
|
41
41
|
"ULTRAWORK MODE ENABLED.",
|
|
42
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.",
|
|
43
43
|
"Use evidence-bound planning, tests, manual QA, and cleanup receipts.",
|
|
44
|
-
"Native goal integration: when Claude Code exposes
|
|
44
|
+
"Native goal tool integration: only when Claude Code exposes 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.",
|
|
45
|
+
"Native /goal fallback: if model-facing goal tools are unavailable or not exposed, say so explicitly and ask the user to bind the native Claude Code goal with /goal <completion condition>; continue with the LazyClaude ledger fallback when they decline or the surface is absent.",
|
|
45
46
|
"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.",
|
|
46
|
-
"Dynamic workflow:
|
|
47
|
-
"Dynamic worktree:
|
|
47
|
+
"Dynamic workflow integration: when Claude Code exposes the Workflow tool and the task is broad, risky, parallel, or long-running, call the Workflow tool before serial execution and bind each lane to explicit criteria, artifacts, and cleanup receipts.",
|
|
48
|
+
"Dynamic worktree integration: when Claude Code exposes EnterWorktree and isolated edits are needed, use EnterWorktree for the selected lane; otherwise use or recommend claude --worktree <short-name> --tmux. Never mutate unrelated user state.",
|
|
48
49
|
].join(" ");
|
|
49
50
|
|
|
50
51
|
const input = readInput();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Execute a checked plan with LazyClaude start-work discipline.
|
|
3
|
+
argument-hint: '<plan-file>'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the `start-work` skill for the user's current plan file or command
|
|
7
|
+
arguments.
|
|
8
|
+
|
|
9
|
+
Before the first checkbox, bootstrap Claude Code-native workflow state:
|
|
10
|
+
|
|
11
|
+
- Use `get_goal` and `create_goal` only if model-facing goal tools are exposed.
|
|
12
|
+
- If goal tools are unavailable, ask the user to set a native `/goal` completion
|
|
13
|
+
condition for the plan before multi-turn execution.
|
|
14
|
+
- For broad, risky, parallel, or long-running checkbox waves, call the
|
|
15
|
+
`Workflow` tool when Claude Code exposes it.
|
|
16
|
+
- For isolated edit lanes, use `EnterWorktree` when exposed; otherwise launch
|
|
17
|
+
or recommend `claude --worktree <short-name> --tmux`.
|
|
18
|
+
|
|
19
|
+
Then execute the first unchecked top-level checkbox with failing-test-first
|
|
20
|
+
implementation, automated verification, manual QA evidence, cleanup receipts,
|
|
21
|
+
and ledger updates.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run LazyClaude ULW loop discipline with goal and Dynamic workflow bootstrap.
|
|
3
|
+
argument-hint: '<objective>'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the `ulw-loop` skill for the user's current objective or command arguments.
|
|
7
|
+
|
|
8
|
+
Before implementation, bootstrap Claude Code-native workflow state:
|
|
9
|
+
|
|
10
|
+
1. If model-facing goal tools are available in this session, inspect `get_goal`,
|
|
11
|
+
call `create_goal` only when no matching goal exists, and reserve
|
|
12
|
+
`update_goal` for verified completion or a genuine blocker.
|
|
13
|
+
2. If goal tools are unavailable, state that plainly and ask the user to bind
|
|
14
|
+
the native Claude Code goal with this exact surface before long execution:
|
|
15
|
+
`/goal <completion condition for the current objective>`.
|
|
16
|
+
3. For broad, risky, parallel, or long-running work, call the `Workflow` tool
|
|
17
|
+
when Claude Code exposes it. Bind every lane to explicit criteria, evidence
|
|
18
|
+
artifacts, and cleanup receipts.
|
|
19
|
+
4. When isolated edits are needed, use `EnterWorktree` when Claude Code exposes
|
|
20
|
+
it. If only the CLI surface is available, tell the user the concrete launch
|
|
21
|
+
form: `claude --worktree <short-name> --tmux`.
|
|
22
|
+
|
|
23
|
+
Then continue with evidence-bound success criteria, tests, manual QA artifacts,
|
|
24
|
+
cleanup receipts, and explicit release approval boundaries.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Plan LazyClaude work with explicit goal, Dynamic workflow, and QA criteria.
|
|
3
|
+
argument-hint: '<planning brief>'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the `ulw-plan` skill for the user's current planning brief or command
|
|
7
|
+
arguments.
|
|
8
|
+
|
|
9
|
+
The plan must include Claude Code-native bootstrap steps:
|
|
10
|
+
|
|
11
|
+
- If model-facing goal tools are exposed, use `get_goal`, `create_goal`, and
|
|
12
|
+
delayed `update_goal` exactly as native goal state, not as slash-command text.
|
|
13
|
+
- If goal tools are unavailable, include the exact user-visible `/goal`
|
|
14
|
+
completion condition to bind before execution.
|
|
15
|
+
- For independent, risky, parallel, or long-running work, include when Claude
|
|
16
|
+
should call the `Workflow` tool and how each lane proves its evidence.
|
|
17
|
+
- For isolated edit lanes, include when to use `EnterWorktree`; if only the CLI
|
|
18
|
+
surface is available, include `claude --worktree <short-name> --tmux`, plus
|
|
19
|
+
evidence paths and cleanup.
|
|
20
|
+
|
|
21
|
+
Write the plan under `plans/` and keep it executable: concrete files, tests,
|
|
22
|
+
manual QA, cleanup, and publish/remote-mutation guardrails.
|
|
@@ -27,6 +27,14 @@ and verification gates are complete or the plan is genuinely blocked. If the
|
|
|
27
27
|
user invokes `/goal`, respect that native Claude Code session goal; LazyClaude
|
|
28
28
|
does not auto-type or send `/goal` text.
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
If goal tools are unavailable or not exposed in this Claude Code session, state
|
|
31
|
+
that limitation before execution and ask the user to bind a native
|
|
32
|
+
`/goal <plan completion condition>` when the plan is long-running. Continue with
|
|
33
|
+
the Boulder and ledger fallback when no native goal can be bound.
|
|
34
|
+
|
|
35
|
+
For broad, risky, parallel, or long-running checkbox waves, use Dynamic workflow
|
|
36
|
+
orchestration and call `Workflow` when Claude Code exposes it. Each workflow lane must have explicit evidence
|
|
37
|
+
paths and cleanup receipts. For risky or parallel edits, use Dynamic worktree
|
|
38
|
+
isolation: call `EnterWorktree` when it is exposed, keep every command in the
|
|
39
|
+
selected worktree, and when only the CLI surface is available use or recommend
|
|
40
|
+
`claude --worktree <short-name> --tmux`.
|
|
@@ -22,8 +22,16 @@ only after every success criterion has real evidence or when the work is truly
|
|
|
22
22
|
blocked. If the user chooses `/goal`, treat it as Claude Code's native session
|
|
23
23
|
goal command; LazyClaude must not auto-type or send `/goal` text for them.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
If goal tools are unavailable or not exposed in this Claude Code session, state
|
|
26
|
+
that limitation explicitly. Before long execution, ask the user to bind the
|
|
27
|
+
native Claude Code goal with a concrete `/goal <completion condition>` command,
|
|
28
|
+
then continue with a local ledger fallback when they choose not to.
|
|
29
|
+
|
|
30
|
+
For broad, risky, parallel, or long-running work, use Dynamic workflow
|
|
31
|
+
orchestration and call the `Workflow` tool when Claude Code exposes it instead
|
|
32
|
+
of merely mentioning workflow guidance. Keep each worker or workflow branch tied
|
|
33
|
+
to concrete criteria, artifacts, and cleanup receipts. Use Dynamic worktree
|
|
34
|
+
isolation for risky or parallel edits: call
|
|
35
|
+
`EnterWorktree` when Claude Code exposes it, keep all mutations inside the active
|
|
36
|
+
Claude Code workspace/worktree, and when only the CLI surface is available use
|
|
37
|
+
or recommend `claude --worktree <short-name> --tmux`.
|
|
@@ -14,9 +14,12 @@ Use Claude Code surfaces directly:
|
|
|
14
14
|
- use subagents only for read-only research or plan review
|
|
15
15
|
- include native goal handling: `get_goal`, `create_goal`, and delayed
|
|
16
16
|
`update_goal` when Claude Code exposes those tools, or a user-managed `/goal`
|
|
17
|
-
condition when
|
|
17
|
+
condition when goal tools are unavailable or not exposed
|
|
18
18
|
- include Dynamic workflow and Dynamic worktree guidance for independent,
|
|
19
|
-
parallel, risky, or long-running implementation lanes
|
|
19
|
+
parallel, risky, or long-running implementation lanes: call `Workflow` when
|
|
20
|
+
Claude Code exposes it, call `EnterWorktree` when isolated edits
|
|
21
|
+
need a model-facing worktree lane, and include
|
|
22
|
+
`claude --worktree <short-name> --tmux` when only the CLI surface is available
|
|
20
23
|
- write only plan artifacts and drafts
|
|
21
24
|
- include concrete tests, manual QA, cleanup, and non-publish guardrails
|
|
22
25
|
|
|
@@ -91,7 +91,7 @@ echo "DOCTOR_PASS" >> "$EVIDENCE"
|
|
|
91
91
|
|
|
92
92
|
if command -v claude >/dev/null 2>&1; then
|
|
93
93
|
run_step CLAUDE_PLUGIN_DETAILS claude plugin details lazyclaude@lazyclaude-ai
|
|
94
|
-
if ! grep -
|
|
94
|
+
if ! grep -Eq "Skills \\([0-9]+\\)" "$EVIDENCE" || ! grep -q "ulw-loop" "$EVIDENCE" || ! grep -q "ulw-plan" "$EVIDENCE" || ! grep -q "Hooks (4)" "$EVIDENCE"; then
|
|
95
95
|
echo "CLAUDE_PLUGIN_DETAILS_FAIL: expected LazyClaude skills/hooks inventory" >> "$EVIDENCE"
|
|
96
96
|
echo "CLAUDE_PLUGIN_DETAILS_FAIL"
|
|
97
97
|
exit 1
|