litclaude-ai 0.3.34 → 0.3.36

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