# Changelog

## Score

- CAI 61 → 47 (-14.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 81 → 85 (+4.6)
- Architecture 99 → 94 (-5.3)
- Maturity 56 → 57 (+1.5)
- Readiness 64 → 27 (-37.1)
- Security 56 → 56 (+0.0)

## Resolved (55)

- BuilderHelpers.normalizeValue (cognitive 17) (lib/PhpParser/BuilderHelpers.php)
- Change coupling: Emulative.php ↔ KeywordEmulator.php (lib/PhpParser/Lexer/Emulative.php)
- Change coupling: Php7.php ↔ Php8.php (lib/PhpParser/Parser/Php7.php)
- CommentAnnotatingVisitor.enterNode (cognitive 20) (lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Differ.calculateTrace (cognitive 18) (lib/PhpParser/Internal/Differ.php)
- Differ.coalesceReplacements (cognitive 18) (lib/PhpParser/Internal/Differ.php)
- Duplicated block (17 lines × 2) (lib/PhpParser/NodeTraverser.php)
- Duplicated block (6 lines × 2) (lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php)
- Duplicated block (7 lines × 2) (lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php)
- Duplicated block (9 lines × 2) (lib/PhpParser/Builder/Class_.php)
- Duplicated block (9 lines × 2) (lib/PhpParser/NodeTraverser.php)
- Emulative.fixupTokens (cognitive 18) (lib/PhpParser/Lexer/Emulative.php)
- FileTooLong: Parser/Php7.php (lib/PhpParser/Parser/Php7.php)
- FileTooLong: Parser/Php8.php (lib/PhpParser/Parser/Php8.php)
- FileTooLong: PhpParser/ParserAbstract.php (lib/PhpParser/ParserAbstract.php)
- FileTooLong: PhpParser/PrettyPrinterAbstract.php (lib/PhpParser/PrettyPrinterAbstract.php)
- FileTooLong: PrettyPrinter/Standard.php (lib/PhpParser/PrettyPrinter/Standard.php)
- Further orphaned files (smaller)
- …and 35 more

## New (32)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (10 lines × 2) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (10 lines × 2) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (16 lines × 4) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (16 lines × 4) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (5 lines × 2) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (5 lines × 2) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (5 lines × 3) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (5 lines × 3) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (5 lines × 4) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (5 lines × 4) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (5 lines × 6) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (5 lines × 6) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (6 lines × 2) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (6 lines × 2) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (7 lines × 2) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (7 lines × 2) (lib/PhpParser/Parser/Php8.php)
- Duplicated block (7 lines × 3) (lib/PhpParser/Parser/Php7.php)
- Duplicated block (7 lines × 3) (lib/PhpParser/Parser/Php8.php)
- …and 12 more
