CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/flame-graph-analyzer

Use when a performance regression is traced to a commit but the hot path inside it is unclear. Reads flame graphs from py-spy, async-profiler, Go pprof or clinic.js, finds the hottest frames, tells CPU-bound from lock contention or allocation pressure and suggests the next step.

Quality

89%

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

Overview
Quality
Evals
Security
Files

Quality

Content

86%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-built skill body: executable commands throughout, a complete worked example that shows the expected output format, a clearly sequenced workflow with a re-profile verification step, and clean one-level-deep offloading of per-runtime detail to a real reference file. Remaining polish is minor — de-duplicating the repeated sort command and reference links, and pulling the error-recovery guidance into the workflow steps.

DimensionReasoningScore

Conciseness

The body is efficient and assumes competence — no primer on what flame graphs are, and the category table carries skill-specific signature knowledge rather than generalities. It is not 5 because of trimmable repetition: the `sort -k2 -n -r folded.txt | head -5` command appears twice ("Reading the hot path" and the worked example), the "How to use" steps overlap the "Reading the hot path" section, and the same reference file is linked four times.

4 / 5

Actionability

Guidance is copy-paste ready end to end: a concrete sort command, `npx clinic flame -- node app.js` capture, real folded-stack sample output, a six-category signature table with specific frame names, and a fully rendered output template. It is not 4 because the worked example covers the common case completely and per-runtime capture commands are one reference away; the only trivially-derivable omission is how sample shares are computed.

5 / 5

Workflow Clarity

The five numbered steps are clearly sequenced and step 5 is an explicit verification checkpoint ("Re-profile after the change to confirm the delta, then hand off to perf-budget-gate"), with an expected outcome ("expect rank 1 to drop below 10%") in the worked example. It falls short of anchor 5 because error-recovery branching is not integrated into the workflow — remedies for a bad profile (hex addresses, unrepresentative sample) sit in Limitations/Anti-patterns rather than as feedback loops at the relevant step.

4 / 5

Progressive Disclosure

SKILL.md is a genuine overview: the core loop, classification table, and one worked example stay inline, while per-runtime capture wiring, the remediation catalog, and extended cases are clearly signaled and one level deep in the verified references/capturing-and-interpreting-flame-graphs.md. Content is appropriately split with no nested references, matching the anchor-5 structure.

5 / 5

Total

18

/

20

Passed

Description

87%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: concrete actions covering the full analysis pipeline, an explicit and specific 'Use when' trigger, and a well-delineated niche anchored by named profiler tools. The only improvements are minor coverage gaps (native perf/eBPF runtimes, reflection/logging categories) and a few missing everyday synonyms like 'profile' or 'CPU usage'.

DimensionReasoningScore

Specificity

The description lists several concrete actions — "Reads flame graphs from py-spy, async-profiler, Go pprof or clinic.js, finds the hottest frames, tells CPU-bound from lock contention or allocation pressure and suggests the next step" — covering input, analysis, classification, and output. It stops short of anchor 5 because coverage has minor gaps: native perf/eBPF support and the reflection/logging/I/O-misclassification categories the skill actually handles are omitted, and "suggests the next step" is the least concrete action.

4 / 5

Completeness

Both halves are explicit: the "what" is the full action chain (reads flame graphs, finds hottest frames, distinguishes CPU-bound/lock/allocation, suggests next step) and the "when" opens with a concrete "Use when a performance regression is traced to a commit but the hot path inside it is unclear" trigger clause. This matches the anchor-5 example structure (what + explicit when with concrete triggers); it is not 4, where the when-clause would be generic or only partially explicit.

5 / 5

Trigger Term Quality

Natural phrases a user would say are present — "performance regression", "traced to a commit", "hot path", "flame graphs" — plus tool names (py-spy, async-profiler, Go pprof, clinic.js) users who have captured a profile would name. A few common natural terms are missing (e.g. "profile", "profiling", "CPU usage", "slow"), which keeps it at anchor 4 rather than 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche — flame-graph interpretation with named profilers and a specific trigger scenario (post-bisect regression triage) — so it is unlikely to fire for a generic profiling or code-review skill. The sibling perf skills it could neighbor (load testing, budget gating) target different stages of the workflow, so conflict risk is minimal.

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.

Reviewed

On this page