Skip to content
Conduit

skill

dotfiles

Cross-platform dotfiles managed by Chezmoi with Homebrew/apt and per-language version managers. One-command bootstrap for macOS and Linux with Neovim, Tmux, Zsh, and AI agent skills.

urmzd/dotfilescommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/urmzd/dotfiles itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 17, 2026

Features

  • Homebrew + apt as source of truth for CLIs (git, gh, kubectl, terraform, ...)
  • Per-language version managers: fnm (Node), uv (Python), rustup (Rust)
  • Pinned upstream installers for tools that need it: gcloud, aws-cli, Snowflake Cortex
  • Zsh with Oh My Zsh + Powerlevel10k and pre-generated completions
  • Tmux with Ctrl+a prefix, vim keys, Catppuccin cyberdream theme
  • Ghostty terminal with cyberdream theme and MonaspiceNe Nerd Font
  • Neovim (HEAD) with LSP for all included languages, tuned for reviewing agent work: a clickable Files/Changes/Tests sidebar, worktree switching, and buffers that reload when an agent edits them. See dot_config/nvim/README.md.
  • AI agents (Claude Code, Antigravity, Codex, Copilot, OpenCode) auto-installed via chezmoi
  • A portable agent skills catalog in dot_agents/skills/ and subagents in dot_agents/agents/, installable into any tool via agentspec. See Agent Skills for the full list.
  • Chezmoi automation scripts that trigger on apply
  • Docker cleanup launchd agent running daily at 3 AM

Quick Start

One-liner (installs Homebrew + chezmoi, then runs chezmoi init --apply):

curl -fsSL https://raw.githubusercontent.com/urmzd/dotfiles/main/install.sh | bash

Or step by step:

# 1. Install Homebrew (macOS) or your distro's package manager (Linux)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Install chezmoi and apply this repo in one shot
sh -c "$(curl -fsLS https://get.chezmoi.io)" -- init --apply urmzd

chezmoi apply installs Brewfile/apt packages, sets up gcloud/aws/cortex from upstream, and installs the AI CLIs. Open a new terminal afterwards.

The bootstrap does not depend on our releases being healthy. chezmoi comes from get.chezmoi.io, falling back to Homebrew. The dotfiles CLI comes from the newest release that has a binary for your platform (the latest can be mid-build or failed), falling back to building cli/ from the checkout with cargo. If both fail, the apply still finishes: the CLI is optional. Re-running the bootstrap fast-forwards an existing checkout before applying, and every third-party installer is downloaded and checked before it runs, so a network failure warns instead of passing silently.

