···21212222## Migration Details
23232424-The source code remains here for reference, but builds should use the monorepo flake. The nix-config flake has been updated to include the monorepo as an input (`pkgs-monorepo`), allowing the tools to be built and run efficiently within a unified workspace.
2424+The source code remains here for reference, but builds should use the monorepo
2525+flake. The nix-config flake has been updated to include the monorepo as an input
2626+(`pkgs-monorepo`), allowing the tools to be built and run efficiently within a
2727+unified workspace.
25282629---
27302828-**For historical reference, see the old documentation below. It remains accurate but all commands should now use the monorepo location.**
3131+**For historical reference, see the old documentation below.** It remains
3232+accurate but all commands should now use the monorepo location.
29333034---
3135···5256```
53575458Checks:
5959+5560- Nix daemon is responding
5661- `flake.lock` is present and valid JSON
5762- Flake evaluates without errors
5863- Git working tree is clean
5964- Age key exists at `~/.config/age/keys.txt`
6065- SSH keys present in `modules/ssh-keys.nix`
6666+- Disk space on `/nix/store`
6767+- Homebrew installed (macOS only)
6168- Disk space on `/nix/store`
6269- Homebrew installed (macOS only)
6370···96103The following tools were removed. Their source files remain in `src/bin/` for
97104reference but are no longer compiled.
981059999-| Tool | Reason removed |
100100-|---|---|
101101-| `darwin-export` | macOS settings are now fully declarative in `settings/darwin/default.nix` — nothing to export |
102102-| `gnome-export` | GNOME/dconf settings are now fully declarative in `settings/gnome/dconf-settings.nix` — nothing to export |
103103-| `secrets-setup` | Was a stub that only checked if `~/.config/age/keys.txt` existed; `health-check` covers this |
104104-| `categorize-apps` | `nix search` / `brew info --cask` lookups produce false positives; `darwin.nix` is hand-maintained |
105105-| `generate-app-config` | Same reasons as `categorize-apps` |
106106-| `sync-apps` | Same reasons, plus it auto-mutated config files without review |
106106+- `darwin-export` — macOS settings are now fully declarative in `settings/darwin/default.nix` — nothing to export
107107+- `gnome-export` — GNOME/dconf settings are now fully declarative in `settings/gnome/dconf-settings.nix` — nothing to export
108108+- `secrets-setup` — Was a stub that only checked if `~/.config/age/keys.txt` existed; `health-check` covers this
109109+- `categorize-apps` — `nix search` / `brew info --cask` lookups produce false positives; `darwin.nix` is hand-maintained
110110+- `generate-app-config` — Same reasons as `categorize-apps`
111111+- `sync-apps` — Same reasons, plus it auto-mutated config files without review
107112108113---
109114···1131181141191. Create `src/bin/your-tool.rs`
1151202. Add to `Cargo.toml`:
121121+116122 ```toml
117123 [[bin]]
118124 name = "your-tool"
119125 path = "src/bin/your-tool.rs"
120126 ```
127127+1211283. Expose in `flake.nix` under `apps`
1221294. Add a shell alias in `settings/config/shell.nix` if used regularly
123130