analyze-reel — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analyze-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.
One command, IG URL in → full teardown out. Apify pulls the post, ffmpeg pulls frames, whisper.cpp transcribes the audio, the model reads it all and writes a structured breakdown to disk. No FAL, no generation — just analysis.
instagram.com/reel/<code> or instagram.com/p/<code>. Derive slug ig-<shortcode>.~/Desktop/STUDIO/post-analysis/ig-<shortcode>/. Create it. If it already exists with a populated analysis.md, ask Will whether to re-run or skip — never silently overwrite.mcp__apify__search-actors with query "instagram post detail" if the actor isn't already known. Prefer apify/instagram-scraper (handles single-URL detail scrapes). Call mcp__apify__fetch-actor-details to confirm input schema, then mcp__apify__call-actor with { "directUrls": [<url>], "resultsType": "details", "addParentData": false }. Wait for the result (sync). Pull: caption, hashtags, ownerUsername, ownerFullName, likesCount, commentsCount, videoViewCount, videoPlayCount, timestamp, videoUrl, displayUrl, productType, dimensions.metadata.json in the output dir.scripts/download_video.py <videoUrl> <out-dir>/video.mp4. Skip if file already present and >100KB.scripts/extract_frames.py <out-dir>/video.mp4 <out-dir>/_frames/. Outputs cover (0s), hook (1s), every 2s thereafter, plus the last frame. Also saves cover.png (frame at 0s) at the output root for convenience.~/Desktop/STUDIO/3-studio-master/skills/post-content/scripts/transcribe.py <out-dir>/video.mp4. Caches as video.mp4.transcript.txt alongside the video. Copy/symlink contents to transcript.txt in the output dir for cleanliness.metadata.json, transcript.txt, and view the frames from _frames/ directly (multimodal). Cap frames read at 12 — if more than 12 exist, sample evenly across duration so the first, last, and pacing transitions are covered.<out-dir>/analysis.md.# IG Reel Teardown — @<owner> · <shortcode>
**Posted:** <date>
**Views:** <n> · **Likes:** <n> · **Comments:** <n>
**Duration:** <seconds>s
**URL:** <original-url>
## 1. Hook (0-3s)
What the viewer sees and hears in the first 3 seconds. Quote the opening line of the transcript. Describe the cover frame. Why it stops the scroll (or doesn't).
## 2. Structure & pacing
Beat-by-beat. Use transcript timestamps if available, else describe the frame transitions. Note cut frequency, energy curve, where attention is reinforced or risked.
## 3. Visual language
Aesthetic, color palette, framing (talking-head / b-roll / text-on-screen / split-screen / etc.), typography if any, motion type. One short paragraph.
## 4. Audio & voice
Voiceover delivery, music presence, cuts in audio, sound design. If music is dominant, name the energy/genre. If voiceover, characterise tone (urgent / dry / conspiratorial / warm).
## 5. Caption strategy
Full caption verbatim in a quote block. Then: what role the caption plays (extends the hook / context-fills / CTA / standalone story). Hashtag count and category mix.
## 6. What's working
3-5 bullets. Specific, not generic. "Cuts every 1.2s on hard consonants" beats "good pacing."
## 7. Replicable patterns
3-5 bullets. Things Will could lift into his own content. Format: **<pattern name>** — <one-line how-to>.
## 8. Verdict (creator POV)
2-3 sentences. Would Will copy this? Where does it lose him? What's the single thing worth stealing?instagram.com/reel/<CODE>/ → shortcode = <CODE>instagram.com/p/<CODE>/ → shortcode = <CODE> (treat carousels/single-image posts the same — analysis still useful for caption + cover)?igsh=...) before extracting.apify/instagram-scraper (or whichever surfaces with the best rating on search-actors).fetch-actor-details first to read the current input schema. Don't guess field names.async: false).01_t0.0s.png, 02_t1.0s.png, 03_t3.0s.png, …/static-ads or /thumbnail.~/Obsidian/Inbox/parked/ or the relevant project.brew install whisper-cpp and stop. Don't fall back to a stub.brew install ffmpeg and stop.[no audio track] and skip section 4 in the analysis.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.