{"version":"2.1.242","anchor":"a-broader-classifier-for-destructive-shell-commands","canonical_anchor":"a-broader-classifier-for-destructive-shell-commands","heading":"A broader classifier for destructive shell commands","tier":"soon","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/a-broader-classifier-for-destructive-shell-commands","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### A broader classifier for destructive shell commands\n\nA broader detector for destructive shell commands exists, but nothing visibly uses its verdict.\n\n**What**\n\nA new module scores Bash commands as destructive, covering cases that simple pattern matching misses, and recursing into `sh -c`, `eval` and backtick subcommands. It carries no flag of its own, and where its verdict is consumed is not visible in the added code, so it may not affect any prompt you see yet.\n\n**Details**\n\n- Flags `rm`, `git reset`, `clean`, `checkout`, `restore` and `stash` written with quoting or brace expansion, `git push` with force-like refspecs or `--delete`, `find -delete`, `shred`, `git clean -f` without a dry run, `xargs` and `-exec` wrappers around those, and `git -c alias.`.\n- Strips wrapper prefixes such as `sudo`, `env`, `nice`, `timeout`, `command` and `busybox`, splits pipelines while ignoring redirections and `VAR=` assignments, and re-checks nested commands up to a depth limit.\n- Input that is too long or nested too deeply is treated as risky by default.\n\n**Evidence**\n\n`\/(^|[;&|\\n(`][ \\t]*)shred\\s\/`\n\n- Area: Permissions\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}