From skills
Audits dotfiles health: shell startup time, zsh plugin weight, stow symlink integrity, Neovim startup, tool inventory, and security. Produces a prioritized cleanup report.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Full health check of the dotfiles setup. Run all steps in order — each takes seconds and together they give a complete picture.
Full health check of the dotfiles setup. Run all steps in order — each takes seconds and together they give a complete picture.
Security check runs first: it's always highest priority.
Scan for credentials before anything else.
# API keys, tokens, passwords in config files
grep -rE "(API_KEY|TOKEN|SECRET|PASSWORD)\s*=\s*['\"][^'\"]+['\"]" ~/.dotfiles/ 2>/dev/null
# Common token prefixes
grep -rE "(ghp_|sk-|AKIA|-----BEGIN.*PRIVATE KEY-----)" ~/.dotfiles/ 2>/dev/null
Flag any findings as CRITICAL — credentials in dotfiles can leak via git.
File permission check — these should be 600:
stat -f "%A %N" ~/.dotfiles/.gitconfig-work ~/.dotfiles/.gitconfig-personal 2>/dev/null
Git safety — verify .gitignore in the dotfiles repo includes:
.env, *_token, *_secret, 99-local.zsh, **/*.local.*time zsh -i -c exit
Target: <200ms. >500ms means something is blocking during interactive init.
If slow, isolate which zsh.d file is the culprit:
# Add timing to each zsh.d file temporarily
for f in ~/.zsh.d/*.zsh; do
time zsh -c "source $f" 2>&1 | grep real
echo " ^ $f"
done
Check ~/.dotfiles/zsh/.zshrc and ~/.dotfiles/zsh/zsh.d/ for plugin loading (zinit, antigen, oh-my-zsh, etc.).
Flag heavy plugins:
nvm / rbenv / pyenv with eager shell integration (use lazy variants)# Find broken symlinks in home directory (depth 3 to avoid scanning everything)
find ~ -maxdepth 3 -type l ! -e 2>/dev/null
A broken symlink means the stow source file was deleted or moved without re-stowing. Fix: either restore the source file or stow -D <package> to remove the dead link.
nvim --headless --startuptime /tmp/nvim-startup.log +q && sort -k2 -n /tmp/nvim-startup.log | tail -20
Target: <150ms. >300ms needs investigation.
Check which plugins are loading eagerly: the top entries after sorting are the slowest. Cross-reference against the plugin list to find candidates for lazy-loading.
Verify tools referenced in dotfiles are actually installed:
which sesh tmux yabai starship lazygit gh bat fd rg zoxide fzf
Any not found means either:
Cross-reference ls ~/.dotfiles/ (stow packages) against the tools found in Step 5. A package with no corresponding installed binary is an orphan.
ls ~/.dotfiles/
Review each package: if the tool it configures isn't installed and you're not planning to use it, consider archiving the package or adding a note.
After running all steps, produce a report:
DOTFILES AUDIT REPORT
=====================
Security
🔴 Critical: [N issues] / ✅ Clean
[List any credential finds with file:line]
[File permission issues]
[Git safety gaps]
Startup Times
Shell: Xms (target <200ms) — [OK | SLOW: investigate zsh.d/X.zsh]
Neovim: Xms (target <150ms) — [OK | SLOW: top culprits: plugin1, plugin2]
Symlink Health
Broken links: X found
[list each broken link and its expected source]
Tool Inventory
Installed: sesh, tmux, starship, ...
Missing: [tool] — config exists at ~/.dotfiles/<package> (orphan or needs install)
Recommended Cleanups (priority order)
1. [most impactful fix — security first, then startup time, then cosmetic]
2. ...
Security issues always rank first regardless of other findings.
| Priority | Load when | Reference |
|---|---|---|
| High | Security scan finds issues or credential patterns need review | references/security-patterns.md |
| High | Shell startup is slow and needs profiling strategies | references/shell-performance.md |
| High | Deep component-by-component analysis needed | references/component-analysis.md |
| Medium | Broad pattern reference for security, perf, and tool integration | references/analysis-patterns.md |
| Low | Git config issues found (permissions, multi-identity) | references/git-config.md |
npx claudepluginhub kriscard/skillsGuides ShellCheck configuration, installation, .shellcheckrc setup, error codes, and integration for static analysis of bash/sh scripts. Use for linting in CI/CD, fixing issues, and ensuring portability.
Audits Claude Code configurations for best practices in skills, instructions, MCP servers, hooks, plugins, security, over-engineering, and context efficiency via file scans and focused checks. Invoke with /claudit [focus-area].
Configures ShellCheck static analysis for shell script quality, including CI/CD integration, error code understanding, and rule configuration.