kit/plugins/social-media-tools/skills/share-video/SKILL.md
Creates platform-aware social copy and a card for YouTube or Vimeo videos. Fetches oEmbed metadata and screenshots a video card via Playwright. Use when asked to share a video on social media.
npx skillsauth add shawn-sandy/agentics share-videoInstall 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 |
ExitPlanMode is a deferred tool whose schema must be loaded before it can be called.
Use ToolSearch with select:ExitPlanMode first, then call ExitPlanMode. Both steps
happen silently with no user-visible output.
Error handling: If ExitPlanMode returns the exact error "You are not in plan mode", treat that as success — plan mode was already off. Do not abort or surface the error to the user; continue to the next step.
Run silently:
[ -n "${CLAUDE_PLUGIN_ROOT}" ] && [ -d "${CLAUDE_PLUGIN_ROOT}/templates" ] && \
echo "${CLAUDE_PLUGIN_ROOT}/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 | See Platform Options in $PLUGIN_DIR/references/platforms.md | 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" |
Read $PLUGIN_DIR/references/platforms.md for character limits, universal copy rules,
and Draft Copy — Standard Procedure.
For copy format and filled examples per platform, read the skill-local references/platforms.md
(adjacent to this SKILL.md).
{{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/share-video-card.html:
mkdir -p ~/.claude/tmp
TEMP_HTML=share-video-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.
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.
development
Generates a SOCIAL.md project sharing config by analyzing the codebase. Use when asked to set up social sharing preferences or create a SOCIAL.md file.
development
Explains how any project file, component, or concept works. Reads source files and synthesizes developer-friendly principles, social copy, and a dark-mode card. Use when asked 'how does X work' or 'explain X'.
development
Generate an HTML implementation-plan document. Produces a self-contained .html plan file with steps, acceptance criteria, and metadata. Use when the user asks to create a plan document, generate an HTML plan, or write a plan file — not for general planning questions.