CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

heap-snapshot-analysis

Analyze V8 heap snapshots to investigate memory leaks and retention issues. Use when given .heapsnapshot files, asked to compare before/after snapshots, asked to find what retains objects, or investigating why objects survive GC. Provides snapshot parsing, comparison, retainer-path helpers, and scratchpad scripts.

67

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, knowledge-dense skill body with executable examples and a clear multi-step workflow including error-recovery guidance. Its main weakness is that the entire helper layer it references (parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs, scratchpad/) is absent from the bundle, so the progressive-disclosure design and the runnable examples cannot be verified as shipped.

Suggestions

Ship the referenced helper files with the skill (helpers/parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs) or inline minimal versions of them — currently every code example imports files that are not in the bundle.

Add an explicit validation checkpoint early in the workflow, e.g. after parsing, sanity-check that nodes/edges tuple counts divide evenly by meta.node_fields.length / meta.edge_fields.length before proceeding to comparison or retainer tracing.

Trim the 'Running Analysis' section (drop the repeated --max-old-space-size snippet and the 30-120 second note) since the same invocation already appears in the workflow examples, and state the memory flag once.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious, domain-specific knowledge (the ~2 GiB Buffer limit and ERR_FS_FILE_TOO_LARGE recovery path, edge-type semantics, VS Code retention patterns, streaming techniques) and avoids explaining concepts Claude already knows. Minor trimmable redundancy remains — the 'Running Analysis' section repeats the --max-old-space-size invocation already shown, and 'Typical analysis takes 30-120 seconds' adds little — so it fits the 4-anchor (efficient, minor instances that could be trimmed) rather than the 5-anchor's every-token-earns-its-place.

4 / 5

Actionability

Guidance is mostly executable: import statements, bash commands with memory flags, concrete function options (maxPaths: 5, maxDepth: 25, maxAttempts: 200), and field-level results (result.topBySize, result.newObjectGroups). It falls short of the 5-anchor because the streamNumberTuples callback is left as an empty template and every referenced helper file is absent from the bundle, so the copy-paste examples cannot actually run as shipped.

4 / 5

Workflow Clarity

A clear four-step sequence (Parse -> Compare -> Find Retainers -> Write Investigation Scripts) with an entry prerequisite, an error-recovery feedback loop (full-file read fails -> switch to streaming script), and documentation requirements (findings.md per dated subfolder). No explicit validation checkpoints exist (e.g., sanity-checking parsed node/edge counts against meta), which keeps it at the 4-anchor rather than 5; the destructive/batch cap does not apply since the analysis is read-only.

4 / 5

Progressive Disclosure

The SKILL.md body is well-sectioned and correctly delegates implementation to one-level-deep, clearly signaled helper links (parseSnapshot.ts, compareSnapshots.ts, findRetainers.ts, streamSnapshot.mjs). However, the bundle contains no helpers/ or scratchpad/ files — none of the referenced paths exist — so the split the design depends on is not realized and navigation cannot be verified. This sits between the 4-anchor (good structure, minor gaps) and worse: the referenced files being missing is a structural defect, matching the 3-anchor's 'could be better organized / references not backed by real files'.

3 / 5

Total

15

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description that explicitly states both what the skill does and when to use it, with concrete third-person actions and a distinct niche. The only gap is modest synonym coverage (e.g., 'heap dump', 'memory usage') that would catch a few more natural user phrasings.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions ('Analyze V8 heap snapshots', 'compare before/after snapshots', 'find what retains objects') plus a capability inventory ('snapshot parsing, comparison, retainer-path helpers'), with no vague filler and third-person voice throughout. This matches the 5-anchor's comprehensive concrete-action coverage rather than the 4-anchor, which requires minor gaps that are not evident here.

5 / 5

Completeness

What is answered explicitly ('Analyze V8 heap snapshots... Provides snapshot parsing, comparison, retainer-path helpers') and when is answered with concrete trigger phrases ('Use when given .heapsnapshot files, asked to compare before/after snapshots, asked to find what retains objects, or investigating why objects survive GC'). Both what and when are explicit with concrete triggers, matching the 5-anchor exactly; the 4-anchor requires a 'when' that could be more specific, which does not apply.

5 / 5

Trigger Term Quality

Good natural trigger coverage: '.heapsnapshot files', 'memory leaks', 'compare before/after snapshots', 'what retains objects', 'survive GC'. It misses common synonyms a user might naturally say, such as 'heap dump', 'memory usage/consumption', or 'DevTools', so it fits the 4-anchor (good coverage, a few natural terms missing) rather than the 5-anchor's comprehensive synonym/extension list.

4 / 5

Distinctiveness Conflict Risk

A clear niche (V8 heap snapshot analysis) anchored by a distinct file extension ('.heapsnapshot') and specific triggers (retainer paths, objects surviving GC), giving minimal overlap risk with other skills. It does not fall to the 4-anchor since no meaningful overlap with closely related skills is apparent.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 5 missing

Warning

Total

15

/

16

Passed

Repository

microsoft/vscode

Path

.github/skills/heap-snapshot-analysis/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.