> **发布元数据**：WorkBuddy · Kimi K3（评测者确认）· R01
> **来源**：`workbuddy/输出/workbuddy/T05/R01/BENCHMARK_RESULT.md`
> **原始文件 SHA-256**：`cfb26736cd9cd72f51920dae5db9d96d0a6dcdc1d109666f253970e4024dacdf`
> 本公开副本已将评测机绝对路径归一化；下文 PASS/FAIL/BLOCKED 是执行报告自述状态，不等同于独立验收结论。

---

BENCH-RUN T05 R01

# T05 增加 JSON 输出

## 结果
PASS

## 实际改动
- `ledger/summary.py`：新增可复用 `summarize_by_category(transactions)`，返回 `{原始类别文本: 整数分总和}`，键按 Unicode 码点升序。
- `ledger/cli.py`：`summary` 子命令新增 `--format {text,json}`（默认 text）；json 分支用 `json.dumps(payload, ensure_ascii=False)` 输出 `{count,total_cents,by_category}`，stdout 仅 JSON；text 分支保持基准格式不变。
- 新增 `tests/test_summary_json.py`（7 个用例：必需字段、纯 JSON、整数分、键码点有序、稳定性、默认 text 不变、汇总函数）。
- `docs/usage.md`：补充 `--format json` 用法说明。
- 未删改已有测试，未增加运行时依赖。

## 实际运行的命令与结果
- `python3 -m unittest discover -s tests -v` → Ran 11 tests，OK（exit 0）。
- CLI 实证：`summary --format json` → `{"count": 6, "total_cents": 11756, "by_category": {"Food": 1195, "Transit": 200, "Travel": 10010, "food": 1, "家庭": 350}}`（exit 0），键码点升序；`summary` 默认输出保持 `Transactions: 6 / Total: $117.56`。

## 耗时
约 3 分钟。

## 未完成项
无。

## 会话隔离状态
仅修改 `输出/workbuddy/T05/R01/workspace/`，未触碰基准仓库、题面或其他目录。
