graphify
Warn
Audited by Gen Agent Trust Hub on Oct 10, 2026
Risk Level: MEDIUMPERSISTENCECOMMAND_EXECUTIONDYNAMIC_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTIONMETADATA_POISONING
Full Analysis
- [PERSISTENCE]: The
hooks.pyfile contains logic to install gitpost-commitandpost-checkouthooks. These hooks are designed to execute background Python processes (nohup $GRAPHIFY_PYTHON -c ... & disown) every time a commit or branch switch occurs, which ensures the tool's logic runs automatically without explicit user invocation. - [COMMAND_EXECUTION]: The tool relies heavily on
subprocess.run()to interface with system utilities and external CLI tools. Affected modules includeprs.py(calling GitHub CLIgh),google_workspace.py(calling Google Workspace CLIgws),llm.py(calling Claude Codeclaude), andhooks.py/__main__.py(callinggitandpython). - [DYNAMIC_EXECUTION]:
__init__.pyandextract.pyutilizeimportlib.import_module()to lazily load language-specific extractors and heavy dependencies. This pattern allows for the dynamic loading of code based on the files being processed. - [EXTERNAL_DOWNLOADS]: The
SKILL.mdinstructions for various platforms (Claude, Codex, Aider, etc.) include commands to install thegraphifyypackage from PyPI (pip install graphifyy) if it is not already present in the environment. - [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted data from local files and remote URLs (via
ingest.py). Whilellm.pyuses boundary markers (=== {rel} ===) andsecurity.pyprovides sanitization for labels, the tool has the capability to write files and execute shell commands based on its analysis of this untrusted content, creating an attack surface for indirect injection. - [METADATA_POISONING]: The skill metadata in
.openskills.jsonand internal source references point to the 'safishamsi' GitHub organization and the 'graphifyy' package name, which does not align with the designating vendor 'skeletorflet' provided in the analysis context.
Audit Metadata