From nobody Thu Apr 2 15:39:03 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010005.outbound.protection.outlook.com [52.101.193.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6E5B30DECC for ; Fri, 27 Mar 2026 15:42:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774626167; cv=fail; b=BdI0zYb/WUddNxVjHqwhO5sQWPPhOkgX5SswgMqpcmIj8K2ngjDuEdxygqHax3aDCTP79mTuFEghTDbbgV2sjWPOfYjSA7+ZktNQMxCB1KCsojpK9FRFPEn/ASDTAXlR5gUCGh6FRCKk5FeNVd0OzBaZgn8BaA3K7qV78IG1ihQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774626167; c=relaxed/simple; bh=aYdBVsjc0J2e+I84L7iJdayeGcF+au428B+P31IkYTw=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=iUbTaGq2Mt597lPnFkrsegWYx2bJ97UnrrDDjLY4BLFwadoabjhm5sXs0YMgmzlM8u7Je0XOtkmkeFnYCRt8KWAeaKW1eslJ5uIZrj+SN+x5uZn5YSjUWPf0g0WYB6YdZ1AnwN2H3oz8b1NA4QcWHvQubrlu6B7BVhYbdUYZx2A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=t8fnCJ2Q; arc=fail smtp.client-ip=52.101.193.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="t8fnCJ2Q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bhFgBUH9ifnTsthjzOaqPt/CX94du3sfkYcAEog+YoPNvjfRL5QLCt3KWpRUAsrEd9p6bhcGiIR55EnEk0o/kPVjc00IWVmXs0MqUU1a0xEwW4KMGDtkpphggbK4UGkJ0/iD/yDIoaZuZsOei0Uq69A+hMbfQridWO7b4iI1ZwNj+rurbG7MJrMYoFlytDOUh+yQlIaUq3t6rvBoQmzPQZ+SI+r0vIJF1oWlejykBNGxnE94R4xRWe/+8XJH7MtcucmQ21SuKKnRBqpW39MHqkeTAdYI00HY1ilEQcpOPmq9IVhuMHBNqnWmVuynm7AwNlEcl2jtNxKK7G0hJsBcDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ToKQbQZxsLqNCaty7lGLyJi0b8YPnXEHTk0MIfo5Qdw=; b=YjzUAO7o1XdcMMxb/iYZK0usrcgoceDI4vQ2mpqvi6Ed1RWd6JuOv5/VO9fF5aLabt0+2eldLMzc4fmeN3qjcn5iyT4IHt5zuytwrUyYWPUh/+Hzg3OPy2OD2pWyVBq+j9kccQOcSLLQ0QRMXiIQ5KLkGWBIVNdaxBev/85V6wqCIx6e1KujC/HrBa5nUnenz9i0RtYeOV/hFxyt9awQ9ABROU+45IZ3ouNYeXFErHI8pKqrAssyHvj57SUYYU8zEV6mrfqLlIzxF2YTHUW+ft7GYT2F46gXn+8TkdKk+50V9MTEzw0OnyWN0n80CIlqWkqnsQbcrMBPu+6x2mRz+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=canonical.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ToKQbQZxsLqNCaty7lGLyJi0b8YPnXEHTk0MIfo5Qdw=; b=t8fnCJ2Q4/xYODeXF+pbGpUaYh/efx3uVLfJhKQB43CNqdZYplLdcli1UqnMy5i8xG9NgUe2aExyIo422x0+XQ34yrK/d/LeBFcpARS7aVnWthmv+3pPs4EPcktpkXHFWT/bQZNoRrhN7OKgLBdBWYYQ4RektANTI+Vy7VAo+I4= Received: from DM6PR02CA0145.namprd02.prod.outlook.com (2603:10b6:5:332::12) by DS0PR12MB7725.namprd12.prod.outlook.com (2603:10b6:8:136::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.10; Fri, 27 Mar 2026 15:42:38 +0000 Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com (2603:10b6:5:332:cafe::7d) by DM6PR02CA0145.outlook.office365.com (2603:10b6:5:332::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.23 via Frontend Transport; Fri, 27 Mar 2026 15:42:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Fri, 27 Mar 2026 15:42:35 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 27 Mar 2026 10:42:35 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 27 Mar 2026 10:42:34 -0500 Received: from hwentlanryzen (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Fri, 27 Mar 2026 10:42:34 -0500 From: Harry Wentland To: , , CC: , , Harry Wentland , Jonathan Corbet , Jani Nikula , Alex Hung Subject: [PATCH v2] scripts/checkpatch: add Assisted-by: tag validation Date: Fri, 27 Mar 2026 11:41:57 -0400 Message-ID: <20260327154157.162962-1-harry.wentland@amd.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: harry.wentland@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|DS0PR12MB7725:EE_ X-MS-Office365-Filtering-Correlation-Id: ad333581-0adb-4b11-7637-08de8c1777eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|56012099003|18002099003|20052099010; X-Microsoft-Antispam-Message-Info: okTPGg2gS6pZQWKZ2xl8B+YzoZCSXP+w4I+G6c0ukFmtfxoKI8DJeDpNsH9YWuDj40KFWNH5HxSbgU3oEiGBv3uZEflFfsAlkRAicbOluJ8YGZWD7GHwsdaAfSKn87WG4SbMPYxxArOdkDAfdBujpQp2d1Sw7YvLtn7TraLw87r4uHPxDgDkvQWDmNWkhlc/ccy4Ip7zIUAOMimo3FvwN04vUqo1HOK5s+eFyzJUrmMVQm6l6Muty2SgaJryD7RdLLEmlSjo/KhOojo90UEnaGSpOBmuEMIawwt1uSPaXzOtYmloAZhKtTQIqE2cLmooHVrmj51tB8U1mGW+/hwQfZ2dnHani3w7M1AjGvGBAcSg4UmmvBKSYEek09T9nk+HSZYywpkbHyGsXeGaQKCjcDFbxa9/WK+7sRqKB0EqMZtBpTgUF56ViLOZZRDOARZsQKLQz+gI96ObRPJLigg9iOYQ4U3UO9JoA/MvgIErR8H4y5F76wv9dAShl2Jyio25TtjDH85UzwNzMzRLjq0EGe1ofDryGx8jIntDUCdm4hQdRGzT9xKM2flCKMFOePuDfU+YxnFbRVvz8niQuFCYTRtgDYPImMv0Vq0xjiIEWtEx1QTlKqzuQI65DRyzykWvbS+eY4GDttlDBXPiIK6SQ4o1Jvghoqe9CUbP+gd4POKj+2oameLfh3jNhRvXyHBgIvkWm8x95TIMGYfWpeEQfuaUC1Yho0w39xBttgZqpoUx+INN/Se4TPQ2nmcp6DcEdqZS5Kh3ZJp3HhfI8S2vwQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(56012099003)(18002099003)(20052099010);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7UwYDcZ7OV8YLxQN3zKX+ikV2Ny5uBN6nHLbSR9yBIY1n1e7SucBVymvCM3l+9mJV8X2wvRUhYn9sgTGMPddEeE31m3eDm5wo+FakV2exNJ31JJuBw3NbHKdMmM2Ry72DEWIWVctHB/l6zqIZHYp0/pEIKCJWSSycXjJ7im6fWZhwLELcFfCMx3HC6P8AJKiKFU6BaVZ0y9b2F16FwjDnTxsA+AZndsEB30LXoYY1+jCTif3zOT1OU4Klns+fcLYw7sHTvABo5LLsrKOSl8ebTM9Sz7rqVQ98FYzWbLPY5KeA1D1I1oFVTPPWS2MPGh4LJ/ppa0dtq9EhYZyJWGHa2b2MJaQcg8N9ddq1hFa1c/a/IY94NDsrj3zCOGtB+JVY/hhHhjfg8J4I/0ny8G8I7VXFMIDhaLug6Eswc/BIf8Rgfg42yqlx/zIbMUleBku X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 15:42:35.6301 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad333581-0adb-4b11-7637-08de8c1777eb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3E.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7725 Content-Type: text/plain; charset="utf-8" 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: Jonathan Corbet Cc: Jani Nikula Assisted-by: Claude:claude-opus-4.6 Co-developed-by: Alex Hung Signed-off-by: Alex Hung Signed-off-by: Harry Wentland --- scripts/checkpatch.pl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 =3D qr{(?xi: Reviewed-by:| Reported-by:| Suggested-by:| + Assisted-by:| To:| Cc: )}; @@ -737,7 +738,7 @@ sub find_standard_signature { my ($sign_off) =3D @_; my @standard_signature_tags =3D ( '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) <=3D 2); @@ -3105,6 +3106,15 @@ sub process { } } =20 +# Assisted-by: uses format AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2] instea= d of email + if ($sign_off =3D~ /^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) =3D parse_ema= il($email); my $suggested_email =3D format_email(($email_name, $name_comment, $emai= l_address, $comment)); if ($suggested_email eq "") { --=20 2.53.0