CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

video-translate

Translate and dub existing videos into multiple languages using HeyGen. Use when: (1) Translating a video into another language, (2) Dubbing video content with lip-sync, (3) Creating multi-language versions of existing videos, (4) Audio-only translation without lip-sync, (5) Working with HeyGen's /v2/video_translate endpoint.

63

Quality

79%

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 ./.agents/skills/video-translate/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

Highly actionable: executable code in three languages, concrete endpoints and fields, a defined polling loop, and explicit error handling. However, the body is ~400 lines with the same calls duplicated across languages and inline bulk API reference that should live in separate files, and the batch workflow lacks validation/retry checkpoints.

Suggestions

Consolidate the curl, TypeScript, and Python versions of the same POST /v2/video_translate call into a single canonical example and trim the 'Translation Options' snippets that restate the request-field table.

Move the bulk reference material (field tables, v4 interface, supported-languages list, batch example) into references/ files, keeping SKILL.md as a concise overview with one-level-deep links.

Add a validation/feedback step to the batch workflow — e.g., verify each completed video URL and retry failed languages once — so batch operations include a recovery loop.

DimensionReasoningScore

Conciseness

The material is API-specific (endpoints, fields, language codes) that Claude does not already know, but the same POST call is shown three times (curl, TypeScript, Python), and 'Translation Options', 'Complete Workflow', and 'Batch Translation' largely restate the request-field table as near-duplicate config snippets — it could be tightened to roughly one example per operation. Not 4 because the duplication across languages and repeated trivial config snippets are more than minor over-explanation; not 2 because no section explains general concepts Claude already knows and every section is individually on-topic.

3 / 5

Actionability

Fully executable throughout: copy-paste curl/TypeScript/Python for POST /v2/video_translate, a status interface with literal status values ("pending" | "processing" | "completed" | "failed"), a polling function with 30s intervals and a 30-minute cap, a language-code table, and an error-message-to-cause mapping ("quota", "duration", "format"). Not 4 because the common cases are covered with specific, runnable code and no gaps remain.

5 / 5

Workflow Clarity

"Default Workflow" gives a clear 4-step sequence and polling checks status with a 'failed' branch that surfaces the error message, but the Batch Translation workflow only records failures ("results[job.lang] = `error: ${error.message}`") with no verification of outputs and no retry/recovery loop — per the rubric, batch operations without validation cap workflow clarity at 3. Not 4 because the batch path lacks the validation checkpoints the 4-anchor requires; not 2 because the main sequence is well defined with explicit status feedback.

3 / 5

Progressive Disclosure

Section headers are clear and consistent, but the ~400-line body inlines bulk reference material — full request-field tables, three-language code samples, the v4 interface definition, the language list, and the batch example — that belongs in separate reference files; no references/ directory exists. This matches the 'content that should be separate is inline' anchor. Not 4 because a substantial amount of reference content is inlined rather than split; not 2 because the structure is well organized, not minimal.

3 / 5

Total

14

/

20

Passed

Description

87%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: third-person, concrete what-statement, and an explicit enumerated 'Use when' clause with natural trigger phrases, all anchored to a specific vendor and endpoint. The only weakness is trigger coverage missing a few synonyms (localize, voiceover, subtitles).

Suggestions

Add one or two natural synonyms such as 'localize' or 'voiceover' to the trigger list to broaden natural-language matching.

DimensionReasoningScore

Specificity

"Translate and dub existing videos into multiple languages using HeyGen" names the domain plus several concrete actions (translate, dub, multi-language output), matching the 'several specific actions; minor gaps' anchor. Not 5 because coverage has gaps (SRT subtitles, vocabulary preservation, and status polling covered in the body are absent); not 3 because more than 1-2 actions are stated and the enumerated use cases add specificity.

4 / 5

Completeness

Explicitly answers both: what ("Translate and dub existing videos into multiple languages using HeyGen") and when ("Use when: (1)...(5)" with five concrete enumerated triggers), matching the top anchor exactly. A 4 would require the 'when' to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

Natural phrases users would say are present: "Translating a video into another language", "Dubbing video content with lip-sync", "Creating multi-language versions", "Audio-only translation", plus the concrete "/v2/video_translate endpoint". Not 5 because common synonyms like "localize", "voiceover", or "subtitles" are missing; not 3 because coverage goes well beyond a couple of generic keywords.

4 / 5

Distinctiveness Conflict Risk

"using HeyGen" and "HeyGen's /v2/video_translate endpoint" pin the skill to a clear niche with distinct triggers, minimal conflict risk with generic video or translation skills. Not 4 because there is no residual vagueness that would overlap a neighboring skill.

5 / 5

Total

18

/

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

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

13

/

16

Passed

Repository

calesthio/OpenMontage

Path

.agents/skills/video-translate/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.