make-diagram

Pass

Audited by Gen Agent Trust Hub on Oct 26, 2026

Risk Level: SAFEOBFUSCATIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTION
Full Analysis
  • [OBFUSCATION]: Static analysis hints flagged the presence of special Unicode characters (Zero-Width Joiner, Variation Selector, and separators) in scripts/lib/emoji.mjs and scripts/lib/viewer.mjs.
  • Investigation confirms these characters are utilized for their legitimate functional purposes: the ZWJ and Variation Selector characters are necessary for the skill's logic that parses and validates emoji graphemes. The line and paragraph separators (U+2028, U+2029) are correctly used in jsonForScript() as part of a sanitization process to ensure that JSON data can be safely embedded within HTML <script> tags without breaking syntax or introducing vulnerabilities. These are defensive security measures rather than malicious obfuscation.
  • [EXTERNAL_DOWNLOADS]: The scripts/doctor.mjs utility, referenced in the skill instructions, identifies and installs necessary system dependencies like playwright (for browser-based checks), ffmpeg (for video rendering), and Node.js packages.
  • These installations target well-known and trusted services (NPM, official package managers like Homebrew or Winget, and official browser binaries). The skill provides transparency by requiring user consent before performing these actions and offering manual command instructions for every requirement.
  • [INDIRECT_PROMPT_INJECTION]: The skill processes user-supplied or agent-generated JSON data to build HTML artifacts, creating a potential surface for injection if instructions are embedded in diagram labels.
  • Ingestion points: Data enters the system through the diagram.json spec file.
  • Boundary markers: The system uses a strict JSON schema enforced by the Ajv validator, which ensures that only expected fields and data types are accepted.
  • Capability inventory: The skill can perform file system writes (writing the final HTML) and execute shell commands for setup (via doctor.mjs). The resulting diagram pages are designed to be purely offline.
  • Sanitization: The skill implements multi-layered sanitization. All text strings reaching the SVG or HTML output are processed through esc(), which converts special characters to safe HTML entities. Furthermore, the generated artifacts include a strict CSP (default-src 'none') that blocks all network requests and unauthorized script execution, significantly mitigating the impact of any potential injection.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 26, 2026, 04:57 PM