@litfamily/litclaude 1.0.6 → 1.0.8

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +13 -7
  2. package/README.md +18 -38
  3. package/README_ko-KR.md +18 -37
  4. package/docs/assets/cover-motion.webp +0 -0
  5. package/docs/assets/readme/badge-version.svg +1 -1
  6. package/docs/hooks.md +10 -10
  7. package/docs/privacy.md +12 -17
  8. package/package.json +3 -1
  9. package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
  10. package/plugins/litclaude/bin/litclaude-hook.js +71 -65
  11. package/plugins/litclaude/bin/litclaude-hud.js +5 -1
  12. package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
  13. package/plugins/litclaude/commands/lit-handoff.md +3 -3
  14. package/plugins/litclaude/commands/lit-scientific-visualization.md +2 -2
  15. package/plugins/litclaude/hooks/hooks.json +4 -4
  16. package/plugins/litclaude/lib/canonical-skill-catalog.mjs +0 -1
  17. package/plugins/litclaude/lib/canonical-skill-resources.mjs +6 -28
  18. package/plugins/litclaude/lib/hud-accent-palette.mjs +2 -2
  19. package/plugins/litclaude/lib/hud-ignition.mjs +74 -0
  20. package/plugins/litclaude/lib/lit-plan-persistence.mjs +2 -1
  21. package/plugins/litclaude/lib/litgoal/paths.mjs +10 -8
  22. package/plugins/litclaude/lib/project-state-root.mjs +22 -0
  23. package/plugins/litclaude/lib/rules/session-state.mjs +2 -1
  24. package/plugins/litclaude/lib/start-work-cli.mjs +3 -3
  25. package/plugins/litclaude/lib/wikify-knowledge-cli.mjs +3 -1
  26. package/plugins/litclaude/lib/wikify-knowledge.mjs +6 -5
  27. package/plugins/litclaude/scripts/scaffold-plan.mjs +9 -3
  28. package/plugins/litclaude/skills/lit-handoff/SKILL.md +2 -2
  29. package/plugins/litclaude/skills/lit-scientific-visualization/SKILL.md +3 -3
  30. package/plugins/litclaude/skills/lit-team/scripts/team.mjs +4 -3
  31. package/plugins/litclaude/skills/litwork/SKILL.md +2 -2
  32. package/scripts/prepublish-test-gate.mjs +26 -0
  33. package/scripts/qa-real-surface-lib.mjs +3 -2
  34. package/scripts/strip-ansi.mjs +1 -0
  35. package/plugins/litclaude/lib/skill-loop/apply.mjs +0 -391
  36. package/plugins/litclaude/lib/skill-loop/authority.mjs +0 -129
  37. package/plugins/litclaude/lib/skill-loop/cli.mjs +0 -67
  38. package/plugins/litclaude/lib/skill-loop/common.mjs +0 -280
  39. package/plugins/litclaude/lib/skill-loop/config.mjs +0 -91
  40. package/plugins/litclaude/lib/skill-loop/curator.mjs +0 -670
  41. package/plugins/litclaude/lib/skill-loop/hook-runtime.mjs +0 -188
  42. package/plugins/litclaude/lib/skill-loop/hook-state.mjs +0 -484
  43. package/plugins/litclaude/lib/skill-loop/ledger.mjs +0 -834
  44. package/plugins/litclaude/lib/skill-loop/mutation-transaction.mjs +0 -529
  45. package/plugins/litclaude/lib/skill-loop/proposal-reader.mjs +0 -26
  46. package/plugins/litclaude/lib/skill-loop/proposal-record.mjs +0 -104
  47. package/plugins/litclaude/lib/skill-loop/proposal-store.mjs +0 -187
  48. package/plugins/litclaude/lib/skill-loop/proposals.mjs +0 -26
  49. package/plugins/litclaude/lib/skill-loop/review-runner.mjs +0 -13
  50. package/plugins/litclaude/lib/skill-loop/review-transaction.mjs +0 -358
  51. package/plugins/litclaude/lib/skill-loop/review.mjs +0 -223
  52. package/plugins/litclaude/lib/skill-loop/usage.mjs +0 -218
  53. package/plugins/litclaude/lib/skill-observer.mjs +0 -693
  54. package/plugins/litclaude/skills/skill-observer/SKILL.md +0 -155
  55. package/plugins/litclaude/skills/skill-observer/references/review-contract.md +0 -77
  56. package/plugins/litclaude/skills/skill-observer/scripts/skill-loop.mjs +0 -10
