CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

deepgram-python-conversational-stt

Use when writing or reviewing Python code in this repo that calls Deepgram Conversational STT v2 / Flux (`/v2/listen`) for turn-aware streaming transcription. Covers `client.listen.v2.connect(...)`, Flux models, end-of-turn detection. Use `deepgram-python-speech-to-text` for standard v1 ASR, `deepgram-python-voice-agent` for full-duplex interactive assistants. Triggers include "flux", "v2 listen", "conversational STT", "turn detection", "end of turn", "EOT", "listen.v2", "flux-general-en", "flux-general-multi".

1.46x
Quality

90%

Does it follow best practices?

Impact

97%

1.46x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 strong, well-structured reference skill: the quick start handles real-world SDK quirks (typed/untyped message unions, string sample_rate, correct v2 close semantics) and the gotchas section is genuinely high-value. It uniformly sits at the 'good with minor gaps' level — the quick start isn't fully copy-paste executable, and version-sensitive deployment details and promotional sections cost tokens.

Suggestions

Replace the `mic_chunks()` placeholder with a real 80ms-frame audio source (e.g., reading a WAV file in chunks) so the quick start is copy-paste executable, and show `api_key` wiring in the `AsyncDeepgramClient` example to match the sync one.

Move version-specific deployment details (the '2026-09-15 release or later' self-hosted requirements and `[features]` flags) out of the main 'Key parameters' flow into a dedicated 'Self-hosted deployment notes' section, per the time-sensitive-information guideline.

Consolidate the skill-routing guidance duplicated in 'When to use this product' and 'Related skills' into one place, and trim the 'Central product skills' promotional section to a single line to save tokens.

Resolve the `reference.md` pointer: either place the 'Listen V2 Connect' reference in a `references/` bundle directory with a clear path, or inline the handful of details actually needed so the reference is not dangling.

DimensionReasoningScore

Conciseness

The body is dense and high-value — a compact 'Key parameters' table, terse gotchas ('`/v2/listen`, not `/v1/listen`', '`sample_rate` is a STRING'), and no explanation of concepts Claude already knows. Minor trimmable instances: the 'Central product skills' section with the `npx skills add deepgram/skills` promo block, routing guidance duplicated between 'When to use this product' and 'Related skills', and time-sensitive version info ('2026-09-15 release or later') embedded in the main flow rather than a deployment/deprecated section — per the guideline this last item is penalized, keeping it out of the 5 anchor ('every token earns its place').

4 / 5

Actionability

The quick start is mostly executable and unusually thorough — it registers handlers via `conn.on(EventType.MESSAGE, on_message)`, branches on typed `ListenV2TurnInfo` vs raw dict fallbacks, threads audio, and closes with `conn.send_close_stream(ListenV2CloseStream(type="CloseStream"))`, plus a concrete async equivalent. Minor gaps keep it below 5: `mic_chunks()` is an undefined placeholder, and `AsyncDeepgramClient()` is shown without the API-key wiring the sync example includes.

4 / 5

Workflow Clarity

The lifecycle (connect with Flux model params → register handlers → send ~80ms chunks → `start_listening()` → `send_close_stream`) is demonstrated concretely through the quick start, with error surfacing via `EventType.ERROR` and `ListenV2FatalError` documented. Not 5: no explicit numbered sequence or error-recovery guidance beyond printing the error; not 3: this is a single-purpose API skill, not a destructive/batch operation, so the validation cap does not apply and the implicit sequence is clear.

4 / 5

Progressive Disclosure

Good section structure with well-signaled, one-level-deep references: 'API reference (layered)' routes from in-repo `reference.md` to AsyncAPI/Context7/product docs, and example files are listed in a dedicated section. Minor gaps: the in-repo `reference.md` path is not part of the skill bundle (no `references/` directory exists, so the pointer can't be resolved), and the parameter/events tables plus duplicated routing content push the SKILL.md toward a length where more could be deferred.

4 / 5

Total

16

/

20

Passed

Description

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

An exemplary description: it states a precise niche (turn-aware streaming STT on `/v2/listen` with Flux models), gives an explicit 'Use when' clause with repo context, lists natural and technical triggers comprehensively, and proactively disambiguates the two sibling skills most likely to collide. No dimension falls below the top anchor.

DimensionReasoningScore

Specificity

Multiple specific concrete capabilities are named: 'writing or reviewing Python code in this repo that calls Deepgram Conversational STT v2 / Flux (`/v2/listen`) for turn-aware streaming transcription. Covers `client.listen.v2.connect(...)`, Flux models, end-of-turn detection' — comprehensive coverage of the skill's scope with no vague filler. It clearly matches the 5 anchor ('lists multiple specific concrete actions; comprehensive coverage') and exceeds the 4 anchor, which allows minor gaps in coverage.

5 / 5

Completeness

Both questions are answered explicitly: what ('turn-aware streaming transcription... Covers `client.listen.v2.connect(...)`, Flux models, end-of-turn detection') and when ('Use when writing or reviewing Python code in this repo that calls Deepgram Conversational STT v2 / Flux'), reinforced by concrete trigger phrases. This is a direct match for the 5 anchor's pattern ('clearly and explicitly answers both what AND when with concrete trigger phrases').

5 / 5

Trigger Term Quality

The explicit trigger list covers natural user phrasing plus synonyms and code-level identifiers: '"flux", "v2 listen", "conversational STT", "turn detection", "end of turn", "EOT", "listen.v2", "flux-general-en", "flux-general-multi"'. This matches the 5 anchor ('comprehensive coverage of natural terms including synonyms') — nothing a user or reviewer would plausibly type when needing this skill is missing.

5 / 5

Distinctiveness Conflict Risk

The niche is sharply defined and actively de-conflicted: 'Use `deepgram-python-speech-to-text` for standard v1 ASR, `deepgram-python-voice-agent` for full-duplex interactive assistants' explicitly routes the nearest overlapping cases elsewhere, and triggers like 'listen.v2', 'flux-general-en' are unique to this skill. Minimal conflict risk — a clear 5.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

deepgram/deepgram-python-sdk

Path

.agents/skills/deepgram-python-conversational-stt/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.