Skip to content

docs(skills): make watch description state when to invoke - #154

Open
thomaswillner wants to merge 3 commits into
bradautomates:mainfrom
thomaswillner:skill-description-triggers
Open

thomaswillner wants to merge 3 commits into
bradautomates:mainfrom
thomaswillner:skill-description-triggers

Conversation

@thomaswillner

Copy link
Copy Markdown

The watch skill description currently spends most of its length on implementation mechanism — yt-dlp, ffmpeg, the Whisper fallback — rather than on when an agent should invoke it.

Per the Agent Skills specification, the description is the only thing an agent sees before deciding whether to load a skill. Naming the tooling does not help that decision; naming the user intents does. The mechanism is already documented in the skill body, which loads on invoke.

Before

description: Watch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.

After

description: Watch a video from a URL or local path and answer questions about its content. Use when the user shares a video and asks what is in it, wants it summarised, or asks about something shown or said on screen.

Shorter, and it now lists the distinct intents that should trigger it. One line changed; no behavioural change.

@frinsen

frinsen commented Sep 21, 2026

Copy link
Copy Markdown

Thanks @thomaswillner — this is in the community fork frinsen/claude-video (main, after v0.3.0): merged as authored — the description now says when to invoke, which is what hosts match on.

You're credited in AUTHORS.md; the disposition of every open upstream PR is in UPSTREAM.md, and the whole set is offered back here in #237.

thomaswillner and others added 2 commits September 25, 2026 01:51
Conflict was the whole frontmatter block of skills/watch/SKILL.md, where both
sides changed adjacent lines. Kept both intents:

- upstream's version bump 0.2.0 -> 0.3.0. This is load-bearing, not cosmetic:
  test_release_versions_match_canonical_skill asserts SKILL.md's version equals
  the version in .claude-plugin/plugin.json and .codex-plugin/plugin.json, both
  of which are already 0.3.0 on main.
- this branch's description, which states WHEN to invoke the skill rather than
  restating its mechanism. That is the entire point of the PR.

The gemini/WhisperX capabilities upstream added to the description are not lost:
they are documented at length in the body (23 references), which merged cleanly
and is where test_skill_documents_and_bundles_the_gemini_engine looks for them.
Keeping them out of the description is the change under review, not an omission.

Verified: no conflict markers repo-wide; frontmatter parses as YAML (description
205 chars, spec max 1024); net diff against upstream/main is the single
description line; both tests that read SKILL.md pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
main advanced twice since the last merge (de8b5b5 -> 7f288b4). The relevant
commit is 4576273, "keep SKILL.md frontmatter within the Agent Skills spec",
which restructured the frontmatter: top-level version, argument-hint, homepage,
repository, author and user-invocable were dropped, version moved under
metadata, and a new test now asserts the top-level key set is a subset of
name/description/license/allowed-tools/metadata/compatibility.

That restructure left the description untouched, so this PR is not superseded --
but the previous resolution's top-level version key no longer exists upstream.
Resolution therefore takes upstream's frontmatter shape wholesale and applies
only this branch's description to it.

Verified against the tests as they now stand, not as they were:
- top-level keys are {allowed-tools, description, license, metadata, name},
  a subset of the allowlist
- metadata.version 0.3.1 matches both .claude-plugin and .codex-plugin
  plugin.json (the version regex is now indented for metadata)
- the gemini needles still resolve in the body
- description 205 chars, spec max 1024
- no conflict markers repo-wide; net diff against upstream/main is the single
  description line

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants