Post

I thought this was going to be "carve out the qualitative bits of feedback LLMs *can* do, as isolated pseudo-linter passes instead of doing one bulky code review pass", but it actually is about deterministic linters. Nice! I still have hopes the first part is doable in theory.

Also this line is quite intriguing: > "Then we tried running these skills in github actions. And my dude, it was so bad." Why the skills wouldn't transfer from the coding agent to the github action? Seems like there should be more to the story, would love a followup.

my guess is context collapse. what works interactively often depends on state the CI job doesn't carry. did the article say which skills broke, or was it all of them?

None of the skills “broke” they just weren’t useful. I think it was a human context issue. When you run a review skill on your own code, it’s easy to ignore the 70% of comments that aren’t useful because you have mental context on what matters. But when you come in cold to somebody else’s code …

The part that makes this work is that a linter answers with a location, not an opinion. Same reason retrieval beats better review prompts: point the model at the right 200 lines and most of the quality follows.

I love custom linters. This one - knows our shadcn component library and catches matching tailwind soup - allows layout classname on react components - warns on styling overrides 700 lines of AST parsing code. I'd never make time for this before

Makes me wonder if we can deterministically narrow down / focus the information we feed to AI and make it work on input that's proportional to 1% of the code it'd need to read. One possibility is extract flow (functions calling functions) with static analysis and let LLM chew on that

Pretty sure all coding harnesses do this and build a fancy index of the code. Even a baby codebase would blow up your context if you fed the whole thing in every prompt Good retrieval is the secret sauce of RAG systems like this

I'm trying to say that in automated review giving the model information derived from code instead of the code itself would let it focus on high level things and make it much faster