Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Agentic AI in scikit-build-core’s development

Slides

Agentic AI was a big part of the 1.0 push for scikit-build-core. This chapter highlights some of the work that was helped by Agentic AI. For a general introduction, see Starting with Agentic AI and Claude Code Reviews.

If you are not familiar with Agentic AI, it’s an interface (like a text editor), but instead of directly writing code, you are prompting an “agent”, which is an LLM with tooling that allows it to perform actions. An example: if you open it and type “make a PR”, it will inspect the current changes, make a branch, commit, push, and open a PR, including a generated commit message and PR description. If you say “investigate #123”, it will look up the issue, try to make a reproducer, and fix it if the reproducer works. Etc.

Sweeping code reviews

A single prompt, run over the whole project:

Review this project for bugs, performance, simplifications, and modernizations

On scikit-build-core --- a codebase written from scratch by its maintainer, with high test coverage --- one sweep found 15 bugs, 4 of them serious (#1317). Across 30+ projects reviewed the same way, that’s roughly 400 bugs plus as many performance and cleanup fixes, with a near-100% merge rate on the resulting PRs.

Model choice matters a lot here: the strongest models find substantially more with a very low false-positive rate, while smaller open models find some issues with a moderate false-positive rate.

Testing ~20 downstream projects

Before a release, does the development branch break anyone downstream? This is exactly the kind of tedious, parallelizable work agents are good at:

The result (#1439): 20 downstream projects tested, main vs. v0.12.2:

Developing against downstream: PyTorch

pytorch/pytorch#180247 moves PyTorch from setuptools to scikit-build-core --- a large, demanding downstream user. Agents helped close the loop between the two projects:

Working through the issue backlog

scikit-build-core had accumulated 140+ open issues; it is now at around 20.

Porting scikit-build (classic)

Classic scikit-build is now a thin layer on scikit-build-core’s setuptools plugin. The conversion spanned three repositories, including scikit-build-sample-projects, with test changes driven by removals (mostly old setup.py commands). The agent:

Working across multiple repos at once --- something agents turn out to be happy (proactive, even) to do --- is exactly the kind of coordination that usually makes this sort of port drag on.

Other wins

Takeaways