feat(skill-listing): add CA-SKL-002 aggregate listing-budget check
Syklus 2 of Fase 4 Items 2+3. Flags when the sum of active skill descriptions exceeds the listing budget (~2% of context, CC 2.1.32). Design (operator-confirmed "fact-first, 200k anchor"): - low severity (estimate) vs medium for the verified 1,536-char cap - each description counted up to the 1,536 cap (what actually loads in the listing) — avoids double-counting the tail CA-SKL-001 flags - fires when sum > 2% x 200k = 4000 tok; evidence leads with the measured sum + a calibration note that the budget scales 5x on 1M-context models - aggregate emitted after the per-skill loop so the common case reads 001=cap, 002=aggregate (finding IDs are a sequential counter, not stable semantic IDs — tests match on title, never NNN) Also: - tailored humanizer static entry for the aggregate title - fix latent HOME leak in posture-grade-stability.test.mjs: it spawned posture.mjs without hermeticEnv(), so a real ~/.claude leaked HOME-scoped SKL/COL findings into the baseline grade (Token Efficiency A->B). Now isolated like the 8 other CLI-spawning tests. - docs sync: test count 868->875, scanner-internals, gap-matrix, plan status Suite 875/875, no snapshot drift, self-audit 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
7bb254780a
commit
66433fee48
8 changed files with 215 additions and 11 deletions
|
|
@ -22,7 +22,7 @@ Scanner CLI: `node scanners/scan-orchestrator.mjs <path> [--global] [--full-mach
|
|||
| `cache-prefix-scanner.mjs` | CPS | Volatile content in lines 31–150 of CLAUDE.md cascade (beyond Pattern A's top-30 window) |
|
||||
| `disabled-in-schema-scanner.mjs` | DIS | Tools listed in BOTH `permissions.deny` AND `permissions.allow` — deny wins, allow entries are dead config |
|
||||
| `collision-scanner.mjs` | COL | Cross-plugin skill name collisions (low); user-vs-plugin overlaps (medium); `details.namespaces` payload |
|
||||
| `skill-listing-scanner.mjs` | SKL | Active skill descriptions over the verified 1,536-char listing cap (CC 2.1.105) → silently truncated in the model's skill listing (medium). HOME-scoped (all user + plugin skills). Remediation surfaces `disableBundledSkills` / `skillOverrides`. Distinct lens from TOK pattern F (project-local 500-char bloat heuristic) |
|
||||
| `skill-listing-scanner.mjs` | SKL | (1) `CA-SKL-001` (medium): active skill descriptions over the verified 1,536-char listing cap (CC 2.1.105) → silently truncated in the model's skill listing. (2) `CA-SKL-002` (low): sum of active descriptions (each counted up to the cap) over the listing budget (~2% of context, CC 2.1.32), anchored on a conservative 200k window with a calibration note that the budget scales 5× on 1M-context models — leads with the measured sum, an estimate not telemetry. HOME-scoped (all user + plugin skills). Remediation surfaces `disableBundledSkills` / `skillOverrides` / trim. Distinct lens from TOK pattern F (project-local 500-char bloat heuristic) |
|
||||
|
||||
## Scanner Lib (`scanners/lib/`)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue