data-storytelling
Pass
Audited by Gen Agent Trust Hub on Oct 19, 2026
Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTIONEXTERNAL_DOWNLOADS
Full Analysis
- [COMMAND_EXECUTION]: The script
scripts/validate_js.pyusessubprocess.runto invoke thenode --checkcommand. This is a static analysis feature used to verify the syntax of generated JavaScript fragments before delivery. Because it uses the--checkflag, Node.js parses the script for syntax errors without executing any logic, significantly limiting risk. - [DYNAMIC_EXECUTION]: The script
build-html/scripts/prepare_story_head.pyutilizesimportlib.utilto dynamically load local utility modules (embed_css.pyandpreset_resolver.py). This is a controlled internal mechanism used for build-time configuration and does not involve loading untrusted or remote code. - [INDIRECT_PROMPT_INJECTION]: As a data processing tool, the skill ingests external datasets (
dataset_map.json) and user-provided story plans. To mitigate the risk of malicious data being used to inject scripts into the output, the skill implements a strict security gate inscripts/normalize_story_assets.py. This validator blocks<script>tags,on*event handlers,javascript:URLs, andforeignObjecttags in SVG assets. Additionally,scripts/compose_story.pyuseshtml.escapefor text interpolation. - [EXTERNAL_DOWNLOADS]: The generated output references visualization and animation libraries from the official VisActor and GSAP repositories via
unpkg.com. These are well-known, established services used for legitimate visualization tasks and do not represent a data exfiltration or malware risk in this context.
Audit Metadata