agentleFS
johnplantadajohnplantada/claude-skills/skills/devenv/SKILL.md

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.

The file

Files
SKILL.md

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:

  1. Shared settings — a single config file every skill reads for its defaults.
  2. 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 skillsreference/settings.md
Set up a new machine end-to-endreference/bootstrap.md
Check the whole environment's healthreference/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

  1. 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.
  2. 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.
  3. 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-process for rc-file state) or computed near an unparsed row 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.
  4. 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.toml changes how future skill runs behave — show the diff and validate it.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.