release: v5.11.0 — "Precision polish" (B7+B8)
Version-sync: plugin.json 5.10.0→5.11.0; README version badge + tests badge 1257+→1279+ + new version-history row; CLAUDE.md test counts 1257/71→1279/72 (22→23 lib test files); CHANGELOG [5.11.0]; README SKL row documents CA-SKL-003 + the --context-window flag. B7 (CA-SKL-003) and B8 (--context-window calibration) shipped as feat commits2798880+2082b7d. Scanner/agent/command counts unchanged (16/7/21); --json/--raw byte-stable; frozen v5.0.0 + SC-5 snapshots untouched. Suite 1279 green. self-audit --check-readme: PASS (badges == filesystem). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2082b7d112
commit
ad1eceb76a
4 changed files with 41 additions and 5 deletions
35
CHANGELOG.md
35
CHANGELOG.md
|
|
@ -5,6 +5,41 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [5.11.0] - 2026-06-23
|
||||
|
||||
### Summary
|
||||
"Precision polish" — the two LOW-priority calibration gaps from the hardening plan, both additive.
|
||||
**B7** flags an oversized SKILL.md body (`CA-SKL-003`), honestly framed as an on-demand cost. **B8**
|
||||
lets `CA-SKL-002` and the CML char-budget calibrate to a real context window via `--context-window`,
|
||||
and downgrade to advisory when the window is unknown — so the 200k anchor stops crying wolf on a 1M
|
||||
host. Scanner count stays **16** (both extend the existing SKL/CML scanners), agents **7**, commands
|
||||
**21**; `--json`/`--raw` stay byte-stable and the frozen v5.0.0 + SC-5 snapshots are untouched. **1279** tests.
|
||||
|
||||
### Added
|
||||
- **B7 — oversized skill body (`CA-SKL-003`, low).** `measureActiveSkillListing()` now measures the
|
||||
SKILL.md **body** below the frontmatter (the file was already read in full; only the frontmatter was
|
||||
parsed). A body over ~5,000 tokens (`BODY_TOKEN_THRESHOLD`) fires `CA-SKL-003`, recommending a
|
||||
supporting-file split and `context: fork` for heavy skills.
|
||||
- **Honest framing (Verifiseringsplikt):** `BODY_CALIBRATION_NOTE` marks this as an **on-demand**
|
||||
cost — the body loads only when the skill is invoked, **not** every turn like the always-loaded
|
||||
listing — and an estimate (chars/4), hence low severity. Distinct from the always-loaded
|
||||
listing-budget findings.
|
||||
- **B8 — context-window calibration (`--context-window`).** `CA-SKL-002` (skill-listing budget) and
|
||||
the CML char-budget threshold now calibrate to a resolved context window instead of always
|
||||
anchoring at 200k. `lib/context-window.mjs` gains `resolveContextWindow()` and `scaleForWindow()`:
|
||||
- `--context-window <n>` calibrates the budget to `n` (e.g. `1000000` relaxes the SKL listing budget
|
||||
to ~20,000 tok, so an over-200k listing is within budget and does not fire).
|
||||
- `--context-window auto` keeps the conservative 200k anchor but marks the result **advisory** —
|
||||
SKL/CML emit the finding at **info** rather than as a budget breach (model→window auto-probing is
|
||||
deferred to a later B8b).
|
||||
- No flag → the conservative 200k anchor at full severity, **byte-identical** to the pre-B8 default.
|
||||
- Both SKL and CML keep an untouched default branch (`window === 200k && !advisory`) for
|
||||
byte-stability plus a calibrated branch. The flag is wired through `scan-orchestrator` and
|
||||
`posture`; `runAllScanners` resolves it once and threads `{ contextWindow }` to the scanners
|
||||
(others ignore the third arg).
|
||||
- **CPS intentionally excluded:** it has no window-anchored budget (a fixed 150-line volatility
|
||||
heuristic), so there is nothing to calibrate.
|
||||
|
||||
## [5.10.0] - 2026-06-23
|
||||
|
||||
### Summary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue