stdlib-js / stdlib-js/stdlib

[RFC]: Add guidance concerning AI usage

Open
#9,347 23 comments 2 reactions 0 assignees View on GitHub
Governance Needs Discussion RFC
Dominant language
JavaScript
Stars
6k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
611

Description

### Description

This RFC proposes we add guidelines regarding the usage of AI/LLMs in the project as a whole, and in making contributions to the codebase. This could appear in brief in CONTRIBUTING and point to a longer, more explicit policy, or simply exist as its own entity.

## Guiding principles

1. Maintainer capacity is a limiting resource in open source. All contributions should respect the time and effort maintainers put into reviewing contributions.
2. Indiscriminate use of AI to generate code can lead to low-quality contributions that can impose significant maintainer burden.
3. This project is licensed under the Apache-2.0 License, and is subject to its terms--including the disclosure of any copyrighted materials included in submissisions. All contributions are subject to the [Developer's Ceritifcate of Origin](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md#developers-certificate-of-origin-11) already in our contributing guidelines.
4. Regardless of whether or not AI is used, contributors should understand and be able to explain the code they are submitting.
5. There *are* beneficial, permissible uses of AI in contributing to this project. For example, use AI to do R&D, learn to navigate the codebase, or suggest potential improvements to your code (including things like spelling and adherence to project guidelines).
6. If contributors *do* use AI to assist in their contribution, they must disclose this in their pull request or issue. This should include a description of how AI was used and what specific contributions it made.
7. The legal landscape around AI-generated content is still evolving, and (6) will allow the project to adapt to future changes.
8. Using AI to resolve issues marked as `good first issue` is not permitted (i.e. we want you to build a mental model of the codebase yourself, and get familiar with the mechanics of how the process works).

## Short-version polcy

Adapted from [Matplotlib's Restriction on Generative AI Usage][matplotlib-genai-policy], and not inclusive of all the items listed in guiding principles:

We expect authentic engagement in our community.

* Do not post output from Large Language Models or similar generative AI as comments on GitHub or Zulip, as such comments tend to be formulaic and low-value.

* If you use generative AI tools as an aid in developing code or documentation changes, ensure that you fully understand the proposed changes and can explain why they are the correct approach, and disclose how AI was used in your pull request.

Make sure you have added value based on your personal competency to your contributions. Just taking some input, feeding it to an AI and posting the result is not of value to the project, or your growth as a developer.

## Inspired by/useful resources

* [ASF Generative Tooling Guidance](https://www.apache.org/legal/generative-tooling.html)
* Fedora Council's [AI-Assisted Contribution Policy](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)
* [scikit-learn Automated Contributions Policy](https://scikit-learn.org/stable/developers/contributing.html#automated-contributions-policy)
* [OpenInfra Foundation Policy for AI Generated Content](https://openinfra.org/legal/ai-policy)
* Linux Foundation [Guidance Regarding Use of Generative AI Tools for Open Source Software Development](https://www.linuxfoundation.org/legal/generative-ai)

[matplotlib-genai-policy]: https://matplotlib.org/devdocs/devel/contribute.html#restrictions-on-generative-ai-usage

### Related Issues

_No response_

### Questions

No. I'd like feedback (of course), and will draft a PR with a more substantive policy, but thought the issue would be a more useful place for preserving the broader discussion.

### Other

No.

### Checklist

- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.