release: v5.3.0 — permission-rule & plugin-hygiene hardening (DIS/CML/PLH)
Five additive scanner findings extend existing scanners (count stays 13): DIS forbidden-param rules (Tool(param:value) on a canonicalizing field — deny/ask = false security, allow = dead config) and ineffective allow-wildcards + Tool(*) deny-all; CML context-window-scaled 40.0k-char CLAUDE.md budget mirroring CC's startup warning; PLH plugin namespace collision (two plugins declaring the same name). PLH cross-plugin command-name overlap reframed HIGH → LOW (namespacing keeps both reachable). feature-gap recommends disableBundledSkills under skill-listing pressure. Version sync: plugin.json 5.2.0→5.3.0, README version badge + What's New + version-history row + TOC anchor (tests badge already 936+, scanner count stays 13), CHANGELOG [5.3.0] entry, 3 knowledge-backing entries. 936/936 tests; self-audit configGrade A 97, pluginGrade A 100, readmeCheck.passed:true; gitleaks clean. 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
891f9506bf
commit
fe686b6594
5 changed files with 118 additions and 13 deletions
|
|
@ -31,6 +31,13 @@
|
|||
| `/code-review` bundled review skill | v2.1.147 | Renamed from the former cleanup skill; reports correctness bugs at a chosen effort (`/code-review high`), `--comment` posts inline PR comments. |
|
||||
| `/config key=value` | v2.1.181 | Apply any setting from the prompt (e.g. `/config thinking=false`) — interactive, `-p`, and Remote Control. Lets `/config-audit` settings recommendations be applied without hand-editing settings.json. |
|
||||
|
||||
## v5.3.0 scanner-backing facts (verified 2026-06-19)
|
||||
|
||||
| Fact | Source | Backs |
|
||||
|------|--------|-------|
|
||||
| **"Large CLAUDE.md will impact performance (X chars > 40.0k)"** — Claude Code emits this startup warning when a CLAUDE.md exceeds ~40,000 chars. CC 2.1.169 scales the threshold with the model's context window: ~40.0k at a 200k-context model, relaxing to ~200,000 chars at 1M context. The figure is a **char** count, not a line count — complementary to the 200/500-line adherence guidance (a file can be long by lines yet under budget, or short by lines yet over it). | CC changelog 2.1.169 + live startup-warning text | CML `CA-CML` char-budget finding — anchors on the conservative 200k window (fires earliest, since the user's window is unobservable) and discloses the relaxed 1M figure. Window constants in `scanners/lib/context-window.mjs`. Severity medium (token cost, not an adherence cliff). |
|
||||
| **`Tool(param:value)` permission matching is deny/ask-only.** The `param:value` form is honored only in `permissions.deny` and `permissions.ask`; in `permissions.allow` it matches nothing (dead config). Separately, a rule whose key is the tool's own *canonicalizing field* — `command` (Bash/PowerShell), `file_path` (Read/Edit/Write), `path` (Grep/Glob), `notebook_path` (NotebookEdit), `url` (WebFetch) — is **ignored** by CC, which emits a startup warning. Valid parameter forms (`Bash(npm:*)`, `WebFetch(domain:host)`, `Agent(model:opus)`) are honored. | code.claude.com/docs/en/permissions | DIS forbidden-param finding (`forbiddenParamRule` in `permission-rules.mjs`): deny/ask = false security (medium, the block never applies), allow = dead config (low). |
|
||||
|
||||
## Official Configuration Guidance (Anthropic)
|
||||
|
||||
These principles are backed by official docs and verified community reports. Use them to ground recommendations.
|
||||
|
|
|
|||
|
|
@ -56,3 +56,14 @@ uncertainty band.
|
|||
| medium | Materially inflates token cost per turn (cache miss, schema bloat) |
|
||||
| low | Detectable inefficiency that compounds across long sessions |
|
||||
| info | Informational signal — no action required, may indicate room for optimisation |
|
||||
|
||||
## Skill-listing budget lever: disableBundledSkills
|
||||
|
||||
When the active skill listing exceeds its token budget (SKL `CA-SKL-002`), the
|
||||
`disableBundledSkills` setting is a direct token-efficiency lever: it removes the descriptions
|
||||
of plugin-bundled skills from the skill listing injected into the system prompt, shrinking the
|
||||
per-turn baseline. Unlike trimming individual descriptions (`CA-SKL-001`), it is a single switch
|
||||
that drops the entire bundled-skill surface at once — appropriate when the bundled skills are not
|
||||
in active use. feature-gap surfaces it as a conditional recommendation, the remediation companion
|
||||
to `CA-SKL-002`. Sibling levers: `skillOverrides` (selectively re-enable specific skills) and
|
||||
per-skill description trimming.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue