ai: split CLAUDE.md out from the shared conventions
Assisted-by: Claude Opus 5 via Claude Code
change losukwqomwtoqtoulrrvvwnryskxyyks
commit 4606fbe85a038857d37d4b89a4daa5333038b111
author Alpha Chen <alpha@kejadlen.dev>
date
parent ztmnltzq
diff --git a/AGENTS.md b/AGENTS.md
index 7a47a24c..651d0e56 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -8,10 +8,10 @@ Key directories:
 
 - `.config/` — app configs (aerospace, ghostty, nvim, jj, etc.)
 - `.hammerspoon/` — Hammerspoon config in Fennel (`.fnl` files compiled to Lua)
-- `ai/claude/` — Claude Code settings and hooks (symlinked in as `~/.claude`)
+- `ai/claude/` — Claude Code config: `CLAUDE.md`, `rules/`, settings, and hooks (symlinked in as `~/.claude`)
 - `ai/pi/` — pi agent settings and extensions (symlinked in as `~/.pi/agent`)
 - `ai/skills/` — skills, shared by both agents
-- `ai/_AGENTS.md` — global agent conventions (symlinked in as `~/.claude/CLAUDE.md`)
+- `ai/_AGENTS.md` — global agent conventions shared by both agents (symlinked in as `~/.pi/agent/AGENTS.md`; `ai/claude/CLAUDE.md` imports it)
 - `.ssh/` — SSH config
 - `.zsh/` — Zsh config
 - `src/` — git submodules (Alfred workflows, fzf-git, tpm)
diff --git a/ai/claude/.gitignore b/ai/claude/.gitignore
index 47d552b4..9dd3e1b3 100644
--- a/ai/claude/.gitignore
+++ b/ai/claude/.gitignore
@@ -2,6 +2,7 @@
 *
 
 !.gitignore
+!CLAUDE.md
 !settings.json
 !skills
 !statusline.sh
diff --git a/ai/claude/CLAUDE.md b/ai/claude/CLAUDE.md
new file mode 100644
index 00000000..2b105a41
--- /dev/null
+++ b/ai/claude/CLAUDE.md
@@ -0,0 +1,4 @@
+Shared agent conventions — pi reads the same file. Claude-specific rules go
+below the import, or as their own file in `ai/claude/rules/`.
+
+@~/.dotfiles/ai/_AGENTS.md
diff --git a/frork/_dotfiles.fnl b/frork/_dotfiles.fnl
index a35fcacb..b170e348 100644
--- a/frork/_dotfiles.fnl
+++ b/frork/_dotfiles.fnl
@@ -25,11 +25,10 @@
         (-?> dest dirname (partial #(ok :directory))))
       (ok :symlink dest src))))
 
-(ok :symlink "~/.dotfiles/ai/claude" "~/.claude")
-(ok :symlink "~/.dotfiles/ai/_AGENTS.md" "~/.claude/CLAUDE.md")
+(ok :symlink "~/.claude" "~/.dotfiles/ai/claude")
 
 (ok :directory "~/.pi")
-(ok :symlink "~/.dotfiles/ai/pi" "~/.pi/agent")
+(ok :symlink "~/.pi/agent" "~/.dotfiles/ai/pi")
 
 ;; moved to .config/git/config
 (no :symlink :$HOME/.gitconfig :$HOME/.dotfiles/.gitconfig)