machine-parity
SKILL.md
Machine Parity Check
Quick cross-machine runtime state comparison between laptop and Mac mini.
When to Use
- "Are my machines in sync?" — run
parity-check.sh - After pushing agent-config changes (verify the dual-push landed)
- After upgrading pi, claude, codex, openclaw, or node on one machine
- After
pi installorpi uninstallon either machine - When debugging behavior differences between machines
How to Run
# Human-readable output (default)
~/.agent-config/scripts/parity-check.sh
# JSON output for agent consumption
~/.agent-config/scripts/parity-check.sh --json
What It Checks
| Category | Checks |
|---|---|
| Agent infra | pi version, pi packages, agent-config HEAD/branch, pi-messenger version/branch/source, openclaw version |
| Core tools | node, claude, codex versions |
| Homebrew | All 20 Brewfile packages installed on both machines |
Understanding the Output
| Verdict | Meaning | Action |
|---|---|---|
| PASS | Both machines have the same value | None needed |
| DRIFT | Values differ between machines | Update the behind machine |
| DRIFT (expected) | Values differ but this is intentional (e.g., pi_packages) | Informational only |
| MISSING (local/remote) | Tool/package not installed on one side | Install on the missing side |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | All PASS or DRIFT (expected) — machines are in sync |
| 1 | Unexpected DRIFT or MISSING detected |
| 2 | SSH connectivity failure or timeout |
| 3 | Missing dependency (jq for --json) |
JSON Output for Agents
# Parse with jq
~/.agent-config/scripts/parity-check.sh --json | jq '.[] | select(.verdict != "PASS")'
Each entry has: check, local, remote, verdict.
Common DRIFT Fixes
| Check | Fix |
|---|---|
| pi_version | ssh mini-ts "pi upgrade" or npm update -g @mariozechner/pi-coding-agent |
| claude_version | ssh mini-ts "claude update" |
| codex_version | ssh mini-ts "npm update -g @openai/codex" |
| openclaw_version | Rebuild and deploy openclaw on the behind machine |
| agent_config_head | Push should auto-sync via dual-push; if stuck, ssh mini-ts "cd ~/.agent-config && git pull" |
| brew:* MISSING | ssh mini-ts "brew install <package>" |
Boundary with agent-config-parity
Two parity tools exist — each with a different scope:
| Tool | Scope | Use When |
|---|---|---|
parity-check.sh (this) |
Runtime state — tool versions, git state, Homebrew | "Are my machines running the same stuff?" |
agent-config-parity |
Config surface — symlinks, paths, managed surfaces | "Are my config files wired correctly?" |
Known Limitations
pi listformat dependency: If pi changes its output format, the pi-messenger path extraction may break. The script falls back to MISSING (not crash).- openclaw pre-release suffixes: Compared as raw strings.
2026.3.9vs2026.3.9-beta.1correctly shows DRIFT. - pi_packages intentional drift: Packages differ by design (laptop has more). Shown as DRIFT (expected), doesn't affect exit code.
Weekly Installs
1
Repository
carmandale/agent-configGitHub Stars
2
First Seen
6 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1