audit
Audits the entire dotfiles setup: shell startup time, zsh plugin weight, stow symlink health, Neovim startup, installed tool inventory, and orphan configs. Produces a prioritized cleanup report. Make sure to use this skill whenever the user says "audit my dotfiles", "clean up my dotfiles", "optimize my shell", "what's slowing my terminal", "review my dotfiles", or runs /audit. Also triggers when the user asks why their terminal or Neovim is slow and they want a full investigation rather than a targeted fix.
What this skill does
# Dotfiles Audit 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. ## Step 0: Security Scan Scan for credentials before anything else. ```bash # 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: ```bash 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.*` ## Step 1: Shell Startup Time ```sh 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: ```sh # 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 ``` ## Step 2: Zsh Plugins Audit Check `~/.dotfiles/zsh/.zshrc` and `~/.dotfiles/zsh/zsh.d/` for plugin loading (zinit, antigen, oh-my-zsh, etc.). Flag heavy plugins: - Large completion frameworks loaded synchronously - `nvm` / `rbenv` / `pyenv` with eager shell integration (use lazy variants) - Any plugin that makes network calls or spawns subprocesses at init ## Step 3: Stow Symlink Health ```sh # 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. ## Step 4: Neovim Startup Time ```sh 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. ## Step 5: Tool Inventory Check Verify tools referenced in dotfiles are actually installed: ```sh which sesh tmux yabai starship lazygit gh bat fd rg zoxide fzf ``` Any `not found` means either: - The tool was uninstalled but its config is still in dotfiles (orphan config) - The tool isn't installed yet on this machine (new machine setup) ## Step 6: Orphan Config Detection Cross-reference `ls ~/.dotfiles/` (stow packages) against the tools found in Step 5. A package with no corresponding installed binary is an orphan. ```sh 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. ## Report Format 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. ## References | 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` |
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.