# Case: `dispatch-rejects-dirty-repo-without-base-ref`

## 用例意义

验证 strict worktree dispatch 在仓库存在未提交修改且未显式指定 `--base-ref` 时，会拒绝继续执行。

## 前置条件

- `TMPDIR/repo` 是一个 Git 仓库
- 仓库工作区存在未提交变更
- 已存在 run `run_blog_worktree_002` 与任务 `T1`

## 输入

```bash
orch --db TMPDIR/coord.db --json run init --run run_blog_worktree_002 --goal "Validate dirty repo rejection"
orch --db TMPDIR/coord.db --json task add --run run_blog_worktree_002 --task T1 --title "Implement backend" --default-to worker-a
orch --db TMPDIR/coord.db --json dispatch --run run_blog_worktree_002 --task T1 --repo-path TMPDIR/repo --workspace-root .orch/worktrees --strict-worktree
```

## 预期输出

- `dispatch` 退出码为 `30`
- JSON 错误码为 `invalid_state`
- `.orch/worktrees/run_blog_worktree_002/T1/attempt-1` 不应被创建

## 断言结论

- strict 模式不会隐式吞掉未提交工作区状态
- 当 leader 依赖脏工作区时，必须显式给出 `--base-ref`
