Imported from razor-x/dotfiles (
AGENTS.md). Install upstream withnpx skills add razor-x/dotfiles. Copyright stays with the author.
Repository guide
Chezmoi source
This repository is a chezmoi source tree; .chezmoiroot maps home/ to the
managed home directory.
- Keep inspection and verification of managed configuration inside this
repository. Treat files under
home/as authoritative; installed copies under$HOMEare outside the working boundary. - For sandbox capabilities, inspect
home/dot_config/nono/exact_profiles/—starting with the active profile and the profiles it extends—to determine allowed paths instead of probing paths outside the repository. - Preserve chezmoi source attributes in names such as
dot_,exact_,executable_, andsymlink_; follow neighboring files for the intended pattern. - Treat
*.tmplfiles as Go templates rendered by chezmoi. - When removing a managed source outside an
exact_directory, add its target path tohome/.chezmoiremove. - Regenerate
bootstrap.shwithjust generate.
Workflow
- Make the smallest source change that covers the request.
- Run
just formatafter editing supported file types. - Run
just check; every reported failure is fixed or called out before completion. - Assume the user will apply managed changes. When live synchronization would
help, ask the user to run
just watchin their own terminal. Pi self-modification follows its nested on-the-fly synchronization workflow.
Major configurations
Neovim
- Read
home/dot_config/exact_nvim/README.mdbefore changing Neovim; its architecture, typing, and plugin-global registration rules are completion criteria. - Keep
exact_lua/exact_plugins/*.luaorganized by interface. Preserve the standalone path ininit.lua, where the generateddotfilesmodule may be absent. - Update
doc/dotfiles.txtwith user-facing mapping changes. Treat.lazy-lock.jsonas pinned input and change it only for an explicit plugin upgrade.
Pi
- Follow
home/dot_config/pi/AGENTS.mdbefore editing Pi instructions, local extensions, or local skills. - Put installed extension packages in
exact_npm; put custom TypeScript inextensions/exact_localand custom skills inskills/exact_local. Keep package manifests and lockfiles together. - Validate custom extension changes with its existing npm scripts; the root
just checkincludes its full check.
Kitty
- Keep
kitty.conf.tmplas the composition root: aliases, includes, theme, and font template data. Put ordinary preferences inpreferences.conf.tmpl, keyboard mappings inkeymap.conf, mouse mappings inmouse.conf, and the modal keyboard layer inoneshot.conf. - Keep equivalent actions in
keymap.confandoneshot.confbehaviorally aligned. Search Neovim and Fish before changing shared terminal chords or smart-splits integration. - Treat
current-theme.confand external kitten files as generated. Local kittens are typed Python entry points using Kitty'smainand@result_handlerprotocol.
Fish
- Keep shell startup policy in
home/dot_config/fish/config.fish. Put autoloaded integrations inhome/dot_local/share/exact_plugin/exact_fish/exact_conf.d/and one autoloadable function per matching filename inexact_functions/. - Guard interactive integrations with
status is-interactive. Use.tmplonly when chezmoi must render data or command output. - Keep third-party and local plugin declarations in
home/dot_config/fish/fish_plugins; local Fish code belongs to thefishplugin tree above.
Terminal keybindings span Neovim, Kitty, and Fish. Before assigning or changing one, search all three configurations for the chord and preserve intentional parity or conflict handling.