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 ./packages/cpp/skills/ax-cpp-audio/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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 lean, information-dense body that assumes competence and documents genuinely package-specific behavior with one executable snippet and clear usage guardrails. Its weaknesses are the inlined, partially irrelevant API symbol dump, the absence of a complete audio code example, and references to files that are not part of this skill's bundle.

Suggestions

Move the 'Relevant API Surface' symbol list into a references/ file (e.g. references/api-surface.md), keeping only the audio-relevant symbols inline.

Add one complete executable example of a speak() request and an audio-input mapping so the common cases are copy-paste ready inline.

Either ship the referenced files (API.md, axir-api.json, examples/) inside the skill bundle or qualify the paths so navigation to detail is real rather than dangling.

DimensionReasoningScore

Conciseness

The body is dense and package-specific with no padding or explanation of concepts Claude already knows ('The older keys `audio`, `mime_type`, and `sample_rate` are removed'), fitting anchor 4. It misses anchor 5 because the 'Relevant API Surface' bullet inlines ~40 symbols (balancers, tracers, meters) largely unrelated to audio — tokens that do not earn their place in this skill.

4 / 5

Actionability

There is one copy-paste-ready snippet (axllm::ai("openai", { {"apiKey", std::getenv("OPENAI_API_KEY")} })) plus concrete defaults, field names, and error behavior, matching anchor 4's 'concrete code or commands with minor gaps'. Not anchor 5: no complete inline example of a speak() call or audio-input mapping is shown; those live in examples/ by pointer only.

4 / 5

Workflow Clarity

The Guardrails section sequences the approach with a validation mechanism — 'Start from package examples for exact native syntax', 'Use `no-key` examples for deterministic local checks', 'Use `provider-api` examples only when the user explicitly has provider credentials' — matching anchor 4's clear sequence with checkpoints. It is not anchor 5 because there is no explicit ordered workflow or error-recovery feedback loop.

4 / 5

Progressive Disclosure

The body signals references (API.md, axir-api.json, examples/, axir-capabilities.json, 'the gen skill') but none of these files exist in the skill's own bundle (no references/, scripts/, or assets/ directories), and the long 'Relevant API Surface' symbol list is inlined content that belongs in a separate reference file — matching anchor 3 ('content that should be separate is inline'). Not anchor 4: the missing bundle files mean navigation to detail is not actually realized, and the API list is a clear misplacement.

3 / 5

Total

15

/

20

Passed

Description

71%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-scoped, third-person description with an explicit trigger clause and several concrete capability areas. Its main weaknesses are missing natural synonyms (speech, transcription, voice) that users would actually say, and a what/when fusion that leaves trigger phrasing less varied than top-anchor examples.

Suggestions

Add natural synonyms users would say, e.g. '...for speech synthesis, transcription, voice output, and realtime event folding' to broaden trigger coverage.

Add an alternative trigger phrase such as 'or when the user mentions audio, speech, TTS, or realtime voice features in C++' to strengthen the 'when' guidance.

Name the core speech capability explicitly (speak()/transcription) so the what-clause is more concrete about the skill's primary function.

DimensionReasoningScore

Specificity

The description lists several concrete action areas — "audio input/output", "OpenAI Responses audio mapping", "realtime event folding", "generated package audio examples" — matching the anchor for several specific actions with minor gaps. It falls short of anchor 5 because core capabilities the body documents (speech synthesis, transcription, voice defaults) are not named, and it is clearly above anchor 3's '1-2 concrete actions'.

4 / 5

Completeness

An explicit "Use when writing C++ code with `axllm` for..." clause provides the 'when', and the enumerated purposes convey the 'what' in the same sentence — matching anchor 4 where both are present but the 'when' could be more varied. Not anchor 5: it lacks the concrete alternative trigger phrasing of the top example ('or when the user mentions...').

4 / 5

Trigger Term Quality

Relevant keywords exist ("C++", "audio", "realtime", "OpenAI Responses") but the natural terms a user would say for this domain — "speech", "transcription", "voice", "TTS" — are missing, which matches anchor 3 ('missing common variations or synonyms') better than anchor 4's 'a few natural terms missing'.

3 / 5

Distinctiveness Conflict Risk

The niche is unmistakable — C++ with the specific generated package `axllm`, scoped to audio and realtime — giving distinct triggers and minimal conflict risk even against sibling axllm skills (this is unambiguously the audio one). This matches anchor 5; anchor 4's 'minor overlap risk with closely related skills' is weaker than what the strong package-plus-language scoping delivers.

5 / 5

Total

16

/

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.