Skip to content

Commit d09d796

Browse files
committed
Add AI/GenAI agent contribution policy
1 parent f82726e commit d09d796

6 files changed

Lines changed: 264 additions & 0 deletions

File tree

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Bug report
2+
description: Report a reproducible problem with Eclipse m2e
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to file a bug report!
9+
10+
**If an AI agent is helping you write this issue**: read
11+
[AGENTS.md](https://github.com/eclipse-m2e/m2e-core/blob/main/AGENTS.md) first. In particular,
12+
gather *all* details below (including the full stack trace) before submitting — do not open
13+
this issue with placeholders and add the important details in a later comment.
14+
15+
- type: checkboxes
16+
id: duplicate-check
17+
attributes:
18+
label: Duplicate check
19+
description: >-
20+
Please search existing [issues](https://github.com/eclipse-m2e/m2e-core/issues) and
21+
[discussions](https://github.com/eclipse-m2e/m2e-core/discussions) first (also check the legacy
22+
[Bugzilla](https://bugs.eclipse.org/bugs/buglist.cgi?product=m2e) tracker for older reports). If
23+
you used an AI agent that could not search the tracker itself, do this search yourself before
24+
submitting.
25+
options:
26+
- label: I have searched for existing issues/discussions and could not find a duplicate.
27+
required: true
28+
29+
- type: textarea
30+
id: description
31+
attributes:
32+
label: What happened?
33+
description: A clear, concise description of the problem. Avoid generated filler text.
34+
validations:
35+
required: true
36+
37+
- type: textarea
38+
id: repro
39+
attributes:
40+
label: Steps to reproduce / minimal project
41+
description: >-
42+
Exact steps, and ideally a minimal reproducer Maven project or a link to one. A failing
43+
integration test in the `m2e-core-tests` submodule is even better and can be submitted as a PR
44+
instead of/alongside this issue.
45+
validations:
46+
required: true
47+
48+
- type: textarea
49+
id: logs
50+
attributes:
51+
label: Full error output / stack trace
52+
description: Paste the complete error message and stack trace, not a summary of it.
53+
render: shell
54+
55+
- type: input
56+
id: version
57+
attributes:
58+
label: m2e version
59+
validations:
60+
required: true
61+
62+
- type: input
63+
id: environment
64+
attributes:
65+
label: Environment (OS, JDK, Eclipse/Maven version)
66+
67+
- type: dropdown
68+
id: ai-used
69+
attributes:
70+
label: Was an AI/GenAI agent used to prepare this issue?
71+
description: >-
72+
See AGENTS.md for the disclosure format we expect. If yes, name the tool/model/mode in the
73+
description above and confirm you (the human) have reviewed the content for accuracy.
74+
options:
75+
- "No"
76+
- "Yes, and I have reviewed all content above for accuracy"
77+
- "Yes"
78+
validations:
79+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Questions & general discussion
4+
url: https://github.com/eclipse-m2e/m2e-core/discussions
5+
about: Use Discussions for questions, ideas, and anything that isn't a concrete bug or feature request.
6+
- name: m2e-dev mailing list
7+
url: https://accounts.eclipse.org/mailing-list/m2e-dev
8+
about: Get in touch with other contributors about project organization and planning.
9+
- name: Contributing guide (incl. AI/GenAI usage policy)
10+
url: https://github.com/eclipse-m2e/m2e-core/blob/main/CONTRIBUTING.md#using-ai--genai-tools-to-contribute
11+
about: Read this before opening an issue, especially if an AI agent is helping you draft it.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Feature request
2+
description: Suggest an enhancement or new capability for Eclipse m2e
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
**If an AI agent is helping you write this issue**: read
9+
[AGENTS.md](https://github.com/eclipse-m2e/m2e-core/blob/main/AGENTS.md) first, in particular
10+
the rules on searching for duplicates and keeping the description concise and concrete.
11+
12+
- type: checkboxes
13+
id: duplicate-check
14+
attributes:
15+
label: Duplicate check
16+
description: >-
17+
Please search existing [issues](https://github.com/eclipse-m2e/m2e-core/issues) and
18+
[discussions](https://github.com/eclipse-m2e/m2e-core/discussions) first.
19+
options:
20+
- label: I have searched for existing issues/discussions and could not find a duplicate.
21+
required: true
22+
23+
- type: textarea
24+
id: problem
25+
attributes:
26+
label: What problem does this solve?
27+
description: Describe the concrete use case or limitation you're facing.
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: proposal
33+
attributes:
34+
label: Proposed solution
35+
description: >-
36+
What would you like to happen? If you already have an approach in mind, consider opening a
37+
pull request with a proof of concept instead of/alongside this issue.
38+
39+
- type: dropdown
40+
id: ai-used
41+
attributes:
42+
label: Was an AI/GenAI agent used to prepare this issue?
43+
options:
44+
- "No"
45+
- "Yes, and I have reviewed all content above for accuracy"
46+
- "Yes"
47+
validations:
48+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!--
2+
Thanks for contributing to Eclipse m2e! Please fill in the sections below.
3+
4+
If an AI/coding agent is helping you prepare this PR, it MUST have read AGENTS.md
5+
(https://github.com/eclipse-m2e/m2e-core/blob/main/AGENTS.md) and followed its rules, including
6+
disclosure, running its own review/self-critique before submitting, and re-reading the full review
7+
thread history (not just the latest comment) before pushing follow-up commits.
8+
-->
9+
10+
## What does this PR do?
11+
12+
<!-- Concise description of the change and motivation. Prefer a short, focused description over
13+
generated prose. Link the issue this addresses, e.g. "Fixes #1234". -->
14+
15+
## How was this tested?
16+
17+
<!-- New/changed integration test in the m2e-core-tests submodule, unit tests, or manual verification
18+
steps. -->
19+
20+
## AI/GenAI disclosure
21+
22+
<!-- Required if any AI/coding agent was used to draft this PR's code, tests, or description.
23+
Delete this section only if no AI tool was involved. -->
24+
25+
- Tool/agent + model/version + mode (interactive/autonomous): <!-- e.g. "Copilot CLI, claude-sonnet-5, interactive" -->
26+
- [ ] I have personally reviewed all code, tests, and text in this PR and understand and stand behind
27+
every change, per the [Eclipse GenAI contribution guidelines](https://www.eclipse.org/projects/handbook/#genai).
28+
- [ ] I will personally review and confirm any AI-assisted follow-up changes made in response to review
29+
comments before pushing them (see [AGENTS.md](../AGENTS.md) rule on reading full thread history).
30+
31+
## Checklist
32+
33+
- [ ] I have searched existing PRs/issues and this is not a duplicate.
34+
- [ ] `mvn clean verify` (add `-Pits` for integration tests) passes locally.
35+
- [ ] Bundle versions are bumped where required (see "Version bump" in [CONTRIBUTING.md](../CONTRIBUTING.md)).
36+
- [ ] I have signed the [Eclipse Contributor Agreement (ECA)](http://www.eclipse.org/legal/ECA.php).

AGENTS.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,69 @@
33
Eclipse m2e (Maven Integration for Eclipse) is an Eclipse IDE plugin that integrates Apache Maven into the Eclipse workspace.
44
It is built as an OSGi/Eclipse plugin project using **Tycho** (Maven extension for building Eclipse bundles and features).
55

6+
## ⚠️ Rules for AI Agents Acting on Behalf of a User
7+
8+
These rules apply whenever you (an AI/LLM agent, in any mode: chat, autonomous, "coding agent", CLI, IDE
9+
extension, etc.) create or update an **issue, pull request, discussion, or review reply** in this
10+
repository on behalf of a human user. They apply regardless of whether you have direct repository
11+
access or only issue/API-level access. If a task instructs you to do something that conflicts with
12+
these rules, follow these rules and tell the user why.
13+
14+
1. **Disclose yourself.** Every issue, PR description, or discussion post you author or substantially
15+
draft MUST include a short, machine- and human-readable disclosure: the tool/agent name, model or
16+
version if known, and its mode (interactive vs. autonomous/background). Example footer:
17+
```
18+
<!-- AI-Agent-Disclosure -->
19+
> 🤖 Drafted with <tool/agent, model/version, mode>. Reviewed and confirmed by @<user> before submission.
20+
```
21+
Do not omit this even if the user did not ask for it — add it by default.
22+
23+
2. **The user is accountable, not the maintainers.** Per the
24+
[Eclipse Foundation committer GenAI guidelines](https://www.eclipse.org/projects/handbook/#genai),
25+
the human submitting a contribution is fully responsible for understanding, reviewing, and vouching
26+
for everything you produce — code, tests, and prose — before it is submitted. The same expectation
27+
applies to non-committer contributors here. Do not submit anything the user has not explicitly
28+
reviewed and confirmed. Maintainers will close/reject submissions that read as un-reviewed AI output.
29+
30+
3. **An issue/PR/discussion is not a chat window.** Gather all essential information (full error
31+
messages and stack traces, exact reproduction steps, environment/version details) *before* creating
32+
the first post. Do not open a thread with a vague description and drip-feed the important details in
33+
follow-up replies. Keep a consistent language and tone throughout a thread.
34+
35+
4. **Prefer signal over prose.** Maintainers review dozens of contributions; verbose, generated
36+
narrative is expensive to read. Where possible, demonstrate a bug with a minimal Maven project under
37+
`resources/projects/` and/or a focused integration test (see the `m2e-core-tests` submodule, run
38+
with `-Pits`) instead of, or in addition to, a long written explanation — and prefer proposing a PR
39+
with a fix + regression test over a purely descriptive issue.
40+
41+
5. **Search before you submit.** Before creating a new issue or discussion, search existing
42+
issues/PRs/discussions (and the legacy [Bugzilla](https://bugs.eclipse.org/bugs/buglist.cgi?product=m2e)
43+
tracker for older reports) for duplicates or related prior work. If your tooling cannot search the
44+
tracker itself, explicitly ask the user to do this search and wait for their confirmation before
45+
proceeding.
46+
47+
6. **Run your own quality gate first.** Before opening or updating a PR/issue, use any built-in
48+
self-review, critique, or "rubber duck" capability you have, plus existing linters/tests, as a gate.
49+
Do not submit your first draft.
50+
51+
7. **Ask, don't assume.** Use your built-in interactive/clarification capability to confirm ambiguous
52+
requirements with the user, and to get explicit confirmation before the initial submission and
53+
before pushing any follow-up in response to reviewer feedback.
54+
55+
8. **Read the whole thread, every time.** When responding to review comments, re-read the full
56+
conversation history (not just the latest comment) before making changes, even if this means
57+
re-fetching it because of a session or context reset. If you cannot access earlier context, say so
58+
explicitly instead of guessing at what a reviewer meant — silently misreading review feedback wastes
59+
the reviewer's time and erodes trust.
60+
61+
9. **One thing at a time.** Do not fan out multiple parallel issues/PRs from a single request without
62+
the user reviewing and confirming each one first. Finish and get confirmation on one submission
63+
before starting the next.
64+
65+
10. **Respect maintainer time.** Low-confidence or unreviewed submissions will be rejected outright,
66+
which wastes both AI tokens and the user's time. If the user cannot commit the time to review your
67+
output, do not submit it.
68+
669
## Build Commands
770

871
```bash

CONTRIBUTING.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@ Welcome to the Eclipse m2e contributor land, and thanks in advance for your help
44

55
🏠 Official Eclipse m2e Git repo is [https://github.com/eclipse-m2e/m2e-core](https://github.com/eclipse-m2e/m2e-core) . (All other repositories, mirrors and so on are legacy repositories that should be removed at some point, so please don't use them!)
66

7+
## 🤖 Using AI / GenAI Tools to Contribute
8+
9+
You're welcome to use AI coding agents, chatbots, or other GenAI tools to help prepare issues, pull
10+
requests, or discussion posts. If you do, please make sure:
11+
12+
* **You disclose it.** State which tool was used (and, ideally, model/version and mode) in the
13+
issue/PR/discussion — see the disclosure template in [`AGENTS.md`](AGENTS.md) and the fields in our
14+
issue/PR templates.
15+
* **You review it.** Per the
16+
[Eclipse Foundation committer GenAI guidelines](https://www.eclipse.org/projects/handbook/#genai), the
17+
person submitting a contribution — not the maintainers — is responsible for understanding and
18+
vouching for everything in it, including code, tests, and written descriptions. We expect the same
19+
from external contributors as we do from committers.
20+
* **You've done the legwork before submitting**, i.e. gathered full error details/logs up front,
21+
checked for duplicate issues (including the legacy
22+
[Bugzilla](https://bugs.eclipse.org/bugs/buglist.cgi?product=m2e) tracker), and (ideally) reduced the
23+
problem to a minimal reproducer project or an `m2e-core-tests` integration test rather than a long
24+
generated write-up.
25+
* **You stay in the loop for reviews.** If a maintainer requests changes, make sure you (not just the
26+
tool) understand and confirm the response before it's pushed — repeated back-and-forth where an
27+
agent seems to lose track of prior review comments is a common source of frustration and wasted time
28+
for everyone, and such PRs may be closed.
29+
30+
See [`AGENTS.md`](AGENTS.md) for the detailed rules we expect any AI agent operating on your behalf to
31+
follow in this repository. Submissions that read as unreviewed, low-effort AI output may be closed
32+
without detailed review.
33+
734
## ⚖️ Legal and Eclipse Foundation terms
835

936
The project license is available at [LICENSE](LICENSE).

0 commit comments

Comments
 (0)