litclaude-ai 0.3.20 → 0.3.22
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 +15 -0
- package/README.md +8 -7
- package/README_ko-KR.md +8 -7
- package/RELEASE_CHECKLIST.md +9 -8
- package/package.json +1 -1
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/bin/litclaude-hook.js +44 -14
- package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
- package/plugins/litclaude/commands/init-deep.md +19 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.22 - 2026-07-07 — full lit-family bare invocation release prep
|
|
4
|
+
|
|
5
|
+
- Prepare `litclaude-ai@0.3.22` for npm publication after extending bare lit-family prompt-hook routes to inject the installed `SKILL.md` body.
|
|
6
|
+
- Keep the safe natural-language `lit start work` BLOCKED handoff while explicit bare skill routes carry full prompt context.
|
|
7
|
+
|
|
8
|
+
## 0.3.21 - 2026-07-07 — full bare skill-body routing
|
|
9
|
+
|
|
10
|
+
- Inject bundled `SKILL.md` bodies for bare `hyperplan`, `litresearch`, `lit research`, `init-deep`, and explicit `$start-work` prompt-hook routes so activation carries the same substantive skill contract as the installed payload.
|
|
11
|
+
- Add `/litclaude:init-deep` command coverage while preserving slash-command, code-span, fenced-code, near-miss, and natural-language `lit start work` BLOCKED handoff guards.
|
|
12
|
+
|
|
13
|
+
## 0.3.20 - 2026-07-07 — bare hyperplan prompt routing
|
|
14
|
+
|
|
15
|
+
- Route bare `hyperplan` prompts into the planning-only Hyperplan surface while preserving slash-command, code-span, fenced-code, and near-miss trigger guards.
|
|
16
|
+
- Align README release badges, install examples, and release wording with the published `litclaude-ai@0.3.20` package.
|
|
17
|
+
|
|
3
18
|
## 0.3.19 - 2026-07-05 — hyperplan adversarial planning skill
|
|
4
19
|
|
|
5
20
|
- Add the `hyperplan` skill for planning-only adversarial critique before implementation: independent read-only lanes, cross-review, defense/refinement, surviving insight bundle, and `lit-plan` handoff.
|
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.22-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,13 @@
|
|
|
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.22` 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.
|
|
29
|
-
release materials
|
|
30
|
-
|
|
28
|
+
Future package releases still require explicit user approval. The v0.3.22
|
|
29
|
+
release materials inject the bundled skill bodies for bare `hyperplan`,
|
|
30
|
+
`litresearch`, `lit research`, `init-deep`, and explicit `$start-work` prompt-hook routes while
|
|
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
|
|
31
32
|
WSL2/Windows Terminal truecolor HUD gradient fix, the v0.3.15 Korean AI slop
|
|
32
33
|
remover workflow, the v0.3.13 public-source reader runtime, litresearch
|
|
33
34
|
activation/read-only polish, and installer permission-preference discipline.
|
|
@@ -112,7 +113,7 @@ directory, the normal install command works:
|
|
|
112
113
|
|
|
113
114
|
```bash
|
|
114
115
|
cd /tmp
|
|
115
|
-
npx --yes litclaude-ai@0.3.
|
|
116
|
+
npx --yes litclaude-ai@0.3.22 install
|
|
116
117
|
```
|
|
117
118
|
|
|
118
119
|
Validate the installed plugin:
|
|
@@ -125,7 +126,7 @@ The installer also sets Claude Code's `statusLine` command to the packaged
|
|
|
125
126
|
LitClaude HUD. A typical no-color render starts like:
|
|
126
127
|
|
|
127
128
|
```text
|
|
128
|
-
[🔥LITCLAUDE v0.3.
|
|
129
|
+
[🔥LITCLAUDE v0.3.22] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
129
130
|
```
|
|
130
131
|
|
|
131
132
|
The `↻` suffix is a compact rate-limit reset countdown. It is separated from
|
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.22-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,14 @@
|
|
|
26
26
|
> 설치되므로, 매번 긴 `--plugin-dir` 없이 일반 `claude` 실행에서
|
|
27
27
|
> LitClaude skill과 hook을 불러올 수 있습니다.
|
|
28
28
|
|
|
29
|
-
현재 checkout은 `litclaude-ai@0.3.
|
|
29
|
+
현재 checkout은 `litclaude-ai@0.3.22` 배포 준비용으로 정리되어 있습니다. 목적은
|
|
30
30
|
다른 PC에서도 빠르게 설치하기 위한 개인용 package metadata를 갖추는 것입니다.
|
|
31
31
|
npm package metadata를 준비했다고 해서 홍보, 공개 저장소 운영, Claude
|
|
32
32
|
marketplace 등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
33
|
-
승인 후에 진행합니다. v0.3.
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
승인 후에 진행합니다. v0.3.22 release material은 bare `hyperplan`,
|
|
34
|
+
`litresearch`, `lit research`, `init-deep`, explicit `$start-work` prompt-hook route에
|
|
35
|
+
bundled skill body를 주입하면서, v0.3.19 adversarial planning
|
|
36
|
+
skill, v0.3.18 read-only `lit-recap` session recap surface, v0.3.17 별도 worker 기반 native `/goal`
|
|
36
37
|
launcher와 v0.3.16 WSL2/Windows Terminal truecolor HUD gradient fix, v0.3.15
|
|
37
38
|
Korean AI slop remover workflow, v0.3.13 public-source reader runtime,
|
|
38
39
|
litresearch activation/read-only polish를 유지합니다.
|
|
@@ -116,7 +117,7 @@ checkout을 먼저 해석해서 `sh: litclaude-ai: command not found`로 실패
|
|
|
116
117
|
|
|
117
118
|
```bash
|
|
118
119
|
cd /tmp
|
|
119
|
-
npx --yes litclaude-ai@0.3.
|
|
120
|
+
npx --yes litclaude-ai@0.3.22 install
|
|
120
121
|
```
|
|
121
122
|
|
|
122
123
|
설치 상태를 확인합니다.
|
|
@@ -129,7 +130,7 @@ installer는 Claude Code의 `statusLine` command도 packaged LitClaude HUD로
|
|
|
129
130
|
설정합니다. 색상을 제거한 예시는 다음처럼 시작합니다.
|
|
130
131
|
|
|
131
132
|
```text
|
|
132
|
-
[🔥LITCLAUDE v0.3.
|
|
133
|
+
[🔥LITCLAUDE v0.3.22] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
133
134
|
```
|
|
134
135
|
|
|
135
136
|
`↻` 표시는 rate-limit reset까지 남은 시간을 짧게 보여주는 countdown입니다.
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# LitClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: `litclaude-ai@0.3.
|
|
4
|
-
|
|
3
|
+
Status: `litclaude-ai@0.3.22` is the current release candidate — a full bare
|
|
4
|
+
skill-body prompt-hook routing release on top of the planning-only Hyperplan skill and read-only `lit-recap`
|
|
5
5
|
session recap surface (command, skill, and bounded hook routing
|
|
6
6
|
including the Korean `리캡` trigger), the dry-run-first native `/goal`
|
|
7
7
|
worker launcher, WSL2 HUD gradient hotfix, Korean AI-slop removal workflow
|
|
@@ -12,9 +12,9 @@ side-effect-free, the launcher starts only a separate Claude Code
|
|
|
12
12
|
print/background worker, and the release preserves the Korean polishing
|
|
13
13
|
command, strict multi-agent review pipeline, fidelity guardrails, package
|
|
14
14
|
hygiene checks, native route gates, and safe start-work handoff behavior.
|
|
15
|
-
`package.json` is aligned to `0.3.
|
|
16
|
-
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.
|
|
17
|
-
plugin-local MCP server reports `0.3.
|
|
15
|
+
`package.json` is aligned to `0.3.22`,
|
|
16
|
+
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.22`, and the
|
|
17
|
+
plugin-local MCP server reports `0.3.22`.
|
|
18
18
|
|
|
19
19
|
This release carries the v0.2.2 Dynamic workflow hardening surfaces:
|
|
20
20
|
`/dynamic-workflow`, `workflow-check --json`, native `/goal` fallback guidance,
|
|
@@ -63,9 +63,10 @@ No npm publication is required for this track.
|
|
|
63
63
|
Before requesting publication approval, confirm these artifacts from the current
|
|
64
64
|
checkout:
|
|
65
65
|
|
|
66
|
-
- `package.json` version is `0.3.
|
|
67
|
-
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.
|
|
68
|
-
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.
|
|
66
|
+
- `package.json` version is `0.3.22`.
|
|
67
|
+
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.22`.
|
|
68
|
+
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.22`.
|
|
69
|
+
- Prompt-hook tests cover bundled `SKILL.md` body injection for bare `hyperplan`, `litresearch`, `lit research`, `init-deep`, and explicit `$start-work`, while natural-language `lit start work` stays BLOCKED.
|
|
69
70
|
- `lit search` and `lit query` route to `/litclaude:litresearch` without activating on slash mentions, code spans, or non-lit prompts.
|
|
70
71
|
- Litresearch web lanes require public API/feed preference, validator-first checks, route traces, prompt-injection quarantine, and honest auth/paywall/private-data stop reasons.
|
|
71
72
|
- `node bin/litclaude-ai.js public-read <public-url> --json` exposes the guarded JS runtime reader.
|
package/package.json
CHANGED
|
@@ -48,17 +48,18 @@ const plainWordBoundary = /^[A-Za-z0-9]$/u;
|
|
|
48
48
|
const compoundWordBoundary = /^[A-Za-z0-9_-]$/u;
|
|
49
49
|
|
|
50
50
|
const triggerByToken = {
|
|
51
|
-
"deep-interview": { command: "/litclaude:deep-interview", skill: "Skill(deep-interview)", discipline: "deep-interview" },
|
|
52
|
-
"dynamic-workflow": { command: "/litclaude:dynamic-workflow", skill: "Skill(lit-loop)", discipline: "dynamic-workflow" },
|
|
53
|
-
"agent-team": { command: "/litclaude:lit-loop", skill: "Skill(lit-loop)", discipline: "agent-team" },
|
|
54
|
-
hyperplan: { command: "/litclaude:lit-plan", skill: "Skill(hyperplan)", discipline: "lit-plan" },
|
|
55
|
-
"
|
|
56
|
-
"lit-
|
|
57
|
-
"lit-
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
"deep-interview": { command: "/litclaude:deep-interview", skill: "Skill(deep-interview)", skillId: "deep-interview", discipline: "deep-interview" },
|
|
52
|
+
"dynamic-workflow": { command: "/litclaude:dynamic-workflow", skill: "Skill(lit-loop)", skillId: "lit-loop", discipline: "dynamic-workflow" },
|
|
53
|
+
"agent-team": { command: "/litclaude:lit-loop", skill: "Skill(lit-loop)", skillId: "lit-loop", discipline: "agent-team" },
|
|
54
|
+
hyperplan: { command: "/litclaude:lit-plan", skill: "Skill(hyperplan)", skillId: "hyperplan", discipline: "lit-plan" },
|
|
55
|
+
"init-deep": { command: "/litclaude:init-deep", skill: "Skill(init-deep)", skillId: "init-deep", discipline: "init-deep" },
|
|
56
|
+
"lit-plan": { command: "/litclaude:lit-plan", skill: "Skill(lit-plan)", skillId: "lit-plan", discipline: "lit-plan" },
|
|
57
|
+
"lit-recap": { command: "/litclaude:lit-recap", skill: "Skill(lit-recap)", skillId: "lit-recap", discipline: "lit-recap" },
|
|
58
|
+
"lit-loop": { command: "/litclaude:lit-loop", skill: "Skill(lit-loop)", skillId: "lit-loop", discipline: "lit-loop" },
|
|
59
|
+
"start-work": { command: "/litclaude:start-work", skill: "Skill(start-work)", skillId: "start-work", discipline: "start-work" },
|
|
60
|
+
"review-work": { command: "/litclaude:review-work", skill: "Skill(review-work)", skillId: "review-work", discipline: "review-work" },
|
|
61
|
+
litgoal: { command: "/litclaude:litgoal", skill: "Skill(litgoal)", skillId: "litgoal", discipline: "litgoal" },
|
|
62
|
+
litresearch: { command: "/litclaude:litresearch", skill: "Skill(litresearch)", skillId: "litresearch", discipline: "litresearch" },
|
|
62
63
|
};
|
|
63
64
|
|
|
64
65
|
const modeContracts = {
|
|
@@ -69,11 +70,27 @@ const modeContracts = {
|
|
|
69
70
|
"review-work": "Mode contract: review-work runs a five-lane review: goal/constraints, real-surface QA, code quality, security, and docs/package/context readiness. PASS requires evidence from every applicable lane.",
|
|
70
71
|
litresearch: "Mode contract: litresearch uses sourced evidence, separates verified facts from hypotheses, keeps a route trace for search/query lanes, cites the search/runtime surface used, and reports residual uncertainty. If the user asks for read-only or no-write research, ask before writing local journal files and use transcript-only tracking unless they approve disk writes.",
|
|
71
72
|
litgoal: "Mode contract: litgoal binds one outcome-shaped objective plus checkable criteria, each with scenario, real surface, and observable evidence.",
|
|
73
|
+
"init-deep": "Mode contract: init-deep creates or refreshes sparse AGENTS.md guidance after reading existing guidance and real repo structure. Preserve local instructions and user changes; create child files only where directory-specific conventions justify them.",
|
|
72
74
|
"deep-interview": "Mode contract: deep-interview clarifies vague requirements before planning or implementation, without inventing acceptance criteria.",
|
|
73
75
|
"dynamic-workflow": "Mode contract: dynamic-workflow is opt-in orchestration for broad, risky, parallel, or long-running work; propose it first and only call Workflow after user opt-in or existing session permission.",
|
|
74
76
|
"agent-team": "Mode contract: agent-team is setup-gated native Claude Code teammate orchestration. Spawn teammates only when experimental teams are enabled and the user approves roles, scope boundaries, acceptance criteria, wait, and synthesis instructions.",
|
|
75
77
|
};
|
|
76
78
|
|
|
79
|
+
const staticSkillBodyContext = ({ skillId, safetyBlock }) => {
|
|
80
|
+
if (!skillId || safetyBlock) return [];
|
|
81
|
+
try {
|
|
82
|
+
const body = readFileSync(new URL(`../skills/${skillId}/SKILL.md`, import.meta.url), "utf8").trim();
|
|
83
|
+
if (!body) return [];
|
|
84
|
+
return [
|
|
85
|
+
`<litclaude-skill-body name="${skillId}">
|
|
86
|
+
${body}
|
|
87
|
+
</litclaude-skill-body>`,
|
|
88
|
+
];
|
|
89
|
+
} catch {
|
|
90
|
+
return [`WARNING: Skill(${skillId}) was requested, but the bundled SKILL.md body could not be loaded from the LitClaude plugin payload.`];
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
77
94
|
const withoutCode = (text) => text.replace(/```[\s\S]*?```/gu, " ").replace(/`[^`]*`/gu, " ");
|
|
78
95
|
const rawTriggerText = (text) => withoutCode(text).toLowerCase();
|
|
79
96
|
const normalizedTriggerText = (text) => rawTriggerText(text).replace(/[_-]+/gu, " ");
|
|
@@ -106,11 +123,13 @@ const slashCommandMentions = [
|
|
|
106
123
|
"/dynamic-workflow",
|
|
107
124
|
"/goal",
|
|
108
125
|
"/hyperplan",
|
|
126
|
+
"/init-deep",
|
|
109
127
|
"/lit-loop",
|
|
110
128
|
"/lit-plan",
|
|
111
129
|
"/lit-recap",
|
|
112
130
|
"/litclaude:deep-interview",
|
|
113
131
|
"/litclaude:dynamic-workflow",
|
|
132
|
+
"/litclaude:init-deep",
|
|
114
133
|
"/litclaude:lit-loop",
|
|
115
134
|
"/litclaude:lit-plan",
|
|
116
135
|
"/litclaude:lit-recap",
|
|
@@ -136,11 +155,17 @@ const slashLitPhrasePattern = /(^|\s)\/lit(?:work)?\s+(?:plan|recap|review|resea
|
|
|
136
155
|
const containsSlashCommandMention = (text) => slashCommandMentionPattern.test(text) || slashLitPhrasePattern.test(text);
|
|
137
156
|
|
|
138
157
|
const findDollarCommandTrigger = (raw) => {
|
|
139
|
-
const match = /(?:^|\s)\$(deep-interview|dynamic-workflow|lit-plan|lit-recap|lit-loop|start-work|review-work|litgoal|litresearch)(?=$|[^\w-])/u.exec(raw);
|
|
158
|
+
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);
|
|
140
159
|
if (!match) return undefined;
|
|
141
160
|
return { ...triggerByToken[match[1]], source: "dollar-command" };
|
|
142
161
|
};
|
|
143
162
|
|
|
163
|
+
const findLeadingBareCommandTrigger = (raw) => {
|
|
164
|
+
const match = /^\s*(deep-interview|init-deep|lit-plan|lit-recap|lit-loop|start-work|review-work|litgoal|litresearch)(?=$|[^\w-])/u.exec(raw);
|
|
165
|
+
if (!match) return undefined;
|
|
166
|
+
return { ...triggerByToken[match[1]], source: "bare-command" };
|
|
167
|
+
};
|
|
168
|
+
|
|
144
169
|
const hasLitTrigger = (raw) => containsCompoundBoundedWord(raw, "lit") || containsCompoundBoundedWord(raw, "litwork");
|
|
145
170
|
|
|
146
171
|
const hangulSyllable = /^[가-힣]$/u;
|
|
@@ -192,7 +217,10 @@ const findWorkflowTrigger = (prompt) => {
|
|
|
192
217
|
const dollarTrigger = findDollarCommandTrigger(raw);
|
|
193
218
|
if (dollarTrigger) return dollarTrigger;
|
|
194
219
|
if (containsSlashCommandMention(raw)) return undefined;
|
|
220
|
+
const bareCommandTrigger = findLeadingBareCommandTrigger(raw);
|
|
221
|
+
if (bareCommandTrigger) return bareCommandTrigger;
|
|
195
222
|
if (containsCompoundBoundedWord(raw, "hyperplan")) return { ...triggerByToken.hyperplan, source: "bare-command" };
|
|
223
|
+
if (containsCompoundBoundedWord(raw, "init-deep")) return { ...triggerByToken["init-deep"], source: "bare-command" };
|
|
196
224
|
const recapTrigger = findRecapTrigger(raw);
|
|
197
225
|
if (recapTrigger) return recapTrigger;
|
|
198
226
|
return findNaturalLitTrigger(prompt);
|
|
@@ -230,15 +258,16 @@ const teamGateContext = (discipline) => {
|
|
|
230
258
|
return ["Native agent team setup gate: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is not set, so do not claim a teammate launch. To enable native teams, launch with `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude --teammate-mode auto` or set `env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` plus optional `teammateMode: auto`; fallback to subagent delegation or Dynamic workflow meanwhile."];
|
|
231
259
|
};
|
|
232
260
|
|
|
233
|
-
const recapContext = ({ command, skill, discipline, source }) => [
|
|
261
|
+
const recapContext = ({ command, skill, skillId, discipline, source }) => [
|
|
234
262
|
`Treat this prompt as an explicit request to use LitClaude ${discipline} discipline now; load or follow ${command} / ${skill} semantics before ordinary task execution.`,
|
|
235
263
|
modeContracts[discipline],
|
|
236
264
|
"Read-only recap surfaces: read .litclaude/litgoal/goals.json, .litclaude/litgoal/ledger.jsonl, and .litclaude/litgoal/brief.md when present (plus repo-level evidence/ paths), and combine them with current-session context. The read-only `litclaude-ai litgoal status --json` and `criteria` subcommands are the only litgoal CLI reads allowed.",
|
|
237
265
|
"Output contract: reply in Korean by default using the fixed lit-recap headers from Skill(lit-recap); switch the body to English only when the user asks (--en / in English / 영어); produce the brief `## ⚡ 요약` digest on --brief / 짧게; keep technical tokens (paths, commands, identifiers) verbatim.",
|
|
238
266
|
`Activation source: ${source ?? "legacy"}. Slash commands and slash-command mentions are handled by Claude Code's native command surface and do not activate this prompt hook. Code spans, code fences, substrings, and compound tokens are ignored. Secret-bearing prompt material is never persisted raw; recap output may only reference redacted summaries and evidence paths.`,
|
|
267
|
+
...staticSkillBodyContext({ skillId }),
|
|
239
268
|
].join(" ");
|
|
240
269
|
|
|
241
|
-
const litworkContext = ({ command, skill, discipline, softConfirm, safetyBlock, source }, input) => [
|
|
270
|
+
const litworkContext = ({ command, skill, skillId, discipline, softConfirm, safetyBlock, source }, input) => [
|
|
242
271
|
...(safetyBlock
|
|
243
272
|
? ["BLOCKED: Natural-language start-work activation cannot switch the active Claude Code agent. Run `/start-work` (or `/litclaude:start-work`) with the approved plan so Claude Code can use the correct execution surface; do not continue implementation from this prompt hook."]
|
|
244
273
|
: []),
|
|
@@ -258,6 +287,7 @@ const litworkContext = ({ command, skill, discipline, softConfirm, safetyBlock,
|
|
|
258
287
|
"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.",
|
|
259
288
|
"Subagent delegation: route planning to litclaude:prometheus-planner, implementation to litclaude:boulder-executor, verification to litclaude:oracle-verifier, hands-on QA to litclaude:qa-runner, code/security review to litclaude:quality-reviewer, and local-first research to litclaude:librarian-researcher when Claude Code subagents or Dynamic workflow lanes are available. LitClaude subagents are exposed under the litclaude: namespace, so pass the exact namespaced id (e.g. litclaude:boulder-executor) as the Agent/Task tool subagent_type, not the bare name.",
|
|
260
289
|
"Subagent reliability: each child assignment starts with TASK: and includes DELIVERABLE, SCOPE, and VERIFY; use short wait cycles, treat timeouts as no-update signals, and fallback only after a missing deliverable, acknowledgement-only reply, or BLOCKED: report.",
|
|
290
|
+
...staticSkillBodyContext({ skillId, safetyBlock }),
|
|
261
291
|
...(softConfirm ? ["Soft-confirm: the bare keyword 'lit' activated this hook. Before committing to the full lit-loop, briefly confirm with the user that they intended to start a litwork execution loop (a stray English 'lit' is recoverable)."] : []),
|
|
262
292
|
].join(" ");
|
|
263
293
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or refresh sparse AGENTS.md guidance with the LitClaude init-deep discipline.
|
|
3
|
+
argument-hint: '[--create-new] [--max-depth=N]'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use the `init-deep` skill for repository guidance initialization.
|
|
7
|
+
|
|
8
|
+
Read existing `AGENTS.md`, `CLAUDE.md`, README files, package manifests,
|
|
9
|
+
handoffs, and the real directory structure before proposing edits. Preserve local
|
|
10
|
+
instructions, secrets boundaries, ignored runtime state, and user changes.
|
|
11
|
+
|
|
12
|
+
Only create child `AGENTS.md` files where a directory has distinct conventions,
|
|
13
|
+
entry points, test/build commands, or ownership rules future agents would
|
|
14
|
+
otherwise rediscover. Keep each file concise: what differs from the parent,
|
|
15
|
+
where to look, what not to touch, and which commands verify changes.
|
|
16
|
+
|
|
17
|
+
Before editing, state success criteria and choose the minimum-first guidance
|
|
18
|
+
hierarchy that satisfies them. After editing, report files created, files
|
|
19
|
+
updated, directories skipped, evidence used, and verification commands.
|