# Case: `council-report-json-shape-is-stable`

## 用例意义

验证 `council report --json` 返回稳定 JSON 契约，包含 `show`、`summary`、过滤后的 grouped recommendations，以及 report artifact 元数据。

## 前置条件

- 已按 `council-report-defaults-to-consensus-and-majority` 的前置流程完成 reviewer 输出与 `council tally`
- 运行 ID 为 `council_blog_report_003`

## 输入

```bash
orch --db TMPDIR/coord.db --json council report \
  --run council_blog_report_003
```

## 预期输出

- 退出码为 `0`
- `ok == true`
- `command == "council report"`
- `data.run_id == "council_blog_report_003"`
- `data.show == ["consensus","majority"]`
- `data.summary.consensus == 1`
- `data.summary.majority == 1`
- `data.summary.minority == 1`
- `data.report_artifacts` 长度为 `1`
- 首个 artifact 的 `kind == "markdown"`
- `data.grouped_recommendations` 长度为 `2`
- 第一组 recommendation 的 `bucket == "consensus"`

## 断言结论

- `--json` 模式返回的是 leader 可继续消费的稳定 machine-readable contract
- 默认 JSON 输出只返回被当前 `show` 过滤后的 recommendation，而 summary 仍保留全量 bucket 统计

## 补充约束

- 即使 `--json` 模式返回 artifact path，markdown artifact 仍应实际落盘
