Skills/ClawHub/ai-clipping-skill

ai-clipping-skill@1.0.0

CAUTION· install only

Publisher claims: "AI clipping for Whop and Content Rewards clipping campaigns, from the user's AI agent: turns a paid clipping campaign brief into a checked, numbered checklist (rates per platform, minimum payout, cap, required hashtags, @mentions, links, watermark or logo, bio, length, footage and its recency, audience and engagement rules, proof), flags brief text that asks to hide the ad and never follows it, cuts a distinct vertical clip per account with captions, a hook and the paid-partnership disclosure on screen (facecam-over-gameplay layout for streams), checks every clip against the brief and the platforms in code, shows one plan page with expected earnings, posts to the user's TikTok, Instagram Reels and YouTube Shorts accounts through WoopSocial after one yes, prints a submission sheet with each post's 30-minute deadline, and keeps one ledger and a proof log for payout claims. Use when someone says "clip this campaign", "I joined a clipping campaign", "make clips for this Whop campaign", "Content Rewards clips", "clip my stream for this campaign", "automate my clipping", "post my clips to all my accounts", "track my clip submissions" or "how much will my clips earn". Also for creators clipping their own content onto their own accounts. Standalone." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry ClawHubPublisher social-media-skills · publishing for 116 daysInstalls 36Last detonated 3 h ago

Coverage

Nothing executable in the bundle ran; the trace covers the install step only.
Tested
every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-15 and scored it 75/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; HTML comment carrying imperative instructions to the agent; HTML comment carrying imperative instructions to the agent. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 1 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.0sprocessscript backend runs setup only
0.0sprocessscript backend runs setup only
0.0sprocessno install scripts to re-run

Static findings

HIGH
Privileged sudo commandscripts/make_clips.py:102 · Privileged sudo command — agent may execute with elevated privileges"Linux: sudo apt install ffmpeg.")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionSKILL.md:36 · File type combined with upload action — agent may exfiltrate local data filesthe proof log next to it (`~/.ai-clipping/proof.csv`, one row per post and day, each naming itsFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
CRITICAL
HTML comment carrying imperative instructions to the agentexamples/orbit-campaign/by-hand/curse-names-shorts.md:1 · HTML comment carrying imperative instructions to the agentwritten by plan.py; it replaces this file on every runFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
CRITICAL
HTML comment carrying imperative instructions to the agentexamples/orbit-campaign/plan.md:1 · HTML comment carrying imperative instructions to the agentwritten by plan.py; it replaces this file on every runFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
HIGH
Privileged sudo commandscripts/transcribe.py:45 · Privileged sudo command — agent may execute with elevated privileges"Linux: sudo apt install ffmpeg (or your distro's package).")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Privileged sudo commandscripts/cliplib.py:257 · Privileged sudo command — agent may execute with elevated privileges"new terminal). Linux: sudo apt install ffmpeg")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Privileged sudo commandscripts/check_setup.py:34 · Privileged sudo command — agent may execute with elevated privileges"new terminal). Linux: sudo apt install ffmpeg")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionevals/evals.json:57 · File type combined with upload action — agent may exfiltrate local data files…with my sponsor.", "expected": "Same flow with the user's own brief; campaign.json with the sponsor as brand and the disclosure on; plan, yes, post, submission sheet only if a campaign needs links; never promises reach." }, …Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
File type combined with upload actionevals/evals.json:107 · File type combined with upload action — agent may exfiltrate local data files…r.", "expected": "Re-cuts clip-01, then plan.py --media refuses the old media.json entry because the file's fingerprint changed; uploads the new file, updates media.json with the new mediaId and sha256, and shows the plan for a new yes bef…Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST07
MEDIUM
File type combined with upload actionSKILL.md:208 · File type combined with upload action — agent may exfiltrate local data files3. `posts_create`, then at once `plan.py clipjob.json --posted requests/<name>.json <postId>`.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/transcribe.py:49 · Python subprocess execution detectedout = subprocess.run(["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/plan.py:13 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/plan.py clipjob.json --status status.json [<postId>]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/cliplib.py:263 · Python subprocess execution detectedr = subprocess.run(["ffmpeg", "-hide_banner", f"-{kind}"], capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/plan.py:9 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/plan.py clipjob.json --media media.json # fill in the uploaded mediaIds:Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionscripts/upload_parts.py:13 · File type combined with upload action — agent may exfiltrate local data filessession.json is the JSON returned by `media_uploads_create_session`, saved as it came back. ItFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/transcribe.py:181 · Python subprocess execution detectedreturn json.loads(subprocess.run(cmd, capture_output=True, text=True, check=True).stdout)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/transcribe.py:66 · Python subprocess execution detectedr = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace")Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/make_clips.py:910 · File type combined with upload action — agent may exfiltrate local data filesprint("next: write clipjob.json (one post per account) and run check_clips.py on it")Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionscripts/plan.py:18 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/plan.py clipjob.json --failed <job post id>Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionscripts/plan.py:16 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/plan.py clipjob.json --posted-by-hand <job post id> <post url> [--at TIME]Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/upload_parts.py:40 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/check_clips.py:4 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/check_clips.py clipjob.json # one line per post, then every problemFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/check_setup.py:27 · Python subprocess execution detectedout = subprocess.run(["ffmpeg", "-version"], capture_output=True, text=True).stdout.split("\n")[0]Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/cliplib.py:808 · File type combined with upload action — agent may exfiltrate local data files"""ledger.json: {"posts": {"<postId>|<account>": {...}}, "submissions": [{...}], "campaigns":Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionSKILL.md:216 · File type combined with upload action — agent may exfiltrate local data files`plan.py clipjob.json --failed <job post id> --checked`, plan again, new yes. A post stillFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/make_clips.py:380 · Python subprocess execution detectedsubprocess.run(["curl", "-sfL", FONT_URL + FONT_FILES[0], "-o", path], check=False)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/check_clips.py:23 · File type combined with upload action — agent may exfiltrate local data files(ledger.json); no moment posted again on the same account.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionSKILL.md:205 · File type combined with upload action — agent may exfiltrate local data files`plan.py clipjob.json --media media.json`. A clip cut again after its upload is refused: uploadFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
LOW
HTML comment carrying imperative instructions to the agentexamples/orbit-campaign/plan.html:2 · HTML comment carrying imperative instructions to the agent · informational: not an instruction filewritten by plan.py; it replaces this file on every runFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
File type combined with upload actionSKILL.md:210 · File type combined with upload action — agent may exfiltrate local data files`plan.py clipjob.json --status status.json <postId>`. This prints and saves `submit.md`: per postFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/transcribe.py:97 · Python subprocess execution detectedr = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace")Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/cliplib.py:306 · Python subprocess execution detectedr = subprocess.run(["ffprobe", "-v", "error", "-show_streams", "-show_format", "-of", "json", path],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/plan.py:11 · File type combined with upload action — agent may exfiltrate local data filespython3 scripts/plan.py clipjob.json --posted requests/<name>.json <postId>Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedscripts/make_clips.py:93 · Python subprocess execution detectedr = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace", **kw)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/transcribe.py:81 · Python subprocess execution detectedr = subprocess.run(cmd, capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05

Cost to the agent

Instructions loaded
≈4,690 tok
1 file · 42 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.

What would make this Verified

5 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim social-media-skills: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
  3. Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  4. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
  5. Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
Publish a new version to ClawHub, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim social-media-skillsPropose a patch to the maintainer