.claude/skills/agents-local-md/SKILL.md
Generate machine-specific AGENTS.local.md with host facts and system tool details
npx skillsauth add ivy/dotfiles agents-local-mdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Probe this machine's environment and write AGENTS.local.md — a machine-specific context file that Claude Code auto-loads via CLAUDE.local.md symlink.
$ARGUMENTS
Options:
--force — regenerate even if the file is freshIf AGENTS.local.md exists in the repo root:
stat -c %Y AGENTS.local.md 2>/dev/null || stat -f %m AGENTS.local.md 2>/dev/null
Read the file and extract the Generated: line. If ALL of these are true, report "AGENTS.local.md is current (generated DATE on HOSTNAME)" and stop:
--force was NOT passed in argumentsOtherwise, continue to regenerate.
Gather:
uname -s # OS kernel (Darwin/Linux)
uname -m # Architecture (x86_64/arm64)
hostname -s # Short hostname
cat /etc/os-release # Linux distro details (skip on macOS)
Determine which system package manager is available:
command -v brewcommand -v dnf or command -v aptOnly probe tools that vary across systems and affect agent behavior: zsh, tmux, nvim.
These are system-installed, version-significant tools where the difference between (say) zsh 5.8 vs 5.9, tmux 3.3 vs 3.5, or nvim 0.9 vs 0.11 changes what features/APIs are available. Mise-pinned tools are the same everywhere — don't list them.
For each tool, collect:
zsh --version, tmux -V, nvim --versioncommand -v <tool>chezmoi data --format json | grep -E '"os"|"arch"|"hostname"'
Record what chezmoi sees — this is what drives template conditionals.
Write the file to the repo root (AGENTS.local.md). Target <30 lines. Use this structure:
# AGENTS.local.md
> Machine-specific context for coding agents. Auto-generated — do not edit.
> Regenerate with `/agents-local-md --force`.
Generated: YYYY-MM-DD on HOSTNAME (OS ARCH)
## System
- **OS:** Fedora 42 (Linux 6.x) / macOS 15.x (Darwin)
- **Arch:** x86_64 (amd64) / arm64
- **Hostname:** name
- **Package manager:** dnf (`/usr/bin/dnf`) / brew (`/opt/homebrew/bin/brew`)
## Core Tools
| Tool | Version | Path |
|------|---------|------|
| zsh | 5.9 | `/usr/bin/zsh` |
| tmux | 3.5a | `/usr/bin/tmux` |
| nvim | 0.11.5 | `/usr/bin/nvim` |
## Chezmoi Platform
chezmoi sees: os=`linux`, arch=`amd64`, hostname=`core`
What belongs here: facts that vary across machines and change agent behavior.
What does NOT belong:
ln -sf AGENTS.local.md CLAUDE.local.md
test -f AGENTS.local.md && echo "AGENTS.local.md exists"
test -L CLAUDE.local.md && readlink CLAUDE.local.md
git status AGENTS.local.md CLAUDE.local.md
Confirm:
AGENTS.local.md exists with contentCLAUDE.local.md symlink points to AGENTS.local.mdgit status)Report: "Generated AGENTS.local.md (N lines) — CLAUDE.local.md symlinked. Both gitignored."
tools
Write a handoff brief summarizing the current conversation so a fresh agent can pick up the work. Writes to a file if given, otherwise copies to the clipboard.
data-ai
Use when the user wants to set, change, or clear git commit co-authors for pair or mob programming.
tools
Use when bootstrapping hk pre-commit hooks for a project.
testing
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".