`~/.claude` 自体が git リポ(`yoshida-jun/ai-base`・旧 claude-base)。
**shadow が正本**で `scripts/auto-sync.sh` が毎時 cron で commit→push する
(先頭に hostname ガードがあり他ホストでは即 exit)。arcana/cure/Windows は pull 専用。
**scp/rsync で直接配るのは禁止(憲法)。** 理由は以下が scp では検知できないため。
## 展開で実際に起きたこと(2026-07-28)
1. **`git reset --hard` は未追跡ファイルを消さない**
arcana に残った独自の `rules/*.md` がそこだけ注入コストを戻していた
(rules 7本 vs 他ホスト3本)。展開後は必ず `git status --porcelain | grep '^??'` を見る
2. **未pushの独自資産が他ホストに埋もれている**
arcana に `adversarial-review`(rules+skills)がローカル未追跡で存在。
CLAUDE.md が「明示発火: skill adversarial-review」と指定し発火実績もあるのに正本リポに無かった。
scp 配布なら上書きで消えていた
3. **`git add` に存在しないパスを混ぜるとコマンド全体が失敗する**
`git mv` 済みのファイル名を渡し `2>/dev/null` で握り潰した結果、
「HEAD は進んだのに中身が入っていない」コミットが生まれた(`fe2b0f8`)。
展開後に**中身**(行数・ファイル有無)を検証すること。HEAD の一致だけでは不十分
## リポで配れないもの
| 対象 | 配り方 |
|---|---|
| `settings.json` | `settings.shared.json` + `scripts/apply-shared-settings.py` |
| `skills/claude-bug-bounty/` `skills/mulmoterminal-*/` `docs/` | .gitignore 対象。各ホストで個別配置 |
| `projects/` `todos/` `statsig/` | 配らない(ランタイム) |
## 情報の行き先 4層
トークンを食うのは `rules/` だけ(毎ターン全文注入)。他は積んでも注入0なので
**「トークンが惜しいから捨てる」は誤った判断**。捨てずに層を移す。
- `rules/` = 常時注入の行動規範のみ(厳選)
- `reference/` = 戻して使うもの・手順書・退避した skills/agents(注入0・git同期)
- LLM Wiki = 読んで学ぶ知識・経緯・教訓(このページ自身)
- `archive` orphan ブランチ = 復元用の生データ(patch/tgz)。main に載らずディスクも食わない
instinct: Claude設定の各ホスト展開はリポ経由が憲法・reset --hard は未追跡を消さない