audit-arithmetic

star 17.7k

Audit for arithmetic and boundary bugs (overflow, off-by-one, drift)

ben-manes By ben-manes schedule Updated 3/22/2026

name: audit-arithmetic description: Audit for arithmetic and boundary bugs (overflow, off-by-one, drift) context: fork agent: auditor disable-model-invocation: true

Assume there is at least one arithmetic or boundary bug in this code.

Audit for:

  • Off-by-one errors
  • Incorrect inequality direction (< vs <=, > vs >=)
  • Overflow / underflow (int, long, specifically nanoTime arithmetic)
  • Implicit narrowing or widening conversion
  • Incorrect rounding or truncation
  • Sign errors
  • Sentinel value collisions (can a valid value equal a sentinel?)
  • Counter drift (can a counter diverge from the quantity it tracks over a long-running cache?)
  • Timer wheel bucket arithmetic (modular arithmetic, wrap-around)
  • Frequency sketch counter saturation and reset arithmetic
  • Hill climber / adaptive sizing: window vs main partition adjustment (percentage calculations, rounding, overshoot, oscillation)
  • FrequencySketch table size calculation (ensureCapacity rounding to power of two, interaction with maximumSize)
  • Weight delta computation in UpdateTask (sign conventions, can intermediate sums overflow when weights are near Integer.MAX_VALUE?)

For each suspected issue:

  • Provide a concrete input (specific key, value, weight, time values)
  • Show step-by-step evaluation through the code
  • Show expected vs actual behavior
  • If it requires billions of operations, state the count needed

Ignore style and performance. Only report high-confidence defects supported by evaluation traces.

Install via CLI
npx skills add https://github.com/ben-manes/caffeine --skill audit-arithmetic
Repository Details
star Stars 17,706
call_split Forks 1,695
navigation Branch main
article Path SKILL.md
More from Creator