Unit and acceptance test layout

Rule

Write Vitest unit tests in tests/unit/, one file per source module, mirroring src/. Never create, edit or delete files in tests/acceptance/; the owner writes those. Never delete a test or reduce the test count. If an acceptance test conflicts with a requirement, stop and raise ESC-ACCEPT.

Do

src/
  bm25.ts
  tokenize.ts
tests/
  unit/
    bm25.test.ts
    tokenize.test.ts
  acceptance/            protected, owner only
    bm25.vectors.test.ts

Don’t

src/
  bm25.ts
  __tests__/
    bm25.test.ts
tests/
  bm25.test.ts

Rationale

The A7 governance gates scan tests/unit/** for neutralized tests (BP-05) and assertion-free tests (BP-10), and treat tests/acceptance/ as protected. Tests stored elsewhere escape those checks, and an agent that can edit acceptance tests can make any implementation pass.