working-with-mise — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited working-with-mise (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
mise is a polyglot tool version manager. Use this skill when:
mise exec as a permanent workaroundTools where different projects need different versions:
# Good mise candidates - version sensitivity
mise use node@20 # Projects may need different Node versions
mise use [email protected] # IaC often pins specific versions
mise use [email protected] # Gemfiles often require specific RubyStable CLIs with consistent interfaces across versions:
# Better as Homebrew - version doesn't matter
brew install jq gh ripgrepAsk yourself:
Before adding tools, detect what config format the project uses:
# Check for existing mise config
ls -la mise.toml .mise.toml .mise.local.toml .tool-versions 2>/dev/nullConfig file precedence (mise uses the first it finds):
mise.toml or .mise.toml - standard mise config.mise.local.toml - local overrides (usually gitignored).tool-versions - legacy asdf formatIf a config file exists, use that format. Don't create a new one.
mise use to add toolsAlways use the CLI - it validates the tool exists and works:
# Add to project config (mise.toml or existing format)
mise use node@20
# Add to global config (~/.config/mise/config.toml)
mise use -g [email protected]
# Dry run to see what would happen
mise use --dry-run [email protected]Never manually edit config files - mise use ensures:
# Check mise sees the tool
mise ls
# Check the tool is on PATH
which node
node --version
# Compare with mise's view
mise which nodeWhen a tool should be available but isn't found:
# 1. Check mise installation health
mise doctor
# 2. Check what tools mise knows about
mise ls # All installed tools
mise ls --current # Tools for current directory
# 3. Compare which vs mise which
which node # What shell finds
mise which node # What mise thinks it should be
# 4. Check if tool would work via mise exec
mise exec -- node --version # If this works, it's an activation issue#### Shell activation not set up
Symptom: mise exec -- node works, but node doesn't
Diagnose:
mise doctor # Look for activation warningsFix - add to shell rc file:
# For zsh (~/.zshrc)
eval "$(mise activate zsh)"
# For bash (~/.bashrc)
eval "$(mise activate bash)"
# For fish (~/.config/fish/config.fish)
mise activate fish | sourceThen restart your shell or source the rc file.
#### Config file not trusted
Symptom: mise shows trust warning, tools not activated
Fix:
mise trust#### Tool not installed for current directory
Symptom: mise ls shows tool globally but not in mise ls --current
Diagnose:
# Check what config file applies
mise config
# Check if there's a local config overriding global
cat mise.toml .mise.toml .tool-versions 2>/dev/nullFix: Add the tool to the project config:
mise use node@20 # Adds to project config#### Shims vs PATH activation confusion
Symptom: Tools work in terminal but not in IDE/scripts
See references/dev-tools/shims-html.md for detailed explanation.
Quick fix for non-interactive contexts:
# In ~/.zprofile or ~/.bash_profile (non-interactive)
eval "$(mise activate zsh --shims)"
# In ~/.zshrc or ~/.bashrc (interactive)
eval "$(mise activate zsh)"mise exec (legitimately)mise exec is appropriate for:
mise exec node@18 -- npm testmise exec is NOT a fix for:
After configuration changes, verify everything works:
# Full health check
mise doctor
# Verify specific tool
mise which node && node --version
# Verify PATH includes mise tools
echo $PATH | tr ':' '\n' | grep misemise use documentationmise use insteadmise doctor to verify~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.