[llvm] Revise commit access policy (PR #207272)

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 20 09:05:11 PDT 2026


https://github.com/rnk updated https://github.com/llvm/llvm-project/pull/207272

>From fb1350330fd8aa3e12c0bcd592880ad8d244aeaa Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Wed, 1 Jul 2026 22:18:07 +0000
Subject: [PATCH 1/6] [docs] Revise commit access criteria and describe PR
 merge rules

Revise the commit access criteria to evaluate candidates on whether they
provide useful review feedback demonstrating good technical judgement,
rather than counting authored pull requests.

Add a "Merging Pull Requests" section describing the enforcement model:
approval from a committer is required to merge (enforced via a CODEOWNERS
rule assigning all paths to the committer team), committers may bypass the
review requirement for their own PRs (pull requests only, no direct
pushes), and triage team members may merge PRs once approved by a
committer.

Based on the discussion at
https://discourse.llvm.org/t/revisiting-commit-access-criteria-2026/91145
---
 llvm/docs/DeveloperPolicy.md | 125 ++++++++++++++++++++++++++---------
 1 file changed, 94 insertions(+), 31 deletions(-)

diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index a447903167131..639dfb22360fd 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -470,31 +470,75 @@ What are the expectations around a revert?
 (obtaining_commit_access)=
 ### Obtaining Commit Access
 
-Once you have 3 or more merged pull requests, you may use [this
+LLVM grants contributor permissions liberally. We believe that empowering new
+contributors is part of what makes LLVM a successful project. The first step on
+your journey to becoming an LLVM contributor is to apply to join the "LLVM
+triagers" team.
+
+The triage team role grants write access to the issue tracker and pull request
+systems. It grants github repository write access so you can push branches with
+the `users/` prefix, but most other branches are protected. To merge changes
+into `main`, you need to make a pull request and get approved by a member of
+the LLVM committers team. Once a PR is approved by a committer, a triager can
+push the merge button to land any PR, whether it is their own, or someone
+else's.
+
+To apply to be a triager, read the following developer policy docs, and file an
+issue using [this template][triager-issue], stating that you've read the
+policies and agree to abide by them:
+
+* {ref}`LLVM Community Code of Conduct` -- 
+* {ref}`LLVM AI Tool Use Policy` -- Write your own designs and PR descriptions.
+  Don't generate them.
+* {ref}`Developer Policy` -- This document.
+
+Failing to follow the policies will result in moderation action and loss of the
+triager role.
+
+Once approved, a GitHub invitation will be sent to your GitHub account. In case
+you don't get notification from GitHub, go to [Invitation
+Link](https://github.com/orgs/llvm/invitation) directly. Once you accept the
+invitation, you'll be granted LLVM github org affiliation and LLVM triager team
+membership.
+
+[triager-issue]: TODO: create template
+
+### Obtaining Code Ownership
+
+The next step in contributing to LLVM is joining the LLVM committers team,
+which grants rights to self-approve PRs or approve other contributor PRs.
+
+Commit access is granted to contributors who have provided helpful feedback
+that demonstrates good technical judgement. The most important resource the
+project needs is people willing to review other people's work and vouch for its
+quality, so this is what we try to select for when granting commit access. Once
+you can point to 3 or more separate pull requests, issues, or Discourse threads
+where your comments provided useful feedback demonstrating good technical
+judgement, you may use [this
 link](https://github.com/llvm/llvm-project/issues/new?title=Request%20Commit%20Access%20For%20%3Cuser%3E&body=%23%23%23%20Why%20Are%20you%20requesting%20commit%20access%20?)
-to file an issue and request commit access. Replace the \<user\> string in the title
-with your github username, and explain why you are requesting commit access in
-the issue description. Once the issue is created, you will need to get two
-current contributors to support your request before commit access will be granted.
-
-Reviewers of your committed patches will automatically be CCed upon creating the issue.
-Most commonly these reviewers will provide the necessary approval, but approvals
-from other LLVM committers are also acceptable. Those reviewing the application are
-confirming that you have indeed had three patches committed, and that based on interactions
-on those reviews and elsewhere in the LLVM community they have no concern about you
-adhering to our Developer Policy and Code of Conduct. Reviewers should clearly state their
-reasoning for accepting or rejecting the request, and finish with a clear statement such
-as "I approve of this request", "LGTM", or "I do not approve of this request".
-
-If approved, a GitHub invitation will be sent to your
-GitHub account. In case you don't get notification from GitHub, go to
-[Invitation Link](https://github.com/orgs/llvm/invitation) directly. Once
-you accept the invitation, you'll get commit access.
+to file an issue and request commit access. Replace the \<user\> string in the
+title with your github username, link to the three examples of helpful
+feedback, and explain why you are requesting commit access in the issue
+description.
+
+Once the issue is created, you will need to get two current committers to vouch
+for you. The application reviewers must vouch that the linked comments
+demonstrate good technical judgement, and that based on those interactions and
+others elsewhere in the LLVM community they have no concern about you adhering
+to our Developer Policy and Code of Conduct. In straightforward cases,
+reviewers can use the thumbs-up emoji to indicate approval, but simple
+statements of approval, e.g. I approve, looks good to me, are also acceptable.
+At least one reviewer needs to make a statement like "We don't share an
+organizational affiliation." We trust existing committers to be honest about
+their affiliations, and not rubber stamp the work of team mates as a favor to
+expedite this process.
 
 Prior to obtaining commit access, it is common practice to request that
 someone with commit access commits on your behalf. When doing so, please
 provide the name and email address you would like to use in the Author
-property of the commit.
+property of the commit. Once your pull request has been approved by a
+committer, any committer or member of the triage team can merge it for you
+(see {ref}`merging pull requests <merging_pull_requests>`).
 
 For external tracking purposes, committed changes are automatically reflected on
 a commits mailing list soon after the commit lands (e.g.
@@ -508,8 +552,9 @@ If you have recently been granted commit access, these policies apply:
 1. You are granted *commit-after-approval* to all parts of LLVM. For
    information on how to get approval for a patch, please see
    {doc}`CodeReview`. When approved, you may commit it yourself.
-2. You are allowed to commit patches without approval which you think are
-   obvious. This is clearly a subjective decision \-\-- we simply expect you to
+2. You are allowed to self-approve PRs to land changes without waiting for
+   approval when appropriate. This is clearly a subjective decision \-\-- we
+   simply expect you to
    use good judgement. Examples include: fixing build breakage, reverting
    obviously broken patches, documentation/comment changes, any other minor
    changes. Avoid committing formatting- or whitespace-only changes outside of
@@ -532,15 +577,33 @@ In any case, your changes are still subject to {ref}`code review <code review>`
 change). You are encouraged to review other peoples' patches as well, but you
 aren't required to do so.
 
-### Obtaining Other Access or Permissions
-
-To obtain access other than commit access, you can raise an issue like the one
-for obtaining commit access. However, instead of including PRs you have authored,
-include evidence of your need for the type of access you want.
-
-For example, if you are helping to triage issues and want the ability to add
-labels, include links to issues you have triaged previously and explain how
-having this ability would help that work.
+(merging_pull_requests)=
+### Merging Pull Requests
+
+All changes to the `main` branch must land through a pull request. GitHub
+permits a pull request to be merged once it has been approved by a member of
+the committer team. This is enforced with GitHub's branch protection feature
+with the "require review from code owners" branch rule and a `CODEOWNERS`
+configuration that assigns ownership of all paths to the committer team.
+
+- Committers may merge their own pull requests without waiting for an approval
+  by using GitHub's option to merge without meeting the review requirement (a
+  rule "bypass" that is restricted to pull requests, and never permits pushing
+  directly to the branch). This mechanism implements the
+  commit-without-approval policies described above (obvious changes and code
+  you maintain), as well as the normal pre-commit review flow, where the
+  author chooses when to merge after receiving approval. Using the bypass to
+  merge a change that required approval but did not receive it is a violation
+  of this policy.
+- Members of the triage team have sufficient repository access to merge pull
+  requests, but may only merge a pull request after it has been approved by a
+  committer. A triage team member's own approval does not satisfy the review
+  requirement. This allows triagers to help land approved changes on behalf of
+  contributors who do not have commit access, without waiting for a committer
+  to become available to push the merge button.
+- Any pull request author may enable GitHub's auto-merge ("merge when ready")
+  feature on their pull request to record their intent that the change should
+  land as soon as it has been approved and premerge checks pass.
 
 (discuss the change/gather consensus)=
 ### Proposing Major Changes (RFCs)

>From 9e9c09045f99cd8d0c31853f73a2fa35b9c80fa7 Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Wed, 1 Jul 2026 23:37:01 +0000
Subject: [PATCH 2/6] [github] Implement two-tier triager/committer contributor
 model

Implement the mechanics for the two-tier contributor system described in
the updated DeveloperPolicy:

- CODEOWNERS: add a default rule assigning ownership of all paths to
  @llvm/llvm-committers, and append the team to every existing rule
  (only the last matching rule determines ownership, so the team must
  appear on all of them). With the "require review from code owners"
  branch rule, this makes committer approval a merge requirement while
  preserving the existing reviewer auto-assignment.
- Add a triager access request issue form
  (.github/ISSUE_TEMPLATE/triager-access-request.yml) with required
  policy-agreement checkboxes, plus a config.yml keeping blank issues
  enabled. Requires the infra:triager-access-request label to be
  created in the repo.
- Label manually-filed "Request Triager Access" issues via
  new-issues-labeler.yml.
- DeveloperPolicy.md fixes: resolve the TODO template link, fix two
  broken cross-references (AI policy, developer policy), clarify that
  self-landing is a merge-requirement bypass (GitHub does not permit
  approving your own PR), and scope the commit-without-approval
  policies to committers now that two teams exist.
---
 .github/CODEOWNERS                            | 296 +++++++++---------
 .github/ISSUE_TEMPLATE/config.yml             |   3 +
 .../ISSUE_TEMPLATE/triager-access-request.yml |  47 +++
 .github/new-issues-labeler.yml                |   3 +
 llvm/docs/DeveloperPolicy.md                  |  37 ++-
 5 files changed, 231 insertions(+), 155 deletions(-)
 create mode 100644 .github/ISSUE_TEMPLATE/config.yml
 create mode 100644 .github/ISSUE_TEMPLATE/triager-access-request.yml

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 46bad52e83044..63d320780e466 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,217 +1,233 @@
-# This file lists reviewers that are auto-assigned when a pull request modifies
-# certain files or directories. If you add yourself to this file, you commit to
-# reviewing a large fraction of pull requests in the relevant area.
+# This file serves two purposes:
 #
-# The GitHub "code owners" mechanism is used exclusively to auto-assign
-# reviewers and does not carry significance beyond that. It is not necessary
-# to receive an approval from a "code owner" in particular -- any LLVM project
-# member can approve pull requests.
+# 1. It assigns ownership of all paths to the LLVM committers team
+#    (@llvm/llvm-committers). Together with the "require review from code
+#    owners" branch rule, this means a pull request must be approved by a
+#    member of the committers team before it can be merged. Committers may
+#    bypass this requirement for their own pull requests as described in the
+#    developer policy:
+#    https://llvm.org/docs/DeveloperPolicy.html#merging-pull-requests
+#
+#    For any given file, only the *last* matching rule in this file determines
+#    its owners, so @llvm/llvm-committers must be listed on every rule for the
+#    approval requirement to apply everywhere.
+#
+# 2. It lists reviewers that are auto-assigned when a pull request modifies
+#    certain files or directories. If you add yourself to this file, you
+#    commit to reviewing a large fraction of pull requests in the relevant
+#    area. An approval from an auto-assigned reviewer who is not a committer
+#    does not satisfy the code owner review requirement.
 #
 # This is independent of LLVM's own "maintainer" concept.
 # See https://llvm.org/docs/DeveloperPolicy.html#maintainers as well as the
 # Maintainers.md files in the the respective subproject directories.
 
-/libc/ @llvm/reviewers-libc
-/libcxx/ @llvm/reviewers-libcxx
-/libcxxabi/ @llvm/reviewers-libcxxabi
-/libunwind/ @llvm/reviewers-libunwind
-/runtimes/ @llvm/reviewers-libcxx
-
-/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic
-/llvm/lib/Analysis/HashRecognize.cpp @artagnon @pfusik
-/llvm/lib/Analysis/InstructionSimplify.cpp @nikic
-/llvm/lib/Analysis/LazyValueInfo.cpp @nikic
-/llvm/lib/Analysis/ScalarEvolution.cpp @nikic
-/llvm/lib/Analysis/ValueTracking.cpp @nikic
-/llvm/lib/IR/ConstantRange.cpp @nikic
-/llvm/lib/IR/Core.cpp @nikic
-/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic
-/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic
-/llvm/lib/Transforms/InstCombine/ @nikic
+# Default rule: the committers team owns all paths. The rules below override
+# this one for reviewer auto-assignment, so each of them must also list
+# @llvm/llvm-committers.
+* @llvm/llvm-committers
+
+/libc/ @llvm/reviewers-libc @llvm/llvm-committers
+/libcxx/ @llvm/reviewers-libcxx @llvm/llvm-committers
+/libcxxabi/ @llvm/reviewers-libcxxabi @llvm/llvm-committers
+/libunwind/ @llvm/reviewers-libunwind @llvm/llvm-committers
+/runtimes/ @llvm/reviewers-libcxx @llvm/llvm-committers
+
+/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Analysis/HashRecognize.cpp @artagnon @pfusik @llvm/llvm-committers
+/llvm/lib/Analysis/InstructionSimplify.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Analysis/LazyValueInfo.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Analysis/ScalarEvolution.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Analysis/ValueTracking.cpp @nikic @llvm/llvm-committers
+/llvm/lib/IR/ConstantRange.cpp @nikic @llvm/llvm-committers
+/llvm/lib/IR/Core.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic @llvm/llvm-committers
+/llvm/lib/Transforms/InstCombine/ @nikic @llvm/llvm-committers
 
 # AMDGPU buffer pointer lowerings
-/llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp @krzysz00
+/llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp @krzysz00 @llvm/llvm-committers
 
-/clang/test/CXX/drs/ @Endilll
-/clang/www/cxx_dr_status.html @Endilll
-/clang/www/make_cxx_dr_status @Endilll
+/clang/test/CXX/drs/ @Endilll @llvm/llvm-committers
+/clang/www/cxx_dr_status.html @Endilll @llvm/llvm-committers
+/clang/www/make_cxx_dr_status @Endilll @llvm/llvm-committers
 
-/clang/include/clang/CIR @lanza @bcardosolopes @xlauko @andykaylor
-/clang/lib/CIR @lanza @bcardosolopes @xlauko @andykaylor
-/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @lanza @bcardosolopes @xlauko @andykaylor @banach-space
-/clang/tools/cir-* @lanza @bcardosolopes @xlauko @andykaylor
+/clang/include/clang/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
+/clang/lib/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
+/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @lanza @bcardosolopes @xlauko @andykaylor @banach-space @llvm/llvm-committers
+/clang/tools/cir-* @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
 
-/lldb/ @JDevlieghere
-/lldb/**/*FreeBSD* @mchoo7
+/lldb/ @JDevlieghere @llvm/llvm-committers
+/lldb/**/*FreeBSD* @mchoo7 @llvm/llvm-committers
 
 # MLIR Interfaces.
-/mlir/include/mlir/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache
-/mlir/lib/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache
-/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.* @matthias-springer
-/mlir/lib/Interfaces/ValueBoundsOpInterface.* @matthias-springer
-/mlir/**/ValueBoundsOpInterfaceImpl.* @matthias-springer
-/mlir/include/mlir/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer
-/mlir/lib/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer
-/mlir/**/RuntimeVerifiableOpInterfaceImpl.* @matthias-springer
-/mlir/include/mlir/Interfaces/SubsetOpInterface.* @matthias-springer
-/mlir/lib/Interfaces/SubsetOpInterface.* @matthias-springer
-/mlir/**/SubsetOpInterfaceImpl.* @matthias-springer
-/mlir/include/mlir/Interfaces/DestinationStyleOpInterface.* @matthias-springer
-/mlir/lib/Interfaces/DestinationStyleOpInterface.* @matthias-springer
-/mlir/**/Interfaces/ControlFlowInterfaces.* @matthias-springer
+/mlir/include/mlir/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/lib/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/**/ValueBoundsOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
+/mlir/include/mlir/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/lib/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/**/RuntimeVerifiableOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
+/mlir/include/mlir/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/lib/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/**/SubsetOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
+/mlir/include/mlir/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/lib/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-committers
+/mlir/**/Interfaces/ControlFlowInterfaces.* @matthias-springer @llvm/llvm-committers
 
 # AMDGPU and ROCDL dialects in MLIR.
-/mlir/include/mlir/Dialect/AMDGPU @krzysz00 @kuhar
-/mlir/lib/Dialect/AMDGPU @krzysz00 @kuhar
-/mlir/lib/Conversion/*AMDGPU* @krzysz00 @kuhar
-/mlir/lib/Conversion/*ToROCDL @krzysz00 @kuhar
-/mlir/include/mlir/Dialect/LLVMIR/ROCDL* @krzysz00 @kuhar
+/mlir/include/mlir/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-committers
+/mlir/lib/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-committers
+/mlir/lib/Conversion/*AMDGPU* @krzysz00 @kuhar @llvm/llvm-committers
+/mlir/lib/Conversion/*ToROCDL @krzysz00 @kuhar @llvm/llvm-committers
+/mlir/include/mlir/Dialect/LLVMIR/ROCDL* @krzysz00 @kuhar @llvm/llvm-committers
 
 # Arith dialect in MLIR.
-/mlir/include/mlir/Dialect/Arith @kuhar
-/mlir/lib/Dialect/Arith @kuhar
-/mlir/lib/Conversion/ArithTo* @kuhar
+/mlir/include/mlir/Dialect/Arith @kuhar @llvm/llvm-committers
+/mlir/lib/Dialect/Arith @kuhar @llvm/llvm-committers
+/mlir/lib/Conversion/ArithTo* @kuhar @llvm/llvm-committers
 
 # XeGPU and XeVM dialects in MLIR.
-/mlir/include/mlir/Dialect/XeGPU @charithaintc @Jianhui-Li
-/mlir/lib/Dialect/XeGPU @charithaintc @Jianhui-Li
-/mlir/lib/Conversion/*XeGPU* @charithaintc @Jianhui-Li
-/mlir/include/mlir/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li
-/mlir/lib/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li
-/mlir/include/mlir/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna
-/mlir/lib/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna
-/mlir/include/mlir/Dialect/LLVMIR/XeVM* @silee2 @akroviakov
-/mlir/lib/Dialect/LLVMIR/IR/XeVM @silee2 @akroviakov
-/mlir/lib/Conversion/*XeVM* @silee2 @akroviakov
+/mlir/include/mlir/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-committers
+/mlir/lib/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-committers
+/mlir/lib/Conversion/*XeGPU* @charithaintc @Jianhui-Li @llvm/llvm-committers
+/mlir/include/mlir/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-committers
+/mlir/lib/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-committers
+/mlir/include/mlir/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-committers
+/mlir/lib/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-committers
+/mlir/include/mlir/Dialect/LLVMIR/XeVM* @silee2 @akroviakov @llvm/llvm-committers
+/mlir/lib/Dialect/LLVMIR/IR/XeVM @silee2 @akroviakov @llvm/llvm-committers
+/mlir/lib/Conversion/*XeVM* @silee2 @akroviakov @llvm/llvm-committers
 
 # Bufferization Dialect in MLIR.
-/mlir/include/mlir/Dialect/Bufferization @matthias-springer
-/mlir/lib/Dialect/Bufferization @matthias-springer
-/mlir/**/BufferizableOpInterfaceImpl.* @matthias-springer
-/mlir/Dialect/*/Transforms/Bufferize.cpp @matthias-springer
+/mlir/include/mlir/Dialect/Bufferization @matthias-springer @llvm/llvm-committers
+/mlir/lib/Dialect/Bufferization @matthias-springer @llvm/llvm-committers
+/mlir/**/BufferizableOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
+/mlir/Dialect/*/Transforms/Bufferize.cpp @matthias-springer @llvm/llvm-committers
 
 # DLTI Dialect in MLIR
-/mlir/**/Dialect/DLTI @rolfmorel
-/mlir/**/DataLayoutInterfaces.* @rolfmorel
+/mlir/**/Dialect/DLTI @rolfmorel @llvm/llvm-committers
+/mlir/**/DataLayoutInterfaces.* @rolfmorel @llvm/llvm-committers
 
 # Linalg Dialect in MLIR.
-/mlir/include/mlir/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin
-/mlir/lib/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin
-/mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp @MaheshRavishankar @nicolasvasilache
-/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @dcaballe @MaheshRavishankar @nicolasvasilache
-/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @MaheshRavishankar @nicolasvasilache
-/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp @nicolasvasilache
-/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp @dcaballe @nicolasvasilache
-/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @banach-space @dcaballe @nicolasvasilache @Groverkss
+/mlir/include/mlir/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
 
 # MemRef Dialect in MLIR.
-/mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp @MaheshRavishankar @nicolasvasilache
+/mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
 
 # Vector Dialect in MLIR.
-/mlir/**/*Neon* @banach-space @dcaballe @nicolasvasilache
-/mlir/**/*SME* @banach-space @dcaballe @nicolasvasilache
-/mlir/**/*SVE* @banach-space @dcaballe @nicolasvasilache
-/mlir/**/*VectorInterfaces* @dcaballe @nicolasvasilache
-/mlir/**/*VectorToSCF* @banach-space @dcaballe @matthias-springer @nicolasvasilache
-/mlir/**/*VectorToLLVM* @banach-space @dcaballe @nicolasvasilache
-/mlir/**/*X86* @aartbik @dcaballe @nicolasvasilache @adam-smnk
-/mlir/include/mlir/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss
-/mlir/include/mlir/Dialect/Vector/IR @kuhar
-/mlir/lib/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss
-/mlir/lib/Dialect/Vector/Transforms/* @banach-space @dcaballe @nicolasvasilache
-/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp @banach-space @dcaballe @MaheshRavishankar @nicolasvasilache
-/mlir/**/*EmulateNarrowType* @dcaballe
+/mlir/**/*Neon* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*SME* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*SVE* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*VectorInterfaces* @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*VectorToSCF* @banach-space @dcaballe @matthias-springer @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*VectorToLLVM* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*X86* @aartbik @dcaballe @nicolasvasilache @adam-smnk @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Vector/IR @kuhar @llvm/llvm-committers
+/mlir/lib/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
+/mlir/lib/Dialect/Vector/Transforms/* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp @banach-space @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/**/*EmulateNarrowType* @dcaballe @llvm/llvm-committers
 
 # Presburger library in MLIR
-/mlir/**/*Presburger* @Groverkss @Superty
+/mlir/**/*Presburger* @Groverkss @Superty @llvm/llvm-committers
 
 # Tensor Dialect in MLIR.
-/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @nicolasvasilache
-/mlir/lib/Dialect/Tensor/Transforms/* @nicolasvasilache
+/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Tensor/Transforms/* @nicolasvasilache @llvm/llvm-committers
 
 # Transform Dialect in MLIR.
-/mlir/include/mlir/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel
-/mlir/lib/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel
-/mlir/**/*TransformOps* @ftynse @nicolasvasilache @rolfmorel
+/mlir/include/mlir/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
+/mlir/lib/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
+/mlir/**/*TransformOps* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
 
 # SPIR-V Dialect in MLIR.
-/mlir/**/SPIRV/ @antiagainst @kuhar @IgWod
-/mlir/**/SPIRVTo*/ @antiagainst @kuhar @IgWod
-/mlir/**/*ToSPIRV/ @antiagainst @kuhar @IgWod
-/mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp @antiagainst @kuhar @IgWod
+/mlir/**/SPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
+/mlir/**/SPIRVTo*/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
+/mlir/**/*ToSPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
+/mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp @antiagainst @kuhar @IgWod @llvm/llvm-committers
 
 # MLIR Sparsifier.
-/mlir/**/*SparseTensor*/ @aartbik @PeimingLiu @yinying-lisa-li @matthias-springer
+/mlir/**/*SparseTensor*/ @aartbik @PeimingLiu @yinying-lisa-li @matthias-springer @llvm/llvm-committers
 
 # MLIR NVGPU Dialect
-/mlir/**/NVGPU*/ @grypp
-/mlir/test/**/CUDA/ @grypp
+/mlir/**/NVGPU*/ @grypp @llvm/llvm-committers
+/mlir/test/**/CUDA/ @grypp @llvm/llvm-committers
 
 # MLIR GPU Dialect
-/mlir/**/GPU*/ @fabianmcg
+/mlir/**/GPU*/ @fabianmcg @llvm/llvm-committers
 
 # MLIR NVVM Dialect in MLIR
-/mlir/**/LLVMIR/**/BasicPtxBuilderInterface* @grypp
-/mlir/**/NVVM* @grypp
+/mlir/**/LLVMIR/**/BasicPtxBuilderInterface* @grypp @llvm/llvm-committers
+/mlir/**/NVVM* @grypp @llvm/llvm-committers
 
 # MLIR Index Dialect
-/mlir/**/Index* @mogball
+/mlir/**/Index* @mogball @llvm/llvm-committers
 
 # MLIR Shard Dialect
-/mlir/**/*shard* @fschlimb
-/mlir/**/*Shard* @fschlimb
+/mlir/**/*shard* @fschlimb @llvm/llvm-committers
+/mlir/**/*Shard* @fschlimb @llvm/llvm-committers
 
 # MLIR Python Bindings
-/mlir/test/python/ @ftynse @makslevental @stellaraccident @rolfmorel
-/mlir/python/ @ftynse @makslevental @stellaraccident @rolfmorel
-/mlir/lib/Bindings/Python @makslevental @rolfmorel
-/mlir/include/Bindings/Python @makslevental @rolfmorel
+/mlir/test/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-committers
+/mlir/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-committers
+/mlir/lib/Bindings/Python @makslevental @rolfmorel @llvm/llvm-committers
+/mlir/include/Bindings/Python @makslevental @rolfmorel @llvm/llvm-committers
 
 # MLIR Mem2Reg/SROA
-/mlir/**/Transforms/Mem2Reg.* @moxinilian
-/mlir/**/Transforms/SROA.* @moxinilian
+/mlir/**/Transforms/Mem2Reg.* @moxinilian @llvm/llvm-committers
+/mlir/**/Transforms/SROA.* @moxinilian @llvm/llvm-committers
 
 # MLIR IRDL-related
-/mlir/**/*IRDL* @moxinilian
+/mlir/**/*IRDL* @moxinilian @llvm/llvm-committers
 
 # BOLT
-/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @yota9 @paschalis-mpeis @yozhu @yavtuk
+/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @yota9 @paschalis-mpeis @yozhu @yavtuk @llvm/llvm-committers
 
 # Bazel build system.
-/utils/bazel/ @rupprecht @keith @aaronmondal @googlewalt
+/utils/bazel/ @rupprecht @keith @aaronmondal @googlewalt @llvm/llvm-committers
 
 # InstallAPI and TextAPI
-/llvm/**/TextAPI/ @cyndyishida
-/clang/**/InstallAPI/ @cyndyishida
-/clang/tools/clang-installapi/ @cyndyishida
+/llvm/**/TextAPI/ @cyndyishida @llvm/llvm-committers
+/clang/**/InstallAPI/ @cyndyishida @llvm/llvm-committers
+/clang/tools/clang-installapi/ @cyndyishida @llvm/llvm-committers
 
 # ExtractAPI
-/clang/**/ExtractAPI @QuietMisdreavus @snprajwal
+/clang/**/ExtractAPI @QuietMisdreavus @snprajwal @llvm/llvm-committers
 
 # DWARFLinker, dwarfutil, dsymutil
-/llvm/**/DWARFLinker/ @JDevlieghere
-/llvm/**/dsymutil/ @JDevlieghere
-/llvm/**/llvm-dwarfutil/ @JDevlieghere
+/llvm/**/DWARFLinker/ @JDevlieghere @llvm/llvm-committers
+/llvm/**/dsymutil/ @JDevlieghere @llvm/llvm-committers
+/llvm/**/llvm-dwarfutil/ @JDevlieghere @llvm/llvm-committers
 
 # libclang/Python bindings
-/clang/bindings/python @DeinAlptraum
+/clang/bindings/python @DeinAlptraum @llvm/llvm-committers
 
 # AMDGPU assembler and disassembler
-/llvm-project/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @jwanggit86
-/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @jwanggit86
+/llvm-project/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @jwanggit86 @llvm/llvm-committers
+/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @jwanggit86 @llvm/llvm-committers
 
 # Clang Driver
-/clang/lib/Driver/ToolChains/AMDGPU.cpp @lamb-j
-/clang/lib/Driver/OffloadBundler.cpp @lamb-j @david-salinas
+/clang/lib/Driver/ToolChains/AMDGPU.cpp @lamb-j @llvm/llvm-committers
+/clang/lib/Driver/OffloadBundler.cpp @lamb-j @david-salinas @llvm/llvm-committers
 
 # GlobalIsel
-/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize* @vangthao95
+/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize* @vangthao95 @llvm/llvm-committers
 
 # AMDGPU Memory Model
-/llvm/lib/Target/AMDGPU/SIMemoryLegalizer* @Pierre-vh @ritter-x2a
-/llvm/lib/Target/AMDGPU/SIInsertWaitcnts* @Pierre-vh @ritter-x2a
+/llvm/lib/Target/AMDGPU/SIMemoryLegalizer* @Pierre-vh @ritter-x2a @llvm/llvm-committers
+/llvm/lib/Target/AMDGPU/SIInsertWaitcnts* @Pierre-vh @ritter-x2a @llvm/llvm-committers
 
 # Clang-Tidy tool
-/clang-tools-extra/clang-tidy/ @vbvictor @zeyi2
-/clang-tools-extra/test/clang-tidy/ @vbvictor @zeyi2
-/clang-tools-extra/docs/clang-tidy/ @vbvictor @zeyi2
+/clang-tools-extra/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
+/clang-tools-extra/test/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
+/clang-tools-extra/docs/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000..bd40abdaa5d18
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,3 @@
+# Keep blank issues enabled: most LLVM issues (bug reports, feature requests)
+# are filed as free-form issues and labeled by the new-issues-labeler.
+blank_issues_enabled: true
diff --git a/.github/ISSUE_TEMPLATE/triager-access-request.yml b/.github/ISSUE_TEMPLATE/triager-access-request.yml
new file mode 100644
index 0000000000000..cf8317d2b1578
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/triager-access-request.yml
@@ -0,0 +1,47 @@
+name: Triager Access Request
+description: Request to join the LLVM triagers team
+title: "Request Triager Access For <user>"
+labels:
+  - "infra:triager-access-request"
+body:
+  - type: markdown
+    attributes:
+      value: >
+        Thank you for your interest in contributing to LLVM! Please replace
+        `<user>` in the issue title with your GitHub username, and complete
+        the form below. See the
+        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
+        for a description of the triager role and how requests are handled.
+  - type: checkboxes
+    id: policies
+    attributes:
+      label: Policy Agreement
+      description: >
+        Triagers are expected to know and follow the community policies.
+        Please confirm each of the following.
+      options:
+        - label: >
+            I have read the [LLVM Community Code of
+            Conduct](https://llvm.org/docs/CodeOfConduct.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM AI Tool Use
+            Policy](https://llvm.org/docs/AIToolPolicy.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM Developer
+            Policy](https://llvm.org/docs/DeveloperPolicy.html) and agree to
+            abide by it.
+          required: true
+  - type: textarea
+    id: background
+    attributes:
+      label: Background
+      description: >
+        Optionally, tell us how you plan to participate in the project, such
+        as issues you would like to triage, areas of interest, or past
+        contributions.
+    validations:
+      required: false
diff --git a/.github/new-issues-labeler.yml b/.github/new-issues-labeler.yml
index ad4f97d70387b..d3aeb2aa55654 100644
--- a/.github/new-issues-labeler.yml
+++ b/.github/new-issues-labeler.yml
@@ -34,6 +34,9 @@
 'infra:commit-access-request':
   - '/Request Commit Access/'
 
+'infra:triager-access-request':
+  - '/Request Triager Access/'
+
 'false-positive':
   - '\bfalse[- ]positive\b'
 
diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index 639dfb22360fd..504ee2e135e69 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -487,10 +487,11 @@ To apply to be a triager, read the following developer policy docs, and file an
 issue using [this template][triager-issue], stating that you've read the
 policies and agree to abide by them:
 
-* {ref}`LLVM Community Code of Conduct` -- 
-* {ref}`LLVM AI Tool Use Policy` -- Write your own designs and PR descriptions.
-  Don't generate them.
-* {ref}`Developer Policy` -- This document.
+* {ref}`LLVM Community Code of Conduct` -- Be welcoming, respectful, and
+  considerate in all project spaces.
+* {doc}`LLVM AI Tool Use Policy <AIToolPolicy>` -- Write your own designs and
+  PR descriptions. Don't generate them.
+* {ref}`LLVM Developer Policy <developer_policy>` -- This document.
 
 Failing to follow the policies will result in moderation action and loss of the
 triager role.
@@ -501,12 +502,15 @@ Link](https://github.com/orgs/llvm/invitation) directly. Once you accept the
 invitation, you'll be granted LLVM github org affiliation and LLVM triager team
 membership.
 
-[triager-issue]: TODO: create template
+[triager-issue]: https://github.com/llvm/llvm-project/issues/new?template=triager-access-request.yml
 
 ### Obtaining Code Ownership
 
 The next step in contributing to LLVM is joining the LLVM committers team,
-which grants rights to self-approve PRs or approve other contributor PRs.
+which grants the right to approve other contributors' PRs, and to land your own
+changes without waiting for approval (see {ref}`merging pull requests
+<merging_pull_requests>`; GitHub does not allow literally approving your own
+PR, so this is implemented as a merge requirement bypass).
 
 Commit access is granted to contributors who have provided helpful feedback
 that demonstrates good technical judgement. The most important resource the
@@ -527,7 +531,8 @@ demonstrate good technical judgement, and that based on those interactions and
 others elsewhere in the LLVM community they have no concern about you adhering
 to our Developer Policy and Code of Conduct. In straightforward cases,
 reviewers can use the thumbs-up emoji to indicate approval, but simple
-statements of approval, e.g. I approve, looks good to me, are also acceptable.
+statements of approval, e.g. "I approve" or "looks good to me", are also
+acceptable.
 At least one reviewer needs to make a statement like "We don't share an
 organizational affiliation." We trust existing committers to be honest about
 their affiliations, and not rubber stamp the work of team mates as a favor to
@@ -547,15 +552,17 @@ it is not unusual for a large commit to require a moderator to approve the
 email, so do not be concerned if a commit does not immediately appear in the
 archives.
 
-If you have recently been granted commit access, these policies apply:
+If you have recently joined the triager or committer teams, these policies
+apply:
 
 1. You are granted *commit-after-approval* to all parts of LLVM. For
    information on how to get approval for a patch, please see
-   {doc}`CodeReview`. When approved, you may commit it yourself.
-2. You are allowed to self-approve PRs to land changes without waiting for
-   approval when appropriate. This is clearly a subjective decision \-\-- we
-   simply expect you to
-   use good judgement. Examples include: fixing build breakage, reverting
+   {doc}`CodeReview`. When approved, you may merge it yourself.
+2. Committers are allowed to land their own changes without waiting for
+   approval when appropriate (see {ref}`merging pull requests
+   <merging_pull_requests>`). This is clearly a subjective decision \-\-- we
+   simply expect you to use good judgement. Examples include: fixing build
+   breakage, reverting
    obviously broken patches, documentation/comment changes, any other minor
    changes. Avoid committing formatting- or whitespace-only changes outside of
    code you plan to make subsequent changes to. Also, try to separate
@@ -564,8 +571,8 @@ If you have recently been granted commit access, these policies apply:
    highly localized and the commit message should clearly state that the commit
    is not intended to change functionality, usually by stating it is
    {ref}`NFC <nfc>`.
-3. You are allowed to commit patches without approval to those portions of LLVM
-   that you have contributed or maintain (i.e., have been assigned
+3. Committers are allowed to commit patches without approval to those portions
+   of LLVM that they have contributed or maintain (i.e., have been assigned
    responsibility for), with the proviso that such commits must not break the
    build. This is a "trust but verify" policy, and commits of this nature are
    reviewed after they are committed.

>From e5d0b14b5703e56a75349f90a45494a9aedff5ff Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Wed, 1 Jul 2026 23:55:39 +0000
Subject: [PATCH 3/6] [github] Add commit access request issue template

Replace the prefilled-URL commit access request link in the developer
policy with a GitHub issue form, matching the triager access request
template. The form includes policy-agreement checkboxes (Code of Conduct,
AI Tool Use Policy, Developer Policy, Code Review Policy) and required
fields for feedback examples and motivation, per the revised commit
access criteria. The form applies the existing infra:commit-access-request
label directly, so the greeter workflow continues to fire.
---
 .../ISSUE_TEMPLATE/commit-access-request.yml  | 68 +++++++++++++++++++
 llvm/docs/DeveloperPolicy.md                  | 11 +--
 2 files changed, 74 insertions(+), 5 deletions(-)
 create mode 100644 .github/ISSUE_TEMPLATE/commit-access-request.yml

diff --git a/.github/ISSUE_TEMPLATE/commit-access-request.yml b/.github/ISSUE_TEMPLATE/commit-access-request.yml
new file mode 100644
index 0000000000000..a7b3872bc17da
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/commit-access-request.yml
@@ -0,0 +1,68 @@
+name: Commit Access Request
+description: Request to join the LLVM committers team
+title: "Request Commit Access For <user>"
+labels:
+  - "infra:commit-access-request"
+body:
+  - type: markdown
+    attributes:
+      value: >
+        Thank you for your contributions to LLVM! Please replace `<user>` in
+        the issue title with your GitHub username, and complete the form
+        below. See the
+        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-code-ownership)
+        for the criteria used to evaluate commit access requests. After you
+        file this issue, you will need two current committers to vouch for
+        you, at least one of whom does not share your organizational
+        affiliation.
+  - type: checkboxes
+    id: policies
+    attributes:
+      label: Policy Agreement
+      description: >
+        Committers are expected to know and follow the community policies.
+        Please confirm each of the following.
+      options:
+        - label: >
+            I have read the [LLVM Community Code of
+            Conduct](https://llvm.org/docs/CodeOfConduct.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM AI Tool Use
+            Policy](https://llvm.org/docs/AIToolPolicy.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM Developer
+            Policy](https://llvm.org/docs/DeveloperPolicy.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM Code Review
+            Policy](https://llvm.org/docs/CodeReview.html) and agree to
+            abide by it.
+          required: true
+  - type: textarea
+    id: feedback-examples
+    attributes:
+      label: Examples of Helpful Feedback
+      description: >
+        Link to 3 or more separate pull requests, issues, or Discourse
+        threads where your comments provided useful feedback demonstrating
+        good technical judgement.
+      placeholder: |
+        - https://github.com/llvm/llvm-project/pull/NNNNN
+        - https://github.com/llvm/llvm-project/issues/NNNNN
+        - https://discourse.llvm.org/t/...
+    validations:
+      required: true
+  - type: textarea
+    id: reason
+    attributes:
+      label: Why Are You Requesting Commit Access?
+      description: >
+        Tell us about your involvement with the project and why you are
+        requesting commit access.
+    validations:
+      required: true
diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index 504ee2e135e69..018dc1c2edf7c 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -518,13 +518,14 @@ project needs is people willing to review other people's work and vouch for its
 quality, so this is what we try to select for when granting commit access. Once
 you can point to 3 or more separate pull requests, issues, or Discourse threads
 where your comments provided useful feedback demonstrating good technical
-judgement, you may use [this
-link](https://github.com/llvm/llvm-project/issues/new?title=Request%20Commit%20Access%20For%20%3Cuser%3E&body=%23%23%23%20Why%20Are%20you%20requesting%20commit%20access%20?)
-to file an issue and request commit access. Replace the \<user\> string in the
-title with your github username, link to the three examples of helpful
-feedback, and explain why you are requesting commit access in the issue
+judgement, you may file an issue using [this
+template][commit-access-issue] to request commit access. Replace the \<user\>
+string in the title with your github username, link to the three examples of
+helpful feedback, and explain why you are requesting commit access in the issue
 description.
 
+[commit-access-issue]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
+
 Once the issue is created, you will need to get two current committers to vouch
 for you. The application reviewers must vouch that the linked comments
 demonstrate good technical judgement, and that based on those interactions and

>From 0ecd3544c1b71b79835c035d7cb27e9c6500ca13 Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Thu, 2 Jul 2026 20:24:10 +0000
Subject: [PATCH 4/6] [docs] Apply DeveloperPolicy cleanups: section renames,
 dedup merge rules

- Rename the triager section to "Joining the Triage Team" and move the
  obtaining_commit_access anchor to the committer section (renamed from
  "Obtaining Code Ownership" back to "Obtaining Commit Access"), so
  existing links to #obtaining-commit-access (AIToolPolicy, AdminTasks,
  GitHub.md, commit-create-issue.py) keep pointing at committer-tier
  access. Avoids overloading "ownership", which already means CODEOWNERS
  and Maintainers.md.
- Fold the two-sentence "Code Reviews" stub into "Making and Submitting a
  Patch", keeping the (code review)= label.
- Point the duplicated merge-rights statements (triager section,
  Attribution of Changes) at the Merging Pull Requests section instead of
  restating the rules.
- Update issue template links for the renamed sections.
---
 .../ISSUE_TEMPLATE/commit-access-request.yml  |  4 +--
 .../ISSUE_TEMPLATE/triager-access-request.yml |  4 +--
 llvm/docs/DeveloperPolicy.md                  | 29 +++++++++----------
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/commit-access-request.yml b/.github/ISSUE_TEMPLATE/commit-access-request.yml
index a7b3872bc17da..bb137b7b5ad0f 100644
--- a/.github/ISSUE_TEMPLATE/commit-access-request.yml
+++ b/.github/ISSUE_TEMPLATE/commit-access-request.yml
@@ -10,7 +10,7 @@ body:
         Thank you for your contributions to LLVM! Please replace `<user>` in
         the issue title with your GitHub username, and complete the form
         below. See the
-        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-code-ownership)
+        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
         for the criteria used to evaluate commit access requests. After you
         file this issue, you will need two current committers to vouch for
         you, at least one of whom does not share your organizational
@@ -60,7 +60,7 @@ body:
   - type: textarea
     id: reason
     attributes:
-      label: Why Are You Requesting Commit Access?
+      label: Background
       description: >
         Tell us about your involvement with the project and why you are
         requesting commit access.
diff --git a/.github/ISSUE_TEMPLATE/triager-access-request.yml b/.github/ISSUE_TEMPLATE/triager-access-request.yml
index cf8317d2b1578..19dfb3800250a 100644
--- a/.github/ISSUE_TEMPLATE/triager-access-request.yml
+++ b/.github/ISSUE_TEMPLATE/triager-access-request.yml
@@ -10,7 +10,7 @@ body:
         Thank you for your interest in contributing to LLVM! Please replace
         `<user>` in the issue title with your GitHub username, and complete
         the form below. See the
-        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
+        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#joining-the-triage-team)
         for a description of the triager role and how requests are handled.
   - type: checkboxes
     id: policies
@@ -38,7 +38,7 @@ body:
   - type: textarea
     id: background
     attributes:
-      label: Background
+      label: Background (optional)
       description: >
         Optionally, tell us how you plan to participate in the project, such
         as issues you would like to triage, areas of interest, or past
diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index 018dc1c2edf7c..f4dc4035e5f03 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -65,6 +65,8 @@ many regular workgroup video calls and office hours. See {doc}`GettingInvolved`
 for more information on other ways to engage with the community.
 
 (patch)=
+(code review)=
+(code reviews)=
 ### Making and Submitting a Patch
 
 Patches are submitted to GitHub and reviewed using Pull Requests. Follow the
@@ -86,7 +88,9 @@ Here are some tips to enable a successful code review:
   branch, land a change in `main` first and then follow the {ref}`backporting
   instructions <backporting>`.
 
-See {doc}`CodeReview` for more info on what to expect.
+LLVM uses code review, which is a generally accepted software engineering best
+practice for maintaining high code quality. See {doc}`CodeReview` for more
+information on LLVM's code review process and what to expect.
 
 When submitting patches, please do not add confidentiality or non-disclosure
 notices to the patches themselves. These notices conflict with the LLVM
@@ -106,13 +110,6 @@ email addresses private" is disabled in your [account
 settings](https://github.com/settings/emails). There are many free email
 forwarding services available if you wish to keep your identity private.
 
-(code review)=
-### Code Reviews
-
-LLVM uses code review, which is a generally accepted software engineering best
-practice for maintaining high code quality. Please see {doc}`CodeReview` for
-more information on LLVM's code review process.
-
 (maintainers)=
 ### Maintainers
 
@@ -467,8 +464,8 @@ What are the expectations around a revert?
 - When re-applying a reverted patch, the commit message should be updated to
   indicate the problem that was addressed and how it was addressed.
 
-(obtaining_commit_access)=
-### Obtaining Commit Access
+(joining_the_triage_team)=
+### Joining the Triage Team
 
 LLVM grants contributor permissions liberally. We believe that empowering new
 contributors is part of what makes LLVM a successful project. The first step on
@@ -481,7 +478,7 @@ the `users/` prefix, but most other branches are protected. To merge changes
 into `main`, you need to make a pull request and get approved by a member of
 the LLVM committers team. Once a PR is approved by a committer, a triager can
 push the merge button to land any PR, whether it is their own, or someone
-else's.
+else's (see {ref}`merging pull requests <merging_pull_requests>`).
 
 To apply to be a triager, read the following developer policy docs, and file an
 issue using [this template][triager-issue], stating that you've read the
@@ -504,7 +501,8 @@ membership.
 
 [triager-issue]: https://github.com/llvm/llvm-project/issues/new?template=triager-access-request.yml
 
-### Obtaining Code Ownership
+(obtaining_commit_access)=
+### Obtaining Commit Access
 
 The next step in contributing to LLVM is joining the LLVM committers team,
 which grants the right to approve other contributors' PRs, and to land your own
@@ -725,9 +723,10 @@ awareness of. For such changes, the following should be done:
 
 ### Attribution of Changes
 
-When contributors submit a patch to an LLVM project, other developers with
-commit access may merge the PR for the author (based on the progression of code
-review, etc.). GitHub will automatically ensure that authorship is preserved,
+When contributors submit a patch to an LLVM project, another committer or
+triager may merge the PR for the author once it has been approved (see
+{ref}`merging pull requests <merging_pull_requests>`). GitHub will
+automatically ensure that authorship is preserved,
 and one does not need to take any further action. We do not want the source
 code to be littered with random attributions "this code written by J. Random
 Hacker" (this is noisy and distracting). In practice, the revision control

>From 322f0f83fa2f95baaa908f4efd15fa01484d3d09 Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Thu, 2 Jul 2026 22:21:13 +0000
Subject: [PATCH 5/6] Instead of repurposing triagers, create a new reviewers
 role above committers

---
 llvm/docs/DeveloperPolicy.md | 208 +++++++++++++++++------------------
 1 file changed, 104 insertions(+), 104 deletions(-)

diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index f4dc4035e5f03..6a29880346039 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -464,25 +464,24 @@ What are the expectations around a revert?
 - When re-applying a reverted patch, the commit message should be updated to
   indicate the problem that was addressed and how it was addressed.
 
-(joining_the_triage_team)=
-### Joining the Triage Team
+(obtaining_commit_access)=
+### Obtaining Commit Access
 
 LLVM grants contributor permissions liberally. We believe that empowering new
 contributors is part of what makes LLVM a successful project. The first step on
 your journey to becoming an LLVM contributor is to apply to join the "LLVM
-triagers" team.
+committers" team. Committers have "commit-with-review" access. They cannot
+unilaterally land changes or approve other people's pull requests.
 
-The triage team role grants write access to the issue tracker and pull request
-systems. It grants github repository write access so you can push branches with
-the `users/` prefix, but most other branches are protected. To merge changes
-into `main`, you need to make a pull request and get approved by a member of
-the LLVM committers team. Once a PR is approved by a committer, a triager can
-push the merge button to land any PR, whether it is their own, or someone
-else's (see {ref}`merging pull requests <merging_pull_requests>`).
+To merge changes into `main`, you need to make a pull request and get it
+approved by a member of the LLVM reviewers team (see below). Once a PR is
+approved by a reviewer, a committer can push the merge button to land any PR,
+whether it is their own, or someone else's (see {ref}`merging pull requests
+<merging_pull_requests>`).
 
-To apply to be a triager, read the following developer policy docs, and file an
-issue using [this template][triager-issue], stating that you've read the
-policies and agree to abide by them:
+To apply to be a committer, read the following developer policy docs, and file
+an issue using [this template][commit-access-request], stating that you've read
+the policies and agree to abide by them:
 
 * {ref}`LLVM Community Code of Conduct` -- Be welcoming, respectful, and
   considerate in all project spaces.
@@ -490,126 +489,127 @@ policies and agree to abide by them:
   PR descriptions. Don't generate them.
 * {ref}`LLVM Developer Policy <developer_policy>` -- This document.
 
-Failing to follow the policies will result in moderation action and loss of the
-triager role.
-
 Once approved, a GitHub invitation will be sent to your GitHub account. In case
-you don't get notification from GitHub, go to [Invitation
-Link](https://github.com/orgs/llvm/invitation) directly. Once you accept the
-invitation, you'll be granted LLVM github org affiliation and LLVM triager team
-membership.
+you don't get notification from GitHub, go to [Invitation Link] directly. Once
+you accept the invitation, you'll be granted LLVM github org affiliation and
+LLVM triager team membership. If you fail to follow the policies, you may lose
+commit access.
+
+Prior to obtaining commit access, it is common practice to request that someone
+with commit access commits on your behalf. Note that GitHub will use your
+configured profile name and email in the squashed commit, so make sure it is
+configured correctly. Once your pull request has been approved by a reviewer,
+any committer can merge it for you (see {ref}`merging pull requests
+<merging_pull_requests>`).
+
+For external tracking purposes, committed changes are automatically reflected
+on a commits mailing list soon after the commit lands (e.g.
+`[llvm-commits at lists.llvm.org]`). Note that these mailing lists are moderated,
+and it is not unusual for a large commit to require a moderator to approve the
+email, so do not be concerned if a commit does not immediately appear in the
+archives.
 
-[triager-issue]: https://github.com/llvm/llvm-project/issues/new?template=triager-access-request.yml
+[commit-access-request]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
+[Invitation Link]: https://github.com/orgs/llvm/invitation
+[llvm-commits at lists.llvm.org]: https://lists.llvm.org/pipermail/llvm-commits/
 
-(obtaining_commit_access)=
-### Obtaining Commit Access
+(becoming_a_reviewer)=
+### Becoming a Reviewer
 
-The next step in contributing to LLVM is joining the LLVM committers team,
-which grants the right to approve other contributors' PRs, and to land your own
-changes without waiting for approval (see {ref}`merging pull requests
-<merging_pull_requests>`; GitHub does not allow literally approving your own
-PR, so this is implemented as a merge requirement bypass).
+The next step in becoming an LLVM contributor is joining the LLVM reviewers
+team, which grants the right to approve landing PRs on the `main` branch. We
+use the GitHub [CODEOWNERS] file to require that all PRs get a review.
 
-Commit access is granted to contributors who have provided helpful feedback
+We allow reviewers to bypass this check and land their own changes, so they are
+able to unilaterally land changes quickly to fix urgent issues, e.g. build
+breaks (see {ref}`merging pull requests <merging_pull_requests>`). GitHub does
+not allow authors to approve their own PRs, so this is implemented as a merge
+requirement bypass. When to bypass the review check is clearly a subjective
+decision \-\-- we trust reviewers to use good judgement. Valid reasons include:
+
+- fixing build breakage
+- reverting obviously broken patches
+- documentation/comment accuracy changes
+- other minor, non-functional changes
+
+Review access is granted to contributors who have provided helpful feedback
 that demonstrates good technical judgement. The most important resource the
 project needs is people willing to review other people's work and vouch for its
-quality, so this is what we try to select for when granting commit access. Once
+quality, so this is what we try to select for when granting review access. Once
 you can point to 3 or more separate pull requests, issues, or Discourse threads
 where your comments provided useful feedback demonstrating good technical
-judgement, you may file an issue using [this
-template][commit-access-issue] to request commit access. Replace the \<user\>
-string in the title with your github username, link to the three examples of
-helpful feedback, and explain why you are requesting commit access in the issue
-description.
-
-[commit-access-issue]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
+judgement, you may file an issue using [this template][review-access-issue] to
+request to join the reviewers team. Replace the \<user\> string in the title
+with your github username, link to the three examples of helpful feedback, and
+explain why you are requesting to become a reviewer in the issue description.
 
-Once the issue is created, you will need to get two current committers to vouch
+Once the issue is created, you will need to get two current reviewers to vouch
 for you. The application reviewers must vouch that the linked comments
 demonstrate good technical judgement, and that based on those interactions and
 others elsewhere in the LLVM community they have no concern about you adhering
 to our Developer Policy and Code of Conduct. In straightforward cases,
 reviewers can use the thumbs-up emoji to indicate approval, but simple
 statements of approval, e.g. "I approve" or "looks good to me", are also
-acceptable.
-At least one reviewer needs to make a statement like "We don't share an
-organizational affiliation." We trust existing committers to be honest about
-their affiliations, and not rubber stamp the work of team mates as a favor to
-expedite this process.
-
-Prior to obtaining commit access, it is common practice to request that
-someone with commit access commits on your behalf. When doing so, please
-provide the name and email address you would like to use in the Author
-property of the commit. Once your pull request has been approved by a
-committer, any committer or member of the triage team can merge it for you
-(see {ref}`merging pull requests <merging_pull_requests>`).
-
-For external tracking purposes, committed changes are automatically reflected on
-a commits mailing list soon after the commit lands (e.g.
-<llvm-commits at lists.llvm.org>). Note that these mailing lists are moderated, and
-it is not unusual for a large commit to require a moderator to approve the
-email, so do not be concerned if a commit does not immediately appear in the
-archives.
-
-If you have recently joined the triager or committer teams, these policies
-apply:
-
-1. You are granted *commit-after-approval* to all parts of LLVM. For
-   information on how to get approval for a patch, please see
-   {doc}`CodeReview`. When approved, you may merge it yourself.
-2. Committers are allowed to land their own changes without waiting for
-   approval when appropriate (see {ref}`merging pull requests
-   <merging_pull_requests>`). This is clearly a subjective decision \-\-- we
-   simply expect you to use good judgement. Examples include: fixing build
-   breakage, reverting
-   obviously broken patches, documentation/comment changes, any other minor
-   changes. Avoid committing formatting- or whitespace-only changes outside of
-   code you plan to make subsequent changes to. Also, try to separate
-   formatting or whitespace changes from functional changes, either by
-   correcting the format first (ideally) or afterward. Such changes should be
-   highly localized and the commit message should clearly state that the commit
-   is not intended to change functionality, usually by stating it is
-   {ref}`NFC <nfc>`.
-3. Committers are allowed to commit patches without approval to those portions
-   of LLVM that they have contributed or maintain (i.e., have been assigned
-   responsibility for), with the proviso that such commits must not break the
-   build. This is a "trust but verify" policy, and commits of this nature are
-   reviewed after they are committed.
-4. Multiple violations of these policies or a single egregious violation may
-   cause commit access to be revoked.
-
-In any case, your changes are still subject to {ref}`code review <code review>`
-(either before or after they are committed, depending on the nature of the
-change). You are encouraged to review other peoples' patches as well, but you
-aren't required to do so.
+acceptable. At least one reviewer needs to make a statement like "We don't
+share an organizational affiliation." We trust existing reviewers to be honest
+about their affiliations, and not rubber stamp the work of team mates as a
+favor to expedite this process.
+
+[CODEOWNERS]: http://github.com/llvm/llvm-project/blob/main/.github/CODEOWNERS
+[review-access-issue]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
+
+% TODO: The following policy doc content probably can find a better home elsewhere.
+%
+% Avoid committing formatting- or whitespace-only
+% changes outside of code you plan to make subsequent changes to. Also, try to
+% separate formatting or whitespace changes from functional changes, either by
+% correcting the format first (ideally) or afterward. Such changes should be
+% highly localized and the commit message should clearly state that the commit is
+% not intended to change functionality, usually by stating it is {ref}`NFC
+% <nfc>`.
+%
+% If you have recently joined the reviewer team, these policies apply:
+% 
+% 1. You are granted *commit-after-approval* to all parts of LLVM. For
+%    information on how to get approval for a patch, please see
+%    {doc}`CodeReview`. When approved, you may merge it yourself.
+% 3. Reviewers are allowed to commit patches without approval to those portions
+%    of LLVM that they have contributed or maintain (i.e., have been assigned
+%    responsibility for), with the proviso that such commits must not break the
+%    build. This is a "trust but verify" policy, and commits of this nature are
+%    reviewed after they are committed.
+% 4. Multiple violations of these policies or a single egregious violation may
+%    cause commit access to be revoked.
+% 
+% In any case, your changes are still subject to {ref}`code review <code review>`
+% (either before or after they are committed, depending on the nature of the
+% change). You are encouraged to review other peoples' patches as well, but you
+% aren't required to do so.
 
 (merging_pull_requests)=
 ### Merging Pull Requests
 
 All changes to the `main` branch must land through a pull request. GitHub
 permits a pull request to be merged once it has been approved by a member of
-the committer team. This is enforced with GitHub's branch protection feature
+the reviewer team. This is enforced with GitHub's branch protection feature
 with the "require review from code owners" branch rule and a `CODEOWNERS`
-configuration that assigns ownership of all paths to the committer team.
+configuration that assigns ownership of all paths to the reviewers team.
 
-- Committers may merge their own pull requests without waiting for an approval
+- Reviewers may merge their own pull requests without waiting for an approval
   by using GitHub's option to merge without meeting the review requirement (a
   rule "bypass" that is restricted to pull requests, and never permits pushing
   directly to the branch). This mechanism implements the
   commit-without-approval policies described above (obvious changes and code
-  you maintain), as well as the normal pre-commit review flow, where the
-  author chooses when to merge after receiving approval. Using the bypass to
-  merge a change that required approval but did not receive it is a violation
-  of this policy.
-- Members of the triage team have sufficient repository access to merge pull
+  you maintain), as well as the normal pre-commit review flow, where the author
+  chooses when to merge after receiving approval.
+- Members of the committers team have sufficient repository access to merge pull
   requests, but may only merge a pull request after it has been approved by a
-  committer. A triage team member's own approval does not satisfy the review
-  requirement. This allows triagers to help land approved changes on behalf of
-  contributors who do not have commit access, without waiting for a committer
-  to become available to push the merge button.
-- Any pull request author may enable GitHub's auto-merge ("merge when ready")
-  feature on their pull request to record their intent that the change should
-  land as soon as it has been approved and premerge checks pass.
+  reviewer. A committer team member's own approval does not satisfy the review
+  requirement.
+- Any pull request author, i.e. any github user, may enable GitHub's auto-merge
+  ("merge when ready") feature on their pull request to record their intent
+  that the change should land as soon as it has been approved and premerge
+  checks pass.
 
 (discuss the change/gather consensus)=
 ### Proposing Major Changes (RFCs)

>From 81aa005209c9e67cb34dcd988733e7f2be92055b Mon Sep 17 00:00:00 2001
From: Reid Kleckner <rkleckner at nvidia.com>
Date: Thu, 2 Jul 2026 22:29:22 +0000
Subject: [PATCH 6/6] [github] Follow committer/reviewer role split in
 templates and CODEOWNERS

Complete the committer/reviewer role split in the supporting files and fix
several issues in the policy text:

- Repurpose the issue templates: commit-access-request.yml is now the
  entry-level committer application (policy checklist, optional
  background); add reviewer-access-request.yml for the reviewer
  application (checklist including the code review policy, required
  feedback examples and background); delete triager-access-request.yml.
- Update new-issues-labeler.yml accordingly. The
  infra:reviewer-access-request label needs to be created in the repo.
- CODEOWNERS: assign all paths to @llvm/llvm-reviewers (team to be
  created) instead of the committers team, and update the header prose.
- DeveloperPolicy.md: fix a stale "triager team membership" reference,
  unbreak the llvm-commits reference link (was wrapped in backticks),
  use https for the CODEOWNERS link, point the reviewer application at
  the new template, and drop the last triager mention in Attribution of
  Changes.
- Re-home the commented-out policy content: NFC/formatting guidance moved
  to the patch submission tips; commit-after-approval and the CodeReview
  pointer folded into Obtaining Commit Access; the trust-but-verify
  maintained-code policy became a bypass reason in Becoming a Reviewer
  along with the post-commit review and revocation language; the
  encouragement to review moved to the end of Obtaining Commit Access as
  a bridge to the reviewer section.
---
 .github/CODEOWNERS                            | 286 +++++++++---------
 .../ISSUE_TEMPLATE/commit-access-request.yml  |  41 +--
 .../reviewer-access-request.yml               |  68 +++++
 .../ISSUE_TEMPLATE/triager-access-request.yml |  47 ---
 .github/new-issues-labeler.yml                |   4 +-
 llvm/docs/DeveloperPolicy.md                  |  71 ++---
 6 files changed, 255 insertions(+), 262 deletions(-)
 create mode 100644 .github/ISSUE_TEMPLATE/reviewer-access-request.yml
 delete mode 100644 .github/ISSUE_TEMPLATE/triager-access-request.yml

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 63d320780e466..d24e1183a10e6 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,233 +1,233 @@
 # This file serves two purposes:
 #
-# 1. It assigns ownership of all paths to the LLVM committers team
-#    (@llvm/llvm-committers). Together with the "require review from code
+# 1. It assigns ownership of all paths to the LLVM reviewers team
+#    (@llvm/llvm-reviewers). Together with the "require review from code
 #    owners" branch rule, this means a pull request must be approved by a
-#    member of the committers team before it can be merged. Committers may
+#    member of the reviewers team before it can be merged. Reviewers may
 #    bypass this requirement for their own pull requests as described in the
 #    developer policy:
 #    https://llvm.org/docs/DeveloperPolicy.html#merging-pull-requests
 #
 #    For any given file, only the *last* matching rule in this file determines
-#    its owners, so @llvm/llvm-committers must be listed on every rule for the
+#    its owners, so @llvm/llvm-reviewers must be listed on every rule for the
 #    approval requirement to apply everywhere.
 #
 # 2. It lists reviewers that are auto-assigned when a pull request modifies
 #    certain files or directories. If you add yourself to this file, you
 #    commit to reviewing a large fraction of pull requests in the relevant
-#    area. An approval from an auto-assigned reviewer who is not a committer
-#    does not satisfy the code owner review requirement.
+#    area. An approval from an auto-assigned reviewer who is not a member of
+#    the reviewers team does not satisfy the code owner review requirement.
 #
 # This is independent of LLVM's own "maintainer" concept.
 # See https://llvm.org/docs/DeveloperPolicy.html#maintainers as well as the
 # Maintainers.md files in the the respective subproject directories.
 
-# Default rule: the committers team owns all paths. The rules below override
+# Default rule: the reviewers team owns all paths. The rules below override
 # this one for reviewer auto-assignment, so each of them must also list
-# @llvm/llvm-committers.
-* @llvm/llvm-committers
-
-/libc/ @llvm/reviewers-libc @llvm/llvm-committers
-/libcxx/ @llvm/reviewers-libcxx @llvm/llvm-committers
-/libcxxabi/ @llvm/reviewers-libcxxabi @llvm/llvm-committers
-/libunwind/ @llvm/reviewers-libunwind @llvm/llvm-committers
-/runtimes/ @llvm/reviewers-libcxx @llvm/llvm-committers
-
-/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Analysis/HashRecognize.cpp @artagnon @pfusik @llvm/llvm-committers
-/llvm/lib/Analysis/InstructionSimplify.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Analysis/LazyValueInfo.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Analysis/ScalarEvolution.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Analysis/ValueTracking.cpp @nikic @llvm/llvm-committers
-/llvm/lib/IR/ConstantRange.cpp @nikic @llvm/llvm-committers
-/llvm/lib/IR/Core.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic @llvm/llvm-committers
-/llvm/lib/Transforms/InstCombine/ @nikic @llvm/llvm-committers
+# @llvm/llvm-reviewers.
+* @llvm/llvm-reviewers
+
+/libc/ @llvm/reviewers-libc @llvm/llvm-reviewers
+/libcxx/ @llvm/reviewers-libcxx @llvm/llvm-reviewers
+/libcxxabi/ @llvm/reviewers-libcxxabi @llvm/llvm-reviewers
+/libunwind/ @llvm/reviewers-libunwind @llvm/llvm-reviewers
+/runtimes/ @llvm/reviewers-libcxx @llvm/llvm-reviewers
+
+/llvm/lib/Analysis/BasicAliasAnalysis.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Analysis/HashRecognize.cpp @artagnon @pfusik @llvm/llvm-reviewers
+/llvm/lib/Analysis/InstructionSimplify.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Analysis/LazyValueInfo.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Analysis/ScalarEvolution.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Analysis/ValueTracking.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/IR/ConstantRange.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/IR/Core.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic @llvm/llvm-reviewers
+/llvm/lib/Transforms/InstCombine/ @nikic @llvm/llvm-reviewers
 
 # AMDGPU buffer pointer lowerings
-/llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp @krzysz00 @llvm/llvm-committers
+/llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp @krzysz00 @llvm/llvm-reviewers
 
-/clang/test/CXX/drs/ @Endilll @llvm/llvm-committers
-/clang/www/cxx_dr_status.html @Endilll @llvm/llvm-committers
-/clang/www/make_cxx_dr_status @Endilll @llvm/llvm-committers
+/clang/test/CXX/drs/ @Endilll @llvm/llvm-reviewers
+/clang/www/cxx_dr_status.html @Endilll @llvm/llvm-reviewers
+/clang/www/make_cxx_dr_status @Endilll @llvm/llvm-reviewers
 
-/clang/include/clang/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
-/clang/lib/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
-/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @lanza @bcardosolopes @xlauko @andykaylor @banach-space @llvm/llvm-committers
-/clang/tools/cir-* @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-committers
+/clang/include/clang/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-reviewers
+/clang/lib/CIR @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-reviewers
+/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @lanza @bcardosolopes @xlauko @andykaylor @banach-space @llvm/llvm-reviewers
+/clang/tools/cir-* @lanza @bcardosolopes @xlauko @andykaylor @llvm/llvm-reviewers
 
-/lldb/ @JDevlieghere @llvm/llvm-committers
-/lldb/**/*FreeBSD* @mchoo7 @llvm/llvm-committers
+/lldb/ @JDevlieghere @llvm/llvm-reviewers
+/lldb/**/*FreeBSD* @mchoo7 @llvm/llvm-reviewers
 
 # MLIR Interfaces.
-/mlir/include/mlir/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/lib/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/**/ValueBoundsOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
-/mlir/include/mlir/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/lib/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/**/RuntimeVerifiableOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
-/mlir/include/mlir/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/lib/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/**/SubsetOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
-/mlir/include/mlir/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/lib/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-committers
-/mlir/**/Interfaces/ControlFlowInterfaces.* @matthias-springer @llvm/llvm-committers
+/mlir/include/mlir/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Interfaces/TilingInterface.* @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/lib/Interfaces/ValueBoundsOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/**/ValueBoundsOpInterfaceImpl.* @matthias-springer @llvm/llvm-reviewers
+/mlir/include/mlir/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/lib/Interfaces/RuntimeVerifiableOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/**/RuntimeVerifiableOpInterfaceImpl.* @matthias-springer @llvm/llvm-reviewers
+/mlir/include/mlir/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/lib/Interfaces/SubsetOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/**/SubsetOpInterfaceImpl.* @matthias-springer @llvm/llvm-reviewers
+/mlir/include/mlir/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/lib/Interfaces/DestinationStyleOpInterface.* @matthias-springer @llvm/llvm-reviewers
+/mlir/**/Interfaces/ControlFlowInterfaces.* @matthias-springer @llvm/llvm-reviewers
 
 # AMDGPU and ROCDL dialects in MLIR.
-/mlir/include/mlir/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-committers
-/mlir/lib/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-committers
-/mlir/lib/Conversion/*AMDGPU* @krzysz00 @kuhar @llvm/llvm-committers
-/mlir/lib/Conversion/*ToROCDL @krzysz00 @kuhar @llvm/llvm-committers
-/mlir/include/mlir/Dialect/LLVMIR/ROCDL* @krzysz00 @kuhar @llvm/llvm-committers
+/mlir/include/mlir/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-reviewers
+/mlir/lib/Dialect/AMDGPU @krzysz00 @kuhar @llvm/llvm-reviewers
+/mlir/lib/Conversion/*AMDGPU* @krzysz00 @kuhar @llvm/llvm-reviewers
+/mlir/lib/Conversion/*ToROCDL @krzysz00 @kuhar @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/LLVMIR/ROCDL* @krzysz00 @kuhar @llvm/llvm-reviewers
 
 # Arith dialect in MLIR.
-/mlir/include/mlir/Dialect/Arith @kuhar @llvm/llvm-committers
-/mlir/lib/Dialect/Arith @kuhar @llvm/llvm-committers
-/mlir/lib/Conversion/ArithTo* @kuhar @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Arith @kuhar @llvm/llvm-reviewers
+/mlir/lib/Dialect/Arith @kuhar @llvm/llvm-reviewers
+/mlir/lib/Conversion/ArithTo* @kuhar @llvm/llvm-reviewers
 
 # XeGPU and XeVM dialects in MLIR.
-/mlir/include/mlir/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-committers
-/mlir/lib/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-committers
-/mlir/lib/Conversion/*XeGPU* @charithaintc @Jianhui-Li @llvm/llvm-committers
-/mlir/include/mlir/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-committers
-/mlir/lib/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-committers
-/mlir/include/mlir/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-committers
-/mlir/lib/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-committers
-/mlir/include/mlir/Dialect/LLVMIR/XeVM* @silee2 @akroviakov @llvm/llvm-committers
-/mlir/lib/Dialect/LLVMIR/IR/XeVM @silee2 @akroviakov @llvm/llvm-committers
-/mlir/lib/Conversion/*XeVM* @silee2 @akroviakov @llvm/llvm-committers
+/mlir/include/mlir/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-reviewers
+/mlir/lib/Dialect/XeGPU @charithaintc @Jianhui-Li @llvm/llvm-reviewers
+/mlir/lib/Conversion/*XeGPU* @charithaintc @Jianhui-Li @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-reviewers
+/mlir/lib/Dialect/XeGPU/Transforms @charithaintc @Jianhui-Li @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-reviewers
+/mlir/lib/Dialect/XeGPU/TransformOps @charithaintc @Jianhui-Li @tkarna @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/LLVMIR/XeVM* @silee2 @akroviakov @llvm/llvm-reviewers
+/mlir/lib/Dialect/LLVMIR/IR/XeVM @silee2 @akroviakov @llvm/llvm-reviewers
+/mlir/lib/Conversion/*XeVM* @silee2 @akroviakov @llvm/llvm-reviewers
 
 # Bufferization Dialect in MLIR.
-/mlir/include/mlir/Dialect/Bufferization @matthias-springer @llvm/llvm-committers
-/mlir/lib/Dialect/Bufferization @matthias-springer @llvm/llvm-committers
-/mlir/**/BufferizableOpInterfaceImpl.* @matthias-springer @llvm/llvm-committers
-/mlir/Dialect/*/Transforms/Bufferize.cpp @matthias-springer @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Bufferization @matthias-springer @llvm/llvm-reviewers
+/mlir/lib/Dialect/Bufferization @matthias-springer @llvm/llvm-reviewers
+/mlir/**/BufferizableOpInterfaceImpl.* @matthias-springer @llvm/llvm-reviewers
+/mlir/Dialect/*/Transforms/Bufferize.cpp @matthias-springer @llvm/llvm-reviewers
 
 # DLTI Dialect in MLIR
-/mlir/**/Dialect/DLTI @rolfmorel @llvm/llvm-committers
-/mlir/**/DataLayoutInterfaces.* @rolfmorel @llvm/llvm-committers
+/mlir/**/Dialect/DLTI @rolfmorel @llvm/llvm-reviewers
+/mlir/**/DataLayoutInterfaces.* @rolfmorel @llvm/llvm-reviewers
 
 # Linalg Dialect in MLIR.
-/mlir/include/mlir/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg @dcaballe @nicolasvasilache @rengolin @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-reviewers
 
 # MemRef Dialect in MLIR.
-/mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
 
 # Vector Dialect in MLIR.
-/mlir/**/*Neon* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*SME* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*SVE* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*VectorInterfaces* @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*VectorToSCF* @banach-space @dcaballe @matthias-springer @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*VectorToLLVM* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*X86* @aartbik @dcaballe @nicolasvasilache @adam-smnk @llvm/llvm-committers
-/mlir/include/mlir/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
-/mlir/include/mlir/Dialect/Vector/IR @kuhar @llvm/llvm-committers
-/mlir/lib/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-committers
-/mlir/lib/Dialect/Vector/Transforms/* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp @banach-space @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-committers
-/mlir/**/*EmulateNarrowType* @dcaballe @llvm/llvm-committers
+/mlir/**/*Neon* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*SME* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*SVE* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*VectorInterfaces* @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*VectorToSCF* @banach-space @dcaballe @matthias-springer @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*VectorToLLVM* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*X86* @aartbik @dcaballe @nicolasvasilache @adam-smnk @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-reviewers
+/mlir/include/mlir/Dialect/Vector/IR @kuhar @llvm/llvm-reviewers
+/mlir/lib/Dialect/Vector @banach-space @dcaballe @nicolasvasilache @Groverkss @llvm/llvm-reviewers
+/mlir/lib/Dialect/Vector/Transforms/* @banach-space @dcaballe @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp @banach-space @dcaballe @MaheshRavishankar @nicolasvasilache @llvm/llvm-reviewers
+/mlir/**/*EmulateNarrowType* @dcaballe @llvm/llvm-reviewers
 
 # Presburger library in MLIR
-/mlir/**/*Presburger* @Groverkss @Superty @llvm/llvm-committers
+/mlir/**/*Presburger* @Groverkss @Superty @llvm/llvm-reviewers
 
 # Tensor Dialect in MLIR.
-/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @nicolasvasilache @llvm/llvm-committers
-/mlir/lib/Dialect/Tensor/Transforms/* @nicolasvasilache @llvm/llvm-committers
+/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @nicolasvasilache @llvm/llvm-reviewers
+/mlir/lib/Dialect/Tensor/Transforms/* @nicolasvasilache @llvm/llvm-reviewers
 
 # Transform Dialect in MLIR.
-/mlir/include/mlir/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
-/mlir/lib/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
-/mlir/**/*TransformOps* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-committers
+/mlir/include/mlir/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-reviewers
+/mlir/lib/Dialect/Transform/* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-reviewers
+/mlir/**/*TransformOps* @ftynse @nicolasvasilache @rolfmorel @llvm/llvm-reviewers
 
 # SPIR-V Dialect in MLIR.
-/mlir/**/SPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
-/mlir/**/SPIRVTo*/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
-/mlir/**/*ToSPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-committers
-/mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp @antiagainst @kuhar @IgWod @llvm/llvm-committers
+/mlir/**/SPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-reviewers
+/mlir/**/SPIRVTo*/ @antiagainst @kuhar @IgWod @llvm/llvm-reviewers
+/mlir/**/*ToSPIRV/ @antiagainst @kuhar @IgWod @llvm/llvm-reviewers
+/mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp @antiagainst @kuhar @IgWod @llvm/llvm-reviewers
 
 # MLIR Sparsifier.
-/mlir/**/*SparseTensor*/ @aartbik @PeimingLiu @yinying-lisa-li @matthias-springer @llvm/llvm-committers
+/mlir/**/*SparseTensor*/ @aartbik @PeimingLiu @yinying-lisa-li @matthias-springer @llvm/llvm-reviewers
 
 # MLIR NVGPU Dialect
-/mlir/**/NVGPU*/ @grypp @llvm/llvm-committers
-/mlir/test/**/CUDA/ @grypp @llvm/llvm-committers
+/mlir/**/NVGPU*/ @grypp @llvm/llvm-reviewers
+/mlir/test/**/CUDA/ @grypp @llvm/llvm-reviewers
 
 # MLIR GPU Dialect
-/mlir/**/GPU*/ @fabianmcg @llvm/llvm-committers
+/mlir/**/GPU*/ @fabianmcg @llvm/llvm-reviewers
 
 # MLIR NVVM Dialect in MLIR
-/mlir/**/LLVMIR/**/BasicPtxBuilderInterface* @grypp @llvm/llvm-committers
-/mlir/**/NVVM* @grypp @llvm/llvm-committers
+/mlir/**/LLVMIR/**/BasicPtxBuilderInterface* @grypp @llvm/llvm-reviewers
+/mlir/**/NVVM* @grypp @llvm/llvm-reviewers
 
 # MLIR Index Dialect
-/mlir/**/Index* @mogball @llvm/llvm-committers
+/mlir/**/Index* @mogball @llvm/llvm-reviewers
 
 # MLIR Shard Dialect
-/mlir/**/*shard* @fschlimb @llvm/llvm-committers
-/mlir/**/*Shard* @fschlimb @llvm/llvm-committers
+/mlir/**/*shard* @fschlimb @llvm/llvm-reviewers
+/mlir/**/*Shard* @fschlimb @llvm/llvm-reviewers
 
 # MLIR Python Bindings
-/mlir/test/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-committers
-/mlir/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-committers
-/mlir/lib/Bindings/Python @makslevental @rolfmorel @llvm/llvm-committers
-/mlir/include/Bindings/Python @makslevental @rolfmorel @llvm/llvm-committers
+/mlir/test/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-reviewers
+/mlir/python/ @ftynse @makslevental @stellaraccident @rolfmorel @llvm/llvm-reviewers
+/mlir/lib/Bindings/Python @makslevental @rolfmorel @llvm/llvm-reviewers
+/mlir/include/Bindings/Python @makslevental @rolfmorel @llvm/llvm-reviewers
 
 # MLIR Mem2Reg/SROA
-/mlir/**/Transforms/Mem2Reg.* @moxinilian @llvm/llvm-committers
-/mlir/**/Transforms/SROA.* @moxinilian @llvm/llvm-committers
+/mlir/**/Transforms/Mem2Reg.* @moxinilian @llvm/llvm-reviewers
+/mlir/**/Transforms/SROA.* @moxinilian @llvm/llvm-reviewers
 
 # MLIR IRDL-related
-/mlir/**/*IRDL* @moxinilian @llvm/llvm-committers
+/mlir/**/*IRDL* @moxinilian @llvm/llvm-reviewers
 
 # BOLT
-/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @yota9 @paschalis-mpeis @yozhu @yavtuk @llvm/llvm-committers
+/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @yota9 @paschalis-mpeis @yozhu @yavtuk @llvm/llvm-reviewers
 
 # Bazel build system.
-/utils/bazel/ @rupprecht @keith @aaronmondal @googlewalt @llvm/llvm-committers
+/utils/bazel/ @rupprecht @keith @aaronmondal @googlewalt @llvm/llvm-reviewers
 
 # InstallAPI and TextAPI
-/llvm/**/TextAPI/ @cyndyishida @llvm/llvm-committers
-/clang/**/InstallAPI/ @cyndyishida @llvm/llvm-committers
-/clang/tools/clang-installapi/ @cyndyishida @llvm/llvm-committers
+/llvm/**/TextAPI/ @cyndyishida @llvm/llvm-reviewers
+/clang/**/InstallAPI/ @cyndyishida @llvm/llvm-reviewers
+/clang/tools/clang-installapi/ @cyndyishida @llvm/llvm-reviewers
 
 # ExtractAPI
-/clang/**/ExtractAPI @QuietMisdreavus @snprajwal @llvm/llvm-committers
+/clang/**/ExtractAPI @QuietMisdreavus @snprajwal @llvm/llvm-reviewers
 
 # DWARFLinker, dwarfutil, dsymutil
-/llvm/**/DWARFLinker/ @JDevlieghere @llvm/llvm-committers
-/llvm/**/dsymutil/ @JDevlieghere @llvm/llvm-committers
-/llvm/**/llvm-dwarfutil/ @JDevlieghere @llvm/llvm-committers
+/llvm/**/DWARFLinker/ @JDevlieghere @llvm/llvm-reviewers
+/llvm/**/dsymutil/ @JDevlieghere @llvm/llvm-reviewers
+/llvm/**/llvm-dwarfutil/ @JDevlieghere @llvm/llvm-reviewers
 
 # libclang/Python bindings
-/clang/bindings/python @DeinAlptraum @llvm/llvm-committers
+/clang/bindings/python @DeinAlptraum @llvm/llvm-reviewers
 
 # AMDGPU assembler and disassembler
-/llvm-project/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @jwanggit86 @llvm/llvm-committers
-/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @jwanggit86 @llvm/llvm-committers
+/llvm-project/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @jwanggit86 @llvm/llvm-reviewers
+/llvm-project/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @jwanggit86 @llvm/llvm-reviewers
 
 # Clang Driver
-/clang/lib/Driver/ToolChains/AMDGPU.cpp @lamb-j @llvm/llvm-committers
-/clang/lib/Driver/OffloadBundler.cpp @lamb-j @david-salinas @llvm/llvm-committers
+/clang/lib/Driver/ToolChains/AMDGPU.cpp @lamb-j @llvm/llvm-reviewers
+/clang/lib/Driver/OffloadBundler.cpp @lamb-j @david-salinas @llvm/llvm-reviewers
 
 # GlobalIsel
-/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize* @vangthao95 @llvm/llvm-committers
+/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize* @vangthao95 @llvm/llvm-reviewers
 
 # AMDGPU Memory Model
-/llvm/lib/Target/AMDGPU/SIMemoryLegalizer* @Pierre-vh @ritter-x2a @llvm/llvm-committers
-/llvm/lib/Target/AMDGPU/SIInsertWaitcnts* @Pierre-vh @ritter-x2a @llvm/llvm-committers
+/llvm/lib/Target/AMDGPU/SIMemoryLegalizer* @Pierre-vh @ritter-x2a @llvm/llvm-reviewers
+/llvm/lib/Target/AMDGPU/SIInsertWaitcnts* @Pierre-vh @ritter-x2a @llvm/llvm-reviewers
 
 # Clang-Tidy tool
-/clang-tools-extra/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
-/clang-tools-extra/test/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
-/clang-tools-extra/docs/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-committers
+/clang-tools-extra/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-reviewers
+/clang-tools-extra/test/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-reviewers
+/clang-tools-extra/docs/clang-tidy/ @vbvictor @zeyi2 @llvm/llvm-reviewers
diff --git a/.github/ISSUE_TEMPLATE/commit-access-request.yml b/.github/ISSUE_TEMPLATE/commit-access-request.yml
index bb137b7b5ad0f..b960021791074 100644
--- a/.github/ISSUE_TEMPLATE/commit-access-request.yml
+++ b/.github/ISSUE_TEMPLATE/commit-access-request.yml
@@ -7,14 +7,11 @@ body:
   - type: markdown
     attributes:
       value: >
-        Thank you for your contributions to LLVM! Please replace `<user>` in
-        the issue title with your GitHub username, and complete the form
-        below. See the
+        Thank you for your interest in contributing to LLVM! Please replace
+        `<user>` in the issue title with your GitHub username, and complete
+        the form below. See the
         [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
-        for the criteria used to evaluate commit access requests. After you
-        file this issue, you will need two current committers to vouch for
-        you, at least one of whom does not share your organizational
-        affiliation.
+        for a description of commit access and how requests are handled.
   - type: checkboxes
     id: policies
     attributes:
@@ -38,31 +35,13 @@ body:
             Policy](https://llvm.org/docs/DeveloperPolicy.html) and agree to
             abide by it.
           required: true
-        - label: >
-            I have read the [LLVM Code Review
-            Policy](https://llvm.org/docs/CodeReview.html) and agree to
-            abide by it.
-          required: true
-  - type: textarea
-    id: feedback-examples
-    attributes:
-      label: Examples of Helpful Feedback
-      description: >
-        Link to 3 or more separate pull requests, issues, or Discourse
-        threads where your comments provided useful feedback demonstrating
-        good technical judgement.
-      placeholder: |
-        - https://github.com/llvm/llvm-project/pull/NNNNN
-        - https://github.com/llvm/llvm-project/issues/NNNNN
-        - https://discourse.llvm.org/t/...
-    validations:
-      required: true
   - type: textarea
-    id: reason
+    id: background
     attributes:
-      label: Background
+      label: Background (optional)
       description: >
-        Tell us about your involvement with the project and why you are
-        requesting commit access.
+        Optionally, tell us how you plan to participate in the project, such
+        as changes you would like to contribute, areas of interest, or past
+        contributions.
     validations:
-      required: true
+      required: false
diff --git a/.github/ISSUE_TEMPLATE/reviewer-access-request.yml b/.github/ISSUE_TEMPLATE/reviewer-access-request.yml
new file mode 100644
index 0000000000000..bacad5f1d2455
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/reviewer-access-request.yml
@@ -0,0 +1,68 @@
+name: Reviewer Access Request
+description: Request to join the LLVM reviewers team
+title: "Request Reviewer Access For <user>"
+labels:
+  - "infra:reviewer-access-request"
+body:
+  - type: markdown
+    attributes:
+      value: >
+        Thank you for your contributions to LLVM! Please replace `<user>` in
+        the issue title with your GitHub username, and complete the form
+        below. See the
+        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#becoming-a-reviewer)
+        for the criteria used to evaluate reviewer access requests. After you
+        file this issue, you will need two current reviewers to vouch for
+        you, at least one of whom does not share your organizational
+        affiliation.
+  - type: checkboxes
+    id: policies
+    attributes:
+      label: Policy Agreement
+      description: >
+        Reviewers are expected to know and follow the community policies.
+        Please confirm each of the following.
+      options:
+        - label: >
+            I have read the [LLVM Community Code of
+            Conduct](https://llvm.org/docs/CodeOfConduct.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM AI Tool Use
+            Policy](https://llvm.org/docs/AIToolPolicy.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM Developer
+            Policy](https://llvm.org/docs/DeveloperPolicy.html) and agree to
+            abide by it.
+          required: true
+        - label: >
+            I have read the [LLVM Code Review
+            Policy](https://llvm.org/docs/CodeReview.html) and agree to
+            abide by it.
+          required: true
+  - type: textarea
+    id: feedback-examples
+    attributes:
+      label: Examples of Helpful Feedback
+      description: >
+        Link to 3 or more separate pull requests, issues, or Discourse
+        threads where your comments provided useful feedback demonstrating
+        good technical judgement.
+      placeholder: |
+        - https://github.com/llvm/llvm-project/pull/NNNNN
+        - https://github.com/llvm/llvm-project/issues/NNNNN
+        - https://discourse.llvm.org/t/...
+    validations:
+      required: true
+  - type: textarea
+    id: reason
+    attributes:
+      label: Background
+      description: >
+        Tell us about your involvement with the project and why you are
+        requesting reviewer access.
+    validations:
+      required: true
diff --git a/.github/ISSUE_TEMPLATE/triager-access-request.yml b/.github/ISSUE_TEMPLATE/triager-access-request.yml
deleted file mode 100644
index 19dfb3800250a..0000000000000
--- a/.github/ISSUE_TEMPLATE/triager-access-request.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: Triager Access Request
-description: Request to join the LLVM triagers team
-title: "Request Triager Access For <user>"
-labels:
-  - "infra:triager-access-request"
-body:
-  - type: markdown
-    attributes:
-      value: >
-        Thank you for your interest in contributing to LLVM! Please replace
-        `<user>` in the issue title with your GitHub username, and complete
-        the form below. See the
-        [Developer Policy](https://llvm.org/docs/DeveloperPolicy.html#joining-the-triage-team)
-        for a description of the triager role and how requests are handled.
-  - type: checkboxes
-    id: policies
-    attributes:
-      label: Policy Agreement
-      description: >
-        Triagers are expected to know and follow the community policies.
-        Please confirm each of the following.
-      options:
-        - label: >
-            I have read the [LLVM Community Code of
-            Conduct](https://llvm.org/docs/CodeOfConduct.html) and agree to
-            abide by it.
-          required: true
-        - label: >
-            I have read the [LLVM AI Tool Use
-            Policy](https://llvm.org/docs/AIToolPolicy.html) and agree to
-            abide by it.
-          required: true
-        - label: >
-            I have read the [LLVM Developer
-            Policy](https://llvm.org/docs/DeveloperPolicy.html) and agree to
-            abide by it.
-          required: true
-  - type: textarea
-    id: background
-    attributes:
-      label: Background (optional)
-      description: >
-        Optionally, tell us how you plan to participate in the project, such
-        as issues you would like to triage, areas of interest, or past
-        contributions.
-    validations:
-      required: false
diff --git a/.github/new-issues-labeler.yml b/.github/new-issues-labeler.yml
index d3aeb2aa55654..2ee9aa2be1636 100644
--- a/.github/new-issues-labeler.yml
+++ b/.github/new-issues-labeler.yml
@@ -34,8 +34,8 @@
 'infra:commit-access-request':
   - '/Request Commit Access/'
 
-'infra:triager-access-request':
-  - '/Request Triager Access/'
+'infra:reviewer-access-request':
+  - '/Request Reviewer Access/'
 
 'false-positive':
   - '\bfalse[- ]positive\b'
diff --git a/llvm/docs/DeveloperPolicy.md b/llvm/docs/DeveloperPolicy.md
index 6a29880346039..d4f182c209011 100644
--- a/llvm/docs/DeveloperPolicy.md
+++ b/llvm/docs/DeveloperPolicy.md
@@ -87,6 +87,12 @@ Here are some tips to enable a successful code review:
   a recent commit from `main`. If you want to make changes to a release
   branch, land a change in `main` first and then follow the {ref}`backporting
   instructions <backporting>`.
+- Avoid formatting- or whitespace-only changes outside of code you plan to
+  make subsequent changes to. Also, try to separate formatting or whitespace
+  changes from functional changes, either by correcting the format first
+  (ideally) or afterward. Such changes should be highly localized and the
+  commit message should clearly state that the commit is not intended to
+  change functionality, usually by stating it is {ref}`NFC <nfc>`.
 
 LLVM uses code review, which is a generally accepted software engineering best
 practice for maintaining high code quality. See {doc}`CodeReview` for more
@@ -473,10 +479,12 @@ your journey to becoming an LLVM contributor is to apply to join the "LLVM
 committers" team. Committers have "commit-with-review" access. They cannot
 unilaterally land changes or approve other people's pull requests.
 
-To merge changes into `main`, you need to make a pull request and get it
-approved by a member of the LLVM reviewers team (see below). Once a PR is
-approved by a reviewer, a committer can push the merge button to land any PR,
-whether it is their own, or someone else's (see {ref}`merging pull requests
+Commit access grants *commit-after-approval* to all parts of LLVM. To merge
+changes into `main`, you need to make a pull request and get it approved by a
+member of the LLVM reviewers team (see below). For information on how to get
+approval for a patch, please see {doc}`CodeReview`. Once a PR is approved by a
+reviewer, a committer can push the merge button to land any PR, whether it is
+their own, or someone else's (see {ref}`merging pull requests
 <merging_pull_requests>`).
 
 To apply to be a committer, read the following developer policy docs, and file
@@ -492,8 +500,8 @@ the policies and agree to abide by them:
 Once approved, a GitHub invitation will be sent to your GitHub account. In case
 you don't get notification from GitHub, go to [Invitation Link] directly. Once
 you accept the invitation, you'll be granted LLVM github org affiliation and
-LLVM triager team membership. If you fail to follow the policies, you may lose
-commit access.
+LLVM committers team membership. If you fail to follow the policies, you may
+lose commit access.
 
 Prior to obtaining commit access, it is common practice to request that someone
 with commit access commits on your behalf. Note that GitHub will use your
@@ -504,11 +512,16 @@ any committer can merge it for you (see {ref}`merging pull requests
 
 For external tracking purposes, committed changes are automatically reflected
 on a commits mailing list soon after the commit lands (e.g.
-`[llvm-commits at lists.llvm.org]`). Note that these mailing lists are moderated,
+[llvm-commits at lists.llvm.org]). Note that these mailing lists are moderated,
 and it is not unusual for a large commit to require a moderator to approve the
 email, so do not be concerned if a commit does not immediately appear in the
 archives.
 
+You are encouraged to review other peoples' patches as well, but you aren't
+required to do so. No special access is needed to leave review feedback on a
+pull request, and a track record of helpful reviews is the main criterion for
+joining the reviewers team (see below).
+
 [commit-access-request]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
 [Invitation Link]: https://github.com/orgs/llvm/invitation
 [llvm-commits at lists.llvm.org]: https://lists.llvm.org/pipermail/llvm-commits/
@@ -531,6 +544,14 @@ decision \-\-- we trust reviewers to use good judgement. Valid reasons include:
 - reverting obviously broken patches
 - documentation/comment accuracy changes
 - other minor, non-functional changes
+- landing changes to those portions of LLVM that you have contributed or
+  maintain (i.e., have been assigned responsibility for), with the proviso
+  that such changes must not break the build
+
+The last case is a "trust but verify" policy: changes landed without approval
+are still subject to {ref}`code review <code review>`, just after they land
+rather than before. Multiple violations of these policies or a single
+egregious violation may cause review access to be revoked.
 
 Review access is granted to contributors who have provided helpful feedback
 that demonstrates good technical judgement. The most important resource the
@@ -555,36 +576,8 @@ share an organizational affiliation." We trust existing reviewers to be honest
 about their affiliations, and not rubber stamp the work of team mates as a
 favor to expedite this process.
 
-[CODEOWNERS]: http://github.com/llvm/llvm-project/blob/main/.github/CODEOWNERS
-[review-access-issue]: https://github.com/llvm/llvm-project/issues/new?template=commit-access-request.yml
-
-% TODO: The following policy doc content probably can find a better home elsewhere.
-%
-% Avoid committing formatting- or whitespace-only
-% changes outside of code you plan to make subsequent changes to. Also, try to
-% separate formatting or whitespace changes from functional changes, either by
-% correcting the format first (ideally) or afterward. Such changes should be
-% highly localized and the commit message should clearly state that the commit is
-% not intended to change functionality, usually by stating it is {ref}`NFC
-% <nfc>`.
-%
-% If you have recently joined the reviewer team, these policies apply:
-% 
-% 1. You are granted *commit-after-approval* to all parts of LLVM. For
-%    information on how to get approval for a patch, please see
-%    {doc}`CodeReview`. When approved, you may merge it yourself.
-% 3. Reviewers are allowed to commit patches without approval to those portions
-%    of LLVM that they have contributed or maintain (i.e., have been assigned
-%    responsibility for), with the proviso that such commits must not break the
-%    build. This is a "trust but verify" policy, and commits of this nature are
-%    reviewed after they are committed.
-% 4. Multiple violations of these policies or a single egregious violation may
-%    cause commit access to be revoked.
-% 
-% In any case, your changes are still subject to {ref}`code review <code review>`
-% (either before or after they are committed, depending on the nature of the
-% change). You are encouraged to review other peoples' patches as well, but you
-% aren't required to do so.
+[CODEOWNERS]: https://github.com/llvm/llvm-project/blob/main/.github/CODEOWNERS
+[review-access-issue]: https://github.com/llvm/llvm-project/issues/new?template=reviewer-access-request.yml
 
 (merging_pull_requests)=
 ### Merging Pull Requests
@@ -723,8 +716,8 @@ awareness of. For such changes, the following should be done:
 
 ### Attribution of Changes
 
-When contributors submit a patch to an LLVM project, another committer or
-triager may merge the PR for the author once it has been approved (see
+When contributors submit a patch to an LLVM project, another committer may
+merge the PR for the author once it has been approved (see
 {ref}`merging pull requests <merging_pull_requests>`). GitHub will
 automatically ensure that authorship is preserved,
 and one does not need to take any further action. We do not want the source



More information about the llvm-commits mailing list