|
| 1 | +# Vanilla Dotfiles And Blend |
| 2 | + |
| 3 | +## Source Of Truth |
| 4 | + |
| 5 | +- The user's dotfiles repo is `~/Vanilla`, hosted as `frantic1048/Vanilla`. |
| 6 | +- The repo is managed by the user's own tool `blend`, implemented in `~/Vanilla/blend`. |
| 7 | +- Most config packages live under `~/Vanilla/orders/<order-name>/`. |
| 8 | +- User scripts are physically sourced from `~/Vanilla/orders/bin/bin`; `~/Vanilla/bin` is a repo-level symlink kept as the stable entrypoint and contains `bin/blend` as a symlink to the built Blend binary. |
| 9 | +- Each order's deployment shape is described by its `order.ncl`. |
| 10 | +- Read `~/Vanilla/blend/README.md`, `~/Vanilla/NEW_BLEND.md`, and `~/Vanilla/blend/src/` when deeper Blend behavior matters. |
| 11 | + |
| 12 | +## Rendered Versus Symlinked Config |
| 13 | + |
| 14 | +Blend supports both render/copy-to-target and symlink-to-target modes. |
| 15 | + |
| 16 | +- Most orders use render/copy-to-target mode. |
| 17 | +- Rendered target files can drift from the source files in `~/Vanilla`. |
| 18 | +- Symlinked entries can be identified in `order.ncl` with `symlink = true` or by `blend view` output showing a symlink relationship. |
| 19 | +- Do not assume source files and live system config are identical. Verify the order and target relationship first. |
| 20 | + |
| 21 | +## Inspecting Orders |
| 22 | + |
| 23 | +Prefer read-only inspection: |
| 24 | + |
| 25 | +```sh |
| 26 | +cd ~/Vanilla |
| 27 | +blend view |
| 28 | +blend view nushell |
| 29 | +``` |
| 30 | + |
| 31 | +- Run `blend view` with `PWD=~/Vanilla` when possible. Outside the repo, Blend may use its state directory from the last successful run to locate orders, which is useful but less explicit. |
| 32 | +- `blend view` without an order name lists all discovered orders and their source-to-target relationships. |
| 33 | +- `blend view <order-name>` focuses one order. |
| 34 | +- The output shows target paths, symlink status, no-change status, and source/target diffs. |
| 35 | +- In Codex sandboxed sessions, `blend view` may print a sandbox initialization warning and still exit successfully with useful output. Treat this as a warning, not a failure, when the command exit code is zero. |
| 36 | + |
| 37 | +## Safety Boundary |
| 38 | + |
| 39 | +Use only `blend view` for routine Codex inspection. |
| 40 | + |
| 41 | +Do not run other Blend commands unless the user explicitly asks, because other commands may write to target config, update state, create snapshots, sync, or otherwise mutate the system. |
| 42 | + |
| 43 | +## Reading `order.ncl` |
| 44 | + |
| 45 | +When `blend view` is unavailable or more detail is needed, read `~/Vanilla/orders/<order-name>/order.ncl`. |
| 46 | + |
| 47 | +Useful fields: |
| 48 | + |
| 49 | +- `prefix`: target directory prefix, often OS-specific. |
| 50 | +- `files`: deployed files or directories. |
| 51 | +- `from_file`: source file or directory inside the order. |
| 52 | +- `from_config`: inline structured config rendered to a target file. |
| 53 | +- `name`: target filename override. |
| 54 | +- `when`: OS, architecture, hostname, or similar condition. |
| 55 | +- `symlink`: whether the target should be a symlink instead of rendered/copied content. |
| 56 | +- `exclude`: files skipped when deploying a source directory. |
0 commit comments