Author orch Markdown test plan

This commit is contained in:
2026-03-19 16:27:28 +08:00
parent b448d98e71
commit a20bec1cac
68 changed files with 2225 additions and 160 deletions
+6 -4
View File
@@ -1,7 +1,9 @@
# Orch `task add` Test Plan Index
## Status
## Case Files
No command case files are authored yet.
Use [../ROADMAP.md](../ROADMAP.md) for planned case slugs and document progress.
| Case Slug | File | Coverage Note |
| --- | --- | --- |
| `task-add-creates-ready-root-task` | [task-add-creates-ready-root-task.md](./task-add-creates-ready-root-task.md) | creates a dependency-free task that becomes ready immediately |
| `task-add-rejects-invalid-acceptance-json` | [task-add-rejects-invalid-acceptance-json.md](./task-add-rejects-invalid-acceptance-json.md) | rejects malformed `--acceptance-json` with `invalid_input` |
| `task-add-rejects-invalid-priority` | [task-add-rejects-invalid-priority.md](./task-add-rejects-invalid-priority.md) | rejects priorities outside `low|normal|high` |
@@ -0,0 +1,36 @@
# Case: `task-add-creates-ready-root-task`
## 用例意义
验证 `task add` 为无依赖任务创建记录时,会在同一事务里把任务推进为 `ready`
## 前置条件
- 已存在 run `run_blog_001`
## 输入
```bash
orch --db TMPDIR/coord.db --json run init --run run_blog_001 --goal "Build blog MVP"
orch --db TMPDIR/coord.db --json task add --run run_blog_001 --task T1 --title "Implement retry policy" --summary "Add retry policy to HTTP client" --default-to worker-a
```
## 预期输出
- `task add` 退出码为 `0`
- `data.task.task_id == "T1"`
- `data.task.title == "Implement retry policy"`
- `data.task.status == "ready"`
- `data.task.default_to == "worker-a"`
- `data.task.priority == "normal"`
## 断言结论
- `task add` 不只是插入 `planned` 任务;对无依赖任务会立即刷新为 `ready`
- 默认优先级会稳定回退到 `normal`
## 补充约束
- `--run``--task``--title` 是必填
- 未显式传 `--acceptance-json` 时,会回退为合法 JSON 默认值,而不是空字符串
- 同一 run 下重复的 `task_id` 应返回 `invalid_state`
@@ -0,0 +1,27 @@
# Case: `task-add-rejects-invalid-acceptance-json`
## 用例意义
验证 `task add` 会拒绝格式非法的 `--acceptance-json`,并返回稳定的 `invalid_input` 错误契约。
## 前置条件
- 已存在 run `run_blog_003`
## 输入
```bash
orch --db TMPDIR/coord.db --json run init --run run_blog_003 --goal "Validate task add input guards"
orch --db TMPDIR/coord.db --json task add --run run_blog_003 --task T1 --title "Implement retry policy" --acceptance-json '{"done":true'
```
## 预期输出
- `task add` 退出码为 `30`
- JSON 错误码为 `invalid_input`
- 错误消息指出 `acceptance-json` 必须是合法 JSON
## 断言结论
- `task add` 不会把格式错误的 acceptance 条件静默写入数据库
- `--acceptance-json` 的校验属于稳定的 CLI 输入契约,而不是存储层偶然失败
@@ -0,0 +1,27 @@
# Case: `task-add-rejects-invalid-priority`
## 用例意义
验证 `task add` 只接受 `low|normal|high` 三种优先级值,并在其他输入下返回稳定错误。
## 前置条件
- 已存在 run `run_blog_004`
## 输入
```bash
orch --db TMPDIR/coord.db --json run init --run run_blog_004 --goal "Validate task priority input"
orch --db TMPDIR/coord.db --json task add --run run_blog_004 --task T1 --title "Implement retry policy" --priority urgent
```
## 预期输出
- `task add` 退出码为 `30`
- JSON 错误码为 `invalid_input`
- 错误消息指出 `priority` 必须是 `low``normal``high`
## 断言结论
- `task add` 的优先级枚举是明确而稳定的 CLI 契约
- 非法优先级会在任务写入前被拒绝,而不是退回到默认值或被静默接受