This post doesn’t propose a Beman AI policy directly; instead, it attempts to summarize previous discussions about AI contributions, survey the current state of open-source AI contribution policies, enumerate the relevant considerations, and provide suggestions for each of them.
Research
Statistics cited in the following sections were obtained by using the list of policies maintained at GitHub - melissawm/open-source-ai-contribution-policies: A list of policies by different open source projects about how to engage with AI-generated contributions. · GitHub, and in some cases by having Claude Code perform analysis of the linked policies.
Allowing AI Contributions
It seems like, although one Beman library author stated that he personally was leaning toward not using AI for his own library, we have not yet seen anyone arguing for an outright Beman Project-wide ban on AI contributions. 49 out of 73 (67%) of projects tracked by melissawm do not ban or severely restrict AI contributions.
I recommend that the Beman Project’s AI policy allows AI contributions.
Ownership
There seemed to be strong consensus that, although AI contributions should be allowed, they do not allow contributors to shirk responsibility for their commits; just because Claude Code generated a commit does not mean that Claude Code is then responsible for its maintenance.
I recommend that the Beman Project’s AI policy includes language similar to this language from LLVM’s AI policy:
“[…] there must be a human in the loop. Contributors must read and review all LLM-generated code or text before they ask other project members to review it. The contributor is always the author and is fully accountable for their contributions. Contributors should be sufficiently confident that the contribution is high enough quality that asking for a review is a good use of scarce maintainer time, and they should be able to answer questions about their work during review.”
However, I would also like this policy to be relaxed for Beman-related dev tools; for example, my GitHub - bemanproject/beman-local-ci: A tool for running the Beman CI matrix locally via Docker. · GitHub tool is vibe-coded (I haven’t reviewed the code independently yet), and while I think that this approach would be problematic for C++ libraries intended for standardization, when it comes to enhancing the CI ecosystem for those libraries, I think it may be acceptable.
Attribution
This was the most controversial topic at the April 13 sync meeting. I brought up that the Linux Kernel AI Coding Assistants policy guide has an Attribution section that states:
When AI tools contribute to kernel development, proper attribution helps track the evolving role of AI in the development process. Contributions should include an
Assisted-bytag […]
I thought that “track[ing] the evolving role of AI in the development process” was a sufficient justification for including a similar requirement in the Beman project’s AI policy. David Sankel disagreed, saying that the attribution functioned as unpaid advertising for the AI tools, that the “Co-authored-by” tag waters down the human contributor’s ownership of the commit, and that the human element of initiation of the work matters more than the particular tools.
Of the tracked open-source contribution policies that allow AI contributions without imposing severe restrictions, 32 out of 51 (65%) either require or encourage attribution of AI coding tools in code submissions. The justifications they cited varied, but mostly cited a desire to reduce reviewer burden from low-quality “AI Slop” contributions. Some quotes from policies that asked for attribution include:
LLVM: “Our policy on labelling is intended to facilitate reviews, and not to track which parts of LLVM are generated[…] This transparency helps the community develop best practices and understand the role of these new tools[…] AI tools must not be used to fix GitHub issues labelled good first issue. These issues are generally not urgent, and are intended to be learning opportunities for new contributors to get familiar with the codebase.”
Arrow: “PRs that appear to be fully generated by AI with little to no engagement from the author may be closed without further review. […] Be upfront about AI usage and summarise what was AI-generated”
NumPy: “Do not waste developers’ time by submitting code that is fully or mostly generated by AI, and doesn’t meet our standards.”
On the other hand, the projects that didn’t require attribution mostly didn’t provide justification for not having it. Some quotes from the ones that did:
Flutter: “Why does it matter how the code was created; shouldn’t the code speak for itself?”
Oxide: “Volunteering that an LLM has been used to generate work product may implicitly distance oneself from the responsibility for the content”
One argument I haven’t raised yet is that, although I’ve heard quibbles about the the importance/viability of this goal, I want it to be the case that standard library maintainers can easily incorporate code directly from Beman implementations into standard library implementations instead of needing to rewrite everything from scratch.
Of the three major standard library implementations, libstdc++ does not have a policy yet, but appears to be leaning toward adopting the binutils policy, which bans AI contributions; libc++ requires attribution; and MSVC’s STL appears to have no policy thus far.
As a result, it may potentially cause conflicts with standard library implementations’ policies if Beman libraries omit AI attribution.
My recommendation is for a Beman Project AI policy to include language that strongly encourages contributors to add AI tool attribution for substantially AI-generated commits, but does not require a specific mechanism or tag for doing so.
Licensing and Copyright Considerations
Projects that forbid AI contributions typically cite the uncertain legal landscape around copyrightability of AI-generated code. My perspective is that, despite this uncertainty, the landscape of AI policy documents shows that there is already substantial precedent for allowing these contributions in open-source projects, including one of the most relevant projects for our use case, LLVM. The AI policies of these projects typically include language to the effect that, independently of whether their contribution is AI-generated, contributors are responsibile for ensuring that their contributions do not include any copyrighted material. Beman’s AI policy should include similar language.