CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

azure-ai-voicelive-ts

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

Quality

63%

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-ts/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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, accurate-feeling API reference with strong executable code and good section organization, but it front-loads everything into a single monolithic file. There is no staged workflow with validation/cleanup checkpoints, and notable duplication (session config and function-call examples each appear twice) inflates the token budget. Splitting the event catalog, type reference, and option tables into one-level-deep reference files would improve both conciseness and progressive disclosure.

Suggestions

De-duplicate the repeated updateSession configuration (Quick Start vs. Session Configuration) and the function-call handler (Event Handling vs. Function Calling), keeping one canonical example and referencing it from the other section.

Split the event-handling catalog, Key Types Reference, and voice/model/format/Audio Formats tables into a references/ file (e.g. EVENTS.md, OPTIONS.md) linked from SKILL.md to enable progressive disclosure and cut inline tokens.

Add an explicit ordered workflow (authenticate → startSession → subscribe BEFORE sending audio → configure → stream → close on every exit path) with a validation checkpoint after connection/session creation, and move the '1.0.0-beta.3' version pin into a clearly labeled version-compatibility section.

DimensionReasoningScore

Conciseness

Sections are mostly lean (code, tables, config) with little explanation of known concepts, but there is real tightening opportunity: the Quick Start and Session Configuration blocks repeat near-identical updateSession configs, the function-call handler appears verbatim in both Event Handling and Function Calling, and the time-sensitive version pin ('1.0.0-beta.3') is inline rather than in a deprecated/versioning section. This is more than the 'minor instances' of score 4.

3 / 5

Actionability

Provides concrete, mostly copy-paste-ready TypeScript covering auth, session setup, event subscription, function calling, error handling, logging, and browser usage. Not score 5 because pieces are not fully executable: 'playAudioChunk' is referenced but never defined, and the browser section defers to 'see samples for full implementation' without showing the audio capture/resampling pipeline.

4 / 5

Workflow Clarity

A rough sequence exists across sections (install → env vars → authenticate → startSession → updateSession → subscribe → sendAudio → close), and cleanup is addressed in Best Practices and Limitations ('Stop tracks, close audio contexts, subscriptions and the underlying session on every exit path'), but there are no validation checkpoints or error-recovery loops, and the critical ordering constraint ('Subscribe before sending input ... to avoid missed events') is buried in a closing paragraph rather than placed in the workflow. Not score 4 because checkpoints are absent rather than merely minor-gapped.

3 / 5

Progressive Disclosure

Sections are well-organized with clear headers and tables, but ~470 lines of API/event catalog, type reference, and voice/model/format tables are fully inlined in SKILL.md with no bundle files at all (no references/, scripts/, or assets/ exist), matching the anchor 'content that should be separate is inline'. External links (npm, GitHub samples, API reference) partially compensate but are not a substitute for in-bundle split files.

3 / 5

Total

13

/

20

Passed

Description

53%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 identifies the skill's niche clearly and concisely, but it reads like a product tagline rather than a trigger-aware skill description. It states what the SDK does without any 'Use when...' guidance, meaning users (or Claude) describing a task in natural terms like 'build a voice assistant' or 'add speech to my app' may not match it. Adding explicit trigger phrases would raise both completeness and trigger term quality substantially.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when building real-time voice assistants, speech-to-speech agents, or audio chat applications with Azure AI in Node.js or the browser.'

Include natural trigger synonyms users would say — 'voice assistant', 'voice agent', 'real-time speech', 'audio streaming' — not just the SDK name and 'voice AI'.

Mention one or two more concrete capabilities (e.g. 'stream audio input/output, configure VAD turn detection, handle function calling') to broaden the specificity of actions beyond the single 'Build ... applications' verb.

DimensionReasoningScore

Specificity

Names the domain ('Azure AI Voice Live SDK for JavaScript/TypeScript') and one concrete action ('Build real-time voice AI applications'), but 'bidirectional WebSocket communication' is a mechanism rather than an action, so coverage is not comprehensive as required for score 4.

3 / 5

Completeness

Has a clear 'what' (build real-time voice AI applications over bidirectional WebSockets) but the 'when' is entirely missing — there is no 'Use when...' clause or equivalent trigger guidance, capping this dimension at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Includes relevant keywords ('Azure AI Voice Live', 'voice AI', 'real-time') but misses natural variations users would say such as 'voice assistant', 'speech', 'audio streaming', or 'voice agent'. Not score 4 because common synonyms are absent alongside the SDK name.

3 / 5

Distinctiveness Conflict Risk

Naming a specific SDK plus language ('Azure AI Voice Live SDK for JavaScript/TypeScript') creates a clear niche with distinct triggers, but there is minor overlap risk with closely related Azure skills (Speech SDK, OpenAI Realtime API). Not 5 because the description does not fully disambiguate those adjacent products.

4 / 5

Total

13

/

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

sickn33/agentic-awesome-skills

Path

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