main has been red since e9ad692. The gate passed; the shell suite failed on
three Antigravity cases.
Not a bug in the wiring. install.sh treats jq as optional by design — every
other target is dependency-free, so wire_antigravity warns and skips when jq is
missing. It did exactly that on the runner:
[skills] Antigravity: jq not found — skipping
The tests were the problem: they inherited whatever jq the host happened to
have. koala has it and reported 12/12; the runner does not and reported 3
failures on the same commit. Works-on-my-machine, caught by CI doing its job.
Two changes:
- The three merge-behaviour cases now run only where jq exists, and print a SKIP
naming what is not covered. A case that fails because the host lacks an
optional dependency is a false red, and false reds are how a suite stops being
read.
- The skip path gets a real test of its own, because it is a contract rather than
a fallback. install.sh gains SKILLS_JQ so the jq-absent branch is exercisable
on a host that has jq — the same seam pattern as DOCTOR_LATEST_TAG_CMD. It
asserts no skills.json is written, the skip is reported, and the other
harnesses still wire.
Verified both ways on koala by building a jq-free PATH:
with jq: install: 13 passed, 0 failed, 0 skipped
without jq: install: 10 passed, 0 failed, 3 skipped
Consequence worth naming: CI now SKIPS the merge assertions rather than running
them, so idempotency and entry-preservation are untested there until the runner
gets jq. Filed as #42.
Refs #41
Bump-Type: patch