.. SPDX-License-Identifier: GPL-2.0

.. _coding_assistants:

AI Coding Assistants
++++++++++++++++++++

This document provides guidance for AI tools and developers using AI
assistance when contributing to the Linux kernel.

AI tools helping with Linux kernel development should follow the standard
kernel development process:

* Documentation/process/development-process.rst
* Documentation/process/coding-style.rst
* Documentation/process/submitting-patches.rst

For guidelines on content generated by AI coding assistants see:

* Documentation/process/generated-content.rst

Licensing and Legal Requirements
================================

All contributions must comply with the kernel's licensing requirements:

* All code must be compatible with GPL-2.0-only
* Use appropriate SPDX license identifiers
* See Documentation/process/license-rules.rst for details

Signed-off-by and Developer Certificate of Origin
=================================================

AI agents MUST NOT add Signed-off-by tags. Only humans can legally
certify the Developer Certificate of Origin (DCO). The human submitter
is responsible for:

* Reviewing all AI-generated code
* Ensuring compliance with licensing requirements
* Adding their own Signed-off-by tag to certify the DCO
* Taking full responsibility for the contribution

Attribution
===========

When AI tools contribute to kernel development, proper attribution
helps track the evolving role of AI in the development process.
Contributions should include an Assisted-by tag in the following format::

  Assisted-by: LLM [TOOL1] [TOOL2]

* ``[TOOL1] [TOOL2]`` are optional specialized analysis tools used
  (e.g., coccinelle, sparse, smatch, clang-tidy)

Basic development tools (git, gcc, make, editors) should not be listed.

Example::

  Assisted-by: LLM coccinelle sparse

Procedure for finding and fixing bugs
=====================================

When an AI assistant is used to find and fix bugs, it **MUST** follow at least
these steps:

1. Before starting, read the whole process documentation listed above, as well
   as any other document mentioned in the request. Do not rely on isolated
   parts found by keyword search.
2. Note the commit ID and Locate a bug as instructed.
3. For any bug found that is not trivial, verify that it looks real by
   attempting to create a reproducer to demonstrate it. Lacking it may cause
   the report to be ignored, as many unverified bug reports sent to maintainers
   happen to be invalid. Stop here if it finally looks wrong.
4. Write a fix for the bug. This part is not optional: except in a few very
   rare cases, an AI assistant able to find a bug is able to fix it. Note that
   fixes written in the same session as used to find the bug will generally
   lead to better and more accurate fixes as the LLM's reasoning context
   remains present.
5. Build and verify that the fix works either using the reproducer or by
   re-running a complete analysis; drop any fix that doesn't work and try
   another one. The fix must not add build warnings and must pass the
   checkpatch.pl checks (see submitting-patches.rst).
6. Commit the working fix with a detailed message describing the problem, the
   solution and a Fixes tag. Do not add a Signed-off-by tag, and add an
   Assisted-by tag, as described above.
7. Identify the maintainers and lists using scripts/get_maintainer.pl.
   Documentation/process/security-bugs.rst shows how to do that.
8. Indicate what could not be done. If the fix could not be built or tested, or
   if no reproducer could be produced, say so explicitly: maintainers currently
   waste too much time analyzing unverified reports and untested fixes.
9. Read Documentation/process/threat-model.rst to determine whether the bug is
   a vulnerability or a regular bug, and leave the result to the reporter for
   review (the assistant must never send anything itself). Regular bugs are
   submitted as described in Documentation/process/submitting-patches.rst,
   vulnerabilities as described in Documentation/process/security-bugs.rst.
