CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

twilio-voice-twiml

Build voice call logic using TwiML (Twilio Markup Language). Covers the core verbs (Say, Play, Gather, Dial, Record, Conference), generating TwiML with Python and Node.js SDKs, and a complete inbound call IVR example. Use this skill to define call behavior for inbound or outbound calls.

68

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

Content

71%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 solid, highly actionable reference: executable dual-language code for every core verb, a complete IVR quickstart, honest production guidance, and a well-formed CANNOT section. The main weakness is structure — no progressive disclosure at all, with the entire verb-by-verb reference and deployment guidance inlined in SKILL.md, plus some dual-language and warning duplication that inflates token cost.

Suggestions

Split the per-verb reference into references/twiml-verbs.md and production deployment into references/production.md, keeping SKILL.md as an overview with clearly signaled one-level-deep links, per the progressive_disclosure anchor.

Consolidate the duplicated Pay warnings (Console-only connectors, irreversible PCI Mode) into a single location — keep them in the Pay section or CANNOT, not both — to reduce token cost.

Fix the Node.js quickstart gaps: show the Express setup (or note it) so `app` is defined, and include the digit-2 support branch to match the Python example.

DimensionReasoningScore

Conciseness

The body is code-dominant with almost no filler prose and assumes Twilio/TwiML context competently, but every verb is demonstrated twice (Python and Node.js) and the Pay warnings are duplicated verbatim in the CANNOT section — a few trims would reach the lean score-5 anchor. It is well above the score-3 anchor's unnecessary explanations.

4 / 5

Actionability

The Python Flask quickstart and verb examples are copy-paste executable and cover the common IVR cases, matching the score-4 anchor. It misses score 5 on minor gaps: the Node.js quickstart references an undefined `app` (no Express setup shown) and its menu-choice handler omits the digit-2 branch present in the Python version.

4 / 5

Workflow Clarity

The webhook-driven flow is clearly sequenced (prerequisites → quickstart → verbs → production → parameters → limits) with built-in recovery paths (redirect loop on no input, dial-timeout voicemail, fallback URLs, debugger monitoring). No destructive or batch operations exist, so the validation cap does not apply; it falls short of score 5 only because there is no explicit test-before-deploy validation checkpoint.

4 / 5

Progressive Disclosure

The skill is well-sectioned and navigable, but at ~340 lines everything is inline with no reference files at all — the full per-verb API reference and the Production Deployment section are candidates for `references/` files. This matches the score-3 anchor ('content that should be separate is inline') rather than score 4, which expects most bulk content split out with clearly signaled references.

3 / 5

Total

15

/

20

Passed

Description

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

A strong description: it names the domain, enumerates concrete capabilities including the specific TwiML verbs and both SDKs, and includes an explicit 'Use this skill...' trigger clause. Trigger-term coverage is good though it lacks a few natural synonyms users might say.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Build voice call logic using TwiML', 'Covers the core verbs (Say, Play, Gather, Dial, Record, Conference)', 'generating TwiML with Python and Node.js SDKs', and 'a complete inbound call IVR example' — which is comprehensive and specific, matching the score-5 anchor.

5 / 5

Completeness

It explicitly answers both: what ('Build voice call logic using TwiML... generating TwiML with Python and Node.js SDKs') and when ('Use this skill to define call behavior for inbound or outbound calls'), matching the score-5 anchor's clear what + explicit trigger clause.

5 / 5

Trigger Term Quality

Good natural-keyword coverage: 'TwiML', 'Twilio', 'voice call', 'IVR', 'inbound or outbound calls', plus SDK language terms. It falls short of the score-5 anchor's comprehensive synonym coverage (e.g., no 'phone menu', 'call routing', 'answering/holding calls') but is clearly above the score-3 anchor's missing common variations.

4 / 5

Distinctiveness Conflict Risk

TwiML voice-call markup is a clear niche with distinct triggers; closely related concerns (outbound calls, AI voice agents) are delegated to separately named sibling skills, so conflict risk is minimal.

5 / 5

Total

19

/

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

openai/plugins

Path

plugins/twilio-developer-kit/skills/twilio-voice-twiml/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.