About dotfiles
dotfiles is a skill for making and shipping changes to the seven7thirty3five5/dotfiles repository managed with chezmoi. It guides repository owners through synchronization checks, edits, deployment, validation, commits, and workflow monitoring.
Key features
- 01Checks repository ownership and sync state
- 02Reads design guidance before edits
- 03Applies changes with chezmoi
- 04Runs lint, shell, and install checks
- 05Commits, pushes, and watches workflows
Use cases
- 01Changing a managed configuration file
- 02Applying repository changes to the home folder
- 03Verifying setup scripts before shipping
- 04Publishing a dotfiles update and checking workflows
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ seven7thirty3five5/ dotfiles --skill dotfilesAfter installing, type/dotfilesin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMEDotfiles
Carry out the user's request on their dotfiles: the GitHub repository
seven7thirty3five5/dotfiles,
cloned at ~/.local/share/chezmoi. With no request, ask what to change.
A run starts and ends in sync: git status is clean, local main matches
origin/main, and chezmoi verify --exclude=scripts passes, so the home folder
matches the repository.
1. Orient
- Confirm this machine publishes the dotfiles, since only the repository's
owner can push:
chezmoi execute-template '{{ .publishDotfiles }}'printstrue,git push --dry-runsucceeds, andgh auth statusshowsseven7thirty3five5as the active account (gh watches the workflows). - Start in sync. With
git statusclean andchezmoi verify --exclude=scriptspassing,chezmoi updatepulls and applies the latest commits; thenmainmust matchorigin/main. - Read
README.md: its Design section explains how the setup works and where each kind of change belongs. Then read the files your change touches. For each chezmoi feature you use, read its page in chezmoi's reference: https://www.chezmoi.io/reference/.
When a check fails or the machine is out of sync, stop before editing and show the user what you found: uncommitted work, edits to deployed files and unpushed commits are theirs to settle. Done when every check passes and you can name the owner of each thing your change touches.
2. Change
Edit the repository's files: chezmoi apply deploys them, replacing edits made
in the home folder (chezmoi source-path FILE names a deployed file's source).
Make every change work on macOS and Linux, with and without sudo. Follow the
README's Design section and the gotchas below, and write like the file you are
editing: plain comments that explain each command, option and template
function, and why, for a reader new to the tool.
Done when git grep finds nothing in the README, comments or checks that your
change made untrue.
3. Verify
python3 scripts/check-lint.pyandpython3 scripts/check-shell.pypass.chezmoi diffshows only the changes you intended, including the setup scripts it will run. Then runchezmoi apply.
4. Ship
- Commit in the style of
git log. sh scripts/check-install.shpasses; it checks the applied machine and needs a clean tree.- Push, and watch each workflow on the pushed commit until it finishes
(
gh run watch); Bootstrap takes about ten minutes. When one fails, fix it and ship again.
Done when every workflow passes and the machine is in sync. Report what changed, and anything the user must do by hand on other machines.
Gotchas
- On this machine, chezmoi commits and pushes each source change it makes
(
chezmoi add,chezmoi edit), before your checks run. Create and edit source files yourself, with chezmoi's names (dot_,private_,executable_,.tmpl). - When chezmoi stops managing a file, it leaves the file in place on every machine.
updateupgrades everything on the machine: run it when the user asks, and test a changed part of it on its own.