# Case: `fail-persists-failure-body-and-artifact` ## 用例意义 验证 `fail` 能持久化失败说明与附件。 ## 前置条件 - `worker-b` 已成功 `claim` 线程 `THREAD_ID` - `TMPDIR/failure.md` 已存在 ## 输入 ```bash inbox --db TMPDIR/coord.db --json fail --agent worker-b --thread THREAD_ID --summary "Migration failed" --body-file TMPDIR/failure.md --artifact TMPDIR/failure.md --artifact-kind report inbox --db TMPDIR/coord.db --json show --thread THREAD_ID ``` ## 预期输出 - `fail` 成功 - 最终结果消息 `body` 等于文件内容 - 结果消息包含 1 个 `report` artifact ## 断言结论 - 失败终态同样要能完整交付排障材料 ## 补充约束 - `--payload-json` 需要是合法 JSON;空值会按 `{}` 处理 - `--body` 与 `--body-file` 互斥;不可读的 `--body-file` 属于 `invalid_input` - `artifact-kind` 和 `artifact-metadata-json` 不能脱离 `--artifact` 单独使用,且多值数量必须满足“一次全量应用”或“逐 artifact 对齐”