CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

javascriptcore-garbage-collector

JSC GC reference for Bun. Use for use-after-free, JS object leaks, "collected too early", or when touching WriteBarrier, visitChildren, visitAdditionalChildren, JSRef, JSC::Strong/Weak, hasPendingActivity, ensureStillAlive, addOpaqueRoot, reportExtraMemoryAllocated, IsoSubspace, HeapAnalyzer, finalize.

Quality

93%

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

92%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.

An exceptionally dense, expert-level reference: every section adds JSC/Bun-specific knowledge Claude cannot infer, the code patterns and debug flags are copy-paste ready, and the decision table plus symptom-based debugging section give clear selection and feedback guidance. The only structural weakness is that everything lives in one monolithic file with no progressive disclosure into reference files.

Suggestions

Split deep-dive sections (e.g. Weak/WeakBlock/WeakHandleOwner internals, the HeapAnalyzer API list, and extra-memory reporting) into references/*.md files and keep a one-line summary plus a clearly signaled link in SKILL.md.

Consider moving the 'Key source files' listing into a references/source-map.md so the main body stays a mental model plus decision table.

If the file is deliberately kept single-file for load-time reasons, add a brief table of contents at the top so the 15+ sections are navigable without scrolling.

DimensionReasoningScore

Conciseness

"Riptide is non-moving, generational, parallel, mostly-concurrent, conservative-on-the-stack" compresses the entire mental model into one line; sections like the roots table and decision table carry maximum information per token, assume deep C++/GC competence, and contain no filler or explanations of concepts Claude already knows — every token earns its place.

5 / 5

Actionability

Fully executable patterns are given for every mechanism: complete visitChildrenImpl/visitAdditionalChildren templates, a working WeakHandleOwner struct, the JSRef set_strong/try_get/finalize lifecycle, exact debug commands ("BUN_JSC_collectContinuously=1 BUN_JSC_useConcurrentGC=0 bun-debug test.js"), and a scenario-to-mechanism decision table covering all common cases.

5 / 5

Workflow Clarity

As a single-purpose reference skill, the action (find your scenario) is unambiguous via the 'How to keep things alive' decision table, and the debugging section provides explicit symptom-to-diagnosis feedback loops ("If it only reproduces with collectContinuously=1 → something isn't rooted across an allocation"), satisfying the simple-skill exception; no destructive or batch operations apply.

5 / 5

Progressive Disclosure

Internal structure is good — clear headers, a roots table, and a 'Key source files' index — but the ~360-line body inlines ~15 distinct topics (Weak/WeakBlock internals, HeapAnalyzer API, the JSRef pattern, extra-memory reporting) that would fit naturally in references/ files; there are no well-signaled one-level-deep reference files at all, so it sits at anchor 3 rather than 4.

3 / 5

Total

18

/

20

Passed

Description

90%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 with an explicit and highly specific 'Use for' clause packed with the exact symptom phrases and API names a Bun/JSC developer would naturally say. The only weakness is that the 'what' half is a bare domain label plus an implicit topic list rather than stated capabilities.

Suggestions

Replace or augment 'JSC GC reference for Bun' with 1-2 concrete capability statements, e.g. 'Explains JSC's mark-sweep GC root model, write barriers, weak references, and lifetime patterns, with debugging flags for GC crashes and leaks in Bun.'

Add a few natural-language synonyms users might phrase differently from the API names, such as 'memory leak', 'heap snapshot', or 'garbage collection', to widen trigger coverage beyond symbol names.

DimensionReasoningScore

Specificity

"JSC GC reference for Bun" names the domain, and the trigger list enumerates concrete covered mechanisms ("WriteBarrier, visitChildren, visitAdditionalChildren, JSRef... IsoSubspace, HeapAnalyzer"), but there are no explicit capability actions — it reads as a topic index rather than an action list, fitting between anchor 2 (minimal actions) and anchor 4 (several specific actions).

3 / 5

Completeness

Explicitly answers both: what ("JSC GC reference for Bun") and when ("Use for use-after-free, JS object leaks, 'collected too early', or when touching...") with concrete trigger phrases, matching the anchor-5 example structure exactly; the 'when' clause is maximally explicit rather than merely present.

5 / 5

Trigger Term Quality

Includes natural user phrases ("use-after-free", "JS object leaks", "collected too early") alongside comprehensive coverage of the exact API names a developer would mention when needing this skill (WriteBarrier, JSRef, JSC::Strong/Weak, ensureStillAlive, finalize), matching the comprehensive-synonyms anchor.

5 / 5

Distinctiveness Conflict Risk

"JSC GC reference for Bun" carves out a clear niche, and the triggers are JSC-specific API names (visitChildren, addOpaqueRoot, IsoSubspace) that no sibling skill would plausibly claim, giving minimal conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

oven-sh/bun

Path

.claude/skills/javascriptcore-garbage-collector/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.