Conversation
ncloudioj
left a comment
There was a problem hiding this comment.
Looks good, thanks! Added some comments for broader discussion.
mmiermans
left a comment
There was a problem hiding this comment.
Thank you for taking the initiative to write up an AI policy. There are some great principles in here, and things I would remove or rephrase. I'd be happy to discuss these live if that's helpful.
| *should* do. All tests must be understood by the submitter and must conform to Merino's | ||
| [testing guidelines](CONTRIBUTING.md#testing-guidelines--best-practices). | ||
|
|
||
| ### Keep changes small and intentional |
There was a problem hiding this comment.
I would remove this section, because I don't think it is specific to AI. We agreed to 'Aim for Simplicity' in our social-contract.md, and those rules apply also to code written by AI. PRs should be small and intentional, regardless of whether AI was involved.
Large changes may be screened for AI generation. Not to police tool use, but to ensure that the scope of a contribution reflects genuine understanding and effort.
PRs should be reviewed on their merit; if a PR is too large, then the reviewer and contributor can decide to split it up. Over the years I have fallen in the pitfall of blowing up scope many times. With AI, it becomes much easier to split PRs up.
| ## Risk Awareness | ||
|
|
||
| Depending on tools that make large changes without understanding them introduces risk. | ||
|
|
||
| The major AI coding tools are proprietary. Reliance on their availability is | ||
| not in the interest of an open-source project. Slowing down and knowing exactly what we need to ship can have a bigger impact than optimizing for speed and volume. |
There was a problem hiding this comment.
I would remove this section. The risk perspective is interesting, but speculative and debatable in my view. I would love to hear more; the 'Claude show & tell' series may be a good venue for this.
When to slow down and when to move with urgency is a question that predates AI. In my view it's best left up to individual teams to find the right balance here.
| Documentation exists to transfer knowledge and to reveal your own understanding gaps. | ||
|
|
||
| AI-generated text that has not been fully rewritten by a human is easily identifiable and will not be accepted. If AI was used to assist in drafting documentation, it must be disclosed. Using AI to *study* the codebase and inform your writing is fine; submitting AI-generated prose as your own is not. |
There was a problem hiding this comment.
I think we agree that documentation should meet a real developer need, and that the contributor should understand and stand behind it. I would soften this section. The important question is less how the text was produced, and more whether it is accurate and useful. I think that standard can also be met when a developer uses AI responsibly.
| Documentation exists to transfer knowledge and to reveal your own understanding gaps. | |
| AI-generated text that has not been fully rewritten by a human is easily identifiable and will not be accepted. If AI was used to assist in drafting documentation, it must be disclosed. Using AI to *study* the codebase and inform your writing is fine; submitting AI-generated prose as your own is not. | |
| Documentation exists to transfer knowledge and to serve the humans | |
| who need to read and maintain this project. It should be accurate, | |
| specific, and grounded in the contributor's understanding of the code | |
| and the problem space. | |
| Contributors are expected to understand the documentation they submit, | |
| to be able to explain and defend it during review, and to take | |
| ownership of keeping it aligned with the code over time. |
^ As an example of responsible AI use, this suggestion was generated with AI. It was guided by my viewpoint, and I iterated on it until it reflected what I wanted to say. I think that kind of use should be welcomed.
References
JIRA: DISCO-3960
Description
Adding an AI policy to the Merino codebase. The following text is the result of an internal document + discussion around that topic.
PR Review Checklist
Put an
xin the boxes that apply[DISCO-####], and has the same title (if applicable)[load test: (abort|skip|warn)]keywords are applied to the last commit message (if applicable)┆Issue is synchronized with this Jira Task