I have to admit: I have never been a huge fan of pre-commit hooks. I always felt they were slow and broke up my development pace. That opinion — and my broader laziness about automated quality gates in general — has been changed by two shifts happening at the same time:
Rust ate the toolchain. Thanks to the wide adoption of Rust, we now have developer tooling that is orders of magnitude faster than what came before. Checks that used to cost you a coffee break now cost milliseconds.
Agentic Engineering (or Vibe Coding, if you will) raised the stakes. When an AI agent is writing a meaningful share of your code, automated quality controls stop being nice-to-haves, especially in dynamically typed languages like Python. Add to this equation many people in a team contributing to the same product, and the requirement to have these quality checks done automatically and at scale is even more imperative.
Fast tools mean you can afford to run checks everywhere — in your editor, on every commit, in CI, and inside the agent's own feedback loop. And agents generating code at superhuman speed mean you need checks everywhere. This post is a tour of the stack I've landed on.
Rust adoption is giving birth to incredible tooling







