Agent skill

Perf Optimization

by irahardianto in irahardianto/awesome-agv

Profile-driven performance optimization protocol. An agent skill from irahardianto/awesome-agv.

MITAuto-check passedDevelopment

Install Perf Optimization

skills CLI
$ npx skills add irahardianto/awesome-agv --skill perf-optimization -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install irahardianto/awesome-agv perf-optimization --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/irahardianto/awesome-agv.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/perf-optimization .claude/skills/perf-optimization && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
perf-optimization
GitHub stars
157
Token cost
~4.3k tokens
SKILL.md length
2,014 words
Files
18 (incl. scripts, references)
Skills in repo
34
Repo updated
First seen
Licence
MIT

At a glance

Profile-driven performance optimization protocol. An agent skill from irahardianto/awesome-agv.

  • Works in 6 steps: Profile → Analyze → Prioritize → …
  • Profiling data (CPU
  • SKILL.md covers When to Use, Contents, Usage and Core Methodology, plus 4 more sections
  • Runs Shell scripts from its folder; calls go

What it does

Perf Optimization is an agent skill from irahardianto/awesome-agv. Profile-driven performance optimization protocol. Use when profiling data (CPU, heap, trace) is available or when the user requests performance analysis. Covers methodology (Profile → Analyze → Opportunity Scan → Prioritize → Optimize → Benchmark), optimization pattern catalog, safety invariants, and when-to-stop heuristics. Language-specific tooling is in languages/.md.

Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `languages/cpp.md`, `languages/csharp.md` and `languages/flutter.md`).

It sits in Development, covering Performance optimization. The repository describes itself as: Comprehensive sets of standards and practices designed to elevate the capabilities of AI coding agents. The licence is MIT.

When your agent uses it

  • Profiling data (CPU
  • Trace) is available
  • The user requests performance analysis

Example prompts

  • “/perf-optimization”

Requirements

  • A Bash shell
  • Docker

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Profile
  2. Analyze
  3. Prioritize
  4. Optimize
  5. Benchmark
  6. When to Stop

What it can do on your machine

Read from SKILL.md and the folder at commit 9e997ba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Perf Optimization loads about 4.3k tokens when it runs, and up to ~8.9k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 2,014 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~98
When it runs · the whole SKILL.md, loaded when a task matches
~4.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from irahardianto/awesome-agv at commit 9e997ba, republished under its MIT licence (© irahardianto). 2,014 words, ~4,307 tokens.

