java-concurrency-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited java-concurrency-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Review the Java code for concurrency correctness. Before reviewing, detect the Java version from pom.xml or build.gradle — suggest modern alternatives only if the version supports them.
List all concurrency mechanisms found: synchronized, volatile, AtomicXxx, Lock, ExecutorService, CompletableFuture, CountDownLatch, Semaphore, BlockingQueue, virtual threads (Java 21+).
count++) not wrapped in synchronized or AtomicIntegerif (map.containsKey(k)) map.get(k) → suggest map.computeIfAbsent()HashMap shared across threads → suggest ConcurrentHashMapArrayList / HashSet shared across threads → suggest concurrent alternativessynchronized calls that invoke external/unknown code while holding a lockReentrantLock without try/finally unlock → lock may never be releasedsynchronized blocks on different objectssynchronized on entire methods where only a small critical section needs protectionReentrantLock for fine-grained locking with timeout capabilitysynchronized(this) in classes exposed to external code → suggest private lock objectsynchronized on virtual thread code → suggest ReentrantLock (avoids carrier thread pinning)volatile, AtomicXxx, or synchronizationboolean flag fields used to stop threads → must be volatile or AtomicBooleanvolatilenew Thread(...) created directly in application code → suggest ExecutorServiceExecutorService never shut down → resource leakExecutors.newCachedThreadPool()) under high load → suggest bounded poolExecutors.newVirtualThreadPerTaskExecutor() for I/O-bound workloadsjstack <pid>/java-virtual-threads modernization/java-review for general code quality~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.