Policies
Block Risky Characters in File and Branch Names
Block Risky Characters in File and Branch Names: what it does, its label on each agent, what it misses, and examples.
Catalog policy refname-filename-metachar, version 0.1.5, labelled blocks on Claude Code.
What it does
Refuses names a shell, CI step or git can misread. Paths a change adds or renames into (commit, agent writes), and branches and tags pushed (pre-push), with command substitution, an IFS expansion, a backtick, ; & | < >, a double quote, a backslash, a control or bidi character, a base64-decode shape, a leading dash or trailing space or dot in a segment, or a '..' segment; a ref also with a full commit id's shape. A guard refuses git and file commands creating such names. No waiver. Friction, not a boundary.
On each agent
| Agent | Label | What it does there |
|---|---|---|
| Claude Code | Blocks | Refuses a matched shell command before it runs. Blocks on an agent's file writes and at turn end |
| Cursor | Blocks | Refuses a matched shell command before it runs. Blocks on an agent's file writes and at turn end |
| Codex | Blocks | Refuses a matched shell command before it runs. 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) |
| GitHub Copilot | Blocks | Refuses a matched shell command before it runs. 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) |
| Devin | Blocks | Refuses a matched shell command before it runs. 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) |
| Grok | Not graded | Not graded yet for Grok |
| goose | Not graded | Not graded yet for goose |
| Antigravity | Not graded | Not graded yet for Antigravity |
| OpenHands | Not graded | Not graded yet for OpenHands |
| Kimi Code | Not graded | Not graded yet for Kimi Code |
| Factory Droid | Not graded | Not graded yet for Factory Droid |
What it misses
This policy does not state what it misses.
Examples from its eval suite
Refused: A change adds a file whose name carries command substitution that decodes and runs a payload.
Allowed: A change adds ordinary source files.
More
Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.