docs(plan): mark v5.4.0 Feature 1 DONE + field-set correction [skip-docs]
CA-PLH-015 shipped (7abc5a1). Records the Verifiseringsplikt correction:
replaces-only field set (commands/agents/outputStyles); skills excluded
(adds-to-default), hooks/mcpServers/lspServers excluded (own merge rules).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ter3E2JSi1Khgmuf2kady8
This commit is contained in:
parent
7abc5a1dcb
commit
9b63125f6a
1 changed files with 12 additions and 4 deletions
|
|
@ -58,11 +58,19 @@ Re-confirm each feature's exact CC behavior against primary docs at the start of
|
|||
(Verifiseringsplikt — premises were verified in Session A but the exact field lists / warning text
|
||||
must be pinned before coding). Checkpoint STATE + this plan after each feature.
|
||||
|
||||
### Feature 1 — PLH shadow-folder (`CA-PLH-015`)
|
||||
- **What:** flag when a `plugin.json` component-path key (`commands`/`agents`/`skills`/`hooks`)
|
||||
### Feature 1 — PLH shadow-folder (`CA-PLH-015`) ✅ DONE (commit `7abc5a1`)
|
||||
- **Verifiseringsplikt correction (2026-06-19):** the field set was pinned against
|
||||
`code.claude.com/docs/.../path-behavior-rules`. Only the **replaces** category truly shadows:
|
||||
shipped set = `commands`/`agents`/`outputStyles`. **`skills` excluded** — it *adds to* the
|
||||
default `skills/` scan (both load, never a shadow); **`hooks`/`mcpServers`/`lspServers`
|
||||
excluded** — own merge rules, not a folder-shadow. Experimental `themes`/`monitors` omitted
|
||||
(docs warn their schema may change). Explicit-address exception honored
|
||||
(`"commands": ["./commands/x.md"]` not flagged). +5 tests (936→941), suite green, self-audit
|
||||
A/A, count 13, gitleaks clean. Pushed.
|
||||
- **What:** flag when a `plugin.json` component-path key (`commands`/`agents`/`outputStyles`)
|
||||
points at a **custom path** while the **default folder of that name also exists** in the plugin,
|
||||
so one silently shadows the other. Mirrors CC's warning in `/doctor` & `claude plugin list`
|
||||
(introduced ~2.1.140; 2.1.142 names every conflicting key).
|
||||
so the default is silently ignored. Mirrors CC's warning in `/doctor` & `claude plugin list`
|
||||
(~2.1.140). _(Original plan listed `commands/agents/skills/hooks` — corrected above.)_
|
||||
- **Where:** `scanners/plugin-health-scanner.mjs` (per-plugin loop; the scanner already reads
|
||||
`plugin.json` but only checks `name`/`description`/`version`). Add component-path-key parsing.
|
||||
- **Severity:** MEDIUM — silently-shadowed components = dead config (a whole command/skill/agent
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue