35 lines
1.0 KiB
Markdown
35 lines
1.0 KiB
Markdown
# Case: `task-add-rejects-spec-sha-mismatch`
|
|
|
|
## 用例意义
|
|
|
|
验证 `task add` 在接收 `--spec-file` 与 `--spec-sha` 时,会拒绝内容摘要不匹配的任务定义,避免 task spec 漂移。
|
|
|
|
## 前置条件
|
|
|
|
- 已存在 run `run_blog_007`
|
|
- 临时目录内存在可读取的 spec 文件 `TMPDIR/task.md`
|
|
- 调用时传入的 `--spec-sha` 与文件实际 SHA256 不一致
|
|
|
|
## 输入
|
|
|
|
```bash
|
|
orch --db TMPDIR/coord.db --json run init --run run_blog_007 --goal "Validate spec sha mismatch"
|
|
orch --db TMPDIR/coord.db --json task add \
|
|
--run run_blog_007 \
|
|
--task T1 \
|
|
--title "Implement verifier" \
|
|
--spec-file TMPDIR/task.md \
|
|
--spec-sha deadbeef
|
|
```
|
|
|
|
## 预期输出
|
|
|
|
- `task add` 退出码为 `30`
|
|
- JSON error payload 的 `error.code == "invalid_input"`
|
|
- `error.message` 包含 `spec-sha does not match spec-file contents`
|
|
|
|
## 断言结论
|
|
|
|
- task spec 快照不是“尽力而为”的附带字段;当显式声明 SHA 时,CLI 会把它当成契约校验
|
|
- leader 不能在 spec 内容与预期摘要不一致时继续创建 task
|