CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-voicelive-py

Build real-time voice AI applications with bidirectional WebSocket communication.

Quality

65%

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/azure-ai-voicelive-py/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

This is a solid API-overview skill: executable auth, quick-start, session, streaming, and event-handling code with sensible offloading of detail to three real, one-level-deep reference files. The main weaknesses are filler sections (boilerplate 'When to Use'/'Limitations', duplicated tables), minor import/placeholder gaps in snippets, and a broken link to a missing UPSTREAM-NOTICE.md.

Suggestions

Delete the boilerplate 'When to Use' and 'Limitations' sections (or replace them with skill-specific guidance) and drop the duplicated intro sentence to reclaim tokens.

Fix the broken [UPSTREAM-NOTICE.md](UPSTREAM-NOTICE.md) link — either ship the file or remove the 'Bundled upstream support' section.

Move the Voice Options, Audio Formats, and Turn Detection tables into references/models.md and keep only a pointer, since they are lookup material rather than getting-started content.

DimensionReasoningScore

Conciseness

The body is mostly efficient, code-and-table driven with no explanations of concepts Claude already knows, but it includes unnecessary material that could be trimmed: the boilerplate 'When to Use' section ('This skill is applicable to execute the workflow or actions described in the overview') says nothing, the 'Limitations' section is generic filler, the intro sentence duplicates the description verbatim, and the Voice Options / Audio Formats / Turn Detection tables duplicate reference material that belongs in references/models.md. This matches anchor 3 'Mostly efficient but includes some unnecessary explanation or could be tightened' — not 4, because there are several such instances rather than minor ones.

3 / 5

Actionability

Concrete, mostly executable guidance throughout: pip install command, env vars, both auth flows, a runnable Quick Start, session configuration with real model classes, audio streaming, match/case event handling, and error handling with specific exception types. This matches anchor 4 'Mostly executable guidance; concrete code or commands with minor gaps' — the gaps being undefined placeholder functions (read_audio_from_microphone(), play_audio()), a missing `import json`/`import os` in snippets that use them, and no full working mic-to-speaker loop. Not 5 because those placeholders and import omissions prevent copy-paste-ready coverage of the common end-to-end case.

4 / 5

Workflow Clarity

Clear sequences are present: Quick Start (connect → session.update → item.create → response.create → listen), Manual Turn Mode (append → commit → response.create), and Interrupt Handling (speech_started → cancel → clear output buffer), with a dedicated Error Handling section and a boundaries section instructing verification of SDK version/endpoint/scopes and cleanup (close credentials, cancel+await in finally). This matches anchor 4 'Clear sequence with most checkpoints present; minor validation gaps' — not 5 because there is no explicit validate-and-retry feedback loop, and not 3 because checkpoints (error events, exceptions, verification instructions) are more present than implicit.

4 / 5

Progressive Disclosure

The body is a ~330-line overview with well-signaled, verified one-level-deep references: a 'References' section clearly labeling references/api-reference.md, references/examples.md, and references/models.md, all of which exist with real content and no nested references. This matches anchor 4 'Good structure; most content is appropriately placed; references mostly clear; minor organization gaps' — the gaps being a broken link to UPSTREAM-NOTICE.md (the file does not exist in the bundle) and some reference-like tables (voices, formats, VAD options) inlined that could live in models.md. Not 5 because the dangling UPSTREAM-NOTICE.md link is a real navigation defect; not 3 because references are clearly signaled and the split is otherwise sensible.

4 / 5

Total

15

/

20

Passed

Description

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

The description gives a clear, concrete 'what' but completely omits 'when to use it' guidance, capping completeness at 3. It also never mentions Azure or the Voice Live SDK by name, weakening both trigger-term coverage and distinctiveness against competing voice-realtime skills.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user mentions Azure Voice Live, the azure-ai-voicelive SDK, building a realtime/speech-to-speech assistant, or streaming audio over WebSockets to Azure AI.'

List 2-3 concrete capabilities to raise specificity, e.g. '...stream bidirectional audio over WebSockets, configure sessions, turn detection, and transcription, and handle tool/function calls.'

Include the product name 'Azure AI Voice Live SDK' (and synonyms like 'voice agents', 'speech-to-speech') so it is distinguishable from other realtime voice skills.

DimensionReasoningScore

Specificity

"Build real-time voice AI applications with bidirectional WebSocket communication" names the domain (real-time voice AI) plus 1-2 concrete actions (build apps, bidirectional WebSocket streaming), matching the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'. It is above score 2 ('Processes PDF files' level, domain only) because it states a concrete communication mechanism, but below score 4 because it lists no specific operations like streaming audio, configuring sessions, or handling function calls.

3 / 5

Completeness

The 'what' is clear (build real-time voice AI apps with bidirectional WebSockets) but there is no 'Use when...' clause or any trigger guidance, matching anchor 3 'Has a clear what but when is missing or only weakly implied' and hitting the guideline cap that a missing 'Use when...' clause places on completeness. It is not 2 because the 'what' is concrete, not vague, and not 4 because 'when' is entirely absent rather than just under-specified.

3 / 5

Trigger Term Quality

Natural terms present include "real-time voice AI", "voice AI applications", and "WebSocket", which users would plausibly say, matching 'Some relevant keywords but missing common variations or synonyms'. It is not 4 because it omits common phrasings like "audio", "speech", "Azure", "Voice Live SDK", or "realtime" that a user would naturally use; it is above 2 because the keywords it has are relevant rather than generic.

3 / 5

Distinctiveness Conflict Risk

The niche "real-time voice AI + bidirectional WebSocket" is somewhat specific, but the description never mentions Azure or the Voice Live SDK, so it would collide with other realtime voice/audio streaming skills (e.g., OpenAI Realtime, WebRTC skills), matching anchor 3 'Somewhat specific but could still overlap with similar skills'. It is not 4 because the missing product-specific term leaves real overlap risk with closely related voice skills.

3 / 5

Total

12

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 1 missing

Warning

Total

14

/

16

Passed

Repository

sickn33/agentic-awesome-skills

Path

skills/azure-ai-voicelive-py/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.