Imported from MrPointer/dotfiles (
AGENTS.md). Install upstream withnpx skills add MrPointer/dotfiles. Copyright stays with the author.
Dotfiles
Personal dotfiles managed with chezmoi. This repo is the chezmoi source directory - edit files here, not in ~.
Available Skills
| Skill | Use When |
|---|---|
writing-go-code |
Writing/editing Go code, interfaces, dependency injection |
writing-go-tests |
Writing test files, assertions, mock selection, test naming |
developing-cli-apps |
CLI commands, flags, Cobra patterns, Huh interactive UI, signal handling |
building-go-binaries |
Compiling the project, troubleshooting build failures |
linting-go-code |
Running linters, fixing lint errors, formatting code |
testing-go-code |
Running unit tests, coverage, benchmarks, regenerating mocks |
managing-chezmoi |
Editing dot_*, private_dot_*, or .tmpl files; chezmoi commands |
managing-nono-profiles |
Managing nono profiles, profile schemas, or agent shell wrappers |
configuring-zsh |
.zshrc, .zshenv, plugins, PATH, completions |
configuring-github-actions |
.github/workflows, CI/CD, matrix builds |
testing-e2e-containers |
E2E testing installer in Docker containers (Ubuntu, Debian, Fedora) |
Workflow
- Read files first - Understand the current state and what needs to change
- Load relevant skills - Before editing, load ALL matching skills from the table above (match on file patterns and task type)
- Plan the approach - Briefly reason about what changes are needed and how they fit with existing patterns
- Make targeted changes - Follow conventions from the loaded skill
Directory Structure
.
├── dot_claude/ # ~/.claude (Claude global config)
├── dot_agents/ # ~/.agents (agent skills and shell wrappers)
├── .github/workflows/ # CI/CD pipelines
├── installer/ # Go installer/bootstrapper (has own AGENTS.md)
├── dot_config/ # ~/.config/* files (sheldon, etc.)
├── dot_zshrc, dot_zshenv, ... # Shell config files
├── private_dot_ssh/ # ~/.ssh (private files)
└── .chezmoiignore # Files to ignore during apply
Documentation
- For dotfile, template, or shell-runtime work, start with
docs/dotfiles/domain.mdand the relevant process indocs/dotfiles/processes/. docs/architecture.md— Repository-wide integration boundaries among the installer, chezmoi rendering, and shell runtimedocs/contracts/chezmoi-data.md— Canonical installer-to-template data contract; read it when changing produced keys or template consumersinstaller/docs/— Installer-only domain, architecture, and installation processes. Useinstaller/AGENTS.mdas the discovery entry point for installer development rather than loading installer internals for dotfile-only work.docs/spec-kit-workflow/architecture.md— Isolated architecture of the project-installed Spec Kit workflow preset
Key Conventions
- Zsh is the primary shell - Most shell config is Zsh-specific
- Sheldon for plugin management - Not oh-my-zsh at runtime (used only for vendored snippets)
- Templates for conditional config -
{{ .chezmoi.os }}for OS-specific logic - Separate work/personal dotfiles - Work configs loaded conditionally in work environments
- Global skills and agents live in
dot_claude/- Editdot_claude/skills/anddot_claude/agents/here, never under~/.claude/directly - Nono profile work has a dedicated skill - Load
managing-nono-profilesbefore editing nono profiles, schemas, or agent shell wrappers.
Project Motivation
The goal is an easy, portable setup process for any machine. The installer handles prerequisites (including optional homebrew), installs chezmoi, populates its data file with custom keys (e.g., work vs personal environment), and applies the dotfiles.
While all actions could be performed manually, automating the process saves time and reduces complexity across multiple machines.
Installer
The installer is a Go CLI application in the installer/ directory. It was rewritten from Bash for better maintainability and testability.
Tech stack: cobra (CLI), huh (interactive UI), goreleaser (releases)
For development details, see installer/AGENTS.md.