CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

161-java-profiling-detect

Use when you need to set up Java application profiling to detect and measure performance issues — including trusted preinstalled async-profiler v4.x setup, problem-driven profiling (CPU, memory, threading, GC, I/O), interactive profiling scripts, JFR integration with Java 25 (JEP 518, JEP 520), or collecting profiling data with flamegraphs and JFR recordings. This should trigger for requests such as Improve the code with profiling; Apply Profiling; Refactor the code with profiling; Add profiling support; Collect JFR or async-profiler data for Java performance. Part of Plinth Toolkit

63

Quality

79%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/161-java-profiling-detect/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a well-sequenced, well-disclosed overview with real checkpoints and a clean one-level reference structure, but it defers all executable detail (commands, JVM flags, templates) to the reference while carrying duplicated trigger/coverage lists. Tightening the redundancy and inlining the few key commands would lift the conciseness and actionability scores.

Suggestions

Remove the duplicated material — the 'What is covered in this Skill?' bullets and the 'When to use this skill' list restate the frontmatter description, and the Constraints prose repeats the CRITICAL bullet verbatim; keep one authoritative statement of each.

Inline the minimum executable detail (the directory-creation commands, the chmod +x invocation, and the actual profiling JVM flags) instead of only naming them, so the workflow steps are executable without opening the reference.

Move version-sensitive pins (async-profiler v4.x, Java 25, JEP 518/520) out of the body into the reference file so the overview does not go stale as versions change.

DimensionReasoningScore

Conciseness

The body is mostly efficient but carries clear redundancy: 'What is covered in this Skill?' largely restates the frontmatter description, 'When to use this skill' repeats the trigger list verbatim, and the Constraints section says 'Copy bash scripts exactly from templates' in prose and again as a CRITICAL bullet. Version pins ('async-profiler v4.x', 'Java 25', 'JEP 518, JEP 520') appear inline with no deprecation section, further weighing it down. It is above anchor 2 (not heavily padded) but below anchor 4 (real trimming is needed).

3 / 5

Actionability

Concrete artifacts are named (run-java-process-for-profiling.sh, profile-java-process.sh, profiler/scripts, profiler/results, chmod +x), but the body contains no executable command or example — 'Start Java process with required profiling JVM flags' never names the flags, and every script template is deferred to the reference file. This is 'some concrete guidance but incomplete; missing key details', not anchor 4's 'concrete code or commands with minor gaps'.

3 / 5

Workflow Clarity

A clear four-step sequence (read reference → create workspace/scripts → run app with flags → collect artifacts) with real checkpoints: 'Verify Java processes are running before attaching profiler', 'verify target process availability', and edge-case recovery guidance ('stop and ask a clarifying question', 'report what is missing'). The gap keeping it below anchor 5 is that collected outputs (flamegraph/JFR artifacts) are never validated.

4 / 5

Progressive Disclosure

The body is a genuine overview pointing to a single one-level-deep reference (references/161-java-profiling-detect.md, which exists), signaled both in the workflow and in a dedicated Reference section, with scripts appropriately separated into scripts/. Minor organization gaps — the duplicated 'When to use this skill' trigger list is frontmatter material inlined in the body — keep it just below anchor 5.

4 / 5

Total

14

/

20

Passed

Description

88%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 capabilities, explicit 'Use when...' guidance with enumerated trigger phrases, and a well-delineated Java-profiling niche. The main weakness is trigger phrasing that mirrors internal phrasing rather than natural user requests, leaving a few common variants uncovered.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'set up Java application profiling', 'async-profiler v4.x setup', 'problem-driven profiling (CPU, memory, threading, GC, I/O)', 'flamegraphs and JFR recordings' — with comprehensive coverage of the domain. It fits the 'lists multiple specific concrete actions; comprehensive coverage' anchor and does not fall below it, since no profiling capability area is missing.

5 / 5

Completeness

Both 'what' (concrete capability list: profiler setup, profiling modes, interactive scripts, JFR integration, flamegraphs) and 'when' (an explicit 'Use when...' clause plus enumerated concrete trigger phrases) are clearly present, matching the anchor-5 example structure. It is not a 4 because the 'when' is fully explicit with concrete trigger requests, not merely adequate.

5 / 5

Trigger Term Quality

Explicit trigger requests are given ('Improve the code with profiling; Apply Profiling; ... Collect JFR or async-profiler data for Java performance') with strong domain keywords (profiling, JFR, async-profiler, flamegraphs). However, phrases like 'Improve the code with profiling' are not what users naturally say, and common variants such as 'profile my Java app' or 'Java performance tuning' are missing, placing it between anchors 3 and 5.

4 / 5

Distinctiveness Conflict Risk

The niche is clear — Java profiling via async-profiler/JFR with flamegraphs — with mostly distinct triggers. Minor overlap risk remains: broad trigger phrases like 'Refactor the code with profiling' could also match a generic refactoring skill, and 'Part of Plinth Toolkit' implies sibling skills in the same family. Not a 5 because of that residual overlap; not a 3 because the tooling terms are highly specific.

4 / 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

jabrena/plinth

Path

skills/161-java-profiling-detect/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.