[PATCH] checkpatch: recognize the Assisted-by: trailer

Alireza Haghdoost via B4 Relay posted 1 patch 1 month, 2 weeks ago
scripts/checkpatch.pl | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
[PATCH] checkpatch: recognize the Assisted-by: trailer
Posted by Alireza Haghdoost via B4 Relay 1 month, 2 weeks ago
From: Alireza Haghdoost <haghdoost@uber.com>

Documentation/process/coding-assistants.rst, added in commit
78d979db6cef ("docs: add AI Coding Assistants documentation"),
mandates an Assisted-by trailer for any patch developed with help
from an AI coding assistant. The documented format is
"Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]" (for example,
"Assisted-by: Claude:claude-3-opus coccinelle sparse").

scripts/checkpatch.pl was not updated alongside the documentation.
The trailer name matches the script's generic [a-z0-9_-]+by: pattern,
so checkpatch (a) emits a "Non-standard signature: Assisted-by:"
WARNING because Assisted-by: is absent from $signature_tags, and
(b) emits an "Unrecognized email address" ERROR because the value
is not an RFC 5322 email but the AGENT_NAME:MODEL_VERSION form
prescribed by the spec. Both fire on every correctly-formed
Assisted-by: tag, making it impossible to satisfy both the
documentation and checkpatch at the same time.

Add Assisted-by: to $signature_tags and to the @standard_signature_tags
list (so suggested-typo correction works for it). Introduce a new
$no_email_signature_tags pattern listing trailers that, by spec, do
not carry an email address, and gate the email parse / format / stable
address checks on it; today only Assisted-by: is in that list, but the
mechanism is general for future tags with similar conventions.

A regression test confirms a malformed sign-off line still triggers
the "Unrecognized email address" ERROR after this change, since
Signed-off-by is not in $no_email_signature_tags.

Signed-off-by: Alireza Haghdoost <haghdoost@uber.com>
Assisted-by: Cursor:claude-sonnet-4.5
---
Single patch. The commit message contains the full rationale and
a description of the mechanism. No cover needed beyond what is there.
---
 scripts/checkpatch.pl | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e56374662ff7..a9ebb67686ea 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -641,10 +641,19 @@ our $signature_tags = qr{(?xi:
 	Reviewed-by:|
 	Reported-by:|
 	Suggested-by:|
+	Assisted-by:|
 	To:|
 	Cc:
 )};
 
+# Trailers that do not carry an RFC 5322 email address.
+# Documentation/process/coding-assistants.rst defines Assisted-by: as
+# carrying "AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]" rather than an
+# email address; skip the email-format checks for these tags.
+our $no_email_signature_tags = qr{(?xi:
+	Assisted-by:
+)};
+
 our @link_tags = qw(Link Closes);
 
 #Create a search and print patterns for all these strings to be used directly below
@@ -737,7 +746,7 @@ sub find_standard_signature {
 	my ($sign_off) = @_;
 	my @standard_signature_tags = (
 		'Signed-off-by:', 'Co-developed-by:', 'Acked-by:', 'Tested-by:',
-		'Reviewed-by:', 'Reported-by:', 'Suggested-by:'
+		'Reviewed-by:', 'Reported-by:', 'Suggested-by:', 'Assisted-by:'
 	);
 	foreach my $signature (@standard_signature_tags) {
 		return $signature if (get_edit_distance($sign_off, $signature) <= 2);
@@ -3105,6 +3114,9 @@ sub process {
 				}
 			}
 
+			# Skip email-format checks for trailers that, by spec, do
+			# not carry an email address (e.g. Assisted-by:).
+			if ($sign_off !~ /$no_email_signature_tags/) {
 			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 +3201,7 @@ sub process {
 					}
 				}
 			}
+			}
 
 # Check for duplicate signatures
 			my $sig_nospace = $line;

---
base-commit: 46b513250491a7bfc97d98791dbe6a10bcc8129d
change-id: 20260430-fix-checkpatch-assisted-by-8e59f5ea0cd1

Best regards,
-- 
Alireza Haghdoost <haghdoost@uber.com>
Re: [PATCH] checkpatch: recognize the Assisted-by: trailer
Posted by Joe Perches 1 month, 2 weeks ago
On Thu, 2026-04-30 at 22:52 +0000, Alireza Haghdoost via B4 Relay wrote:
> ```
> From: Alireza Haghdoost <[haghdoost@uber.com](mailto:haghdoost@uber.com)>

nack. Already done.

commit d1db4118489fffd2b2f612140b7acbb477880839
Author: Sasha Levin <sashal@kernel.org>
Date:   Wed Mar 11 17:58:17 2026 -0400

    checkpatch: add support for Assisted-by tag