50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# Case: `task-add-snapshots-spec-and-verification-policy`
|
|
|
|
## 用例意义
|
|
|
|
验证 `task add` 在创建任务时,不只是写入基础调度字段,还会快照 task spec 与验证策略。
|
|
|
|
## 前置条件
|
|
|
|
- 已存在 run `run_blog_006`
|
|
- 临时目录内存在可读取的 spec 文件 `TMPDIR/task.md`
|
|
|
|
## 输入
|
|
|
|
```bash
|
|
orch --db TMPDIR/coord.db --json run init --run run_blog_006 --goal "Validate spec-aware task add"
|
|
orch --db TMPDIR/coord.db --json task add \
|
|
--run run_blog_006 \
|
|
--task T1 \
|
|
--title "Implement verifier" \
|
|
--spec-file TMPDIR/task.md \
|
|
--check-profile cadence_component \
|
|
--required-check lint \
|
|
--required-check test \
|
|
--allowed-path packages/ui \
|
|
--blocked-path scripts/release-metadata.mjs \
|
|
--metadata-json '{"repo":"cadence-ui"}'
|
|
```
|
|
|
|
## 预期输出
|
|
|
|
- `task add` 退出码为 `0`
|
|
- `data.task.status == "ready"`
|
|
- `data.task.spec.spec_file == "TMPDIR/task.md"`
|
|
- `data.task.spec.check_profile == "cadence_component"`
|
|
- `data.task.spec.required_checks` 包含 `lint` 与 `test`
|
|
- `data.task.spec.allowed_paths` 包含 `packages/ui`
|
|
- `data.task.spec.blocked_paths` 包含 `scripts/release-metadata.mjs`
|
|
- `data.task.gate.status == "pending"`
|
|
- `data.task.gate.required_checks` 与 spec 中的 required checks 一致
|
|
|
|
## 断言结论
|
|
|
|
- `task add` 现在会把任务说明和验证策略一起固化到 task spec,而不是只保存 `title`/`summary`
|
|
- required checks 一旦存在,task 会立即带上 `pending` gate,而不是等到 worker 完成后才临时推断
|
|
|
|
## 补充约束
|
|
|
|
- `spec_file` 对应内容应作为快照随 task 保存,而不是只保存路径引用
|
|
- `check_profile` 目前只是任务策略名,后续 profile/adapter 机制会负责把它解释成真正的执行计划
|