code-optimizer

Analyze code for performance issues and suggest optimizations. Use when users ask to "optimize this code", "find performance issues", "improve performance", "check for memory leaks", "review code efficiency", or want to identify bottlenecks, algorithmic improvements, caching opportunities, or concurrency problems.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "code-optimizer" with this command: npx skills add luongnv89/skills/luongnv89-skills-code-optimizer

Code Optimization

Analyze code for performance issues following this priority order:

Analysis Priorities

  1. Performance bottlenecks - O(n²) operations, inefficient loops, unnecessary iterations
  2. Memory leaks - unreleased resources, circular references, growing collections
  3. Algorithm improvements - better algorithms or data structures for the use case
  4. Caching opportunities - repeated computations, redundant I/O, memoization candidates
  5. Concurrency issues - race conditions, deadlocks, thread safety problems

Repo Sync Before Edits (mandatory)

Before creating/updating/deleting files in an existing repository, sync the current branch with remote:

branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"

If the working tree is not clean, stash first, sync, then restore:

git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop

If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.

Workflow

0. Create Feature Branch

Before making any changes:

  1. Check the current branch - if already on a feature branch for this task, skip
  2. Check the repo for branch naming conventions (e.g., feat/, feature/, etc.)
  3. Create and switch to a new branch following the repo's convention, or fallback to: feat/optimize-<target>
    • Example: feat/optimize-api-handlers

1. Analysis

  1. Read the target code file(s) or directory
  2. Identify language, framework, and runtime context (Node.js, CPython, browser, etc.)
  3. Analyze for each priority category in order
  4. For each issue found, estimate the performance impact (e.g., "reduces API response from ~500ms to ~50ms")
  5. Report findings sorted by severity (Critical first)

2. Apply Fixes

  1. Present the optimization report to the user
  2. On approval, apply fixes starting with Critical/High severity
  3. Run existing tests after each change to verify no regressions
  4. If no tests exist, warn the user before applying changes

Response Format

For each issue found:

### [Severity] Issue Title
**Location**: file:line_number
**Category**: Performance | Memory | Algorithm | Caching | Concurrency

**Problem**: Brief explanation of the issue

**Impact**: Why this matters (performance cost, resource usage, etc.)

**Fix**:
[Code example showing the optimized version]

Severity Levels

  • Critical: Causes crashes, severe memory leaks, or O(n³)+ complexity
  • High: Significant performance impact (O(n²), blocking operations, resource exhaustion)
  • Medium: Noticeable impact under load (redundant operations, suboptimal algorithms)
  • Low: Minor improvements (micro-optimizations, style improvements with perf benefit)

Language-Specific Checks

JavaScript/TypeScript

  • Array methods inside loops (map/filter/find in forEach)
  • Missing async/await causing blocking
  • Event listener leaks
  • Unbounded arrays/objects

Python

  • List comprehensions vs generator expressions for large data
  • Global interpreter lock considerations
  • Context manager usage for resources
  • N+1 query patterns

General

  • Premature optimization warnings (only flag if genuinely impactful)
  • Database query patterns (N+1, missing indexes)
  • I/O in hot paths

Error Handling

No obvious performance issues found

Solution: Report that the code is already well-optimized. Suggest profiling with runtime tools (e.g., perf, Chrome DevTools, py-spy) to find runtime-specific bottlenecks.

Target file is too large (>2000 lines)

Solution: Ask the user to specify which functions or sections to focus on. Analyze the most performance-critical paths first.

Optimization breaks existing tests

Solution: Revert the change immediately. Re-examine the optimization and adjust the approach to preserve existing behavior.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

devops-pipeline

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

code-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

vscode-extension-publisher

No summary provided by upstream source.

Repository SourceNeeds Review