From 58eddd158b7ac5525b09b75b0864cf8f9fab0dc7 Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:09:04 +0000 Subject: [PATCH 1/7] docs: add PR lifecycle flow to CONTRIBUTING.md --- CONTRIBUTING.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 08abe5ab..d57e5e39 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,3 +80,51 @@ cargo check - Run `cargo fmt` before committing - Run `cargo clippy` and address warnings - Keep PRs focused — one feature or fix per PR + +## PR Lifecycle + +Every PR follows a label-driven lifecycle that keeps the review loop moving. + +``` +┌──────────────┐ +│ PR Created │ +└──────┬───────┘ + │ + ▼ +┌──────────────────────┐ author comments ┌───────────────────────┐ +│ pending-maintainer │◄────────────────────│ pending-contributor │ +└──────────────────────┘ └───────────┬─────────────┘ + │ │ + │ review done, │ stale 3 days + │ ball to contributor │ (no author activity) + │ ▼ + └────────────────────────────────────────►┌───────────────┐ + │ closing-soon │ + └───────┬───────┘ + │ + ┌────────────┴────────────┐ + │ │ + ▼ ▼ + author comments 3 more days + within 3 days no activity + │ │ + ▼ ▼ + ┌────────────────────┐ ┌────────────┐ + │ pending-maintainer │ │ PR Closed │ + │ (labels removed) │ └────────────┘ + └────────────────────┘ +``` + +### Label Transitions + +| Current State | Trigger | Action | +|---------------|---------|--------| +| `pending-contributor` | No author activity for 3 days | Add `closing-soon` | +| `closing-soon` | No author activity for 3 more days | Auto-close PR | +| `pending-contributor` / `closing-soon` | Author adds a comment | Remove both labels, add `pending-maintainer` | + +### Key Rules + +- **`pending-contributor`** — the ball is on the contributor; maintainers are waiting for updates. +- **`closing-soon`** — warning that the PR will be auto-closed if no response within 3 days. +- **Author comment resets the clock** — any comment by the PR author removes `pending-contributor` and `closing-soon`, flipping the PR back to `pending-maintainer`. From be3e157e3a11ed78f59135b75e6c71b5c88ce87c Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:10:19 +0000 Subject: [PATCH 2/7] docs: fix box alignment and split label transition table rows --- CONTRIBUTING.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d57e5e39..7ecdcca6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,9 +91,9 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. └──────┬───────┘ │ ▼ -┌──────────────────────┐ author comments ┌───────────────────────┐ -│ pending-maintainer │◄────────────────────│ pending-contributor │ -└──────────────────────┘ └───────────┬─────────────┘ +┌──────────────────────┐ author comments ┌──────────────────────┐ +│ pending-maintainer │◄────────────────────│ pending-contributor │ +└──────────────────────┘ └──────────┬───────────┘ │ │ │ review done, │ stale 3 days │ ball to contributor │ (no author activity) @@ -121,7 +121,8 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. |---------------|---------|--------| | `pending-contributor` | No author activity for 3 days | Add `closing-soon` | | `closing-soon` | No author activity for 3 more days | Auto-close PR | -| `pending-contributor` / `closing-soon` | Author adds a comment | Remove both labels, add `pending-maintainer` | +| `pending-contributor` | Author adds a comment | Remove `pending-contributor`, add `pending-maintainer` | +| `closing-soon` | Author adds a comment | Remove `closing-soon` and `pending-contributor`, add `pending-maintainer` | ### Key Rules From 412688acfabc9aa78429aee9152c0d09b137b7b2 Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:11:11 +0000 Subject: [PATCH 3/7] docs: note immediate closing-soon for missing Discord URL --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7ecdcca6..8ba34f7a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -129,3 +129,4 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. - **`pending-contributor`** — the ball is on the contributor; maintainers are waiting for updates. - **`closing-soon`** — warning that the PR will be auto-closed if no response within 3 days. - **Author comment resets the clock** — any comment by the PR author removes `pending-contributor` and `closing-soon`, flipping the PR back to `pending-maintainer`. +- **Immediate `closing-soon`** — in some cases (e.g., missing Discord Discussion URL), `closing-soon` is applied immediately without waiting for the stale period. From c9159406d6640d0069718f41bda67603f11012a7 Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:13:58 +0000 Subject: [PATCH 4/7] docs: align stale to 2 days, clarify re-check may re-apply closing-soon --- CONTRIBUTING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8ba34f7a..042b2db5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -95,7 +95,7 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. │ pending-maintainer │◄────────────────────│ pending-contributor │ └──────────────────────┘ └──────────┬───────────┘ │ │ - │ review done, │ stale 3 days + │ review done, │ stale 2 days │ ball to contributor │ (no author activity) │ ▼ └────────────────────────────────────────►┌───────────────┐ @@ -119,7 +119,7 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. | Current State | Trigger | Action | |---------------|---------|--------| -| `pending-contributor` | No author activity for 3 days | Add `closing-soon` | +| `pending-contributor` | No author activity for 2 days | Add `closing-soon` | | `closing-soon` | No author activity for 3 more days | Auto-close PR | | `pending-contributor` | Author adds a comment | Remove `pending-contributor`, add `pending-maintainer` | | `closing-soon` | Author adds a comment | Remove `closing-soon` and `pending-contributor`, add `pending-maintainer` | @@ -128,5 +128,6 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. - **`pending-contributor`** — the ball is on the contributor; maintainers are waiting for updates. - **`closing-soon`** — warning that the PR will be auto-closed if no response within 3 days. -- **Author comment resets the clock** — any comment by the PR author removes `pending-contributor` and `closing-soon`, flipping the PR back to `pending-maintainer`. +- **Author comment always resets** — any comment by the PR author removes `pending-contributor` and `closing-soon`, flipping the PR back to `pending-maintainer`. +- **Re-check may re-apply `closing-soon`** — after the flip, automated checks still run. If blockers remain (e.g., missing Discord URL, CI failure, `needs-rebase`), `closing-soon` will be re-applied immediately, keeping the ball on the contributor. - **Immediate `closing-soon`** — in some cases (e.g., missing Discord Discussion URL), `closing-soon` is applied immediately without waiting for the stale period. From f18786711e5bf3f88cfaa0de7582352abfd9a4ea Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:19:03 +0000 Subject: [PATCH 5/7] docs: rewrite lifecycle diagram with checks-first flow and re-check loop --- CONTRIBUTING.md | 60 +++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 042b2db5..438a160c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,28 +91,44 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. └──────┬───────┘ │ ▼ -┌──────────────────────┐ author comments ┌──────────────────────┐ -│ pending-maintainer │◄────────────────────│ pending-contributor │ -└──────────────────────┘ └──────────┬───────────┘ - │ │ - │ review done, │ stale 2 days - │ ball to contributor │ (no author activity) - │ ▼ - └────────────────────────────────────────►┌───────────────┐ - │ closing-soon │ - └───────┬───────┘ - │ - ┌────────────┴────────────┐ - │ │ - ▼ ▼ - author comments 3 more days - within 3 days no activity - │ │ - ▼ ▼ - ┌────────────────────┐ ┌────────────┐ - │ pending-maintainer │ │ PR Closed │ - │ (labels removed) │ └────────────┘ - └────────────────────┘ +┌──────────────────────┐ +│ Automated Checks │ +│ (CI, rebase, etc.) │ +└──────┬───────────────┘ + │ + ├── all pass ──────────────────────►┌──────────────────────┐ + │ │ pending-maintainer │ + │ └──────────┬───────────┘ + │ │ + │ │ review done, + │ │ ball to contributor + │ ▼ + └── any fail ──────────────────────►┌──────────────────────┐ + │ pending-contributor │◄─────────┐ + └──────────┬───────────┘ │ + │ │ + │ stale 2 days │ + │ (no author activity) │ + ▼ │ + ┌───────────────────┐ │ + │ closing-soon │ │ + │ (or immediate if │ │ + │ blocker detected)│ │ + └────────┬──────────┘ │ + │ │ + ┌────────────┴──────────┐ │ + │ │ │ + ▼ ▼ │ + author comments 3 more days │ + within 3 days no activity │ + │ │ │ + ▼ ▼ │ + ┌────────────────────┐ ┌────────────┐ │ + │ pending-maintainer │ │ PR Closed │ │ + │ (labels removed) │ └────────────┘ │ + └────────┬───────────┘ │ + │ │ + └── re-check fails ────────────────────┘ ``` ### Label Transitions From 7e4600fde16e765820cf957a815f291cace18887 Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:20:03 +0000 Subject: [PATCH 6/7] docs: clarify maintainer flips to pending-contributor when pending actions exist --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 438a160c..ec4728e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -101,7 +101,8 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. │ └──────────┬───────────┘ │ │ │ │ review done, - │ │ ball to contributor + │ │ pending actions + │ │ for contributor │ ▼ └── any fail ──────────────────────►┌──────────────────────┐ │ pending-contributor │◄─────────┐ From 0e2e5edf6d3bdc902da81e52e7a66089e76e61f5 Mon Sep 17 00:00:00 2001 From: "chaodu-agent[bot]" Date: Sat, 23 May 2026 13:22:09 +0000 Subject: [PATCH 7/7] docs: add LGTM/approve/merge path from pending-maintainer --- CONTRIBUTING.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec4728e6..556fa27e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -100,10 +100,13 @@ Every PR follows a label-driven lifecycle that keeps the review loop moving. │ │ pending-maintainer │ │ └──────────┬───────────┘ │ │ - │ │ review done, - │ │ pending actions - │ │ for contributor - │ ▼ + │ ├── LGTM → approve & merge (or request + │ │ another maintainer review) + │ │ stays pending-maintainer + │ │ + │ └── pending actions for contributor + │ │ + │ ▼ └── any fail ──────────────────────►┌──────────────────────┐ │ pending-contributor │◄─────────┐ └──────────┬───────────┘ │