cinematic-reel — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cinematic-reel (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
End-to-end for a SINGLE scenic source clip (sunset, landscape, b-roll, drone, Osmo Pocket). Output: vertical 9:16 cinematic cut with title/chapter cards + optional VO/BGM, then optional multi-platform GHL scheduling. Single ffmpeg pass.
Not for: talking-head/script reels (→ reel-studio), landscape screencast promos (→ demo-promo), static social cards (→ social-stack).
ffprobe the source (res/fps/duration). Then extract frames across the timeline and eyeball them — card text must match what's actually on screen. Numeric/agent color analysis lies (auto-exposure, artificial lights). See references/pipeline-notes.md.
ffmpeg -ss <t> -i SRC -frames:v 1 -q:v 3 frame_<t>.jpgBuild a reel.config.json (schema in scripts/build_cut.py header). Snap card t_in to the BGM beat grid; card at VO handoff, one before the ~50% drop-off, ~50-60s cadence. Then:
python -u <skill>/scripts/build_cut.py reel.config.jsonencoder:"auto" tries h264_nvenc and falls back to libx264 if the GPU driver is too old. Audio comes out 48kHz stereo, loudnorm ~-14.
Probe streams (expect h264 WxH, aac 48000 stereo). Re-extract frames at each card t_in and confirm the overlay fired over the right image. Check loudness: ffmpeg -i OUT -af ebur128=framelog=quiet -f null -.
mcp__ghl__locations_get-location → confirm timezone (e.g. Asia/Karachi +05:00).mcp__ghl__social-media-posting_get-account → account IDs (cached in references/ghl-accounts.md).schedule.config.json (one entry per platform, each with its OWN human caption + hashtags),then python <skill>/scripts/make_schedule_plan.py schedule.config.json to get the exact payloads.
mcp__ghl__social-media-posting_create-post. Same-platform accounts batch inone call; different captions = separate calls.
Different hook + different hashtag set per platform. Humanizer rules: no em-dash spam, contractions, varied sentence length, real specifics. Travel/personal = NO agency pitch; handle @yourhandle. Hooks by platform: FB = nostalgia + reciprocity question · IG = identity/FOMO + save-bait · TikTok = POV + curiosity gap · YouTube = curiosity + completion · LinkedIn = reflection + universal lesson.
scripts/build_cut.py — single-pass render, config-driven, NVENC auto-fallback.scripts/make_schedule_plan.py — offline builder for the staggered GHL create-post payloads.references/pipeline-notes.md — the gotchas (read before debugging).references/ghl-accounts.md — your account ID map + per-platform create-post rules.assets/fonts/ — impact.ttf, arialbd.ttf.<repo>/sunset-reel-2026-05-27/ (60s + 4min cuts, PUBLISH-PACKAGE.md).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.