Skip to content

Commit f2a741b

Browse files
docs: update contributing.md to include AI disclosure (#8498)
**Motivation** Recently, we have been experiencing many instances of AI generated slop submitted by first time contributors and a policy rework is needed to ensure our time is respected whilst allowing an external contributor freely contribute to further enhancing this project. This proposal ensures that new contributors self-disclose any use of AI technologies as part of their submission to minimize time waste and allow issues to be resolved with thorough understanding of the output at hand. **Description** This PR: - Adds an AI Assistance Notice to contribution.md - Moves important context for first time contributors to the top of the document - Corrects minor grammar Additional credit to @nflaig and [Ghostly's policy](https://github.com/ghostty-org/ghostty/blob/main/CONTRIBUTING.md#ai-assistance-notice) to approach minimizing this problem. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
1 parent f45a2be commit f2a741b

File tree

1 file changed

+55
-35
lines changed

1 file changed

+55
-35
lines changed

CONTRIBUTING.md

Lines changed: 55 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,57 @@
22

33
Thanks for your interest in contributing to Lodestar. It's people like you that push the Ethereum ecosystem forward.
44

5+
## New Contributor?
6+
7+
Unsure where to begin contributing to Lodestar? Here are some ideas!
8+
9+
- :mag_right: Look through our [good first issues](https://github.com/ChainSafe/lodestar/issues?q=state%3Aopen%20label%3A%22good%20first%20issue%22).
10+
- :speech_balloon: Join our [Discord chat](https://discord.gg/aMxzVcr)!
11+
[![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr)
12+
13+
### AI Assistance Notice
14+
15+
> [!IMPORTANT]
16+
>
17+
> If you are using **any kind of AI assistance** to contribute to Lodestar, **this must be disclosed in the pull request** to maintainers
18+
> along with the extent to which AI assistance was used (e.g. docs only vs. code generation).
19+
> If PR responses are being generated by an AI, disclose that as well.
20+
> As a small exception, trivial tab-completion doesn't need to be disclosed, so long as it is limited to single keywords or short phrases.
21+
22+
An example disclosure:
23+
24+
> This PR was written primarily by Claude Code.
25+
> I consulted Claude Code to understand the codebase, but the solution was fully authored manually by myself.
26+
27+
Failure to disclose this is first and foremost, rude to the human maintainers on the other end of the pull request and it makes it difficult to determine how much scrutiny to apply to the contribution.
28+
29+
In a perfect world, AI assistance would produce equal or higher quality of work than any human. This is currently not the case and most of the time is generating AI slop which is noticeable in patterns and lack of context to solving the problem. We say this as heavy users of AI to help maintain this project (with careful supervision).
30+
31+
When using AI assistance, we expect contributors to understand the code that is produced and be able to answer critical questions about what was submitted. It isn't a maintainer's job to review a PR so broken that it requires significant rework to be acceptable.
32+
33+
Most of all, it is disrespectful to our time. Please be respectful to our maintainers and **disclose AI assistance.** Using AI without a thorough review and understanding of the output does not enhance your reputation as a valuable contributor or increase the likelihood of future opportunities on this project.
34+
35+
## Reporting A Bug?
36+
37+
- :spiral_notepad: [Create a new issue!](https://github.com/ChainSafe/lodestar/issues/new/choose) Select the type of issue that best fits, and please fill out as much of the information as you can.
38+
39+
## Contribution Process
40+
41+
1. Make sure you're familiar with our contribution guidelines _(this document)_!
42+
2. Create your [own fork](https://github.com/ChainSafe/lodestar/fork) of this repository.
43+
3. Make your changes in your local fork.
44+
4. If you've made a code change, make sure to lint and test your changes (`yarn lint`, `yarn check-types` and `yarn test:unit`).
45+
5. Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.
46+
47+
> [!IMPORTANT]
48+
> Please note that trivial, non-code contributions such as spelling, grammar, typos, corrections, comments and link fixes are not acceptable pull requests.
49+
> Although we appreciate the effort to fix these valid concerns, it is not practical for us to run our CI systems to accommodate minor external contributions which generate minimal value for the purpose of contribution/airdrop farming.
50+
> It would be appreciated for you to open up an issue instead for our team to aggregate these types of contributions into a batch commit.
51+
52+
## Lodestar Monorepo
53+
54+
We currently host the majority of lodestar packages and support packages in [this repository](https://github.com/ChainSafe/lodestar) as a [monorepo](https://en.wikipedia.org/wiki/Monorepo). We're using [Lerna](https://lerna.js.org/) to manage the packages. See [packages/](https://github.com/ChainSafe/lodestar/tree/unstable/packages) for a list of packages hosted in this repository.
55+
556
## Prerequisites
657

758
- :gear: [NodeJS](https://nodejs.org/) (LTS)
@@ -114,29 +165,6 @@ Run a local beacon with `--metrics` enabled. Then start Prometheus + Grafana wit
114165
./docker/docker-compose.local_dev.sh
115166
```
116167

117-
## First Time Contributor?
118-
119-
Unsure where to begin contributing to Lodestar? Here are some ideas!
120-
121-
- :pencil2: See any typos? See any verbiage that should be changed or updated? Go for it! Github makes it easy to make contributions right from the browser.
122-
- :mag_right: Look through our [outstanding unassigned issues](https://github.com/ChainSafe/lodestar/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee). (Hint: look for issues labeled `good first issue` or `help-wanted`!)
123-
- :speech_balloon: Join our [Discord chat](https://discord.gg/aMxzVcr)!
124-
[![Discord](https://img.shields.io/discord/593655374469660673.svg?label=Discord&logo=discord)](https://discord.gg/aMxzVcr)
125-
126-
## Reporting A Bug?
127-
128-
- :spiral_notepad: [Create a new issue!](https://github.com/ChainSafe/lodestar/issues/new/choose) Select the type of issue that best fits, and please fill out as much of the information as you can.
129-
130-
## Contribution Process
131-
132-
1. Make sure you're familiar with our contribution guidelines _(this document)_!
133-
2. Create your [own fork](https://github.com/ChainSafe/lodestar/fork) of this repository.
134-
3. Make your changes in your local fork.
135-
4. If you've made a code change, make sure to lint and test your changes (`yarn lint` and `yarn test:unit`).
136-
5. Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.
137-
138-
Please note that trivial, non-code contributions such as spelling, grammar, typos, corrections, comments and link fixes are not acceptable pull requests. Although we appreciate the effort to fix these valid concerns, it is not practical for us to run our CI systems to accommodate minor external contributions which generate minimal value for the purpose of contribution/airdrop farming. It would be appreciated for you to open up an issue instead for our team to aggregate these types of contributions into a batch commit.
139-
140168
## Github Style Guide
141169

142170
**Branch Naming**
@@ -165,11 +193,7 @@ For example:
165193
- If your pull request is fixable and needs additional changes or commits within a short period of time, switch your pull request into a draft until it's ready.
166194
- Otherwise, close your pull request and [create a new issue instead.](https://github.com/ChainSafe/lodestar/issues/new/choose)
167195

168-
## Lodestar Monorepo
169-
170-
We're currently experimenting with hosting the majority of lodestar packages and support packages in this repository as a [monorepo](https://en.wikipedia.org/wiki/Monorepo). We're using [Lerna](https://lerna.js.org/) to manage the packages. See [packages/](https://github.com/ChainSafe/lodestar/tree/unstable/packages) for a list of packages hosted in this repository.
171-
172-
## Style Guide
196+
## Lodestar Code Style Guide
173197

174198
- Lodestar has migrated to using ES modules.
175199
- Many module class constructors have the following signature: `(options, dependencies)`
@@ -202,7 +226,7 @@ We're currently experimenting with hosting the majority of lodestar packages and
202226
- Metric code variables on the other hand should not be suffixed, i.e. `Sec`-suffix should be omitted
203227
- Time-based metrics must use seconds as the unit
204228

205-
## Tests style guide
229+
## Tests Style Guide
206230

207231
Test must not depend on external live resources, such that running tests for a commit must be deterministic:
208232

@@ -266,7 +290,7 @@ If the PR introduces large-scale changes, affecting multiple areas of the codeba
266290
- Some corner cases can be observed while testing on feature group. If any such issue is identified which was not brainstormed earlier must be bring to attention of the team.
267291
- If and when possible try to release big features under opt-in feature flags.
268292

269-
## Logging policy
293+
## Logging Policy
270294

271295
### Logging Levels
272296

@@ -277,7 +301,7 @@ Contributors must choose the log level carefully to ensure a consistent experien
277301
- `info`: General sporadic informational about the node's state. Examples include initialization messages, infrequent periodic status updates, or high-level progress reports.
278302
- `debug`: Detailed diagnostic information that can help developers or users troubleshoot specific issues. Examples include individual request logs for every REST API, networking interactions, or internal components status changes. Alias to `verbose`.
279303

280-
### Logging guidelines
304+
### Logging Guidelines
281305

282306
- Avoid excessive logging. Log messages should be clear and concise, providing enough information to understand the context and severity of the issue.
283307
- Do not log sensitive data, such as private keys, user credentials, or personal information.
@@ -345,7 +369,3 @@ A simple indicator of issue prioritization. It mainly applies to issues.
345369
###### `spec.*` Ethereum Consensus Spec Version Target
346370

347371
Issues that target a specific version of the Ethereum consensus spec, shall be tagged accordingly.
348-
349-
## Community
350-
351-
Come chat with us on [Discord](https://discord.gg/aMxzVcr) and join our public weekly planning meetings!

0 commit comments

Comments
 (0)