]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
scripts/checkpatch: add Assisted-by: tag validation
authorHarry Wentland <harry.wentland@amd.com>
Fri, 27 Mar 2026 15:41:57 +0000 (11:41 -0400)
committerJonathan Corbet <corbet@lwn.net>
Mon, 30 Mar 2026 16:00:40 +0000 (10:00 -0600)
The coding-assistants.rst documentation defines the Assisted-by: tag
format for AI-assisted contributions as:

Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
This format does not use an email address, so checkpatch currently
reports a false positive about an invalid email when encountering this
tag.

Add Assisted-by: to the recognized signature tags and standard signature
list. When an Assisted-by: tag is found, validate it instead of checking
for an email address.

Examples of passing tags:
- Claude:claude-3-opus coccinelle sparse
- FOO:BAR.baz
- Copilot Github:claude-3-opus
- GitHub Copilot:Claude Opus 4.6
- My Cool Agent:v1.2.3 coccinelle sparse

Examples of tags triggering the new warning:
- Claude coccinelle sparse
- JustAName
- :missing-agent

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Assisted-by: Claude:claude-opus-4.6
Co-developed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Message-ID: <20260327154157.162962-1-harry.wentland@amd.com>

scripts/checkpatch.pl

index e56374662ff7973abb2ecf01733ae8c32deccf18..b8d961d77ff4ed112b70e9012bd1f66fb96c6c6f 100755 (executable)
@@ -641,6 +641,7 @@ our $signature_tags = qr{(?xi:
        Reviewed-by:|
        Reported-by:|
        Suggested-by:|
+       Assisted-by:|
        To:|
        Cc:
 )};
@@ -737,7 +738,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 +3106,15 @@ sub process {
                                }
                        }
 
+# Assisted-by: uses format AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2] instead of email
+                       if ($sign_off =~ /^assisted-by:$/i) {
+                               if ($email !~ /^[^:]+:\S+(\s+\S+)*$/) {
+                                       WARN("BAD_ASSISTED_BY",
+                                            "Assisted-by: should use format: 'Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]'\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 "") {