Public/Write-ClaudeHookBlock.ps1
|
function Write-ClaudeHookBlock { <# .SYNOPSIS Emits a top-level block decision for Stop, UserPromptSubmit, or PostToolUse hooks. .DESCRIPTION Convenience wrapper around Write-ClaudeHookResponse for the top-level decision:block shape. Use this (not Write-ClaudeHookDeny) for Stop, UserPromptSubmit, and PostToolUse events. For PreToolUse permission denial use Write-ClaudeHookDeny instead. .PARAMETER Reason Required explanation for the block shown to the user. .EXAMPLE # Block a Stop event to keep Claude running Write-ClaudeHookBlock -Reason 'Tests are still failing. Fix them before stopping.' Emits a top-level block decision for a Stop event, preventing Claude from stopping. .EXAMPLE # Block a prompt submission $hook = Read-ClaudeHookInput if ($hook.prompt -match 'delete production') { Write-ClaudeHookBlock -Reason 'Destructive production operations require manual review.' } Blocks a UserPromptSubmit event when the prompt contains a sensitive keyword. .OUTPUTS System.String .LINK about_ClaudeHooks #> [OutputType([string])] [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Reason ) Write-ClaudeHookResponse -Decision 'block' -Reason $Reason } |