stitch-extract-static-html

Pass

Audited by Gen Agent Trust Hub on Oct 7, 2026

Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
  • [COMMAND_EXECUTION]: The skill uses spawnSync in scripts/run.mjs to execute its internal TypeScript components using the tsx runtime resolved from the target project. This is a standard execution pattern for project-local tooling.
  • [EXTERNAL_DOWNLOADS]: The snapshot.ts and extract_inline_html.ts scripts fetch remote images and stylesheets to inline them into the static output. The implementation includes a robust SSRF protection layer in scripts/extract_inline_html.ts that validates DNS answers and blocks requests to non-public (local, reserved, or private) IP addresses.
  • [DYNAMIC_EXECUTION]: The skill employs dynamic loading techniques in several places:
  • scripts/project_dependencies.mjs resolves and requires dependencies like puppeteer and @babel/parser from the target project at runtime.
  • scripts/snapshot.ts allows users to provide an optional authentication script via the --auth-script flag, which is loaded using dynamic import() to perform interactions before page capture.
  • [INDIRECT_PROMPT_INJECTION]: The skill processes potentially untrusted data from local JSX files and external URLs. While this presents an indirect prompt injection surface, the risk is mitigated by:
  • Ingestion points: snapshot.ts (external URLs) and extract_inline_html.ts (local source files).
  • Boundary markers: Explicit instructions in SKILL.md and the Rules section that emphasize evidence-based reporting and prohibit data fabrication.
  • Capability inventory: The skill possesses file writing, network access (specifically for asset fetching), and subprocess execution capabilities.
  • Sanitization: Implementation of escapeHtml and escapeAttribute in scripts/extract_inline_html.ts and log sanitization via scripts/safe_diagnostics.ts to prevent credential leakage and injection.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 7, 2026, 08:17 AM