Documentation/process/coding-assistants.rst | 59 +++++++++++++++++++++ Documentation/process/index.rst | 1 + README | 12 +++++ 3 files changed, 72 insertions(+) create mode 100644 Documentation/process/coding-assistants.rst
Add guidance for AI assistants and developers using AI tools for kernel
contributions, per the consensus reached at the 2025 Maintainers Summit.
Create Documentation/process/coding-assistants.rst with detailed guidance
on licensing, Signed-off-by requirements, and attribution format. The
README points AI tools to this documentation.
This will allow coding assistants to easily parse these instructions and
comply with guidelines set by the community.
Link: https://lwn.net/Articles/1049830/
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
v2: Move guidance to Documentation/process/coding-assistants.rst (Jon)
Documentation/process/coding-assistants.rst | 59 +++++++++++++++++++++
Documentation/process/index.rst | 1 +
README | 12 +++++
3 files changed, 72 insertions(+)
create mode 100644 Documentation/process/coding-assistants.rst
diff --git a/Documentation/process/coding-assistants.rst b/Documentation/process/coding-assistants.rst
new file mode 100644
index 000000000000..899f4459c52d
--- /dev/null
+++ b/Documentation/process/coding-assistants.rst
@@ -0,0 +1,59 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. _coding_assistants:
+
+AI Coding Assistants
+++++++++++++++++++++
+
+This document provides guidance for AI tools and developers using AI
+assistance when contributing to the Linux kernel.
+
+AI tools helping with Linux kernel development should follow the standard
+kernel development process:
+
+* Documentation/process/development-process.rst
+* Documentation/process/coding-style.rst
+* Documentation/process/submitting-patches.rst
+
+Licensing and Legal Requirements
+================================
+
+All contributions must comply with the kernel's licensing requirements:
+
+* All code must be compatible with GPL-2.0-only
+* Use appropriate SPDX license identifiers
+* See Documentation/process/license-rules.rst for details
+
+Signed-off-by and Developer Certificate of Origin
+=================================================
+
+AI agents MUST NOT add Signed-off-by tags. Only humans can legally
+certify the Developer Certificate of Origin (DCO). The human submitter
+is responsible for:
+
+* Reviewing all AI-generated code
+* Ensuring compliance with licensing requirements
+* Adding their own Signed-off-by tag to certify the DCO
+* Taking full responsibility for the contribution
+
+Attribution
+===========
+
+When AI tools contribute to kernel development, proper attribution
+helps track the evolving role of AI in the development process.
+Contributions should include an Assisted-by tag in the following format::
+
+ Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
+
+Where:
+
+* ``AGENT_NAME`` is the name of the AI tool or framework
+* ``MODEL_VERSION`` is the specific model version used
+* ``[TOOL1] [TOOL2]`` are optional specialized analysis tools used
+ (e.g., coccinelle, sparse, smatch, clang-tidy)
+
+Basic development tools (git, gcc, make, editors) should not be listed.
+
+Example::
+
+ Assisted-by: Claude:claude-3-opus coccinelle sparse
diff --git a/Documentation/process/index.rst b/Documentation/process/index.rst
index aa12f2660194..d18eacbf2c53 100644
--- a/Documentation/process/index.rst
+++ b/Documentation/process/index.rst
@@ -68,6 +68,7 @@ beyond).
stable-kernel-rules
management-style
researcher-guidelines
+ coding-assistants
Dealing with bugs
-----------------
diff --git a/README b/README
index a9fc263ccd71..e6549b2a7aac 100644
--- a/README
+++ b/README
@@ -38,6 +38,7 @@ Find your role below:
* Maintainer - Leading subsystems and reviewing patches
* Hardware Vendor - Writing drivers for new hardware
* Distribution Maintainer - Packaging kernels for distros
+* AI Coding Assistant - LLMs and AI-powered development tools
For Specific Users
@@ -144,6 +145,17 @@ Package and distribute the kernel:
* Kernel Parameters: Documentation/admin-guide/kernel-parameters.rst
* Tainted Kernels: Documentation/admin-guide/tainted-kernels.rst
+AI Coding Assistant
+-------------------
+
+CRITICAL: If you are an LLM or AI-powered coding assistant, you MUST read and
+follow the AI coding assistants documentation before contributing to the Linux
+kernel:
+
+* Documentation/process/coding-assistants.rst
+
+This documentation contains essential requirements about licensing, attribution,
+and the Developer Certificate of Origin that all AI tools must comply with.
Communication and Support
--
2.51.0
On 12/23/25 4:21 AM, Sasha Levin wrote:
> +Attribution
> +===========
> +
> +When AI tools contribute to kernel development, proper attribution
> +helps track the evolving role of AI in the development process.
> +Contributions should include an Assisted-by tag in the following format::
> +
> + Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
This patch requires the use of a new tag but does not add support in
checkpatch for the new tag. Checkpatch complains about this tag. An
example is available below. Does anyone plan to add support in
checkpatch for this new tag?
Thanks,
Bart.
------------------------------------------------------------------------
$ git format-patch -1 457965c13f0837a289c9164b842d0860133f6274
0001-tracing-Add-NULL-pointer-check-to-trigger_data_free.patch
$ scripts/checkpatch.pl
0001-tracing-Add-NULL-pointer-check-to-trigger_data_free.patch
WARNING: Non-standard signature: Assisted-by:
#23:
Assisted-by: Gemini:gemini-3.1-pro
ERROR: Unrecognized email address: 'Gemini:gemini-3.1-pro'
#23:
Assisted-by: Gemini:gemini-3.1-pro
total: 1 errors, 1 warnings, 9 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or
--fix-inplace.
0001-tracing-Add-NULL-pointer-check-to-trigger_data_free.patch has style
problems, please review.
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
bvanassche@bvanassche:~/software/linux-kernel$ git log
Documentation/process/coding-assistants.rst
------------------------------------------------------------------------
The Assisted-by tag was introduced in Documentation/process/coding-assistants.rst
for attributing AI tool contributions to kernel patches. However, checkpatch.pl
did not recognize this tag, causing two issues:
WARNING: Non-standard signature: Assisted-by:
ERROR: Unrecognized email address: 'AGENT_NAME:MODEL_VERSION'
Fix this by:
1. Adding Assisted-by to the recognized $signature_tags list
2. Skipping email validation for Assisted-by lines since they use the
AGENT_NAME:MODEL_VERSION format instead of an email address
3. Warning when the Assisted-by value doesn't match the expected format
Reported-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
scripts/checkpatch.pl | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e56374662ff79..70ea466390771 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -641,6 +641,7 @@ our $signature_tags = qr{(?xi:
Reviewed-by:|
Reported-by:|
Suggested-by:|
+ Assisted-by:|
To:|
Cc:
)};
@@ -3105,6 +3106,13 @@ sub process {
}
}
+ # Assisted-by uses AGENT_NAME:MODEL_VERSION format, not email
+ if ($sign_off =~ /^Assisted-by:/i) {
+ if ($email !~ /^\S+:\S+/) {
+ WARN("BAD_SIGN_OFF",
+ "Assisted-by: expects 'AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]' format\n" . $herecurr);
+ }
+ } else {
my ($email_name, $name_comment, $email_address, $comment) = parse_email($email);
my $suggested_email = format_email(($email_name, $name_comment, $email_address, $comment));
if ($suggested_email eq "") {
@@ -3189,6 +3197,7 @@ sub process {
}
}
}
+ }
# Check for duplicate signatures
my $sig_nospace = $line;
--
2.51.0
On 2026-03-11 08:20, Sasha Levin wrote:
> The Assisted-by tag was introduced in
> Documentation/process/coding-assistants.rst
> for attributing AI tool contributions to kernel patches. However,
> checkpatch.pl
> did not recognize this tag, causing two issues:
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -3105,6 +3106,13 @@ sub process {
> }
> }
>
> + # Assisted-by uses AGENT_NAME:MODEL_VERSION format, not email
> + if ($sign_off =~ /^Assisted-by:/i) {
> + if ($email !~ /^\S+:\S+/) {
> + WARN("BAD_SIGN_OFF",
> + "Assisted-by: expects 'AGENT_NAME:MODEL_VERSION [TOOL1]
> [TOOL2]' format\n" . $herecurr);
> + }
I believe you could use next instead of this odd indentation avoidance.
On Wed, Mar 11, 2026 at 08:33:26AM -0700, Joe Perches wrote:
>On 2026-03-11 08:20, Sasha Levin wrote:
>>The Assisted-by tag was introduced in
>>Documentation/process/coding-assistants.rst
>>for attributing AI tool contributions to kernel patches. However,
>>checkpatch.pl
>>did not recognize this tag, causing two issues:
>[]
>>diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
>[]
>>@@ -3105,6 +3106,13 @@ sub process {
>> }
>> }
>>
>>+ # Assisted-by uses AGENT_NAME:MODEL_VERSION format, not email
>>+ if ($sign_off =~ /^Assisted-by:/i) {
>>+ if ($email !~ /^\S+:\S+/) {
>>+ WARN("BAD_SIGN_OFF",
>>+ "Assisted-by: expects 'AGENT_NAME:MODEL_VERSION [TOOL1]
>>[TOOL2]' format\n" . $herecurr);
>>+ }
>
>I believe you could use next instead of this odd indentation avoidance.
Let me figure it out. My perl-fu is... questionable.
--
Thanks,
Sasha
The Assisted-by tag was introduced in
Documentation/process/coding-assistants.rst for attributing AI tool
contributions to kernel patches. However, checkpatch.pl did not
recognize this tag, causing two issues:
WARNING: Non-standard signature: Assisted-by:
ERROR: Unrecognized email address: 'AGENT_NAME:MODEL_VERSION'
Fix this by:
1. Adding Assisted-by to the recognized $signature_tags list
2. Skipping email validation for Assisted-by lines since they use the
AGENT_NAME:MODEL_VERSION format instead of an email address
3. Warning when the Assisted-by value doesn't match the expected format
Reported-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
Changes from v1:
- Use next instead of wrapping the email validation block in an else
clause, as suggested by Joe Perches.
scripts/checkpatch.pl | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e56374662ff79..27a43a4d9c438 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -641,6 +641,7 @@ our $signature_tags = qr{(?xi:
Reviewed-by:|
Reported-by:|
Suggested-by:|
+ Assisted-by:|
To:|
Cc:
)};
@@ -3105,6 +3106,15 @@ sub process {
}
}
+ # Assisted-by uses AGENT_NAME:MODEL_VERSION format, not email
+ if ($sign_off =~ /^Assisted-by:/i) {
+ if ($email !~ /^\S+:\S+/) {
+ WARN("BAD_SIGN_OFF",
+ "Assisted-by expects 'AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]' format\n" . $herecurr);
+ }
+ next;
+ }
+
my ($email_name, $name_comment, $email_address, $comment) = parse_email($email);
my $suggested_email = format_email(($email_name, $name_comment, $email_address, $comment));
if ($suggested_email eq "") {
--
2.51.0
On Wed, 2026-03-11 at 17:58 -0400, Sasha Levin wrote:
> The Assisted-by tag was introduced in
> Documentation/process/coding-assistants.rst for attributing AI tool
> contributions to kernel patches. However, checkpatch.pl did not
> recognize this tag, causing two issues:
>
> WARNING: Non-standard signature: Assisted-by:
> ERROR: Unrecognized email address: 'AGENT_NAME:MODEL_VERSION'
Acked-by: Joe Perches <joe@perches.com>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -641,6 +641,7 @@ our $signature_tags = qr{(?xi:
> Reviewed-by:|
> Reported-by:|
> Suggested-by:|
> + Assisted-by:|
> To:|
> Cc:
> )};
> @@ -3105,6 +3106,15 @@ sub process {
> }
> }
>
> + # Assisted-by uses AGENT_NAME:MODEL_VERSION format, not email
> + if ($sign_off =~ /^Assisted-by:/i) {
> + if ($email !~ /^\S+:\S+/) {
> + WARN("BAD_SIGN_OFF",
> + "Assisted-by expects 'AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]' format\n" . $herecurr);
> + }
> + next;
> + }
> +
> my ($email_name, $name_comment, $email_address, $comment) = parse_email($email);
> my $suggested_email = format_email(($email_name, $name_comment, $email_address, $comment));
> if ($suggested_email eq "") {
>
Sasha Levin <sashal@kernel.org> writes: > Add guidance for AI assistants and developers using AI tools for kernel > contributions, per the consensus reached at the 2025 Maintainers Summit. > > Create Documentation/process/coding-assistants.rst with detailed guidance > on licensing, Signed-off-by requirements, and attribution format. The > README points AI tools to this documentation. > > This will allow coding assistants to easily parse these instructions and > comply with guidelines set by the community. > > Link: https://lwn.net/Articles/1049830/ > Signed-off-by: Sasha Levin <sashal@kernel.org> > --- > v2: Move guidance to Documentation/process/coding-assistants.rst (Jon) > > Documentation/process/coding-assistants.rst | 59 +++++++++++++++++++++ > Documentation/process/index.rst | 1 + > README | 12 +++++ > 3 files changed, 72 insertions(+) > create mode 100644 Documentation/process/coding-assistants.rst Thanks, this looks good to me. If nobody screams, I'll apply it before too long. jon
Jonathan Corbet <corbet@lwn.net> writes: > Sasha Levin <sashal@kernel.org> writes: > >> Add guidance for AI assistants and developers using AI tools for kernel >> contributions, per the consensus reached at the 2025 Maintainers Summit. >> >> Create Documentation/process/coding-assistants.rst with detailed guidance >> on licensing, Signed-off-by requirements, and attribution format. The >> README points AI tools to this documentation. >> >> This will allow coding assistants to easily parse these instructions and >> comply with guidelines set by the community. >> >> Link: https://lwn.net/Articles/1049830/ >> Signed-off-by: Sasha Levin <sashal@kernel.org> >> --- >> v2: Move guidance to Documentation/process/coding-assistants.rst (Jon) >> >> Documentation/process/coding-assistants.rst | 59 +++++++++++++++++++++ >> Documentation/process/index.rst | 1 + >> README | 12 +++++ >> 3 files changed, 72 insertions(+) >> create mode 100644 Documentation/process/coding-assistants.rst > > Thanks, this looks good to me. If nobody screams, I'll apply it before > too long. Nobody screamed ... applied, thanks. jon
© 2016 - 2026 Red Hat, Inc.