character-refs

Pass

Audited by Gen Agent Trust Hub on Oct 14, 2026

Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
  • [COMMAND_EXECUTION]: The skill uses node:child_process.spawnSync in scripts/models.mjs to execute shell commands. This is used for discovering local binaries (e.g., codex) and running the user-configured image generation tools.
  • [DYNAMIC_EXECUTION]: The customGenerate function in scripts/models.mjs assembles shell commands based on user-defined templates stored in config.local.json. These templates use placeholders (e.g., {prompt_file}, {refs}) that are populated at runtime. While the skill implements a quoteShellArg function to sanitize arguments against shell injection, the template itself is a dynamic execution vector.
  • [INDIRECT_PROMPT_INJECTION]: The skill processes character descriptions provided in intake.json and interpolates them into complex prompts for external image generation models.
  • Ingestion points: Character descriptions in intake.json (identity, face, hair, outfit fields).
  • Boundary markers: The skill does not currently use explicit boundary markers or "ignore embedded instructions" warnings for the user-supplied fields within the constructed prompts.
  • Capability inventory: The skill uses fetch for network API calls and spawnSync for local subprocess execution.
  • Sanitization: The skill performs basic checks to ensure character descriptions do not contain style-related "buzzwords" or the character's own name, but it does not sanitize against potential prompt injection content.
  • [CREDENTIALS_UNSAFE]: The skill manages sensitive API keys and passwords for OpenAI and ComfyUI. It follows the standard safe practice of reading these credentials from environment variables or local .env files. The maskConfig function in scripts/models.mjs ensures that credentials are obfuscated when the configuration is displayed to the user.
Audit Metadata
Risk Level
SAFE
Analyzed
Oct 14, 2026, 06:31 AM