From dfb86609b7c5a89bec96d83fc471bd17148ce95a Mon Sep 17 00:00:00 2001 From: PandaeDo Date: Thu, 29 Oct 2026 13:12:33 +0100 Subject: [PATCH 1/2] Add AI usage guideline Define how the Eclipse Generative AI Usage Guidelines, made applicable by wp__policies, are applied in S-CORE: contributor responsibility, mandatory disclosure (Assisted-by trailer in commits and AI disclosure section in the PR description), file header for largely AI-generated files, human approval for every merge and the relation to functional safety and tool management. Relates to #189 Assisted-by: Anthropic Claude Opus 5.5 (claude-opus-5-5) Co-Authored-By: Claude Opus 5.5 --- .../guidance/ai_usage_guideline.rst | 127 ++++++++++++++++++ .../process_management/guidance/index.rst | 1 + .../process_management_workflow.rst | 2 +- .../process_management_workproducts.rst | 5 +- 4 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 process/process_areas/process_management/guidance/ai_usage_guideline.rst diff --git a/process/process_areas/process_management/guidance/ai_usage_guideline.rst b/process/process_areas/process_management/guidance/ai_usage_guideline.rst new file mode 100644 index 00000000000..1c95a605233 --- /dev/null +++ b/process/process_areas/process_management/guidance/ai_usage_guideline.rst @@ -0,0 +1,127 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. + AI Disclosure: This file was largely AI-generated. The AI-generated + portions are made available under CC0-1.0 and not subject to the + project's license. The human contributor has reviewed and verified + that the content is correct. + SPDX-License-Identifier: Apache-2.0 AND CC0-1.0 + Assisted-by: Anthropic Claude Opus 5.5 (claude-opus-5-5) + +.. _ai_usage_guideline: + +AI Usage Guideline +################## + +.. gd_guidl:: Usage of Generative AI + :id: gd_guidl__ai_usage + :status: valid + :version: 1 + :tags: process_management + + This guideline defines how the + `Eclipse Generative AI Usage Guidelines `_, + made applicable by :need:`wp__policies`, are applied in *S-CORE*. It applies to every + contribution to any *S-CORE* repository (source code, documentation, process description, + tests, tooling and infrastructure) and to all GitHub content (issues, pull requests, review + comments). + + The Eclipse guidelines remain the governing document. This guideline only makes them + concrete where the Eclipse guidelines leave a choice to the project. + +Responsibility +============== + +#. The contributor (:need:`Contributor `) shall be responsible for every + change they submit, independent of whether it was created with the help of a generative AI + tool. The contributor shall have reviewed and understood every change and shall be able to + defend it in the review. +#. The use of a generative AI tool shall not reduce the scope of the review, the acceptance + criteria or the automated checks that apply to a contribution. +#. The contributor shall follow the terms of use of the AI tool and the policy of their + employer on the use of generative AI. +#. The contributor shall not enter confidential information, personally identifiable + information or other sensitive information into an AI tool. + +Disclosure +========== + +#. The contributor shall disclose the use of a generative AI tool, if the AI contributed in a + way for which a human would be given credit. + + No disclosure is required for trivial assistance, for example spelling and grammar + corrections, formatting, code completion of single statements or rote boilerplate that + the contributor modifies and supplements. + +#. The disclosure shall be given in both of the following places: + + - in every affected commit, as ``Assisted-by:`` trailer in the commit message, and + - in the description of the pull request, in a section "AI disclosure" with a statement + that the contributor has reviewed every change and takes responsibility for it, followed + by the ``Assisted-by:`` line. + + Disclosing in both places keeps the information in the history also when commits are + squashed during merge. + +#. The AI tool shall be identified in the following format, as complete as possible: + + .. code-block:: text + + Assisted-by: () + + Examples: + + .. code-block:: text + + Assisted-by: GitHub Copilot (GPT-4o-2024-08-06) + Assisted-by: Anthropic Claude Opus 5.5 (claude-opus-5-5) + + If several AI tools were used, one ``Assisted-by:`` line per tool shall be given. + +#. A file that is largely or entirely AI-generated shall carry, in addition to the standard + *S-CORE* copyright header, an AI disclosure block directly below it: + + .. code-block:: text + + AI Disclosure: This file was largely AI-generated. The AI-generated + portions are made available under CC0-1.0 and not subject to the + project's license. The human contributor has reviewed and verified + that the content is correct. + SPDX-License-Identifier: Apache-2.0 AND CC0-1.0 + Assisted-by: () + + The standard copyright header shall stay unchanged, so that the automated copyright + checks keep working. + +Review and Merge +================ + +#. Every merge into an *S-CORE* repository shall be approved by a human committer + (:need:`Committer `). AI agents or bots shall not push directly to protected + branches or merge pull requests. +#. A committer may reject an AI-assisted contribution that they do not understand or are not + willing to maintain, or request that it is split into smaller pull requests. +#. A committer may request the missing disclosure, if a contribution appears to be AI-assisted + and is not disclosed. + +Functional Safety and Security +============================== + +#. AI-assisted content in safety or security related work products shall follow the same + process, review and verification requirements as any other content. No additional rules + apply. +#. The output of an AI tool shall not be used as verification evidence on its own. If AI + output becomes part of a work product without a complete human review, the AI tool shall be + handled by Tool Management (:need:`wf__tool_evaluate_tool`). diff --git a/process/process_areas/process_management/guidance/index.rst b/process/process_areas/process_management/guidance/index.rst index 9033ab3bd46..bd2e4e66b3b 100644 --- a/process/process_areas/process_management/guidance/index.rst +++ b/process/process_areas/process_management/guidance/index.rst @@ -18,6 +18,7 @@ Guidance .. toctree:: :maxdepth: 1 + ai_usage_guideline process_management_guideline process_management_templates process_management_reqs diff --git a/process/process_areas/process_management/process_management_workflow.rst b/process/process_areas/process_management/process_management_workflow.rst index 59e274519bf..dd144e65713 100644 --- a/process/process_areas/process_management/process_management_workflow.rst +++ b/process/process_areas/process_management/process_management_workflow.rst @@ -28,7 +28,7 @@ For a detailed explanation of workflows and their role within the process model, :supported_by: rl__safety_external_auditor[version==1], rl__security_external_auditor[version==1], rl__project_lead[version==1] :input: wp__policies[version==1], wp__issue_track_system[version==1] :output: wp__process_strategy[version==1], wp__policies[version==1] - :contains: gd_guidl__process_management[version==1], gd_temp__process_workflow[version==1] + :contains: gd_guidl__process_management[version==1], gd_guidl__ai_usage[version==1], gd_temp__process_workflow[version==1] :has: doc_concept__process_management[version==1], doc_getstrt__process_management[version==1] The process management strategy is created and maintained. Policies are diff --git a/process/process_areas/process_management/process_management_workproducts.rst b/process/process_areas/process_management/process_management_workproducts.rst index 3fe89b9f872..29e8ee6e2cb 100644 --- a/process/process_areas/process_management/process_management_workproducts.rst +++ b/process/process_areas/process_management/process_management_workproducts.rst @@ -38,8 +38,9 @@ Here only project specific work products are listed, which are generic for the p `Eclipse Foundation Functional Safety Process `_) applies. - Concerning the use of Generative Artificial Intelligence - `Usage Guidelines `_ applies. + Concerning the use of Generative Artificial Intelligence the Eclipse Foundation + `Generative AI Usage Guidelines `_ + apply. Their application in the project is defined in :need:`gd_guidl__ai_usage`. Project specific Policies for functional safety and cybersecurity may extend the ones from ECLIPSE. From 727aee69db672c47a41a1f5c0c28e4a10b7e1f99 Mon Sep 17 00:00:00 2001 From: PandaeDo Date: Thu, 29 Oct 2026 14:19:05 +0100 Subject: [PATCH 2/2] Address review findings - Use project independent wording instead of S-CORE - Remove rules already covered by the Eclipse guidelines (employer policy, confidential data) - Disclose AI use once, where the content is created (commit trailer or Assisted-by line in issue, PR description or comment) - Committer shall request missing disclosure - Clarify relation to Tool Management: AI tools are identified and evaluated, qualification is not intended, human review is required Assisted-by: Anthropic Claude Opus 5.5 (claude-opus-5-5) Co-Authored-By: Claude Opus 5.5 --- .../guidance/ai_usage_guideline.rst | 41 ++++++++----------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/process/process_areas/process_management/guidance/ai_usage_guideline.rst b/process/process_areas/process_management/guidance/ai_usage_guideline.rst index 1c95a605233..3d9d1948ee4 100644 --- a/process/process_areas/process_management/guidance/ai_usage_guideline.rst +++ b/process/process_areas/process_management/guidance/ai_usage_guideline.rst @@ -33,10 +33,9 @@ AI Usage Guideline This guideline defines how the `Eclipse Generative AI Usage Guidelines `_, - made applicable by :need:`wp__policies`, are applied in *S-CORE*. It applies to every - contribution to any *S-CORE* repository (source code, documentation, process description, - tests, tooling and infrastructure) and to all GitHub content (issues, pull requests, review - comments). + made applicable by :need:`wp__policies`, are applied in the project. It applies to every + contribution to the project, independent of the repository and the kind of content, + including issues, pull requests and review comments. The Eclipse guidelines remain the governing document. This guideline only makes them concrete where the Eclipse guidelines leave a choice to the project. @@ -50,10 +49,6 @@ Responsibility defend it in the review. #. The use of a generative AI tool shall not reduce the scope of the review, the acceptance criteria or the automated checks that apply to a contribution. -#. The contributor shall follow the terms of use of the AI tool and the policy of their - employer on the use of generative AI. -#. The contributor shall not enter confidential information, personally identifiable - information or other sensitive information into an AI tool. Disclosure ========== @@ -65,15 +60,12 @@ Disclosure corrections, formatting, code completion of single statements or rote boilerplate that the contributor modifies and supplements. -#. The disclosure shall be given in both of the following places: +#. The disclosure shall be given where the AI-assisted content is created: - - in every affected commit, as ``Assisted-by:`` trailer in the commit message, and - - in the description of the pull request, in a section "AI disclosure" with a statement - that the contributor has reviewed every change and takes responsibility for it, followed - by the ``Assisted-by:`` line. - - Disclosing in both places keeps the information in the history also when commits are - squashed during merge. + - for changes in a repository, as ``Assisted-by:`` trailer in the message of every affected + commit; + - for issues, pull request descriptions and comments whose text is AI-assisted, as + ``Assisted-by:`` line in that text. #. The AI tool shall be identified in the following format, as complete as possible: @@ -91,7 +83,7 @@ Disclosure If several AI tools were used, one ``Assisted-by:`` line per tool shall be given. #. A file that is largely or entirely AI-generated shall carry, in addition to the standard - *S-CORE* copyright header, an AI disclosure block directly below it: + copyright header of the project, an AI disclosure block directly below it: .. code-block:: text @@ -102,19 +94,19 @@ Disclosure SPDX-License-Identifier: Apache-2.0 AND CC0-1.0 Assisted-by: () - The standard copyright header shall stay unchanged, so that the automated copyright + The copyright header of the project shall stay unchanged, so that the automated copyright checks keep working. Review and Merge ================ -#. Every merge into an *S-CORE* repository shall be approved by a human committer +#. Every merge into a repository of the project shall be approved by a human committer (:need:`Committer `). AI agents or bots shall not push directly to protected branches or merge pull requests. #. A committer may reject an AI-assisted contribution that they do not understand or are not willing to maintain, or request that it is split into smaller pull requests. -#. A committer may request the missing disclosure, if a contribution appears to be AI-assisted - and is not disclosed. +#. A committer shall request the missing disclosure, if a contribution appears to be + AI-assisted and is not disclosed. Functional Safety and Security ============================== @@ -122,6 +114,7 @@ Functional Safety and Security #. AI-assisted content in safety or security related work products shall follow the same process, review and verification requirements as any other content. No additional rules apply. -#. The output of an AI tool shall not be used as verification evidence on its own. If AI - output becomes part of a work product without a complete human review, the AI tool shall be - handled by Tool Management (:need:`wf__tool_evaluate_tool`). +#. AI tools used to create or verify work products shall be identified and evaluated like any + other tool according to Tool Management (:need:`wf__tool_evaluate_tool`). A qualification of + AI tools is not intended. Therefore the output of an AI tool shall not be used as work product + or verification evidence without human review.