skills-catalog/ln-653-runtime-performance-auditor/SKILL.md
Checks blocking IO in async, unnecessary allocations, sync sleep, string concat in loops, redundant copies. Use when auditing runtime performance.
npx skillsauth add levnikolaevich/claude-code-skills ln-653-runtime-performance-auditorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Type: L3 Worker
Specialized worker auditing runtime performance anti-patterns in async and general code.
MANDATORY READ: Load shared/references/audit_worker_core_contract.md.
MANDATORY READ: Load shared/references/mcp_tool_preferences.md and shared/references/mcp_integration_patterns.md
Receives contextStore with: tech_stack, best_practices, codebase_root, output_dir.
Domain-aware: Supports domain_mode + current_domain.
Use hex-graph first when hotspot detection materially improves runtime findings. Use hex-line first for local code reads when available. If MCP is unavailable, unsupported, or not indexed, continue with built-in Read/Grep/Glob/Bash and state the fallback in the report.
MANDATORY READ: Load shared/references/two_layer_detection.md for detection methodology.
Parse context from contextStore
Scan codebase for violations
scan_pathasync def blocks first, then check for violations inside themCollect findings with severity, location, effort, recommendation
Calculate score using penalty algorithm
Write Report: Build full markdown report in memory per shared/templates/audit_worker_report_template.md, write to {output_dir}/ln-653--global.md in single Write call
Return Summary: Return minimal summary to coordinator (see Output Format)
What: Synchronous file/network operations inside async functions, blocking event loop
Detection (Python):
async def functionsopen(, .read_bytes(), .read_text(), .write_bytes(), .write_text(), Path(...).(read|write)requests.get, requests.post, urllib.requestsubprocess.run(, subprocess.call(await asyncio.to_thread(...) or await loop.run_in_executor(...)Detection (Node.js):
async function or arrow async, grep for fs.readFileSync, fs.writeFileSync, child_process.execSyncSeverity:
__init__/setup/bootstrap (not request path) -> LOW. Small file (<1KB) read in non-hot path -> skipRecommendation: Use aiofiles, asyncio.to_thread(), or loop.run_in_executor() for file operations; use httpx.AsyncClient instead of requests
Effort: S (wrap in to_thread or switch to async library)
What: List comprehension where generator expression suffices
Detection:
len([x for x in ...]) - allocates list just to count; use sum(1 for ...)any([x for x in ...]) - allocates list for short-circuit check; use any(x for ...)all([x for x in ...]) - same pattern; use all(x for ...)set([x for x in ...]) - use set comprehension {x for x in ...}"".join([x for x in ...]) - use generator directly "".join(x for x in ...)Severity:
Recommendation: Replace [...] with generator (...) or set comprehension {...}
Effort: S (syntax change only)
What: time.sleep() inside async function blocks event loop
Detection:
time\.sleep inside async def blocksawait some_async_call() ... time.sleep(N) ... await another_call()Severity:
time.sleep() in async API handler (freezes all concurrent requests)time.sleep() in async background tasktime.sleep in CLI/script (not async server) -> skipRecommendation: Replace with await asyncio.sleep(N)
Effort: S (one-line change)
What: Building string via += inside loop (O(n^2) for large strings)
Detection:
result, output, html, text with += inside for/while loop+= containing string operand inside loop bodySeverity:
Recommendation: Use list.append() + "".join(), or io.StringIO, or f-string with "".join(generator)
Effort: S (refactor to list + join)
to_thread for CPU-BoundWhat: CPU-intensive synchronous code in async handler without offloading to thread
Detection:
async def, find CPU-intensive operations:
json.loads(large_data), json.load(file)PIL.Image.open, cv2.imreadhashlib, bcrypt.hashpwlxml.etree.parse, BeautifulSoup(asyncio.to_thread() or executorSeverity:
Recommendation: Wrap in await asyncio.to_thread(func, *args) (Python 3.9+) or loop.run_in_executor(None, func, *args)
Effort: S (wrap in to_thread)
What: Unnecessary .copy(), list(), dict() when data is only read, not mutated
Detection:
data = list(items) where data is only iterated (never modified)config = config_dict.copy() where config is only readresult = dict(original) where result is returned without modificationSeverity:
Recommendation: Remove unnecessary copy; pass original if not mutated
Effort: S (remove copy call)
MANDATORY READ: Load shared/references/audit_worker_core_contract.md and shared/references/audit_scoring.md.
MANDATORY READ: Load shared/references/audit_worker_core_contract.md and shared/templates/audit_worker_report_template.md.
Write JSON summary per shared/references/audit_summary_contract.md. In managed mode the caller passes both runId and summaryArtifactPath; in standalone mode the worker generates its own run-scoped artifact path per shared contract.
Write report to {output_dir}/ln-653--global.md with category: "Runtime Performance" and checks: blocking_io_in_async, unnecessary_list_allocation, sync_sleep_in_async, string_concat_in_loop, missing_to_thread, redundant_data_copies.
Return summary per shared/references/audit_summary_contract.md.
When summaryArtifactPath is absent, write the standalone runtime summary under .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json and optionally echo the same summary in structured output.
Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-653--global.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)
MANDATORY READ: Load shared/references/audit_worker_core_contract.md.
to_thread/run_in_executorMANDATORY READ: Load shared/references/audit_worker_core_contract.md.
{output_dir}/ln-653--global.md (atomic single Write call)shared/references/audit_output_schema.mdVersion: 1.0.0 Last Updated: 2026-02-04
testing
Drafts and publishes fact-checked GitHub Discussions announcements. Use for releases, updates, or project news; not for release creation or issue responses.
testing
Prepares and publishes a tagged GitHub release from repository evidence. Use for an explicit release request; not for ordinary commits, packages, or community news.
testing
Validates, commits, pushes, and remotely verifies approved repository changes. Use when publication is requested; not for releases, package publishing, or announcements.
development
Reviews standalone skills and their configured distribution surfaces before publication. Use for skill release readiness; not for product code or implementation-plan review.