skills/mathews-tom/armory/watch/Gen Agent Trust Hub

watch

Pass

Audited by Gen Agent Trust Hub on Oct 12, 2026

Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
  • [COMMAND_EXECUTION]: The skill executes external binaries such as ffmpeg, ffprobe, and yt-dlp to perform media processing and metadata extraction. These operations are performed using subprocess.run with list-based arguments, which prevents shell injection vulnerabilities as identified in the analysis of scripts/runtime.py and scripts/frames.py.\n- [EXTERNAL_DOWNLOADS]: To perform its primary function, the skill downloads media files and transcripts from remote sources like YouTube and other HTTP(S) URLs. Additionally, it contains an opt-in script (scripts/setup_speech.py) for provisioning a local speech-to-text environment, which involves downloading the whisperx library and associated models from Hugging Face. These downloads target well-known services and are core to the skill's purpose.\n- [INDIRECT_PROMPT_INJECTION]: The skill ingests user-controlled content from external URLs (video titles, descriptions, and transcripts). Mitigations include explicit instructions to the AI agent to treat all evidence as untrusted and technical controls such as stripping HTML tags and control characters from ingested text. Ingestion points: scripts/sources.py (transcripts, metadata), scripts/frames.py (video frames), scripts/speech.py (transcription). Boundary markers: Warnings in SKILL.md and references/analysis-patterns.md; inline_code wrapper used in scripts/watch.py. Capability inventory: scripts/runtime.py provides subprocess execution for ffmpeg, ffprobe, yt-dlp. Sanitization: scripts/sources.py uses _clean_text (strips tags, zero-width characters); scripts/utils.py uses inline_code (strips control characters, escapes backticks).\n- [DYNAMIC_EXECUTION]: The scripts/whisperx_runner.py script utilizes importlib.import_module to load the whisperx library. This dynamic loading is used to ensure that environment variables (like disabling telemetry) are set before the library and its heavy dependencies are initialized and is not controlled by user input.\n- [SAFE_PRACTICES]: The skill implements several advanced security measures: it enforces a strict work-directory boundary for downloads, checks for and rejects symlinks to prevent file system breakouts in scripts/sources.py, and uses the --ignore-config flag with yt-dlp to avoid leaking ambient environment configurations or credentials.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 12, 2026, 09:21 AM