I started using Claude Code recently. Working with it led me to read the manuals and best practices straight from the horse’s mouth - Anthropic’s docs themselves. As I was perusing the articles talking about different features and capabilities, and best ways to use it, I stumbled upon a section in Claude Code: Best practices for agentic coding, which states:
Claude Code can provide subjective code reviews beyond what traditional linting tools detect, identifying issues like typos, stale comments, misleading function or variable names, and more.
Why would anyone suggest to use tools other than linters for linting the code? We already have amazing instruments to improve readability, standardize formatting, and catch commonly occuring issues from static code analysis. That just sounds so unreasonable, and makes Anthropic look desperate to market their tool for your everyday use.
Don’t get me wrong. Claude Code is an impressive tool. But every impressive tool should stay in its lane and do its job well. I don’t think that Claude Code will ever be able to do a better job than a linter would in linting the code. Why? Because linters are deterministic and are designed to be functionally pure - the same set of inputs will produce the same set of outputs. Despite any claim or amount of training data, no LLM can guarantee that their outputs will be deterministic. Those are predictive models. The only time when these AIs behave deterministically is when the developers encode specific deterministic behaviors or rules for the software to operate with.
“Traditional linting”, a.k.a “linting”, can be configured to your heart’s content and ran anytime - during development, during commits, in your CI/CD pipelines, etc. It is already a very flexible and reliable tool designed to keep your codebase compliant with a set of rules. I don’t think we need a new linting tool that has a 1 in 100 chance producing a different output. And keep in mind that as they continue to train their models, one day you might wake up to your Claude linter deciding that 4 spaces is the new standard for indentation when your codebase has been using 2 spaces for the past two years, all because it now uses a shiny new model that was trained differently.
I don’t think we need to reinvent linting. Linting that we have at home is good enough. I just see this as Anthropic being consistent with their overall narrative - soon engineers are going to be a thing of the past, and you should use Claude as a linter, and formatter, and your accountant, and your babysitter. I get it - they are trying to sell a product. But they are doing it in a way that over-hypes and over-sells the message that should be a lot more clear, straightforward, and focused.
I enjoyed using Claude Code, and see it as a tool that can improve my productivity in some cases. There are also plenty of limitations. Claude is no linter. No matter how much I might like Claude, I will never use it as a linter. The closest thing that I might do is ask it to generate a configuration for my codebase and my linter of choice, which I then will proceed using whenever I need to lint my code.
Let’s use the right tool for the right job.