package/CHANGELOG.md CHANGED
@@ -1,11 +1,17 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 1.0.8
4
4
 
5
- - Apply the accepted Ignition B symbol to the CLI, installer, session mark,
6
- activation mark and bilingual README heroes. Preserve all three native row
7
- envelopes and plain-output policy; use flat orange/lime/ivory cell colors with
8
- fixed 256-color approximations and no background or extrusion.
5
+ - Paint the activation logo and its `🔥 LIT IGNITED · <discipline> 🔥` label with a bold truecolor gradient that runs from ignition orange through the HUD hot pink to electric cyan. The hook sets the colour depth itself because its output is always piped, so terminal detection cannot drop it to monochrome; `NO_COLOR` still prints plain text, and the reply line the model is asked to print stays free of escape codes.
6
+ - Show a bold, ignition-orange `🔥 LIT IGNITED · <discipline> 🔥` mark in the HUD status line whenever the prompt hook activates a LitClaude discipline. The prompt hook records the selected discipline per session under `litclaude-hud/` in the per-user temp directory (`LITCLAUDE_HUD_STATE_ROOT` overrides it; the repository state root and home directory stay untouched), and the HUD reads that record back, so the mark reflects the hook's decision rather than model output. Turns without an activation clear the record and the mark disappears.
7
+ - Ask model replies to start with `🔥 **LIT IGNITED · <discipline>** 🔥`, while hook messages and the HUD render the same activation mark without Markdown.
8
+
9
+ ## 1.0.7
10
+
11
+ - Add the animated cover to both README pages, with a static cover for reduced-motion settings.
12
+ - Remove automatic skill review. It never completed a review in practice; existing .litclaude/pending-review.json and .litclaude/skill-loop-state.json files are inert and may be deleted. No other state is affected.
13
+ - Refuse npm publish when the test suite fails.
14
+ - Anchor project state at the repository root so sessions started in subdirectories no longer create another .litclaude/ directory. Existing directories stay where they are.
9
15
 
10
16
  ## 1.0.6
11
17
 
@@ -85,9 +91,9 @@
85
91
  fallback, and plain text for non-UTF-8 or dumb terminals. Keep the install-plan
86
92
  frame and add `--help`. Respect NO_COLOR, piped output, JSON, and CI.
87
93
  - Render a standard mark once per session through the SessionStart system message
88
- and a micro mark with the discipline on prompt activation. Preserve the session
94
+ and an ignition mark with the discipline on prompt activation. Preserve the session
89
95
  receipt across resume and compaction. Model replies begin with exactly one
90
- `▲ LIT · <discipline>` probe line; the model does not redraw the harness mark.
96
+ `🔥 **LIT IGNITED · <discipline>** 🔥` probe line; the model does not redraw the harness logo.
91
97
  Refresh skill-resource pins and verify runtime closures before the major version transition.
92
98
 
93
99
  - Rename skills: `hyperplan` → `lit-crucible`, `init-deep` → `lit-init`,
package/README.md CHANGED
@@ -1,4 +1,5 @@
1
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/cover.webp" width="100%" alt="LitClaude v5 armory cover" /></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover-motion.webp" width="100%" alt="LitClaude cover art. An orange signal moves through orbital paths above the CLAUDE CODE wordmark. The static family cover appears for reduced-motion preference." /></picture></p>
2
+ <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover.webp">View the static cover</a></p>
2
3
 
3
4
  <h1 align="center">LitClaude</h1>
4
5
  <p align="center"><strong>Keep the work lit.</strong></p>
@@ -38,12 +39,12 @@
38
39
 
39
40
  </details>
40
41
 
41
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/litclaude-wordmark.svg" width="480" alt="LITCLAUDE display type" /></p>
42
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/litclaude-clay-icon.png" width="160" alt="LitClaude clay mark" /></p>
42
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/litclaude-wordmark.svg" width="480" alt="LITCLAUDE display type" /></p>
43
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/litclaude-clay-icon.png" width="160" alt="LitClaude clay mark" /></p>
43
44
 
44
45
  <p align="center">
45
- <img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/readme/badge-version.svg" alt="1.0.6" />
46
- <a href="./LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
46
+ <img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/readme/badge-version.svg" alt="1.0.8" />
47
+ <a href="./LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
47
48
  </p>
48
49
 
49
50
  <p align="center">
