# Changelog

## Score

- CAI 67 → 62 (-5.5)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 97 → 74 (-23.0)
- Architecture 96 → 96 (+0.0)
- Maturity 50 → 46 (-4.8)
- Readiness 67 → 67 (+0.0)
- Security 100 → 100 (+0.0)

## Resolved (4)

- Duplicate intent: Both methods check for existence of an occurrence at a specific point in time (date or time). The naming inconsistency ('occurs' vs 'occurring') is repeated here. While the argument types differ (Date vs Time), the semantic operation is identical.
- Duplicate intent: Both methods check if the schedule has an occurrence at a specific time. The naming inconsistency ('occurs' vs 'occurring') is repeated. This is a direct conflict with the previous point, as both `occurs_at?` and `occurring_at?` seem to serve the same purpose for time inputs.
- Duplicate intent: Both methods check if the schedule has any occurrences within a given time range. The naming convention is inconsistent ('occurs' vs 'occurring') and parameter names differ ('begin_time' vs 'opening_time'), suggesting potential confusion about whether one handles options and the other doesn't, or if they are simply aliases.
- Workflow token permissions not restricted

## New (15)

- Duplicate intent: Both methods take a time argument and appear to check if the schedule occurs at that specific time. Having two methods with different verb forms for the exact same signature and likely same logic is a clear inconsistency.
- Duplicate intent: Two methods exist that appear to check if a schedule has occurrences within a specific time range. The parameter names differ slightly ('begin_time' vs 'opening_time'), but the semantic intent is identical. This creates confusion for users about which to use.
- Inconsistent naming pattern: The API mixes 'occurs_X?' and 'occurring_X?' verb forms for similar predicate checks. 'occurs_on?' checks a date, 'occurring_at?' checks a time. While the distinction between date and time is valid, the inconsistent verb tense (simple present vs. present participle) is confusing.
- Orphaned file (lib/ice_cube.rb)
- Orphaned file (lib/ice_cube/input_alignment.rb)
- Orphaned file (lib/ice_cube/occurrence.rb)
- Orphaned file (lib/ice_cube/parsers/ical_parser.rb)
- Orphaned file (lib/ice_cube/rule.rb)
- Orphaned file (lib/ice_cube/schedule.rb)
- Orphaned file (lib/ice_cube/time_util.rb)
- Orphaned file (lib/ice_cube/validated_rule.rb)
- Orphaned file (lib/ice_cube/validations/by_set_pos_helper.rb)
- Orphaned file (lib/ice_cube/validations/fixed_value.rb)
- Orphaned file (lib/ice_cube/validations/lock.rb)
- Workflow token permissions not restricted (.github/workflows/tests.yaml)
