release: v5.5.0 — steering-model I (A+E)

Bundles the two v5.5.0 features already on main:
- A (f3aadb5): RUL/CML compaction-durability findings (both LOW) — a
  large (>50-line) path-scoped rule and a nested CLAUDE.md are not
  re-injected after compaction.
- E (f75ed56): PLH flags plugin-agent hooks/mcpServers/permissionMode
  frontmatter Claude Code ignores for plugin subagents (permissionMode
  MEDIUM false-security, rest LOW).

Additive — scanner count stays 13, --json/--raw byte-stable. Suite 961
pass. self-audit A/A (config 93, plugin 100), readmeCheck passed,
mismatches []. Version synced: plugin.json 5.4.1->5.5.0, README
version badge + version-history row, CHANGELOG [5.5.0] section.

Foundation (active-config-reader enumeration) + B deferred to v5.6.

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:
Kjell Tore Guttormsen 2026-06-20 11:34:51 +02:00
commit dac1db48c5
3 changed files with 31 additions and 2 deletions

View file

@ -5,6 +5,34 @@ 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.5.0] - 2026-06-20
### Summary
"Steering-model I" — two additive findings on the compaction-durability / dead-config theme,
extending the existing RUL, CML, and PLH scanners (scanner count stays **13**; `--json` and `--raw`
remain byte-stable). Both are anchored to the live Claude Code docs (`code.claude.com/docs`) per the
project's verification duty. The Foundation work (active-config-reader enumeration) and feature B are
deferred to v5.6 — A and E are additive to existing scanners and do not consume it.
### Added
- **RUL / CML compaction-durability findings (A)** — per the official "what survives compaction"
model (`context-window.md`), only the project-root CLAUDE.md and unscoped rules are re-injected
after a context compaction. Two structural findings, both severity **LOW**: a large (>50-line)
**path-scoped** rule reloads only on a matching file read and is not re-injected after compaction,
so a must-hold rule can silently drop mid-session (RUL); a **nested** (subdirectory) CLAUDE.md is
not re-injected after compaction — only the project root is (CML).
- **PLH plugin-agent ignored-frontmatter finding (E)** — plugin subagents silently ignore
`hooks`/`mcpServers`/`permissionMode` frontmatter (honored only for user/project agents in
`.claude/agents/`). Setting them in a plugin agent is dead config: `permissionMode` is **MEDIUM**
(it implies a restriction Claude Code does not apply — false security); `hooks`/`mcpServers` are
**LOW**. Additive to PLH's agent-frontmatter loop; one humanizer pattern covers the three fields.
### Known limitations
- The lightweight frontmatter parser (`scanners/lib/yaml-parser.mjs`) reads inline `paths: "a, b"`
but not YAML block sequences (`paths:\n - a`), so a block-sequence-scoped rule is still seen as
unscoped and the RUL durability check (A) does not fire on it. Pre-existing and broader than A;
to be fixed in the v5.6 Foundation work.
## [5.4.1] - 2026-06-20
### Summary