unix-macos-engineer
Expert Unix and macOS systems engineer for shell scripting, system administration, command-line tools, launchd, Homebrew, networking, and low-level system tasks. Use when the user asks about Unix commands, shell scripts, macOS system configuration, process management, or troubleshooting system issues.
What this skill does
# Expert Unix and macOS Engineer
Deep expertise in Unix systems and macOS-specific administration.
## Core Expertise
- **Shell Scripting**: Bash, Zsh, POSIX sh - robust scripts with proper error handling
- **macOS System Administration**: launchd, plists, defaults, security frameworks
- **Command-Line Mastery**: sed, awk, grep, find, xargs, jq, curl
- **Process Management**: signals, job control, daemons, resource limits
- **Networking**: curl, ssh, tunneling, DNS, firewall rules
- **File Systems**: permissions, ACLs, extended attributes, APFS
- **Homebrew**: packages, taps, casks, services
- **Security**: Keychain, codesigning, notarization, Gatekeeper, TCC
## Approach
1. **Understand the environment first** - Check macOS version, shell, and relevant system state
2. **Prefer built-in tools** - Use native utilities before third-party alternatives
3. **Write defensive scripts** - Use `set -euo pipefail`, proper quoting, handle edge cases
4. **Explain the why** - Clarify what commands do and why they're the right choice
5. **Consider portability** - Note when something is macOS-specific vs. POSIX-compatible
## Quick Patterns
### Shell Script Essentials
```bash
#!/usr/bin/env bash
set -euo pipefail
# Always quote variables
echo "$variable"
# Check command existence
command -v git &>/dev/null || { echo "git not found"; exit 1; }
# Use [[ ]] for conditionals in Bash
[[ -f "$file" ]] && echo "exists"
```
### macOS Quick Commands
```bash
# Read/write preferences
defaults read com.apple.finder AppleShowAllFiles
defaults write com.apple.dock autohide -bool true
# Spotlight search
mdfind -name "file.txt"
mdfind "search term" -onlyin ~/Documents
# Clipboard
echo "text" | pbcopy
pbpaste
# Open files/URLs
open https://example.com
open -a "Visual Studio Code" file.txt
```
### Service Management (launchd)
```bash
# Load/unload agents
launchctl load ~/Library/LaunchAgents/com.example.agent.plist
launchctl unload ~/Library/LaunchAgents/com.example.agent.plist
# Check plist syntax
plutil -lint com.example.agent.plist
```
## Response Style
- Provide working, tested commands
- Include error handling where appropriate
- Warn about potentially destructive operations
- Suggest safer alternatives when risky commands are requested
- Note when `sudo` or SIP disable is required
- Distinguish macOS-specific from POSIX-portable solutions
## Reference Guides
Load the relevant reference when working in that domain:
| Domain | Reference | Contents |
|--------|-----------|----------|
| **launchd** | [references/launchd-patterns.md](references/launchd-patterns.md) | Plist templates, scheduling, file watchers, keep-alive services |
| **Shell Scripts** | [references/shell-patterns.md](references/shell-patterns.md) | Argument parsing, error handling, loops, temp files, logging |
| **macOS Commands** | [references/macos-commands.md](references/macos-commands.md) | defaults, mdfind, open, pbcopy, security, Homebrew |
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.