Update CONTRIBUTING guide#72
Conversation
* Add AI usage policy * Add Project organization
| └── testdata # test data for acceptance tests | ||
| ``` | ||
|
|
||
| Generally speaking, each implementation can be build independently of the |
There was a problem hiding this comment.
| Generally speaking, each implementation can be build independently of the | |
| Generally speaking, each implementation can be built independently of the |
| ### Monoglot | ||
|
|
||
| If the repository you're looking at doesn't look like a polyglot repo it | ||
| probably is for a single language. In this case it can probably be build using |
There was a problem hiding this comment.
| probably is for a single language. In this case it can probably be build using | |
| probably is for a single language. In this case it can probably be built using |
olleolleolle
left a comment
There was a problem hiding this comment.
Good to have clarity!
luke-hill
left a comment
There was a problem hiding this comment.
Popped in a bunch of minor tweaks. Take as many/few as you think are appropriate.
| ## AI Usage | ||
|
|
||
| Cucumber is developed and maintained by humans. We read every discusison, issue | ||
| and pull reqeust. As such we appreciate it if you take the time to communicate |
There was a problem hiding this comment.
| and pull reqeust. As such we appreciate it if you take the time to communicate | |
| and pull request. As such we appreciate it, if you would take time to communicate with us. |
There was a problem hiding this comment.
I think the original wording was fine, but we could elaborate a bit, because I think we mostly mean:
- Issues and pull requests must follow the template and be in your own words
- Comments in issues and pull requests must be in your own words
- If we get the sense that we're just conversing with a bot, we'll stop
(But less adversarial sounding.)
|
|
||
| Cucumber is developed and maintained by humans. We read every discusison, issue | ||
| and pull reqeust. As such we appreciate it if you take the time to communicate | ||
| with us. |
There was a problem hiding this comment.
| with us. |
| AI-assisted. | ||
| * **You must fully understand all code.** | ||
| You should be able to explain what your changes do and how they interact with | ||
| the greater system without the aid of AI tools. |
There was a problem hiding this comment.
| the greater system without the aid of AI tools. | |
| the wider ecosystem without the aid of AI tools. This is important because as maintainers, we need to ensure that the changes made to the codebase are not prohibitive of further development later on - plus we need to ensure that the code does indeed do what it sets out to! |
| * **You must fully understand all code.** | ||
| You should be able to explain what your changes do and how they interact with | ||
| the greater system without the aid of AI tools. | ||
| * **You must be in the loop**. |
There was a problem hiding this comment.
| * **You must be in the loop**. | |
| * **You must be in control - the final part of the process**. |
| the greater system without the aid of AI tools. | ||
| * **You must be in the loop**. | ||
| Any content generated with AI must have been reviewed and edited by you | ||
| (a human) before submission. |
There was a problem hiding this comment.
| (a human) before submission. | |
| (a human), before you submit it to us as a PR. Self review is important! |
| ## Project organization | ||
|
|
||
| _Note: This is the catch-all contributing guide and not all repositories are | ||
| organized the same. So this guide can't help you with the specifics. The |
There was a problem hiding this comment.
| organized the same. So this guide can't help you with the specifics. The | |
| organized the same. So this guide won't help you with anything specific. The |
|
|
||
| ### Polyglot | ||
|
|
||
| Polyglot repositories contains identical implementations of a component in |
There was a problem hiding this comment.
| Polyglot repositories contains identical implementations of a component in | |
| Polyglot repositories contain near-identical implementations of one part of the cucumber ecosystem in |
|
|
||
| If the repository you're looking at doesn't look like a polyglot repo it | ||
| probably is for a single language. In this case it can probably be build using | ||
| the tools typical for that language. If you don't know what those are then |
There was a problem hiding this comment.
| the tools typical for that language. If you don't know what those are then | |
| the tools typical for that language. If you don't know what those are then |
| If the repository you're looking at doesn't look like a polyglot repo it | ||
| probably is for a single language. In this case it can probably be build using | ||
| the tools typical for that language. If you don't know what those are then | ||
| again `.github/workflows/test-<language>.yaml` would be a good place to start. |
There was a problem hiding this comment.
| again `.github/workflows/test-<language>.yaml` would be a good place to start. | |
| again, looking at `.github/workflows/test-<language>.yaml` would be the first suggestion. |
|
|
||
| When you use AI, we require that you do the following: | ||
|
|
||
| * **All AI usage in any form must be disclosed** |
There was a problem hiding this comment.
This kind of detailed disclosure requirement seems draconian to me, and I'm not sure what signal we're hoping to get from someone saying they used e.g. Cursor vs Claude Code, or to what degree or in what style.
If we want a disclosure I think adding to the checklist on the PR template would be a decent start, like:
- [ ] I used AI tool(s) in the making of this pull request
- [ ] I have reviewed, understand and can converse about every line in the diff(And of course if they don't use the template, you have the answer.)
🤔 What's changed?
⚡️ What's your motivation?
GitHub shows the default contributing guide in places where we have none. Which is quite a few repositories. The current guide is motivating but not very helpful.
Additionally I want to highlight that people should use AI responsibly. The guide lines are mostly inspired by those of Ghostty. But reworded to be a little bit friendlier.
🏷️ What kind of change is this?
♻️ Anything particular you want feedback on?
Agree, disagree? Anything missing?
📋 Checklist: