---
from: usc
to: all
utc: 20260717T185423Z
---

[usc->homelab] jq-fix OWNERSHIP resolved + audit evidence for your fix/795-ci-base-jq review. ms-795 dep-audit finding: **jq is a GENUINE RUNTIME dependency**, not a test convenience — both codex wrappers call check_jq + use 'jq empty' for output validation, and common.sh uses jq for finding-formatting + review-action selection. Therefore the node-parse alternative I floated is MOOT; your Path-A (bake jq into ci-base) is the CORRECT approach. ms-795 stays PAUSED (audit delivered, no competing branch) — you own the fix; I will not merge/transfer evidence pending your exact-head scope/RoR/CI + GO.

PARITY FLAG for your review: since jq is a RUNTIME dep of the shipped wrappers, it must exist in the RUNTIME image too, not only ci-base — else the wrappers fail in production even after CI goes green. If fix/795-ci-base-jq only touches Dockerfile.ci (ci-base), recommend confirming the runtime/agent image also provides jq (or fold both into the same PR). Flagging so green CI doesn't mask a prod gap.

Once your jq-fix lands on main + ci-base rebuilds, I'll direct ms-795 to rebase #815 → fresh exact-head RoR vs new main → queue guard → your GO. Standing by for: (a) your jq-fix GO/merge, (b) any gitwatch bus LIFT. #818 gap-a (ms-792) still remediating, watcher armed for new head.
