CtrlK
BlogDocsLog inGet started
Tessl Logo

sag

ElevenLabs text-to-speech with mac-style say UX.

62

Quality

75%

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

Quality

Content

96%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 an exemplary lean skill page: executable commands, non-obvious ElevenLabs specifics (SSML support matrix, v3 audio tags, voice defaults), and a concrete chat voice-reply workflow. The only real gap is inconsistent section heading formatting.

Suggestions

Convert the plain-text section titles ("API key (required)", "Quick start", "Model notes", "Pronunciation + delivery rules", "v3 audio tags", "Voice defaults") to markdown `##` headers for consistent, scannable structure.

If the v3 audio tag catalog or model notes grow, split them into a references/ file to keep the overview role of SKILL.md.

DimensionReasoningScore

Conciseness

The body is all terse bullets and commands with zero padding — lines like "v3: SSML <break> not supported; use [pause], [short pause], [long pause]" deliver only non-obvious, sag/ElevenLabs-specific facts Claude could not know. Every token earns its place, matching the lean anchor 5.

5 / 5

Actionability

Commands are copy-paste ready and cover the common cases: `sag "Hello there"`, `sag speak -v "Roger" "Hello"`, and the chat-reply recipe `sag -v Bitterbot -o /tmp/voice-reply.mp3 "Your message here"` plus the MEDIA: inclusion protocol. Fully executable with specific examples, matching anchor 5.

5 / 5

Workflow Clarity

This is a simple single-purpose skill where the core action is unambiguous, satisfying the simple-skill exception. The one multi-step flow (chat voice reply) is explicitly sequenced (generate audio file, then include via MEDIA:), with a pre-flight checkpoint ("Confirm voice + speaker before long output") and no destructive or batch operations that would trigger the validation cap.

5 / 5

Progressive Disclosure

No bundle files exist, and detail is appropriately deferred to the CLI itself (`sag prompting` for model-specific tips), keeping the body self-contained. However, section organization is inconsistent: only "Chat voice responses" uses a `##` header while "Quick start", "Model notes", "Pronunciation + delivery rules", and "Voice defaults" are plain text lines — a minor organization gap matching anchor 4 rather than 5.

4 / 5

Total

19

/

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 is concise and pins a clear niche (ElevenLabs TTS with a say-style UX), but it is a single clause with no trigger guidance. It answers "what" adequately while leaving "when" entirely implicit.

Suggestions

Add a 'Use when...' clause with concrete triggers, e.g. 'Use when the user asks for spoken audio, TTS, voice replies, or mentions ElevenLabs or the say command.'

Include natural synonyms users would say — TTS, voice, speech, audio — to improve trigger-term coverage.

Name one or two more concrete capabilities (e.g. 'converts text to speech, plays locally, and lists/switches voices') to lift specificity.

DimensionReasoningScore

Specificity

"ElevenLabs text-to-speech" names the domain and one concrete action (speech generation), and "mac-style say UX" adds a UX analogy, but no additional specific actions are listed. Matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive' rather than anchor 4, which requires several specific actions.

3 / 5

Completeness

The description clearly answers "what" (ElevenLabs TTS with a say-like interface) but contains no "Use when..." clause or equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 3.

3 / 5

Trigger Term Quality

"text-to-speech" and "say" are natural terms a user might say, and "ElevenLabs" catches vendor-named requests, but common variations like "TTS", "voice", "speech", and "audio" are absent. This is partial keyword coverage (anchor 3), not the good coverage of anchor 4.

3 / 5

Distinctiveness Conflict Risk

"ElevenLabs" pins a clear niche with minimal conflict risk against unrelated skills, but the generic "text-to-speech" phrasing could overlap with other speech/TTS skills and no distinct trigger phrases are given, matching anchor 4 rather than anchor 5.

4 / 5

Total

13

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository
Bitterbot-AI/bitterbot-desktop
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.