Julia symbolic packages spark fight over AI PRs and maintainer load
New TermInterface-based limits and integration libraries outperform parts of Symbolics.jl, then ignite a broader argument about stalled reviews and vibe-coded contributions.
John Verzani has released a cluster of Julia packages for symbolic limits and integration, plus an experimental CAS kernel, largely built with help from Claude. The libraries target any type that speaks TermInterface rather than locking to SymbolicUtils, and on published test sets several of them match or beat existing Julia and Python options on coverage, with macros that work on plain Expr values and no symbolic backend required.
GruntzLimit.jl reaches coverage comparable to SymPy and Giac on limits. RischIntegrate.jl, implementing algorithms from Bronstein plus algebraic and special-function cases, succeeds on more than 99 percent of a 1,680-integral suite compiled by SymbolicIntegration.jl, ahead of both SymPy.jl and Giac.jl on that set, though still behind commercial systems on the much larger RUBI corpus. SymJ.jl remains unregistered and aims at a more traditional Julia-native CAS for users who would otherwise reach for SymPy.jl.
On the JuliaLang Discourse, SciML lead Chris Rackauckas asked why the work had not landed as collaboration inside Symbolics and related repos instead of separate packages. Verzani’s long history with Roots.jl and SymPy.jl was acknowledged; Rackauckas guessed the split was deliberate caution against flooding core trees with agent-written changes, and said the project is open to new merge processes, including risk-ranked auto-merge for trusted contributors and local LLMs for simple reviews.
Sébastien Celle, author of Giac.jl, answered that collaboration had already been attempted inside the official repositories. He listed pull requests for core CAS operations (factorization, resultants, exact π in solves, assumptions, and Risch fixes) opened as early as April 2026 and still without human review many months later, some touched only by an automated agent posting under a maintainer account. He also pointed to multi-year open issues on assumptions, simplify soundness, and related foundations, arguing Symbolics’ general-CAS posture is unclear and that requests to collaborate ring hollow when inbound work sits untouched.
Rackauckas replied that several of those changes need design judgment he had deferred, invited adding Celle as a maintainer, and described a wider breakdown: hundreds of unanswered GitHub mails per day, harder trust signals when large PRs may be weak vibe-coding, and experiments with factory-style auto-merge that must not depend on a single person’s machines. Other maintainers noted Symbolics lost its dedicated lead after a core developer moved on, that cross-repo SciML changes still bottleneck on one person, and that funding for full-time maintainers is thin. Suggestions ranged from restricting who can open pull requests to routing work through issues first so humans set direction before agents generate code.
The package announcements stand; the sharper story is whether Julia’s symbolic stack can absorb high-velocity, AI-assisted contributions without either centralizing further on exhausted maintainers or abandoning the traditional pull-request social contract.