Uh oh!
There was an error while loading. Please reload this page.
docs(agents): record that seats cannot delete remote branches (proxy 403, false Everything-up-to-date receipt) - #7242
Merged
Conversation
Seats can push a branch but every ref-deletion push is refused by the agent proxy with HTTP 403, and git then prints `Everything up-to-date` — a success receipt on a refused deletion. Records the capability gap, the verbatim false receipt, and the claim-signal consequence (an orphan sibling branch for one card is invisible from every seat surface and reads as a competing claim; only a per-card prefix glob shows it). The card's four unmeasured points are kept unmeasured. No branch cleanup, no census, no lifecycle policy — those are the maintainer's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1
This was referenced Sep 2, 2026
os-zhuang
approved these changes
Sep 2, 2026
os-zhuang
marked this pull request as ready for review
September 2, 2026 11:26
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#6756
One knowledge line in
AGENTS.md, per triage grading comment 5460872090. No code, no branch touched.落点
AGENTS.md, section### 多 agent 协作纪律(并行修改本仓库,务必遵守)under## 9. Operational Rules— inserted as line 276, directly after the绝不 git push --force / 绝不推 mainbullet. That neighbour is the closest kin: both are "what a seat's push may and may not do against the shared remote", and the card itself cites the force-push ban (#5239) and the sharedrefs/stashfact (#3430) as its own family. ⛔ Deliberately not a new file — triage ruled the home is this section.before
The section had no line at all about ref deletion. A seat that tried to delete its own probe branch had to rediscover the refusal by attempting it; the card records one dev seat spending four attempts doing exactly that.
after
One bullet (one physical line, matching the section's unwrapped-bullet format). It carries five things, all required by the ruling:
error: RPC failed; HTTP 403. No bypass: the GitHub MCP tool surface hascreate_branchwith no delete counterpart, and there is noghCLI in the container.Everything up-to-date. Triage called this the most valuable sentence on the card, above the 403 itself, and the reason is in the line: a caller that reads only the tail of the output, or treats a non-empty last line as success, reads a refused deletion as a completed one. Knowing it 403s does not protect you from that.claude/*branches exist. ⛔ None was converted into an assertion.In the line, the card number inside the glob is written as this repo's usual angle-bracket placeholder, matching the neighbouring bullets' own placeholder style (the
objectui-TASKworktree path and thePATHSargument in the stash-alternative recipes). Spelled as placeholder words here on purpose — see the sanitizer note below.Measured, not assumed
AGENTS.md. The dispatch flagged this as an assumption to test. Verified: nothing underscripts/computes a line budget or ratchet over this file, so the new line owes no compensating deletion. What does exist and was NOT anticipated:scripts/check-governed-queue-guard.mjs(governed-surface,AGENTS.mdis rowagents-md) andscripts/check-shell-escape-residue.mjs(scans this file's fences). Both are content/policy gates, not size gates.scripts/check-shell-escape-residue.mjs's own header documents the derived union for a change toAGENTS.md; the governed-surface guard was added to it later by Machine-enforce human review on governed-surface paths — so the no-bypass rule stops resting on seat discipline alone #6596.check-changeset-presencereports0 of them published source of a package the release coversfor this diff. ⛔ No label was requested — objectui has noskip-changesetmechanism.scripts/check-shell-escape-residue.mjsexists because agit commit -F -example in this very section shipped with its heredoc terminator wrapped in a shell escape run (AGENTS.md §9 的git commit -F -示例带着 shell 转义残留落地(<<'\"'\"'EOF'\"'\"'),照抄得到一条不会终止的 heredoc #5150). Repeating that mechanism to author a line in the same section seemed like a poor idea.Gates run — all on head
e362056check-control-bytes✅ OK (scanned 5996 tracked text file(s); skipped 85 binary).check-doc-linksLinks are valid across 17 scan roots.check-changeset-presence✅ No source or published contract of a released package changed in this range, so no changeset is owed.check-changeset-no-major✅ No changeset declares a major bump.check-shell-escape-residue✅ OK (4/4 root(s) resolved -- AGENTS.md: 1 file(s), 15 fence(s) ... 0 occurrence(s) outside a fence)check-governed-queue-guard --self-testOK ... 132 cases passcheck-governed-queue-guard --test AGENTS.mdOne governed path governs the WHOLE pull requestExit codes captured by redirecting to a file first, then reading
$?— never through a pipe.⛔ This PR STAYS DRAFT
The exit 3 above is the correct verdict, not a red gate.
AGENTS.mdis a governed surface, and the guard states the disposition itself:⛔ Not marking ready, not enqueueing, not arming auto-merge. The merge is the maintainer's.
Note on the one body edit above:
governed-surface-guard.yml's header records that on PR #6183 an MCPupdate_pull_requestcall passing onlyreviewerssilently setdraft: false, and the PR entered the queue and landed unreviewed. The revision was therefore sent withdraft: truepassed explicitly, and the stored state read back afterwards to confirm it is still a draft.Out of scope, untouched
claude/probe-6716a-writecheckis still there. Deleting it needs someone with a working delete path — which, per the line this PR adds, is not this seat. Triage already routed it to the maintainer.🤖 Generated with Claude Code
https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1