Chock.sh Build your plugin

Policies

Review Values That Look Like Secrets

Review Values That Look Like Secrets: what it does, its label on each agent, what it misses, and examples.

Catalog policy scan-secrets-entropy, version 0.1.4, labelled asks on Claude Code.

What it does

Friction, not a security boundary: asks a person before a write adds secrets scan-secrets misses -- high-entropy values (16-150 chars) by secret-like keys, GitHub/npm tokens with valid checksums, Stripe test keys, Slack/AWS key-id shapes, Luhn-valid cards. Asks a person (HP01 entropy is a heuristic, so it asks rather than blocks). Misses: values split across lines, over 150 chars, cut by # or & when unquoted, under other key names, written like code (a.b(), ALL_CAPS, words, URLs, paths), wrapped in a call, parens or concatenation, in XML, or padded with control characters.

On each agent

AgentLabelWhat it does there
Claude CodeAsksAsks on an agent's file writes and at turn end
CursorBlocksRefuses an agent's file writes and refuses at turn end, because this client cannot prompt at either point
CodexBlocksRefuses an agent's file writes and refuses at turn end, because this client cannot prompt at either point. If the hook errors, the action goes through (not witnessed; the vendor's row is only partly live-run)
GitHub CopilotBlocksRefuses at turn end only, because this client cannot prompt there. 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)
DevinBlocksRefuses at turn end only, because this client cannot prompt there. It does not check a file write when it happens. If the hook errors, the action goes through (vendor docs only, not witnessed)
GrokNot gradedNot graded yet for Grok
gooseNot gradedNot graded yet for goose
AntigravityNot gradedNot graded yet for Antigravity
OpenHandsNot gradedNot graded yet for OpenHands
Kimi CodeNot gradedNot graded yet for Kimi Code
Factory DroidNot gradedNot graded yet for Factory Droid

What it misses

Values split across lines, over 150 chars, cut by # or & when unquoted, under other key names, written like code (a.b(), ALL_CAPS, words, URLs, paths), wrapped in a call, parens or concatenation, in XML, or padded with control characters.

Examples from its eval suite

Asks: A JSON config gains a client secret no vendor pattern names, as a quoted-colon pair.

Allowed: A config assigns a UUID to a service key.

More

Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.