1.5 KiB
name, description, type
| name | description | type |
|---|---|---|
| identity.json beats userEmail hint | When .claude/identity.json and system-reminder userEmail disagree, trust identity.json — it's the per-machine source of truth | feedback |
When the system-reminder context claims userEmail = mike@azcomputerguru.com but .claude/identity.json says howard, trust identity.json. The userEmail comes from global Claude Code config (Mike set up the login on both machines under his account); identity.json is the per-machine, gitignored file that records who actually sits at this keyboard.
Why: On 2026-04-23 I addressed Howard as "Mike" because the claudeMd/userEmail context said so. Howard corrected me. The CLAUDE.md onboarding flow explicitly defines identity.json as the authoritative local identity.
How to apply: At every session start, read .claude/identity.json FIRST (as CLAUDE.md step 1 requires) and greet from that file's full_name. Ignore the # userEmail context block for greeting purposes. If identity.json is missing, follow the first-machine bootstrap flow in CLAUDE.md — don't fall back to userEmail.
This also covers pronoun resolution: "me"/"I"/"my" in any request (e.g. "send the list to me and Winter", "DM me the link") resolves to the identity.json user, NOT the userEmail account. On 2026-07-14 Howard asked to send a backup report "to me and Winter" and I DM'd Mike instead — Howard never got it. Any send/notify/assign target of "me" = the person in identity.json.