docs(korus): record the owner ruling that "Merge when ready" is enqueuing - #890
docs(korus): record the owner ruling that "Merge when ready" is enqueuing#890wshallwshall wants to merge 1 commit into
Conversation
…uing The bullet said "Never arm auto-merge" and named a MECHANISM rather than an effect. `main` requires a merge queue, so the mutation behind "Merge when ready" adds a queue entry rather than merging on green -- but a seat reading the rule literally stops, because the rule cannot tell the two apart. That happened: a Lander seat held the queue rather than guess. OWNER RULING 2026-09-05. Enqueuing through that button is permitted. Arming auto-merge on a branch that would merge WITHOUT the queue stays forbidden. The Console-enqueues / Lander-merges division is unchanged. THE ORIGINAL HAZARD IS KEPT AND QUOTED IN FULL, because nobody has measured it under a queue. Whether a QUEUED entry drops a push landing underneath it is unmeasured; what this repository has measured is eviction and group rebuild, which is a different event with a different cause. The amendment says so and names the safe course (dequeue before pushing) rather than implying the hazard was disproved. Deleting the rule would have deleted the observation with it. NO BACKLOG NUMBER IS CITED, DELIBERATELY. scripts/coord/alloc.ps1 cannot run here -- no pwsh in this container, and its allocation registry lives beside a shared object store a fresh cloud clone cannot see -- so allocating would mean grepping for max+1, which section 5 forbids by name. The subject is named instead of a number burned. VERIFIED: claude_section_check.py, control_char_check.py and dangling_citation_check.py each exit 0 on the edited file. No test asserts on this bullet's text (checked every test module that reads CLAUDE.md). scan_forbidden.py exits 0 but reported STRUCTURAL-ONLY with no token source configured, so read that leg as degraded rather than clean. Does not collide with PR 889, which also edits CLAUDE.md: its nearest hunk opens at line 400 and this change ends at line 390. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YRrLas4mbUrhYQMKcYLxJh
|
Standing down on the one red, deliberately. What it is. Why I am not clearing it by labelling. The obvious move is What I verified, and what I did not. The claim this stand-down rests on is that the context was de-required from So: two consistent secondhand readings, no firsthand one, and the instrument that would settle it is stale rather than agreeing. That is weaker than "verified" and I would rather say so than round it up. If the context turns out to still be required, this PR is blocked and the remedy is a reviewer other than its author reading the diff — not a label from me. No re-run fired. A re-run reproduces this result exactly; the label state has not changed and this is not a flake. Re-running would spend a slot in a backlog that is the evening's actual problem. Nothing else is red. The remaining checks are queued behind that backlog. Generated by Claude Code |
|
Thanks for your contribution! Before we can merge it, please read our Contributor License Agreement and sign it by posting the comment below. I have read the CLA and I agree to its terms. You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
What this changes
The
Never arm auto-mergebullet in section 5 named a mechanism rather than an effect, and the two operations that button performs are not the same here.mainrequires a merge queue, so the mutation behind "Merge when ready" adds a queue entry rather than merging on green. A seat reading the rule literally cannot tell those apart and stops.That is not hypothetical: it happened on 2026-09-05. A Lander seat holding the merge queue reached the point of filling it, hit this bullet, and held rather than guess.
Owner ruling 2026-09-05. Enqueuing through that button is permitted. Arming auto-merge on a branch that would merge without the queue stays forbidden. The Console-enqueues / Lander-merges division is unchanged.
The original hazard is kept and quoted in full
The bullet's warning — auto-merge fires on the head it saw, so a later push is dropped, the PR reads MERGED, the branch stays alive, and nothing reports a problem — is preserved verbatim in the amendment rather than deleted.
It is kept because nobody has measured it under a queue. Whether a queued entry drops a push landing underneath it is unmeasured. What this repository has measured is eviction and group rebuild, which is a different event with a different cause. The amendment states that explicitly and names the conservative course (dequeue before pushing) instead of implying the hazard was disproved. Deleting the rule would have deleted the observation with it.
No BACKLOG number is cited, deliberately
scripts/coord/alloc.ps1cannot run in this environment — nopwsh, and its allocation registry lives beside a shared object store that a fresh cloud clone cannot see. Allocating from here would mean grepping formax + 1, which section 5 forbids by name and which has corrupted the ledger three times. So the subject is named rather than a number burned, per that same section's rule on citing numbers you have not allocated.The
a PR that implements BACKLOG #N must update BACKLOG.mdgate is satisfied: with noBACKLOG #Ntoken in this PR, that job reports "nothing to enforce".Does not collide with #889
#889 also edits
CLAUDE.md. Checked against the same base (b9f4f381): this change ends at line 390 and #889's nearest hunk opens at line 400, with nine untouched lines between. Non-overlapping regions of one file merge cleanly.Type of change
Checklist
docs/BACKLOG.mditem is completed by this PR, so no status banner applies.Checks run
scripts/docs/claude_section_check.pyscripts/quality/control_char_check.pyscripts/docs/dangling_citation_check.pyscripts/security/scan_forbidden.pyCLAUDE.mdRead the leak-gate leg as degraded, not clean.
scan_forbidden.pyreportedSTRUCTURAL-ONLY: no token source configured— it had no corpus to match against, so its exit 0 means the structural pass found nothing, not that a token scan ran. That is an environment limit here, not a property of the change, and CI's own leg is the one to trust.Not run:
ruff,mypyandpytestwere not run — no Python changed. The hosted-runner legs, includingwindows-service-smoke, must be read from CI by whoever picks this up.Notes for the reviewer
The amendment is longer than the rule it replaces, on purpose. The rule failed by being terse enough to read as covering a case it had never been tested against, so the replacement carries the ruling, the retained hazard, and the boundary of what is actually known.
🤖 Generated with Claude Code
https://claude.ai/code/session_01YRrLas4mbUrhYQMKcYLxJh
Generated by Claude Code