44* [ Using AI for code contributions] ( #using-ai-for-code-contributions )
55* [ Using AI for communication] ( #using-ai-for-communication )
66
7+ This document aligns with the [ OpenJS Foundation AI Coding Assistants Policy] [ ] .
8+
79## Core principle
810
9- Node.js expects contributors to understand and take full responsibility for
10- every change they propose. The answer to "Why is X an improvement?" should
11+ Node.js expects contributions to come from _ people_ . Contributors are free
12+ to use whatever tools they choose, including AI assistants, but such tools
13+ never replace the contributor's own understanding and responsibility.
14+
15+ Node.js requires contributors to understand and take full responsibility for
16+ every change they propose. The answer to "Why is X an improvement?" can
1117never be "I'm not sure. The AI did it."
1218
19+ If AI tools assisted in generating a contribution, that should be
20+ acknowledged honestly (e.g., via an ` Assisted-by: ` tag in the commit
21+ metadata) so that reviewers have appropriate context.
22+
1323Pull requests that consist of AI-generated code the contributor has not
1424personally understood, tested, and verified waste collaborator time and
15- will be subject to closure without additional review.
25+ will be subject to closure without additional review. Contributors who
26+ repeatedly submit such changes, show no understanding of the project or
27+ its processes, or are dishonest about the use of automated assistance
28+ may be blocked from further contributions.
29+
30+ Pull requests must not be opened by automated tooling not specifically
31+ approved in advance by the project.
1632
1733## Using AI for code contributions
1834
19- AI tools may assist contributors, but must not replace contributor judgment.
35+ Contributors may use AI tools to assist with contributions, but such tools
36+ never replace human judgment.
37+
2038When using AI as a coding assistant:
2139
2240* ** Understand the codebase first.** Do not skip familiarizing yourself with
2341 the relevant subsystem. LLMs frequently produce inaccurate descriptions of
2442 Node.js internals — always verify against the actual source. When using an AI
25- tool, ask it to cite the exact source files/PRs/docs it’s relying on, and then
43+ tool, ask it to cite the exact source it’s relying on, and then
2644 match the claim against that resource to verify if it holds up in the current
2745 code.
2846
2947* ** Own every line you submit.** You are responsible for all code in your
30- pull request, regardless of how it was generated. Be prepared to explain
31- any change in detail during review.
48+ pull request, regardless of how it was generated. This includes ensuring
49+ that AI-generated or AI-assisted contributions satisfy the project's
50+ [ Developer's Certificate of Origin] [ ] and licensing requirements. Be
51+ prepared to explain any change in detail during review.
3252
3353* ** Keep logical commits.** Structure commits coherently even when an LLM
3454 generates multiple changes at once. Follow the existing
@@ -43,23 +63,26 @@ When using AI as a coding assistant:
4363 feedback and iterate until the work lands or is explicitly closed. If you
4464 can no longer pursue it, close the PR. Stalled PRs block progress.
4565
66+ * ** Do not use AI to claim "good first issue" tasks.** These issues exist to
67+ help new contributors learn the codebase and processes hands-on.
68+
4669* ** Edit generated comments critically.** LLM-produced comments are often
4770 verbose or inaccurate. Remove comments that simply restate what the code
4871 does; add comments only where the logic is non-obvious.
4972
5073## Using AI for communication
5174
52- Node.js values concise, precise communication that respects collaborator time.
75+ Node.js values concise, precise communication that respects collaborator and contributor time.
5376
5477* ** Do not post messages generated entirely by AI** in pull requests, issues, or the
5578 project's communication channels.
5679* ** Verify accuracy** of any LLM-generated content before including it in a
5780 PR description or comment.
58- * ** Complete pull request templates fully** rather than replacing them with
59- LLM-generated summaries.
6081* ** Link to primary sources** — code, documentation, specifications — rather
61- than quoting LLM answers.
82+ than quoting LLM answers or linking to LLM chats .
6283* Grammar and spell-check tools are acceptable when they improve clarity and
6384 conciseness.
6485
6586[ commit message guidelines ] : ./pull-requests.md#commit-message-guidelines
87+ [ Developer's Certificate of Origin ] : ../../CONTRIBUTING.md#developers-certificate-of-origin-11
88+ [ OpenJS Foundation AI Coding Assistants Policy ] : https://openjsf.cdn.prismic.io/openjsf/aca4d5GXnQHGZDiZ_OpenJS_AI_Coding_Assistants_Policy.pdf
0 commit comments