Description
graphify uninstall (and graphify claude uninstall) only look at .claude/settings.json and CLAUDE.md when removing the PreToolUse hook and the graphify instructions section. If a user has manually moved these into the .local variants — .claude/settings.local.json for the hook and .claude/CLAUDE.local.md for the instructions — so they aren't committed to the shared repo, uninstall silently leaves them in place.
I did this on purpose: I didn't want the graphify hook/instructions checked into the team repo, so I relocated what graphify install had written into the local-only files Claude Code supports. graphify uninstall has no knowledge of this location and doesn't clean it up.
Looking at graphify/__main__.py, _uninstall_claude_hook() only reads/writes project_dir / ".claude" / "settings.json", and claude_uninstall() only reads/writes project_dir / "CLAUDE.md". There's no reference anywhere in the repo to settings.local.json or CLAUDE.local.md, so this isn't a regression in a specific code path — the local-config case isn't handled at all, on either install or uninstall.
Suggested fix
graphify install should offer a way to target the .local files directly (e.g. a --local flag), instead of requiring users to relocate the content by hand.
graphify uninstall should check both the standard and .local locations for the hook and the instructions section, and clean up whichever is present.
Steps to reproduce
- Run
graphify claude install in a project.
- Manually move the PreToolUse hook block from
.claude/settings.json to .claude/settings.local.json, and the ## graphify section from CLAUDE.md to .claude/CLAUDE.local.md.
- Run
graphify uninstall (or graphify claude uninstall).
- Observe: the hook stays in
.claude/settings.local.json and the instructions stay in .claude/CLAUDE.local.md — uninstall reports "nothing to do" / removes nothing there.
Environment
Description
graphify uninstall(andgraphify claude uninstall) only look at.claude/settings.jsonandCLAUDE.mdwhen removing the PreToolUse hook and the graphify instructions section. If a user has manually moved these into the.localvariants —.claude/settings.local.jsonfor the hook and.claude/CLAUDE.local.mdfor the instructions — so they aren't committed to the shared repo, uninstall silently leaves them in place.I did this on purpose: I didn't want the graphify hook/instructions checked into the team repo, so I relocated what
graphify installhad written into the local-only files Claude Code supports.graphify uninstallhas no knowledge of this location and doesn't clean it up.Looking at
graphify/__main__.py,_uninstall_claude_hook()only reads/writesproject_dir / ".claude" / "settings.json", andclaude_uninstall()only reads/writesproject_dir / "CLAUDE.md". There's no reference anywhere in the repo tosettings.local.jsonorCLAUDE.local.md, so this isn't a regression in a specific code path — the local-config case isn't handled at all, on either install or uninstall.Suggested fix
graphify installshould offer a way to target the.localfiles directly (e.g. a--localflag), instead of requiring users to relocate the content by hand.graphify uninstallshould check both the standard and.locallocations for the hook and the instructions section, and clean up whichever is present.Steps to reproduce
graphify claude installin a project..claude/settings.jsonto.claude/settings.local.json, and the## graphifysection fromCLAUDE.mdto.claude/CLAUDE.local.md.graphify uninstall(orgraphify claude uninstall)..claude/settings.local.jsonand the instructions stay in.claude/CLAUDE.local.md— uninstall reports "nothing to do" / removes nothing there.Environment