| name | cross-agent-install-smoke |
| description | Phase 1 dry-run JSON smoke and phase 2 temp-HOME install smoke for skills sync. Use when validating cross-harness install parity. NOT for live --apply installs. |
| user-invocable | true |
| argument-hint | [phase] |
| license | MIT |
| metadata | {"author":"wyattowalsh","version":"1.0.0"} |
Cross-Agent Install Smoke
Validate additive skills sync without mutating live harness installs.
Scope: Install smoke only. Do not run live apply installs unless the maintainer explicitly requests it.
Dispatch
| $ARGUMENTS | Action |
|---|
Empty / phase1 / dry-run | Run phase 1 dry-run JSON assertions |
phase2 / local / smoke | Run phase 2 temp-HOME smoke (requires INSTALL_SMOKE=1) |
all | Run phase 1, then phase 2 when gated |
help | Show phases, gates, and example commands |
Phase 1 — Dry-Run JSON
Run the deterministic checker from the repo root:
uv run python skills/cross-agent-install-smoke/scripts/dry_run.py
Phase 1 executes the repo skills-sync dry-run command and asserts:
- top-level keys:
ok, mode, inventory_count, include_installed, agents
mode is dry-run
- each agent row includes
agent plus list fields missing, already_present, unresolved, skipped
Pass criteria: script exits 0 and prints a JSON summary to stdout.
Phase 2 — Temp-HOME Smoke
Phase 2 is opt-in and mutates only a temporary home directory.
INSTALL_SMOKE=1 uv run python skills/cross-agent-install-smoke/scripts/local_smoke.py
The script:
- Refuses to run unless
INSTALL_SMOKE=1
- Creates an isolated
HOME under a temp directory
- Runs the repo validation command against the repo
- Runs a single-harness skills-sync dry-run JSON probe
- Cleans up the temp home
Never point phase 2 at a production home directory.
Validation Contract
uv run python skills/cross-agent-install-smoke/scripts/check.py
INSTALL_SMOKE=1 uv run python skills/cross-agent-install-smoke/scripts/check.py
Completion criteria:
- Phase 1 (
dry_run.py) exits 0 in CI and local maintainer runs.
- Phase 2 runs only when
INSTALL_SMOKE=1 is set.
scripts/check.py exits 0 for the selected phase gates.
Critical Rules
- Default to dry-run; never apply live installs from this skill.
- Treat skills sync JSON as evidence, not authority over repo policy.
- Run phase 1 before recommending any cross-harness install reconciliation.
- Gate phase 2 behind
INSTALL_SMOKE=1 and a disposable temp HOME.
- Report harness-specific inventory errors without masking top-level
ok: false.