asd-ste100
Pass
Audited by Gen Agent Trust Hub on Aug 27, 2026
Risk Level: SAFECOMMAND_EXECUTIONPERSISTENCEINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [COMMAND_EXECUTION]: The hook scripts (
hooks/ste-gate.py,hooks/ste-pregate.py, andhooks/ste-refresh.py) utilize thesubprocess.runfunction to execute a local linter script (scripts/ste-lint.py). The scripts resolve the path to the linter dynamically, looking within the skill's relative directory or at the standard installation path in the user's home directory. - [PERSISTENCE]: The
install.pyscript automates the registration of hooks and output styles by modifying the agent's local configuration file (~/.claude/settings.json). It also creates symbolic links within the user's home directory to manage the skill's persistence and integration across different agent sessions. - [INDIRECT_PROMPT_INJECTION]: The skill possesses an attack surface for indirect prompt injection as it ingests and processes data that may contain untrusted content.
- Ingestion points: The
PostToolUsehook (ste-refresh.py) reads markdown files written by the agent; thePreToolUsehook (ste-pregate.py) reads command-line inputs (e.g., git commit messages); and theStophook (ste-gate.py) reads the agent's interaction transcript. - Boundary markers: The linter results and feedback are injected into the agent's context using specific XML-like tags such as
<asd-ste100-feedback>and<asd-ste100-standing-rule>. - Capability inventory: The skill has the ability to read local files, manage state in
~/.claude/ste-gate, and execute its own Python-based linter. - Sanitization: The scripts employ a
strip_noisefunction to remove URLs and markdown table rows from the text before processing, and theste-lint.pyscript is designed to ignore code blocks to avoid false positives and noise. - [DYNAMIC_EXECUTION]: The skill performs dynamic execution by locating the current Python interpreter at runtime (
sys.executable) to run its internal linter script against the text being processed.
Audit Metadata