You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If changelog classification or P0/P1/P2/Must-Fix dispositions are not supplied,
108
+
the ledger records those fields as `UNKNOWN`. `--strict` exits non-zero when any
109
+
ledger violation exists or any field is `UNKNOWN`.
110
+
95
111
For an issue, gather enough context to avoid duplicate work:
96
112
97
113
```bash
@@ -387,11 +403,11 @@ it as an immediate maintainer question. Also apply the merge-endgame debounce
387
403
and waiver-soak rule under **Merge Endgame Debounce And Waiver Soak** before
388
404
the final merge/readiness decision.
389
405
390
-
After workers finish, the coordinator must keep working through the Coordinator Closeout Lane instead of stopping at PR creation: re-fetch live PR status, wait for current-head checks and reviews, triage/resolve or explicitly waive current unresolved review threads, update stale release-mode classification, refresh the finalized PR-body `Agent Merge Confidence` block when accelerated-RC readiness requires it, request full CI when uncertainty remains, re-fetch and wait for the newly requested current-head checks, and merge eligible ready PRs when authorized under the current release mode.
406
+
After workers finish, the coordinator must keep working through the Coordinator Closeout Lane instead of stopping at PR creation: re-fetch live PR status, wait for current-head checks and reviews, triage/resolve or explicitly waive current unresolved review threads, run `script/pr-merge-ledger <PR> --strict` with explicit changelog classification and P0/P1/P2/Must-Fix dispositions, update stale release-mode classification, refresh the finalized PR-body `Agent Merge Confidence` block when accelerated-RC readiness requires it, request full CI when uncertainty remains, re-fetch and wait for the newly requested current-head checks, and merge eligible ready PRs when authorized under the current release mode.
391
407
392
408
For blocking questions, stop work on that target, surface a structured question to the coordinator or maintainer, and mark the issue/PR with the agreed pending-question state. Report the question/comment URL as `blocked needing user input`; do not open a speculative PR. For non-blocking questions where you make a decision and continue, record the decision in the PR description before review or merge.
393
409
394
-
Before final handoff, kill or confirm no stray GitHub polling processes are still running. Final state for every target must be one of: merged PR; open PR waiting on checks/review; blocked needing user input with the surfaced question/comment URL; or no-PR with an evidence-backed issue/PR comment URL. Split the handoff into `Immediate maintainer attention` and `FYI / decisions made`. Put only true blockers or questions in Immediate. Put non-blocking decisions, no-PR rationales, and full-CI uncertainty that was already handled by requesting full CIin FYI. Final handoff must list branches, PR URLs, issue outcomes, validations, last-known CI state, blockers, no-PR comments, and next actions.
410
+
Before final handoff, kill or confirm no stray GitHub polling processes are still running. Final state for every target must be one of: merged PR; open PR waiting on checks/review; blocked needing user input with the surfaced question/comment URL; or no-PR with an evidence-backed issue/PR comment URL. Do not report a target `complete` while its merge ledger has any `UNKNOWN` field or `complete_allowed: false`. Split the handoff into `Immediate maintainer attention` and `FYI / decisions made`. Put only true blockers or questions in Immediate. Put non-blocking decisions, no-PR rationales, full-CI uncertainty that was already handled by requesting full CI, and the per-PR merge-ledger summary in FYI. Final handoff must list branches, PR URLs, issue outcomes, validations, last-known CI state, merge-ledger path or JSON artifact, blockers, no-PR comments, and next actions.
395
411
```
396
412
397
413
### Question And Decision Handling
@@ -433,10 +449,14 @@ Split batch handoffs into two sections:
433
449
unresolved `DISCUSS` feedback, or a merge/release-mode conflict.
434
450
-**FYI / decisions made**: no-PR rationales, non-blocking decisions, full CI
435
451
requested because the coordinator was unsure at readiness time, validation
436
-
evidence, review churn notes, and already-answered questions.
452
+
evidence, review churn notes, already-answered questions, and a per-PR
453
+
merge-ledger table or JSON artifact path.
437
454
438
455
Do not put full-CI uncertainty in Immediate at final readiness after local
439
456
validation and the final push. Request full CI and log it in FYI.
457
+
Do not report a PR/target as `complete` while `script/pr-merge-ledger <PR>
458
+
--strict` reports `UNKNOWN` fields, review-thread/review-object violations, or
459
+
`complete_allowed: false`.
440
460
441
461
### Coordination State
442
462
@@ -542,19 +562,25 @@ The closeout lane is:
542
562
polling.
543
563
4. Fetch current unresolved review threads and triage them as fixed, waived, or
544
564
still blocking.
545
-
5. Refresh stale release-mode classification from the release tracker when
565
+
5. Run `script/pr-merge-ledger <PR> --strict` for every worker PR, supplying
566
+
explicit changelog classification and any P0/P1/P2/Must-Fix disposition
567
+
evidence. Store the JSON artifact or table for the final handoff. Do not
568
+
mark a target complete while the ledger has `UNKNOWN` fields, unresolved
569
+
current-head review threads, `CHANGES_REQUESTED` review objects, or
570
+
`complete_allowed: false`.
571
+
6. Refresh stale release-mode classification from the release tracker when
546
572
needed. For accelerated-RC merge readiness, refresh the latest finalized
547
573
PR-body `Agent Merge Confidence` block required by `AGENTS.md`; keep this
548
574
distinct from tracker mode/classification updates.
549
-
6. After the final push, if local validation passed and the only uncertainty is
575
+
7. After the final push, if local validation passed and the only uncertainty is
550
576
whether full CI is needed, request full CI with `+ci-run-full` and record the
551
577
reason as FYI, then loop back to re-fetch and wait for the newly requested
552
578
current-head checks before readiness or merge.
553
-
7. Under the current release mode, mark ready or merge PRs that satisfy the
579
+
8. Under the current release mode, mark ready or merge PRs that satisfy the
554
580
merge qualification rules, including the merge-endgame debounce and
555
581
waiver-soak rules before merge; report only remaining blockers, questions,
556
582
or `UNKNOWN` live state.
557
-
8. After any closeout-lane merge action, run a lightweight sweep for late
583
+
9. After any closeout-lane merge action, run a lightweight sweep for late
558
584
post-merge bot findings before the final batch handoff: confirm the PR landed,
559
585
check `main` status, and inspect late review/check comments that arrived
560
586
around or after merge. Route release-relevant findings into the next
@@ -841,6 +867,9 @@ Before saying a PR is ready to merge:
Before evaluating review feedback at this gate, also fetch inline PR review
@@ -859,6 +888,7 @@ Also verify:
859
888
- No requested adversarial review has unresolved `BLOCKING` or `DISCUSS` findings.
860
889
- Required checks are green, or the user has explicitly accepted an auditable waiver for full CI.
861
890
- The PR body or latest agent comment includes exact local validation commands and results.
891
+
- The merge ledger has no `UNKNOWN` fields and reports `complete_allowed: true`.
862
892
863
893
Merge qualification follows the canonical rule in `AGENTS.md` -> Review Workflow -> For All PRs: CI is passing, all current review comments and threads are addressed or explicitly triaged by tier, no major question or discussion item needs maintainer attention, and advisory AI systems such as CodeRabbit.ai are not special approval gates.
0 commit comments