cross-agent-install-smoke
About cross-agent-install-smoke
cross-agent-install-smoke is a repository skill for checking additive skill-sync installs without changing live harness installations. It provides a default dry-run check and an opt-in smoke test isolated to a temporary HOME.
Key features
- 01Dry-run JSON assertions
- 02Opt-in temporary HOME smoke test
- 03INSTALL_SMOKE=1 phase gate
- 04Validation script for selected gates
Use cases
- 01Check skills-sync JSON in CI or locally
- 02Test install behavior without using a live home directory
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ wyattowalsh/ agents --skill cross-agent-install-smokeAfter installing, type/cross-agent-install-smokein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
evals/evals.jsonscripts/check.pydry_run.pylocal_smoke.pyscripts/asset_toolkit/validate_hooks.pyDetails
From the project READMECross-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 modeisdry-run- each agent row includes
agentplus bucket fieldsmissing,already_present,unresolved,skipped - bucket fields may be legacy string lists or compact objects
{count, sample, truncated}(Wave 1b+ default JSON) - when present, optional buckets (
projection_ensure,projection_blocked,store_missing,internal_projection,pin_blocked) use the same shapes
Pass criteria: script exits 0 and prints a JSON summary to stdout. Phase 1 is dry-run only — never --apply.
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
HOMEunder 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) exits0in CI and local maintainer runs. - Phase 2 runs only when
INSTALL_SMOKE=1is set. scripts/check.pyexits0for 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=1and a disposable tempHOME. - Report harness-specific inventory errors without masking top-level
ok: false.