What problem does it solve? Code changes often ship without tests that actually verify the new behavior, leaving regressions and unverified fixes. This Skill ensures every bug fix or feature is backed by a test that fails before the change and passes after it, and that no existing tests are skipped or failing. ## Core Features & Use Cases - Mandatory New-Behavior Tests: Requires at least one test per bug fix or feature that would fail before the change and pass after it, with explicit justification if existing tests are claimed sufficient. - Zero Skipped or Failing Tests: Directs investigation and fixing of skipped tests (.skip, xit, @pytest.mark.skip), flaky tests, and serial-suite failures rather than working around them. - Test-Level Matching: Guides choosing unit vs. integration tests based on where the bug actually lives, including behavioral stdout assertions for display/TUI output instead of testing internal mechanisms. - Mocking Strategy Guidance: Prescribes real databases for DB-behavior tests and vi.spyOn plus fromTest() factories for logic above the DB, avoiding parallel in-memory store implementations. - Use Case: When fixing a bug where a worker could not connect to a task queue due to a wrong path, the Skill directs writing an integration test with real instances of both components rather than a unit test asserting the path string. ## Quick Start Apply the test-discipline skill to review my bug fix and write a test that fails without the fix and passes with it.