Async & Concurrency Reviewer
/install async-concurrency-reviewer
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) insideasync def— useasyncio.sleep,httpx asyncio.create_task()result not stored — task gets garbage collected- Missing
awaiton coroutines (silent no-op bug) threading.Lock()inside async code — useasyncio.Lock()- Shared mutable state across tasks without locks
JavaScript / TypeScript
awaitinsideforEach— usePromise.allwithmap- Unhandled promise rejections
asyncfunction called withoutawait(fire and forget — often unintentional)- Sequential
awaitwhere parallelPromise.allwould work - Mixing callbacks and promises in the same flow
setTimeoutused as a poor-man's debounce in async context
C# / .NET
.Resultor.Wait()— deadlocks in sync-over-asyncasync void— exceptions swallowed, no awaitable- Missing
CancellationTokenon public async methods ConfigureAwait(false)missing in library codeTask.Runwrapping sync CPU-bound work — correct; wrapping async — wronglockkeyword in async code — useSemaphoreSlimawaitinsidelock— 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_oninside an async runtime — panic.unwrap()onJoinHandle— hides panics- Holding a
Mutexlock across an.await— deadlock spawnwithout storing the handle — fire and forget, errors lostArc\x3CMutex\x3CT>>contention hotspot — considerRwLockor message passing
Java / Kotlin
CompletableFuture.get()blocking on the event thread- Kotlin
runBlockinginside a coroutine scope GlobalScope.launch— unstructured concurrency, leaks- Missing
Dispatchers.IOfor blocking I/O in coroutines synchronizedon 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.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install async-concurrency-reviewer - 安装完成后,直接呼叫该 Skill 的名称或使用
/async-concurrency-reviewer触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Async & Concurrency Reviewer 是什么?
Reviews async and concurrency code for deadlocks, race conditions, missing cancellation, and misuse across multiple languages, returning detailed fix reports. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 151 次。
如何安装 Async & Concurrency Reviewer?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install async-concurrency-reviewer」即可一键安装,无需额外配置。
Async & Concurrency Reviewer 是免费的吗?
是的,Async & Concurrency Reviewer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Async & Concurrency Reviewer 支持哪些平台?
Async & Concurrency Reviewer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Async & Concurrency Reviewer?
由 Lnguyen1996(@lnguyen1996)开发并维护,当前版本 v1.0.0。