Use when writing or reviewing Python code in this repo that builds an interactive voice agent via `agent.deepgram.com/v1/agent/converse`. Covers `client.agent.v1.connect()`, `AgentV1Settings`, `send_settings`, `send_media`, event handling, and function/tool calling. Full-duplex STT + LLM + TTS with barge-in. Use `deepgram-python-text-to-speech` for one-way synthesis, `deepgram-python-speech-to-text` / `deepgram-python-conversational-stt` for transcription only. Triggers include "voice agent", "agent converse", "full duplex", "interactive assistant", "barge-in", "agent.v1", "function calling", "AgentV1Settings".
72
88%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is an excellent skill description that is highly specific, complete, and distinctive. It names concrete API methods and endpoints, provides explicit 'Use when' guidance, differentiates itself from related skills, and includes a comprehensive list of trigger terms covering both natural language and technical vocabulary. The third-person voice is used appropriately throughout.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions and API elements: `client.agent.v1.connect()`, `AgentV1Settings`, `send_settings`, `send_media`, event handling, function/tool calling, and references the specific endpoint `agent.deepgram.com/v1/agent/converse`. Also distinguishes from related skills for one-way synthesis and transcription. | 3 / 3 |
Completeness | Clearly answers both 'what' (building an interactive voice agent with specific API methods, full-duplex STT+LLM+TTS) and 'when' (explicit 'Use when writing or reviewing Python code in this repo...' clause plus explicit trigger terms). Also clarifies when NOT to use it by pointing to alternative skills. | 3 / 3 |
Trigger Term Quality | Includes a rich set of natural trigger terms users would say: 'voice agent', 'agent converse', 'full duplex', 'interactive assistant', 'barge-in', 'agent.v1', 'function calling', 'AgentV1Settings'. These cover both natural language and technical terms a developer would use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive by specifying the exact API endpoint, SDK methods, and use case (interactive voice agent). Explicitly differentiates from related Deepgram skills for text-to-speech and speech-to-text, reducing conflict risk with those adjacent skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a strong, highly actionable skill with excellent executable examples covering the full voice agent lifecycle including connection, settings, events, mid-session updates, and reconnection. The workflow is clearly sequenced with important validation points (settings-first, keepalive timing, disconnect detection). The main weakness is length — at ~250 lines with extensive inline code examples for mid-session adjustment and reconnection, it could benefit from splitting advanced topics into separate files to improve progressive disclosure and reduce token cost.
Suggestions
Move the 'Dynamic mid-session adjustment' and 'Stream lifecycle & recovery' sections into separate referenced files (e.g., MID_SESSION.md, LIFECYCLE.md) to reduce the main skill's token footprint while preserving discoverability.
Trim inline comments in code examples — Claude doesn't need '# Server replies with a PromptUpdated event' when the event types section already documents this.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is generally efficient and avoids explaining basic concepts, but it's quite long (~250 lines) with some sections that could be tightened. The dynamic mid-session adjustment section includes extensive inline comments and the reconnect example is verbose with deeply nested type names that could be summarized. The 'when to use' section is useful but slightly padded. | 2 / 3 |
Actionability | Excellent actionability throughout — the quick start is fully executable with real import paths and concrete type constructors, the mid-session adjustment section provides six distinct copy-paste-ready patterns, and the reconnect/keepalive examples are complete and runnable. Provider types, event names, and method signatures are all specific. | 3 / 3 |
Workflow Clarity | The lifecycle is clearly sequenced: connect → send_settings (MUST be first) → register handlers → stream audio → handle events. The stream lifecycle section explicitly covers pause/idle/reconnect with validation-like checkpoints (KeepAlive timing, detecting disconnects via CLOSE handler, InjectionRefused retry logic). Gotchas reinforce ordering constraints. | 3 / 3 |
Progressive Disclosure | The skill references external files (reference.md, example files, external docs) and cross-links to other skills, which is good. However, the body itself is quite long with substantial inline content (mid-session adjustment, reconnect examples, full event type listing) that could be split into separate reference files. The API reference section is well-structured with layered links, but the main body tries to cover too much in one file. | 2 / 3 |
Total | 10 / 12 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 — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
e169f63
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.