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:
@@ -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"
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user