Azure AI Voice Live SDK for JavaScript/TypeScript. Build real-time voice AI applications with bidirectional WebSocket communication.
41
41%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/azure-ai-voicelive-ts/SKILL.mdQuality
Discovery
40%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 identifies a clear and specific technology (Azure AI Voice Live SDK) which gives it strong distinctiveness, but it lacks explicit trigger guidance ('Use when...') and doesn't enumerate concrete actions the skill enables. The trigger terms are somewhat relevant but miss common user phrasings for voice/speech AI tasks.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user wants to build real-time voice applications using Azure AI, or mentions Azure voice SDK, speech streaming, or WebSocket audio communication.'
List specific concrete actions the skill covers, e.g., 'Configure voice sessions, stream bidirectional audio, handle speech-to-text and text-to-speech events, manage WebSocket connections, process real-time transcriptions.'
Include common user-facing trigger terms like 'speech-to-text', 'text-to-speech', 'voice chat', 'audio streaming', 'Azure Cognitive Services', and 'conversational AI' to improve keyword coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Azure AI Voice Live SDK) and mentions a key action ('Build real-time voice AI applications with bidirectional WebSocket communication'), but doesn't list multiple concrete actions like 'stream audio', 'transcribe speech', 'synthesize voice responses', etc. | 2 / 3 |
Completeness | Describes what the skill is about (Azure AI Voice Live SDK for building voice AI apps) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, missing 'Use when' caps completeness at 2, and the 'what' is also only partially described, warranting a 1. | 1 / 3 |
Trigger Term Quality | Includes some relevant keywords like 'Azure', 'voice', 'real-time', 'WebSocket', 'JavaScript', 'TypeScript', and 'SDK', but misses common user variations like 'speech-to-text', 'text-to-speech', 'audio streaming', 'voice chat', 'conversational AI', or 'Azure Cognitive Services'. | 2 / 3 |
Distinctiveness Conflict Risk | The description targets a very specific niche: Azure AI Voice Live SDK with WebSocket communication for JavaScript/TypeScript. This is unlikely to conflict with other skills due to the highly specific technology stack and SDK named. | 3 / 3 |
Total | 8 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides highly actionable, executable TypeScript code covering the full API surface of @azure/ai-voicelive, which is its primary strength. However, it is severely bloated with duplicated code blocks (function calling appears twice), exhaustive inline reference tables, and explanatory text that Claude doesn't need. The lack of any bundle files means all content is crammed into one monolithic document with no progressive disclosure structure.
Suggestions
Extract reference tables (voice options, audio formats, models, key types) and the exhaustive event handler listing into separate bundle files (e.g., REFERENCE.md, EVENTS.md) and link to them from the main skill.
Remove the duplicate function calling section — it appears in both the Event Handling section and as a standalone section with nearly identical code.
Add explicit validation checkpoints to the workflow: verify session connection before configuring, confirm session update success before subscribing, and include a reconnection strategy for WebSocket drops.
Trim best practices to only non-obvious guidance and remove explanatory phrases like 'The SDK uses a subscription-based event handling pattern' that Claude can infer from the code.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~400+ lines. There is massive duplication — function calling is shown twice with nearly identical code, event handling is exhaustively listed when Claude could infer patterns from a few examples, and reference tables for voice options/audio formats/models add bulk that could be in a separate reference file. The 'Best Practices' section states obvious things like 'never hardcode API keys.' | 1 / 3 |
Actionability | The skill provides fully executable, copy-paste ready TypeScript code for authentication, session creation, event handling, function calling, and error handling. Code examples are complete with proper imports and realistic usage patterns. | 3 / 3 |
Workflow Clarity | The Quick Start shows a reasonable sequence (create client → start session → configure → subscribe → send audio), but there are no explicit validation checkpoints. For a WebSocket-based real-time system, there's no guidance on verifying connection success before sending audio, no reconnection strategy, and no feedback loop for handling failures during streaming. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of text with no bundle files to offload content to. The exhaustive event handler listing, duplicate function calling examples, voice options table, audio formats table, models table, and types reference could all be split into separate reference files. Everything is inlined into a single massive document with no layered navigation. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
9e5d4dd
Table of Contents
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.