kit/plugins/social-media-tools/skills/video-share/SKILL.md
Creates social media copy and a card for a YouTube or Vimeo video. Formats video content for LinkedIn, Twitter, and Bluesky with platform-appropriate messaging. Use when asked to share a video or promote a talk on LinkedIn, Twitter, or Bluesky.
npx skillsauth add shawn-sandy/agentics video-shareInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Draft platform-aware social media copy and generate a styled dark-mode card image for a YouTube or Vimeo video URL.
| Phase | Action |
|-------|--------|
| 0 — Locate | Locate templates/ and derive PLUGIN_DIR |
| 1 — Collect Input | Auto-detect platform from URL; ask target social platform + angle |
| 1c — Reuse check | Scan docs/media/social/ for existing video posts; offer reuse |
| 2 — Fetch Metadata | oEmbed API for title/channel/thumbnail; fallback on 4xx |
| 3 — Draft Copy | Write platform-aware copy |
| 4 — Populate Template | Fill video-card.html; inject {{THUMBNAIL_ZONE}} + {{COPY_PANELS}} |
| 4b — Save | Persistent save to docs/media/social/ |
| 5 — Screenshot | Serve HTML locally; Playwright screenshot |
| 6 — Deliver | Present copy + attach PNG + show saved path |
Run silently:
ls ~/devbox/agentics/kit/plugins/social-media-tools/templates 2>/dev/null && \
echo "$HOME/devbox/agentics/kit/plugins/social-media-tools/templates"
find ~/.claude/plugins -path "*/social-media-tools/templates" -type d 2>/dev/null | head -1
find ~/.claude -path "*/social-media-tools/templates" -type d 2>/dev/null | head -1
Use the first non-empty result as TEMPLATES_DIR. Derive:
PLUGIN_DIR=$(dirname "$TEMPLATES_DIR")
If not found: output "Templates not found. Install the plugin or load it with --plugin-dir." and STOP.
Auto-detect the video platform from the URL:
youtube.com or youtu.be → YouTubevimeo.com → VimeoUse AskUserQuestion to collect whatever is missing. Batch all questions in one call:
| Input | Options | Notes |
|-------|---------|-------|
| VIDEO_URL | Any YouTube or Vimeo URL | Required |
| PLATFORM | LinkedIn, Twitter/X, Bluesky, All sites | Required |
| HOOK_ANGLE | Free text | Optional |
FILE_PREFIX=video
Read $PLUGIN_DIR/references/reuse-check.md and follow its procedure.
Use ToolSearch with select:WebFetch first (silent, no user output), then call WebFetch.
For API endpoints and 4xx fallback, read references/platforms.md.
WebFetch on https://www.youtube.com/oembed?url=VIDEO_URL&format=json — extract title, author_name, thumbnail_urlWebFetch on the original VIDEO_URL — extract og:description4xx: ask user for title and channel via AskUserQuestion. Set thumbnail_url = "".
WebFetch on https://vimeo.com/api/oembed.json?url=VIDEO_URL — extract title, author_name, thumbnail_url, description4xx: same fallback as YouTube.
| Variable | YouTube | Vimeo |
|----------|---------|-------|
| PLATFORM_COLOR | #ff0000 | #1ab7ea |
| PLATFORM_BADGE | "YouTube" | "Vimeo" |
| CTA | "▶ Watch on YouTube" | "▶ Watch on Vimeo" |
For character limits and universal copy rules, read $PLUGIN_DIR/references/platforms.md.
For copy format and filled examples per platform, read references/platforms.md.
Present the draft in a fenced code block labelled with the platform name. Wait for approval.
\n---\n as POST_COPY_TEXT_RAWLINKEDIN_COPY, TWITTER_COPY, BLUESKY_COPY){{THUMBNAIL_ZONE}}thumbnail_url is non-empty:
<div class="video-thumbnail"><img src="THUMBNAIL_URL" alt="Video thumbnail"><div class="play-overlay"><span class="play-icon">▶</span></div></div>
""DESCRIPTION_SNIPPETTruncate description to first 150 characters. If unavailable, use "".
HTML-escape VIDEO_TITLE, CHANNEL, DESCRIPTION_SNIPPET: & → &, < → <, > → >.
Read $PLUGIN_DIR/references/copy-panels.md for markup and escaping rules.
Replace all {{VARIABLE}} placeholders. Write to ~/.claude/tmp/video-share-card.html:
mkdir -p ~/.claude/tmp
TEMP_HTML=video-share-card.html
FILE_PREFIX=video
SLUG_INPUT=$VIDEO_TITLE
Read $PLUGIN_DIR/references/saving-and-delivery.md — Persistent Save section.
Read $PLUGIN_DIR/references/rendering-pipeline.md and follow the full pipeline.
Read $PLUGIN_DIR/references/saving-and-delivery.md — Deliver section.
development
Turns a React component into a social card with preview, code, and props table. Builds a static preview and screenshots react-card.html via Playwright. Use when asked to share a React component.
data-ai
Refine-prompt: interviews users and assembles a structured AI prompt using Anthropic best-practice techniques. Use when the user runs /plan-agent:refine-prompt or asks to refine a prompt.
development
Plan review Agent Team. Reviews HTML implementation plans in parallel, synthesizes findings, and applies improvements in place. Use when the user asks to review or improve an implementation plan.
data-ai
Craft-prompt: interviews users and assembles a structured AI prompt using Anthropic best-practice techniques. Use when the user runs /plan-agent:craft-prompt or asks to craft a prompt.