From 1ee4192fbf811128a4fcd15d4db8834032719618 Mon Sep 17 00:00:00 2001 From: Carlos Villela Date: Tue, 18 Aug 2026 17:37:24 -0700 Subject: [PATCH 1/3] ci: reduce contributor PR limit to five --- .github/workflows/pr-limit.yaml | 6 +++--- AGENTS.md | 2 +- CONTRIBUTING.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-limit.yaml b/.github/workflows/pr-limit.yaml index 754893e79b7..9038a26ef24 100644 --- a/.github/workflows/pr-limit.yaml +++ b/.github/workflows/pr-limit.yaml @@ -40,10 +40,10 @@ jobs: echo "Author $AUTHOR has $OPEN_COUNT open PR(s)" - if [ "$OPEN_COUNT" -gt 10 ]; then + if [ "$OPEN_COUNT" -gt 5 ]; then gh pr comment "$PR_NUMBER" --repo "$REPO" --body \ - "This repository limits contributors to 10 open pull requests. Please close or merge existing PRs before opening new ones." + "This repository limits contributors to 5 open pull requests. Please close or merge existing PRs before opening new ones." gh pr close "$PR_NUMBER" --repo "$REPO" - echo "::error::PR closed — author $AUTHOR exceeds the 10 open PR limit" + echo "::error::PR closed — author $AUTHOR exceeds the 5 open PR limit" exit 1 fi diff --git a/AGENTS.md b/AGENTS.md index 993bdd85043..ade25849c75 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -344,4 +344,4 @@ If the command trace contains no reviewer-request write, report the event as an - Direct PRs follow `.github/PULL_REQUEST_TEMPLATE.md`; the managed documentation workflow uses its generated body - PRs that change `scripts/prepare-dgx-station-host.sh` must include reviewable DGX Station test evidence identifying the tested commit, Station profile or scenario, result, and a supporting link. Any maintainer may review the evidence; without acceptable evidence, the PR is not ready to approve or merge. Treat the evidence as human-reviewed, not authenticated hardware provenance. Exceptional bypasses use existing repository governance and must document the reason on the PR. - No secrets, API keys, or credentials committed -- Apply the 10-open-PR limit from `.github/workflows/pr-limit.yaml` only to accounts that the workflow does not exempt +- Apply the 5-open-PR limit from `.github/workflows/pr-limit.yaml` only to accounts that the workflow does not exempt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e6f727d6f10..615f797bfb7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -511,7 +511,7 @@ For Markdown docs routing, user-skill guidance, and release-prep documentation w ## Pull Requests -We welcome contributions. Every PR requires maintainer review before merge. Contributors may have up to 10 open PRs at one time. +We welcome contributions. Every PR requires maintainer review before merge. Contributors may have up to 5 open PRs at one time. Core maintainers listed in `.github/workflows/pr-limit.yaml` are exempt from this limit. Maintainers review pull requests according to project priority, security impact, release readiness, and reviewer availability. PRs that solve issues with Priority set to Urgent or High are more likely to receive earlier review when maintainers have capacity. From 3a8f9c047885f473b519bbf3f2c9e76bddf8da00 Mon Sep 17 00:00:00 2001 From: Carlos Villela Date: Tue, 18 Aug 2026 17:45:02 -0700 Subject: [PATCH 2/3] docs: align maintainer PR limit guidance --- .agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md b/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md index e410eeb55f8..790432a2067 100644 --- a/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md +++ b/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md @@ -16,7 +16,7 @@ Continuously inspect automatic E2E results for `main`. Coordinate ownership and 2. Keep release operations out of scope. Never change, retag, publish, or otherwise touch a release, tag, or release artifact during this workflow. Route release work to the existing release workflow. 3. Confirm maintainer authorization. Merge only when the request grants it. Otherwise, leave the PR `approval-ready` and continue the loop. 4. Check Git and GitHub access. Follow [Git and GitHub Access Hard Stop](../_shared/git-github-hard-stop.md) on access failure. -5. Fetch trusted `origin/main`. Read its PR-limit policy with `git show origin/main:.github/workflows/pr-limit.yaml`. For a non-exempt author, do not create a claim that would exceed the 10-open-PR limit. +5. Fetch trusted `origin/main`. Read its PR-limit policy with `git show origin/main:.github/workflows/pr-limit.yaml`. For a non-exempt author, do not create a claim that would exceed the 5-open-PR limit. Do not declare success or end the loop because the queue is empty or the newest run passes. Wait for the next automatic `main` result. From f4a816b47d29835443fb507c5c51bc8c53fd4ebd Mon Sep 17 00:00:00 2001 From: Carlos Villela Date: Tue, 18 Aug 2026 17:49:27 -0700 Subject: [PATCH 3/3] refactor(ci): centralize contributor PR limit --- .../skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md | 2 +- .github/workflows/pr-limit.yaml | 8 +++++--- AGENTS.md | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md b/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md index 790432a2067..a8efcbee667 100644 --- a/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md +++ b/.agents/skills/nemoclaw-maintainer-fix-e2e-failures/SKILL.md @@ -16,7 +16,7 @@ Continuously inspect automatic E2E results for `main`. Coordinate ownership and 2. Keep release operations out of scope. Never change, retag, publish, or otherwise touch a release, tag, or release artifact during this workflow. Route release work to the existing release workflow. 3. Confirm maintainer authorization. Merge only when the request grants it. Otherwise, leave the PR `approval-ready` and continue the loop. 4. Check Git and GitHub access. Follow [Git and GitHub Access Hard Stop](../_shared/git-github-hard-stop.md) on access failure. -5. Fetch trusted `origin/main`. Read its PR-limit policy with `git show origin/main:.github/workflows/pr-limit.yaml`. For a non-exempt author, do not create a claim that would exceed the 5-open-PR limit. +5. Fetch trusted `origin/main`. Read its PR-limit policy with `git show origin/main:.github/workflows/pr-limit.yaml`. For a non-exempt author, do not create a claim that would exceed that limit. Do not declare success or end the loop because the queue is empty or the newest run passes. Wait for the next automatic `main` result. diff --git a/.github/workflows/pr-limit.yaml b/.github/workflows/pr-limit.yaml index 9038a26ef24..99f67fc38bf 100644 --- a/.github/workflows/pr-limit.yaml +++ b/.github/workflows/pr-limit.yaml @@ -27,6 +27,8 @@ jobs: PR_NUMBER: ${{ github.event.pull_request.number }} REPO: ${{ github.repository }} run: | + LIMIT=5 + # Core maintainers are exempt from the PR limit. EXEMPT="ericksoa kjw3 jacobtomlinson cv jyaunches" for user in $EXEMPT; do @@ -40,10 +42,10 @@ jobs: echo "Author $AUTHOR has $OPEN_COUNT open PR(s)" - if [ "$OPEN_COUNT" -gt 5 ]; then + if [ "$OPEN_COUNT" -gt "$LIMIT" ]; then gh pr comment "$PR_NUMBER" --repo "$REPO" --body \ - "This repository limits contributors to 5 open pull requests. Please close or merge existing PRs before opening new ones." + "This repository limits contributors to $LIMIT open pull requests. Please close or merge existing PRs before opening new ones." gh pr close "$PR_NUMBER" --repo "$REPO" - echo "::error::PR closed — author $AUTHOR exceeds the 5 open PR limit" + echo "::error::PR closed — author $AUTHOR exceeds the $LIMIT open PR limit" exit 1 fi diff --git a/AGENTS.md b/AGENTS.md index ade25849c75..256a25cb165 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -344,4 +344,4 @@ If the command trace contains no reviewer-request write, report the event as an - Direct PRs follow `.github/PULL_REQUEST_TEMPLATE.md`; the managed documentation workflow uses its generated body - PRs that change `scripts/prepare-dgx-station-host.sh` must include reviewable DGX Station test evidence identifying the tested commit, Station profile or scenario, result, and a supporting link. Any maintainer may review the evidence; without acceptable evidence, the PR is not ready to approve or merge. Treat the evidence as human-reviewed, not authenticated hardware provenance. Exceptional bypasses use existing repository governance and must document the reason on the PR. - No secrets, API keys, or credentials committed -- Apply the 5-open-PR limit from `.github/workflows/pr-limit.yaml` only to accounts that the workflow does not exempt +- Apply the open PR limit from `.github/workflows/pr-limit.yaml` only to accounts that the workflow does not exempt