# Changelog

## Score

- CAI 68 → 66 (-2.4)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 100 → 76 (-24.3)
- Architecture 69 → 69 (+0.0)
- Maturity 57 → 56 (-0.9)
- Readiness 80 → 80 (+0.0)
- Security 96 → 96 (+0.0)

## Resolved (5)

- Redundant method pair with unclear distinction. Same bang/non-bang ambiguity as instance methods.
- Redundant method pair with unclear distinction. The presence of both `discard` and `discard!` suggests a bang/non-bang convention, but without documentation on the difference (e.g., validation, persistence, or exception handling), it creates API confusion. If they are identical, one is redundant. If they differ, the distinction is not obvious from signatures alone.
- Same redundancy issue as `discard`/`discard!`. The bang/non-bang pair exists without clear signature-based differentiation.
- Same redundancy issue as `undiscard`/`undiscard!`.
- Workflow token permissions not restricted

## New (3)

- Redundant bang (!) variants for bulk operations. The distinction between `discard_all` and `discard_all!` is unclear in the context of class methods. Typically, bang methods imply raising errors on failure or destructive behavior, but for bulk operations on a class, the behavior difference is ambiguous and inconsistent with standard Ruby conventions where bang often implies 'raise on error' vs 'return false'. If the non-bang version swallows errors and the bang raises, this is a valid distinction, but it creates API surface bloat. If the distinction is minor or non-existent, it is redundant.
- Redundant bang (!) variants for instance methods. Similar to the class methods, the presence of both `discard`/`discard!` and `undiscard`/`undiscard!` suggests a distinction in error handling or return values. However, for simple state transitions, having both variants often confuses users about when to use which. If `discard!` raises an error and `discard` returns false, this is a common pattern, but it doubles the API surface for simple operations.
- Workflow token permissions not restricted (.github/workflows/test.yml)

## Changes since last survey

- 2 commits — 2 feature/other, 0 fixes

## By area

- (repo) — 1 commit
- (root) — 1 commit

## Notable commits

- change: Merge pull request #127 from yuri-zubov/reduce-gem-size
- change: Reduce gem size by excluding unnecessary file