@@ -225,7 +226,6 @@ Concept art; each product runs in its own host.
225
226
  | `lit-scientific-visualization` | Prepare publication figures; also `/litclaude:lit-scientific-visualization` |
226
227
  | `litclaude wikify <capture/save/review/query/config>` | Manage reviewed local structured knowledge |
227
228
  | `browser-drive`, `$browser-drive` | Drive a real page only after a capability probe verifies an external driver; never substitute a fetch, use credentials, or install without approval |
228
- | `skill-observer`, `$skill-observer` | Review bounded learning signals and manage pending proposals; only an explicit foreground `apply <proposal-id>` may change an eligible agent-owned skill |
229
229
 
230
230
  Named workflow skills include `lit-crucible` (adversarial planning), `lit-init`
231
231
  (repository guidance), `lit-commit` (Git history), `lit-team` (native teams),
@@ -355,13 +355,13 @@ npm exec --yes --package @litfamily/litclaude@latest -- litclaude install
355
355
  For a reproducible install, pin the current package version:
356
356
 
357
357
  ```bash
358
- npm view @litfamily/litclaude@1.0.6 version
358
+ npm view @litfamily/litclaude@1.0.8 version
359
359
  ```
360
360
 
361
- If that lookup returns `1.0.6`, the exact install is available:
361
+ If that lookup returns `1.0.8`, the exact install is available:
362
362
 
363
363
  ```bash
364
- npm exec --yes --package @litfamily/litclaude@1.0.6 -- litclaude install
364
+ npm exec --yes --package @litfamily/litclaude@1.0.8 -- litclaude install
365
365
  ```
366
366
 
367
367
  Otherwise, wait for explicit human publication before using that pin. Check the
@@ -413,6 +413,13 @@ Interactive installation previews the available HUD accents. The LitClaude HUD
413
413
  uses `[🔥LITCLAUDE vX.Y.Z]`, a compact `ctx [▎░░]` bar, and a `5h [▏░] 4% ↻`
414
414
  rate-limit reset countdown. Set `LITCLAUDE_HUD_ACCENT` before installation to
415
415
  choose an accent.
416
+ When the prompt hook activates a LitClaude discipline, the HUD adds a bold,
417
+ ignition-orange `🔥 LIT IGNITED · lit-loop 🔥` mark right after the brand until
418
+ the next turn without an activation; the hook records the selected discipline
419
+ per session under `litclaude-hud/` in the per-user temp directory, never in the
420
+ repository or your home directory (`LITCLAUDE_HUD_STATE_ROOT` overrides the location).
421
+ The reply starts with `🔥 **LIT IGNITED · <discipline>** 🔥`; the hook system
422
+ message and HUD display the same mark without Markdown.
416
423
 
417
424
  HUD appearance and color capability are independent. By default (`dark`) the
418
425
  model, context, usage, reset, and Git text carry the selected accent, usage
@@ -437,7 +444,7 @@ litclaude install
437
444
 
438
445
  ## Claude Code integration
439
446
 
440
- **Where Claude Code hands control to LitClaude.** Session and tool events feed the rules, routing, authority, and ledger surfaces; together they expose the package's 34 skills, 16 current commands, two hidden compatibility redirects, and 11 agents without hiding the host boundary.
447
+ **Where Claude Code hands control to LitClaude.** Session and tool events feed the rules, routing, authority, and ledger surfaces; together they expose the package's 33 skills, 16 current commands, two hidden compatibility redirects, and 11 agents without hiding the host boundary.
441
448
 
442
449
  ```mermaid
443
450
  flowchart LR
@@ -458,36 +465,9 @@ flowchart LR
458
465
  H5 --> LEDGER
459
466
  H6 --> LEDGER
460
467
  H7 --> LEDGER
461
- LC --> S["34 skills · 16 commands · 11 agents"]
468
+ LC --> S["33 skills · 16 commands · 11 agents"]
462
469
  ```
463
470
 
