CtrlK
BlogDocsLog inGet started
Tessl Logo

azure-ai-voicelive-ts

Azure AI Voice Live SDK for JavaScript/TypeScript. Build real-time voice AI applications with bidirectional WebSocket communication.

39

Quality

37%

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 ./plugins/antigravity-awesome-skills/skills/azure-ai-voicelive-ts/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

42%Scale 1-3

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 (function calling shown 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, and the workflow lacks validation checkpoints for a real-time WebSocket system.

Suggestions

Reduce content by 50%+: remove the duplicate function calling section, collapse the exhaustive event handler listing into a pattern example with 2-3 events plus a note that others follow the same pattern, and move reference tables (voice options, audio formats, models, types) to separate bundle files.

Add explicit validation checkpoints to the workflow: verify session connection before sending audio, check for onSessionCreated before calling updateSession, and include a reconnection strategy for dropped WebSocket connections.

Create bundle files (e.g., REFERENCE.md, EVENTS.md, EXAMPLES.md) and replace inline reference tables and exhaustive listings with one-level-deep links to those files.

Remove obvious best practices ('never hardcode API keys', 'clean up subscriptions') and the generic Limitations/When to Use boilerplate that adds no SDK-specific value.

DimensionReasoningScore

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 most event names from the pattern, and reference tables for voice options/audio formats/models add bulk that Claude could look up. The 'Best Practices' section states obvious things like 'never hardcode API keys.' Much of this content could be cut by 60%+ without losing actionability.

1 / 3

Actionability

The skill provides fully executable, copy-paste ready TypeScript code for all major operations: authentication, session creation, configuration, event handling, function calling, error handling, and browser usage. Code examples are concrete with real imports, types, and method calls.

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 errors during the session lifecycle.

2 / 3

Progressive Disclosure

The entire skill is a monolithic wall of content with no bundle files to offload detailed reference material. The exhaustive event handler listing, duplicate function calling examples, voice options tables, audio format tables, and type references should all be in separate reference files. Everything is inline in a single massive document with no layered structure.

1 / 3

Total

7

/

12

Passed

Description

32%Scale 1-3

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 the specific SDK and technology stack but is too brief and lacks explicit trigger guidance ('Use when...'). It would benefit from listing concrete actions the skill enables and specifying the scenarios in which Claude should select it over other skills.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about building voice applications with Azure AI, real-time audio streaming, or the @azure/ai-voice-live SDK.'

List specific concrete actions such as 'establish voice sessions, stream audio input/output, handle turn-taking, configure voice models, manage WebSocket connections'.

Include natural trigger terms users might say, such as 'speech', 'audio streaming', 'voice chat', 'microphone input', 'text-to-speech', 'Azure Cognitive Services voice'.

DimensionReasoningScore

Specificity

Names the domain (Azure AI Voice Live SDK) and mentions a key action ('Build real-time voice AI applications') with a technical detail ('bidirectional WebSocket communication'), but doesn't list multiple concrete actions like 'stream audio', 'handle turn-taking', 'transcribe speech', etc.

2 / 3

Completeness

Describes what it does at a high level but has no 'Use when...' clause or equivalent explicit trigger guidance. Per the rubric, a missing 'Use when...' clause should cap completeness at 2, and since the 'what' is also fairly thin, this scores a 1.

1 / 3

Trigger Term Quality

Includes some relevant keywords like 'Azure AI', 'Voice', 'real-time', 'WebSocket', 'JavaScript/TypeScript', but misses common user terms like 'speech', 'audio streaming', 'voice chat', 'conversation', 'microphone', or 'text-to-speech'.

2 / 3

Distinctiveness Conflict Risk

The mention of 'Azure AI Voice Live SDK' is fairly specific and distinguishes it from generic voice or audio skills, but it could still overlap with other Azure SDK skills or general WebSocket/voice AI skills due to lack of precise trigger boundaries.

2 / 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

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

10

/

11

Passed

Repository
popey/claude-code-skills
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.