litclaude-ai 0.3.28 → 0.3.30
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 +23 -0
- package/README.md +40 -8
- package/README_ko-KR.md +41 -10
- package/RELEASE_CHECKLIST.md +52 -9
- package/bin/litclaude-ai.js +64 -5
- package/docs/hooks.md +23 -2
- package/docs/workflow-compatibility-audit.md +4 -0
- package/package.json +1 -1
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/bin/litclaude-hook.js +55 -2
- package/plugins/litclaude/bin/litclaude-mcp.js +3 -5
- package/plugins/litclaude/bin/litclaude-scientific-visualization-doctor.js +135 -0
- package/plugins/litclaude/commands/lit-handoff.md +69 -0
- package/plugins/litclaude/commands/lit-scientific-visualization.md +65 -0
- package/plugins/litclaude/commands/litresearch.md +24 -1
- package/plugins/litclaude/lib/bundled-skills-integrity.mjs +105 -0
- package/plugins/litclaude/lib/public-source-reader/barrier-detection.mjs +35 -0
- package/plugins/litclaude/lib/public-source-reader/content-proof.mjs +94 -0
- package/plugins/litclaude/lib/public-source-reader/guard.mjs +84 -2
- package/plugins/litclaude/lib/public-source-reader/pinned-request.mjs +56 -0
- package/plugins/litclaude/lib/public-source-reader/reader.mjs +71 -132
- package/plugins/litclaude/lib/public-source-reader/receipts.mjs +126 -0
- package/plugins/litclaude/lib/public-source-reader/routes.mjs +49 -14
- package/plugins/litclaude/lib/public-source-reader/secret-redaction.mjs +84 -0
- package/plugins/litclaude/lib/public-source-reader/validator.mjs +31 -5
- package/plugins/litclaude/skills/lit-handoff/SKILL.md +75 -0
- package/plugins/litclaude/skills/lit-scientific-visualization/SKILL.md +80 -0
- package/plugins/litclaude/skills/litresearch/SKILL.md +87 -7
- package/plugins/litclaude/vendor/022_handoff/SKILL.md +199 -0
- package/plugins/litclaude/vendor/022_handoff/evals/evals.json +154 -0
- package/plugins/litclaude/vendor/022_handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
- package/plugins/litclaude/vendor/022_handoff/templates/HANDOFF.md +121 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/SKILL.md +283 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/assets/color_palettes.py +197 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/assets/nature.mplstyle +75 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/assets/presentation.mplstyle +74 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/assets/publication.mplstyle +78 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/evals/evals.json +158 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/color_palettes.md +380 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/journal_requirements.md +359 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/matplotlib_examples.md +608 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/publication_guidelines.md +217 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/references/seaborn_for_publications.md +293 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/scripts/figure_export.py +238 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/scripts/style_presets.py +467 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/tests/test_figure_export.py +51 -0
- package/plugins/litclaude/vendor/045_scientific-visualization/tests/test_style_presets.py +114 -0
- package/plugins/litclaude/vendor/NOTICE.md +8 -0
- package/plugins/litclaude/vendor/licenses/022_handoff-MIT.txt +21 -0
- package/plugins/litclaude/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
- package/plugins/litclaude/vendor/provenance/022_handoff.md +16 -0
- package/plugins/litclaude/vendor/provenance/045_scientific-visualization.md +34 -0
- package/scripts/doctor.mjs +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.30 - 2026-07-19 — LitResearch scientific records and public-reader hardening
|
|
4
|
+
|
|
5
|
+
- Added root-owned append-only claim/evidence records, bounded expansion and
|
|
6
|
+
sequential fallback, DOI normalization, PDF byte proof, and separate
|
|
7
|
+
metadata/acquisition/conversion/review states to LitResearch.
|
|
8
|
+
- Hardened public reads with connection-pinned DNS validation at every redirect,
|
|
9
|
+
broader private-address rejection, inert-content receipts, content proof, and
|
|
10
|
+
deep source-secret redaction.
|
|
11
|
+
- Removed installed CLI and MCP environment bypasses for private destinations
|
|
12
|
+
and expanded invocation, package, reader, and security regression coverage.
|
|
13
|
+
|
|
14
|
+
## 0.3.29 - 2026-07-18 — bundled handoff and scientific visualization
|
|
15
|
+
|
|
16
|
+
- Bundle the approved exact-source `022_handoff` and
|
|
17
|
+
`045_scientific-visualization` corpora with their licenses, provenance,
|
|
18
|
+
scripts, assets, and canonical-source integrity records.
|
|
19
|
+
- Add Claude-native command and exact-bare prompt-hook routes for `handoff` and
|
|
20
|
+
`lit-scientific-visualization`, including visible route-specific
|
|
21
|
+
`🔥 LITBURN IGNITED` banners and inert near-miss handling.
|
|
22
|
+
- Verify installed-package skill discovery, immutable payload checks, script and
|
|
23
|
+
asset path resolution, and honest read-only dependency diagnostics for the
|
|
24
|
+
scientific visualization workflow without silently installing Python packages.
|
|
25
|
+
|
|
3
26
|
## 0.3.28 - 2026-07-14 — explicit start-work activation
|
|
4
27
|
|
|
5
28
|
- Require the `$start-work` shorthand and natural `lit start work` activation
|
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.30-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.30` 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.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
|
|
28
|
+
Future package releases still require explicit user approval. The v0.3.30 release material strengthens LitResearch with root-owned scientific evidence records, DOI/PDF lifecycle receipts, bounded route coverage, and a connection-pinned public-source reader with inert-content and secret-redaction guarantees. The v0.3.29 release material bundles exact-source `lit-handoff` and `lit-scientific-visualization` skills with Claude-native commands, exact-bare hook invocation, visible LITBURN banners, installed-payload integrity checks, and read-only scientific dependency diagnostics. 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
|
|
@@ -78,7 +78,13 @@ activation/read-only polish, and installer permission-preference discipline.
|
|
|
78
78
|
`korean-ai-slop-remover`, `review-work`, `frontend-ui-ux`,
|
|
79
79
|
`git-master`, `comment-checker`, `rules`, `lsp`, `lsp-setup`, `litgoal`,
|
|
80
80
|
`deep-interview`, `hyperplan`, `init-deep`, `litresearch`,
|
|
81
|
-
`lit-plan`, `lit-recap`, `lit-loop`, `start-work`,
|
|
81
|
+
`lit-plan`, `lit-recap`, `lit-loop`, `start-work`, `lit-handoff`,
|
|
82
|
+
`lit-scientific-visualization`, and `visual-qa`
|
|
83
|
+
- **Bundled owner-authorized skills** - `lit-handoff` reads the complete immutable
|
|
84
|
+
four-file handoff source and supports the exact bare `handoff` prompt;
|
|
85
|
+
`lit-scientific-visualization` reads the complete immutable 16-file authored
|
|
86
|
+
source, resolves packaged scripts and assets, and reports missing Python or
|
|
87
|
+
matplotlib as `DEGRADED` without silently installing dependencies
|
|
82
88
|
- **Auxiliary Skill-discovery entries** - `frontend-ui-ux`, `git-master`,
|
|
83
89
|
`lsp-setup`, and `visual-qa` are shipped skill ids discoverable through
|
|
84
90
|
Claude Code's native Skill discovery; they intentionally do not add extra
|
|
@@ -125,7 +131,7 @@ directory, the normal install command works:
|
|
|
125
131
|
|
|
126
132
|
```bash
|
|
127
133
|
cd /tmp
|
|
128
|
-
npx --yes litclaude-ai@0.3.
|
|
134
|
+
npx --yes litclaude-ai@0.3.30 install
|
|
129
135
|
```
|
|
130
136
|
|
|
131
137
|
Validate the installed plugin:
|
|
@@ -138,7 +144,7 @@ The installer also sets Claude Code's `statusLine` command to the packaged
|
|
|
138
144
|
LitClaude HUD. A typical no-color render starts like:
|
|
139
145
|
|
|
140
146
|
```text
|
|
141
|
-
[🔥LITCLAUDE v0.3.
|
|
147
|
+
[🔥LITCLAUDE v0.3.30] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
142
148
|
```
|
|
143
149
|
|
|
144
150
|
The `↻` suffix is a compact rate-limit reset countdown. It is separated from
|
|
@@ -247,6 +253,10 @@ $litgoal <goal operation>
|
|
|
247
253
|
/litgoal <goal operation>
|
|
248
254
|
$start-work plans/example-plan.md
|
|
249
255
|
/start-work plans/example-plan.md
|
|
256
|
+
handoff
|
|
257
|
+
/litclaude:lit-handoff
|
|
258
|
+
lit-scientific-visualization
|
|
259
|
+
/litclaude:lit-scientific-visualization <publication figure request>
|
|
250
260
|
```
|
|
251
261
|
|
|
252
262
|
Expected behavior: LitClaude's prompt hook adds mode-specific `LITWORK MODE
|
|
@@ -359,8 +369,9 @@ actually supports the claim, keep a route trace with attempted and untried
|
|
|
359
369
|
surfaces, treat fetched content as untrusted prompt-injection data, and stop
|
|
360
370
|
honestly at authentication, paywall, private-data, or credential boundaries.
|
|
361
371
|
The runtime JSON names `fetchAttempts`, a single `fetchVerdict`, untried safe
|
|
362
|
-
routes,
|
|
363
|
-
|
|
372
|
+
routes, a starter claim/source graph, and `contentSafety` flags that mark fetched
|
|
373
|
+
text as untrusted data whose instructions are ignored, so HTTP 200 is never
|
|
374
|
+
treated as proof that the page supports a claim.
|
|
364
375
|
If you ask for read-only, no-write, or transcript-only research, LitClaude
|
|
365
376
|
should ask before creating `.litclaude/litresearch/<slug>/`; without approval it
|
|
366
377
|
keeps the journal in the transcript/TodoWrite only. The guaranteed runtime
|
|
@@ -407,6 +418,8 @@ namespaced commands when you want explicit LitClaude skill activation:
|
|
|
407
418
|
/litclaude:review-work <scope to review>
|
|
408
419
|
/litclaude:litgoal <goal operation>
|
|
409
420
|
/litclaude:korean-ai-slop-remover <Korean prose or polish request>
|
|
421
|
+
/litclaude:lit-handoff
|
|
422
|
+
/litclaude:lit-scientific-visualization <publication figure request>
|
|
410
423
|
/litclaude:start-work plans/example-plan.md
|
|
411
424
|
```
|
|
412
425
|
|
|
@@ -430,6 +443,25 @@ the prose being edited as data, preserve facts, numbers, names, quotes, claims,
|
|
|
430
443
|
scope, and uncertainty, and avoid adding outside facts unless the user asks for
|
|
431
444
|
research.
|
|
432
445
|
|
|
446
|
+
Use exact bare `handoff`, `/litclaude:lit-handoff`, or
|
|
447
|
+
`Skill(lit-handoff)` for a verified continuation packet. Only the standalone
|
|
448
|
+
bare word activates the prompt hook; mentions, quoted text, compound prompts,
|
|
449
|
+
and slash-command text remain inert. The route begins with
|
|
450
|
+
`🔥 LITBURN IGNITED · lit-handoff 🔥` and reads the full packaged canonical
|
|
451
|
+
source before selecting a destination.
|
|
452
|
+
|
|
453
|
+
Use exact bare `lit-scientific-visualization`,
|
|
454
|
+
`/litclaude:lit-scientific-visualization`, or
|
|
455
|
+
`Skill(lit-scientific-visualization)` for publication-ready plotting. Only the
|
|
456
|
+
standalone bare token activates the prompt hook; generic visualization prose,
|
|
457
|
+
mentions, quoted or fenced text, mixed prompts, and slash-command text remain
|
|
458
|
+
inert at that hook. The exact-bare hook shows the banner as a visible system
|
|
459
|
+
message and injects the full adapter and canonical source. The route begins with
|
|
460
|
+
`🔥 LITBURN IGNITED · lit-scientific-visualization 🔥`, resolves `scripts/` and
|
|
461
|
+
`assets/` from the installed package, and uses a read-only dependency preflight.
|
|
462
|
+
Python/matplotlib or optional scientific packages are never installed silently;
|
|
463
|
+
unavailable capabilities are reported as `DEGRADED` with the affected workflow.
|
|
464
|
+
|
|
433
465
|
## Commands
|
|
434
466
|
|
|
435
467
|
| 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-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.30-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.30` 배포 준비용으로 정리되어 있습니다. 목적은
|
|
30
30
|
다른 PC에서도 빠르게 설치하기 위한 개인용 package metadata를 갖추는 것입니다.
|
|
31
31
|
npm package metadata를 준비했다고 해서 홍보, 공개 저장소 운영, Claude
|
|
32
32
|
marketplace 등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
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`,
|
|
33
|
+
승인 후에 진행합니다. v0.3.30 release material은 root-owned scientific evidence record, DOI/PDF lifecycle receipt, bounded route coverage, connection-pinned public-source reader, inert-content 및 secret-redaction 보장을 포함하는 LitResearch 강화판입니다. v0.3.29 release material은 exact-source `lit-handoff`와 `lit-scientific-visualization` skill, Claude-native command, exact-bare hook invocation, visible LITBURN banner, installed-payload integrity check, read-only scientific dependency diagnostic을 함께 포함합니다. 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`
|
|
@@ -82,7 +82,12 @@ litresearch activation/read-only polish를 유지합니다.
|
|
|
82
82
|
`korean-ai-slop-remover`, `review-work`, `frontend-ui-ux`,
|
|
83
83
|
`git-master`, `comment-checker`, `rules`, `lsp`, `lsp-setup`, `litgoal`,
|
|
84
84
|
`deep-interview`, `hyperplan`, `init-deep`, `litresearch`,
|
|
85
|
-
`lit-plan`, `lit-recap`, `lit-loop`, `start-work`, `
|
|
85
|
+
`lit-plan`, `lit-recap`, `lit-loop`, `start-work`, `lit-handoff`,
|
|
86
|
+
`lit-scientific-visualization`, `visual-qa`
|
|
87
|
+
- **원본 보존 bundled skills** - `lit-handoff`는 승인된 4개 handoff 원본
|
|
88
|
+
파일을, `lit-scientific-visualization`은 승인된 authored 원본 16개를
|
|
89
|
+
byte-identical하게 포함합니다. Python 또는 matplotlib이 없으면 자동
|
|
90
|
+
설치하지 않고 해당 capability를 `DEGRADED`로 보고합니다.
|
|
86
91
|
- **Auxiliary Skill-discovery entries** - `frontend-ui-ux`, `git-master`,
|
|
87
92
|
`lsp-setup`, `visual-qa`는 Claude Code native Skill discovery로 찾는
|
|
88
93
|
shipped skill id입니다. 별도의 slash route나 dollar prompt route를 추가하지
|
|
@@ -126,7 +131,7 @@ checkout을 먼저 해석해서 `sh: litclaude-ai: command not found`로 실패
|
|
|
126
131
|
|
|
127
132
|
```bash
|
|
128
133
|
cd /tmp
|
|
129
|
-
npx --yes litclaude-ai@0.3.
|
|
134
|
+
npx --yes litclaude-ai@0.3.30 install
|
|
130
135
|
```
|
|
131
136
|
|
|
132
137
|
설치 상태를 확인합니다.
|
|
@@ -139,7 +144,7 @@ installer는 Claude Code의 `statusLine` command도 packaged LitClaude HUD로
|
|
|
139
144
|
설정합니다. 색상을 제거한 예시는 다음처럼 시작합니다.
|
|
140
145
|
|
|
141
146
|
```text
|
|
142
|
-
[🔥LITCLAUDE v0.3.
|
|
147
|
+
[🔥LITCLAUDE v0.3.30] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
143
148
|
```
|
|
144
149
|
|
|
145
150
|
`↻` 표시는 rate-limit reset까지 남은 시간을 짧게 보여주는 countdown입니다.
|
|
@@ -240,6 +245,10 @@ $litgoal <goal operation>
|
|
|
240
245
|
/litgoal <goal operation>
|
|
241
246
|
$start-work plans/example-plan.md
|
|
242
247
|
/start-work plans/example-plan.md
|
|
248
|
+
handoff
|
|
249
|
+
/litclaude:lit-handoff
|
|
250
|
+
lit-scientific-visualization
|
|
251
|
+
/litclaude:lit-scientific-visualization <출판용 figure 요청>
|
|
243
252
|
```
|
|
244
253
|
|
|
245
254
|
기대 동작은 LitClaude prompt hook이 자연어 LIT route별 mode-specific
|
|
@@ -331,8 +340,9 @@ plan을 must not implement 합니다. 완료된 작업은 기존 5-lane review
|
|
|
331
340
|
investigation 요청에 한해 `/litclaude:litresearch`로 라우팅됩니다. Web lane은
|
|
332
341
|
public API/feed를 먼저 확인하고, HTTP status만 믿지 않고 실제 claim이 들어
|
|
333
342
|
있는지 검증하며, 시도한 route와 남은 route, stop reason을 route trace로
|
|
334
|
-
남깁니다.
|
|
335
|
-
|
|
343
|
+
남깁니다. Runtime JSON의 `contentSafety`는 가져온 페이지 내용을 untrusted
|
|
344
|
+
data로 표시하고 그 안의 지시를 실행하지 않았음을 기계 판독 가능하게 남깁니다.
|
|
345
|
+
authentication/paywall/private data/credential 경계에서는 우회하지 않고
|
|
336
346
|
정직하게 멈춥니다. 사용자가 read-only, no-write, transcript-only 조사를
|
|
337
347
|
요청하면 LitClaude는 `.litclaude/litresearch/<slug>/` 생성 전에 먼저 확인해야
|
|
338
348
|
하며, 승인 전에는 transcript/TodoWrite에만 journal을 둡니다. Guaranteed runtime
|
|
@@ -345,8 +355,9 @@ surface는 JS-only direct public URL reader입니다. Dynamic `Workflow`,
|
|
|
345
355
|
litclaude public-read https://example.com/article --json
|
|
346
356
|
```
|
|
347
357
|
|
|
348
|
-
`public-read` 명령과 MCP `public_source_read`는
|
|
349
|
-
private-network, non-http(s) target을
|
|
358
|
+
`public-read` 명령과 MCP `public_source_read`는 localhost,
|
|
359
|
+
private-network, non-http(s) target을 거부하며 환경 변수로 이 경계를 해제하지
|
|
360
|
+
않습니다. site credential을 사용하거나
|
|
350
361
|
login/paywall을 우회하지 않으며, 막힌 소스는 public URL, exported artifact,
|
|
351
362
|
또는 excerpt를 받아 처리합니다.
|
|
352
363
|
|
|
@@ -380,6 +391,8 @@ command를 사용합니다.
|
|
|
380
391
|
/litclaude:review-work <검토할 범위>
|
|
381
392
|
/litclaude:litgoal <goal operation>
|
|
382
393
|
/litclaude:korean-ai-slop-remover <한국어 문장 또는 다듬기 요청>
|
|
394
|
+
/litclaude:lit-handoff
|
|
395
|
+
/litclaude:lit-scientific-visualization <출판용 figure 요청>
|
|
383
396
|
/litclaude:start-work plans/example-plan.md
|
|
384
397
|
```
|
|
385
398
|
|
|
@@ -403,6 +416,24 @@ mode에서 바로 다듬고, 길거나 민감하거나 review/redo/fidelity 확
|
|
|
403
416
|
범위, 불확실성을 보존하며, 사용자가 research를 요청하지 않으면 외부 사실을
|
|
404
417
|
추가하지 않습니다.
|
|
405
418
|
|
|
419
|
+
정확히 `handoff` 한 단어만 입력하거나 `/litclaude:lit-handoff`,
|
|
420
|
+
`Skill(lit-handoff)`를 사용하면 검증된 continuation packet 흐름이
|
|
421
|
+
시작됩니다. 언급, 인용, compound prompt, slash-command 문자열은 hook을
|
|
422
|
+
활성화하지 않습니다. 첫 줄은 `🔥 LITBURN IGNITED · lit-handoff 🔥`이고,
|
|
423
|
+
패키지에 포함된 원본을 전부 읽은 뒤 목적지를 결정합니다.
|
|
424
|
+
|
|
425
|
+
출판용 figure에는 정확한 bare `lit-scientific-visualization`,
|
|
426
|
+
`/litclaude:lit-scientific-visualization`, 또는
|
|
427
|
+
`Skill(lit-scientific-visualization)`을 사용합니다. 바깥 공백을 제외한 전체 prompt가
|
|
428
|
+
이 bare token과 일치할 때만 prompt hook이 활성화됩니다. 일반적인 visualize,
|
|
429
|
+
plot, chart 표현, 언급, 인용·fence, mixed prompt, slash-command 문자열은
|
|
430
|
+
비활성 상태를 유지합니다. exact-bare hook은 배너를 visible system message로 표시하고
|
|
431
|
+
전체 adapter와 canonical source를 주입합니다. 첫 줄은
|
|
432
|
+
`🔥 LITBURN IGNITED · lit-scientific-visualization 🔥`이며 설치된 패키지의
|
|
433
|
+
`scripts/`와 `assets/`를 사용합니다. Python, matplotlib, 선택 scientific
|
|
434
|
+
package는 몰래 설치하지 않고, 없으면 영향받는 workflow를 `DEGRADED`로
|
|
435
|
+
보고합니다.
|
|
436
|
+
|
|
406
437
|
## 명령어
|
|
407
438
|
|
|
408
439
|
| 명령어 | 용도 |
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
# LitClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: `litclaude-ai@0.3.
|
|
4
|
-
|
|
3
|
+
Status: `litclaude-ai@0.3.30` is the current release candidate — root-owned
|
|
4
|
+
scientific evidence records, DOI/PDF lifecycle receipts, bounded route coverage,
|
|
5
|
+
connection-pinned public-source reads, inert-content receipts, and deep secret
|
|
6
|
+
redaction, plus bundled
|
|
7
|
+
exact-source `lit-handoff` and `lit-scientific-visualization` skills with
|
|
8
|
+
Claude-native command routes, exact-bare hook invocation, visible LITBURN
|
|
9
|
+
banners, payload integrity checks, and read-only scientific dependency
|
|
10
|
+
diagnostics, plus explicit leading start-work activation guards and a structured five-stage interactive
|
|
5
11
|
installer with success/failure receipts and adaptive
|
|
6
12
|
planning, draft-plan review, and orchestration-safety release on top of the portable
|
|
7
13
|
details, public-read, litgoal-status, and evidence-wording release and the auxiliary
|
|
@@ -17,9 +23,9 @@ side-effect-free, the launcher starts only a separate Claude Code
|
|
|
17
23
|
print/background worker, and the release preserves the Korean polishing
|
|
18
24
|
command, strict multi-agent review pipeline, fidelity guardrails, package
|
|
19
25
|
hygiene checks, native route gates, and safe start-work handoff behavior.
|
|
20
|
-
`package.json` is aligned to `0.3.
|
|
21
|
-
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.
|
|
22
|
-
plugin-local MCP server reports `0.3.
|
|
26
|
+
`package.json` is aligned to `0.3.30`,
|
|
27
|
+
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.30`, and the
|
|
28
|
+
plugin-local MCP server reports `0.3.30`.
|
|
23
29
|
|
|
24
30
|
This release carries the v0.2.2 Dynamic workflow hardening surfaces:
|
|
25
31
|
`/dynamic-workflow`, `workflow-check --json`, native `/goal` fallback guidance,
|
|
@@ -63,19 +69,56 @@ Use this track when testing from the current checkout:
|
|
|
63
69
|
|
|
64
70
|
No npm publication is required for this track.
|
|
65
71
|
|
|
72
|
+
## v0.3.30 LitResearch and Public Reader Gates
|
|
73
|
+
|
|
74
|
+
Before requesting publication approval, confirm the installed LitResearch body
|
|
75
|
+
keeps the journal root-owned, preserves stable claim and scientific lifecycle
|
|
76
|
+
receipts, distinguishes access failure from route exhaustion, and documents the
|
|
77
|
+
deliberate non-port boundary. Confirm the public-source reader pins every
|
|
78
|
+
validated DNS answer and redirect connection, rejects private and mapped
|
|
79
|
+
addresses, treats fetched content as inert untrusted data, and redacts source URL
|
|
80
|
+
secrets from every receipt and extracted metadata surface.
|
|
81
|
+
|
|
82
|
+
## v0.3.29 Bundled Skill Gates
|
|
83
|
+
|
|
84
|
+
Before requesting publication approval, confirm these artifacts from the current
|
|
85
|
+
checkout and from an isolated install of the packed tarball:
|
|
86
|
+
|
|
87
|
+
- `lit-handoff` ships the approved exact four-file canonical corpus plus license
|
|
88
|
+
and provenance metadata, and exact bare `handoff` shows
|
|
89
|
+
`🔥 LITBURN IGNITED · lit-handoff 🔥` while quoted, fenced, mixed, slash, and
|
|
90
|
+
explanatory near misses remain inert.
|
|
91
|
+
- `lit-scientific-visualization` ships the approved exact 16-file canonical
|
|
92
|
+
corpus plus license and provenance metadata, and exact bare
|
|
93
|
+
`lit-scientific-visualization` shows
|
|
94
|
+
`🔥 LITBURN IGNITED · lit-scientific-visualization 🔥` while quoted, fenced,
|
|
95
|
+
mixed, slash, generic-visualization, and explanatory near misses remain inert.
|
|
96
|
+
- The scientific adapter reads the full canonical source, resolves packaged
|
|
97
|
+
`scripts/` and `assets/`, and exposes the shipped style presets, figure export
|
|
98
|
+
helpers, and color palettes from the installed package rather than checkout-only
|
|
99
|
+
paths.
|
|
100
|
+
- Installed-payload integrity checks compare the immutable source records and
|
|
101
|
+
fail closed on missing or changed bundled files.
|
|
102
|
+
- `litclaude-scientific-visualization-doctor.js --json` performs read-only
|
|
103
|
+
dependency checks, never installs Python packages, and reports unsupported
|
|
104
|
+
optional workflows as `DEGRADED` rather than claiming availability.
|
|
105
|
+
- `npm pack --dry-run --json` and an isolated consumer install include both
|
|
106
|
+
command routes, both adapted skills, both canonical-source trees, provenance,
|
|
107
|
+
licenses, scripts, assets, and the scientific dependency doctor.
|
|
108
|
+
|
|
66
109
|
## v0.2.2 Dynamic Workflow Hardening Gates
|
|
67
110
|
|
|
68
111
|
Before requesting publication approval, confirm these artifacts from the current
|
|
69
112
|
checkout:
|
|
70
113
|
|
|
71
|
-
- `package.json` version is `0.3.
|
|
72
|
-
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.
|
|
73
|
-
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.
|
|
114
|
+
- `package.json` version is `0.3.30`.
|
|
115
|
+
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.30`.
|
|
116
|
+
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.30`.
|
|
74
117
|
- 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.
|
|
75
118
|
- `lit search` and `lit query` route to `/litclaude:litresearch` without activating on slash mentions, code spans, or non-lit prompts.
|
|
76
119
|
- Litresearch web lanes require public API/feed preference, validator-first checks, route traces, prompt-injection quarantine, and honest auth/paywall/private-data stop reasons.
|
|
77
120
|
- `node bin/litclaude-ai.js public-read <public-url> --json` exposes the guarded JS runtime reader.
|
|
78
|
-
- MCP `tools/list` exposes `public_source_read`, and `tools/call` returns JSON content with `isError` set on safety stops.
|
|
121
|
+
- MCP `tools/list` exposes `public_source_read`, and `tools/call` returns JSON content with `isError` set on safety stops plus machine-readable `contentSafety` flags.
|
|
79
122
|
- `plugins/litclaude/commands/dynamic-workflow.md` documents subagent delegation.
|
|
80
123
|
- `node bin/litclaude-ai.js workflow-check --json` reports `status: pass`.
|
|
81
124
|
- `node bin/litclaude-ai.js workflow-check --json` reports
|
package/bin/litclaude-ai.js
CHANGED
|
@@ -17,6 +17,7 @@ import { createInterface } from "node:readline/promises";
|
|
|
17
17
|
import { fileURLToPath } from "node:url";
|
|
18
18
|
import { HUD_ACCENT_THEMES, normalizeHudAccent, themeForAccent } from "../plugins/litclaude/lib/hud-accent-palette.mjs";
|
|
19
19
|
import { readPublicSource } from "../plugins/litclaude/lib/public-source-reader/reader.mjs";
|
|
20
|
+
import { verifyBundledSkillsIntegrity } from "../plugins/litclaude/lib/bundled-skills-integrity.mjs";
|
|
20
21
|
import { runStartWorkContinuationCli } from "../plugins/litclaude/lib/start-work-continuation.mjs";
|
|
21
22
|
import { runLitgoalCli } from "../plugins/litclaude/lib/litgoal/cli.mjs";
|
|
22
23
|
import { runWorkflowCheckCli } from "../plugins/litclaude/lib/workflow-check.mjs";
|
|
@@ -563,6 +564,17 @@ const escapeRegex = (value) => value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
|
563
564
|
|
|
564
565
|
const assertCurrentPluginDetails = (detailsOutput) => {
|
|
565
566
|
const missing = [];
|
|
567
|
+
const inventorySections = new Map();
|
|
568
|
+
let currentInventory;
|
|
569
|
+
for (const rawLine of detailsOutput.replace(/\u001b\[[0-?]*[ -/]*[@-~]/gu, "").split("\n")) {
|
|
570
|
+
const header = rawLine.trim().match(/^([A-Za-z][A-Za-z -]+)\s*\(\d+\)/u);
|
|
571
|
+
if (header) currentInventory = header[1].trim().toLowerCase();
|
|
572
|
+
if (currentInventory) {
|
|
573
|
+
inventorySections.set(currentInventory, `${inventorySections.get(currentInventory) ?? ""}\n${rawLine}`);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
const skillsInventory = inventorySections.get("skills") ?? "";
|
|
577
|
+
|
|
566
578
|
if (!new RegExp(`\\b${escapeRegex(version)}\\b`, "u").test(detailsOutput)) {
|
|
567
579
|
missing.push(`expected version ${version}`);
|
|
568
580
|
}
|
|
@@ -572,9 +584,12 @@ const assertCurrentPluginDetails = (detailsOutput) => {
|
|
|
572
584
|
missing.push("expected nonzero Agents inventory with prometheus-planner");
|
|
573
585
|
}
|
|
574
586
|
|
|
575
|
-
if (!/\blit-loop\b/u.test(
|
|
587
|
+
if (!/\blit-loop\b/u.test(skillsInventory) || !/\blit-plan\b/u.test(skillsInventory)) {
|
|
576
588
|
missing.push("expected lit-loop and lit-plan skills");
|
|
577
589
|
}
|
|
590
|
+
if (!/\blit-handoff\b/u.test(skillsInventory) || !/\blit-scientific-visualization\b/u.test(skillsInventory)) {
|
|
591
|
+
missing.push("expected lit-handoff and lit-scientific-visualization skills");
|
|
592
|
+
}
|
|
578
593
|
|
|
579
594
|
if (missing.length > 0) {
|
|
580
595
|
fail(`Claude plugin details did not show current LitClaude agent inventory: ${missing.join("; ")}. Re-run litclaude install in the intended CLAUDE_CONFIG_DIR.`);
|
|
@@ -619,11 +634,27 @@ const resetCurrentPointer = (home, target) => {
|
|
|
619
634
|
};
|
|
620
635
|
|
|
621
636
|
const verifyInstalledPayload = ({ home, litClaudeHome, targetPlugin }) => {
|
|
622
|
-
for (const relativePath of [
|
|
637
|
+
for (const relativePath of [
|
|
638
|
+
".claude-plugin/plugin.json",
|
|
639
|
+
"hooks/hooks.json",
|
|
640
|
+
"bin/litclaude-hook.js",
|
|
641
|
+
"bin/litclaude-scientific-visualization-doctor.js",
|
|
642
|
+
"skills/lit-handoff/SKILL.md",
|
|
643
|
+
"commands/lit-handoff.md",
|
|
644
|
+
"vendor/022_handoff/SKILL.md",
|
|
645
|
+
"skills/lit-scientific-visualization/SKILL.md",
|
|
646
|
+
"commands/lit-scientific-visualization.md",
|
|
647
|
+
"vendor/045_scientific-visualization/SKILL.md",
|
|
648
|
+
"vendor/045_scientific-visualization/scripts/style_presets.py",
|
|
649
|
+
]) {
|
|
623
650
|
if (!existsSync(join(targetPlugin, relativePath))) {
|
|
624
651
|
throw new Error(`installed plugin is missing ${relativePath}`);
|
|
625
652
|
}
|
|
626
653
|
}
|
|
654
|
+
const integrity = verifyBundledSkillsIntegrity(targetPlugin);
|
|
655
|
+
if (integrity.status !== "PASS") {
|
|
656
|
+
throw new Error(`installed bundled-skill integrity verification failed: ${JSON.stringify(integrity)}`);
|
|
657
|
+
}
|
|
627
658
|
if (!readInstalledPlugins(home).plugins[pluginKey]?.length) {
|
|
628
659
|
throw new Error(`Claude registry is missing ${pluginKey}`);
|
|
629
660
|
}
|
|
@@ -747,6 +778,7 @@ const doctor = ({ dryRun }) => {
|
|
|
747
778
|
process.stdout.write(`Would run: claude plugin validate ${pluginPath}\n`);
|
|
748
779
|
process.stdout.write(`Would check Claude plugin registry: ${pluginKey}\n`);
|
|
749
780
|
process.stdout.write(`Would check Claude statusLine HUD: ${hudCommandForPlugin(pluginPath)}\n`);
|
|
781
|
+
process.stdout.write(`Would run: node ${join(pluginPath, "bin", "litclaude-scientific-visualization-doctor.js")}\n`);
|
|
750
782
|
return;
|
|
751
783
|
}
|
|
752
784
|
|
|
@@ -763,6 +795,23 @@ const doctor = ({ dryRun }) => {
|
|
|
763
795
|
"bin/litclaude-mcp.js",
|
|
764
796
|
"skills/lit-loop/SKILL.md",
|
|
765
797
|
"skills/lit-plan/SKILL.md",
|
|
798
|
+
"skills/lit-handoff/SKILL.md",
|
|
799
|
+
"commands/lit-handoff.md",
|
|
800
|
+
"vendor/022_handoff/SKILL.md",
|
|
801
|
+
"vendor/022_handoff/evals/evals.json",
|
|
802
|
+
"vendor/022_handoff/examples/HANDOFF-example-generic-auth-refactor.md",
|
|
803
|
+
"vendor/022_handoff/templates/HANDOFF.md",
|
|
804
|
+
"skills/lit-scientific-visualization/SKILL.md",
|
|
805
|
+
"commands/lit-scientific-visualization.md",
|
|
806
|
+
"bin/litclaude-scientific-visualization-doctor.js",
|
|
807
|
+
"vendor/045_scientific-visualization/SKILL.md",
|
|
808
|
+
"vendor/045_scientific-visualization/scripts/style_presets.py",
|
|
809
|
+
"vendor/045_scientific-visualization/scripts/figure_export.py",
|
|
810
|
+
"vendor/045_scientific-visualization/assets/color_palettes.py",
|
|
811
|
+
"vendor/provenance/022_handoff.md",
|
|
812
|
+
"vendor/provenance/045_scientific-visualization.md",
|
|
813
|
+
"vendor/licenses/022_handoff-MIT.txt",
|
|
814
|
+
"vendor/licenses/045_scientific-visualization-MIT.txt",
|
|
766
815
|
];
|
|
767
816
|
|
|
768
817
|
for (const file of requiredFiles) {
|
|
@@ -772,6 +821,18 @@ const doctor = ({ dryRun }) => {
|
|
|
772
821
|
|
|
773
822
|
printLspDiagnostics(pluginPath, registry);
|
|
774
823
|
|
|
824
|
+
const scientificVisualizationDoctor = spawnSync(
|
|
825
|
+
process.execPath,
|
|
826
|
+
[join(pluginPath, "bin", "litclaude-scientific-visualization-doctor.js")],
|
|
827
|
+
{ encoding: "utf8" },
|
|
828
|
+
);
|
|
829
|
+
if (scientificVisualizationDoctor.stdout) process.stdout.write(scientificVisualizationDoctor.stdout);
|
|
830
|
+
if (scientificVisualizationDoctor.stderr) process.stderr.write(scientificVisualizationDoctor.stderr);
|
|
831
|
+
if (scientificVisualizationDoctor.status !== 0) {
|
|
832
|
+
fail("LitClaude bundled-skills payload is incomplete or hash-invalid. Run `litclaude install` again.");
|
|
833
|
+
}
|
|
834
|
+
process.stdout.write("BUNDLED_SKILLS_PAYLOAD_PASS\n");
|
|
835
|
+
|
|
775
836
|
const claude = spawnSync("claude", ["--version"], { encoding: "utf8" });
|
|
776
837
|
if (claude.error) {
|
|
777
838
|
process.stdout.write("CLAUDE_WARNING: claude executable not found in PATH\n");
|
|
@@ -823,9 +884,7 @@ const runPublicRead = async ({ rest }) => {
|
|
|
823
884
|
const input = filtered.join(" ").trim();
|
|
824
885
|
if (!input) fail("public-read requires a URL or query", 64);
|
|
825
886
|
|
|
826
|
-
const result = await readPublicSource(input
|
|
827
|
-
allowPrivateHosts: process.env.LITCLAUDE_PUBLIC_READ_ALLOW_PRIVATE === "1",
|
|
828
|
-
});
|
|
887
|
+
const result = await readPublicSource(input);
|
|
829
888
|
|
|
830
889
|
if (json) {
|
|
831
890
|
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
package/docs/hooks.md
CHANGED
|
@@ -111,6 +111,8 @@ $dynamic-workflow
|
|
|
111
111
|
$review-work
|
|
112
112
|
$litgoal
|
|
113
113
|
$start-work
|
|
114
|
+
handoff
|
|
115
|
+
lit-scientific-visualization
|
|
114
116
|
```
|
|
115
117
|
|
|
116
118
|
When a LIT trigger is present, the hook returns additional context containing
|
|
@@ -125,6 +127,24 @@ switch Claude Code agents. The `$start-work` shorthand and natural start-work
|
|
|
125
127
|
phrases activate only when they lead the prompt; diagnostic prose and copied or
|
|
126
128
|
blockquoted mentions remain inert.
|
|
127
129
|
|
|
130
|
+
`handoff` is a separate exact-bare route: only the complete prompt `handoff`
|
|
131
|
+
after outer whitespace activates `Skill(lit-handoff)` and injects the complete
|
|
132
|
+
canonical bundled source. It shows
|
|
133
|
+
`🔥 LITBURN IGNITED · lit-handoff 🔥`. Explanatory mentions, quoted or fenced
|
|
134
|
+
text, compound prompts, `/litclaude:lit-handoff`, and secret-bearing multiline
|
|
135
|
+
content do not activate the hook. The slash command remains a native Claude
|
|
136
|
+
Code command surface.
|
|
137
|
+
|
|
138
|
+
Scientific visualization has one exact-bare UserPromptSubmit route: only the
|
|
139
|
+
complete prompt `lit-scientific-visualization` after outer whitespace activates
|
|
140
|
+
`Skill(lit-scientific-visualization)`, injects the full adapter and canonical
|
|
141
|
+
source, and shows the exact
|
|
142
|
+
`🔥 LITBURN IGNITED · lit-scientific-visualization 🔥` system banner.
|
|
143
|
+
Generic visualization, plot, chart, figure, and scientific visualization prose,
|
|
144
|
+
mentions, quoted or fenced text, mixed prompts, near misses, and
|
|
145
|
+
`/litclaude:lit-scientific-visualization` text do not activate the prompt hook.
|
|
146
|
+
The slash command remains a native Claude Code command surface.
|
|
147
|
+
|
|
128
148
|
LitClaude follows the LitClaude goal pattern as an honest native-binding attempt,
|
|
129
149
|
not as slash-command injection. If Claude Code exposes native goal tools, the
|
|
130
150
|
guidance tells Claude to inspect `get_goal`, call `create_goal` only when no
|
|
@@ -225,8 +245,9 @@ no-write, or transcript-only research, ask before creating
|
|
|
225
245
|
`.litclaude/litresearch/<slug>/` and otherwise keep the journal in the
|
|
226
246
|
transcript/TodoWrite. The guaranteed runtime surface is direct public URL reads
|
|
227
247
|
through `public_source_read` or `litclaude public-read`; its JSON includes
|
|
228
|
-
`fetchAttempts`, `fetchVerdict`, untried safe routes,
|
|
229
|
-
|
|
248
|
+
`fetchAttempts`, `fetchVerdict`, untried safe routes, a starter claim graph, and
|
|
249
|
+
`contentSafety` flags declaring fetched text untrusted and its instructions
|
|
250
|
+
ignored, so HTTP 200 is not treated as success without content validation. Dynamic
|
|
230
251
|
`Workflow`, `/deep-research`, browsing, and namespaced subagents are
|
|
231
252
|
host-dependent and need fallbacks.
|
|
232
253
|
|
|
@@ -16,6 +16,8 @@ make the missing LitClaude target obvious.
|
|
|
16
16
|
| litgoal state/runtime | `commands/litgoal.md`, `skills/litgoal`, `plugins/litclaude/lib/litgoal/`, `.litclaude/litgoal/`, `bin/litclaude-ai.js litgoal ...` commands | Implemented | `litgoal` now has durable state, ledger, checkpoint, steering, quality gate, and review blocker commands through `litclaude litgoal create-goals`, `record-evidence`, `checkpoint`, `steer`, and `record-review-blockers`. |
|
|
17
17
|
| LIT/start-work discipline | `commands/lit-loop.md`, `commands/lit-plan.md`, `commands/start-work.md`, `skills/lit-loop`, `skills/lit-plan`, `skills/start-work` | Implemented | Existing LIT/start-work surfaces require plan reading, ledger updates, publish boundary checks, verification, manual QA artifacts, cleanup receipts, resume checkpoints, and evidence artifacts. |
|
|
18
18
|
| hook trigger safety | `hooks/hooks.json`, `bin/litclaude-hook.js`, `test/hooks.test.mjs`, `docs/hooks.md` | Implemented | Hooks use `UserPromptSubmit` trigger detection, exact workflow aliases, near-miss fixtures, prompt injection safe context, and no auto-type behavior for slash commands. |
|
|
19
|
+
| bundled handoff | `skills/lit-handoff`, `commands/lit-handoff.md`, `vendor/022_handoff`, exact-bare hook | Implemented | Four canonical files remain byte-identical; exact bare `handoff` injects the complete source while mentions, compounds, slash text, and secret-bearing prompts remain inert. |
|
|
20
|
+
| bundled scientific visualization | `skills/lit-scientific-visualization`, `commands/lit-scientific-visualization.md`, `vendor/045_scientific-visualization`, exact-bare hook, capability doctor | Implemented | Sixteen authored files remain byte-identical; the exact-bare hook displays the banner and injects the complete adapter/source while mixed and generic prompts stay inert; installed source-root path resolution, dependency DEGRADED status, Python source tests, and real figure export are covered without silent installation. |
|
|
19
21
|
| agent/command routing | `agents/*.md`, `commands/*.md`, `.claude-plugin/plugin.json`, command discovery tests | Implemented | Agents and commands route planner, executor, verifier, reviewer, librarian, and QA responsibilities into Claude Code surfaces, including review-work and litgoal command files. |
|
|
20
22
|
| docs/package payload | `README.md`, `README_ko-KR.md`, `docs/*.md`, `package.json`, `.claude-plugin/plugin.json`, `test/workspace-hygiene.test.mjs` | Implemented | Docs, package payload, manifest, install metadata, package file-list, and guarded-token gates are covered by tests; v0.2.0 docs describe local parity without implying publish completion. |
|
|
21
23
|
| excluded/deferred telemetry | No runtime telemetry package; docs omission note | Omitted | Telemetry is omitted and any network telemetry remains deferred by reason: LitClaude should stay local and quiet unless the user explicitly requests an observable reporting feature. |
|
|
@@ -60,6 +62,8 @@ workflow additions:
|
|
|
60
62
|
- `litgoal`
|
|
61
63
|
- `lit-loop`
|
|
62
64
|
- `lit-plan`
|
|
65
|
+
- `lit-handoff`
|
|
66
|
+
- `lit-scientific-visualization`
|
|
63
67
|
|
|
64
68
|
Auxiliary Skill-discovery entries are part of the public inventory without adding
|
|
65
69
|
new command routes:
|
package/package.json
CHANGED