CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-cpp-audio

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

60

Quality

76%

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 ./website/static/cpp/.well-known/agent-skills/ax-cpp-audio/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 dense, mostly lean API reference: one real code snippet, exact behavioral specifications (defaults, fallback orders, error conditions), and no filler explanation of known concepts. Its weaknesses are the absence of any ordered workflow or validation checkpoints, and a ~40-symbol inline API enumeration that duplicates the API docs the skill itself cites.

Suggestions

Trim the "Relevant API Surface" bullet to the audio-relevant symbols (e.g. the client and speak/streaming types) and point to `API.md` / `axir-api.json` for the full surface, instead of inlining ~40 symbols that duplicate the cited docs.

Add a short ordered workflow for the common path — start from a no-key example to check request mapping, then only run `provider-api` examples once credentials are confirmed — with an explicit validation checkpoint between the local check and the live call.

Include a minimal runnable `speak()` snippet alongside the client-creation Core Pattern so the skill's primary task is copy-paste ready rather than only a signature ("AIClient::speak(request, options)").

DimensionReasoningScore

Conciseness

The body is dense with package-specific facts Claude cannot know ("`speak()` returns TypeScript's speech result keys: `data` (base64 audio), `format`, `mimeType`, `transcript`", defaults like "OpenAI defaults to `gpt-4o-mini-tts` with the `alloy` voice") and never explains concepts Claude already knows. Not a 5: the "Relevant API Surface" bullet enumerates ~40 symbols, many unrelated to audio ("AxBalancer", "AxMeter", "AxTracer", "ProviderRouter"), which do not earn their place in an audio skill. Not a 3: beyond that one enumeration there is no padded or unnecessary explanation.

4 / 5

Actionability

The Core Pattern is real, copy-pasteable C++ ("#include \"axllm/axllm.hpp\"" / "axllm::ai(\"openai\", { {\"apiKey\", std::getenv(\"OPENAI_API_KEY\")} })"), and behavioral specs are exact, e.g. a JSON body "is read from `audio_data`, `audioData`, `data`, `audio.data`, `output.audio.data`, or a Gemini part's inline data". Not a 5: only one short snippet is shown — `speak()` appears only as the signature "AIClient::speak(request, options)" and runnable examples live in `examples/` rather than being shown for the common cases. Not a 3: the code given is genuine executable C++, not pseudocode, and the defaults/fallbacks are fully specified.

4 / 5

Workflow Clarity

An order is implied by the Guardrails ("Start from package examples for exact native syntax before inventing a new call shape") and by When To Use separating "no-key examples for deterministic local checks" from "live provider calls behind explicit credentials", but no explicit step sequence exists and validation checkpoints are absent. Not a 4: no checkpoints or feedback loops are stated anywhere. Not a 2: the guidance that exists is concrete and coherent, not poorly defined. No destructive or batch operations are involved, so the workflow-clarity cap at 3 for missing validation does not apply, but the level is the natural fit.

3 / 5

Progressive Disclosure

External materials are clearly signaled in Package Facts ("Package API docs: `API.md` and `axir-api.json`", "Runnable examples: `examples/`", "Capability manifest: `axir-capabilities.json`"), all one level deep with no bundle files present. Not a 4: the ~40-symbol inline "Relevant API Surface" enumeration duplicates the cited API docs — content that should live in a separate file is inline, which is more than a minor organization gap. Not a 2: the body is well-sectioned and references are clearly surfaced, not buried, so structure is more than minimal.

3 / 5

Total

14

/

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 strong description that opens with an explicit "Use when..." trigger tied to a specific language and package, and enumerates four concrete capability areas. Its gaps are the missing natural synonyms (speech, TTS, transcription, voice) and a "what" that is only expressed through the trigger clause rather than a standalone capability statement.

DimensionReasoningScore

Specificity

The description lists several concrete capability areas — "audio input/output, OpenAI Responses audio mapping, realtime event folding, and generated package audio examples" — anchored to the concrete action "writing C++ code with `axllm`". Not a 5: these are scope areas rather than enumerated actions, and capabilities like speech synthesis or transcription are only implied, never named. Not a 3: it goes well beyond naming a domain with 1–2 actions, listing four specific areas.

4 / 5

Completeness

The "when" is explicit and specific: "Use when writing C++ code with `axllm` for audio input/output...". Not a 5: the "what" is never stated as its own capability statement — it is only conveyed through the "for..." list inside the trigger clause, and scoring only what is explicit, the capability must be inferred from the trigger. Not a 3: the "when" is explicit, not weakly implied, and the scope items give a workable "what".

4 / 5

Trigger Term Quality

Natural terms a user would say are present: "C++ code", "audio input/output", "OpenAI Responses", "realtime". Not a 5: common synonyms users would naturally use are missing — "speech", "text-to-speech"/"TTS", "transcription", "voice" — even though the body covers them. Not a 3: coverage goes beyond a couple of relevant keywords to several distinct, natural phrases.

4 / 5

Distinctiveness Conflict Risk

A clear niche with distinct triggers: "C++" + the named package "`axllm`" + "OpenAI Responses audio mapping" is unlikely to collide with any other skill. Not a 4: the named package and language pin it to one narrow domain, leaving minimal overlap risk with closely related skills.

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.