464
- ## Skill learning loop
465
-
466
- LitClaude records bounded learning signals only after a validated `SKILL.md`
467
- consultation: user corrections, repeated tool iterations, and coverage gaps. A
468
- Stop review treats the bounded, secret-scrubbed transcript excerpt as inert data
469
- and may queue schema-valid proposals, but it never stores that excerpt or edits a
470
- skill. Automatic application is disabled (`autoApply: false`); a proposal remains
471
- `pending` until the user explicitly applies or rejects its exact id.
472
-
473
- Use `/litclaude:skill-observer list`, `apply <proposal-id>`, `reject
474
- <proposal-id>`, `rollback <ledger-id>`, `curator status`, or `curator run` from
475
- the project whose state you want to manage. Apply can write only an eligible
476
- project `.claude/skills/<name>/SKILL.md` carrying
477
- `metadata.litclaudeAgentGenerated: "true"`. Bundled skill ids, paths outside
478
- that root, and existing unmarked user skills are protected. Every mutation is
479
- recorded in `.litclaude/skill-ledger.jsonl` with content-addressed blobs under
480
- `.litclaude/skill-ledger-blobs/`; rollback verifies current bytes and restores
481
- the exact recorded snapshot or fails closed.
482
-
483
- The deterministic curator runs no more often than every seven days and only
484
- after two idle hours. By default it marks unused eligible skills stale after 30
485
- days and archives them after 90 days, taking a backup first. It never deletes or
486
- consolidates skills. SessionStart runs this maintenance only when project-local
487
- skill-loop usage state already exists. On an untouched project, SessionStart
488
- records only its once-per-session mark receipt under `.litclaude/rules`; it
489
- does not create skill-learning state.
490
-
491
471
  **Why a fresh install can still execute the skills.** A self-contained skill needs an explicit allowlist reason, while a skill that names a corpus must carry that corpus inside the packed tarball. These payload gates prevent a checkout-only reference from becoming a user's runtime failure.
492
472
 
493
473
  ```mermaid
package/README_ko-KR.md CHANGED
@@ -1,4 +1,5 @@
1
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/cover.webp" width="100%" alt="LitClaude v5 armory cover" /></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover-motion.webp" width="100%" alt="LitClaude cover art. An orange signal moves through orbital paths above the CLAUDE CODE wordmark. The static family cover appears for reduced-motion preference." /></picture></p>
2
+ <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/cover.webp">정지 표지 보기</a></p>
2
3
 
3
4
  <h1 align="center">LitClaude</h1>
4
5
  <p align="center"><strong>Keep the work lit.</strong></p>
@@ -38,12 +39,12 @@
38
39
 
39
40
  </details>
40
41
 
41
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/litclaude-wordmark.svg" width="480" alt="LITCLAUDE 디스플레이 타입" /></p>
42
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/litclaude-clay-icon.png" width="160" alt="LitClaude 클레이 마크" /></p>
42
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/litclaude-wordmark.svg" width="480" alt="LITCLAUDE 디스플레이 타입" /></p>
43
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/litclaude-clay-icon.png" width="160" alt="LitClaude 클레이 마크" /></p>
43
44
 
44
45
  <p align="center">
45
- <img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/readme/badge-version.svg" alt="1.0.6" />
46
- <a href="./LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.6/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
46
+ <img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/readme/badge-version.svg" alt="1.0.8" />
47
+ <a href="./LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litclaude@1.0.8/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
47
48
  </p>
48
49
 
49
50
  <p align="center">
@@ -223,7 +224,6 @@ LitClaude, LitHermes, LitCodex, LitOpenCode, LitGrok을 아머드 머신으로
223
224
  | `lit-scientific-visualization` | 출판용 figure를 준비합니다. `/litclaude:lit-scientific-visualization`도 지원합니다. |
224
225
  | `litclaude wikify <capture/save/review/query/config>` | 검토 기반 local structured knowledge를 관리합니다. |
225
226
  | `browser-drive`, `$browser-drive` | 외부 driver capability probe가 확인된 뒤에만 실제 page를 조작합니다. fetch로 대체하지 않으며 credential 사용과 승인 없는 설치를 하지 않습니다. |
226
- | `skill-observer`, `$skill-observer` | 제한된 learning signal을 검토하고 pending proposal을 관리합니다. 명시적인 foreground `apply <proposal-id>`만 eligible agent-owned skill을 변경할 수 있습니다. |
227
227
 
228
228
  이름으로 호출하는 주요 스킬은 `lit-crucible`(계획 검토), `lit-init`(저장소 지침),
229
229
  `lit-commit`(Git 이력), `lit-team`(네이티브 팀), `lit-burnoff`(변경 묶음 정리),
@@ -350,13 +350,13 @@ npm exec --yes --package @litfamily/litclaude@latest -- litclaude install
350
350
  설치를 재현하려면 registry에서 현재 package version을 조회한 뒤 고정합니다.
351
351
 
352
352
  ```bash
