CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

podcast-to-obsidian

Podcast → transcript → Obsidian pipeline. Detects new episodes via Spotify MCP, downloads audio via RSS, transcribes locally with faster-whisper, generates structured Obsidian notes with summaries, key ideas, quotes, and backlinks. Manifest tracks processed episodes to avoid duplicates. Use when user says "podcast", "transcribe episode", "podcast-to-obsidian", or any podcast/transcript workflow.

68

Quality

86%

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

77%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, well-sequenced operational document with genuine validation checkpoints for a batch pipeline, but it is a single monolithic ~590-line file: historical incident narratives and changelog-style 'Fixed' entries pad the flow, and setup guides, templates, and flag references that belong in separate files are all inlined. Splitting reference material out and trimming the war-story asides would raise both weak dimensions.

Suggestions

Move the dated incident narratives and 'Fixed' changelog rows (e.g. the 2026-09-19 sync story in Step 10, the old 12,000-word truncation history in Step 6, and the resolved Known Issues) into a CHANGELOG or 'past incidents' reference file, keeping only the current behavior and its rationale in the main flow.

Split the Spotify MCP Setup walkthrough, the Obsidian Note Structure template, and the CLI Flag Reference into separate files under references/ (e.g. references/spotify-setup.md, references/note-template.md, references/cli-reference.md) linked one level deep from SKILL.md.

Trim first-person war-story asides such as "This has cost debugging time more than once" and "That is precisely what happened on 2026-09-19" down to a one-line rationale each, so every remaining token states a rule or a reason.

DimensionReasoningScore

Conciseness

The body is dense with skill-specific operational knowledge (commands, tables, gating rules) and wastes little on concepts Claude already knows, but it includes unnecessary narrative that could be tightened — e.g. "That is precisely what happened on 2026-09-19", "This has cost debugging time more than once", and the history of the old 12,000-word truncation bug in Step 6 — plus dated/time-sensitive incident reports and 'Fixed' changelog rows not placed in a deprecated/changelog section. It is not 2 because the padding is interspersed and brief rather than whole padded sections of generic explanation, and not 4 because the historical war-story asides recur in multiple sections.

3 / 5

Actionability

Guidance is fully executable and copy-paste ready: a Quick Start block with complete PowerShell commands for every mode, per-flag CLI reference tables, a config-key table that matches the actual scripts/config.json, an exact note template with filename-sanitization rules, and a troubleshooting table mapping concrete errors to fixes. It is not 4 because the examples cover the common cases (full run, check-only, per-show, per-episode, URL mode, backfill, watermark maintenance) with specific, runnable commands.

5 / 5

Workflow Clarity

The 10-step pipeline is clearly sequenced with explicit validation checkpoints and feedback loops appropriate to a batch operation: manifest is updated "ONLY after successful Obsidian write", writes are verified via `obsidian.py read`, completion is decided by a `__META__` marker with a `.meta.json` sidecar, failed downloads/transcriptions retry with backoff plus a `--retry-failed` loop, a PID lock guards concurrent runs, and the agent-in-the-loop section provides a 5-point audit checklist. This matches the top anchor, including its batch-operation validation requirement, so no cap applies.

5 / 5

Progressive Disclosure

Structure within SKILL.md is good (clear sections, tables, quick start) and referenced scripts are real bundle files (scripts/pipeline.py, scripts/config.json, scripts/lib/), but there are no reference documents at all — the Spotify MCP setup walkthrough, the full Obsidian note template, and the long CLI flag reference are all inlined in a ~590-line file where they clearly belong in separate one-level-deep reference files. This matches the anchor for 'content that should be separate is inline'; it is not 4 because for a skill this size most reference-style content is not appropriately placed in separate files, and not 2 because section structure and navigation within the file are strong.

3 / 5

Total

16

/

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: third-person, tool-specific action list covering the whole pipeline, with an explicit 'Use when' clause quoting natural trigger phrases. The only notable gap is that the --url one-off video-clip mode is a real capability absent from the description, and a few natural trigger variations are missing.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions covering the full pipeline — "Detects new episodes via Spotify MCP", "downloads audio via RSS", "transcribes locally with faster-whisper", "generates structured Obsidian notes with summaries, key ideas, quotes, and backlinks", "Manifest tracks processed episodes to avoid duplicates" — naming specific tools and outputs, which matches the comprehensive-coverage anchor. It is not the level below (4) because the actions span every pipeline stage rather than leaving minor gaps.

5 / 5

Completeness

Both questions are answered explicitly: the "what" is a concrete pipeline description, and the "when" is an explicit trigger clause — "Use when user says 'podcast', 'transcribe episode', 'podcast-to-obsidian', or any podcast/transcript workflow." This matches the anchor requiring concrete trigger phrases; score 4 would require the 'when' to be less explicit than it is.

5 / 5

Trigger Term Quality

Trigger phrases include natural terms users would say — "podcast", "transcribe episode", "podcast-to-obsidian", and "any podcast/transcript workflow" — giving good keyword coverage. It is not 5 because common variations are missing (e.g. "new episodes", "show", "audio", or any term for the --url/YT-clip mode), and not 3 because the main natural phrasings and synonyms are present, not just domain jargon.

4 / 5

Distinctiveness Conflict Risk

The podcast→transcript→Obsidian pipeline is a clear niche with distinct, on-topic triggers ("podcast", "transcribe episode"), and the description is written in third person ("Detects", "transcribes", "generates"). It is not 4 because the trigger set is tightly scoped to this niche and does not meaningfully overlap with the related Obsidian vault skills, whose triggers concern vault operations rather than podcasts.

5 / 5

Total

19

/

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 (607 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

0xRabbidfly/Eric-Cartman

Path

.github/skills/podcast-to-obsidian/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.