change-linter
Pass
Audited by Gen Agent Trust Hub on Sep 14, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [COMMAND_EXECUTION]: The
scripts/verify.pyscript executes various development tools includinggit,uv,ruff,mypy,pyright,ty, andpyrefly. The script mitigates risks by usingshutil.whichto resolve absolute paths for all executables and employingshell=Falsein allsubprocess.runcalls, which prevents shell-based command injection from file paths or other arguments. - [EXTERNAL_DOWNLOADS]: The skill allows the agent to install missing linting tools using the
uv tool installcommand. This behavior is documented inSKILL.mdas requiring explicit user consent, and the script only triggers these downloads if the--install-missingflag is passed. The tools being downloaded are standard, well-known Python developer utilities. - [INDIRECT_PROMPT_INJECTION]: The skill ingests untrusted data by running linters and type-checkers on Python and Shell files within the user's project repository. The output of these tools is then processed by the agent. A malicious file could potentially be crafted to produce linter output that attempts to influence the agent's logic.
- Ingestion points: The
scripts/verify.pyscript identifies changed files viagit statusandgit diff, and the actual content of these files is ingested by the various linting tools. - Boundary markers: The script uses standardized prefixes like
verify:and clear visual separators (e.g.,--- 失败: [tool] ---) to help the agent distinguish tool output from status reports. - Capability inventory: The script possesses the capability to execute any binary available in the system PATH and write to temporary directories for caching purposes.
- Sanitization: All external data (file paths) is treated as literal arguments to subprocesses with
shell=Falseto prevent interpretation by the shell. - [DYNAMIC_EXECUTION]: When the
rufftool is unavailable, the script usessys.executable -m py_compileto perform a basic syntax check. This involves the Python interpreter compiling source code into bytecode to verify correctness, which is a form of dynamic execution although the resulting bytecode is not run.
Audit Metadata