[Improvement] Remove the `find /` advisory from the Bash tool description

Resolved 💬 1 comment Opened May 6, 2026 by jayenashar Closed Jun 4, 2026

What

The Bash tool description in the Claude Code system prompt currently includes:

When running find, search from . (or a specific path), not / — scanning the full filesystem can exhaust system resources on large trees.

I'd like to suggest removing this line.

Why

1. Empirically, Claude ignores it. Searching my own session transcripts I found Claude reaching for find / regularly when hunting for a file whose location is unknown — find / -name phela-fix.sh, find / -name 'qmllint*', find / -name "*slack_cdp*", etc. The advisory in the prompt didn't change behavior; the model treats "this file could be anywhere" as "search from /" rather than narrowing to a likely root or asking.

2. The actual cost of find / is high enough that "a soft rule the model ignores" is worse than no rule. Best case is minutes; with a spinning HDD or a network mount it's hours; with a bind loop it never terminates. A guideline in the system prompt that the model routinely violates gives users false confidence that the situation is handled, which makes them less likely to install the deterministic protection they actually need.

3. The model is not a reliable enforcer of soft prompt rules — anything that actually matters needs a hook. This is the meta-point and the reason this issue is worth filing rather than chalking up to "model didn't obey one line". Prompt rules compete with each other, with training priors (be helpful, complete the task), and with the model's underweighting of worst-case costs framed as hedges ("can exhaust system resources on large trees" reads as "only matters on big systems"). Which rules a given model honors is an emergent property of training, not something the prompt can guarantee. Treating the system prompt as best-effort guidance and pushing real safety into hooks is the right architecture; leaving soft rules in the prompt as if they were enforcement muddles that line.

4. Users who want this enforced have a better tool. A PreToolUse Bash hook is two dozen lines of bash, runs deterministically, and produces a refusal the model can act on. I just wrote one — happy to share if useful.

5. Soft rules in the system prompt that the model routinely violates are token waste with negative signal value. They train users to assume the prompt enforces things it doesn't.

Suggested change

Delete the line. If there's appetite, replace it with one example of the good form (find . -name foo) elsewhere in the prompt — concrete examples of what to do tend to beat negations of what not to do.

The deterministic version (refusal hook) belongs in user/managed settings, not in the system prompt.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