# 验收条件 / Acceptance criteria

以下是规格定义的**期望结果**，不是已经执行的结果。在修改后的练习副本文件夹中运行；如果环境用 `python3`，请替换命令前缀。比较 JSON 数组中的 ID 和原有字段，不能只看助手的说明。

These are **expected outcomes defined by the specification**, not completed checks. Run from the edited practice folder. Replace `python` with `python3` if needed. Inspect IDs and original fields in the JSON array, not just the assistant's explanation.

## A. 日期 / Dates

| ID | Command | Expected IDs, in order |
|---|---|---|
| A1 | `python brief_tasks.py --on 2026-10-30` | b02 |
| A2 | `python brief_tasks.py --on 2026-10-31` | b01, b03 |
| A3 | `python brief_tasks.py --on 2026-11-01` | b04 |
| A4 | `python brief_tasks.py --on 2026-11-02` | empty array `[]` |

## B. 状态 / Status

任务 B 完成后再核对 / Check only after Task B is implemented.

| ID | Command | Expected result |
|---|---|---|
| B1 | `python brief_tasks.py --on 2026-10-31 --status open` | b01 |
| B2 | `python brief_tasks.py --on 2026-10-31 --status done` | b03 |
| B3 | `python brief_tasks.py --on 2026-10-31 --status all` | b01, b03 |
| B4 | `python brief_tasks.py --on 2026-10-31` | b01, b03; default remains all |
| B5 | `python brief_tasks.py --on 2026-10-31 --status unknown` | argument error; nonzero exit status |

## C. 人工审查 / Manual review

- C1: `tasks.json` 未变，输出中的字段和原始时间戳未变。Input data, output fields and original timestamp values are unchanged.
- C2: `b05` 没有混入上述日期结果；原始顺序保持不变。b05 is absent from date-filtered output; original ordering is preserved.
- C3: 没有新第三方依赖、联网、文件写入或无关文件改动。No new third-party dependencies, networking, file writes or unrelated changes.
- C4: 解释明确指出：先转 UTC+08:00，再取日期；不是粗暴给日期加一天。Explanation identifies conversion to UTC+08:00 before date extraction, not blindly adding a day.

完整两任务共 13 条；若只做任务 A，本轮范围为 A1–A4 和 C1–C4，共 8 条。在记录表注明范围；未执行的项目不算通过。

Both tasks have 13 criteria in total. For Task A alone, use A1–A4 and C1–C4: 8 criteria. Record that scope. Unperformed checks do not count as passes.
