| 1 | --- |
| 2 | name: test-development |
| 3 | description: 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 | |
| 6 | Choose 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 | |
| 14 | An exported signature alone is validated by `pnpm check`; it enters the compiler |
| 15 | branch only when its inference, assignability, rejection, overload selection, or |
| 16 | displayed type is part of the task. Some changes require both branches because |
| 17 | they independently change runtime and compiler behavior. |
| 18 | |
| 19 | The task is complete when each intended behavior in scope has the relevant |
| 20 | focused coverage, targeted tests pass, and applicable root checks pass or are |
| 21 | reported as not runnable. |