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

---

# BENCH-RUN T01 R01

- 状态：PASS
- 任务类型：只读调用链追踪（未修改任何文件，`git status --porcelain` 为空）

## 实际执行的命令与原始结果

```text
$ git rev-parse HEAD
ed2390f2df8252f062abd9123e20f6fffca7e5ed
$ python3 -m unittest discover -s tests -v  → 4 tests, OK
```

（直接阅读了 `ledger/` 全部源码、`tests/`、`ledger/data/transactions.csv` 进行追踪。）

## `python3 -m ledger list` 的实际调用链（按调用顺序）

1. **用户入口**：`python3 -m ledger` 执行 `ledger/__main__.py`；模块代码 `from .cli import main` 后 `raise SystemExit(main())`，调用 `ledger/cli.py::main(argv=None)`。〔直接调用〕
2. **参数解析**：`main` 先调用 `ledger/cli.py::build_parser()`，它用 `argparse.ArgumentParser` 注册全局选项 `--config`、`--data-file`，子命令解析器 `list`（带 `--start-date`、`--end-date`）与 `summary`；随后 `main` 调用 `parser.parse_args(argv)` 得到 `args`。〔直接调用〕
3. **数据文件选择**：`main` 调用 `ledger/settings.py::resolve_data_file(cli_path=args.data_file, environ=os.environ, config_path=args.config)`。优先级：`--data-file` > 环境变量 `LEDGER_DATA_FILE` > `--config` 指定的 JSON 中的 `data_file` > 默认值 `ledger/settings.py::DEFAULT_DATA_FILE`（= `ledger/data/transactions.csv`，基于 `Path(__file__).resolve()`）。返回 `path.resolve()` 后的绝对路径。〔直接调用；优先级由 `settings.py` 中 if/elif 链直接确认〕
4. **数据读取**：`main` 调用 `ledger/storage.py::load_transactions(path)`，用 `csv.DictReader` 读 CSV，校验必需列 `{id, date, category, amount}`，逐行构造 `ledger/model.py::Transaction(id, date=date.fromisoformat(...), category, amount_cents=ledger/money.py::parse_money(row["amount"]))`，返回记录列表。〔直接调用〕
5. **日期参数校验**：`main` 内 `if args.command == "list":` 分支中调用模块私有函数 `ledger/cli.py::_parse_cli_date(args.start_date, "start_date")` 与 `_parse_cli_date(args.end_date, "end_date")` 做格式校验（仅校验，不传递解析结果）。〔直接调用〕
6. **查询**：`main` 调用 `ledger/query.py::list_transactions(transactions, args.start_date, args.end_date)`；它直接转调 `ledger/query.py::filter_by_date(...)`，后者用 `_parse_date_bound` 解析边界并返回过滤后的列表（冻结基线上边界为**排除式**，此为 T04 待修缺陷）。〔直接调用〕
7. **格式化**：`main` 调用 `ledger/formatting.py::format_transactions(rows)`，逐条调用 `format_transaction`（内部用 `format_money`）拼成 `"id | date | category | $amount"` 行，用 `"\n".join` 合并。〔直接调用〕
8. **stdout 输出**：`main` 中 `if output: print(output)` 写到 stdout，函数返回 `0`，`__main__.py` 以 `SystemExit(0)` 退出。〔直接调用〕

## 是否写入持久化存储

**否**。整条链路只读：`storage.load_transactions` 以 `"r"` 模式打开 CSV；无任何写文件、数据库或网络操作；结果仅经 `print` 输出到 stdout。〔直接确认，非推断〕

## 会话隔离状态

仅在本题独立 workspace `输出/cursor/T01/R01/workspace/` 中读取；未触碰基准仓库、其他题目目录或任何评测者资料。耗时约 2 分钟。无未完成项。