353
- npm view @litfamily/litclaude@1.0.6 version
353
+ npm view @litfamily/litclaude@1.0.8 version
354
354
  ```
355
355
 
356
- 조회 결과가 `1.0.6`이면 exact install을 사용할 수 있습니다.
356
+ 조회 결과가 `1.0.8`이면 exact install을 사용할 수 있습니다.
357
357
 
358
358
  ```bash
359
- npm exec --yes --package @litfamily/litclaude@1.0.6 -- litclaude install
359
+ npm exec --yes --package @litfamily/litclaude@1.0.8 -- litclaude install
360
360
  ```
361
361
 
362
362
  그렇지 않으면 명시적인 human publication을 기다립니다. Pin은 그 뒤에 사용합니다.
@@ -389,6 +389,13 @@ Interactive 설치에서는 HUD accent 후보를 터미널에서 미리 볼 수
389
389
  LitClaude HUD는 `[🔥LITCLAUDE vX.Y.Z]`, `ctx [▎░░]` context bar,
390
390
  `5h [▏░] 4% ↻` rate-limit reset countdown을 사용합니다. 설치 전에
391
391
  `LITCLAUDE_HUD_ACCENT`를 지정해 accent를 선택할 수 있습니다.
392
+ prompt hook이 LitClaude discipline을 활성화하면 HUD는 brand 바로 뒤에 굵은
393
+ ignition-orange `🔥 LIT IGNITED · lit-loop 🔥` 표시를 붙이고, 활성화가 없는 다음
394
+ 턴에서 지웁니다. hook은 선택된 discipline을 세션별로 사용자 임시 디렉터리의
395
+ `litclaude-hud/`에 기록하고(저장소와 홈 디렉터리는 건드리지 않음)
396
+ `LITCLAUDE_HUD_STATE_ROOT`로 위치를 바꿀 수 있습니다.
397
+ 모델 응답은 `🔥 **LIT IGNITED · <discipline>** 🔥`로 시작하며, hook system
398
+ message와 HUD는 Markdown 없이 같은 표시를 보여 줍니다.
392
399
 
393
400
  HUD의 배경 설정과 터미널 색상 지원 수준은 별개입니다. 기본값(`dark`)에서는 model,
394
401
  context, usage, reset, Git 글자에 선택한 accent가 들어가고, 사용량 퍼센트는 수준에
@@ -411,7 +418,7 @@ litclaude install
411
418
 
412
419
  ## Claude Code 연결 구조
413
420
 
414
- **Claude Code와 LitClaude의 연결 구조입니다.** Session과 tool event가 rules, routing, authority, ledger surface로 전달됩니다. 이 구조에서 34개 skill·16개 command·11개 agent가 host 경계 안에서 연결됩니다.
421
+ **Claude Code와 LitClaude의 연결 구조입니다.** Session과 tool event가 rules, routing, authority, ledger surface로 전달됩니다. 이 구조에서 33개 skill·16개 command·11개 agent가 host 경계 안에서 연결됩니다.
415
422
 
416
423
  ```mermaid
417
424
  flowchart LR
@@ -432,35 +439,9 @@ flowchart LR
432
439
  H5 --> LEDGER
433
440
  H6 --> LEDGER
434
441
  H7 --> LEDGER
