This skill enables Claude to detect potential memory leaks and analyze memory usage patterns in code. It is triggered when the user requests "detect memory leaks", "analyze memory usage", or similar phrases related to memory leak detection and performance analysis. The skill identifies potential issues such as unremoved event listeners, closures preventing garbage collection, uncancelled timers, unbounded cache growth, circular references, detached DOM nodes, and unnecessary global state accumulation. It then provides detailed fix recommendations. Use this skill to proactively identify and resolve memory leaks, improving application performance and stability.
Install with Tessl CLI
npx tessl i github:jeremylongshore/claude-code-plugins-plus-skills --skill detecting-memory-leaks63
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillAgent success when using this skill
Validation for skill structure
Event listener and DOM leaks
Detects resize/scroll listeners
100%
100%
Detects widget click/hover listeners
100%
100%
Detects keydown listener leak
100%
100%
Detects detached DOM nodes
100%
100%
Fix for window listeners
100%
100%
Fix for anonymous listeners
100%
100%
Fix for document keydown
100%
100%
Fix for detached DOM accumulation
100%
100%
Report produced
100%
100%
Code location references
100%
100%
No false positives
100%
100%
Without context: $0.3112 · 2m 3s · 13 turns · 14 in / 5,125 out tokens
With context: $0.3430 · 2m 45s · 16 turns · 15 in / 5,630 out tokens
Cache and closure leaks
Detects queryCache growth
100%
100%
Detects queryStats growth
100%
100%
Detects pipelineCache growth
100%
100%
Detects closure retaining userProfile
100%
100%
Fix for queryCache eviction
100%
100%
Fix for pipelineCache eviction
100%
100%
Fix for closure retention
100%
100%
Report produced
100%
100%
Code location references
100%
100%
No false positives
100%
100%
Mechanism explained
100%
100%
Without context: $0.1658 · 1m 22s · 8 turns · 9 in / 3,494 out tokens
With context: $0.5189 · 3m 45s · 26 turns · 23 in / 8,481 out tokens
Timer and global state leaks
Detects uncancelled intervals
100%
100%
Detects uncancelled timeouts
100%
100%
Detects activeShipments accumulation
20%
10%
Detects auditLog accumulation
100%
100%
Detects eventHistory accumulation
100%
100%
Detects circular reference
100%
100%
Fix for timers
100%
100%
Fix for global accumulation
100%
100%
Fix for circular reference
100%
100%
Report produced
100%
100%
Code location references
100%
100%
No false positives
100%
50%
Without context: $0.2159 · 1m 54s · 9 turns · 10 in / 3,905 out tokens
With context: $0.4108 · 2m 44s · 22 turns · 54 in / 5,766 out tokens
Python circular reference and cache leaks
Detects parent-child cycle
100%
100%
Identifies __del__ as GC blocker
100%
100%
Explains GC mechanism
100%
70%
Detects unbounded result store
100%
100%
Fix for circular reference
100%
100%
Fix addresses __del__
100%
100%
Fix for result store
100%
100%
Report file produced
100%
100%
Code location references
100%
100%
No false positives
100%
100%
Large payload callout
100%
100%
Without context: $0.1970 · 1m 40s · 10 turns · 11 in / 4,045 out tokens
With context: $0.4139 · 2m 50s · 19 turns · 51 in / 6,029 out tokens
React hooks event listener and timer leaks
Detects missing interval cleanup
100%
100%
Detects missing event listener cleanup
100%
100%
Detects activePollers accumulation
100%
100%
Explains interval leak mechanism
100%
100%
Explains listener accumulation mechanism
100%
100%
Fix for interval
100%
100%
Fix for event listeners
100%
100%
Fix for activePollers
100%
100%
Report file produced
100%
100%
Code location references
100%
100%
No false positives
33%
33%
Without context: $0.3123 · 2m 28s · 17 turns · 18 in / 4,837 out tokens
With context: $0.3653 · 2m 41s · 19 turns · 100 in / 4,978 out tokens
Targeted analysis and circular reference with WeakRef fix
Focuses on message_bus.js
100%
100%
Detects Channel-Subscriber cycle
83%
75%
Identifies unsubscribe() flaw
100%
100%
Explains GC prevention mechanism
90%
100%
Detects messageHistory growth
100%
100%
Fix breaks back-reference
100%
100%
Fix uses WeakRef or WeakMap
70%
100%
Fix for messageHistory
100%
100%
Report file produced
100%
100%
Code location references
100%
100%
No false positives
100%
100%
Without context: $0.2197 · 1m 41s · 10 turns · 11 in / 3,846 out tokens
With context: $0.2922 · 2m 21s · 16 turns · 49 in / 4,769 out tokens
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.