{"id":"eac29374-a9cd-4d02-a620-b6a1ae05a7dd","shortId":"HE6dcD","kind":"skill","title":"audit-perf","tagline":"Use when auditing and fixing performance hot paths in a scope — N+1 queries, overfetching, wasted recomputation, blocking hot paths, unbounded growth. Triggers on \"audit performance\", \"fix slow paths\", \"check for N+1\", \"performance review\".","description":"target = $ARGUMENTS\n\nIf target provided, audit that path. Otherwise, files changed since the default branch. Full-codebase audit requires explicit user request.\n\nFind and fix code doing unnecessary work — too many calls, too much data, too frequent recomputation.\n\nThe patterns that actually pay: N+1 (one call per item where one batched call would do), overfetching (full objects loaded when IDs or counts suffice; unbounded queries without pagination), wasted recomputation (derived data recalculated every call; in React, re-renders from unstable references or missing memoization where deps are stable), blocking hot paths (synchronous I/O inside request handlers or render paths), unbounded growth (in-memory collections without a cap). Speculation is bloat — fix concrete patterns visible in the code, not \"this might be slow under load.\" UI lenses only when a UI exists; cache layers only when one would land on a hot path.\n\nApply behavior-preserving fixes directly: batch the loop, add the memo with stable deps, paginate the query, move blocking I/O off the hot path, cap the unbounded collection. Run tests after the batch; report `git diff --stat` and per-fix the impact concretely — \"O(N) queries → O(1)\", \"re-renders on every keystroke → memoized\" — so the value is legible without a profiler. Architectural changes (introducing a cache tier, adding an index, switching transport, denormalizing a schema) are a separate decision: name the hot path, sketch the change, surface for sign-off — they trade complexity for speed and the call belongs to the operator.","tags":["audit","perf","dotclaude","jhostalek","agent-skills","ai-coding","anthropic","claude","claude-code","claude-code-skills","code-review","codex-cli"],"capabilities":["skill","source-jhostalek","skill-audit-perf","topic-agent-skills","topic-ai-coding","topic-anthropic","topic-claude","topic-claude-code","topic-claude-code-skills","topic-code-review","topic-codex-cli","topic-cursor","topic-developer-tools","topic-git-workflow","topic-multi-agent"],"categories":["dotclaude"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/JHostalek/dotclaude/audit-perf","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add JHostalek/dotclaude","source_repo":"https://github.com/JHostalek/dotclaude","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,573 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:14.897Z","embedding":null,"createdAt":"2026-05-18T13:20:31.090Z","updatedAt":"2026-05-18T19:13:14.897Z","lastSeenAt":"2026-05-18T19:13:14.897Z","tsv":"'+1':16,36,84 '1':234 'actual':81 'ad':256 'add':194 'appli':185 'architectur':250 'argument':40 'audit':2,6,28,44,57 'audit-perf':1 'batch':91,191,218 'behavior':187 'behavior-preserv':186 'belong':288 'bloat':152 'block':21,130,204 'branch':53 'cach':174,254 'call':71,86,92,114,287 'cap':149,210 'chang':49,251,274 'check':33 'code':65,159 'codebas':56 'collect':146,213 'complex':282 'concret':154,229 'count':102 'data':74,111 'decis':267 'default':52 'denorm':261 'dep':127,199 'deriv':110 'diff':221 'direct':190 'everi':113,239 'exist':173 'explicit':59 'file':48 'find':62 'fix':8,30,64,153,189,226 'frequent':76 'full':55,96 'full-codebas':54 'git':220 'growth':25,142 'handler':137 'hot':10,22,131,183,208,270 'i/o':134,205 'id':100 'impact':228 'in-memori':143 'index':258 'insid':135 'introduc':252 'item':88 'keystrok':240 'land':180 'layer':175 'legibl':246 'lens':168 'load':98,166 'loop':193 'mani':70 'memo':196 'memoiz':125,241 'memori':145 'might':162 'miss':124 'move':203 'much':73 'n':15,35,83,231 'name':268 'o':230,233 'object':97 'one':85,90,178 'oper':291 'otherwis':47 'overfetch':18,95 'pagin':107,200 'path':11,23,32,46,132,140,184,209,271 'pattern':79,155 'pay':82 'per':87,225 'per-fix':224 'perf':3 'perform':9,29,37 'preserv':188 'profil':249 'provid':43 'queri':17,105,202,232 're':118,236 're-rend':117,235 'react':116 'recalcul':112 'recomput':20,77,109 'refer':122 'render':119,139,237 'report':219 'request':61,136 'requir':58 'review':38 'run':214 'schema':263 'scope':14 'separ':266 'sign':278 'sign-off':277 'sinc':50 'sketch':272 'skill' 'skill-audit-perf' 'slow':31,164 'source-jhostalek' 'specul':150 'speed':284 'stabl':129,198 'stat':222 'suffic':103 'surfac':275 'switch':259 'synchron':133 'target':39,42 'test':215 'tier':255 'topic-agent-skills' 'topic-ai-coding' 'topic-anthropic' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-code-review' 'topic-codex-cli' 'topic-cursor' 'topic-developer-tools' 'topic-git-workflow' 'topic-multi-agent' 'trade':281 'transport':260 'trigger':26 'ui':167,172 'unbound':24,104,141,212 'unnecessari':67 'unstabl':121 'use':4 'user':60 'valu':244 'visibl':156 'wast':19,108 'without':106,147,247 'work':68 'would':93,179","prices":[{"id":"c1592452-f830-4b95-aaa1-5e278c271fac","listingId":"eac29374-a9cd-4d02-a620-b6a1ae05a7dd","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"JHostalek","category":"dotclaude","install_from":"skills.sh"},"createdAt":"2026-05-18T13:20:31.090Z"}],"sources":[{"listingId":"eac29374-a9cd-4d02-a620-b6a1ae05a7dd","source":"github","sourceId":"JHostalek/dotclaude/audit-perf","sourceUrl":"https://github.com/JHostalek/dotclaude/tree/main/skills/audit-perf","isPrimary":false,"firstSeenAt":"2026-05-18T13:20:31.090Z","lastSeenAt":"2026-05-18T19:13:14.897Z"}],"details":{"listingId":"eac29374-a9cd-4d02-a620-b6a1ae05a7dd","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"JHostalek","slug":"audit-perf","github":{"repo":"JHostalek/dotclaude","stars":8,"topics":["agent-skills","ai-coding","anthropic","claude","claude-code","claude-code-skills","code-review","codex-cli","cursor","developer-tools","git-workflow","multi-agent","prompt-engineering","skill-md"],"license":"cc0-1.0","html_url":"https://github.com/JHostalek/dotclaude","pushed_at":"2026-05-17T15:07:41Z","description":"Agent skills for agentic coding tools. Extremely opinionated. Updated (almost) daily.","skill_md_sha":"3d62d5502b4456c34487207798e5ff49ffda6a4c","skill_md_path":"skills/audit-perf/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/JHostalek/dotclaude/tree/main/skills/audit-perf"},"layout":"multi","source":"github","category":"dotclaude","frontmatter":{"name":"audit-perf","description":"Use when auditing and fixing performance hot paths in a scope — N+1 queries, overfetching, wasted recomputation, blocking hot paths, unbounded growth. Triggers on \"audit performance\", \"fix slow paths\", \"check for N+1\", \"performance review\"."},"skills_sh_url":"https://skills.sh/JHostalek/dotclaude/audit-perf"},"updatedAt":"2026-05-18T19:13:14.897Z"}}