Live `~/.config` entries were symlinks into dotstate storage; content copied with `chezmoi add --follow`.
## Disposition table — every dotstate synced path
| Path | Profiles | Decision | Notes |
|---|---|---|---|
| `.config/fish` | Noctalia, Inir, Rogz | **universal** | Live (Rogz storage) is the superset and canonical in practice; Noctalia conf.d only had `atuin.env`, `deno`, `inir-env`, `rustup` — stale subset. `secrets.fish` → **secret** (age). Delta: Noctalia carries `deno.fish` (`source ~/.deno/env.fish`) absent from live — folded into universal conf.d with existence guard |
| `.config/tmux/tmux.conf` | Vertical-Rogz_AppleStudio | **universal** | Only dotstate source for tmux; verified against live. No vertical-display geometry found in it — nothing to gate |
| `.config/kitty` | Noctalia, Inir, Rogz | **universal** | Live wins (has `goliath.conf`, newer kitty.conf); Noctalia-only `koda-*.conf`, `kitty.conf.old`, `get_layout.py` dropped as stale |
- **starship stays**: the migration plan called for porting starship → oh-my-posh; user rejected this during pass 1. `starship.toml` ships as universal, fish keeps `starship init fish` + transient prompt. oh-my-posh is not installed and not managed.
- **Terminal**: kitty only in pass 1. foot/alacritty configs exist in dotstate but nothing live references them.
- **Rogz vs Noctalia**: live machine *is* Rogz-backed for fish/niri/gitconfig; Noctalia storage was stale for every diverging path inspected (fish conf.d subset, older kitty.conf, gitconfig with dead credential helpers). Pass 1 content = live. Noctalia-only artifacts worth revisiting: `kitty/koda-{dark,light}.conf` themes, `fish/conf.d/deno.fish` (folded in).
- **gitconfig `insteadOf` → `pushInsteadOf`**: live config rewrote *all* GitHub https URLs to ssh, which breaks every anonymous clone (lazy.nvim, tpm, fisher) on a machine without SSH keys — i.e. the bootstrap one-liner. `pushInsteadOf` keeps keyless https fetches working; pushes still use ssh; private https fetches use the `gh auth git-credential` helper. Found by the Arch container validation.
- **`core.pager = git-split-diffs`**: npm-installed tool, not in `packages.yaml` (no node package management in pass 1). Interactive-only; git works without it (pager errors degrade to no pager). Same for the `tea` credential helper (prad.codes host only).
-`fish/conf.d/secrets.fish`: live API keys (OpenAI, Groq, GitLab PAT, Linear, Tavily, etc.) → `encrypted_secrets.fish.age` via age. Key at `~/.config/chezmoi/key.txt`, distributed manually.
-`gh/hosts.yml`: `oauth_token` → excluded from repo (gh re-auths per machine via `gh auth login`).
-`.npmrc`: `_auth` token → deferred, not added.
-`opencode/antigravity-accounts.json`: account state → deferred, not added.
- Full grep for `sk-`, `ghp_`, `glpat-`, `Bearer`, `token`, `key =` run across all added content before commit; see secrets-audit issue.