litclaude-ai 0.3.34 → 0.3.35
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 +41 -0
- package/README.md +63 -17
- package/README_ko-KR.md +55 -13
- package/RELEASE_CHECKLIST.md +75 -8
- package/bin/litclaude-ai.js +172 -27
- package/docs/hooks.md +37 -12
- package/docs/rules.md +175 -0
- package/package.json +10 -2
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/agents/oracle-verifier.md +1 -0
- package/plugins/litclaude/agents/quality-reviewer.md +1 -0
- package/plugins/litclaude/bin/litclaude-hook.js +434 -20
- package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
- package/plugins/litclaude/bundled-rules/windows-git-bash.md +18 -0
- package/plugins/litclaude/lib/added-comment-lines.mjs +135 -0
- package/plugins/litclaude/lib/canonical-skill-catalog.mjs +3 -0
- package/plugins/litclaude/lib/canonical-skill-resources.mjs +49 -11
- package/plugins/litclaude/lib/litgoal/cli.mjs +88 -10
- package/plugins/litclaude/lib/litgoal/paths.mjs +5 -0
- package/plugins/litclaude/lib/mutated-file-paths.mjs +17 -0
- package/plugins/litclaude/lib/owner-lock.mjs +237 -0
- package/plugins/litclaude/lib/plan-task-rows.mjs +32 -0
- package/plugins/litclaude/lib/rules/constants.mjs +85 -0
- package/plugins/litclaude/lib/rules/discovery.mjs +225 -0
- package/plugins/litclaude/lib/rules/engine.mjs +215 -0
- package/plugins/litclaude/lib/rules/format.mjs +103 -0
- package/plugins/litclaude/lib/rules/frontmatter.mjs +184 -0
- package/plugins/litclaude/lib/rules/glob.mjs +165 -0
- package/plugins/litclaude/lib/rules/matcher.mjs +83 -0
- package/plugins/litclaude/lib/rules/ordering.mjs +29 -0
- package/plugins/litclaude/lib/rules/scanner.mjs +119 -0
- package/plugins/litclaude/lib/rules/session-state.mjs +254 -0
- package/plugins/litclaude/lib/start-work-lifecycle.mjs +3 -23
- package/plugins/litclaude/scripts/scaffold-plan.mjs +466 -0
- package/plugins/litclaude/skills/frontend-ui-ux/SKILL.md +415 -286
- package/plugins/litclaude/skills/frontend-ui-ux/references/adaptive-layout.md +92 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/brand-and-imagery.md +93 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/composition.md +85 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/creative-directions.md +80 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/evidence-review.md +105 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/implementation-platforms.md +109 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/inclusive-interface.md +92 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/interaction-motion.md +101 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/operating-lanes.md +95 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/performance-delivery.md +93 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/product-direction.md +84 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/redesign-playbook.md +97 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/system-foundations.md +84 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/visual-language.md +84 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/visual-reconstruction.md +97 -0
- package/plugins/litclaude/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.schema.json +236 -293
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/design-contract-format.mjs +286 -0
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/design-contract-inventory-rules.mjs +328 -94
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/design-contract-rules.mjs +121 -173
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/design-contract-surface-rules.mjs +273 -96
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/validate-design-contract.mjs +33 -19
- package/plugins/litclaude/skills/init-deep/SKILL.md +5 -1
- package/plugins/litclaude/skills/lit-plan/SKILL.md +106 -1
- package/plugins/litclaude/skills/litresearch/ATTRIBUTION.md +57 -0
- package/plugins/litclaude/skills/litresearch/SKILL.md +52 -1
- package/plugins/litclaude/skills/litwork/SKILL.md +609 -0
- package/plugins/litclaude/skills/refactor/SKILL.md +6 -2
- package/plugins/litclaude/skills/rules/SKILL.md +36 -15
- package/plugins/litclaude/skills/structural-search/SKILL.md +260 -0
- package/plugins/litclaude/skills/teammode/SKILL.md +165 -0
- package/plugins/litclaude/skills/teammode/scripts/team.mjs +403 -0
- package/plugins/litclaude/skills/visual-qa/SKILL.md +415 -302
- package/plugins/litclaude/skills/visual-qa/references/capture-playbook.md +126 -0
- package/plugins/litclaude/skills/visual-qa/schemas/design-contract-v1alpha1.schema.json +305 -0
- package/plugins/litclaude/skills/visual-qa/schemas/evidence-manifest-v1alpha1.schema.json +5 -4
- package/plugins/litclaude/skills/visual-qa/scripts/design-contract-shape.mjs +344 -0
- package/plugins/litclaude/skills/visual-qa/scripts/evidence-semantic.mjs +2 -1
- package/plugins/litclaude/skills/visual-qa/scripts/evidence-shape.mjs +11 -4
- package/plugins/litclaude/skills/visual-qa/scripts/evidence.mjs +74 -10
- package/scripts/qa-installed-tamper-repair.mjs +139 -0
- package/scripts/qa-negative-gate-matrix.mjs +538 -0
- package/scripts/qa-real-surface-behaviors.mjs +505 -0
- package/scripts/qa-real-surface-lib.mjs +446 -0
- package/scripts/scaffold-plan.mjs +27 -0
- package/scripts/validate-plugin.mjs +30 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.35 - 2026-07-26 — parity runtime release preparation
|
|
4
|
+
|
|
5
|
+
- Restore and enroll the complete `litwork`, rules-engine, plan-scaffolding,
|
|
6
|
+
litgoal-drift, structural-search, comment-checker, and teammode surfaces.
|
|
7
|
+
- Resolve plan scaffolding from the installed plugin root while keeping the
|
|
8
|
+
source-checkout command as a thin compatibility entrypoint.
|
|
9
|
+
- Track the nine release tests that exercise those surfaces while keeping local
|
|
10
|
+
evidence and the litgoal autoloop test intentionally ignored.
|
|
11
|
+
- Extend canonical resource integrity and the isolated installed tamper probe to
|
|
12
|
+
the new executable skill/runtime assets, including the teammode CLI, rules
|
|
13
|
+
engine, installed scaffold executable, restored litwork body, and
|
|
14
|
+
added-comment extraction runtime.
|
|
15
|
+
- Make `litwork`, `structural-search`, and `teammode` public skill inventory entries.
|
|
16
|
+
Permission modes mutate global Claude settings `permissions.allow` and
|
|
17
|
+
`permissions.deny`, preserve pre-existing entries, ownership-track only entries
|
|
18
|
+
LitClaude inserted, and remove only those inserted entries on mode change or
|
|
19
|
+
uninstall.
|
|
20
|
+
|
|
3
21
|
## 0.3.34 - 2026-07-25 — evidence-first UI/UX and visual QA
|
|
4
22
|
|
|
5
23
|
- Add the packaged `frontend-ui-ux` design-intelligence workflow with a
|
|
@@ -12,6 +30,29 @@
|
|
|
12
30
|
package guards, and adversarial scenario tests; prevent blocking P1 findings
|
|
13
31
|
from retaining `PASS`, keep reviewers read-only, and bound TUI captures to
|
|
14
32
|
1 MiB and 4,096 lines.
|
|
33
|
+
- Ship sixteen hash-pinned interface reference documents: fifteen design
|
|
34
|
+
decision documents under `frontend-ui-ux/references`, each reachable from a
|
|
35
|
+
router table in its skill entrypoint, and a per-channel capture playbook
|
|
36
|
+
under `visual-qa/references`. `npm run validate:plugin` now emits
|
|
37
|
+
`SKILL_REFERENCE_ROUTER_PASS` and fails when a shipped reference is not
|
|
38
|
+
reachable from its own entrypoint.
|
|
39
|
+
- Give the visual evidence lane its own copy of the Design Contract schema and
|
|
40
|
+
an independently written shape validator, so the evidence runtime imports
|
|
41
|
+
nothing from a sibling skill and a manifest stays checkable from whatever
|
|
42
|
+
subset of the package a caller installed. The two implementations agree
|
|
43
|
+
across the strict contract corpus; coupling between lanes is by contract
|
|
44
|
+
hash and evidence schema, never by skill name.
|
|
45
|
+
- Split future-dated evidence out of staleness as `BLOCKED_EVIDENCE_FUTURE`,
|
|
46
|
+
add `BLOCKED_RENDERER_OWNERSHIP_UNVERIFIED` for a capture environment that
|
|
47
|
+
names no verified renderer or process owner, and make an honest incomplete
|
|
48
|
+
cleanup representable as `BLOCKED_CLEANUP_INCOMPLETE` instead of a schema
|
|
49
|
+
error. A cleanup status that contradicts its own resource list stays a
|
|
50
|
+
`CLEANUP_INCOMPLETE` failure. Review failure remains `FAIL`; only an absent
|
|
51
|
+
capability is `BLOCKED`, and `BLOCKED` continues to outrank `FAIL`.
|
|
52
|
+
- Rewrite both interface skill entrypoints as dense host-native contracts with
|
|
53
|
+
invocation and selection rules, prerequisites, explicit non-goals, inert-data
|
|
54
|
+
trust boundaries for reference and user-supplied text, manual QA steps,
|
|
55
|
+
cleanup and handoff rules, and real install-verification output.
|
|
15
56
|
|
|
16
57
|
## 0.3.33 - 2026-07-24 — update notice and installed catalog verification
|
|
17
58
|
|
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.35-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,9 +22,16 @@
|
|
|
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.35` 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
|
+
The v0.3.35 release material restores the full `litwork`, rules-engine,
|
|
29
|
+
plan-scaffolding, litgoal-drift, structural-search, comment-checker, and teammode
|
|
30
|
+
surfaces; tracks their tests; and hash-pins shipped executable skill resources
|
|
31
|
+
for installed tamper detection. Permission modes now mutate global Claude settings
|
|
32
|
+
`permissions.allow` and `permissions.deny`: pre-existing entries are preserved, only
|
|
33
|
+
entries LitClaude inserted are ownership-tracked, and only those inserted entries are
|
|
34
|
+
removed on a later mode change or uninstall.
|
|
28
35
|
Future package releases still require explicit user approval. The v0.3.34 release material adds packaged evidence-first UI/UX design intelligence, strict Design/Evidence/Review contracts, bounded PNG and TUI inspection, tier-correct independent review, and adversarial zero-false-PASS coverage. The v0.3.33 release material adds a quiet nonblocking npm update notice with strict cache, concurrency, timestamp, opt-out, and official-registry boundaries; preserves the installed permission mode and HUD accent on optionless updates; and makes source, install, installed-doctor, and Claude-details checks share the exact canonical skill catalog so missing packaged skills fail with `DOCTOR_FAIL`. The v0.3.32 release material adds the code-owned schema-3 start-work lifecycle with canonical bounded authority, explicit single-use resume grants, PreToolUse enforcement, root/subagent lane identity, progress-bound Stop continuation receipts, and fail-closed release boundaries. The v0.3.31 release material hardens litgoal creation, replacement, completion, and autoloop receipts while making visual QA browser ownership, bounded waits, blocked states, and cleanup evidence explicit. 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
36
|
release materials inject the bundled skill bodies for bare `hyperplan`,
|
|
30
37
|
`litresearch`, `lit research`, `init-deep`, and explicit `$start-work` prompt-hook routes while
|
|
@@ -78,20 +85,35 @@ activation/read-only polish, and installer permission-preference discipline.
|
|
|
78
85
|
`korean-ai-slop-remover`, `review-work`, `frontend-ui-ux`,
|
|
79
86
|
`git-master`, `comment-checker`, `rules`, `lsp`, `lsp-setup`, `litgoal`,
|
|
80
87
|
`deep-interview`, `hyperplan`, `init-deep`, `litresearch`,
|
|
81
|
-
`lit-plan`, `lit-recap`, `lit-loop`, `start-work`, `
|
|
82
|
-
`lit-scientific-visualization`, and `visual-qa`
|
|
88
|
+
`lit-plan`, `lit-recap`, `lit-loop`, `litwork`, `start-work`, `structural-search`,
|
|
89
|
+
`teammode`, `lit-handoff`, `lit-scientific-visualization`, and `visual-qa`
|
|
83
90
|
- **Bundled owner-authorized skills** - `lit-handoff` reads the complete immutable
|
|
84
91
|
four-file handoff source and supports the exact bare `handoff` prompt;
|
|
85
92
|
`lit-scientific-visualization` reads the complete immutable 16-file authored
|
|
86
93
|
source, resolves packaged scripts and assets, and reports missing Python or
|
|
87
94
|
matplotlib as `DEGRADED` without silently installing dependencies
|
|
88
|
-
- **Auxiliary Skill-discovery entries** - `frontend-ui-ux`,
|
|
89
|
-
`lsp-setup`, and `visual-qa` are shipped skill ids discoverable
|
|
90
|
-
Claude Code's native Skill discovery
|
|
91
|
-
|
|
95
|
+
- **Auxiliary Skill-discovery entries with chat routes** - `frontend-ui-ux`,
|
|
96
|
+
`git-master`, `lsp-setup`, and `visual-qa` are shipped skill ids discoverable
|
|
97
|
+
through Claude Code's native Skill discovery, and each also answers to a
|
|
98
|
+
leading bare token (`git-master ...`) or the dollar shorthand
|
|
99
|
+
(`$frontend-ui-ux ...`). They are deliberately **not** anywhere-tokens, so
|
|
100
|
+
mentioning one mid-sentence ("plain git-master discussion") does not activate
|
|
101
|
+
it. `frontend-ui-ux` additionally answers a natural-language design request -
|
|
102
|
+
a prompt carrying both a design verb and an interface noun, such as "design a
|
|
103
|
+
new settings page UI", surfaces it without naming the skill; "design the
|
|
104
|
+
database schema" does not. The same verb-and-noun rule works in Korean -
|
|
105
|
+
"설정 페이지 UI를 새로 디자인해줘" surfaces it, "API 클라이언트를 만들어줘"
|
|
106
|
+
does not - and Korean matches the verb stem, so every ending is covered.
|
|
107
|
+
These chat routes are additive: the existing post-edit and pre-commit event
|
|
108
|
+
routes still fire on their own conditions
|
|
92
109
|
- **Auxiliary workflow packs** - ships `programming/references`,
|
|
93
110
|
`programming/scripts`, and `debugging/references` for deeper language and
|
|
94
111
|
runtime guidance
|
|
112
|
+
- **Interface reference packs** - ships `frontend-ui-ux/references` (fifteen
|
|
113
|
+
design decision documents, each routed from a table in its skill entrypoint)
|
|
114
|
+
and `visual-qa/references` (a per-channel capture playbook). Every reference
|
|
115
|
+
file is hash-pinned, and `npm run validate:plugin` fails when a shipped
|
|
116
|
+
reference is not reachable from its own entrypoint
|
|
95
117
|
- **Workflow agents** - planner, executor, verifier, reviewer, librarian, and QA runner
|
|
96
118
|
- **Local marketplace registration** - Claude can resolve `claude plugin details litclaude@litclaude-ai`
|
|
97
119
|
- **MCP and LSP helpers** - plugin-local stdio MCP plus TypeScript-family LSP doctor
|
|
@@ -131,7 +153,7 @@ directory, the normal install command works:
|
|
|
131
153
|
|
|
132
154
|
```bash
|
|
133
155
|
cd /tmp
|
|
134
|
-
npx --yes litclaude-ai@0.3.
|
|
156
|
+
npx --yes litclaude-ai@0.3.35 install
|
|
135
157
|
```
|
|
136
158
|
|
|
137
159
|
Validate the installed plugin:
|
|
@@ -159,7 +181,7 @@ The installer also sets Claude Code's `statusLine` command to the packaged
|
|
|
159
181
|
LitClaude HUD. A typical no-color render starts like:
|
|
160
182
|
|
|
161
183
|
```text
|
|
162
|
-
[🔥LITCLAUDE v0.3.
|
|
184
|
+
[🔥LITCLAUDE v0.3.35] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
163
185
|
```
|
|
164
186
|
|
|
165
187
|
The `↻` suffix is a compact rate-limit reset countdown. It is separated from
|
|
@@ -217,8 +239,8 @@ the skill and hook inventory in `claude plugin details`.
|
|
|
217
239
|
Use `CLAUDE_CONFIG_DIR=/some/path` and `LITCLAUDE_HOME=/some/path` only for
|
|
218
240
|
isolated tests.
|
|
219
241
|
|
|
220
|
-
Installer permission
|
|
221
|
-
permission model:
|
|
242
|
+
Installer permission modes write a bounded set of Claude-native `permissions.allow`
|
|
243
|
+
and `permissions.deny` entries; they do not copy another harness's permission model:
|
|
222
244
|
|
|
223
245
|
```bash
|
|
224
246
|
npx --yes litclaude-ai install --permission-mode safe
|
|
@@ -226,11 +248,12 @@ npx --yes litclaude-ai install --permission-mode balanced
|
|
|
226
248
|
npx --yes litclaude-ai install --yolo
|
|
227
249
|
```
|
|
228
250
|
|
|
229
|
-
`safe`
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
251
|
+
`safe` writes no allow/deny entries. `balanced` adds read/search and bounded routine
|
|
252
|
+
Git, npm, and Node commands. `yolo` adds broader edit/write and Git/npm/Node command
|
|
253
|
+
patterns. Both non-safe modes add the dangerous-shell deny set, and neither weakens
|
|
254
|
+
`prometheus-planner`'s `permissionMode: plan` boundary. Install/update preserves
|
|
255
|
+
pre-existing permission entries and unrelated keys; uninstall removes only entries
|
|
256
|
+
that LitClaude actually inserted, independently of HUD/statusLine cleanup.
|
|
234
257
|
|
|
235
258
|
## LIT Usage
|
|
236
259
|
|
|
@@ -569,6 +592,7 @@ npm test
|
|
|
569
592
|
npm run validate:plugin
|
|
570
593
|
npm run qa:tmux
|
|
571
594
|
npm run qa:portable
|
|
595
|
+
npm run qa:real-surface
|
|
572
596
|
npm run pack:dry-run
|
|
573
597
|
```
|
|
574
598
|
|
|
@@ -576,6 +600,28 @@ npm run pack:dry-run
|
|
|
576
600
|
available on the machine, the smoke harness records a controlled skip with the
|
|
577
601
|
version probe evidence instead of failing mysteriously.
|
|
578
602
|
|
|
603
|
+
### Real-surface QA
|
|
604
|
+
|
|
605
|
+
`qa:real-surface` runs three probes that drive the shipped runtime directly
|
|
606
|
+
rather than importing it, so they keep working from a packaged install:
|
|
607
|
+
|
|
608
|
+
| Script | What it drives | Passing signal |
|
|
609
|
+
| --- | --- | --- |
|
|
610
|
+
| `npm run qa:matrix` | the negative gate matrix: 17 rows against the real `frontend-ui-ux` and `visual-qa` validators, the shipped installer/doctor, and the pack payload guard | `NEGATIVE_GATE_MATRIX_PASS` |
|
|
611
|
+
| `npm run qa:tamper` | an isolated install, then byte-tamper, delete, and restore of pinned skill resources | `INSTALLED_TAMPER_REPAIR_PASS` |
|
|
612
|
+
| `npm run qa:behaviors` | portable install layout, postinstall plugin/HUD setup, hook event handling, and plugin validation through the installed surfaces | `REAL_SURFACE_BEHAVIORS_PASS` |
|
|
613
|
+
|
|
614
|
+
Each row of the matrix reports its name, expected outcome, observed outcome, and
|
|
615
|
+
`PASS`/`FAIL`/`BLOCKED`. A row that cannot be exercised is reported `BLOCKED`
|
|
616
|
+
with its exact reason; it is never dropped and never counted as a pass. Every
|
|
617
|
+
probe redirects `LITCLAUDE_HOME` and `CLAUDE_CONFIG_DIR` into temp roots, never
|
|
618
|
+
touches a live profile, and ends with a measured cleanup receipt.
|
|
619
|
+
|
|
620
|
+
`npm run qa:matrix-negative-control` is the matrix's self-test: it feeds one row
|
|
621
|
+
a deliberately wrong expectation and **must exit non-zero**. It is deliberately
|
|
622
|
+
excluded from `qa:real-surface`. If it ever exits 0, the matrix has stopped
|
|
623
|
+
comparing anything and its green results mean nothing.
|
|
624
|
+
|
|
579
625
|
## Safety Model
|
|
580
626
|
|
|
581
627
|
- Hooks read Claude Code event JSON from stdin and return bounded JSON context.
|
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.35-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,7 +26,7 @@
|
|
|
26
26
|
> 설치되므로, 매번 긴 `--plugin-dir` 없이 일반 `claude` 실행에서
|
|
27
27
|
> LitClaude skill과 hook을 불러올 수 있습니다.
|
|
28
28
|
|
|
29
|
-
현재 checkout은 `litclaude-ai@0.3.
|
|
29
|
+
현재 checkout은 `litclaude-ai@0.3.35` 배포 준비용으로 정리되어 있습니다. 목적은
|
|
30
30
|
다른 PC에서도 빠르게 설치하기 위한 개인용 package metadata를 갖추는 것입니다.
|
|
31
31
|
npm package metadata를 준비했다고 해서 홍보, 공개 저장소 운영, Claude
|
|
32
32
|
marketplace 등록을 의미하지는 않습니다. 새 버전 배포는 항상 별도의 명시적
|
|
@@ -88,13 +88,30 @@ litresearch activation/read-only polish를 유지합니다.
|
|
|
88
88
|
파일을, `lit-scientific-visualization`은 승인된 authored 원본 16개를
|
|
89
89
|
byte-identical하게 포함합니다. Python 또는 matplotlib이 없으면 자동
|
|
90
90
|
설치하지 않고 해당 capability를 `DEGRADED`로 보고합니다.
|
|
91
|
-
- **Auxiliary Skill-discovery entries** - `frontend-ui-ux`,
|
|
92
|
-
`lsp-setup`, `visual-qa`는 Claude Code native Skill discovery로
|
|
93
|
-
shipped skill id
|
|
94
|
-
|
|
91
|
+
- **Auxiliary Skill-discovery entries + chat route** - `frontend-ui-ux`,
|
|
92
|
+
`git-master`, `lsp-setup`, `visual-qa`는 Claude Code native Skill discovery로
|
|
93
|
+
찾는 shipped skill id이면서, 문장 맨 앞에 오는 bare token(`git-master ...`)과
|
|
94
|
+
dollar shorthand(`$frontend-ui-ux ...`)로도 활성화됩니다. anywhere-token은
|
|
95
|
+
일부러 아닙니다. 문장 중간에 이름만 언급하는 경우("plain git-master
|
|
96
|
+
discussion")에는 활성화되지 않습니다. `frontend-ui-ux`는 자연어 디자인 요청도
|
|
97
|
+
받습니다. **한국어도 지원합니다.** 만들기/디자인 계열 동사와 UI 명사가 함께
|
|
98
|
+
있어야 활성화되는 구조는 영어와 동일합니다. 활성화되는 예: "설정 페이지 UI를
|
|
99
|
+
새로 디자인해줘", "디자인 시스템을 만들어줘", "대시보드 레이아웃을 개편해줘".
|
|
100
|
+
활성화되지 않는 예: "API 클라이언트를 만들어줘", "데이터베이스 마이그레이션을
|
|
101
|
+
새로 만들어줘" — 동사는 같아도 UI 명사가 없기 때문입니다. 한국어는 교착어라서
|
|
102
|
+
어미가 아니라 어간(`디자인`, `만들`)을 매칭하므로 `디자인해줘`, `디자인하고`,
|
|
103
|
+
`디자인할`, `리디자인` 이 모두 같은 어간으로 잡힙니다. 영어 예시로는 "design a
|
|
104
|
+
new settings page UI"가 활성화되고 "design the database schema"는 활성화되지
|
|
105
|
+
않습니다. 이 chat route는 추가된 것이라서 기존 post-edit / pre-commit event
|
|
106
|
+
route는 그대로 각자의 조건으로 동작합니다.
|
|
95
107
|
- **Auxiliary workflow packs** - `programming/references`,
|
|
96
108
|
`programming/scripts`, `debugging/references`까지 포함해서 언어별,
|
|
97
109
|
런타임별 세부 지침을 보존
|
|
110
|
+
- **Interface reference packs** - `frontend-ui-ux/references`(디자인 결정
|
|
111
|
+
문서 15개, 각 skill entrypoint의 라우터 표에서 바로 찾아갈 수 있음)와
|
|
112
|
+
`visual-qa/references`(채널별 capture playbook)를 포함합니다. 모든 reference
|
|
113
|
+
파일은 hash-pinned이고, entrypoint에서 도달할 수 없는 reference가 있으면
|
|
114
|
+
`npm run validate:plugin`이 실패합니다.
|
|
98
115
|
- **워크플로우 agents** - planner, executor, verifier, reviewer, librarian, QA runner
|
|
99
116
|
- **Local marketplace 등록** - `claude plugin details litclaude@litclaude-ai`에서 inventory 확인
|
|
100
117
|
- **MCP와 LSP helper** - plugin-local stdio MCP와 TypeScript 계열 LSP doctor
|
|
@@ -131,7 +148,7 @@ checkout을 먼저 해석해서 `sh: litclaude-ai: command not found`로 실패
|
|
|
131
148
|
|
|
132
149
|
```bash
|
|
133
150
|
cd /tmp
|
|
134
|
-
npx --yes litclaude-ai@0.3.
|
|
151
|
+
npx --yes litclaude-ai@0.3.35 install
|
|
135
152
|
```
|
|
136
153
|
|
|
137
154
|
설치 상태를 확인합니다.
|
|
@@ -159,7 +176,7 @@ installer는 Claude Code의 `statusLine` command도 packaged LitClaude HUD로
|
|
|
159
176
|
설정합니다. 색상을 제거한 예시는 다음처럼 시작합니다.
|
|
160
177
|
|
|
161
178
|
```text
|
|
162
|
-
[🔥LITCLAUDE v0.3.
|
|
179
|
+
[🔥LITCLAUDE v0.3.35] | O4.8 │ ctx [▎░░] 9%/1000k │ 5h [▏░] 4% ↻2h15m │ 1w [▊░] 35% ↻3d6h │ git main +3 ✓
|
|
163
180
|
```
|
|
164
181
|
|
|
165
182
|
`↻` 표시는 rate-limit reset까지 남은 시간을 짧게 보여주는 countdown입니다.
|
|
@@ -216,8 +233,8 @@ LitClaude 전용 local marketplace 항목, `known_marketplaces.json`을 함께
|
|
|
216
233
|
격리 테스트가 필요할 때만 `CLAUDE_CONFIG_DIR=/some/path`와
|
|
217
234
|
`LITCLAUDE_HOME=/some/path`를 지정하세요.
|
|
218
235
|
|
|
219
|
-
installer permission
|
|
220
|
-
|
|
236
|
+
installer permission mode는 다른 harness의 permission model을 복사하지 않고,
|
|
237
|
+
Claude-native `permissions.allow`와 `permissions.deny`에 제한된 규칙을 기록합니다.
|
|
221
238
|
|
|
222
239
|
```bash
|
|
223
240
|
npx --yes litclaude-ai install --permission-mode safe
|
|
@@ -225,10 +242,12 @@ npx --yes litclaude-ai install --permission-mode balanced
|
|
|
225
242
|
npx --yes litclaude-ai install --yolo
|
|
226
243
|
```
|
|
227
244
|
|
|
228
|
-
`safe`는
|
|
229
|
-
|
|
230
|
-
|
|
245
|
+
`safe`는 allow/deny 규칙을 추가하지 않습니다. `balanced`는 read/search와 제한된
|
|
246
|
+
Git·npm·Node 명령을 추가하고, `yolo`는 edit/write 및 더 넓은 Git·npm·Node 패턴을
|
|
247
|
+
추가합니다. 두 non-safe mode 모두 dangerous-shell deny 규칙을 유지하며
|
|
231
248
|
`prometheus-planner`의 `permissionMode: plan` boundary를 약화하지 않습니다.
|
|
249
|
+
install/update는 기존 permission 규칙과 `defaultMode` 같은 무관한 key를 보존하고,
|
|
250
|
+
uninstall은 HUD/statusLine cleanup과 독립적으로 LitClaude가 실제 삽입한 규칙만 제거합니다.
|
|
232
251
|
|
|
233
252
|
## LIT 사용법
|
|
234
253
|
|
|
@@ -506,6 +525,7 @@ npm test
|
|
|
506
525
|
npm run validate:plugin
|
|
507
526
|
npm run qa:tmux
|
|
508
527
|
npm run qa:portable
|
|
528
|
+
npm run qa:real-surface
|
|
509
529
|
npm run pack:dry-run
|
|
510
530
|
```
|
|
511
531
|
|
|
@@ -513,6 +533,28 @@ npm run pack:dry-run
|
|
|
513
533
|
환경에서는 smoke harness가 모호한 실패 대신 controlled skip과 version
|
|
514
534
|
probe evidence를 남깁니다.
|
|
515
535
|
|
|
536
|
+
### Real-surface QA
|
|
537
|
+
|
|
538
|
+
`qa:real-surface`는 재구현이 아니라 실제 배포 runtime을 직접 구동하는 probe
|
|
539
|
+
3종을 실행하므로, 패키지 설치본에서도 그대로 동작합니다.
|
|
540
|
+
|
|
541
|
+
| Script | 구동 대상 | 통과 신호 |
|
|
542
|
+
| --- | --- | --- |
|
|
543
|
+
| `npm run qa:matrix` | negative gate matrix 17개 row를 실제 `frontend-ui-ux`/`visual-qa` validator, 배포 installer/doctor, pack payload guard로 실행 | `NEGATIVE_GATE_MATRIX_PASS` |
|
|
544
|
+
| `npm run qa:tamper` | 격리 설치 후 pinned skill resource를 byte 변조·삭제·복원 | `INSTALLED_TAMPER_REPAIR_PASS` |
|
|
545
|
+
| `npm run qa:behaviors` | portable install layout, postinstall plugin/HUD 설정, hook 이벤트 처리, plugin validation을 설치된 표면으로 검증 | `REAL_SURFACE_BEHAVIORS_PASS` |
|
|
546
|
+
|
|
547
|
+
matrix의 각 row는 이름, 기대 결과, 관측 결과, `PASS`/`FAIL`/`BLOCKED`를
|
|
548
|
+
출력합니다. 실행할 수 없는 row는 정확한 사유와 함께 `BLOCKED`로 보고하며,
|
|
549
|
+
누락하거나 pass로 처리하지 않습니다. 모든 probe는 `LITCLAUDE_HOME`과
|
|
550
|
+
`CLAUDE_CONFIG_DIR`을 임시 경로로 우회시켜 실제 프로필을 건드리지 않고,
|
|
551
|
+
마지막에 측정된 cleanup receipt를 남깁니다.
|
|
552
|
+
|
|
553
|
+
`npm run qa:matrix-negative-control`은 matrix의 self-test이며 **반드시 0이
|
|
554
|
+
아닌 exit code로 종료해야 합니다**. 일부러 틀린 기대값을 하나 주입하기
|
|
555
|
+
때문에 `qa:real-surface`에서는 제외되어 있고, 0으로 종료된다면 matrix가
|
|
556
|
+
비교를 멈춘 것이므로 나머지 green 결과도 신뢰할 수 없습니다.
|
|
557
|
+
|
|
516
558
|
## 안전 모델
|
|
517
559
|
|
|
518
560
|
- Hook은 Claude Code event JSON을 stdin으로 읽고 제한된 JSON context를 반환합니다.
|
package/RELEASE_CHECKLIST.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# LitClaude Release Checklist
|
|
2
2
|
|
|
3
|
-
Status: `litclaude-ai@0.3.
|
|
4
|
-
|
|
3
|
+
Status: `litclaude-ai@0.3.35` is the current release candidate — restored
|
|
4
|
+
litwork, rules-engine, plan-scaffolding, litgoal-drift, structural-search,
|
|
5
|
+
comment-checker, and teammode surfaces with tracked regression tests and
|
|
6
|
+
installed tamper coverage, plus packaged evidence-first UI/UX design intelligence, strict Design/Evidence/Review
|
|
5
7
|
contracts, bounded PNG and TUI inspection, tier-correct independent review, and
|
|
6
8
|
adversarial zero-false-PASS coverage. It also carries the quiet nonblocking npm
|
|
7
9
|
update notice with strict cache, concurrency, timestamp, opt-out, and
|
|
@@ -36,9 +38,9 @@ side-effect-free, the launcher starts only a separate Claude Code
|
|
|
36
38
|
print/background worker, and the release preserves the Korean polishing
|
|
37
39
|
command, strict multi-agent review pipeline, fidelity guardrails, package
|
|
38
40
|
hygiene checks, native route gates, and safe start-work handoff behavior.
|
|
39
|
-
`package.json` is aligned to `0.3.
|
|
40
|
-
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.
|
|
41
|
-
plugin-local MCP server reports `0.3.
|
|
41
|
+
`package.json` is aligned to `0.3.35`,
|
|
42
|
+
`plugins/litclaude/.claude-plugin/plugin.json` is aligned to `0.3.35`, and the
|
|
43
|
+
plugin-local MCP server reports `0.3.35`.
|
|
42
44
|
|
|
43
45
|
This release carries the v0.2.2 Dynamic workflow hardening surfaces:
|
|
44
46
|
`/dynamic-workflow`, `workflow-check --json`, native `/goal` fallback guidance,
|
|
@@ -71,6 +73,10 @@ behavior.
|
|
|
71
73
|
- `npm run pack:payload-guard`
|
|
72
74
|
- `npm run qa:tmux`
|
|
73
75
|
- `npm run qa:portable`
|
|
76
|
+
- `npm run qa:matrix`
|
|
77
|
+
- `npm run qa:tamper`
|
|
78
|
+
- `npm run qa:behaviors`
|
|
79
|
+
- `npm run qa:matrix-negative-control` (must exit non-zero)
|
|
74
80
|
- `npm run pack:dry-run`
|
|
75
81
|
|
|
76
82
|
## Local Checkout Use
|
|
@@ -106,6 +112,67 @@ the installed package can run its packaged visual CLI against caller-owned
|
|
|
106
112
|
captures. Source doctor, isolated install, installed doctor, canonical resource
|
|
107
113
|
integrity, scenario replay, and package-payload guards must all pass.
|
|
108
114
|
|
|
115
|
+
Confirm both interface reference packs ship and stay reachable. `npm run
|
|
116
|
+
validate:plugin` must print `SKILL_REFERENCE_ROUTER_PASS` with every shipped
|
|
117
|
+
`references/*.md` named in its own `SKILL.md`; a reference that is pinned and
|
|
118
|
+
installed but unreachable from its entrypoint is dead payload and blocks the
|
|
119
|
+
release. Run `npm run gen:skill-resources` after touching any reference, schema,
|
|
120
|
+
or script under either skill, and confirm `npm run check:skill-resources`
|
|
121
|
+
reports no drift.
|
|
122
|
+
|
|
123
|
+
Confirm the visual evidence lane still imports nothing from a sibling skill:
|
|
124
|
+
`grep -rn "frontend-ui-ux" plugins/litclaude/skills/visual-qa/` must return no
|
|
125
|
+
hits. The lane keeps its own Design Contract schema copy and its own shape
|
|
126
|
+
validator on purpose, so a manifest remains checkable from a partial install and
|
|
127
|
+
two independent readings of one shape can disagree visibly.
|
|
128
|
+
|
|
129
|
+
Confirm the blocker vocabulary is complete and honest. `BLOCKED_AUTH_UNAVAILABLE`,
|
|
130
|
+
`BLOCKED_CAPTURE_UNAVAILABLE`, `BLOCKED_INDEPENDENT_REVIEW_UNAVAILABLE`,
|
|
131
|
+
`BLOCKED_TEST_ACCOUNT_UNSAFE`, `BLOCKED_RENDERER_OWNERSHIP_UNVERIFIED`,
|
|
132
|
+
`BLOCKED_EVIDENCE_STALE`, `BLOCKED_EVIDENCE_FUTURE`, and
|
|
133
|
+
`BLOCKED_CLEANUP_INCOMPLETE` must each be emittable by the shipped validator,
|
|
134
|
+
not merely documented. A reviewer that returns a non-`PASS` verdict must produce
|
|
135
|
+
`FAIL`, never a blocker, and `BLOCKED` must outrank `FAIL` when both apply.
|
|
136
|
+
|
|
137
|
+
## Real-Surface QA Gates
|
|
138
|
+
|
|
139
|
+
`npm run qa:real-surface` must pass alongside `npm test`, not instead of it.
|
|
140
|
+
It runs three probes that drive the shipped runtime rather than importing a
|
|
141
|
+
reimplementation, so they survive a packaged install and outlive any test-tree
|
|
142
|
+
cleanup:
|
|
143
|
+
|
|
144
|
+
- `npm run qa:matrix` must print `NEGATIVE_GATE_MATRIX_PASS` with 17 rows and
|
|
145
|
+
zero `FAIL` or `BLOCKED` rows. The matrix drives the real
|
|
146
|
+
`validate-design-contract` CLI, the real `visual-qa` CLI, the shipped
|
|
147
|
+
installer and doctor, and `tools/check-pack-payload.mjs`. It proves each
|
|
148
|
+
blocker code above by emitting it from the shipped validator: a valid contract
|
|
149
|
+
and evidence bundle pass; a duplicate-key contract, capture bytes changed after
|
|
150
|
+
the manifest, and a same-context self-review fail; missing capture, stale and
|
|
151
|
+
future-dated evidence, unavailable auth, unverified renderer ownership,
|
|
152
|
+
incomplete cleanup, an unavailable reviewer, and an unsafe test account each
|
|
153
|
+
block with their exact code; bounded PNG, TUI, and CJK cases pass; and the
|
|
154
|
+
pack payload guard reports zero forbidden paths.
|
|
155
|
+
- `npm run qa:tamper` must print `INSTALLED_TAMPER_REPAIR_PASS`. It installs
|
|
156
|
+
into isolated temp roots, proves the installed doctor passes, produces
|
|
157
|
+
`RESOURCE_HASH_MISMATCH` from every byte tamper, and names the exact deleted
|
|
158
|
+
path through either `RESOURCE_MISSING` or the earlier canonical-catalog
|
|
159
|
+
`DOCTOR_FAIL` used for a missing `SKILL.md` entrypoint. It then proves each
|
|
160
|
+
restoration returns the doctor to `DOCTOR_PASS`.
|
|
161
|
+
- `npm run qa:behaviors` must print `REAL_SURFACE_BEHAVIORS_PASS` with all four
|
|
162
|
+
named behaviours reported `REPLACED`: portable install layout, postinstall
|
|
163
|
+
isolated plugin/HUD setup, hook fixtures, and plugin validation. A behaviour
|
|
164
|
+
that cannot be exercised is reported `NOT_REPLACEABLE` with its reason and
|
|
165
|
+
fails the gate; it is never quietly downgraded to a pass.
|
|
166
|
+
|
|
167
|
+
`npm run qa:matrix-negative-control` is the matrix self-test and **must exit
|
|
168
|
+
non-zero**. It feeds one row a deliberately wrong expectation; a zero exit means
|
|
169
|
+
the matrix stopped comparing observed outcomes against expectations and every
|
|
170
|
+
other green result from it is void.
|
|
171
|
+
|
|
172
|
+
Every probe redirects `LITCLAUDE_HOME` and `CLAUDE_CONFIG_DIR` into temp roots,
|
|
173
|
+
never reads or writes a live profile, and ends with a cleanup receipt whose
|
|
174
|
+
state is measured after removal. A leaked temp root fails the gate.
|
|
175
|
+
|
|
109
176
|
## v0.3.33 Update Notice and Canonical Catalog Gates
|
|
110
177
|
|
|
111
178
|
Before requesting publication approval, confirm interactive `install`, `update`,
|
|
@@ -185,9 +252,9 @@ checkout and from an isolated install of the packed tarball:
|
|
|
185
252
|
Before requesting publication approval, confirm these artifacts from the current
|
|
186
253
|
checkout:
|
|
187
254
|
|
|
188
|
-
- `package.json` version is `0.3.
|
|
189
|
-
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.
|
|
190
|
-
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.
|
|
255
|
+
- `package.json` version is `0.3.35`.
|
|
256
|
+
- `plugins/litclaude/.claude-plugin/plugin.json` version is `0.3.35`.
|
|
257
|
+
- `plugins/litclaude/bin/litclaude-mcp.js` reports server version `0.3.35`.
|
|
191
258
|
- 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.
|
|
192
259
|
- `lit search` and `lit query` route to `/litclaude:litresearch` without activating on slash mentions, code spans, or non-lit prompts.
|
|
193
260
|
- Litresearch web lanes require public API/feed preference, validator-first checks, route traces, prompt-injection quarantine, and honest auth/paywall/private-data stop reasons.
|