Проверка линеаризуемости Caffeine Cache
testing
audit-linearizability is a Claude Code skill that audits a Caffeine cache for linearizability violations across all public methods. For every operation — get, put, remove, replace, compute, and bulk methods such as getAll and putAll — the agent identifies the single linearization point: the atomic step at which the operation becomes visible to other threads. For each method it states the linearization point with a concrete reference (e.g., "CAS on CHM bin at line X"), enumerates conditional cases, and constructs a two-thread scenario to confirm the point. The skill then attempts to construct violations: inconsistent observation order of values, double execution of the mapping function in computeIfAbsent, or a get returning a value after remove has linearized. Bulk operations are explicitly marked as non-linearizable as a unit, size() is examined for whether it is documented as an estimate, and async cache variants are analyzed to determine whether the linearization point is future creation or future completion. Designed for engineers verifying the correctness of concurrent data structures, the skill reasons solely at the level of external observability without examining internal co
- #linearizability
- #concurrency
- #atomicity
- #correctness
- #sequential-consistency