CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-java-audio

Use when writing Java code with `dev.axllm:ax` for audio input/output, OpenAI Responses audio mapping, realtime event folding, and generated package audio examples.

66

Quality

83%

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

82%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 dense, highly efficient reference body: package-specific rules, executable core pattern, and clear guardrails with a sensible example-selection policy. The gaps are modest — only one inline code example, no ordered workflow with checkpoints, and some API-surface material that should live in the referenced files.

Suggestions

Add one complete runnable Java speak()/audio example inline alongside the Core Pattern so common cases don't require opening `examples/`.

Move the "Relevant API Surface" class list into `API.md` (or a dedicated reference file), keeping only the audio/relevant classes inline to sharpen progressive disclosure.

Turn the guardrails' example-selection logic into a short ordered checklist (no-key first for deterministic checks; provider-api only with explicit credentials; AxIR wins on doc conflicts) to give an explicit sequence with checkpoints.

DimensionReasoningScore

Conciseness

Every bullet carries generated-package behavior Claude cannot know — "`speak()` returns ... `data` (base64 audio), `format`, `mimeType`, `transcript`", "OpenAI defaults to `gpt-4o-mini-tts` with the `alloy` voice", "Mistral defaults to `voxtral-mini-tts-2603`" — with zero padding or explanation of general concepts. It clearly matches the lean, competence-assuming top anchor rather than the 4 anchor, whose 'minor instances of over-explanation' are absent here.

5 / 5

Actionability

The Core Pattern block is executable ("var llm = Ax.ai("openai", java.util.Map.of("apiKey", System.getenv("OPENAI_API_KEY")))"), and concrete method names and defaults are given ("AiClient.speak(request, options)", "renderAudio / render_audio", pcm16 handling). It is not a 5 because only one small code snippet is shown — a complete end-to-end speak()/audio example is delegated to `examples/` rather than covering the common cases inline, leaving minor gaps.

4 / 5

Workflow Clarity

The guardrails give a clear decision path — "Start from package examples for exact native syntax before inventing a new call shape", "Use `provider-api` examples only when the user explicitly has provider credentials available", and the AxIR-as-source-of-truth rule as a conflict-resolution checkpoint. It is not a 5 because there is no explicit step sequence with validation checkpoints; the rules are conditional directives rather than an ordered workflow with feedback loops.

4 / 5

Progressive Disclosure

"Package Facts" clearly signals one-level-deep references — "Package API docs: `API.md` and `axir-api.json`", "Capability manifest: `axir-capabilities.json`", "Runnable examples: `examples/`" — with a well-sectioned overview. It is not a 5 because the inline "Relevant API Surface" class list and the dense field-mapping bullets partially duplicate content that belongs in those referenced files, and the pointer to "the gen skill" is not pathed; no bundle files were present to verify the referenced paths resolve.

4 / 5

Total

17

/

20

Passed

Description

78%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 well-targeted description with an explicit 'Use when' trigger, a named package, and several concrete capability areas. Its main weaknesses are missing natural synonyms (speech, transcription, TTS, voice) and a 'what' that is only implied inside the when-clause rather than stated separately.

Suggestions

Add the natural terms users would actually say — speech, transcription, TTS, voice — to the trigger clause, since the body shows these are core use cases.

Lead with a separate 'what' statement (e.g., "Write Java audio and realtime code with the generated package `dev.axllm:ax`...") before the "Use when" clause so both parts are explicit.

Consider naming the realtime/audio file formats or entry points (e.g., speak(), AxChatStream) to sharpen the concrete actions.

DimensionReasoningScore

Specificity

The description names the domain ("writing Java code with `dev.axllm:ax`") and lists several concrete capability areas — "audio input/output", "OpenAI Responses audio mapping", "realtime event folding", and "generated package audio examples" — matching the anchor for several specific actions with minor gaps. It is not a 5 because the items are noun phrases rather than stated actions and coverage has small gaps (e.g., speech synthesis and transcription are only implied by "audio input/output").

4 / 5

Completeness

There is an explicit "Use when writing Java code with `dev.axllm:ax` for..." trigger clause plus a list of concrete capability areas, so both what and when are present. It is not a 5 because the "what" is merged into the when-clause rather than stated as its own declarative sentence of what the skill does, keeping the trigger slightly below the fully explicit two-part pattern.

4 / 5

Trigger Term Quality

Natural terms a user would say are present — "Java", "audio", "realtime", "OpenAI Responses" — giving good keyword coverage anchored to a specific package. It falls short of the 5 anchor because common synonyms users would actually say are missing: "speech", "transcription", "TTS", and "voice" never appear even though the body shows these are core use cases.

4 / 5

Distinctiveness Conflict Risk

The trigger is anchored to the specific package id `dev.axllm:ax` and the audio/realtime niche, giving a clear niche with distinct triggers and minimal conflict risk with other Java or audio skills. It clearly matches the top anchor rather than the 4 anchor, since the package identifier alone disambiguates it from any generic audio skill.

5 / 5

Total

17

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
ax-llm/ax
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.