conclave ask ... --json with no available members exits 0 with {"answers": [], ...}, while the human path exits 1. The as_json early-return (src/conclave/cli.py:197) happens before the no-members guard (cli.py:200). A CI/script consumer can't distinguish "no models had keys" from "ran fine."
Acceptance
- Decide and document the contract: either
--json also exits non-zero on zero members (preferred for scriptability) or it's explicitly documented as "always 0 in JSON mode."
- CLI test pins the chosen exit code.
Source: pre-dev planning audit 2026-06-08 (finding D-6). Affects the researcher/integrator persona.
conclave ask ... --jsonwith no available members exits 0 with{"answers": [], ...}, while the human path exits 1. Theas_jsonearly-return (src/conclave/cli.py:197) happens before the no-members guard (cli.py:200). A CI/script consumer can't distinguish "no models had keys" from "ran fine."Acceptance
--jsonalso exits non-zero on zero members (preferred for scriptability) or it's explicitly documented as "always 0 in JSON mode."Source: pre-dev planning audit 2026-06-08 (finding D-6). Affects the researcher/integrator persona.