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.spawnSyncinscripts/models.mjsto execute shell commands. This is used for discovering local binaries (e.g.,codex) and running the user-configured image generation tools. - [DYNAMIC_EXECUTION]: The
customGeneratefunction inscripts/models.mjsassembles shell commands based on user-defined templates stored inconfig.local.json. These templates use placeholders (e.g.,{prompt_file},{refs}) that are populated at runtime. While the skill implements aquoteShellArgfunction 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.jsonand 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
fetchfor network API calls andspawnSyncfor 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
.envfiles. ThemaskConfigfunction inscripts/models.mjsensures that credentials are obfuscated when the configuration is displayed to the user.
Audit Metadata