€• SŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ-/translations/zh_CN/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/zh_TW/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/pt_BR/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/sp_SP/process/coding-assistants”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒG/var/lib/git/docbuild/linux/Documentation/process/coding-assistants.rst”h´KubhŒtarget”“”)”}”(hŒ.. _coding_assistants:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œcoding-assistants”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒAI Coding Assistants”h]”hŒAI Coding Assistants”…””}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒvThis document provides guidance for AI tools and developers using AI assistance when contributing to the Linux kernel.”h]”hŒvThis document provides guidance for AI tools and developers using AI assistance when contributing to the Linux kernel.”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KhhØh²hubhì)”}”(hŒeAI tools helping with Linux kernel development should follow the standard kernel development process:”h]”hŒeAI tools helping with Linux kernel development should follow the standard kernel development process:”…””}”(hhûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K hhØh²hubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ-Documentation/process/development-process.rst”h]”hì)”}”(hjh]”hŒ-Documentation/process/development-process.rst”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³hÇh´Nubj)”}”(hŒ&Documentation/process/coding-style.rst”h]”hì)”}”(hj)h]”hŒ&Documentation/process/coding-style.rst”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³hÇh´Nubj)”}”(hŒ-Documentation/process/submitting-patches.rst ”h]”hì)”}”(hŒ,Documentation/process/submitting-patches.rst”h]”hŒ,Documentation/process/submitting-patches.rst”…””}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1j h³hÇh´KhhØh²hubh×)”}”(hhh]”(hÜ)”}”(hŒ Licensing and Legal Requirements”h]”hŒ Licensing and Legal Requirements”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj^h²hh³hÇh´Kubhì)”}”(hŒGAll contributions must comply with the kernel's licensing requirements:”h]”hŒIAll contributions must comply with the kernel’s licensing requirements:”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj^h²hubj )”}”(hhh]”(j)”}”(hŒ-All code must be compatible with GPL-2.0-only”h]”hì)”}”(hj‚h]”hŒ-All code must be compatible with GPL-2.0-only”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}h²hh³hÇh´Nubj)”}”(hŒ(Use appropriate SPDX license identifiers”h]”hì)”}”(hj™h]”hŒ(Use appropriate SPDX license identifiers”…””}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}h²hh³hÇh´Nubj)”}”(hŒ8See Documentation/process/license-rules.rst for details ”h]”hì)”}”(hŒ7See Documentation/process/license-rules.rst for details”h]”hŒ7See Documentation/process/license-rules.rst for details”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j h³hÇh´Khj^h²hubeh}”(h]”Œ licensing-and-legal-requirements”ah ]”h"]”Œ licensing and legal requirements”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒ1Signed-off-by and Developer Certificate of Origin”h]”hŒ1Signed-off-by and Developer Certificate of Origin”…””}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjÔh²hh³hÇh´Kubhì)”}”(hŒ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:”h]”hŒ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:”…””}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KhjÔh²hubj )”}”(hhh]”(j)”}”(hŒReviewing all AI-generated code”h]”hì)”}”(hjøh]”hŒReviewing all AI-generated code”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K"hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjóh²hh³hÇh´Nubj)”}”(hŒ/Ensuring compliance with licensing requirements”h]”hì)”}”(hjh]”hŒ/Ensuring compliance with licensing requirements”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K#hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjóh²hh³hÇh´Nubj)”}”(hŒ5Adding their own Signed-off-by tag to certify the DCO”h]”hì)”}”(hj&h]”hŒ5Adding their own Signed-off-by tag to certify the DCO”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K$hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjóh²hh³hÇh´Nubj)”}”(hŒ0Taking full responsibility for the contribution ”h]”hì)”}”(hŒ/Taking full responsibility for the contribution”h]”hŒ/Taking full responsibility for the contribution”…””}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K%hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjóh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j h³hÇh´K"hjÔh²hubeh}”(h]”Œ1signed-off-by-and-developer-certificate-of-origin”ah ]”h"]”Œ1signed-off-by and developer certificate of origin”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒ Attribution”h]”hŒ Attribution”…””}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjah²hh³hÇh´K(ubhì)”}”(hŒÌ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::”h]”hŒË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:”…””}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K*hjah²hubhŒ literal_block”“”)”}”(hŒ5Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]”h]”hŒ5Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]”…””}”hj‚sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j€h³hÇh´K.hjah²hubhì)”}”(hŒWhere:”h]”hŒWhere:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K0hjah²hubj )”}”(hhh]”(j)”}”(hŒ6``AGENT_NAME`` is the name of the AI tool or framework”h]”hì)”}”(hj£h]”(hŒliteral”“”)”}”(hŒ``AGENT_NAME``”h]”hŒ AGENT_NAME”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hj¥ubhŒ( is the name of the AI tool or framework”…””}”(hj¥h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K2hj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjžh²hh³hÇh´Nubj)”}”(hŒ4``MODEL_VERSION`` is the specific model version used”h]”hì)”}”(hjÊh]”(j©)”}”(hŒ``MODEL_VERSION``”h]”hŒ MODEL_VERSION”…””}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hjÌubhŒ# is the specific model version used”…””}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K3hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjžh²hh³hÇh´Nubj)”}”(hŒp``[TOOL1] [TOOL2]`` are optional specialized analysis tools used (e.g., coccinelle, sparse, smatch, clang-tidy) ”h]”hì)”}”(hŒo``[TOOL1] [TOOL2]`` are optional specialized analysis tools used (e.g., coccinelle, sparse, smatch, clang-tidy)”h]”(j©)”}”(hŒ``[TOOL1] [TOOL2]``”h]”hŒ[TOOL1] [TOOL2]”…””}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¨hjñubhŒ\ are optional specialized analysis tools used (e.g., coccinelle, sparse, smatch, clang-tidy)”…””}”(hjñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K4hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjžh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j h³hÇh´K2hjah²hubhì)”}”(hŒGBasic development tools (git, gcc, make, editors) should not be listed.”h]”hŒGBasic development tools (git, gcc, make, editors) should not be listed.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K7hjah²hubhì)”}”(hŒ Example::”h]”hŒExample:”…””}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K9hjah²hubj)”}”(hŒ3Assisted-by: Claude:claude-3-opus coccinelle sparse”h]”hŒ3Assisted-by: Claude:claude-3-opus coccinelle sparse”…””}”hj5sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j€h³hÇh´K;hjah²hubeh}”(h]”Œ attribution”ah ]”h"]”Œ attribution”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K(ubh×)”}”(hhh]”(hÜ)”}”(hŒ%Procedure for finding and fixing bugs”h]”hŒ%Procedure for finding and fixing bugs”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjKh²hh³hÇh´K>ubhì)”}”(hŒ[When an AI assistant is used to find and fix bugs, it **MUST** follow at least these steps:”h]”(hŒ6When an AI assistant is used to find and fix bugs, it ”…””}”(hj\h²hh³Nh´NubhŒstrong”“”)”}”(hŒ**MUST**”h]”hŒMUST”…””}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj\ubhŒ follow at least these steps:”…””}”(hj\h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K@hjKh²hubhŒenumerated_list”“”)”}”(hhh]”(j)”}”(hŒ²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.”h]”hì)”}”(hŒ²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.”h]”hŒ²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.”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KChjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hŒ2Note the commit ID and Locate a bug as instructed.”h]”hì)”}”(hjh]”hŒ2Note the commit ID and Locate a bug as instructed.”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KFhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hXFor 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.”h]”hì)”}”(hXFor 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.”h]”hXFor 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.”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KGhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hX4Write 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.”h]”hì)”}”(hX4Write 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.”h]”hX6Write 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.”…””}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KKhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hXBuild 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).”h]”hì)”}”(hXBuild 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).”h]”hXBuild 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).”…””}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KPhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hŒ´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.”h]”hì)”}”(hŒ´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.”h]”hŒ´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.”…””}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KThjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hŒIdentify the maintainers and lists using scripts/get_maintainer.pl. Documentation/process/security-bugs.rst shows how to do that.”h]”hì)”}”(hŒIdentify the maintainers and lists using scripts/get_maintainer.pl. Documentation/process/security-bugs.rst shows how to do that.”h]”hŒIdentify the maintainers and lists using scripts/get_maintainer.pl. Documentation/process/security-bugs.rst shows how to do that.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hŒÞ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.”h]”hì)”}”(hŒÞ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.”h]”hŒÞ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.”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KYhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubj)”}”(hXpRead 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.”h]”hì)”}”(hXpRead 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.”h]”hXpRead 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.”…””}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K\hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j~hjKh²hh³hÇh´KCubeh}”(h]”Œ%procedure-for-finding-and-fixing-bugs”ah ]”h"]”Œ%procedure for finding and fixing bugs”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K>ubeh}”(h]”(Œai-coding-assistants”hÕeh ]”h"]”(Œai coding assistants”Œcoding_assistants”eh$]”h&]”uh1hÖhhh²hh³hÇh´KŒexpect_referenced_by_name”}”jshÊsŒexpect_referenced_by_id”}”hÕhÊsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”hÕ]”hÊasŒnameids”}”(jshÕjrjojÑjÎj^j[jHjEjjjguŒ nametypes”}”(jsˆjr‰jщj^‰jH‰jj‰uh}”(hÕhØjohØjÎj^j[jÔjEjajgjKuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hì)”}”(hhh]”hŒ7Hyperlink target "coding-assistants" is not referenced.”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1jubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.