1---
2name: test-development
3description: Test development. Use when adding or changing Vitest or Tstyche coverage. Choose Tstyche only for intended compiler behavior such as inference, assignability, rejection, or displayed public types.
4---
5
6Choose branches from the task's acceptance criteria before editing:
7
8- **Runtime behavior:** The intended result is observable when code executes.
9 Read [runtime.md](runtime.md).
10- **Compiler behavior:** The intended result is TypeScript accepting, rejecting,
11 or inferring a consumer expression in a particular way. Read
12 [types.md](types.md).
13
14An exported signature alone is validated by `pnpm check`; it enters the compiler
15branch only when its inference, assignability, rejection, overload selection, or
16displayed type is part of the task. Some changes require both branches because
17they independently change runtime and compiler behavior.
18
19The task is complete when each intended behavior in scope has the relevant
20focused coverage, targeted tests pass, and applicable root checks pass or are
21reported as not runnable.