… skill
BREAKING CHANGE: the 12 granular skills (transcript, captions, subtitles,
video-transcript, youtube-search, youtube-channels, youtube-playlist,
youtube-data, youtube-api, transcriptapi, youtube-full, yt) are removed. The
single `youtube` skill covers everything they did.
Why: the 12 were alias variants of one another, inherited from a repo that
distributed them as independent installs where overlap was the point. Bundled
into one plugin the overlap inverts — Agent Skills loads every name and
description at startup, so thirteen near-identical descriptions all competing
for the same triggers made skill selection *worse*, not better, and cost ~13x
the startup context for one capability.
Structured the way the Agent Skills spec prescribes for progressive disclosure:
skills/youtube/
├── SKILL.md 128 lines — routing, credit discipline, workflows
└── references/
├── mcp-tools.md full parameter reference for the 6 hosted tools
├── rest-api.md REST fallback — endpoints, curl, validation rules
├── auth-setup.md getting and persisting an API key
└── errors.md error codes, retry policy, false alarms
Only name + description (~100 tokens) load at startup; the body loads on
activation; references load on demand. SKILL.md is 128 lines against the spec's
500-line recommendation, and every reference is one level deep as required.
Kept both data paths in the one skill. Step 1 of SKILL.md has the agent detect
whether the bundled MCP tools are present and use them (OAuth, no key), or fall
back to REST with TRANSCRIPT_API_KEY when a client loads skills but not MCP
servers — §6 permits a conformant client to implement only one component type,
so that fallback is load-bearing, not decorative. It also explicitly forbids
falling back to REST on an MCP *auth* failure, which would otherwise turn "click
sign in" into "paste an API key".
Named `youtube`, not `youtube-full`: the "-full" suffix existed only to
distinguish scope among 12 siblings. With one skill it implies a
"youtube-partial" that does not exist.
Bumped to 1.1.0 across all manifests and updated the README, which advertised
13 skills and a `--skill youtube-full` install flag that no longer resolves.
Verified: ajv `valid` for both manifests; `skills-ref validate` passes 1/1;
check_conformance.py 11/11; description 732/1024, compatibility 191/500; all
four references/ links resolve; all JSON and YAML parse; no stale references to
the removed skills anywhere in the repo.
Co-Authored-By: CRHQ <noreply@crhq.ai>
Removes the 12 granular skills. One youtube skill now covers everything.
Why
The 12 were alias variants of one another — inherited from youtube-skills, where they're distributed as independent installs and the overlap is the point (you install transcript, you get a small focused context).
Bundled into one plugin that inverts. Agent Skills loads every name + description at startup, so thirteen near-identical descriptions all competed for the same triggers. That made skill selection worse, not better, and cost ~13× the startup context for one capability.
Structure — per the Agent Skills spec
skills/youtube/ ├── SKILL.md 128 lines — routing, credit discipline, workflows └── references/ ├── mcp-tools.md full parameter reference for the 6 hosted tools ├── rest-api.md REST fallback — endpoints, curl, validation rules ├── auth-setup.md getting and persisting an API key └── errors.md error codes, retry policy, false alarmsProgressive disclosure as specified: only name + description (~100 tokens) load at startup, the body loads on activation, references load on demand. SKILL.md is 128 lines against the spec's 500-line recommendation, and every reference is one level deep as required.
Both data paths kept
Step 1 of SKILL.md has the agent detect whether the bundled MCP tools are present and use them (OAuth, no key), or fall back to REST with TRANSCRIPT_API_KEY.
That fallback is load-bearing, not decorative: §6 permits a conformant client to implement only one component type, so a client can legitimately load the skill without the MCP server. The skill also explicitly forbids falling back to REST on an MCP auth failure — otherwise "click sign in" degrades into "paste an API key".
Naming
youtube, not youtube-full. The -full suffix existed only to distinguish scope among 12 siblings; with one skill it implies a youtube-partial that doesn't exist.
Also
Bumped to 1.1.0 across all manifests. Updated the README, which advertised 13 skills and a --skill youtube-full install flag that no longer resolves.
Verification
No stale references to the removed skills anywhere in the repo.
🤖 Generated with Claude Code