summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2026-03-27 11:41:57 -0400
committerJonathan Corbet <corbet@lwn.net>2026-03-30 10:00:40 -0600
commit8545d9bc4bd0801e0bdfbfdfdc2532ff31236ddf (patch)
tree91fc55f45791314448ab9a708528b25b5727533a /scripts
parent6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f (diff)
downloadlwn-docs-fixes.tar.gz
lwn-docs-fixes.zip
scripts/checkpatch: add Assisted-by: tag validationdocs-fixes
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>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/checkpatch.pl12
1 files changed, 11 insertions, 1 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e56374662ff7..b8d961d77ff4 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:
)};
@@ -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 "") {