chezmoi init asks only what it cannot derive: name (prefilled on macOS), machine type (personal or work), one email for commits, Cortex, package preset, which AI coding CLIs to install, and excludes. On a personal machine the GitHub user comes from the repo remote; the GPG key always comes from your keyring. A personal machine is asked for its email and about secrets management; a work machine is asked for its work email, its work GitHub account, and an optional list of packs (git URLs, url//folder, or local folders), and never for personal details. See Setting up a machine's GitHub identity for keys. Re-running chezmoi init reuses every saved answer.

Usage

Day-to-day

chezmoi diff          # Preview pending dotfile changes
chezmoi apply         # Apply dotfile changes to $HOME
chezmoi add <file>    # Start tracking a new file
chezmoi edit <file>   # Edit source, then apply

Maintenance

The dotfiles command is a Rust CLI built from cli/ in this repo. Every release attaches its binaries for macOS and Linux (x86_64 and arm64) with .sha256 checksums; the first apply installs it, and dotfiles update keeps it and the dotfiles current. To install it by hand: curl -fsSL https://raw.githubusercontent.com/urmzd/dotfiles/main/cli/install.sh | sh.

dotfiles package                 # Search + toggle optional packages, then apply
dotfiles package add acli twg    # Select by id; `package remove` deselects (--uninstall to brew uninstall)
dotfiles package list --selected # The catalog with this machine's selection
dotfiles package setup           # Pending sign-in / interactive installers for selected packages
dotfiles package update          # brew upgrade + AI CLIs, then apply (or: brew | ai)
dotfiles theme set tokyonight    # Color theme for Ghostty, Neovim, tmux, and dotfiles output; `dotfiles theme` lists
dotfiles pack add <url//folder>  # Stack a pack (company, role, personal); also: pack list, pack remove
dotfiles identity                # This machine's GitHub identity: gh, SSH + GPG keys, signing check
dotfiles doctor                  # Health check, each finding with the command that fixes it
dotfiles plan                    # Desired vs installed: migrations, files, packages (+ missing, - deselected)
dotfiles apply                   # Make the machine match the plan (-y skips confirm, --prune uninstalls deselected)
dotfiles diff                    # Full diff of pending file changes
dotfiles config                  # Re-run the setup questions (saved answers kept), then apply
dotfiles status                  # Machine, packages, pending setup, tool versions
dotfiles update                  # Update everything: the CLI, pull the dotfiles, then apply
dotfiles self-update             # Update only the CLI
dotfiles edit                    # Open the dotfiles source in $EDITOR
dotfiles clean                   # Prune build artifacts and caches under ~/github

Desired state, like Terraform. The desired packages are the selection plus required pack entries; what is installed is probed fresh every run (Homebrew, npm, uv, the Linux package manager, or a package's check), never remembered, so a failed install cannot be marked done. dotfiles plan shows the difference, dotfiles apply closes it, and dotfiles update runs both after pulling. Selection changes that ship in a release (for example, existing machines gaining Claude Code) run as migrations on the next apply instead of waiting for chezmoi init. Only packages the CLI has seen installed are offered for --prune; software installed by hand is listed, never removed. Ownership lives in ~/.local/state/dotfiles/managed.json.

dotfiles doctor checks chezmoi, the catalog and selection, whether the CLI is the latest release, unapplied changes, Python (3.12+, gcloud pinned), that gh is signed in as this machine's account, that the commit signing key exists, AI CLIs installed twice (the first on PATH wins), and the package plan: selected packages that are missing, deselected ones still installed, pending migrations, and pending sign-ins. --format json prints the findings for scripts.

What's installed

CLI essentials (Homebrew on macOS, apt/dnf/pacman on Linux): git, gh, fzf, ripgrep, jq, yq, just, tmux, direnv, chezmoi, tree-sitter, uv, tealdeer, fnm, deno, go, lua, ...see Brewfile.tmpl.

Version managers (per-language, best-in-class): fnm (Node), uv (Python), rustup (Rust).

Default Python is a uv-managed CPython 3.12 (run_before_install-python.sh.tmpl): python/python3 link to it from ~/.local/share/dotfiles/python/bin, which zsh puts ahead of Homebrew and /usr/bin, and gcloud uses it through CLOUDSDK_PYTHON. Without it, python3 falls back to macOS's 3.9 (which breaks gcloud components) or to whatever python@3.x Homebrew pulled in. Bump PYTHON_VERSION in that script to change it; it re-checks on every apply, so a failed first install heals on the next.

Upstream-pinned installers (security/auth fixes ship faster than distro repos):

Optional packages live in catalog.toml, grouped by category:

CategoryPackages
cloudDocker + Colima, Kubernetes (kubectl, helm, k9s), Terraform, RunPod, Temporal
languagesZig, Scala (scala-cli + coursier), mise
mobileAndroid Studio + SDK, CocoaPods
fontsNerd Fonts (MonaspiceNe, Iosevka)
notesObsidian, Notion, Granola, Mintlify CLI (mint)
editorsCursor, Visual Studio Code
chatSlack, Slack CLI (slack), Discord, Zoom
productivity1Password, Raycast, Linear, Figma
aiClaude, ChatGPT (desktop apps), Warp Agent CLI (warp, runs in Ghostty), Hugging Face CLI (hf)
mediaSpotify
workAtlassian CLI (acli), Teamwork Graph CLI (twg)
stackteasr (README screenshots and GIFs), oag (OpenAPI client codegen)
skillsAgent skill packs: scaffolding, review, agent authoring, urmzd ecosystem, Vercel, Gemini, FastAPI, Better Auth, gh-stack

Bundles group packages so you pick a toolchain, not ten ids. Selecting a bundle selects all of its packages; drop any one afterwards in the package list.

BundlePackagesPresets
clouddocker, kubernetes, terraform, runpodstandard, full
dev-skillsskills-scaffold, skills-review, skills-agent-devstandard, full
framework-skillsskills-vercel, skills-gemini, skills-fastapi, skills-better-auth, skills-gh-stackfull
mobileandroid, cocoapodsnone
languageszig, scala, misenone
ecosystemteasr, oag, skills-ecosystemnone

Always installed, whatever the selection: the core Brewfile, agentspec, sr, the dotfiles CLI, every subagent, and the core skills (every skill in dot_agents/skills/ that no skill pack lists).

Entries install through Homebrew (formulae and casks), npm -g into fnm's default Node, or uv tool install for Python CLIs. Each machine's selection is the list of ids at packages in its local chezmoi.toml. Change it with dotfiles package: first a bundle list (space to toggle a whole bundle), then the search-as-you-type package list to refine. dotfiles package add cloud takes bundle ids too. Brewfile.tmpl renders the selected entries on macOS; on Linux, run_onchange_after_install-catalog-linux.sh.tmpl installs their apt/dnf/pacman names (entries without any are macOS-only). Packages that need sign-in (acli, twg) finish with dotfiles package setup, never during apply.

On first init, package_preset seeds the selection: minimal = always-installed only (plus Obsidian), standard = + cloud, dev-skills, Nerd Fonts, full = + framework-skills, and custom opens the bundle multi-select. Heavy toolchains (mobile, Temporal, Zig, Scala, mise) and the apps beyond Obsidian are never preset; pick them explicitly. Machines set up before skill packs existed keep every skill pack plus teasr and oag, once, unasked (skills_seeded). pkg_exclude still drops individual core packages by name. To offer a new package, add a [[package]] entry to catalog.toml (and to a [[bundle]] if it belongs to one); no CLI release is needed. Every entry needs a category; for a GUI app use one from the table above and map each cask to its app bundle (apps = { "<cask>" = "<App>.app" }) so an app already in /Applications is skipped instead of failing the install.

The Brewfile installer continues past individual package failures, retries the remainder once, and prints categorized next steps (tap, permission, unknown formula, network, conflict) rather than aborting the whole apply. A cask that conflicts with an app already on disk is reported, not retried.

AI coding CLIs are catalog packages (category agents): Claude Code, Codex, GitHub Copilot CLI, Antigravity (agy), OpenCode, Gemini CLI, Cursor Agent CLI, and Amp. The first chezmoi init asks which to install (multi-select, default Claude Code + Codex); change them any time with dotfiles package. Claude Code, agy, and OpenCode use their own installers, which keep them updated (run_after_install-catalog-scripts.sh.tmpl, retried every apply until present); the rest come from Homebrew (npm on Linux). Codex runs with a workspace-write "Auto" default and writer/reviewer/plan/guardian profiles. dotfiles package update ai upgrades the selected ones.

Adding a new tool

Optional tools (apps, CLIs people pick per machine) go in catalog.toml as a [[package]] entry; dotfiles package add <id> installs one. Company tools go in a pack's catalog.toml instead (Packs). The steps below are for tools every machine gets:

  1. Homebrew: add to Brewfile.tmpl. Linux: add to the apt/dnf/pacman list in run_once_before_install-packages-v2.sh.tmpl.
  2. For tools needing version pinning: write a run_onchange_after_install-<name>.sh.tmpl mirroring the cortex / cloud-clis pattern.
  3. Run chezmoi apply. Completions regenerate automatically, but check which of the three shapes the tool needs first:
    • Ships its own _<tool> into Homebrew's share/zsh/site-functions. Nothing to do, and run_onchange_after_z-generate-completions.sh.tmpl deliberately skips generating a rival copy, since Homebrew's tracks the installed formula version.
    • Has a <tool> completion zsh subcommand but no site-functions. Add a generate_completion line. Output goes to ~/.zsh/completions/ and is autoloaded lazily, so it costs nothing at shell startup.
    • Is bash-style (complete -C / complete -F, as with aws and npm) or otherwise needs compdef. It has to be appended to ~/.zsh/completions-post.zsh instead, which ~/.zshrc sources after compinit. A file placed in fpath without a leading #compdef line is never bound to any command and silently completes nothing.

Adding a new dotfile

  1. Create or edit the file in your home directory
  2. Run chezmoi add <file> to start tracking it
  3. Use dot_ prefix naming, private_ for sensitive files, .tmpl for templates
  4. Platform-specific blocks use {{ if eq .chezmoi.os "darwin" }}...{{ end }}

Configuration

Themes

One theme colors Ghostty, Neovim (colorscheme and lualine), tmux (catppuccin flavour and colors), and the dotfiles' own output. Built-ins live in themes/ (cyberdream, the default; tokyonight; catppuccin-mocha), and any pack can ship a theme.toml. dotfiles theme lists them and marks the one in effect; dotfiles theme set <name> switches and applies (auto follows the last pack theme). The machine's choice is theme in your local chezmoi.toml. themes/README.md has the format and where each app picks it up.

Packs

Company, team, and personal setup lives in optional packs: folders of plain files, usually in a company git repo shareable with teammates whether or not they use these dotfiles. A machine stacks any number of them, in order, in packs (dotfiles pack add|remove|list; a work machine's chezmoi init also asks):

EntryFolder the hooks readFetching
git@github.com:acme/dev-setup.git//backend-engineerthat folder of the reporepo cloned once to ~/.config/packs/dev-setup, fast-forwarded at most daily
https://github.com/acme/team.gitthe whole repocloned to ~/.config/packs/team
~/my-overrides or /paththat folder, in placenone

<url>//<folder> is Terraform's module syntax: one company repo can hold base/, engineer/, backend-engineer/, and so on, and each person stacks the folders for their role. Fetching (run_after_sync-packs.sh.tmpl) never fails the apply: an unreachable or private repo (common on a new laptop before dotfiles identity adds its SSH key), a missing folder, or a non-git folder in the way only prints a warning with the next step. Only the list is stored, in your local chezmoi.toml; nothing from a pack is tracked here. Configs from before the list keep their single work_pack as a one-pack list. To start one, copy pack-template/; its README has the steps.

Every file is optional, and each hook is a no-op when its file is missing:

FileLoaded byWith several packs
env.zsh~/.zshenv (all shells, including agent tool calls)sourced in order; later packs win
gitconfig[include] in ~/.gitconfig (company URL rewrites, extra settings)one include per pack, in order
ssh_configInclude at the top of ~/.ssh/configone Include per pack, in order
Brewfileappended to the Brewfile at install time; excludes and failure reporting apply, and a cask whose app is already in /Applications is skippedall appended
catalog.tomlmerged into the package catalog: entries show in dotfiles package tagged with their pack, and required = true ones always install. Checked before use (valid TOML, required fields); a bad file is ignored with a warning and dotfiles doctor names the probleman id already taken (dotfiles catalog or an earlier pack) is skipped and reported
AGENTS.mdappended to the global Claude Code, Codex, and OpenCode instructions on the next chezmoi applyone block per pack
theme.tomlthe theme for Ghostty, Neovim, tmux, and dotfiles outputthe last pack with a theme applies when the machine sets none

A work machine also defaults git to the work email, skips personal apps (Obsidian) and secrets tooling, and leaves Codex on the default service tier.

One identity per machine. A work machine only pulls this repo (it is public, so no GitHub account is needed for that); edits happen on a personal machine. A work machine is asked for its work email and the work GitHub account it pushes as, signs with work_signing_key, and carries no personal email, key, or account. With no work key, work commits go unsigned rather than borrowing a personal one. chezmoi init finds each GPG key by its email, and the key stays in your local chezmoi.toml, never in the shared work pack.

Setting up a machine's GitHub identity

One command, run on the machine itself, safe to re-run:

dotfiles identity            # add --dry-run to see what it would do first
dotfiles identity --account urmzd-fwai   # change which GitHub account this machine pushes as

It reads the account and email from your chezmoi config (the work account and work email on a work laptop), then:

StepWhat happensSkipped when
ghsigns in as that account in the browser (or switches to it), adds the write:gpg_key, admin:public_key, user:email scopesalready signed in with those scopes
SSHcreates ~/.ssh/github (what ~/.ssh/config uses for github.com) and uploads itthe key exists and GitHub has it
GPGcreates an ed25519 signing key for the email and uploads ita usable key exists and GitHub has it
Emailwarns if the email is not verified on the account (commits would show as unverified)verified
Savewrites the key to work_signing_key / gpg_signing_key and re-applies ~/.gitconfigalready saved
Checkmakes a signed throwaway commit and requires "Good signature"

Passphrases are asked by ssh-keygen and by pinentry-mac's dialog (managed on macOS, so signing also works from editors and agent sessions; tick "Save in Keychain"). chezmoi init also finds an existing key by its email, so creating one by hand works too: gpg --quick-gen-key "Name <email>" ed25519 sign 2y, then gpg --armor --export <email> | gh gpg-key add -.

Chezmoi automation

These scripts run automatically on chezmoi apply. The bootstrap and every dotfiles command apply with --keep-going: a failing step no longer skips the steps after it, failures are listed at the end, and a failed one-time script is retried on the next apply. Run plain chezmoi apply as chezmoi apply --keep-going for the same behavior.

ScriptTypeTrigger
install-packages-v2run_once (before)First apply (installs Homebrew + bootstrap Linux packages)
brewfile-installrun_onchange (after)Brewfile, catalog.toml, the packages selection, pkg_exclude, or a pack Brewfile changes
install-cloud-clisrun_onchange (after)Script changes (re-pin gcloud/aws version)
install-cortexrun_onchange (after)Script changes (gated on install_cortex flag)
install-gh-extensionsrun (after)Every apply; silent once installed. Waits for gh sign-in (dotfiles identity) instead of failing
install-catalog-linuxrun_onchange (after)Linux only: the packages selection or catalog.toml changes
generate-completionsrun_onchange (after)zshrc, Brewfile, or cloud-clis script changes
setup-noderun (after)Every apply; silent unless it installs Node LTS (fnm) or runs a one-time npm migration
install-catalog-scriptsrun (after)Every apply; installs selected installer-based packages (Claude Code, agy, OpenCode) that are missing
install-pythonrun (before)every apply, silent once linked; installs the default Python with uv
install-skillsrun_onchange (after)Selected skill packs change (bootstraps agentspec, adds each pack's agentspec sources)
sync-agent-resourcesrun (after)Every apply (keeps local skills and agents managed by agentspec; removes skills of deselected packs)
install-stackrun_once (after)First apply only (installs sr and the dotfiles CLI)
configure-terminalrun_once (after)First apply only
unload-docker-cleanuprun_once (after)First apply only (macOS: unloads the retired com.docker.cleanup launchd agent)

Every script prints through .chezmoitemplates/ui.sh: one ==> header per script, quiet when nothing changed, and a next step under every warning or failure.

CI and releases

WorkflowRuns onWhat it does
ci.ymlpull requests, and before every release.github/scripts/check.sh renders the full source state for a personal and a work machine on macOS and Linux, then runs the shell gate (lint-shell.sh): every script parses under the shell that runs it, with macOS's bash 3.2 as the floor, no bash-4-only constructs, and every modify_ merge script produces valid, key-preserving output under 3.2; cli/ gets rustfmt, clippy, and tests
release.ymlpush to mainAfter CI passes, sr tags the release, bumps cli/Cargo.toml, and updates CHANGELOG.md from conventional commits; a build matrix then attaches dotfiles-<target> binaries and .sha256 files to the release

Run the same checks locally before pushing: .github/scripts/check.sh, plus cargo fmt --check, cargo clippy --all-targets -- -D warnings, and cargo test in cli/. Release secrets are managed in urmzd/infra.

AI tools

AI coding agents are installed by chezmoi apply (sentinel-gated, no shell-startup cost). Check versions with:

dotfiles status

Per-tool AI config is tracked and deployed by chezmoi:

ToolSourceDefault posture
Claude Codedot_claude/Settings, custom statusline, project-scoped skills
Codexdot_codex/Workspace-write "Auto" base (auto-run safe ops, guardian auto-reviewer vets escalations) + writer/reviewer/plan/guardian profile overlays and /agent subagents
Antigravity CLI (agy)dot_gemini/Legacy Gemini CLI settings kept as agy first-run migration seed; agy config lives in ~/.gemini/antigravity-cli/ (authored in-app via /config and /permissions)
GitHub Copilotdot_copilot/settings.json with model, xhigh effort, theme
OpenCodedot_config/opencode/Shared instructions; agentspec renders agents into ~/.config/opencode/agents/ with inherited models and provider-specific overrides

Codex runs OpenAI's documented "Auto" preset by default: sandbox_mode = "workspace-write" + approval_policy = "on-request", with the guardian auto-reviewer (approvals_reviewer = "auto_review") classifying every escalation before it reaches you. Drop to codex --profile reviewer or --profile plan for read-only work; the guardian profile supervises orchestrate-agents fleets.

Agent Skills

Skills and subagents in this repo are cross-project: once installed via agentspec, they are available to any tool (claude-code, codex, gemini, copilot) from any project. The source-of-truth lives in dot_agents/skills/ and dot_agents/agents/, following the Agent Skills Specification.

Related standards: AGENTS.md and llms.txt

Managing skills

chezmoi apply installs the core skills and every subagent on every machine. The rest come in skill packs, catalog packages (category skills) picked with dotfiles package or the dev-skills and framework-skills bundles (see Usage). A pack's skills list holds dotfiles skill names (deployed to ~/.agents/skills/ only while the pack is selected) and agentspec sources. The install-skills script uses agentspec to link them into every installed agent.

PackSkills
(core, always)ship, pr, review-diff, merge-ready, diagnose-ci, diagnose-runtime, fix-and-retry, use-worktrees, write-code, test-code, clean-docs, sync-docs, audit-security, manage-secrets, sync-release, dotfiles, manage-machine, manage-theme, triage-dotfiles-env, orchestrate-agents
skills-scaffoldscaffold-project, scaffold-go/node/python/rust/terraform, repo-init, check-project, community-health, setup-ci, setup-devenv, choose-stack, build-cli, write-readme, create-llms-txt, configure-ai, update-repo-meta
skills-reviewassess-quality, review-design, release-audit, repo-status, asd-ste100
skills-agent-devagent-design-doctrine, create-oss-skill, extend-oss-skills-to-claude, run-eval-harness
skills-ecosystemwrite-code-portfolio, style-brand, sync-ecosystem, sync-ecosystem-to-chezmoi, setup-devenv-with-chezmoi
skills-vercelvercel-labs/skills, vercel/ai-elements, vercel/streamdown, vercel/ai (ai-sdk)
skills-geminigoogle-gemini/gemini-skills
skills-fastapifastapi/fastapi (fastapi)
skills-better-authbetter-auth/skills (better-auth-best-practices)
skills-gh-stackgithub/gh-stack (gh-stack)

Deselecting a pack removes its dotfiles skills on the next apply. Skills from an agentspec source stay until removed: agentspec manage remove <name>.

To manage skills and agents manually:

agentspec manage list                          # List managed resources with tool linkage
agentspec manage add <source>                  # Add from local path, GitHub (owner/repo), or name
agentspec manage link <name> <tool>            # Link resource to a tool (claude-code, codex, etc.)
agentspec manage remove <name>                 # Remove a managed resource
agentspec manage create [name]                 # Scaffold a new resource
agentspec manage validate [path]               # Validate SKILL.md or agent definition
agentspec status                               # Show managed vs unmanaged inventory
agentspec sync --fast                          # Discover, adopt, link, and verify all resources

All skills

Quality & design (framework -> principles -> operational)

SkillPurpose
assess-qualityFoundational quality framework. The "why" layer above review-design and write-code
review-designPragmatic Programmer principles (DRY, orthogonality, design by contract)
review-diffReview staged, unstaged, and untracked changes using the assess-quality and review-design rubric
write-codeOperational picks: error handling, testing strategy, commit conventions, interface design
write-code-portfolioPersonal portfolio specifics (Nix Flakes, chezmoi machine polymorphism, Powerlevel10k, Neovim)
test-codeTesting philosophy and per-language conventions
build-cliDesign and audit CLI tools end-to-end (output modes, TTY, JSON piping, install.sh, portfolio self-update / --format requirements)
check-projectValidate project structure against scaffold conventions
choose-stackCanonical tech stack reference by purpose

Scaffolding & setup

scaffold-project is the canonical source for standard files; each scaffold-<lang> adds only language-specific deltas.

SkillPurpose
scaffold-projectProject structure and standard files (canonical)
scaffold-goGo-specific deltas (toolchain, CI matrix, release publisher)
scaffold-nodeNode/TypeScript deltas
scaffold-pythonPython deltas
scaffold-rustRust deltas
scaffold-terraformTerraform infra deltas
setup-ciCI/CD pipeline conventions
setup-devenvPer-language version manager + direnv pattern (portable)
setup-devenv-with-chezmoiChezmoi-specific helpers for pinned installers and tracked .envrc
dotfilesChezmoi naming, templating, and agentspec resource management conventions
sync-releaseEnd-to-end release pipeline (sr.yaml, CI, multi-platform builds)
repo-initFull repo bootstrap (create, license, scaffold, push)
community-healthGitHub Community Standards (CODE_OF_CONDUCT, SECURITY, ISSUE_TEMPLATE) with $COMMUNITY_HEALTH_CONTACT

Workflow automation

SkillPurpose
shipGenerate a conventional commit, then optionally push and watch CI until pass/fail
prCreate PRs with auto-generated summary from commits
merge-readyDrive an existing PR or MR to a mergeable state without merging it
diagnose-ciFind failing remote CI pipelines, pull logs, identify root cause (local sibling: diagnose-runtime)
diagnose-runtimeTriage local runtime errors, hangs, slowness, and hardware/serial issues (the local counterpart to diagnose-ci)
manage-themeSwitch, create, or debug the machine theme (Ghostty, Neovim, tmux, dotfiles output) via dotfiles theme and theme files
manage-machineOperate a dotfiles machine through the dotfiles CLI: install or remove catalog tools, dotfiles doctor fixes, updates, and company tools in a pack catalog
triage-dotfiles-envPlaybook of known dotfiles-stack failure modes (pipx shims, gpg signing, nix shellHook, P10k, nvim Lua APIs) with mandatory verification
fix-and-retryDiagnose CI failure, apply fix, commit, push, re-run
repo-statusScan a folder of git repos and report recent activity, branch divergence, and uncommitted state (renamed from status)
release-auditAudit releases, tags, and assets for health
sync-ecosystemAudit one repository against ecosystem conventions and emit a drift report
sync-ecosystem-to-chezmoiApply a sync-ecosystem drift report back into the chezmoi source tree
update-repo-metaUpdate GitHub repo topics, description, homepage
manage-secrets1Password-based secret workflow (vault layout, 1p:// references, op run)
orchestrate-agentsSurvey-first orchestration of agent CLIs (Claude, Codex, Antigravity) over tmux: adopt and extend existing sessions, spawn only what is missing
use-worktreesCreate, enter, and clean up git worktrees under the standard .worktrees/<name> layout

AI & documentation

create-oss-skill owns the base spec; extend-oss-skills-to-claude is a sequel covering only the Claude-specific deltas.

SkillPurpose
agent-design-doctrineHouse doctrine for LLM agent systems: safety in the harness, tools return results, minimal loop code, deterministic evals, POC scope discipline
clean-docsSlash-invocable documentation cleanup: no em dashes, current facts, readable formatting, user-focused guidance
configure-aiAI tooling configuration, AGENTS.md, skills standard
create-llms-txtGenerate llms.txt files
create-oss-skillCreate portable agent skills (canonical spec)
extend-oss-skills-to-claudeClaude-specific skill deltas (invocation control, subagent execution, model overrides)
audit-securitySecurity auditing and threat detection
run-eval-harnessRun a project's eval suite end to end: launch, monitor, parse the report, diff against the previous run (forks to a sonnet subagent)
style-brandFrame and document a project's visual identity. Ships Cyberdream + MonaspiceNe + teasr as a template, not a mandate
sync-docsAudit and synchronize project documentation (canonical doc-drift skill)
write-readmeREADME structure and section order

Subagents

Delegation targets in dot_agents/agents/ that adopt a specific reasoning mode. Installable into any tool via agentspec manage link <name> <tool>.

AgentPurpose
architectInterface-first systems design with verbose, principle-driven reasoning
curatorPrescriptive perfectionist for consistency, polish, and visual hierarchy
debuggerTerse, empirical root-cause analysis
guardianSupervises orchestrated agent fleets driven by the orchestrate-agents skill (also installed as a Codex profile)
ideatorExpansive, generative creative exploration
strategistImperative orchestration across multiple systems and repos
technical-documentation-architectStructured technical documentation and architecture docs
writerConcise, outcome-focused technical documentation

License

Apache-2.0

↑↓ navigate openesc close