Data Tools
A safe helper. Every potentially risky call is written the safe way, so neither the regex pass nor the AST pass flags it.
Step 0 — Validate
P="$1"
test -e "$P" || { echo "NOT_FOUND: $P"; exit 1; }
Step 1 — Run
python3 ~/.claude/skills/data-tools/scripts/safe.py "$P"
Why this passes audit (negative test for the AST pass)
scripts/safe.py uses the safe form of every pattern the AST pass watches:
subprocess.run(["ls", "-l"], timeout=10)— argument list, noshell=Truejson.loads(text)— notpickle/marshalyaml.safe_load(text)— notyaml.loadgetattr(obj, "name", None)— a literal attribute, not dynamic dispatch
Expected verdict: 🟢 GREEN, exit 0.