# Changelog

> **This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.**

## Score

- CAI 55 → 44 (-11.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 96 → 99 (+3.7)
- Architecture 96 → 94 (-1.7)
- Maturity 60 → 61 (+0.5)
- Readiness 69 → 30 (-39.1)
- Security 38 → 36 (-2.5)

## Resolved (12)

- Change coupling: PermissionMiddleware.php ↔ RoleMiddleware.php (src/Middleware/PermissionMiddleware.php)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (src/Traits/HasPermissions.php)
- Duplicated block (14 lines × 3) (src/Middleware/PermissionMiddleware.php)
- Duplicated block (15 lines × 2) (src/Traits/HasPermissions.php)
- HasRoles.hasRole (cognitive 20) (src/Traits/HasRoles.php)
- Hotspot: src/Traits/HasRoles.php (src/Traits/HasRoles.php)
- Off-boarding risk: anonymized user #1
- PR-triggered workflow without a permissions block
- ShowCommand.handle (cognitive 18) (src/Commands/ShowCommand.php)
- TooManyMethods: HasPermissions (src/Traits/HasPermissions.php)

## New (7)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (7 lines × 2) (src/PermissionServiceProvider.php)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No tests found
- The 'What It Does' example uses Laravel's default `can` function but the README does not explain how to check for a permission via `can`, leaving this usage unqualified by whether it is the package's own gate or another service. (README.md)
