# Changelog

## Score

- CAI 68 → 53 (-15.0)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 73 → 89 (+16.5)
- Architecture 98 → 96 (-2.3)
- Maturity 63 → 59 (-4.0)
- Readiness 66 → 32 (-33.7)
- Security 85 → 81 (-3.8)

## Resolved (96)

- Builder.collectRegistries (cognitive 17) (src/Report/Html/ClassView/Builder.php)
- Change coupling: Class_.php ↔ File.php (src/Report/Html/ClassView/Renderer/Class_.php)
- Change coupling: ProcessedBranchCoverageData.php ↔ ProcessedPathCoverageData.php (src/Data/ProcessedBranchCoverageData.php)
- Class_.renderSourceSection (cognitive 41) (src/Report/Html/ClassView/Renderer/Class_.php)
- Class_.renderSourceSection (cyclomatic 18) (src/Report/Html/ClassView/Renderer/Class_.php)
- Clover.process (cognitive 56) (src/Report/Clover.php)
- Clover.process (cyclomatic 22) (src/Report/Clover.php)
- Cobertura.process (cognitive 59) (src/Report/Cobertura.php)
- Cobertura.process (cyclomatic 24) (src/Report/Cobertura.php)
- CodeCoverage.append (cognitive 18) (src/CodeCoverage.php)
- CodeCoverage.append (cyclomatic 18) (src/CodeCoverage.php)
- ControlFlowGraph.buildEdgePathClasses (cognitive 26) (src/Report/Html/ControlFlowGraph.php)
- ControlFlowGraph.generateDot (cognitive 30) (src/Report/Html/ControlFlowGraph.php)
- ControlFlowGraph.generateDot (cyclomatic 16) (src/Report/Html/ControlFlowGraph.php)
- Coverage not included — suite not readable by the collector
- Crap4j.process (cognitive 19) (src/Report/Crap4j.php)
- DeadCodeFindingVisitor.statementsOf (cognitive 16) (src/StaticAnalysis/Visitor/DeadCodeFindingVisitor.php)
- DeadCodeFindingVisitor.statementsOf (cyclomatic 17) (src/StaticAnalysis/Visitor/DeadCodeFindingVisitor.php)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (src/Serialization/Unserializer.php)
- …and 76 more

## New (14)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (12 lines × 2) (src/Report/Html/Renderer/File.php)
- Duplicated block (5 lines × 3) (src/Node/File.php)
- Duplicated block (6 lines × 2) (src/Node/File.php)
- Duplicated block (6 lines × 2) (src/Report/Clover.php)
- Duplicated block (6 lines × 2) (src/Report/OpenClover.php)
- Duplicated block (6 lines × 3) (src/Test/Target/MapBuilder.php)
- Duplicated block (7 lines × 2) (src/Report/Cobertura.php)
- Duplicated block (7 lines × 3) (src/Report/Html/Renderer.php)
- Duplicated block (8 lines × 2) (src/Serialization/Unserializer.php)
- Duplicated block (9 lines × 2) (src/Report/Cobertura.php)
- No tests found
- The Usage section covers collecting data and generating an OpenClover report but omits how to generate a JUnit or HTML test-report output from serialized coverage. (README.md)

## Architecture

- Containers 0 added · 0 removed · contexts 0 added · 1 removed · edges 0 added · 0 removed

## Removed bounded contexts (1)

- phpunit/php-code-coverage
