Dev Environment
Skill0 starsChanged 4 months agoMITView on GitHub
The capstone for the dev-environment skill gallery — a shared SETTINGS store the other skills read, plus ordered cross-skill RUNBOOKS. Use to view/edit settings that drive the layer skills (nvim-config, shell-sync, dotfiles, brew-doctor, runtime-versions, macos-defaults, git-setup, ssh-config) so they stop re-asking, to BOOTSTRAP a new machine end-to-end, or to run a whole-environment HEALTH sweep. Delegates to the individual skills — it never duplicates their logic.
In this repository12 other files it gives its agents.
- Brew DoctorSkill
- Credential StoreSkill
- DotfilesSkill
- Ghostty ConfigSkill
- Git SetupSkill
- Identity ProfilesSkill
- macOS DefaultsSkill
- Neovim ConfigSkill
- Runtime VersionsSkill
- Shell SyncSkill
- SSH ConfigSkill
- Terminal ThemeSkill
The file
Files
devenv — dev-environment capstone
The layer on top of the gallery's per-layer skills (nvim-config, shell-sync, dotfiles,
brew-doctor, runtime-versions, macos-defaults, git-setup, ssh-config). Two jobs, and only
two:
- Shared settings — a single config file every skill reads for its defaults.
- Runbooks — ordered, cross-skill flows (bootstrap, health) that delegate to the skills.
It never re-implements a skill's logic. If a task is single-layer (just nvim, just brew), use that skill directly.
Route to a workflow
| The user wants to… | Workflow |
| See/change settings that drive the skills | reference/settings.md |
| Set up a new machine end-to-end | reference/bootstrap.md |
| Check the whole environment's health | reference/health.md |
The settings store (the contract)
Location: ${XDG_CONFIG_HOME:-$HOME/.config}/devenv/config.toml (referred to as
~/.config/devenv/config.toml). One file, a [section] per skill. Each skill reads its own
section for defaults; a missing file or key just means the skill asks as usual and offers to save
the answer. Full schema + validation: reference/settings.md.
[shell-sync]
canonical = "zsh" # source-of-truth shell; mirror = the other
sync = ["path", "env", "aliases"]
[brew-doctor]
pinned = ["neovim"]
brewfile = "~/Brewfile"
autoupdate_mode = "update-only"
[dotfiles]
manager = "chezmoi"
ignore = ["*.bak", ".config/fish/conf.d/00-shell-sync.fish"]
[nvim-config]
plugin_manager = "lazy"
[runtime-versions]
manager = "mise"
tools = { node = "lts", python = "3.13" }
[macos-defaults]
script = "~/.config/devenv/macos.sh"
[git-setup]
signing = "ssh" # "ssh" | "gpg" | "none"
pager = "delta"
[ssh-config]
key_type = "ed25519"The file is a plain dotfile — track it via the dotfiles skill so settings are reproducible.
Core principles
- Delegate, don't duplicate. Runbooks invoke the individual skills (via the Skill tool) in the right order with the right gates; the real work lives in those skills.
- Settings are defaults, not locks. Precedence: an explicit answer this session > the value in
config.toml> ask the user. Never override a fresh explicit instruction with a stored setting. - Verify per layer. Each delegated skill owns its own verification; the capstone's job is
sequencing and merging results, not re-checking.
But a surprising finding — one that contradicts what the config visibly says — gets
confirmed a second way before it reaches the user. Scripts report what they measured, and a
fact measured in the wrong environment (
src=this-processfor rc-file state) or computed near anunparsedrow looks identical to a real one. A false positive sends the user to fix a working system; that costs more than the finding was worth. See reference/health.md. - Read reality too. Settings describe intent; still confirm against the machine (the canonical shell exists, pinned formulae are installed, etc.).
Safety
- Bootstrap and health touch every layer — confirm scope before a full run, and honor each skill's own safety gates (secrets, private keys, backups, private repos, gated upgrades).
- Editing
config.tomlchanges how future skill runs behave — show the diff and validate it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

