Imported from m0lson84/dotfiles (
AGENTS.md). Install upstream withnpx skills add m0lson84/dotfiles. Copyright stays with the author.
Repository Guide
Chezmoi Layout
.chezmoirootmakeshome/the chezmoi source root; paths under it map to$HOME, not to a literalhome/directory..chezmoiversionrequires chezmoi 2.69.0 or newer.home/.chezmoi.toml.tmpldefines template data. Use.env.*,.system.*,.default.*,.name, and.emailas defined there; do not infer host/platform values elsewhere.- Common, Arch, and Darwin package lists live in
home/.chezmoidata/. Installation flow lives inhome/.chezmoiscripts/<platform>/and shared functions inhome/.chezmoitemplates/. home/.chezmoiignore.tmplexcludes platform- and ephemeral-only paths. Check it before assuming a managed file reaches every target.home/.chezmoiexternals/owns downloaded Neovim, Oh My Zsh, tmux, and zellij content. Edit those declarations rather than generated destination trees.
Safe Verification
- Render one template with
chezmoi execute-template < home/path/file.tmpl. - Inspect resolved context with
chezmoi dataandchezmoi cat-config; inspect destination changes withchezmoi diff. - Do not use
chezmoi applyas routine validation. Lifecycle scripts install packages and tools; Darwin also runsbrew update/brew upgradeon every apply. - Changes to
run_once_*scripts do not rerun on initialized machines. Use explicitchezmoi statehandling only when replay is intended. - No automated test or CI suite exists. Validate changed templates individually and use
chezmoi difffor affected managed outputs.
Formatting
.editorconfigis authoritative: 4 spaces and 100 columns for shell/Fish; 2 spaces and 120 columns for Lua and config files.- Lua check:
stylua --check home/private_dot_config/wezterm(styluamay be absent until managed tools are installed). - Biome covers JSON-like files, but
biome check .fails on Zed's comment-bearingsettings.json; run Biome only on changed compatible files.
Configuration Gotchas
.opencode/opencode.jsoncis repository-local OpenCode config.home/private_dot_config/opencode/opencode.jsoncdeploys to global~/.config/opencode/opencode.jsonc; do not confuse their scopes.- AWS templates call 1Password at render time and are skipped in ephemeral environments. Avoid broad rendering when credentials are unnecessary.
install.shandinstall.ps1bootstrap chezmoi and immediately runinit --apply --source=<repo>; they are installation entrypoints, not checks.