litclaude-ai 0.3.27 → 0.3.28
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 +8 -0
- package/README.md +8 -6
- package/README_ko-KR.md +8 -7
- package/RELEASE_CHECKLIST.md +10 -9
- package/docs/hooks.md +3 -1
- package/package.json +1 -1
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/bin/litclaude-hook.js +5 -1
- package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.28 - 2026-07-14 — explicit start-work activation
|
|
4
|
+
|
|
5
|
+
- Require the `$start-work` shorthand and natural `lit start work` activation
|
|
6
|
+
to be leading command phrases without changing other dollar routes.
|
|
7
|
+
- Keep diagnostic prose, copied blockquotes, and explanatory mentions of
|
|
8
|
+
`$start-work` or `lit start work` inert while preserving explicit dollar,
|
|
9
|
+
bare, natural, and native slash start-work routes.
|
|
10
|
+
|
|
3
11
|
## 0.3.27 - 2026-07-12 — structured interactive installer
|
|
4
12
|
|
|
5
13
|
- Present interactive installs as five persistent, numbered Claude-native
|
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-litclaude--ai-cb3837" />
|
|
12
|
-
<img src="https://img.shields.io/badge/version-0.3.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.3.28-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,10 +22,10 @@
|
|
|
22
22
|
> `litclaude@litclaude-ai`, so normal `claude` launches can load the
|
|
23
23
|
> LitClaude skills and hooks without a long `--plugin-dir` command.
|
|
24
24
|
|
|
25
|
-
This checkout is prepared as `litclaude-ai@0.3.
|
|
25
|
+
This checkout is prepared as `litclaude-ai@0.3.28` for personal install
|
|
26
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. The v0.3.27 release material adds a structured, animated five-stage installer with a success or failure receipt while preserving deterministic automation output. The v0.3.26 release material adds adaptive objective-achievable planning, draft-plan review, and orchestration readiness hardening. The v0.3.25 release material aligns portable details, public-read, litgoal status JSON, and evidence wording. The v0.3.24 release material aligns auxiliary skill inventories and advisory probes. The v0.3.23
|
|
28
|
+
Future package releases still require explicit user approval. The v0.3.28 release material requires explicit leading start-work invocations so diagnostic or copied mentions remain inert. The v0.3.27 release material adds a structured, animated five-stage installer with a success or failure receipt while preserving deterministic automation output. The v0.3.26 release material adds adaptive objective-achievable planning, draft-plan review, and orchestration readiness hardening. The v0.3.25 release material aligns portable details, public-read, litgoal status JSON, and evidence wording. The v0.3.24 release material aligns auxiliary skill inventories and advisory probes. The v0.3.23
|
|
29
29
|
release materials inject the bundled skill bodies for bare `hyperplan`,
|
|
30
30
|
`litresearch`, `lit research`, `init-deep`, and explicit `$start-work` prompt-hook routes while
|
|
31
31
|
preserving the v0.3.19 adversarial planning skill, the v0.3.18 read-only `lit-recap` session recap surface, the v0.3.17 separate-worker native `/goal` launcher, the v0.3.16
|
|
@@ -125,7 +125,7 @@ directory, the normal install command works:
|
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
127
|
cd /tmp
|
|
128
|
-
npx --yes litclaude-ai@0.3.
|
|
128
|
+
npx --yes litclaude-ai@0.3.28 install
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
Validate the installed plugin:
|
|
@@ -138,7 +138,7 @@ The installer also sets Claude Code's `statusLine` command to the packaged
|
|
|
138
138
|
LitClaude HUD. A typical no-color render starts like:
|
|
139
139
|
|
|
140
140
|
```text
|
|
141
|
-
[🔥LITCLAUDE v0.3.
|
|
141
|
+
[🔥LITCLAUDE v0.3.28] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
The `↻` suffix is a compact rate-limit reset countdown. It is separated from
|
|
@@ -255,7 +255,9 @@ a visible hook message. Slash commands such as `/lit-plan` are handled by Claude
|
|
|
255
255
|
Code's native command surface and should not double-activate the hook. Natural
|
|
256
256
|
`lit start work` is a safe handoff: it emits `BLOCKED:` and tells the user to
|
|
257
257
|
run `/start-work` or `/litclaude:start-work` with the approved plan because a
|
|
258
|
-
prompt hook cannot switch Claude Code agents.
|
|
258
|
+
prompt hook cannot switch Claude Code agents. The `$start-work` shorthand and
|
|
259
|
+
natural start-work phrases activate only at the beginning of the prompt, so diagnostic
|
|
260
|
+
prose and copied or blockquoted mentions stay inert. Plain `lit` still maps to
|
|
259
261
|
`/litclaude:lit-loop` / `Skill(lit-loop)` semantics before ordinary task
|
|
260
262
|
execution, then the matching skill and agent instructions steer Claude toward
|
|
261
263
|
test-first work, native goal handling, manual QA evidence, cleanup receipts, and
|
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-litclaude--ai-cb3837" />
|
|
12
|
-
<img src="https://img.shields.io/badge/version-0.3.
|
|
12
|
+
<img src="https://img.shields.io/badge/version-0.3.28-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,11 +26,11 @@
|
|
|
26
26
|
> 설치되므로, 매번 긴 `--plugin-dir` 없이 일반 `claude` 실행에서
|
|
27
27
|
> LitClaude skill과 hook을 불러올 수 있습니다.
|
|
28
28
|
|
|
29
|
-
현재 checkout은 `litclaude-ai@0.3.
|
|
29
|
+
현재 checkout은 `litclaude-ai@0.3.28` 배포 준비용으로 정리되어 있습니다. 목적은
|
|
30
30
|
다른 PC에서도 빠르게 설치하기 위한 개인용 package metadata를 갖추는 것입니다.
|
|
31
31
|
npm package metadata를 준비했다고 해서 홍보, 공개 저장소 운영, Claude
|
|
32
32
|
marketplace 등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
33
|
-
승인 후에 진행합니다. v0.3.27 release material은 success/failure receipt와 deterministic automation output을 갖춘 5-stage animated installer를 추가합니다. v0.3.26 release material은 adaptive objective-achievable planning, draft-plan review, orchestration readiness hardening을 추가합니다. v0.3.25 release material은 portable details, public-read, litgoal status JSON, evidence wording을 정렬합니다. v0.3.24 release material은 auxiliary skill inventory와 advisory probe를 정렬합니다. v0.3.23 release material은 bare `hyperplan`,
|
|
33
|
+
승인 후에 진행합니다. v0.3.28 release material은 start-work 호출을 prompt 선두의 명시적 invocation으로 제한해 진단문이나 복사된 언급을 비활성 상태로 유지합니다. v0.3.27 release material은 success/failure receipt와 deterministic automation output을 갖춘 5-stage animated installer를 추가합니다. v0.3.26 release material은 adaptive objective-achievable planning, draft-plan review, orchestration readiness hardening을 추가합니다. v0.3.25 release material은 portable details, public-read, litgoal status JSON, evidence wording을 정렬합니다. v0.3.24 release material은 auxiliary skill inventory와 advisory probe를 정렬합니다. v0.3.23 release material은 bare `hyperplan`,
|
|
34
34
|
`litresearch`, `lit research`, `init-deep`, explicit `$start-work` prompt-hook route에
|
|
35
35
|
bundled skill body를 주입하면서, v0.3.19 adversarial planning
|
|
36
36
|
skill, v0.3.18 read-only `lit-recap` session recap surface, v0.3.17 별도 worker 기반 native `/goal`
|
|
@@ -126,7 +126,7 @@ checkout을 먼저 해석해서 `sh: litclaude-ai: command not found`로 실패
|
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
128
|
cd /tmp
|
|
129
|
-
npx --yes litclaude-ai@0.3.
|
|
129
|
+
npx --yes litclaude-ai@0.3.28 install
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
설치 상태를 확인합니다.
|
|
@@ -139,7 +139,7 @@ installer는 Claude Code의 `statusLine` command도 packaged LitClaude HUD로
|
|
|
139
139
|
설정합니다. 색상을 제거한 예시는 다음처럼 시작합니다.
|
|
140
140
|
|
|
141
141
|
```text
|
|
142
|
-
[🔥LITCLAUDE v0.3.
|
|
142
|
+
[🔥LITCLAUDE v0.3.28] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
`↻` 표시는 rate-limit reset까지 남은 시간을 짧게 보여주는 countdown입니다.
|
|
@@ -248,8 +248,9 @@ visible hook message를 보여주는 것입니다. `/lit-plan` 같은 slash comm
|
|
|
248
248
|
Claude Code native command surface에서 처리되며 hook을 중복 활성화하지
|
|
249
249
|
않습니다. 자연어 `lit start work`는 안전한 handoff로 `BLOCKED:`를 내고,
|
|
250
250
|
prompt hook이 Claude Code agent를 전환할 수 없으므로 승인된 plan과 함께
|
|
251
|
-
`/start-work` 또는 `/litclaude:start-work`를 실행하라고 안내합니다.
|
|
252
|
-
|
|
251
|
+
`/start-work` 또는 `/litclaude:start-work`를 실행하라고 안내합니다.
|
|
252
|
+
`$start-work`와 자연어 start-work phrase는 prompt 선두에서만 활성화되므로 진단문,
|
|
253
|
+
복사문, blockquote 안의 단순 언급은 활성화되지 않습니다. plain `lit`는 일반 작업 실행 전 `/litclaude:lit-loop` / `Skill(lit-loop)` semantics로
|
|
253
254
|
처리됩니다. 그 뒤 skill 및 agent 지시문이 Claude를 test-first 작업, native
|
|
254
255
|
goal 처리, 실제 수동 QA 증거, cleanup receipt, 향후 release step의 명시적 승인
|
|
255
256
|
쪽으로 유도합니다.
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# LitClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: `litclaude-ai@0.3.
|
|
4
|
-
|
|
3
|
+
Status: `litclaude-ai@0.3.28` is the current release candidate — explicit
|
|
4
|
+
leading start-work activation guards plus a structured five-stage interactive
|
|
5
|
+
installer with success/failure receipts and adaptive
|
|
5
6
|
planning, draft-plan review, and orchestration-safety release on top of the portable
|
|
6
7
|
details, public-read, litgoal-status, and evidence-wording release and the auxiliary
|
|
7
8
|
skill inventory and advisory-probe release and the full bare
|
|
@@ -16,9 +17,9 @@ side-effect-free, the launcher starts only a separate Claude Code
|
|
|
16
17
|
print/background worker, and the release preserves the Korean polishing
|
|
17
18
|
command, strict multi-agent review pipeline, fidelity guardrails, package
|
|
18
19
|
hygiene checks, native route gates, and safe start-work handoff behavior.
|
|
19
|
-
`package.json` is aligned to `0.3.
|
|
20
|
-
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.
|
|
21
|
-
plugin-local MCP server reports `0.3.
|
|
20
|
+
`package.json` is aligned to `0.3.28`,
|
|
21
|
+
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.28`, and the
|
|
22
|
+
plugin-local MCP server reports `0.3.28`.
|
|
22
23
|
|
|
23
24
|
This release carries the v0.2.2 Dynamic workflow hardening surfaces:
|
|
24
25
|
`/dynamic-workflow`, `workflow-check --json`, native `/goal` fallback guidance,
|
|
@@ -67,10 +68,10 @@ No npm publication is required for this track.
|
|
|
67
68
|
Before requesting publication approval, confirm these artifacts from the current
|
|
68
69
|
checkout:
|
|
69
70
|
|
|
70
|
-
- `package.json` version is `0.3.
|
|
71
|
-
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.
|
|
72
|
-
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.
|
|
73
|
-
- Prompt-hook tests cover bundled `SKILL.md` body injection for bare `hyperplan`, `litresearch`, `lit research`, `init-deep`, and explicit `$start-work
|
|
71
|
+
- `package.json` version is `0.3.28`.
|
|
72
|
+
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.28`.
|
|
73
|
+
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.28`.
|
|
74
|
+
- Prompt-hook tests cover bundled `SKILL.md` body injection for bare `hyperplan`, `litresearch`, `lit research`, `init-deep`, and explicit leading `$start-work`; diagnostic/copy mentions stay inert while leading natural-language `lit start work` stays BLOCKED.
|
|
74
75
|
- `lit search` and `lit query` route to `/litclaude:litresearch` without activating on slash mentions, code spans, or non-lit prompts.
|
|
75
76
|
- Litresearch web lanes require public API/feed preference, validator-first checks, route traces, prompt-injection quarantine, and honest auth/paywall/private-data stop reasons.
|
|
76
77
|
- `node bin/litclaude-ai.js public-read <public-url> --json` exposes the guarded JS runtime reader.
|
package/docs/hooks.md
CHANGED
|
@@ -121,7 +121,9 @@ surfaces and do not activate this prompt hook; code spans, code fences,
|
|
|
121
121
|
substrings, and compound tokens are also ignored. Natural `lit start work`
|
|
122
122
|
returns a `BLOCKED:` handoff that tells the user to run `/start-work` or
|
|
123
123
|
`/litclaude:start-work` with the approved plan, because a prompt hook cannot
|
|
124
|
-
switch Claude Code agents.
|
|
124
|
+
switch Claude Code agents. The `$start-work` shorthand and natural start-work
|
|
125
|
+
phrases activate only when they lead the prompt; diagnostic prose and copied or
|
|
126
|
+
blockquoted mentions remain inert.
|
|
125
127
|
|
|
126
128
|
LitClaude follows the LitClaude goal pattern as an honest native-binding attempt,
|
|
127
129
|
not as slash-command injection. If Claude Code exposes native goal tools, the
|
package/package.json
CHANGED
|
@@ -159,6 +159,7 @@ const containsSlashCommandMention = (text) => slashCommandMentionPattern.test(te
|
|
|
159
159
|
const findDollarCommandTrigger = (raw) => {
|
|
160
160
|
const match = /(?:^|\s)\$(deep-interview|dynamic-workflow|init-deep|lit-plan|lit-recap|lit-loop|start-work|review-work|litgoal|litresearch)(?=$|[^\w-])/u.exec(raw);
|
|
161
161
|
if (!match) return undefined;
|
|
162
|
+
if (match[1] === "start-work" && !/^\s*\$start-work(?=$|[^\w-])/u.test(raw)) return undefined;
|
|
162
163
|
return { ...triggerByToken[match[1]], source: "dollar-command" };
|
|
163
164
|
};
|
|
164
165
|
|
|
@@ -169,6 +170,7 @@ const findLeadingBareCommandTrigger = (raw) => {
|
|
|
169
170
|
};
|
|
170
171
|
|
|
171
172
|
const hasLitTrigger = (raw) => containsCompoundBoundedWord(raw, "lit") || containsCompoundBoundedWord(raw, "litwork");
|
|
173
|
+
const hasTrailingLitInvocation = (raw) => /(?:^|\s)lit(?:work)?\s*$/u.test(raw);
|
|
172
174
|
|
|
173
175
|
const hangulSyllable = /^[가-힣]$/u;
|
|
174
176
|
|
|
@@ -205,12 +207,13 @@ const findNaturalLitTrigger = (prompt) => {
|
|
|
205
207
|
if (hasExplicitTeamRoute(normalized)) return { ...triggerByToken["agent-team"], source: "natural-language" };
|
|
206
208
|
if (hasExplicitWorkflowRoute(normalized)) return { ...triggerByToken["dynamic-workflow"], source: "natural-language" };
|
|
207
209
|
if (containsPlainWord(normalized, "review")) return { ...triggerByToken["review-work"], source: "natural-language" };
|
|
208
|
-
if (
|
|
210
|
+
if (/^\s*lit(?:work)?\s+start\s+work(?=$|[^\w-])/u.test(normalized)) {
|
|
209
211
|
return { ...triggerByToken["start-work"], source: "natural-language", safetyBlock: true };
|
|
210
212
|
}
|
|
211
213
|
if (hasExplicitResearchRoute(normalized)) return { ...triggerByToken.litresearch, source: "natural-language" };
|
|
212
214
|
if (containsPlainWord(normalized, "goal")) return { ...triggerByToken.litgoal, source: "natural-language" };
|
|
213
215
|
if (containsPlainWord(normalized, "plan")) return { ...triggerByToken["lit-plan"], source: "natural-language" };
|
|
216
|
+
if (containsPlainWord(normalized, "start") && containsPlainWord(normalized, "work") && !hasTrailingLitInvocation(normalized)) return undefined;
|
|
214
217
|
return { ...triggerByToken["lit-loop"], source: "natural-language", softConfirm: true };
|
|
215
218
|
};
|
|
216
219
|
|
|
@@ -218,6 +221,7 @@ const findWorkflowTrigger = (prompt) => {
|
|
|
218
221
|
const raw = rawTriggerText(prompt);
|
|
219
222
|
const dollarTrigger = findDollarCommandTrigger(raw);
|
|
220
223
|
if (dollarTrigger) return dollarTrigger;
|
|
224
|
+
if (/(?:^|\s)\$start-work(?=$|[^\w-])/u.test(raw) && !hasTrailingLitInvocation(raw)) return undefined;
|
|
221
225
|
if (containsSlashCommandMention(raw)) return undefined;
|
|
222
226
|
const bareCommandTrigger = findLeadingBareCommandTrigger(raw);
|
|
223
227
|
if (bareCommandTrigger) return bareCommandTrigger;
|