CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

asr-transcribe-to-text

Transcribes audio or video to speaker-labeled, timestamped text, locally with MLX on Apple Silicon or remotely. Use for 转录 / 录音转文字 / 说话人分离 / 字幕, and also for preparing audio for ASR without transcribing: 转格式, 降采样到 16kHz, merging recorder segments, or compressing and speeding up audio before 飞书妙记 — even when it looks like a one-line ffmpeg job.

67

Quality

84%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

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.

An exceptionally actionable, heavily evidence-based operational manual with real validation and recovery loops, held back by sheer length and redundancy. The main quality lever is moving version-specific troubleshooting and peripheral option tables into the (already well-organized) references and consolidating thrice-repeated setup passages.

Suggestions

Consolidate the pyannote one-time-token setup and the decoupled-vs-cascade rationale into a single canonical section each; the setup currently appears in the intro callout, Step 3 Path A, and 'Speaker Diarization & Identification'.

Move the 'Self-hosted vLLM: the limits that fail in confusing ways' section (version numbers, dated measurements, format/size/duration caps) into a references/ file, leaving only the symptom→cause troubleshooting table inline.

Replace the audit-HTML CLI option table with a short example plus a pointer to the script's --help or a reference page, and trim the Step 0 config-authoring JSON to the field list.

DimensionReasoningScore

Conciseness

The body is ~990 lines and, while it never explains concepts Claude already knows, it pads through repetition: the pyannote one-time token setup appears three times (intro callout, Step 3 Path A, 'Speaker Diarization & Identification'), the decouple-don't-cut-ASR-at-turns rationale is restated four-plus times, and version-archaeology with dates ('Measured 2026-09-19', 'vLLM 0.15.2rc1.dev68', '2026-07-16') is inlined in the main workflow rather than an 'old patterns' or reference section — which the rubric explicitly penalizes. Mostly high-value operational content that could be tightened, matching anchor 3; anchor 2 would require the padding to dominate, which it does not.

3 / 5

Actionability

Every step ships copy-paste-ready commands with expected outputs: the resolver invocation with manifest flags, ffmpeg extraction lines, the full config JSON to save, the three-command Path L pipeline, and exact failure strings plus the exact env-var fixes ('VLLM_MAX_AUDIO_CLIP_FILESIZE_MB=800 VLLM_MAX_AUDIO_DECODE_DURATION_S=36000'). Specific examples cover the common cases (merge-only vs merge+speedup, smoke-test, --text-file pairing), matching anchor 5 ('fully executable, copy-paste ready, covers common cases').

5 / 5

Workflow Clarity

Steps 0–6 are clearly sequenced with strong validation checkpoints (Step 4's six-point verification, anchored_ratio threshold, smoke-test before long runs, checkpoint/cached-rerun requirements) and genuine feedback loops (validate → fix → condition-bound retry, exit-code-3 setup prompt with AskUserQuestion branches) — beyond anchor 4's 'most checkpoints'. It is held to 4 rather than 5 because the sequencing taxonomy is fragmented: a major route (Feishu upload Option) sits unnumbered between Steps 2 and 3, a '2b.' sub-step breaks the numbered route list, and the remote diagnostics list restarts numbering at '4.'/'5.' after items 1–3 — minor but real gaps in presenting the sequence.

4 / 5

Progressive Disclosure

All nine referenced files exist, references are one level deep, clearly signaled at point of need ('Before using this route, read [GPU-only runtime preparation](references/whispercpp_gpu_runtime.md)'), and indexed in a Bundled Resources section — good structure per anchor 4. It falls short of anchor 5 because substantial content that belongs in references is inlined: the ~100-line vLLM version-limits archaeology, the audit-HTML CLI option table, and the full Step 0 config authoring block make SKILL.md a full manual rather than a lean overview — more than 'minor organization gaps'.

4 / 5

Total

16

/

20

Passed

Description

88%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: concrete capabilities, explicit 'Use for' triggers in natural user phrasing, and an explicit boundary claim that pulls generic audio-prep jobs into this skill. The only gaps are missing English-language synonyms and file-extension triggers.

DimensionReasoningScore

Specificity

Multiple concrete actions are named: 'Transcribes audio or video to speaker-labeled, timestamped text, locally with MLX on Apple Silicon or remotely' plus preprocessing actions '转格式, 降采样到 16kHz, merging recorder segments, or compressing and speeding up audio' — comprehensive coverage of the skill's concrete capabilities with no vague filler. This matches the anchor-5 example (lists several specific actions covering the domain) and exceeds anchor 4 ('minor gaps in coverage').

5 / 5

Completeness

Both questions are explicitly answered with concrete triggers: 'what' = transcribe to speaker-labeled timestamped text (local MLX or remote) plus ASR audio preparation without transcribing; 'when' = 'Use for 转录 / 录音转文字 / 说话人分离 / 字幕' and the preprocessing triggers. This matches anchor 5 ('clearly and explicitly answers both what AND when with concrete trigger phrases'), not anchor 4 where the 'when' is only generic.

5 / 5

Trigger Term Quality

Natural phrases a user would actually say are present (转录, 录音转文字, 说话人分离, 字幕, 飞书妙记), plus concrete variants like 'merging recorder segments' and 'compressing and speeding up audio'. It falls between anchors 4 and 5: good-to-comprehensive Chinese trigger coverage, but common English synonyms ('transcribe this', 'subtitles', 'speaker labels') and file extensions (.wav/.m4a/.mp3) that anchor 5 exemplifies are missing, so anchor 4 ('a few natural terms missing') is the best fit.

4 / 5

Distinctiveness Conflict Risk

The ASR/speaker-label niche with domain-specific triggers (说话人分离, 飞书妙记, 降采样到 16kHz) is mostly distinct, and the clause 'even when it looks like a one-line ffmpeg job' explicitly resolves overlap with a generic media skill. It is not anchor 5 because the description deliberately claims broad audio-preprocessing territory (转格式, compressing/speeding up any audio) that overlaps any general ffmpeg/media-conversion skill — 'minor overlap risk with closely related skills' (anchor 4) fits.

4 / 5

Total

18

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (993 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository

daymade/claude-code-skills

Path

daymade-audio/asr-transcribe-to-text/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.