Pure logic lives in apps/web/src/domain and must stay at 100% coverage and a 100% mutation score. The first unit is the availability logic for the hero: parsing, resolving and formatting the next free capacity block. Vitest is pinned to 4.1.11 because @stryker-mutator/vitest-runner 10.0.0 runs zero tests per mutant under vitest 5 and reports surviving mutants. ESLint now ignores Stryker, coverage and report output. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>