[DOCS] `disableAllHooks` documentation does not reflect managed policy precedence

Resolved 💬 2 comments Opened Feb 19, 2026 by coygeek Closed Feb 20, 2026

Documentation Type

Incorrect/outdated documentation

Documentation Location

https://code.claude.com/docs/en/settings

Section/Topic

disableAllHooks setting description and hook disable guidance across hooks pages.

Current Documentation

The docs currently imply that disableAllHooks disables hooks globally:

disableAllHooks | Disable all hooks and any custom status line
To temporarily disable all hooks without removing them, set "disableAllHooks": true in your settings file...
...To disable all hooks at once, use the toggle at the bottom of the /hooks menu or set "disableAllHooks": true in your settings file.

What's Wrong or Missing?

In Claude Code v2.1.49, behavior changed so non-managed settings can no longer disable managed hooks set by policy.

Current docs still read as unconditional behavior, which is now inaccurate in managed environments.

Suggested Improvement

Update disableAllHooks docs to explain precedence clearly:

  • Managed hooks cannot be disabled by non-managed disableAllHooks settings.
  • Add a short precedence table showing managed vs user/project/local settings.
  • Clarify whether this affects only hook execution or also status line behavior.

Impact

High - Prevents users from using a feature

Additional Context

Affected Pages:

| Page | Line(s) | Context |
|------|---------|---------|
| https://code.claude.com/docs/en/settings | 152 | disableAllHooks described as disabling all hooks |
| https://code.claude.com/docs/en/hooks | 378 | Says disableAllHooks disables all hooks without managed-policy caveat |
| https://code.claude.com/docs/en/hooks-guide | 484 | Repeats unconditional disable guidance |

Total scope: 3 pages affected

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