diff --git a/.github/scripts/pull-request-dashboard/author_nudge.py b/.github/scripts/pull-request-dashboard/author_nudge.py index 28c4b79100a..cd138a66658 100644 --- a/.github/scripts/pull-request-dashboard/author_nudge.py +++ b/.github/scripts/pull-request-dashboard/author_nudge.py @@ -17,7 +17,7 @@ gh_graphql, run_gh, ) -from dashboard_override import author_override_guidance +from dashboard_override import DASHBOARD_COMMAND_PREFIX from pr_status_comment import ( DASHBOARD_APP_SLUG, managed_status_comments, @@ -321,19 +321,14 @@ def render_nudge( return "\n".join([ nudge_marker(episode_id), f"Hi @{author} — just a friendly reminder that this pull request is " - "waiting on you.", + f"waiting on you. The [dashboard status comment]({status_url}) has the " + "open items and is kept current.", "", - f"This pull request still needs your attention. See the " - f"[dashboard status comment]({status_url}) for the full list and current " - "routing; that comment is kept current.", - "", - author_override_guidance( - "This break-glass handoff works even when required checks, Copilot " - "review, or merge conflicts are still outstanding." - ), - "", - "_This reminder is a snapshot; the linked dashboard status is the current " - "source of truth._", + "- Replying is enough to hand it off — answer, explain why no change is " + "needed, or ask a follow-up. The dashboard routes it onward once nothing " + "on the list is waiting on you.", + "- To hand it back for any other reason, including the dashboard getting " + f"this wrong, comment `{DASHBOARD_COMMAND_PREFIX} route:reviewers`.", "", ]) diff --git a/.github/scripts/pull-request-dashboard/test_author_nudge.py b/.github/scripts/pull-request-dashboard/test_author_nudge.py index 56547b3dde6..38c43eb606d 100644 --- a/.github/scripts/pull-request-dashboard/test_author_nudge.py +++ b/.github/scripts/pull-request-dashboard/test_author_nudge.py @@ -187,19 +187,19 @@ def test_nudge_advertises_dashboard_override_command(self) -> None: self.assertIn("just a friendly reminder", body) self.assertIn( - "_This reminder is a snapshot; the linked dashboard status is the " - "current source of truth._", + "The [dashboard status comment](https://example.test/status) has the " + "open items and is kept current.", body, ) self.assertIn( - "comment `/dashboard route:reviewers` to request routing from waiting " - "on the author to waiting on reviewers. The dashboard binds the " - "request to the head it sees when it reads the command", + "- Replying is enough to hand it off — answer, explain why no change " + "is needed, or ask a follow-up. The dashboard routes it onward once " + "nothing on the list is waiting on you.", body, ) self.assertIn( - "works even when required checks, Copilot review, or merge conflicts " - "are still outstanding", + "- To hand it back for any other reason, including the dashboard " + "getting this wrong, comment `/dashboard route:reviewers`.", body, ) diff --git a/pull-request-dashboard/README.md b/pull-request-dashboard/README.md index 36542c0d715..e38bc44d47c 100644 --- a/pull-request-dashboard/README.md +++ b/pull-request-dashboard/README.md @@ -240,11 +240,12 @@ or an approver can use it, and replies to any unrecognized `/dashboard` command. The dashboard posts one reminder when a pull request remains in *Waiting on authors* for one week. The friendly reminder @-mentions the author, links to the -dashboard-managed status comment containing the current blockers, and advertises -`/dashboard route:reviewers` as a break-glass handoff when the author needs human -help. The same one-week clock applies while the author route is held on required -checks, Copilot review, or merge conflicts. An italic footer calls the reminder -a snapshot and identifies the linked status comment as the live source of truth. +dashboard-managed status comment containing the current blockers, says that +answering the open items resumes normal approval-based routing, and advertises +`/dashboard route:reviewers` as a break-glass handoff for any other reason, +including the dashboard routing the pull request wrongly. The same one-week clock +applies while the author route is held on required checks, Copilot review, or +merge conflicts. When the dashboard routes the pull request to approvers or maintainers, it appends an italic note saying that the pull request is no longer waiting on the