test(#168c Task 2): add no-silent emission contract guard for 14 verbs
Phase 0 Task 2 of the JSON Productization Program: no-silent guarantee.
The emission contract under --output-format json requires:
1. Success (exit 0) must produce non-empty stdout with valid JSON
2. Failure (exit != 0) must still emit JSON envelope on stdout (#168c)
3. Silent success (exit 0 + empty stdout) is forbidden
This test iterates 12 safe-success verbs + 2 error cases, asserting each
produces valid JSON on stdout. Any verb that regresses to silent emission
or wrong-stream routing will fail this test.
Covered verbs:
- Success: help, version, list-sessions, doctor, mcp, skills, agents,
sandbox, status, system-prompt, bootstrap-plan, acp
- Error: prompt (no arg), doctor --foo
Phase 0 progress:
- Task 1 ✅ Stream routing (#168c fix)
- Task 2 ✅ No-silent guarantee (this test)
- Task 3 ⏳ Per-verb emission inventory (SCHEMAS.md)
- Task 4 ⏳ CI parity test (regression prevention)
Tests: 17 output_format_contract tests all pass (+1 from Task 2).
Refs: #168c, cycle #90, Phase 0 Task 2