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
Unified · Split
| @@ -641,6 +641,7 @@ our $signature_tags = qr{(?xi: · 640 unmodified lines | |||
| 641 | Reviewed-by:| | 641 | Reviewed-by:| |
| 642 | Reported-by:| | 642 | Reported-by:| |
| 643 | Suggested-by:| | 643 | Suggested-by:| |
| 644 | Assisted-by:| | ||
| 644 | To:| | 645 | To:| |
| 645 | Cc: | 646 | Cc: |
| 646 | )}; | 647 | )}; |
| @@ -737,7 +738,7 @@ sub find_standard_signature { · 90 unmodified lines | |||
| 737 | my ($sign_off) = @_; | 738 | my ($sign_off) = @_; |
| 738 | my @standard_signature_tags = ( | 739 | my @standard_signature_tags = ( |
| 739 | 'Signed-off-by:', 'Co-developed-by:', 'Acked-by:', 'Tested-by:', | 740 | 'Signed-off-by:', 'Co-developed-by:', 'Acked-by:', 'Tested-by:', |
| 740 | 'Reviewed-by:', 'Reported-by:', 'Suggested-by:' | 741 | 'Reviewed-by:', 'Reported-by:', 'Suggested-by:', 'Assisted-by:' |
| 741 | ); | 742 | ); |
| 742 | foreach my $signature (@standard_signature_tags) { | 743 | foreach my $signature (@standard_signature_tags) { |
| 743 | return $signature if (get_edit_distance($sign_off, $signature) <= 2); | 744 | return $signature if (get_edit_distance($sign_off, $signature) <= 2); |
| @@ -3105,6 +3106,15 @@ sub process { · 2361 unmodified lines | |||
| 3105 | } | 3106 | } |
| 3106 | } | 3107 | } |
| 3107 | 3108 | ||
| 3109 | # Assisted-by: uses format AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2] instead of email | ||
| 3110 | if ($sign_off =~ /^assisted-by:$/i) { | ||
| 3111 | if ($email !~ /^[^:]+:\S+(\s+\S+)*$/) { | ||
| 3112 | WARN("BAD_ASSISTED_BY", | ||
| 3113 | "Assisted-by: should use format: 'Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]'\n" . $herecurr); | ||
| 3114 | } | ||
| 3115 | next; | ||
| 3116 | } | ||
| 3117 | |||
| 3108 | my ($email_name, $name_comment, $email_address, $comment) = parse_email($email); | 3118 | my ($email_name, $name_comment, $email_address, $comment) = parse_email($email); |
| 3109 | my $suggested_email = format_email(($email_name, $name_comment, $email_address, $comment)); | 3119 | my $suggested_email = format_email(($email_name, $name_comment, $email_address, $comment)); |
| 3110 | if ($suggested_email eq "") { | 3120 | if ($suggested_email eq "") { |