What's new in rule pack 2026.11.2
Updates - released 2026-10-29 for kit 0.1.1
This pack is about the shell guard, the hook that stops an agent running something you would regret. The old guard read a command one line at a time, so a delete hidden in a subshell, a loop or an ssh payload could slip past, and a harmless command built from variables often asked for no reason. The new reader understands the command the way your shell will run it.
Who it helps
- You let Claude Code or Codex run shell commands on a machine you care about.
- You found the guard asking about safe commands often enough that you turned it off or stopped reading the asks.
- Your agents work over ssh, wsl or docker exec, or write long one-line commands with substitutions and heredocs.
What changed
One command reader
A new hooks/guard-core.mjs replaces the old parser. It reads subshells, loops, $( ) substitutions, PowerShell quoting and variables set earlier in the same command, and looks inside ssh, wsl, docker exec, kubectl exec and heredoc payloads.
More real slips caught
find -delete, robocopy /MIR, rsync --delete, a piped Remove-Item, git worktree remove and [IO.Directory]::Delete are judged like rm -r. Disk wipes and database drops inside an ssh payload ask, and deleting a folder directly in your home folder asks too.
Fewer false alarms
A delete through a variable set earlier in the same command is judged by its real target, and a commit whose message file is written by the same command no longer trips the guard. Across about 70,000 real commands this drops roughly 220 needless asks.
Closer reading where it matters
Commit attribution is caught in messages built by $( ), a bare > file into a read-only path is denied, LEFTHOOK=0 or HUSKY=0 on its own is refused, and doas and npm's .cmd and .ps1 shims are judged like any other command.
Clearer reasons
Every ask names the rule that matched, for example recursive delete: rm -r: /home/you is a protected root. The hook suite grows from 340 to 362 tests, and it is still plain Node 18 with no npm install.
How to apply it
- Apply 2026.11.1 first if you skipped it, then back up or commit your kit folder.
- Download the pack with your updates licence key (GET /v1/updates lists it) and follow PACK.md inside it: copy the changed hook files over yours, merging any you edited, and delete
hooks/shell-parser.mjs. - Keep
hooks.modeatlogfor a few days and read~/.commonrig/logs/hooks.jsonlfor new asks before enforcing again. - Run
node hooks/tests/run-tests.mjsfrom the kit root.
Rule packs come with an updates plan, and the kit includes three months of updates. How updates work.