From c1d0c1fb23d31711248fdea47bd1503e9af1d182 Mon Sep 17 00:00:00 2001 From: Dai Ha Date: Mon, 7 Sep 2026 05:01:42 +0700 Subject: [PATCH] portable CLAUDE.md block: step 8 when the forge refuses the merge Kept byte-identical with claude-bridge/CLAUDE.md (2f71a30). Measured on fleet01 against akb/kb: the API returns 405 'User not allowed to merge PR' before it validates the payload, and main is protected, so neither merge route is open to that lead. --- 7-Use-Cases.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/7-Use-Cases.md b/7-Use-Cases.md index d780066..b685ed3 100644 --- a/7-Use-Cases.md +++ b/7-Use-Cases.md @@ -399,6 +399,12 @@ below are the procedure — run them in order, every task, not only the big ones 8. **Adjudicate, merge, tear down — yours alone.** Read the diff yourself: fully if it is small, targeted at the reported findings and the risky paths if it is large. Reviewer findings direct your attention; they never substitute for it. Then merge, then `fleet_stop{paneId}`. + **If the forge refuses you the merge** — a protected branch, a token without the grant — the + adjudication is still yours. Read the diff, decide, and hand the operator a merge-ready queue + with the refusal quoted. Never report a PR as merged, and never call one "ready to merge" + without having read the diff yourself. A refusal is exactly when that shortcut is tempting, + because no action is left that forces you to look, and taking it turns this step into + forwarding a reviewer's verdict — which is delegating the merge by proxy, two lines above. **Steps 3 and 4 are separate on purpose** — spawning and sending in one loop is how parallel work silently becomes serial, and it is the most common way this layer is wasted. For the same reason,