graphify install is not profile-isolated: CLAUDE.md registration ignores CLAUDE_CONFIG_DIR, and other platforms' version stamps are advanced without their content
Summary
Two related side effects of graphify install --platform claude (verified against 0.9.40 install.py):
-
The skill copy honors CLAUDE_CONFIG_DIR, but the CLAUDE.md registration does not. The skill destination resolves via CLAUDE_CONFIG_DIR when set (install.py ~119-120), yet the always-on registration writes Path.home() / ".claude" / "CLAUDE.md" unconditionally (~line 629). Running the installer from a redirected/routed Claude profile therefore mutates the DEFAULT profile's CLAUDE.md — surprising for multi-profile setups (e.g. a work profile vs personal profile split via CLAUDE_CONFIG_DIR).
-
.graphify_version is advanced for every other installed platform without updating those platforms' skill contents (install.py ~58-65). After a claude-platform install, a stale Codex/OpenCode/etc. skill directory carries a CURRENT version stamp, which suppresses the per-run "skill is from graphify X, package is Y" warning that would otherwise prompt the user to refresh it — the stamp now asserts a refresh that never happened.
Suggested fixes
- Resolve the CLAUDE.md path through the same
CLAUDE_CONFIG_DIR logic as the skill path (or add a --config-dir override), so a redirected profile is fully self-contained.
- Only stamp
.graphify_version for platforms whose skill content was actually (re)written in this run; leave other platforms' stamps untouched so their staleness warnings stay truthful.
Impact
Wrapper tooling that wants a safe "refresh the Claude skill after a package upgrade" step currently has to refuse to run the installer from any routed profile to avoid cross-profile writes, and cannot trust other platforms' stamps afterwards.
Environment
graphify 0.9.40 (also present in 0.9.36), Windows 11, graphify install --platform claude.
graphify installis not profile-isolated: CLAUDE.md registration ignores CLAUDE_CONFIG_DIR, and other platforms' version stamps are advanced without their contentSummary
Two related side effects of
graphify install --platform claude(verified against 0.9.40install.py):The skill copy honors
CLAUDE_CONFIG_DIR, but the CLAUDE.md registration does not. The skill destination resolves viaCLAUDE_CONFIG_DIRwhen set (install.py ~119-120), yet the always-on registration writesPath.home() / ".claude" / "CLAUDE.md"unconditionally (~line 629). Running the installer from a redirected/routed Claude profile therefore mutates the DEFAULT profile's CLAUDE.md — surprising for multi-profile setups (e.g. a work profile vs personal profile split via CLAUDE_CONFIG_DIR)..graphify_versionis advanced for every other installed platform without updating those platforms' skill contents (install.py ~58-65). After a claude-platform install, a stale Codex/OpenCode/etc. skill directory carries a CURRENT version stamp, which suppresses the per-run "skill is from graphify X, package is Y" warning that would otherwise prompt the user to refresh it — the stamp now asserts a refresh that never happened.Suggested fixes
CLAUDE_CONFIG_DIRlogic as the skill path (or add a--config-diroverride), so a redirected profile is fully self-contained..graphify_versionfor platforms whose skill content was actually (re)written in this run; leave other platforms' stamps untouched so their staleness warnings stay truthful.Impact
Wrapper tooling that wants a safe "refresh the Claude skill after a package upgrade" step currently has to refuse to run the installer from any routed profile to avoid cross-profile writes, and cannot trust other platforms' stamps afterwards.
Environment
graphify 0.9.40 (also present in 0.9.36), Windows 11,
graphify install --platform claude.