← Back to Skills Marketplace
lnguyen1996

Async & Concurrency Reviewer

by Lnguyen1996 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
151
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install async-concurrency-reviewer
Description
Reviews async and concurrency code for deadlocks, race conditions, missing cancellation, and misuse across multiple languages, returning detailed fix reports.
README (SKILL.md)

async-concurrency-reviewer

Description

Review async and concurrency code across any language. Finds real bugs — deadlocks, race conditions, missing cancellation, blocking calls in async contexts, and misused primitives. Returns a structured report with severity ratings and corrected code.

Use when

  • "review my async code"
  • "is this thread-safe"
  • "could this deadlock"
  • "check my concurrency"
  • "await/promise/goroutine review"
  • "is this race condition-safe"
  • Any code with: async/await, promises, goroutines, threads, locks, channels, semaphores, actors

Supported languages

Python, JavaScript/TypeScript, C#, Go, Rust, Java, Kotlin — and any other language with async or concurrency primitives.

Input

Paste code. Optionally specify: language, runtime (Node, .NET, JVM, etc.), context (web server, CLI, background worker).

Output format

## Async/Concurrency Review

### Critical (fix before shipping)
- [Finding] — [why it causes bugs in production]
  ✗ Before: [problematic code]
  ✓ After:  [corrected code]

### Warnings (should fix)
- [Finding] — [explanation]

### Suggestions (nice to have)
- [Finding] — [explanation]

### What's correct
- [Specific patterns done right — always include at least one]

### Summary
[2–3 sentences: biggest risk, top fix, one pattern to adopt going forward]

Review checklist by language

Python

  • asyncio.run() called inside an already-running event loop
  • Blocking calls (time.sleep, requests.get) inside async def — use asyncio.sleep, httpx
  • asyncio.create_task() result not stored — task gets garbage collected
  • Missing await on coroutines (silent no-op bug)
  • threading.Lock() inside async code — use asyncio.Lock()
  • Shared mutable state across tasks without locks

JavaScript / TypeScript

  • await inside forEach — use Promise.all with map
  • Unhandled promise rejections
  • async function called without await (fire and forget — often unintentional)
  • Sequential await where parallel Promise.all would work
  • Mixing callbacks and promises in the same flow
  • setTimeout used as a poor-man's debounce in async context

C# / .NET

  • .Result or .Wait() — deadlocks in sync-over-async
  • async void — exceptions swallowed, no awaitable
  • Missing CancellationToken on public async methods
  • ConfigureAwait(false) missing in library code
  • Task.Run wrapping sync CPU-bound work — correct; wrapping async — wrong
  • lock keyword in async code — use SemaphoreSlim
  • await inside lock — compiler error but watch for equivalent patterns

Go

  • Goroutine leak — goroutine started, no way to stop it
  • Channel send/receive without select+default or timeout — blocks forever
  • WaitGroup.Add() called inside goroutine — race condition
  • Shared map written from multiple goroutines without mutex
  • Forgetting to close channels — range loop never terminates
  • Context not passed through call chain — cancellation doesn't propagate

Rust

  • block_on inside an async runtime — panic
  • .unwrap() on JoinHandle — hides panics
  • Holding a Mutex lock across an .await — deadlock
  • spawn without storing the handle — fire and forget, errors lost
  • Arc\x3CMutex\x3CT>> contention hotspot — consider RwLock or message passing

Java / Kotlin

  • CompletableFuture.get() blocking on the event thread
  • Kotlin runBlocking inside a coroutine scope
  • GlobalScope.launch — unstructured concurrency, leaks
  • Missing Dispatchers.IO for blocking I/O in coroutines
  • synchronized on wrong object — lock doesn't protect the shared state

Severity definitions

  • Critical: Will deadlock, lose data, swallow exceptions, or cause race conditions in production
  • Warning: Performance issue, resource leak, or hard-to-debug behaviour
  • Suggestion: Style, clarity, or future-proofing improvement

Self-improvement instructions

After each review, note the most common finding. After 20 reviews, surface the top 3 patterns in your response as "Most common issues in [language]" to help users learn, not just fix.

Usage Guidance
This skill appears coherent and low-risk: it asks you to paste code and returns a structured review. Before installing or using it on proprietary/sensitive code, confirm how the platform handles long-term memory and whether the skill will persist review data (the SKILL.md asks it to aggregate findings after 20 reviews). Never paste secrets, credentials, or entire production configs into the review prompt. If you need guarantees, ask the skill author (or platform) to disable persistent learning or to only store anonymized metadata, and test with non-sensitive examples first.
Capability Analysis
Type: OpenClaw Skill Name: async-concurrency-reviewer Version: 1.0.0 The skill bundle is a legitimate tool designed to review asynchronous and concurrent code for common bugs like deadlocks and race conditions. The SKILL.md file provides helpful, language-specific checklists for Python, JavaScript, Go, and others, and the instructions are entirely focused on providing structured code reviews without any signs of malicious intent or data exfiltration.
Capability Assessment
Purpose & Capability
Name, description, and the SKILL.md checklist all consistently describe a code review assistant for async/concurrency issues across languages. There are no unrelated environment variables, binaries, or installs requested that would be inconsistent with that purpose.
Instruction Scope
The instructions are narrowly scoped to receiving pasted code and returning structured findings. They do not instruct reading system files, environment variables, or sending data to external endpoints. However, the "self-improvement" section asks the skill to track counts and surface aggregated patterns after 20 reviews, which implies stateful tracking of past reviews (or their metadata). That could lead to persistent storage of user-submitted code or findings if not implemented carefully.
Install Mechanism
No install spec or code files are included (instruction-only), so nothing is written to disk or fetched at install time. This is the lowest-risk install profile.
Credentials
The skill does not request any environment variables, credentials, or config paths. That is proportionate for a stateless, instruction-only code reviewer.
Persistence & Privilege
The skill does not request always:true or elevated privileges. Nevertheless, the SKILL.md's self-improvement requirement (aggregating results after 20 reviews) implies persistent storage or memory. Users should verify whether the platform will store review content or summaries in long-term memory and whether that storage is appropriate for sensitive code.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install async-concurrency-reviewer
  3. After installation, invoke the skill by name or use /async-concurrency-reviewer
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release. - Reviews async and concurrency code across all major languages; detects real bugs like deadlocks, race conditions, and misused primitives. - Generates structured reports with severity ratings, corrected code, and actionable explanations. - Provides a detailed checklist of language-specific issues and best practices. - Includes clear severity definitions: Critical, Warning, Suggestion. - Learns from common findings and will surface most frequent issues to aid user education.
Metadata
Slug async-concurrency-reviewer
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Async & Concurrency Reviewer?

Reviews async and concurrency code for deadlocks, race conditions, missing cancellation, and misuse across multiple languages, returning detailed fix reports. It is an AI Agent Skill for Claude Code / OpenClaw, with 151 downloads so far.

How do I install Async & Concurrency Reviewer?

Run "/install async-concurrency-reviewer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Async & Concurrency Reviewer free?

Yes, Async & Concurrency Reviewer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Async & Concurrency Reviewer support?

Async & Concurrency Reviewer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Async & Concurrency Reviewer?

It is built and maintained by Lnguyen1996 (@lnguyen1996); the current version is v1.0.0.

💬 Comments