brutalist-product-promo

Pass

Audited by Gen Agent Trust Hub on Oct 26, 2026

Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
  • [COMMAND_EXECUTION]: The skill utilizes system-level utilities for media processing via the subprocess module. It invokes ffmpeg and ffprobe for video assembly and audio synchronization. Additionally, it uses chromium (or available Chrome binaries) with the --headless and --no-sandbox flags to rasterize SVG icons by rendering them in a temporary HTML environment and capturing screenshots.\n- [EXTERNAL_DOWNLOADS]: The engine performs network requests to fetch resources from trusted and well-known services:\n
  • Downloads SVG icons and registries from cdn.jsdelivr.net, thesvg.org, and raw.githubusercontent.com.\n
  • Interfaces with OpenAI's API (api.openai.com) for Text-to-Speech (TTS), audio transcription (Whisper), and image generation (DALL-E) based on user-provided configurations.\n- [INDIRECT_PROMPT_INJECTION]: The skill processes a user-supplied brief.json file which contains text for typography and prompts for image generation. This content is passed to external APIs and rendered into the video output. While this represents a surface for indirect prompt injection, it is a functional requirement for the skill's creative purpose.\n
  • Ingestion points: User-defined strings in brief.json (copy, asset prompts).\n
  • Boundary markers: None; strings are directly formatted into API f-string templates.\n
  • Capability inventory: File system writes, network requests to OpenAI/GitHub, and subprocess execution of FFmpeg/Chromium.\n
  • Sanitization: Standard Python string formatting is used without additional escaping for the generated prompts.\n- [DYNAMIC_EXECUTION]: The framework uses NumPy and Pillow to programmatically generate and manipulate video frames at runtime. Every frame is rendered as a deterministic function of the global timeline, ensuring consistency across renders.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 26, 2026, 10:19 AM