Download SKILL.mdSave it as .claude/skills/perf-optimization/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.
name
perf-optimization
description
Profile-driven performance optimization protocol. Use when profiling data (CPU, heap, trace) is available or when the user requests performance analysis. Covers methodology (Profile → Analyze → Opportunity Scan → Prioritize → Optimize → Benchmark), optimization pattern catalog, safety invariants, and when-to-stop heuristics. Language-specific tooling is in languages/*.md.

Performance Optimization Skill

When to Use

  • User provides profiling data (pprof, flamegraph, py-spy, Chrome DevTools, Dart DevTools)
  • User asks to analyze or optimize performance of a specific component
  • A benchmark regression is detected
  • After deploying a new feature that touches a hot path

Contents

ReferencePurposeUsed By
references/perf-dimensions.md6 MECE performance dimension scope cards + subagent prompt templateCoordinator dispatching parallel subagents in /perf-optimize workflow
references/perf-report-template.mdStructured report template for performance analysis and results outputCoordinator writing Phase 3 analysis report and Phase 6 results

Usage

The /perf-optimize workflow loads this skill automatically.

  • Methodology & patterns: The coordinator reads this file for the core methodology (Profile → Analyze → Optimize → Benchmark), optimization pattern catalog, anti-patterns, and when-to-stop heuristics.
  • Dimension scope cards: Read references/perf-dimensions.md to get the scope definition for each dimension (A–F) and the system prompt template for subagent dispatch.
  • Report template: Read references/perf-report-template.md when writing the Phase 3 analysis report and updating it with Phase 6 implementation results.
  • Language modules: Read languages/{lang}.md for language-specific profiling tools, irreducible floors, and runtime-specific patterns.

Core Methodology

mermaid
graph LR
    P1[Profile] --> P2[Analyze]
    P2 --> P2b[Opportunity Scan]
    P2b --> P3[Prioritize]
    P3 --> P4[Optimize]
    P4 --> P5[Benchmark]
    P5 --> P6{Improvement?}
    P6 -->|Yes| P7[Verify & Ship]
    P6 -->|No| P3
Step 1: Profile

Collect profiling data using the language-appropriate tool. Load the relevant languages/*.md module for exact commands.

Output: Raw profiling data (CPU profile, heap profile, or trace).

Step 2: Analyze

Read the profile. Focus on these principles (universal across all runtimes):

  1. Focus on cum (cumulative): The total resources consumed by a function AND everything it called. This finds the expensive architectural flows.
  2. Contextualize flat: Resources consumed by the function itself only. If a runtime function (GC, malloc, syscall) has high flat time, trace it UP the call chain to find the user-land code that triggered it.
  3. Ignore runtime noise: Scheduler overhead (runtime.mcall, runtime.systemstack, GC workers) will always appear. Note if GC pressure is high, but don't try to "fix" the scheduler.
  4. Separate benchmark artifacts from production cost: Test harness allocations (e.g., httptest.NewRequest, ResponseRecorder) inflate heap profiles but don't exist in production.

Output: Structured analysis document in docs/research_logs/{component}-perf-analysis.md.

Step 2b: Opportunity Scan

Scope: Apply this checklist ONLY within the hot paths identified by the profiler in Step 2. Do NOT scan the entire codebase — that leads to premature optimization. The profiler pointed you at specific modules; now systematically scan those modules for these categories of waste.

Concurrency & Parallelism:

  • Sequential I/O calls that could run concurrently (parallel fetch, gather, join)
  • Task/goroutine/thread spawn overhead exceeding the work itself
  • Locks held across I/O boundaries (database calls, network, file system)
  • Unbounded queues or channels causing memory pressure under load
  • CPU-bound work running on an async/event-loop runtime instead of a worker pool

Memory & Allocation:

  • Heap allocations inside hot loops (new objects per iteration)
  • Missing pre-sized collections (growing arrays/maps from zero)
  • Unnecessary copies where borrowing, referencing, or copy-on-write suffices
  • Temporary objects that could be reused across iterations (buffer pools)
  • Large structures passed by value instead of by reference

Data Structures & Algorithms:

  • Linear scans (O(n)) where hash-based lookups (O(1)) would work
  • Nested iterations creating O(n²) behavior replaceable with single-pass or hash-based approaches
  • Missing early returns or short-circuit evaluation skipping unnecessary work
  • Redundant sorting of already-sorted data or where ordering is not required
  • Inefficient string building (concatenation in loops instead of buffered writes)

Serialization & I/O:

  • Full deserialization when only a subset of fields is needed
  • Missing buffered I/O on file or network streams
  • Repeated serialization of the same unchanged data (cache the serialized bytes)
  • Synchronous/blocking I/O on an async runtime
  • Excessive debug/trace logging in hot paths without level gating

Caching & Lazy Initialization:

  • Repeated expensive computations with identical inputs (regex compilation, template parsing, config loading)
  • Missing lazy initialization for rarely-used resources
  • Redundant work that could be memoized or pre-computed at startup

Output: Append opportunity scan findings to the analysis document. Each finding must reference the profiler evidence that led to the hot path.

Step 3: Prioritize

Rank fixes by impact/risk ratio:

PriorityCriteria
Do firstLow risk, high impact (caching, pre-allocation, fast-reject)
Do secondMedium risk, high impact (library swap, algorithm change)
Do lastHigh risk, high impact (major refactor, custom implementation)
SkipAny risk, low impact (micro-optimization below noise floor)

Rule: If a fix requires more than 1 day AND saves < 20% on the hot path, defer it.

Step 4: Optimize

Implement one fix at a time. For each fix:

  1. Write tests FIRST (TDD — Red → Green → Refactor)
  2. Implement the fix
  3. Add PERF: inline comments explaining the optimization rationale — what the profiler showed and why the new approach is faster. Without these, a future developer may "clean up" the optimization thinking it's unnecessary complexity.
  4. Run all existing tests to verify no regression
  5. Benchmark immediately
  6. Run quality checks (formatter, linter, security scanner)
  7. Commit independently using the structured format below

Never batch multiple optimizations into one commit. Each fix must be independently verifiable and revertable.

Commit format:

perf(scope): one-line description

What: <the optimization implemented>
Why: <what the profiler showed — the performance problem it solves>
Impact: <expected improvement, e.g., "Eliminates ~500 allocations per request">
Measurement: <how to verify, e.g., "Run BenchmarkX, compare allocs/op">

Size guidance: Each fix should be a focused, minimal change. If a fix requires > ~100 lines of changes or touches > 3 files, re-evaluate whether it's actually a refactor in disguise — and if so, use the /refactor workflow instead. Performance commits are surgical; architectural restructuring is a separate concern.

Step 5: Benchmark

Compare before/after with the exact same benchmark configuration (same -benchtime, same -count, same machine load). Report:

  • ns/op (latency)
  • B/op (memory per operation)
  • allocs/op (heap allocations per operation)
Step 6: When to Stop

Stop optimizing when any of these are true:

  • Remaining CPU is in hardware-optimized assembly (AES-NI, P-256, SIMD) — you cannot beat the hardware
  • Remaining allocations are from the language runtime itself (GC, goroutine stacks, HTTP server internals)
  • The fix requires a custom implementation of a well-audited library — the security/maintenance risk outweighs the perf gain
  • The measured improvement is < 5% and within benchmark noise
  • The remaining optimization requires a large architectural refactor (> 3 files, > 100 lines) — defer to a dedicated /refactor session with its own testing and verification

Documenting failures: Record optimizations that were tried but didn't work in the research log (docs/research_logs/{component}-perf-analysis.md). For each failed or skipped optimization, document: (1) what was tried, (2) expected improvement, (3) actual result, and (4) why it didn't work. This prevents future sessions from repeating the same failed experiments. Also note any surprising profiler findings that reveal codebase-specific performance characteristics.


Optimization Pattern Catalog

These are generic, language-agnostic patterns. Apply them when the profiling data shows the corresponding symptom.

Pattern: Result Caching

Symptom: Same expensive computation repeated with identical inputs (crypto verification, JSON parsing, regex compilation).

Fix: Cache results keyed by input hash. Use bounded LRU with TTL to prevent memory exhaustion.

Safety invariant: When caching security-sensitive results (auth tokens, permission checks):

  • ALWAYS re-validate expiry/revocation on cache hit
  • ALWAYS bound cache size (DoS protection)
  • ALWAYS set TTL shorter than the security credential's validity period
Pattern: Pre-allocation

Symptom: High allocs/op from repeatedly constructing the same objects (option structs, config slices, header maps).

Fix: Build the object once at init time, share it read-only across requests. Safe for concurrent use if the object is immutable after construction.

Pattern: Fast-Reject / Short-Circuit

Symptom: Expensive validation path runs even for clearly invalid inputs.

Fix: Add a cheap structural pre-check before the expensive path. Examples: check string length before regex, count delimiters before parsing, check content-type before deserialization.

Show full SKILL.md (837 more words)Show less
Pattern: Library Swap

Symptom: High allocation count or CPU in a third-party library's internal parsing/serialization.

Fix: Replace with a library that uses lower-allocation strategies (manual scanners vs encoding/json.Decoder, zero-copy parsing, arena allocation).

Safety invariant: When swapping security-critical libraries (JWT, TLS, crypto):

  • Explicitly restrict accepted algorithms (prevent algorithm confusion attacks)
  • Verify the replacement library is well-audited and actively maintained
  • Run the full existing test suite — no behavioral change allowed
Pattern: Pooling

Symptom: High GC pressure from many short-lived objects of the same type being allocated and discarded rapidly.

Fix: Use an object pool (sync.Pool in Go, object pool in Java, arena in Rust) to reuse allocations.

Caveat: Only effective when objects are uniform in size and have a clear acquire/release lifecycle. Misuse creates subtle bugs.

Pattern: Batching

Symptom: Many small I/O operations (DB queries, HTTP calls, file writes) dominating wall-clock time.

Fix: Batch operations into fewer, larger calls. Examples: batch INSERT, pipeline Redis commands, buffer writes.

Pattern: Artifact Partitioning by Change Frequency

Symptom: Deploying a small change invalidates a large cached artifact (JS bundle, Docker image, compiled binary), forcing consumers to re-download/rebuild the entire thing.

Fix: Partition build artifacts by change frequency so that stable layers survive volatile deploys:

  • Stable layer: dependencies, vendor libraries, base images — changes rarely
  • Volatile layer: application code — changes on every deploy

Examples across stacks:

  • JS/Bundler: Vite manualChunks / Webpack splitChunks to isolate vendor libraries into separate chunks
  • Docker: multi-stage builds with COPY go.mod + RUN go mod download BEFORE COPY . . — dependency layer caches across builds
  • Monorepo: separate packages by change frequency so CI only rebuilds what changed

Safety invariant: Total artifact size stays the same or slightly increases (chunk overhead). The benefit is on repeat consumption — stable layers serve from cache.

When NOT to apply: One-shot artifacts with no caching benefit (single-use CI, ephemeral environments).

Pattern: Dependency Discovery Parallelization

Symptom: Sequential resource discovery creates waterfalls — each resource is discovered only after the previous one completes (download → parse → discover next → download → ...).

Fix: Declare dependencies as early as possible so the system can fetch them in parallel:

  • Move resource declarations upstream (earlier in the boot/parse sequence)
  • Use explicit hints to bypass sequential discovery chains

Examples across stacks:

  • Browser: <link rel="preconnect"> to establish connections before CSS/JS requests them; move CSS @import to HTML <link> for parallel discovery
  • Go: go mod download before build to prefetch modules
  • DB: connection pool warm-up at startup instead of on first query
  • DNS: dns-prefetch hints for domains the app will contact

Safety invariant: Only pre-declare resources you WILL use. Unused preconnects/prefetches waste resources (TCP connections, DNS queries, module downloads).

Pattern: Concurrent-Fetch Dedup

Symptom: Network tab shows two identical API calls fired at the same time. Multiple UI components mount simultaneously and each independently calls the same fetch function.

Fix: Add a loading-state guard (semaphore) at the store/service layer:

async function fetchData() {
    if (isLoading) return    // ← drop duplicate in-flight request
    isLoading = true
    try { data = await api.getData() }
    finally { isLoading = false }
}

When to apply: When the same data store is used by multiple co-mounted components (e.g., a navigation bar and a page view both calling fetchProfile() on mount).

Caveat: This is a simple semaphore, not request dedup. If the data needs refreshing after the in-flight call completes, the caller should retry. For advanced use cases, consider a proper request dedup cache (e.g., TanStack Query's staleTime).


Anti-Patterns (Things NOT to Do)

  1. Don't optimize runtime internals. If runtime.mallocgc or runtime.gcBgMarkWorker is high, fix the USER CODE that triggers allocations — don't try to tune the GC directly.
  2. Don't replace battle-tested crypto with custom implementations. The performance ceiling of ECDSA/RSA is in the math. Accept it.
  3. Don't optimize based on gut feeling. Always profile first. Premature optimization is the root of all evil.
  4. Don't combine multiple optimizations into one commit. If a combined commit causes a regression, you can't isolate which fix is at fault.
  5. Don't disable security features for performance. Algorithm restriction, input validation, and expiry checks are non-negotiable.
  6. Don't profile without a stable baseline. Run benchmarks with fixed parameters (-benchtime, -count, same machine load). Without a reproducible baseline, before/after comparisons are meaningless noise.

Language Modules

Load the relevant language module when working with a specific runtime:

ModuleUse when
GoGo services, APIs, CLI tools
TypeScriptNode.js/Deno backend (event loop, streams, connection pools)
PythonPython services, CLI, data pipelines
RustRust binaries, libraries
JavaJava/JVM services (JFR, GC tuning, JIT, JMH benchmarks)
C#C#/.NET services (Span, ObjectPool, EF Core, BenchmarkDotNet)
SwiftSwift apps (Instruments, value types, TaskGroup, os_signpost)
FlutterFlutter apps (const widgets, ListView.builder, isolates, DevTools)
C++C++ (data-oriented design, cache locality, SIMD, Google Benchmark)
KotlinKotlin/JVM (inline functions, sequences, value classes, coroutine overhead)
PHPPHP (OPcache/JIT, eager loading, caching, queue offloading, phpbench)
RubyRuby/Rails (eager loading, batch processing, caching, stackprof)
FrontendWeb frontends (JS/TS bundle, rendering, network)

Contributing: After completing a perf optimization session, extract generalizable patterns from your docs/research_logs/ findings into this catalog. Project-specific details stay in the research log; reusable patterns belong here.

Profiling Scripts

Language-specific data extraction scripts live in scripts/:

ScriptPurpose
go-pprof.shExtract Go pprof CPU/heap profiles into agent-readable markdown
frontend-lighthouse.shTwo modes: lighthouse (Core Web Vitals, needs Chrome) or bundle (Vite chunk analysis, always works)

© irahardianto, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 17 other files (scripts, references) in .agents/skills/perf-optimization of irahardianto/awesome-agv.

  • SKILL.md
  • languages/cpp.md
  • languages/csharp.md
  • languages/flutter.md
  • languages/frontend.md
  • languages/go.md
  • languages/java.md
  • languages/kotlin.md
  • languages/php.md
  • languages/python.md
  • languages/ruby.md
  • languages/rust.md
  • languages/swift.md
  • languages/typescript.md
  • references/perf-dimensions.md
  • references/perf-report-template.md
  • scripts/frontend-lighthouse.sh
  • scripts/go-pprof.sh

Open the folder on GitHubat commit 9e997ba

Compare with similar skills

Perf Optimization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Perf Optimization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Perf Optimization this skillirahardianto/awesome-agv157—~4.3kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
LLM Torch Profiler Analysissgl-project/sglang37k2 repos~6.4kAutomated safety check: PassApache-2.0
Pycrazyguitar/pysheeet8.2k—~886Automated safety check: PassMIT
Cmux Debugging Guidemanaflow-ai/cmux28k1 repos~1.1kAutomated safety check: PassCustom licence
Electron Heap Snapshot Analysiskeybase/client9.3k—~875Automated safety check: PassBSD-3-Clause

Similar skills

  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • LLM Torch Profiler Analysis

    sgl-project/sglang

    Unified LLM torch-profiler triage skill for sglang, vllm, TensorRT-LLM, and TokenSpeed.

    37k GitHub starsUsed in 2 repos~6.4k tokens
    DevelopmentAuto-check passed
  • Py

    crazyguitar/pysheeet

    Comprehensive Python programming reference covering syntax, concurrency, networking, databases, ML/LLM development, and HPC.

    8.2k GitHub stars~886 tokensUpdated today
    DevelopmentAuto-check passed
  • Cmux Debugging Guide

    manaflow-ai/cmux

    Covers debug logging, the Debug menu, profiling rules and runtime pitfalls for working on the cmux macOS terminal app.

    28k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Analyzes V8, Chrome and Electron .heapsnapshot files with Node scripts to find memory leaks, detached DOM nodes and the retainer paths that keep objects alive.

    9.3k GitHub stars~875 tokensUpdated today
    DevelopmentAuto-check passed
  • Runs controlled JMH experiments on the Caffeine cache to find shared contention and hot-path waste, then reviews correctness and returns a reviewable patch.

    18k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from irahardianto/awesome-agv

All 34 skills in this repo
  • Distinctive Frontend Design Builder

    irahardianto/awesome-agv

    Commits to one bold aesthetic direction, sets up a CSS token system for it, then builds the interface in Vue or plain HTML using those tokens.

    157 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed
  • Angular Idioms and Patterns

    irahardianto/awesome-agv

    Coding conventions for Angular 19 and later: standalone components, signals, OnPush change detection, lazy routes and where RxJS still belongs.

    157 GitHub stars~3.8k tokensUpdated 2 days ago
    Auto-check passed
  • CI/CD Pipeline Principles

    irahardianto/awesome-agv

    Rules for designing CI/CD pipelines in layers: universal lint, test and scan stages, container builds with SBOM attestation, and GitOps for orchestrated deployments.

    157 GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Hono Idioms

    irahardianto/awesome-agv

    Hono lightweight web framework patterns: type-safe route handlers, middleware composition, Zod validation, and RPC clients for Cloudflare Workers, Node, or Bun.

    157 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed
  • Mobile Testing

    irahardianto/awesome-agv

    Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management.

    157 GitHub stars~1.8k tokensUpdated 2 days ago
    Auto-check: notes
  • Nextjs Idioms

    irahardianto/awesome-agv

    Next.js App Router architecture: React Server Components (RSC), Server Actions, nested layouts, route handlers, and streaming.

    157 GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check: notes

Categories

Questions about Perf Optimization

What does Perf Optimization do?

Profile-driven performance optimization protocol. An agent skill from irahardianto/awesome-agv. Perf Optimization is an agent skill from irahardianto/awesome-agv. Profile-driven performance optimization protocol.

When should I use Perf Optimization?

Perf Optimization fits situations like: profiling data (CPU; trace) is available; the user requests performance analysis.

How do I install Perf Optimization in Claude Code?

Run `npx skills add irahardianto/awesome-agv --skill perf-optimization -a claude-code`. Or copy the skill folder (.agents/skills/perf-optimization in irahardianto/awesome-agv) into .claude/skills/perf-optimization in your project. Claude Code loads it when a task matches its description.

How do I install Perf Optimization in Codex?

Run `npx skills add irahardianto/awesome-agv --skill perf-optimization -a codex`. Or copy the skill folder (.agents/skills/perf-optimization in irahardianto/awesome-agv) into .agents/skills/perf-optimization in your project. Codex loads it when a task matches its description.

Can I use Perf Optimization in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add irahardianto/awesome-agv --skill perf-optimization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perf-optimization, .gemini/skills/perf-optimization, .github/skills/perf-optimization and .opencode/skills/perf-optimization in your project.

What does Perf Optimization need to run?

Going by SKILL.md and its folder, Perf Optimization needs a shell for the scripts in its folder and the command-line tools its instructions call (go). Our summary lists: A Bash shell; Docker.

Does Perf Optimization access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Perf Optimization safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Perf Optimization use?

Perf Optimization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Perf Optimization use?

About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.6k tokens, read only when the agent opens those files.

What are the alternatives to Perf Optimization?

Skills that share tags, products or a category with Perf Optimization: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), LLM Torch Profiler Analysis (sgl-project/sglang, 37k stars), Py (crazyguitar/pysheeet, 8.2k stars) and Cmux Debugging Guide (manaflow-ai/cmux, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Perf Optimization?

irahardianto (a GitHub user) maintains it in irahardianto/awesome-agv, which has 157 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 5, 2026.

Source: irahardianto/awesome-agv on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.