435
- LC --> S["34 skills · 16 commands · 11 agents"]
442
+ LC --> S["33 skills · 16 commands · 11 agents"]
436
443
  ```
437
444
 
438
- ## Skill learning loop
439
-
440
- LitClaude는 검증된 `SKILL.md` consultation 뒤에만 user correction, 반복된 tool
441
- iteration, coverage gap을 제한된 learning signal로 기록합니다. Stop review는
442
- secret을 제거한 bounded transcript excerpt를 inert data로 다루며 schema-valid
443
- proposal을 queue할 수 있지만, excerpt 자체를 저장하거나 skill을 수정하지
444
- 않습니다. 자동 적용은 꺼져 있고(`autoApply: false`), 사용자가 정확한 id를
445
- 명시해 apply 또는 reject하기 전까지 proposal은 `pending`입니다.
446
-
447
- 관리할 state가 있는 project에서 `/litclaude:skill-observer list`, `apply
448
- <proposal-id>`, `reject <proposal-id>`, `rollback <ledger-id>`, `curator
449
- status`, `curator run`을 사용합니다. Apply는
450
- `metadata.litclaudeAgentGenerated: "true"`를 가진 eligible project
451
- `.claude/skills/<name>/SKILL.md`에만 쓸 수 있습니다. Bundled skill id, 이 root
452
- 밖의 path, marker가 없는 기존 user skill은 보호됩니다. 모든 mutation을
453
- `.litclaude/skill-ledger.jsonl`에 기록하고 content-addressed blob을
454
- `.litclaude/skill-ledger-blobs/`에 저장합니다. Rollback은 현재 byte를 검증한
455
- 뒤 기록된 exact snapshot을 복원하며, 검증할 수 없으면 fail closed합니다.
456
-
457
- Deterministic curator는 7일보다 자주 실행되지 않고 2시간 idle 뒤에만
458
- 실행됩니다. 기본 설정에서는 eligible skill을 30일 뒤 stale로 표시하고 90일 뒤
459
- backup한 다음 archive합니다. Skill을 delete하거나 consolidate하지
460
- 않습니다. SessionStart maintenance는 project-local skill-loop usage state가 이미
461
- 있을 때만 실행됩니다. 새 프로젝트의 SessionStart는 `.litclaude/rules`에
462
- 세션당 한 번 표시할 로고의 기록만 남기며, 스킬 학습 상태는 만들지 않습니다.
463
-
464
445
  **아무것도 남아 있지 않은 machine에서도 skill이 작동하는 이유입니다.** Self-contained skill은 allowlist에 명시적인 근거가 있어야 하고, corpus를 참조하는 skill은 packed tarball 안에서 그 corpus를 찾아야 합니다. 이 payload gate가 checkout에만 남은 reference를 설치 후 장애로 만들지 않습니다.
465
446
 
466
447
  ```mermaid
Binary file
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.6"><title>release: 1.0.6</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.6</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.8"><title>release: 1.0.8</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.8</text></g></svg>
package/docs/hooks.md CHANGED
@@ -51,7 +51,7 @@ verdicts: [PASS, FAIL, BLOCKED]
51
51
  ## #contract.outputs
52
52
 
53
53
  - Claude Code hook JSON containing `continue: true`, `hookSpecificOutput.hookEventName`, and route-specific `additionalContext`.
54
- - Optional `systemMessage` for the once-per-session mark and active route micro marks.
54
+ - Optional `systemMessage` for the once-per-session mark and active route ignition marks.
55
55
  - `DELIVERABLE_HEDGE_VIOLATION` as `PostToolUse` `additionalContext` after a client-deliverable write contains a matched limitation phrase; the file has already been written, so the response asks Claude to revise it rather than claiming the write was prevented.
56
56
  - `BLOCKED:` text for natural-language start-work, unavailable native goal binding, disabled Dynamic workflow, or gated agent-team setup.
57
57
  - Unavailable native goal binding also includes `READY_TO_PASTE` and one bounded `/goal` command for the user to copy, paste, and send; the hook never enters or submits it.
