Keep the personal half of the desktop in one place, and ask before installing it
Agent instructions, skills, SSH host aliases and expansion triggers are worth having identical on every machine one person owns, and belong in none of the shared configuration. They live in user/ now, with a manifest saying where each piece goes and a link-user stage that puts it there. That stage does nothing unless the machine said yes. Somebody who clones Panama to try the desktop keeps their own ~/.claude/CLAUDE.md exactly where it was; the question names the destinations and defaults to no. Anything displaced goes to config/old rather than being deleted. ~/.claude/CLAUDE.md and ~/.codex/AGENTS.md were byte-identical copies of one file, which is the drift this exists to prevent. Also adds the vitals toggles for the battery and Claude usage readouts, which had preferences and no way to reach them.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# What in user/ goes where, and in what form.
|
||||
#
|
||||
# <kind> <source under user/> <destination>
|
||||
#
|
||||
# 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
|
||||
Reference in New Issue
Block a user