forked from bchanot/claude
install-plugins.sh: mktemp failure building CFG_SNAPSHOT now aborts the install loudly (err + exit 1) instead of warning and continuing UNGUARDED — a failed guard used to mean CLAUDE.md/.claude/settings.json/ settings.json could be silently rewritten by graphify's installer for the rest of that run. Closes §3.4. Added T5 to lib/tests/curated-config-guard.test.sh: extracts the WIDER header block (GUARDED_CONFIGS through the closing `fi` — the fail-closed logic lives in the top-level if/else, outside restore_curated_configs(), so it needs its own awk range) in a subshell with a stubbed `mktemp` forced to fail; asserts exit 1 and a loud "mktemp failed" message. +2 assertions (4→6). Verified: bash -n clean, shellcheck clean (both files), full `make test` exit 0.