@@ -273,7 +273,7 @@ lit-scientific-visualization
273
273
  ```
274
274
 
275
275
  When a LIT trigger is present, the hook returns additional context containing
276
- `LITWORK MODE ENABLED` and a visible `litclaude · <discipline>` micro system
276
+ `LITWORK MODE ENABLED` and a visible `🔥 LIT IGNITED · <discipline> 🔥` system
277
277
  message. That context is guidance for Claude Code; it is not executed as a
278
278
  command. Slash commands and slash-command mentions are native Claude Code
279
279
  surfaces and do not activate this prompt hook; code spans, substrings, and
@@ -316,8 +316,8 @@ against another process with the same uid.
316
316
 
317
317
  `handoff` is a separate exact-bare route: only the complete prompt `handoff`
318
318
  after outer whitespace activates `Skill(lit-handoff)` and injects the complete
319
- canonical bundled source. Its system message shows the micro mark with
320
- `litclaude · lit-handoff`; the model begins with exactly one `▲ LIT · lit-handoff` probe line. Explanatory mentions, quoted or fenced
319
+ canonical bundled source. Its system message shows `🔥 LIT IGNITED · lit-handoff 🔥`;
320
+ the model begins with exactly one `🔥 **LIT IGNITED · lit-handoff** 🔥` probe line. Explanatory mentions, quoted or fenced
321
321
  text, compound prompts, `/litclaude:lit-handoff`, and secret-bearing multiline
322
322
  content do not activate the hook. The slash command remains a native Claude
323
323
  Code command surface.
@@ -325,8 +325,8 @@ Code command surface.
325
325
  Scientific visualization has one exact-bare UserPromptSubmit route: only the
326
326
  complete prompt `lit-scientific-visualization` after outer whitespace activates
327
327
  `Skill(lit-scientific-visualization)`, injects the full adapter and canonical
328
- source, and shows the micro mark with `litclaude · lit-scientific-visualization`.
329
- The model begins with exactly one `▲ LIT · lit-scientific-visualization` probe line.
328
+ source, and shows `🔥 LIT IGNITED · lit-scientific-visualization 🔥` in its system
329
+ message. The model begins with exactly one `🔥 **LIT IGNITED · lit-scientific-visualization** 🔥` probe line.
330
330
  Generic visualization, plot, chart, figure, and scientific visualization prose,
331
331
  mentions, quoted or fenced text, mixed prompts, near misses, and
332
332
  `/litclaude:lit-scientific-visualization` text do not activate the prompt hook.
@@ -495,11 +495,11 @@ or symlinked cwd and missing project roots also suppress decoration; unsafe root
495
495
  state never falls back to a nested state directory.
496
496
  A compact event never repeats the session mark.
497
497
 
498
- Activated UserPromptSubmit routes render the flat micro mark with
499
- `litclaude · <discipline>` in `systemMessage`. Inactive prompts stay silent.
498
+ Activated UserPromptSubmit routes render the plain mark
499
+ `🔥 LIT IGNITED · <discipline> 🔥` in `systemMessage`. Inactive prompts stay silent.
500
500
  `additionalContext` requires the model's reply to begin with exactly one
501
- `▲ LIT · <discipline>` line. The model must not draw the harness logo again;
502
- the probe and visible mark are separate outputs.
501
+ `🔥 **LIT IGNITED · <discipline>** 🔥` line. The system mark and reply probe are
502
+ separate outputs; the model must not draw ASCII art or emit a second probe.
503
503
 
504
504
  Hook JSON uses uncolored rows. CLI output uses the 44×20 Ignition B banner and
505
505
  native product column inside the existing installer frame; `--help` and doctor
package/docs/privacy.md CHANGED
@@ -14,12 +14,10 @@ transcript, model request, or diagnostic report contains no sensitive informatio
14
14
  | Update notice | Interactive `install`, `update`, and `doctor` can schedule an HTTPS GET to `registry.npmjs.org` for the package's latest-version metadata. The request identifies the package and sends an update-notifier user-agent; the request body does not contain project files or prompts. | Attempts are throttled using a 24-hour local cache. `NO_UPDATE_NOTIFIER` or `LITCLAUDE_NO_UPDATE_CHECK` disables the notice/check path, even when the variable is empty. CI, JSON, dry-run, and non-TTY management calls are gated. |
15
15
  | Automatic update | An eligible cached newer version can trigger npm to fetch and run the installer, then doctor. This can occur on `SessionStart` or interactive management commands. | `LITCLAUDE_NO_AUTO_UPDATE` disables automatic installation but leaves update checks eligible. `LITCLAUDE_NO_UPDATE_CHECK` or `NO_UPDATE_NOTIFIER` disables both paths. SessionStart is a piped host hook, so it does not use the management TTY requirement. |
16
16
  | Public source reader | `litclaude public-read` resolves DNS and sends HTTP(S) GET requests to the supplied public URL and validated redirects. Plain search text becomes a query to `duckduckgo.com/html/`. Requests use a LitClaude user-agent and Accept header. The destination sees the requested path and query, plus normal connection metadata. | The reader rejects credential-bearing URLs and private-network targets, revalidates redirects, and stops at detected authentication/paywall barriers. It does not use a browser login or cookie jar. Redacting a URL in returned evidence does not remove query values from the actual request. |
17
- | Skill review | After an eligible skill consultation, Stop review can invoke Claude Code with a bounded, secret-scrubbed transcript excerpt as model input. Your configured model provider can therefore receive that excerpt, project target paths, session reference, and skill identifiers. | The child uses `--no-session-persistence`; that flag does not promise provider-side deletion or confidentiality. Review output is restricted to pending proposals. `autoApply: false` is a skill-mutation default, not a switch that disables model review. |
18
17
 
19
18
  For a process that should avoid LitClaude background update traffic, set
20
19
  `LITCLAUDE_NO_UPDATE_CHECK=1`. This is not an offline mode: it does not block an
21
- explicit install, `public-read`, skill-review model call, or any network tool
22
- Claude Code runs. Select host/tool permissions and network controls appropriate
20
+ explicit install, `public-read`, or any network tool Claude Code runs. Select host/tool permissions and network controls appropriate
23
21
  to the project; do not place secrets in a prompt on the assumption that a local
24
22
  plugin keeps all model processing on your computer.
25
23
 
@@ -39,19 +37,16 @@ backups live under the product home's `update-notifier` directory. Backups may
39
37
  contain host settings, so handle them as private files.
40
38
 
41
39
  Project-local `.litclaude/` state is distinct from the product home. Depending on
42
- the features used, it contains session/rule receipts, work ledgers, saved
43
- knowledge, skill-loop usage and proposal state, and
44
- `skill-observer/observations.jsonl`. Observer observations contain bounded
45
- correction, repetition, or coverage-gap text; secret-shaped values are rejected,
46
- but arbitrary personal or proprietary text is not necessarily recognized as a
47
- secret. Skill mutation history includes `skill-ledger.jsonl` and
48
- `skill-ledger-blobs/` snapshots. The review code reads the existing host transcript
49
- and builds the excerpt in memory; its own review records do not save that excerpt.
50
- The original transcript remains governed by the host's storage behavior.
40
+ the features used, it contains session/rule receipts, plan and goal state, work
41
+ ledgers, saved knowledge, and other feature-specific records. SessionStart
42
+ context-pressure detection can inspect a supplied transcript path up to 256 KiB
43
+ for a fixed set of pressure markers; it returns only a bounded advisory. No skill
44
+ review reads transcript excerpts or sends them to a model. Existing
45
+ `pending-review.json` and `skill-loop-state.json` files are inert after the
46
+ automatic review feature's removal and may be deleted. No other state is affected.
51
47
 
52
48
  There is no universal automatic expiry policy for all these files. A bounded log
53
- or cache TTL is not a deletion promise. The skill curator's stale/archive schedule
54
- is skill maintenance, not a privacy retention policy. Local files are not an
49
+ or cache TTL is not a deletion promise. Local files are not an
55
50
  encrypted vault and are not confidential against another process running with
56
51
  your user permissions.
57
52
 
@@ -81,6 +76,6 @@ for sensitive reports and [support guidance](../SUPPORT.md) for routine issues.
81
76
  - [Public requests and redirects](../plugins/litclaude/lib/public-source-reader/routes.mjs),
82
77
  [target validation](../plugins/litclaude/lib/public-source-reader/validator.mjs), and
83
78
  [receipt redaction](../plugins/litclaude/lib/public-source-reader/receipts.mjs).
84
- - [Observer storage](../plugins/litclaude/lib/skill-observer.mjs),
85
- [review model invocation](../plugins/litclaude/lib/skill-loop/review.mjs), and
86
- [skill-loop defaults](../plugins/litclaude/lib/skill-loop/config.mjs).
79
+ - [Project state-root resolution](../plugins/litclaude/lib/project-state-root.mjs),
80
+ [rules session receipts](../plugins/litclaude/lib/rules/session-state.mjs), and
81
+ [litgoal state](../plugins/litclaude/lib/litgoal/state.mjs).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litfamily/litclaude",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "Claude Code-native workflow distribution.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,6 +24,7 @@
24
24
  "README_ko-KR.md",
25
25
  "CHANGELOG.md",
26
26
  "docs/assets/cover.webp",
27
+ "docs/assets/cover-motion.webp",
27
28
  "docs/assets/litclaude-wordmark.svg",
28
29
  "docs/assets/litclaude-clay-icon.png",
29
30
  "docs/assets/readme/badge-version.svg",
@@ -36,6 +37,7 @@
36
37
  "docs/privacy.md"
37
38
  ],
38
39
  "scripts": {
40
+ "prepublishOnly": "node scripts/prepublish-test-gate.mjs",
39
41
  "postinstall": "node scripts/postinstall.mjs",
40
42
  "test": "node --test --test-concurrency=1 test/*.test.mjs",
41
43
  "validate:plugin": "node scripts/validate-plugin.mjs",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "litclaude",
3
3
  "description": "Claude Code-native workflow plugin with a bounded-authority start-work lifecycle.",
4
- "version": "1.0.6",
4
+ "version": "1.0.8",
5
5
  "author": {
6
6
  "name": "LitClaude contributors"
7
7
  },