Add commands/watch.md so /watch is callable via Claude Code plugin

Claude Code plugins expose slash commands from commands/*.md; the root
SKILL.md alone isn't discovered. Thin shim delegates to the existing
skill contract. Strip commands/ from the claude.ai .skill bundle since
that surface uses SKILL.md directly. Bumped to 0.1.1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
bradautomates
2026-04-24 14:54:54 +10:00
parent 29b8a2988a
commit 26cfa5ca34
4 changed files with 21 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "watch", "name": "watch",
"version": "0.1.0", "version": "0.1.1",
"description": "Let Claude watch a video. Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls captions or falls back to Whisper, and hands frames + transcript to Claude so it can answer questions about the video.", "description": "Let Claude watch a video. Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls captions or falls back to Whisper, and hands frames + transcript to Claude so it can answer questions about the video.",
"author": { "author": {
"name": "Bradley Bonanno" "name": "Bradley Bonanno"
+6
View File
@@ -2,6 +2,12 @@
All notable changes to `/watch` are documented here. All notable changes to `/watch` are documented here.
## [0.1.1] — 2026-04-24
### Fixed
- Added `commands/watch.md` shim so `/watch` is callable when installed as a Claude Code plugin. Without it, the plugin loaded but the skill wasn't exposed as a slash command.
- `scripts/build-skill.sh` now strips `commands/` from the claude.ai `.skill` bundle alongside `hooks/` and `.claude-plugin/`.
## [0.1.0] — 2026-04-24 ## [0.1.0] — 2026-04-24
Initial marketplace release. Initial marketplace release.
+9
View File
@@ -0,0 +1,9 @@
---
description: Watch a video (URL or local path). Downloads with yt-dlp, extracts frames with ffmpeg, transcribes from captions or Whisper, and answers questions about what's in the video.
argument-hint: <video-url-or-path> [question]
allowed-tools: [Bash, Read, AskUserQuestion]
---
Invoke the `watch` skill (defined in SKILL.md) with the user's arguments: $ARGUMENTS
Follow the skill's full pipeline: preflight setup check → download via yt-dlp → extract frames at auto-scaled fps → pull captions or Whisper transcript → Read each frame → answer the user grounded in frames and transcript. If the user provided no arguments, ask them for a video URL or local path before proceeding.
+5 -3
View File
@@ -21,11 +21,13 @@ OUT="dist/watch.skill"
git archive --format=zip --prefix=watch/ --output="$OUT" HEAD git archive --format=zip --prefix=watch/ --output="$OUT" HEAD
# claude.ai's .skill bundle needs only SKILL.md + scripts/ runtime. Claude Code # claude.ai's .skill bundle needs only SKILL.md + scripts/ runtime. Claude Code
# needs hooks/ and .claude-plugin/ in the git archive (that's why they are NOT # needs hooks/, commands/, and .claude-plugin/ in the git archive (that's why
# in .gitattributes export-ignore), but the .skill bundle should strip them to # they are NOT in .gitattributes export-ignore), but the .skill bundle should
# keep a single canonical SKILL.md and stay well under the 200-file cap. # strip them to keep a single canonical SKILL.md and stay well under the
# 200-file cap.
zip -d "$OUT" \ zip -d "$OUT" \
"watch/hooks/*" \ "watch/hooks/*" \
"watch/commands/*" \
"watch/.claude-plugin/*" \ "watch/.claude-plugin/*" \
> /dev/null 2>&1 || true > /dev/null 2>&1 || true