From claude-mac-guardian
This skill should be used when the user asks to "check machine security", "run a security audit", "is my mac secure", "scan my machine", "audit my mac", or mentions SIP, Gatekeeper, FileVault, firewall, login items, launch agents, SSH keys, or authorized_keys. Performs a read-only macOS security posture audit and writes a structured JSON result to ~/.mac-guardian/data/.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-mac-guardian:machine-security-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Performs a read-only posture audit of a macOS machine across system protections, persistence points, and credential surfaces, then writes the result to the shared data directory.
Performs a read-only posture audit of a macOS machine across system protections, persistence points, and credential surfaces, then writes the result to the shared data directory.
Trigger on phrases like: "check machine security", "security audit", "is my mac secure", "scan my machine", "audit my mac".
Run each check as a read-only shell command. Never prompt for or request sudo. If a command needs elevation and is not available without it, record the check with severity info and a detail of "not available without elevation" rather than requesting privileges.
System protections (severity guidance in parens)
csrutil status. Expect "enabled". If disabled, severity critical.spctl --status. Expect "assessments enabled". If disabled, warn.fdesetup status. Expect "On". If "Off", critical. If not determinable, info.defaults read /Library/Preferences/com.apple.alf globalstate 2>/dev/null. 0 = off (warn), 1 or 2 = on (ok).defaults read /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled 2>/dev/null and related keys. Off is info.defaults read com.apple.screensaver askForPassword 2>/dev/null. Unset or 0 is warn.Persistence and startup
osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null. List names; if any look unfamiliar, mark individual findings info.ls -la ~/Library/LaunchAgents 2>/dev/null. Report count and any with very recent mtime (<7 days) as info. Any unsigned binary target = warn.ls /Library/LaunchAgents /Library/LaunchDaemons 2>/dev/null. Report counts only (avoid flooding findings).crontab -l 2>/dev/null and atq 2>/dev/null. Any entries = info with the content in raw.Credential surfaces
~/.ssh/id_* (not .pub). For each, report type and whether it is encrypted (grep -q "ENCRYPTED" <key> or ssh-keygen -y -P "" -f <key> >/dev/null 2>&1). Unencrypted private keys = warn.~/.ssh/authorized_keys. Report line count. >0 entries = info with the comment fields (last field) listed.security list-keychains. Just report names as raw, no severity.Recent filesystem activity
find /Library/LaunchAgents /Library/LaunchDaemons ~/Library/LaunchAgents ~/.ssh -type f -mtime -7 2>/dev/null. Any result = info, list up to 20 paths.~/.zshrc ~/.bashrc ~/.bash_profile ~/.profile for curl | sh, wget | sh, eval \"\$(curl, or base64-decoded eval. Matches = warn.After collection, construct a single JSON envelope matching the shared schema:
{
"skill": "machine-security-check",
"timestamp": "<ISO8601 UTC>",
"severity": "<highest finding severity: ok|info|warn|critical>",
"summary": "<one-line human summary, e.g. 'All protections on. 2 informational items.'>",
"findings": [
{ "id": "sip", "severity": "ok", "title": "SIP enabled", "detail": "System Integrity Protection: enabled." }
],
"raw": { "<key>": "<trimmed raw output>" }
}
Write it to ~/.mac-guardian/data/machine-security-check-<ISOdate>.json. Use the helpers in ${CLAUDE_PLUGIN_ROOT}/scripts/_common.sh when scripting; or write directly using date +%Y-%m-%d for the filename.
After writing JSON:
daily-health-report), also render and open a standalone mini HTML report:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/render-single.sh machine-security-checkdaily-health-report, return the JSON path only.sudo. If elevation would be required for a check, record it as informational.npx claudepluginhub dennisonbertram/claude-mac-guardian --plugin claude-mac-guardianCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.