painted-animation
Pass
Audited by Gen Agent Trust Hub on Sep 28, 2026
Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The skill executes external commands to handle video and audio processing.
- In
scripts/beat_grid.py,subprocess.runis used to invokeffmpegfor spectral analysis of audio files. - In
template/render.mjs,spawnis used to callffmpegfor encoding image sequences into MP4 videos andnodeto manage parallel worker processes. - These implementations use argument lists rather than shell strings, which is a safe practice that prevents shell injection attacks.
- [DYNAMIC_EXECUTION]: The animation engine uses
eval()intemplate/src/core.jswithin the headless Chrome environment. This is used to evaluate mathematical or helper-function expressions passed via the--crop-atcommand-line argument for camera tracking and review. Since this occurs in a sandboxed browser context driven by the user's agent, the security risk is minimal and serves a functional purpose. - [EXTERNAL_DOWNLOADS]: The skill manages several external dependencies and resources:
- The
scripts/new_project.shscript performs annpm installto downloadp5,p5.brush, andpuppeteer-corefrom the official NPM registry. - The
template/studio.htmlfile loads fonts fromfonts.googleapis.com(Google Fonts), a well-known and trusted service. - The
scripts/beat_grid.pydocumentation mentions a dependency onnumpyviapip. - [INDIRECT_PROMPT_INJECTION]: The skill handles untrusted external data which could serve as an attack surface for indirect prompt injection:
- Ingestion points: Song lyrics (text), LRC files (timings), and audio files provided by the user or fetched by the agent.
- Boundary markers: None explicitly defined in the prompts; the data is interpolated directly into JavaScript scene files (
src/karaoke.js). - Capability inventory: The skill can write files to the local system, execute
ffmpegcommands, and control a headless Chrome instance. - Sanitization: There is no explicit sanitization of lyric content before interpolation into the renderer's JavaScript context. However, the risk is mitigated by the fact that the resulting code is executed in a local development environment and typically reviewed by the agent before rendering.
- [FILE_SYSTEM_ACCESS]: The renderer (
render.mjs) manages extensive file system operations, including creating project directories, writing temporary JPEG/PNG frames, and outputting final MP4 videos. These operations are restricted to the project directory and the user-specified output paths.
Audit Metadata