test-audit · git:20261030.7bd4a11 · 2026-10-30 · sha256 0d295942c0ae7aad
test-audit git:20261030.7bd4a11A
Immutable. This exact content never changes and is served at /api/v1/blob/0d295942c0ae7aad.
--- name: test-audit description: "Writing/changing/reviewing/sweeping tests: reject duplicate or implementation-coupled proof; remove test-only production seams." --- # Test Audit - Authoring gates every new/changed test. - Audits: remove low-value proof in coherent owner batches; never chase deletion counts. - Whole-subsystem campaign: read [CAMPAIGN.md](CAMPAIGN.md) first. ## Authoring gate Before adding test, answer: 1. Protected observable behavior, invariant, or independent contract? 2. Credible regression that makes it fail? 3. Why existing proof misses it? Each contract: one primary owner at strongest boundary. Another layer needs distinct transport/lifecycle risk. Extend tables/shared fixtures; consolidate repeated setup. - Keep the change proportional: one good regression beats a suite of shape checks. - Export, flag, wrapper, injection hook with no production caller needed? Move proof to real boundary instead. - Regressions must fail pre-fix for intended reason, pass after repair; report unavailable baseline proof. - One owner regression covers bug; never replay at every crossed layer. - Behavior-preserving refactors should not break test. ## Junk patterns - Reject self-comparisons, copied inventories, source greps, implementation/call-shape assertions, duplicate contracts, test-only seams, subject-generated expected values, mocks supplying asserted behavior. - Fixtures must not fabricate owner receipts/order or claim persistence path never writes. - Negative controls must fail at intended guard; names must match exercised behavior. - Auditing candidates: use [full checklist](references/audit.md#junk-patterns). ## Retention bar - Keep independent API, SDK, protocol, config, migration, storage, security, platform, default, prompt-byte, generated-language, package, release, architecture, observable-ordering contracts. Static/slow ≠ disposable. - Source inspection must survive identifier-only refactors and guard independent user-facing contract. - Baseline failures may be bugs to repair, not tests to delete. ## Audit and validation - Before audit edit: read [candidate evidence and workflow](references/audit.md#candidate-evidence); inspect full owners/callers/history; record remaining proof before deletion. - Delete obsolete production seams with tests; never optimize for deletion counts. - Run the owner's test suite plus its siblings after each batch; re-run any check the deleted tests fed. Behavior-preserving refactors must stay green. - Report causes, retained contracts, proof/cost, production versus test LOC, follow-ups. Commit/push/land only with task authority.