Context
Fresh adversarial review of PR #1496 proved that Taskdeck's repo-owned Claude deny layers cover Bash-command events only:
- the
.claude/settings.json PreToolUse matcher is Bash
scripts/agent_hooks/pre_tool_use.py returns immediately for tool names other than Bash / Shell
- the declarative deny rules are all
Bash(...)
Current native-Windows Claude Code exposes PowerShell as a distinct tool and permission surface. A native PowerShell(Remove-Item ... -Recurse -Force) call therefore bypasses both project deny layers even though an equivalent Bash payload is denied. This is pre-existing and was not introduced by #1496, but #1496's Windows launcher work made the boundary visible.
Scope
Design and stage the smallest reviewed T4-class change that covers native PowerShell command events without weakening the existing Bash union or duplicating policy unsafely. Coordinate with #1293 (Claude floor consolidation) and #1456/#1457 (Codex Bash adapter); do not conflate Bash-command coverage with whole-tool containment.
Acceptance criteria
Routing
Security/runway follow-up from PR #1496 review. Priority I, human-held. Refs #1293, #1456, and #1496.
Context
Fresh adversarial review of PR #1496 proved that Taskdeck's repo-owned Claude deny layers cover Bash-command events only:
.claude/settings.jsonPreToolUse matcher isBashscripts/agent_hooks/pre_tool_use.pyreturns immediately for tool names other thanBash/ShellBash(...)Current native-Windows Claude Code exposes
PowerShellas a distinct tool and permission surface. A nativePowerShell(Remove-Item ... -Recurse -Force)call therefore bypasses both project deny layers even though an equivalent Bash payload is denied. This is pre-existing and was not introduced by #1496, but #1496's Windows launcher work made the boundary visible.Scope
Design and stage the smallest reviewed T4-class change that covers native PowerShell command events without weakening the existing Bash union or duplicating policy unsafely. Coordinate with #1293 (Claude floor consolidation) and #1456/#1457 (Codex Bash adapter); do not conflate Bash-command coverage with whole-tool containment.
Acceptance criteria
PowerShellpayloads for every currently protected destructive class are denied at the project boundary, including representativeRemove-Item -Recurse -Forceand Git force/reset cases./hooksinventory and safe allow/deny canaries prove the exact reviewed head.Routing
Security/runway follow-up from PR #1496 review. Priority I, human-held. Refs #1293, #1456, and #1496.