Originally created by: QY-25123
Pull Request
Slice
- Repo: doberman-core
- Feature / Slice: docs — warn about pip uninstall order for Claude Code hooks
- Plan reference: n/a (ad hoc doc fix, see [#372])
What this PR does
pip uninstall doberman-core has no way to also clean up the PreToolUse/PostToolUse/
SessionStart hook entries doberman install-hooks wrote into settings.json — pip doesn't
support a post-uninstall hook for this. If a user uninstalls without first running
doberman uninstall-hooks, every subsequent tool call in Claude Code fails with
doberman: command not found, indefinitely, since the stale entries still reference the binary.
This is a docs-only fix: it adds a clear warning + recovery instructions in the two places users
would look (README.md Quick Start, docs/SETUP.md hooks section). The recovery path itself
needs no new code — the existing hook entries are still correct, so simply reinstalling
(pip install doberman-core) makes them work again immediately.
Closes [#372].
Tests added (run in CI)
- None — docs-only change, no code paths touched.
Public-release safety (doberman-core only)
- [x] Contains nothing from the "not allowed" list: no enterprise/hosted code, no proprietary detection, no customer data, no secrets, no commercial-license code
- [x] Core still builds/tests/runs with NO enterprise package installed
Security checklist
- [x] Fails closed on error / uncertainty (unchanged — no code touched)
- [x] No secret, full file, or unredacted prompt logged or committed
- [x] Any guardrail/learning change is raise-only (no silent loosening) — n/a, no guardrail change
- [x] Every BLOCK/AUTH carries reason codes + a human explanation — n/a, no decision-path change
- [x] doberman-core does not import doberman_enterprise
Edge cases covered / Deviations from plan / Risks introduced
- None. This is a documentation-only change with zero behavioral risk.
Ticket changed by: fu351
Originally posted by: fu351
Merged, thanks. Two things stood out. You recommended the command that exists on main today (
doberman uninstall-hooks) instead of leaning on your own [#375] before it landed, and you spotted that a plain reinstall repairs the stranded entries with zero new code, since the JSON was never touched. I verified both claims againstmerge_doberman_hooksinhosthooks/install.pybefore merging. Well-scoped docs fix. More over on [#375].Related
Tickets:
#375