macOS dotfiles managed with go-task, symlinks, and XDG base directory spec.
$ git clone https://github.com/jshvn/dotfiles.git
$ ./bootstrap.zsh
$ task setup -- <machine-name>
$ task install$ updateupdate fast-forwards the repo from its remote (task repo:sync), then runs task install.
The pull is fast-forward-only and skips cleanly -- with a warning, never blocking the install --
on a dirty working tree, a diverged branch, or when offline / SSH auth is unavailable. Set
repo-auto-update = false in a machine manifest to skip the pull entirely.
The top-level commands are:
| Command | Purpose |
|---|---|
task install |
Install dotfiles for the active machine |
task setup |
Set the active machine: task setup -- <machine-name> |
task validate |
Validate full installation state |
task test |
Run all smoke tests |
task lint |
Run all lint checks |
task audit |
Detect drift across all domains (read-only) |
task diff |
Preview what task install would change (read-only) |
task report |
Markdown overview of the converged install (read-only) |
Run task (no arguments) to see the curated task surface; task --list for
the full graph.
docs/MANIFEST.md-- manifest schema, inheritance rules, worked examplesdocs/SECURITY.md-- bootstrap trust chaindocs/MACHINES.md-- per-machine purpose and hardware
See CLAUDE.md for the gotchas and conventions; each top-level directory's README says what belongs there; the lint catalogue lives in taskfiles/README.md.