Тест, написанный после реализации, почти всегда проверяет то, что код уже делает — не то, что он должен делать. Баг в логике проскальзывает мимо, потому что тест написан по мотивам той же логики.

Skill test-driven-development меняет порядок: сначала падающий тест на нужное поведение, потом минимальный код, который его зеленит.

def test_discount_applies_only_above_threshold():
    assert calc_discount(cart_total=500) == 0
    assert calc_discount(cart_total=1500) == 150

Тест падает первым — функции calc_discount ещё нет. Код пишется под конкретно эти два случая, а не абстрактную “скидочную систему вообще”. В git-логе видно: коммит с тестом идёт раньше коммита с кодом.

Попробуй TDD-skill на следующей задаче — засеки, поймает ли он баг раньше, чем ты сам увидишь его в проде.

#claude #ai #tdd