# What in user/ goes where, and in what form. # # # # kind is one of: # link symlink the destination at the source, so editing either edits the # repository. Use this for anything you want to update once and have # change everywhere -- and for anything a tool writes into, because a # skill installed on this machine should land in the checkout. # copy copy once, and never touch it again if the destination exists. Use # this for files a machine legitimately diverges on. # # Lines beginning with # are comments and blank lines are ignored. ~ in a # destination is this user's home. # # Nothing here is linked unless this machine said yes to the interview's # question about personal content -- see setup/scripts/link-user. That is what # keeps a repository somebody else can clone from also being one that installs # Gabriel's agent instructions on their machine. # ── Agents ─────────────────────────────────────────────────────────────────── # One file, two names. Claude Code reads CLAUDE.md and Codex reads AGENTS.md, # and before this they were two byte-identical copies waiting to disagree. link agents/AGENTS.md ~/.claude/CLAUDE.md link agents/AGENTS.md ~/.codex/AGENTS.md # Skills, at both paths that look for them. Linked as whole directories rather # than file by file, so a skill installed by any tool lands in the checkout and # `panama update` offers to commit it. link agents/skills ~/.agents/skills link agents/skills ~/.claude/skills link agents/rules ~/.claude/rules # ── SSH ────────────────────────────────────────────────────────────────────── # Host aliases only. Keys are per-machine and are never tracked; this is the # file that makes `ssh server` work the moment a machine is set up, and it is # what the SSH Hosts launcher command reads. link ssh/config ~/.ssh/config # ── Espanso ────────────────────────────────────────────────────────────────── # The personal expansion triggers. Copied rather than linked, because this is a # file each machine may add its own triggers to. It lands before setup-identity # runs, and that stage only seeds a file that does not exist yet, so what is # tracked here wins over the name and email the interview would have written. copy espanso/identity.yml ~/.config/espanso/match/identity.yml