Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Commit 8d39d0d

Browse files
jasnelladuh95
authored andcommitted
meta: add a root-level AGENTS.md
We're seeing a number of repeated mistakes in AI-generated contributions, including agents using `Signed-off-by`, creating what appear to be unsupervised PRs, appearing to respond to comments without human oversight, etc. Having an AGENTS.md file with specific instructions to the agent on what to avoid should help. Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #65493 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
1 parent 4232997 commit 8d39d0d

4 files changed

Lines changed: 67 additions & 4 deletions

File tree

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ install_manifest.txt
163163

164164
# === Rules for AI assistants ===
165165
CLAUDE.md
166-
AGENTS.md
167166

168167
# === Global Rules ===
169168
# Keep last to avoid being excluded

‎AGENTS.md‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Agents and Automated Tools
2+
3+
This document outlines rules and requirements for AI automation agents and automated
4+
tooling that interact with the Node.js project.
5+
6+
Existing Node.js collaborators (as listed in the README.md) may use AI agents to
7+
contribute but must do so responsibly.
8+
9+
New Node.js contributors should avoid using AI agents to interact with the project.
10+
11+
## Code Contributions
12+
13+
***No unreviewed automation**: Automated pull requests must not be created without
14+
ongoing human oversight. The pull request must be actively maintained by a human
15+
contributor who responds to feedback. The AI agent is not permitted to create pull
16+
requests, open issues, post comments, respond to reviews, or push commits without
17+
ongoing human oversight.
18+
19+
***Commit responsibility**: Commits created with agent assistance must follow all
20+
Node.js [commit message guidelines](./doc/contributing/pull-requests.md#commit-message-guidelines).
21+
The human contributor opening the PR takes full responsibility for the changes.
22+
23+
***Testing and verification**: All changes must pass the Node.js continuous integration.
24+
Human judgment must verify that existing tests are not removed or modified inappropriately,
25+
and that new tests correctly validate the intended behavior.
26+
27+
### Requirements
28+
29+
* All commits must be signed off by the human user using `Signed-off-by: <your name> (<your email>)`
30+
as an attestation to the [Developer Certificate of Origin](https://developercertificate.org/).
31+
* AI-assistance must be acknowledged using the `Assisted-by: <agent name>` annotation.
32+
* AI-authored code contributions must be compatible with the project's licensing and
33+
contribution guidelines.
34+
35+
## Prohibited Activities
36+
37+
AI agents **must not**:
38+
39+
* Push to any branch or tag in nodejs/node.
40+
* Create unsupervised pull requests or issues without active human engagement.
41+
* Make claims about code without human verification against actual source code.
42+
* Remove or modify existing tests without human judgment.
43+
* Interact with the repository through means other than those explicitly authorized.
44+
* Use commit messages to promote for-profit AI tools or commercial brands. A single
45+
`Assisted-by: <agent-name>` annotation is required disclosure, not promotion, and is
46+
permitted.
47+
* Post AI-generated messages directly into pull requests, issues, or project communication
48+
channels without direct human review and editing to ensure clarity, accuracy, and respect
49+
for collaborator time.
50+
* Sign off commits using `Signed-off-by: <agent name>` or `Co-authored-by: <agent name>`.
51+
52+
## Violations
53+
54+
Automated interactions that violate these rules may result in:
55+
56+
* Immediate closure of pull requests without review.
57+
* Blocking of the automation tool from further interaction with the project.
58+
* Blocking of the tool's account or its owner from contributing.
59+
* Reports to relevant platforms or organizations operating the automation.
60+
61+
***
62+
63+
For more information on AI use in general contributions (not specific to agents),
64+
see [AI use policy and guidelines](./doc/contributing/ai-guidelines.md).

‎Makefile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ ifneq ($(SKIP_SHARED_DEPS), 1)
12881288
cp doc/node.1 $(TARNAME)/doc/node.1
12891289
cp -r out/doc/api/* $(TARNAME)/doc/api/
12901290
endif
1291-
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
1291+
sed 's/fileset = fileset.intersection (fileset.gitTracked root)/fileset =/' tools/nix/v8.nix > $(TARNAME)/tools/nix/v8.nix
12921292
$(RM) -r $(TARNAME)/.editorconfig
12931293
$(RM) -r $(TARNAME)/.git*
12941294
$(RM) -r $(TARNAME)/.mailmap
@@ -1480,7 +1480,7 @@ else
14801480
LINT_MD_NEWER = -newer tools/.mdlintstamp
14811481
endif
14821482

1483-
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md AGENTS.md,$(wildcard*.md))
1483+
LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(filter-out CLAUDE.md,$(wildcard*.md))
14841484
LINT_MD_FILES = $(shell$(FIND)$(LINT_MD_TARGETS) -type f \
14851485
! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
14861486
$(LINT_MD_NEWER))

‎eslint.config.mjs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ export default [
397397
// #region markdown config
398398
{
399399
files: ['**/*.md'],
400-
ignores: ['CLAUDE.md','AGENTS.md'],
400+
ignores: ['CLAUDE.md'],
401401
plugins: {
402402
markdown,
403403
},

0 commit comments

Comments
 (0)