studio-podcastgen

Pass

Audited by Gen Agent Trust Hub on Oct 26, 2026

Risk Level: SAFEINDIRECT_PROMPT_INJECTIONCOMMAND_EXECUTIONEXTERNAL_DOWNLOADSDYNAMIC_EXECUTION
Full Analysis
  • [INDIRECT_PROMPT_INJECTION]: The skill processes text from external files to generate narration, creating a potential attack surface for indirect instructions. \n- Ingestion points: The readPodcastSource function in scripts/lib/resolve.mjs reads content from files provided via the --source argument. \n- Boundary markers: No explicit delimiters or instructions are used to separate the narration text from potential embedded model instructions. \n- Capability inventory: The skill executes ffmpeg and ffprobe commands and writes results to the local filesystem and usage logs. \n- Sanitization: Input text undergoes basic whitespace cleaning via the clean function but lacks sanitization for escaping potential model instructions.\n- [COMMAND_EXECUTION]: The skill invokes external binaries for audio manipulation. The podcast.mjs script uses spawnSync to execute ffmpeg for silence generation and episode assembly, and ffprobe for duration verification.\n- [EXTERNAL_DOWNLOADS]: The skill fetches pricing and model data from an external API. scripts/lib/resolve.mjs performs a fetch request to https://openrouter.ai/api/v1/models to retrieve speech model information.\n- [DYNAMIC_EXECUTION]: The skill uses dynamic imports to load its internal toolchain modules. The load function in scripts/lib/resolve.mjs uses import() with computed paths to load configuration, provider, and schema modules from vendor-controlled sibling directories.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 26, 2026, 06:33 PM