---
id: block-hook-bypass-in-files
track: coding
version: 0.1.2
label: blocks
keyword: block
where: write turn-end
sha256: 6a64829bce5cd926cf6628869f64bc0b663eca4b849bb68fd5ada079f5a20896
source: https://github.com/open-coder-ai/chock-catalog/tree/1e60d211c1bb767152c6ab0167932da06ab3a10f/base/block-hook-bypass-in-files
catalog_ref: 1e60d211c1bb767152c6ab0167932da06ab3a10f
---

# Block Files That Skip Git Hooks

block-hook-bypass-in-files · version 0.1.2

Blocks — Blocks on an agent's file writes and at turn end. Chock adds friction. It is not a security boundary. 

In a git repo: at commit (Chock refuses the commit, locally and in CI.)



## What it does

Friction, not a security boundary: flags lines added to hook launchers and scripts that switch git hooks off -- the hook-skip option on a git commit/push/merge/am/rebase/pull, core.hooksPath set by git config or GIT_CONFIG_*, the husky, lefthook and pre-commit off-switch variables, a pre-commit, lefthook or husky (v8 and older) uninstall -- in .husky/, .githooks/, lefthook, package.json, Makefile, justfile, .envrc, *.sh. Blocks. Misses: split lines, -n.

## Its label on each agent

- Claude Code (tested): Blocks — Blocks on an agent's file writes and at turn end. Builder: /coding/builder/#client=claude-code&p=block-hook-bypass-in-files
- Cursor (tested): Blocks — Blocks on an agent's file writes and at turn end. Builder: /coding/builder/#client=cursor&p=block-hook-bypass-in-files
- Codex (tested): Blocks — Blocks on an agent's file writes and at turn end. If the hook errors, the action goes through (not witnessed; the vendor's row is only partly live-run). Builder: /coding/builder/#client=codex&p=block-hook-bypass-in-files
- GitHub Copilot (tested): Blocks — Blocks at turn end only. It does not check a file write when it happens. If the hook errors, the action goes through (not witnessed; the vendor's row is only partly live-run). Builder: /coding/builder/#client=copilot&p=block-hook-bypass-in-files
- Devin (tested): Blocks — Blocks at turn end only. It does not check a file write when it happens. If the hook errors, the action goes through (vendor docs only, not witnessed). Builder: /coding/builder/#client=devin&p=block-hook-bypass-in-files
- Grok (tested): Not graded yet for Grok. Builder: /coding/builder/#client=grok&p=block-hook-bypass-in-files
- goose (tested): Not graded yet for goose. Builder: /coding/builder/#client=goose&p=block-hook-bypass-in-files
- Antigravity (tested): Not graded yet for Antigravity. Builder: /coding/builder/#client=antigravity&p=block-hook-bypass-in-files
- OpenHands (untested): Not graded yet for OpenHands. Builder: /coding/builder/#client=openhands&p=block-hook-bypass-in-files
- Kimi Code (untested): Not graded yet for Kimi Code. Builder: /coding/builder/#client=kimi-code&p=block-hook-bypass-in-files
- Factory Droid (untested): Not graded yet for Factory Droid. Builder: /coding/builder/#client=factory-droid&p=block-hook-bypass-in-files

## What it misses

Split lines, -n.

## Examples

- Refused: A package.json prepare script points core.hooksPath at a directory of its own.
- Allowed: A hook script reads core.hooksPath to report where the hooks live.

## Latest change

0.1.2 · 2026-10-27 — Title wording only (IR-F40): "Block Hook Bypass In Files" is now "Block Files That Skip Git Hooks". The id, guard and tests are unchanged.

## Provenance

- Tested by 28 of 28 cases run automatically
- SHA-256: `6a64829bce5cd926cf6628869f64bc0b663eca4b849bb68fd5ada079f5a20896`
- Catalog commit: https://github.com/open-coder-ai/chock-catalog/commit/1e60d211c1bb767152c6ab0167932da06ab3a10f
- Source: https://github.com/open-coder-ai/chock-catalog/tree/1e60d211c1bb767152c6ab0167932da06ab3a10f/base/block-hook-bypass-in-files (catalog path `base/block-hook-bypass-in-files`)
- Presets: Git hygiene
- JSON: `/api/coding/policies/block-hook-bypass-in-files.json`
- Report a problem: https://chock.sh/report/?policy=block-hook-bypass-in-files&version=0.1.2&page=%2Fcoding%2Fpolicies%2Fblock-hook-bypass-in-files%2F
